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

Closed
opened 2024-11-22 23:22:41 +00:00 by ryan · 2 comments
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.
ryan added this to the Custody Framework project 2024-11-24 23:15:28 +00:00
Author
Owner

Partially implemented. Need to implement some form of wrapper protocol on the blobs for a blob to import derived keys or export derived paths.

Partially implemented. Need to implement some form of wrapper protocol on the blobs for a blob to import derived keys or export derived paths.
ryan added a new dependency 2024-11-25 21:44:26 +00:00
ryan added this to the Icepick v0.1.0 milestone 2024-12-12 20:33:02 +00:00
ryan closed this issue 2024-12-12 20:33:04 +00:00
Sign in to join this conversation.
No Label
No Milestone
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.

Blocks
Reference: public/icepick#9
No description provided.