Define transport envelope standard #1
Labels
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Blocks
#10 Sol and SPL-Token Transfer
public/icepick
Reference: public/icepick#1
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
When sending an object from online icepick to offline icepick, an envelope is required to claify the chain, operation type, to address, and from address, so the correct curve, derivation path, etc are used.
Suggested keys: to, from, chain, payload
Chain, curve, and derivation path should all be verified out of band (probably within the
keyfork-derive-path-data
crate) so malicious module code can't say "hey I'm actually bitcoin, give me the xprv form/44'/0'
". Then, when Icepick sees "hey I should register support for the SOL module", it can use something like:Or...
Both can be const since they're "just" data definitions. Second one implicitly panics.
Currently I've defined the envelope as:
This defines the inbound format as:
Note that we can't define a
to
, afrom
, or even anamount
since communicating with the module onsign
means we have zero additional inputs. Just the provided derived key and the previous blob.add a config file for this perhaps so i don't have to hardcode everything within icepick thnak u anton
This is for the most part done and will probably be automated w/ the inclusion of
#[derive(icepick_module::Interface)]
to allow importing derived keys, blobs, operation, and values, as well as exporting blobs and derived accounts.