No funded issue found.
Check out the Issue Explorer
Be the OSS Funding you wish to see in the world.
Looking to fund some work? You can submit a new Funded Issue here .
Time left
Opened
Issue Type
Workers Auto Approve
Project Type
Time Commitment
Experience Level
Permissions
Accepted
Reserved For
Verbose smart contract transaction display on the Ledger Nano S
zilliqa
C, Python, Makefile, Shell, CMake
When signing transactions on the blockchain, the Zilliqa app for the Ledger Nano S displays the `recipient`, `amount` and `gas price` associated with that transaction. The transaction is signed once the user confirms these details. The transaction to be signed is protobuf encoded on the host (computer) side and streamed to the device. The device simultaneously applies the Schnorr signature algorithm on the data being stream, as well as decodes parts of the protobuf object to display the three fields mentioned above.
For smart contract transactions, the `data` to be displayed (Scilla transition parameters) can be arbitrarily long.
- The Zilliqa app currently on the ledger store does not attempt to display additional details for smart contract transactions.
- On our GitHub repository, we have an experimental branch that attempts to parse the transition parameter JSON (which is inside the protobuf encoded transaction). However, the stack and global memory limitations of the Ledger Nano S limits the length of transition parameters that can be displayed in these smart contract transactions.
The app today is designed such that it accumulates the message to be displayed, while data (protobuf object) is being streamed to it (and is also being passed to the Schnorr algorithm). Once streaming is done, the details are displayed on screen, confirmed and then the signature (which was also accumulated, but not transferred to the host) is displayed and sent to the host. This design fundamentally limits the length of the details we can display on the device for user confirmation.
Therefore, the **goal of this project** will be to:
- Redesign the UI of the app such that, while it streams (and decodes) the protobuf data for Schnorr signing, it also displays parts of the transition message parameters JSON as it sees them, have the part confirmed by the user and then proceed to stream more message parameters.
(i.e. multi step approval process: display first half, user approval returns 0x9000, display second half, user approval returns whatever you need)
- As a more ambitious goal, the JSON can be parsed and the transition parameters displayed in a more readable way, but this is secondary, and it may be ok to display the raw JSON as-is for the above.
An example of a valid smart contract transaction payload for signing can be found below for ease of testing:
```
{
"version": 65537,
"nonce": 43,
"toAddr": "6E263953C92b12060Fd73885FC56e300631591F9",
"amount": 0,
"gasPrice": 1000000000,
"gasLimit": 40000,
"code": "",
"data": "{ \"_tag\":\"SubmitCustomTransferFromTransaction\", \"params\":[{\"vname\":\"proxyTokenContract\",\"type\":\"ByStr20\",\"value\":\"0x6e263953c92b12060fd73885fc56e300631591f9\"},{\"vname\":\"from\",\"type\":\"ByStr20\",\"value\":\"0x5abf71d798ca594b7317b04f52ad5a31fae62170\"},{\"vname\":\"to\",\"type\":\"ByStr20\",\"value\":\"0x5420599c5d62c00b69675cfccf5f14627c1693c5\"},{\"vname\":\"value\",\"type\":\"Uint128\",\"value\":\"10000000\"}]}"
}
```
Setup your profile
Tell us a little about you:
Skills
No results found for [[search]] .
Type to search skills..
Bio Required
[[totalcharacter]] / 240
Are you currently looking for work?
[[ option.string ]]
Next
Setup your profile
Our tools are based on the principles of earn (💰), learn (📖), and meet (💬).
Select the ones you are interested in. You can change it later in your settings.
I'm also an organization manager looking for a great community.
Back
Next
Save
Enable your organization profile
Gitcoin products can help grow community around your brand. Create your tribe, events, and incentivize your community with bounties. Announce new and upcoming events using townsquare. Find top-quality hackers and fund them to work with you on a grant.
These are the organizations you own. If you don't see your organization here please be sure that information is public on your GitHub profile. Gitcoin will sync this information for you.
Select the products you are interested in:
Out of the box you will receive Tribes Lite for your organization. Please provide us with a contact email:
Email
Back
Save