Demonstrate flow of requests between Icepick frontend and Icepick module backends #9

Open
opened 2024-11-22 23:22:41 +00:00 by ryan · 1 comment
Owner

User Flow: Create and Broadcast Transaction

# Shell command: `icepick transfer sol 10 HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3`
> {"operation": "generate-transaction", "arguments": {"token": "sol", "address":  "HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3", "amount": 10}}
< {"transaction": "base64 blob of content", "derivation-paths", [<array version of m/44'/501'/0'/0'>]}
> {"operation": "sign-transaction", "transaction": "base64 blob of content", "signing-keys": ["base64 blob of signing key"]}
< {"signed-transaction": "base64 blob of signed transaction"}

Discuss #7 to specify how storage should be transferred to an online system.

User Flow: Custom Arguments

# Shell command: `icepick transfer sol 10 HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3 --fee-payer 1
> {"operation": "generate-transaction", "arguments": {"token": "sol", "address":  "HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3", "amount": 10, "fee-payer": "1"}}
< {"transaction": "base64 blob of content", "derivation-paths", [<array version of m/44'/501'/0'/0'>, <array version of m/44'/501'/0'/1'>]}
> {"operation": "sign-transaction", "transaction": "base64 blob of content", "signing-keys": ["base64 blob of signing key 1", "base64 blob of signing key 2"]}
< {"signed-transaction": "base64 blob of signed transaction"}

User Flow: Sign Existing Transaction

# Shell command: `icepick sign-transaction`
> {"operation": "sign-transaction", "transaction": "base64 blob of content", "signing-keys": ["base64 blob of signing key"]}
< {"signed-transaction": "base64 blob of signed transaction"}

The command will need to be able to parse some format to get the derivation path, since the module should not be derivation-aware.

Should this command be SD card aware or should it operate only on the file device?

## User Flow: Create and Broadcast Transaction ``` # Shell command: `icepick transfer sol 10 HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3` > {"operation": "generate-transaction", "arguments": {"token": "sol", "address": "HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3", "amount": 10}} < {"transaction": "base64 blob of content", "derivation-paths", [<array version of m/44'/501'/0'/0'>]} > {"operation": "sign-transaction", "transaction": "base64 blob of content", "signing-keys": ["base64 blob of signing key"]} < {"signed-transaction": "base64 blob of signed transaction"} ``` Discuss #7 to specify how storage should be transferred to an online system. ## User Flow: Custom Arguments ``` # Shell command: `icepick transfer sol 10 HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3 --fee-payer 1 > {"operation": "generate-transaction", "arguments": {"token": "sol", "address": "HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3", "amount": 10, "fee-payer": "1"}} < {"transaction": "base64 blob of content", "derivation-paths", [<array version of m/44'/501'/0'/0'>, <array version of m/44'/501'/0'/1'>]} > {"operation": "sign-transaction", "transaction": "base64 blob of content", "signing-keys": ["base64 blob of signing key 1", "base64 blob of signing key 2"]} < {"signed-transaction": "base64 blob of signed transaction"} ``` ## User Flow: Sign Existing Transaction ``` # Shell command: `icepick sign-transaction` > {"operation": "sign-transaction", "transaction": "base64 blob of content", "signing-keys": ["base64 blob of signing key"]} < {"signed-transaction": "base64 blob of signed transaction"} ``` The command will need to be able to parse some format to get the derivation path, since the module should not be derivation-aware. Should this command be SD card aware or should it operate only on the file device?
Author
Owner

Consideration: Fee payers for SOL/ETH/etc. gas

We need a way to specify multiple derivation paths on the same chain prefix. Should we send a prefix, or should we send multiple derivation paths? Prefix is less flexible and therefore could be more secure.

Consideration: Fee payers for SOL/ETH/etc. gas We need a way to specify _multiple_ derivation paths on the same chain prefix. Should we send a prefix, or should we send multiple derivation paths? Prefix is less flexible and therefore could be more secure.
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: public/icepick#9
No description provided.