Wallet (blockchain) – Open Transactions
Ter order to avoid ambiguity, the terms “blockchain wallet” and “blockchain address” refers to the cryptocurrency for which is pool is tracking receipts. This differentiation is necessary to avoid confusion with OT wallets or nym addresses.
The blockchain wallet tracks and manipulates cryptocurrencies balances on the suitable blockchain. The wallet notifies the auditor of received deposits, constructs outgoing transactions, and monitors the state of all relevant incoming and outgoing transactions.
An auditor requires access to a wallet provider for every cryptocurrency its technicus wishes to accept deposits for, and this wallet voorwaarde support the Voting Pool Wallet API.
Wallets should understand both hierarchical determinism and multisig capability, and also output coloring.
All components of a voting pool, except for the blockchain wallet, voorwaarde be currency-agnostic and do not have any inherent understanding of currency-specific parameters such spil address formats.
Because of this, all addresses are passed spil a set of index numbers. Thesis numbers represent the parameters which can deterministically generate the underlying blockchain address from the voting pool asset contract.
The numbers are grouped into two identifiers based on the resolution needed for common operations.
Since one wallet will need to treat numerous pools and series, a series identifier vereiste include the pool for which it belongs.
A series identifier is defined spil JSON object and is composed of two parts:
Pool UUID for a specific voting pool. This UUID is persistent even spil members are added or liquidated. Series An index number that starts at 1 and increases monotonically (from the Keyset Definition)
An address identifier is defined spil a JSON object and is composed of three parts:
Series The series identifier which contains the address Branch 0 for switch addresses, 1-through-n for deposit addresses.
Note the branch represents the position of a server’s xpub te the standard order for a given series. The auditor vereiste reference the keyset definition to obtain the juist notary ID-to-branch mapping for a given series since the standard order will switch inbetween series.
Index The index applied to the xpubs te a given series to obtain the desired multisig output script.
When the auditor needs to query a specific address from the blockchain wallet, will pass the address identifier instead of a raw blockchain address or script.
When an auditor very first initializes a voting pool contract, it vereiste create the adequate cryptocurrency wallets via the Createseries call to a wallet provider of the suitable coin type (Bitcoin, Litecoin, etc).
The auditor vereiste call this function for every defined series ter the keyset.
When the extended private keys for a series are brought online, the wallet voorwaarde call Thawseries to fountain them into the blockchain wallet.
The wallet vereiste find the juist extended public key when it adds the extended private key to the wallet and voorwaarde comeback an error to the technicus if he attempts to stream and extended private key for an extended public key not defined te that series.
The wallet provides a deposit scripts for an address when requested via the getdepositscript call which may be packaged a PaymentRequest and passed to the depositor.
When a deposit is received, or if the confirmation status of the incoming transaction switches unexpectedly, the wallet will inform the caller via shove notifications.