pub struct Drk {
pub wallet: WalletPtr,
pub rpc_client: Option<RpcClient>,
pub fun: bool,
}
Expand description
CLI-util structure
Fields§
§wallet: WalletPtr
Wallet database operations handler
rpc_client: Option<RpcClient>
JSON-RPC client to execute requests to darkfid daemon
fun: bool
Flag indicating if fun stuff are enabled
Implementations§
source§impl Drk
impl Drk
sourcepub async fn subscribe_blocks(
&self,
endpoint: Url,
ex: Arc<Executor<'static>>,
) -> Result<()>
pub async fn subscribe_blocks( &self, endpoint: Url, ex: Arc<Executor<'static>>, ) -> Result<()>
Subscribes to darkfid’s JSON-RPC notification endpoint that serves new finalized blocks. Upon receiving them, all the transactions are scanned and we check if any of them call the money contract, and if the payments are intended for us. If so, we decrypt them and append the metadata to our wallet.
sourceasync fn scan_block(&self, block: &BlockInfo) -> Result<()>
async fn scan_block(&self, block: &BlockInfo) -> Result<()>
scan_block
will go over over transactions in a block and handle their calls
based on the called contract. Additionally, will update last_scanned_block
to
the probided block height.
sourcepub async fn scan_blocks(&self, reset: bool) -> WalletDbResult<()>
pub async fn scan_blocks(&self, reset: bool) -> WalletDbResult<()>
Scans the blockchain starting from the last scanned block, for relevant money transfer transactions. If reset flag is provided, Merkle tree state and coins are reset, and start scanning from beginning. Alternatively, it looks for a checkpoint in the wallet to reset and start scanning from.
async fn get_block_by_height(&self, height: u32) -> Result<BlockInfo>
sourcepub async fn broadcast_tx(&self, tx: &Transaction) -> Result<String>
pub async fn broadcast_tx(&self, tx: &Transaction) -> Result<String>
Broadcast a given transaction to darkfid and forward onto the network. Returns the transaction ID upon success.
sourcepub async fn get_tx(
&self,
tx_hash: &TransactionHash,
) -> Result<Option<Transaction>>
pub async fn get_tx( &self, tx_hash: &TransactionHash, ) -> Result<Option<Transaction>>
Queries darkfid for a tx with given hash.
sourcepub async fn simulate_tx(&self, tx: &Transaction) -> Result<bool>
pub async fn simulate_tx(&self, tx: &Transaction) -> Result<bool>
Simulate the transaction with the state machine.
sourcepub async fn lookup_zkas(
&self,
contract_id: &ContractId,
) -> Result<Vec<(String, Vec<u8>)>>
pub async fn lookup_zkas( &self, contract_id: &ContractId, ) -> Result<Vec<(String, Vec<u8>)>>
Try to fetch zkas bincodes for the given ContractId
.
sourcepub async fn get_tx_gas(
&self,
tx: &Transaction,
include_fee: bool,
) -> Result<u64>
pub async fn get_tx_gas( &self, tx: &Transaction, include_fee: bool, ) -> Result<u64>
Queries darkfid for given transaction’s gas.
sourcepub async fn get_next_block_height(&self) -> Result<u32>
pub async fn get_next_block_height(&self) -> Result<u32>
Queries darkfid for current best fork next height.
sourcepub async fn get_block_target(&self) -> Result<u32>
pub async fn get_block_target(&self) -> Result<u32>
Queries darkfid for currently configured block target time.
sourcepub async fn ping(&self) -> Result<()>
pub async fn ping(&self) -> Result<()>
Auxiliary function to ping configured darkfid daemon for liveness.
sourcepub async fn darkfid_daemon_request(
&self,
method: &str,
params: &JsonValue,
) -> Result<JsonValue>
pub async fn darkfid_daemon_request( &self, method: &str, params: &JsonValue, ) -> Result<JsonValue>
Auxiliary function to execute a request towards the configured darkfid daemon JSON-RPC endpoint.
sourcepub async fn stop_rpc_client(&self) -> Result<()>
pub async fn stop_rpc_client(&self) -> Result<()>
Auxiliary function to stop current JSON-RPC client, if its initialized.
source§impl Drk
impl Drk
sourcepub async fn init_swap(
&self,
value_pair: (u64, u64),
token_pair: (TokenId, TokenId),
user_data_blind_send: Option<BaseBlind>,
spend_hook_recv: Option<FuncId>,
user_data_recv: Option<Base>,
) -> Result<PartialSwapData>
pub async fn init_swap( &self, value_pair: (u64, u64), token_pair: (TokenId, TokenId), user_data_blind_send: Option<BaseBlind>, spend_hook_recv: Option<FuncId>, user_data_recv: Option<Base>, ) -> Result<PartialSwapData>
Initialize the first half of an atomic swap
sourcepub async fn join_swap(
&self,
partial: PartialSwapData,
user_data_blind_send: Option<BaseBlind>,
spend_hook_recv: Option<FuncId>,
user_data_recv: Option<Base>,
) -> Result<Transaction>
pub async fn join_swap( &self, partial: PartialSwapData, user_data_blind_send: Option<BaseBlind>, spend_hook_recv: Option<FuncId>, user_data_recv: Option<Base>, ) -> Result<Transaction>
Create a full transaction by inspecting and verifying given partial swap data,
making the other half, and joining all this into a Transaction
object.
sourcepub async fn inspect_swap(&self, bytes: Vec<u8>) -> Result<()>
pub async fn inspect_swap(&self, bytes: Vec<u8>) -> Result<()>
Inspect and verify a given swap (half or full) transaction
source§impl Drk
impl Drk
sourcefn derive_token_attributes(
&self,
mint_authority: SecretKey,
token_blind: BaseBlind,
) -> TokenAttributes
fn derive_token_attributes( &self, mint_authority: SecretKey, token_blind: BaseBlind, ) -> TokenAttributes
Auxiliary function to derive TokenAttributes
for provided secret key and token blind.
Import a token mint authority into the wallet.
Auxiliary function to parse a MONEY_TOKENS_TABLE
records.
The boolean in the returned tuples notes if the token mint authority is frozen.
Fetch all token mint authorities from the wallet.
Fetch provided token unfrozen mint authority from the wallet.
sourcepub async fn mint_token(
&self,
amount: &str,
recipient: PublicKey,
token_id: TokenId,
spend_hook: Option<FuncId>,
user_data: Option<Base>,
) -> Result<Transaction>
pub async fn mint_token( &self, amount: &str, recipient: PublicKey, token_id: TokenId, spend_hook: Option<FuncId>, user_data: Option<Base>, ) -> Result<Transaction>
Create a token mint transaction. Returns the transaction object on success.
sourcepub async fn freeze_token(&self, token_id: TokenId) -> Result<Transaction>
pub async fn freeze_token(&self, token_id: TokenId) -> Result<Transaction>
Create a token freeze transaction. Returns the transaction object on success.
source§impl Drk
impl Drk
sourcepub async fn initialize_money(&self) -> WalletDbResult<()>
pub async fn initialize_money(&self) -> WalletDbResult<()>
Initialize wallet with tables for the Money contract.
sourcepub async fn money_keygen(&self) -> WalletDbResult<()>
pub async fn money_keygen(&self) -> WalletDbResult<()>
Generate a new keypair and place it into the wallet.
sourcepub async fn default_secret(&self) -> Result<SecretKey>
pub async fn default_secret(&self) -> Result<SecretKey>
Fetch default secret key from the wallet.
sourcepub async fn default_address(&self) -> Result<PublicKey>
pub async fn default_address(&self) -> Result<PublicKey>
Fetch default pubkey from the wallet.
sourcepub fn set_default_address(&self, idx: usize) -> WalletDbResult<()>
pub fn set_default_address(&self, idx: usize) -> WalletDbResult<()>
Set provided index address as default in the wallet.
sourcepub async fn addresses(&self) -> Result<Vec<(u64, PublicKey, SecretKey, u64)>>
pub async fn addresses(&self) -> Result<Vec<(u64, PublicKey, SecretKey, u64)>>
Fetch all pukeys from the wallet.
sourcepub async fn get_money_secrets(&self) -> Result<Vec<SecretKey>>
pub async fn get_money_secrets(&self) -> Result<Vec<SecretKey>>
Fetch all secret keys from the wallet.
sourcepub async fn import_money_secrets(
&self,
secrets: Vec<SecretKey>,
) -> Result<Vec<PublicKey>>
pub async fn import_money_secrets( &self, secrets: Vec<SecretKey>, ) -> Result<Vec<PublicKey>>
Import given secret keys into the wallet. If the key already exists, it will be skipped. Returns the respective PublicKey objects for the imported keys.
sourcepub async fn money_balance(&self) -> Result<HashMap<String, u64>>
pub async fn money_balance(&self) -> Result<HashMap<String, u64>>
Fetch known unspent balances from the wallet and return them as a hashmap.
sourcepub async fn get_coins(
&self,
fetch_spent: bool,
) -> Result<Vec<(OwnCoin, bool, String)>>
pub async fn get_coins( &self, fetch_spent: bool, ) -> Result<Vec<(OwnCoin, bool, String)>>
Fetch all coins and their metadata related to the Money contract from the wallet. Optionally also fetch spent ones. The boolean in the returned tuple notes if the coin was marked as spent.
sourcepub async fn get_token_coins(&self, token_id: &TokenId) -> Result<Vec<OwnCoin>>
pub async fn get_token_coins(&self, token_id: &TokenId) -> Result<Vec<OwnCoin>>
Fetch provided token unspend balances from the wallet.
sourcepub async fn get_contract_token_coins(
&self,
token_id: &TokenId,
spend_hook: &FuncId,
user_data: &Base,
) -> Result<Vec<OwnCoin>>
pub async fn get_contract_token_coins( &self, token_id: &TokenId, spend_hook: &FuncId, user_data: &Base, ) -> Result<Vec<OwnCoin>>
Fetch provided contract specified token unspend balances from the wallet.
sourceasync fn parse_coin_record(
&self,
row: &[Value],
) -> Result<(OwnCoin, bool, String)>
async fn parse_coin_record( &self, row: &[Value], ) -> Result<(OwnCoin, bool, String)>
Auxiliary function to parse a MONEY_COINS_TABLE
record.
The boolean in the returned tuple notes if the coin was marked as spent.
sourcepub async fn add_alias(
&self,
alias: String,
token_id: TokenId,
) -> WalletDbResult<()>
pub async fn add_alias( &self, alias: String, token_id: TokenId, ) -> WalletDbResult<()>
Create an alias record for provided Token ID.
sourcepub async fn get_aliases(
&self,
alias_filter: Option<String>,
token_id_filter: Option<TokenId>,
) -> Result<HashMap<String, TokenId>>
pub async fn get_aliases( &self, alias_filter: Option<String>, token_id_filter: Option<TokenId>, ) -> Result<HashMap<String, TokenId>>
Fetch all aliases from the wallet. Optionally filter using alias name and/or token id.
sourcepub async fn get_aliases_mapped_by_token(
&self,
) -> Result<HashMap<String, String>>
pub async fn get_aliases_mapped_by_token( &self, ) -> Result<HashMap<String, String>>
Fetch all aliases from the wallet, mapped by token id.
sourcepub async fn remove_alias(&self, alias: String) -> WalletDbResult<()>
pub async fn remove_alias(&self, alias: String) -> WalletDbResult<()>
Remove provided alias record from the wallet database.
sourcepub async fn unspend_coin(&self, coin: &Coin) -> WalletDbResult<()>
pub async fn unspend_coin(&self, coin: &Coin) -> WalletDbResult<()>
Mark a given coin in the wallet as unspent.
sourcepub async fn put_money_tree(&self, tree: &MerkleTree) -> WalletDbResult<()>
pub async fn put_money_tree(&self, tree: &MerkleTree) -> WalletDbResult<()>
Replace the Money Merkle tree in the wallet.
sourcepub async fn get_money_tree(&self) -> Result<MerkleTree>
pub async fn get_money_tree(&self) -> Result<MerkleTree>
Fetch the Money Merkle tree from the wallet.
sourcepub async fn get_nullifiers_smt(&self) -> Result<HashMap<BigUint, Base>>
pub async fn get_nullifiers_smt(&self) -> Result<HashMap<BigUint, Base>>
Fetch the Money nullifiers SMT from the wallet, as a map.
sourcepub fn last_scanned_block(&self) -> WalletDbResult<u32>
pub fn last_scanned_block(&self) -> WalletDbResult<u32>
Get the last scanned block height from the wallet.
sourceasync fn parse_money_call(
&self,
call_idx: usize,
calls: &[DarkLeaf<ContractCall>],
) -> Result<(Vec<Nullifier>, Vec<Coin>, Vec<AeadEncryptedNote>, Vec<TokenId>)>
async fn parse_money_call( &self, call_idx: usize, calls: &[DarkLeaf<ContractCall>], ) -> Result<(Vec<Nullifier>, Vec<Coin>, Vec<AeadEncryptedNote>, Vec<TokenId>)>
Auxiliary function to grab all the nullifiers, coins, notes and freezes from a transaction money call.
sourcepub async fn apply_tx_money_data(
&self,
call_idx: usize,
calls: &[DarkLeaf<ContractCall>],
tx_hash: &String,
) -> Result<()>
pub async fn apply_tx_money_data( &self, call_idx: usize, calls: &[DarkLeaf<ContractCall>], tx_hash: &String, ) -> Result<()>
Append data related to Money contract transactions into the wallet database.
sourceasync fn money_call_nullifiers(
&self,
call: &DarkLeaf<ContractCall>,
) -> Result<Vec<Nullifier>>
async fn money_call_nullifiers( &self, call: &DarkLeaf<ContractCall>, ) -> Result<Vec<Nullifier>>
Auxiliary function to grab all the nullifiers from a transaction money call.
sourcepub async fn mark_tx_spend(&self, tx: &Transaction) -> Result<()>
pub async fn mark_tx_spend(&self, tx: &Transaction) -> Result<()>
Mark provided transaction input coins as spent.
sourcepub async fn mark_spent_coin(
&self,
coin: &Coin,
spent_tx_hash: &String,
) -> WalletDbResult<()>
pub async fn mark_spent_coin( &self, coin: &Coin, spent_tx_hash: &String, ) -> WalletDbResult<()>
Mark a coin in the wallet as spent.
sourcepub async fn mark_spent_coins(
&self,
nullifiers: &[Nullifier],
spent_tx_hash: &String,
) -> Result<()>
pub async fn mark_spent_coins( &self, nullifiers: &[Nullifier], spent_tx_hash: &String, ) -> Result<()>
Marks all coins in the wallet as spent, if their nullifier is in the given set.
sourcepub fn smt_insert(&self, nullifiers: &[Nullifier]) -> Result<()>
pub fn smt_insert(&self, nullifiers: &[Nullifier]) -> Result<()>
Inserts given slice to the wallets nullifiers Sparse Merkle Tree.
sourcepub async fn reset_money_tree(&self) -> WalletDbResult<()>
pub async fn reset_money_tree(&self) -> WalletDbResult<()>
Reset the Money Merkle tree in the wallet.
sourcepub fn reset_money_smt(&self) -> WalletDbResult<()>
pub fn reset_money_smt(&self) -> WalletDbResult<()>
Reset the Money nullifiers Sparse Merkle Tree in the wallet.
sourcepub fn reset_money_coins(&self) -> WalletDbResult<()>
pub fn reset_money_coins(&self) -> WalletDbResult<()>
Reset the Money coins in the wallet.
sourcepub async fn get_token(&self, input: String) -> Result<TokenId>
pub async fn get_token(&self, input: String) -> Result<TokenId>
Retrieve token by provided string. Input string represents either an alias or a token id.
sourcepub async fn append_fee_call(
&self,
tx: &Transaction,
money_merkle_tree: &MerkleTree,
fee_pk: &ProvingKey,
fee_zkbin: &ZkBinary,
spent_coins: Option<&[OwnCoin]>,
) -> Result<(ContractCall, Vec<Proof>, Vec<SecretKey>)>
pub async fn append_fee_call( &self, tx: &Transaction, money_merkle_tree: &MerkleTree, fee_pk: &ProvingKey, fee_zkbin: &ZkBinary, spent_coins: Option<&[OwnCoin]>, ) -> Result<(ContractCall, Vec<Proof>, Vec<SecretKey>)>
Create and append a Money::Fee
call to a given [Transaction
].
Optionally takes a set of spent coins in order not to reuse them here.
Returns the Fee
call, and all necessary data and parameters related.
sourcepub async fn attach_fee(&self, tx: &mut Transaction) -> Result<()>
pub async fn attach_fee(&self, tx: &mut Transaction) -> Result<()>
Create and attach the fee call to given transaction.
source§impl Drk
impl Drk
sourcepub async fn initialize_dao(&self) -> WalletDbResult<()>
pub async fn initialize_dao(&self) -> WalletDbResult<()>
Initialize wallet with tables for the DAO contract.
sourcepub async fn put_dao_trees(
&self,
daos_tree: &MerkleTree,
proposals_tree: &MerkleTree,
) -> WalletDbResult<()>
pub async fn put_dao_trees( &self, daos_tree: &MerkleTree, proposals_tree: &MerkleTree, ) -> WalletDbResult<()>
Replace the DAO Merkle trees in the wallet.
sourcepub async fn get_dao_trees(&self) -> Result<(MerkleTree, MerkleTree)>
pub async fn get_dao_trees(&self) -> Result<(MerkleTree, MerkleTree)>
Fetch DAO Merkle trees from the wallet.
sourcepub async fn get_dao_secrets(&self) -> Result<Vec<SecretKey>>
pub async fn get_dao_secrets(&self) -> Result<Vec<SecretKey>>
Fetch all DAO secret keys from the wallet.
sourceasync fn parse_dao_record(&self, row: &[Value]) -> Result<DaoRecord>
async fn parse_dao_record(&self, row: &[Value]) -> Result<DaoRecord>
Auxiliary function to parse a DAO_DAOS_TABLE
record.
sourceasync fn parse_dao_proposal(&self, row: &[Value]) -> Result<ProposalRecord>
async fn parse_dao_proposal(&self, row: &[Value]) -> Result<ProposalRecord>
Auxiliary function to parse a proposal record row.
sourcepub async fn get_dao_proposals(&self, name: &str) -> Result<Vec<ProposalRecord>>
pub async fn get_dao_proposals(&self, name: &str) -> Result<Vec<ProposalRecord>>
Fetch all known DAO proposals from the wallet given a DAO name.
async fn apply_dao_mint_data( &self, new_bulla: DaoBulla, tx_hash: TransactionHash, call_index: u8, ) -> Result<()>
async fn apply_dao_propose_data( &self, params: DaoProposeParams, tx_hash: TransactionHash, call_index: u8, ) -> Result<()>
async fn apply_dao_vote_data( &self, params: DaoVoteParams, tx_hash: TransactionHash, call_index: u8, ) -> Result<()>
async fn apply_dao_exec_data( &self, params: DaoExecParams, tx_hash: TransactionHash, ) -> Result<()>
sourcepub async fn apply_tx_dao_data(
&self,
data: &[u8],
tx_hash: TransactionHash,
call_idx: u8,
) -> Result<()>
pub async fn apply_tx_dao_data( &self, data: &[u8], tx_hash: TransactionHash, call_idx: u8, ) -> Result<()>
Append data related to DAO contract transactions into the wallet database.
sourcepub async fn confirm_dao(&self, dao: &DaoRecord) -> WalletDbResult<()>
pub async fn confirm_dao(&self, dao: &DaoRecord) -> WalletDbResult<()>
Confirm already imported DAO metadata into the wallet. Here we just write the leaf position, tx hash, and call index. Panics if the fields are None.
sourcepub async fn unconfirm_daos(&self, daos: &[DaoRecord]) -> WalletDbResult<()>
pub async fn unconfirm_daos(&self, daos: &[DaoRecord]) -> WalletDbResult<()>
Unconfirm imported DAOs by removing the leaf position, tx hash, and call index.
sourcepub async fn put_dao_proposal(&self, proposal: &ProposalRecord) -> Result<()>
pub async fn put_dao_proposal(&self, proposal: &ProposalRecord) -> Result<()>
Import given DAO proposal into the wallet.
sourcepub async fn unconfirm_proposals(
&self,
proposals: &[ProposalRecord],
) -> WalletDbResult<()>
pub async fn unconfirm_proposals( &self, proposals: &[ProposalRecord], ) -> WalletDbResult<()>
Unconfirm imported DAO proposals by removing the leaf position, tx hash, and call index.
sourcepub async fn put_dao_vote(&self, vote: &VoteRecord) -> WalletDbResult<()>
pub async fn put_dao_vote(&self, vote: &VoteRecord) -> WalletDbResult<()>
Import given DAO votes into the wallet.
sourcepub async fn reset_dao_trees(&self) -> WalletDbResult<()>
pub async fn reset_dao_trees(&self) -> WalletDbResult<()>
Reset the DAO Merkle trees in the wallet.
sourcepub async fn reset_daos(&self) -> WalletDbResult<()>
pub async fn reset_daos(&self) -> WalletDbResult<()>
Reset confirmed DAOs in the wallet.
sourcepub async fn reset_dao_proposals(&self) -> WalletDbResult<()>
pub async fn reset_dao_proposals(&self) -> WalletDbResult<()>
Reset all DAO proposals in the wallet.
sourcepub fn reset_dao_votes(&self) -> WalletDbResult<()>
pub fn reset_dao_votes(&self) -> WalletDbResult<()>
Reset all DAO votes in the wallet.
sourcepub async fn import_dao(&self, name: &str, params: DaoParams) -> Result<()>
pub async fn import_dao(&self, name: &str, params: DaoParams) -> Result<()>
Import given DAO params into the wallet with a given name.
sourcepub async fn get_dao_by_bulla(&self, bulla: &DaoBulla) -> Result<DaoRecord>
pub async fn get_dao_by_bulla(&self, bulla: &DaoBulla) -> Result<DaoRecord>
Fetch a DAO given its bulla.
sourcepub async fn get_dao_by_name(&self, name: &str) -> Result<DaoRecord>
pub async fn get_dao_by_name(&self, name: &str) -> Result<DaoRecord>
Fetch a DAO given its name.
sourcepub async fn dao_list(&self, name: &Option<String>) -> Result<()>
pub async fn dao_list(&self, name: &Option<String>) -> Result<()>
List DAO(s) imported in the wallet. If a name is given, just print the metadata for that specific one, if found.
sourcepub async fn dao_balance(&self, name: &str) -> Result<HashMap<String, u64>>
pub async fn dao_balance(&self, name: &str) -> Result<HashMap<String, u64>>
Fetch known unspent balances from the wallet for the given DAO name.
sourcepub async fn get_proposals(&self) -> Result<Vec<ProposalRecord>>
pub async fn get_proposals(&self) -> Result<Vec<ProposalRecord>>
Fetch all known DAO proposalss from the wallet.
sourcepub async fn get_dao_proposal_by_bulla(
&self,
bulla: &DaoProposalBulla,
) -> Result<ProposalRecord>
pub async fn get_dao_proposal_by_bulla( &self, bulla: &DaoProposalBulla, ) -> Result<ProposalRecord>
Fetch a DAO proposal by its bulla.
pub async fn get_dao_proposal_votes( &self, proposal: &DaoProposalBulla, ) -> Result<Vec<VoteRecord>>
sourcepub async fn dao_propose_transfer(
&self,
name: &str,
duration_blockwindows: u64,
amount: &str,
token_id: TokenId,
recipient: PublicKey,
spend_hook: Option<FuncId>,
user_data: Option<Base>,
) -> Result<ProposalRecord>
pub async fn dao_propose_transfer( &self, name: &str, duration_blockwindows: u64, amount: &str, token_id: TokenId, recipient: PublicKey, spend_hook: Option<FuncId>, user_data: Option<Base>, ) -> Result<ProposalRecord>
Create a DAO transfer proposal.
sourcepub async fn dao_transfer_proposal_tx(
&self,
proposal: &ProposalRecord,
) -> Result<Transaction>
pub async fn dao_transfer_proposal_tx( &self, proposal: &ProposalRecord, ) -> Result<Transaction>
Create a DAO transfer proposal transaction.
sourcepub async fn dao_vote(
&self,
proposal_bulla: &DaoProposalBulla,
vote_option: bool,
weight: Option<u64>,
) -> Result<Transaction>
pub async fn dao_vote( &self, proposal_bulla: &DaoProposalBulla, vote_option: bool, weight: Option<u64>, ) -> Result<Transaction>
Vote on a DAO proposal
sourcepub async fn dao_exec_transfer(
&self,
proposal: &ProposalRecord,
) -> Result<Transaction>
pub async fn dao_exec_transfer( &self, proposal: &ProposalRecord, ) -> Result<Transaction>
Execute a DAO transfer proposal.
source§impl Drk
impl Drk
sourcepub fn initialize_deployooor(&self) -> WalletDbResult<()>
pub fn initialize_deployooor(&self) -> WalletDbResult<()>
Initialize wallet with tables for the Deployooor contract.
sourcepub async fn deploy_auth_keygen(&self) -> WalletDbResult<()>
pub async fn deploy_auth_keygen(&self) -> WalletDbResult<()>
Generate a new deploy authority keypair and place it into the wallet
sourcepub async fn list_deploy_auth(&self) -> Result<Vec<(i64, ContractId, bool)>>
pub async fn list_deploy_auth(&self) -> Result<Vec<(i64, ContractId, bool)>>
List contract deploy authorities from the wallet
sourceasync fn get_deploy_auth(&self, idx: u64) -> Result<Keypair>
async fn get_deploy_auth(&self, idx: u64) -> Result<Keypair>
Retrieve a deploy authority keypair given an index
sourcepub async fn deploy_contract(
&self,
deploy_auth: u64,
wasm_bincode: Vec<u8>,
deploy_ix: Vec<u8>,
) -> Result<Transaction>
pub async fn deploy_contract( &self, deploy_auth: u64, wasm_bincode: Vec<u8>, deploy_ix: Vec<u8>, ) -> Result<Transaction>
Create a feeless contract deployment transaction.
sourcepub async fn lock_contract(&self, deploy_auth: u64) -> Result<Transaction>
pub async fn lock_contract(&self, deploy_auth: u64) -> Result<Transaction>
Create a feeless contract redeployment lock transaction.
source§impl Drk
impl Drk
sourcepub async fn insert_tx_history_record(
&self,
tx: &Transaction,
) -> WalletDbResult<String>
pub async fn insert_tx_history_record( &self, tx: &Transaction, ) -> WalletDbResult<String>
Insert a Transaction
history record into the wallet.
sourcepub async fn insert_tx_history_records(
&self,
txs: &[Transaction],
) -> WalletDbResult<Vec<String>>
pub async fn insert_tx_history_records( &self, txs: &[Transaction], ) -> WalletDbResult<Vec<String>>
Insert a slice of [Transaction
] history records into the wallet.
sourcepub async fn get_tx_history_record(
&self,
tx_hash: &str,
) -> Result<(String, String, Transaction)>
pub async fn get_tx_history_record( &self, tx_hash: &str, ) -> Result<(String, String, Transaction)>
Get a transaction history record.
sourcepub fn get_txs_history(&self) -> WalletDbResult<Vec<(String, String)>>
pub fn get_txs_history(&self) -> WalletDbResult<Vec<(String, String)>>
Fetch all transactions history records, excluding bytes column.
sourcepub fn update_tx_history_records_status(
&self,
txs_hashes: &[String],
status: &str,
) -> WalletDbResult<()>
pub fn update_tx_history_records_status( &self, txs_hashes: &[String], status: &str, ) -> WalletDbResult<()>
Update given transactions history record statuses to the given one.
sourcepub fn update_all_tx_history_records_status(
&self,
status: &str,
) -> WalletDbResult<()>
pub fn update_all_tx_history_records_status( &self, status: &str, ) -> WalletDbResult<()>
Update all transaction history records statuses to the given one.
Auto Trait Implementations§
impl Freeze for Drk
impl RefUnwindSafe for Drk
impl Send for Drk
impl Sync for Drk
impl !Unpin for Drk
impl UnwindSafe for Drk
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Conv for T
impl<T> Conv for T
§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.