[][src]Trait bitcoincore_rpc::RpcApi

pub trait RpcApi: Sized {
    fn call<T: for<'a> Deserialize<'a>>(
        &self,
        cmd: &str,
        args: &[Value]
    ) -> Result<T>; fn get_by_id<T: Queryable<Self>>(
        &self,
        id: &<T as Queryable<Self>>::Id
    ) -> Result<T> { ... }
fn add_multisig_address(
        &self,
        nrequired: usize,
        keys: &[PubKeyOrAddress],
        label: Option<&str>,
        address_type: Option<AddressType>
    ) -> Result<AddMultiSigAddressResult> { ... }
fn load_wallet(&self, wallet: &str) -> Result<LoadWalletResult> { ... }
fn unload_wallet(&self, wallet: Option<&str>) -> Result<()> { ... }
fn create_wallet(
        &self,
        wallet: &str,
        disable_private_keys: Option<bool>
    ) -> Result<LoadWalletResult> { ... }
fn backup_wallet(&self, destination: Option<&str>) -> Result<()> { ... }
fn dump_priv_key(&self, address: &Address) -> Result<SecretKey> { ... }
fn encrypt_wallet(&self, passphrase: &str) -> Result<()> { ... }
fn get_difficulty(&self) -> Result<BigUint> { ... }
fn get_connection_count(&self) -> Result<usize> { ... }
fn get_block(&self, hash: &Hash) -> Result<Block> { ... }
fn get_block_hex(&self, hash: &Hash) -> Result<String> { ... }
fn get_block_info(&self, hash: &Hash) -> Result<GetBlockResult> { ... }
fn get_block_header_raw(&self, hash: &Hash) -> Result<BlockHeader> { ... }
fn get_block_header_verbose(
        &self,
        hash: &Hash
    ) -> Result<GetBlockHeaderResult> { ... }
fn get_mining_info(&self) -> Result<GetMiningInfoResult> { ... }
fn get_blockchain_info(&self) -> Result<GetBlockchainInfoResult> { ... }
fn get_block_count(&self) -> Result<u64> { ... }
fn get_best_block_hash(&self) -> Result<Hash> { ... }
fn get_block_hash(&self, height: u64) -> Result<Hash> { ... }
fn get_raw_transaction(
        &self,
        txid: &Hash,
        block_hash: Option<&Hash>
    ) -> Result<Transaction> { ... }
fn get_raw_transaction_hex(
        &self,
        txid: &Hash,
        block_hash: Option<&Hash>
    ) -> Result<String> { ... }
fn get_raw_transaction_verbose(
        &self,
        txid: &Hash,
        block_hash: Option<&Hash>
    ) -> Result<GetRawTransactionResult> { ... }
fn get_block_filter(
        &self,
        block_hash: &Hash
    ) -> Result<GetBlockFilterResult> { ... }
fn get_balance(
        &self,
        minconf: Option<usize>,
        include_watchonly: Option<bool>
    ) -> Result<Amount> { ... }
fn get_received_by_address(
        &self,
        address: &Address,
        minconf: Option<u32>
    ) -> Result<Amount> { ... }
fn get_transaction(
        &self,
        txid: &Hash,
        include_watchonly: Option<bool>
    ) -> Result<GetTransactionResult> { ... }
fn list_transactions(
        &self,
        label: Option<&str>,
        count: Option<usize>,
        skip: Option<usize>,
        include_watchonly: Option<bool>
    ) -> Result<Vec<ListTransactionResult>> { ... }
fn get_tx_out(
        &self,
        txid: &Hash,
        vout: u32,
        include_mempool: Option<bool>
    ) -> Result<Option<GetTxOutResult>> { ... }
fn get_tx_out_proof(
        &self,
        txids: &[Hash],
        block_hash: Option<&Hash>
    ) -> Result<Vec<u8>> { ... }
fn import_public_key(
        &self,
        pubkey: &PublicKey,
        label: Option<&str>,
        rescan: Option<bool>
    ) -> Result<()> { ... }
fn import_priv_key(
        &self,
        privkey: &SecretKey,
        label: Option<&str>,
        rescan: Option<bool>
    ) -> Result<()> { ... }
fn import_address(
        &self,
        address: &Address,
        label: Option<&str>,
        rescan: Option<bool>,
        p2sh: Option<bool>
    ) -> Result<()> { ... }
fn import_multi(
        &self,
        requests: &[ImportMultiRequest],
        options: Option<&ImportMultiOptions>
    ) -> Result<Vec<ImportMultiResult>> { ... }
fn set_label(&self, address: &Address, label: &str) -> Result<()> { ... }
fn key_pool_refill(&self, new_size: Option<usize>) -> Result<()> { ... }
fn list_unspent(
        &self,
        minconf: Option<usize>,
        maxconf: Option<usize>,
        addresses: Option<&[Address]>,
        include_unsafe: Option<bool>,
        query_options: Option<ListUnspentQueryOptions>
    ) -> Result<Vec<ListUnspentResultEntry>> { ... }
fn lock_unspent(&self, outputs: &[OutPoint]) -> Result<bool> { ... }
fn unlock_unspent(&self, outputs: &[OutPoint]) -> Result<bool> { ... }
fn list_received_by_address(
        &self,
        address_filter: Option<&Address>,
        minconf: Option<u32>,
        include_empty: Option<bool>,
        include_watchonly: Option<bool>
    ) -> Result<Vec<ListReceivedByAddressResult>> { ... }
fn create_raw_transaction_hex(
        &self,
        utxos: &[CreateRawTransactionInput],
        outs: &HashMap<String, Amount>,
        locktime: Option<i64>,
        replaceable: Option<bool>
    ) -> Result<String> { ... }
fn create_raw_transaction(
        &self,
        utxos: &[CreateRawTransactionInput],
        outs: &HashMap<String, Amount>,
        locktime: Option<i64>,
        replaceable: Option<bool>
    ) -> Result<Transaction> { ... }
fn fund_raw_transaction<R: RawTx>(
        &self,
        tx: R,
        options: Option<&FundRawTransactionOptions>,
        is_witness: Option<bool>
    ) -> Result<FundRawTransactionResult> { ... }
fn sign_raw_transaction<R: RawTx>(
        &self,
        tx: R,
        utxos: Option<&[SignRawTransactionInput]>,
        private_keys: Option<&[PrivateKey]>,
        sighash_type: Option<SigHashType>
    ) -> Result<SignRawTransactionResult> { ... }
fn sign_raw_transaction_with_wallet<R: RawTx>(
        &self,
        tx: R,
        utxos: Option<&[SignRawTransactionInput]>,
        sighash_type: Option<SigHashType>
    ) -> Result<SignRawTransactionResult> { ... }
fn sign_raw_transaction_with_key<R: RawTx>(
        &self,
        tx: R,
        privkeys: &[PrivateKey],
        prevtxs: Option<&[SignRawTransactionInput]>,
        sighash_type: Option<SigHashType>
    ) -> Result<SignRawTransactionResult> { ... }
fn test_mempool_accept<R: RawTx>(
        &self,
        rawtxs: &[R]
    ) -> Result<Vec<TestMempoolAccept>> { ... }
fn stop(&self) -> Result<()> { ... }
fn verify_message(
        &self,
        address: &Address,
        signature: &Signature,
        message: &str
    ) -> Result<bool> { ... }
fn get_new_address(
        &self,
        label: Option<&str>,
        address_type: Option<AddressType>
    ) -> Result<Address> { ... }
fn generate_to_address(
        &self,
        block_num: u64,
        address: &Address
    ) -> Result<Vec<Hash>> { ... }
fn generate(
        &self,
        block_num: u64,
        maxtries: Option<u64>
    ) -> Result<Vec<Hash>> { ... }
fn invalidate_block(&self, block_hash: &Hash) -> Result<()> { ... }
fn reconsider_block(&self, block_hash: &Hash) -> Result<()> { ... }
fn get_raw_mempool(&self) -> Result<Vec<Hash>> { ... }
fn send_to_address(
        &self,
        address: &Address,
        amount: Amount,
        comment: Option<&str>,
        comment_to: Option<&str>,
        subtract_fee: Option<bool>,
        replaceable: Option<bool>,
        confirmation_target: Option<u32>,
        estimate_mode: Option<EstimateMode>
    ) -> Result<Hash> { ... }
fn get_peer_info(&self) -> Result<Vec<GetPeerInfoResult>> { ... }
fn ping(&self) -> Result<()> { ... }
fn send_raw_transaction<R: RawTx>(&self, tx: R) -> Result<Hash> { ... }
fn estimate_smartfee<E>(
        &self,
        conf_target: u16,
        estimate_mode: Option<EstimateMode>
    ) -> Result<EstimateSmartFeeResult> { ... }
fn wait_for_new_block(&self, timeout: u64) -> Result<BlockRef> { ... }
fn wait_for_block(&self, blockhash: &Hash, timeout: u64) -> Result<BlockRef> { ... } }

Required methods

fn call<T: for<'a> Deserialize<'a>>(
    &self,
    cmd: &str,
    args: &[Value]
) -> Result<T>

Call a cmd rpc with given args list

Loading content...

Provided methods

fn get_by_id<T: Queryable<Self>>(
    &self,
    id: &<T as Queryable<Self>>::Id
) -> Result<T>

Query an object implementing Querable type

fn add_multisig_address(
    &self,
    nrequired: usize,
    keys: &[PubKeyOrAddress],
    label: Option<&str>,
    address_type: Option<AddressType>
) -> Result<AddMultiSigAddressResult>

fn load_wallet(&self, wallet: &str) -> Result<LoadWalletResult>

fn unload_wallet(&self, wallet: Option<&str>) -> Result<()>

fn create_wallet(
    &self,
    wallet: &str,
    disable_private_keys: Option<bool>
) -> Result<LoadWalletResult>

fn backup_wallet(&self, destination: Option<&str>) -> Result<()>

fn dump_priv_key(&self, address: &Address) -> Result<SecretKey>

fn encrypt_wallet(&self, passphrase: &str) -> Result<()>

fn get_difficulty(&self) -> Result<BigUint>

fn get_connection_count(&self) -> Result<usize>

fn get_block(&self, hash: &Hash) -> Result<Block>

fn get_block_hex(&self, hash: &Hash) -> Result<String>

fn get_block_info(&self, hash: &Hash) -> Result<GetBlockResult>

fn get_block_header_raw(&self, hash: &Hash) -> Result<BlockHeader>

fn get_block_header_verbose(&self, hash: &Hash) -> Result<GetBlockHeaderResult>

fn get_mining_info(&self) -> Result<GetMiningInfoResult>

fn get_blockchain_info(&self) -> Result<GetBlockchainInfoResult>

Returns a data structure containing various state info regarding blockchain processing.

fn get_block_count(&self) -> Result<u64>

Returns the numbers of block in the longest chain.

fn get_best_block_hash(&self) -> Result<Hash>

Returns the hash of the best (tip) block in the longest blockchain.

fn get_block_hash(&self, height: u64) -> Result<Hash>

Get block hash at a given height

fn get_raw_transaction(
    &self,
    txid: &Hash,
    block_hash: Option<&Hash>
) -> Result<Transaction>

fn get_raw_transaction_hex(
    &self,
    txid: &Hash,
    block_hash: Option<&Hash>
) -> Result<String>

fn get_raw_transaction_verbose(
    &self,
    txid: &Hash,
    block_hash: Option<&Hash>
) -> Result<GetRawTransactionResult>

fn get_block_filter(&self, block_hash: &Hash) -> Result<GetBlockFilterResult>

fn get_balance(
    &self,
    minconf: Option<usize>,
    include_watchonly: Option<bool>
) -> Result<Amount>

fn get_received_by_address(
    &self,
    address: &Address,
    minconf: Option<u32>
) -> Result<Amount>

fn get_transaction(
    &self,
    txid: &Hash,
    include_watchonly: Option<bool>
) -> Result<GetTransactionResult>

fn list_transactions(
    &self,
    label: Option<&str>,
    count: Option<usize>,
    skip: Option<usize>,
    include_watchonly: Option<bool>
) -> Result<Vec<ListTransactionResult>>

fn get_tx_out(
    &self,
    txid: &Hash,
    vout: u32,
    include_mempool: Option<bool>
) -> Result<Option<GetTxOutResult>>

fn get_tx_out_proof(
    &self,
    txids: &[Hash],
    block_hash: Option<&Hash>
) -> Result<Vec<u8>>

fn import_public_key(
    &self,
    pubkey: &PublicKey,
    label: Option<&str>,
    rescan: Option<bool>
) -> Result<()>

fn import_priv_key(
    &self,
    privkey: &SecretKey,
    label: Option<&str>,
    rescan: Option<bool>
) -> Result<()>

fn import_address(
    &self,
    address: &Address,
    label: Option<&str>,
    rescan: Option<bool>,
    p2sh: Option<bool>
) -> Result<()>

fn import_multi(
    &self,
    requests: &[ImportMultiRequest],
    options: Option<&ImportMultiOptions>
) -> Result<Vec<ImportMultiResult>>

fn set_label(&self, address: &Address, label: &str) -> Result<()>

fn key_pool_refill(&self, new_size: Option<usize>) -> Result<()>

fn list_unspent(
    &self,
    minconf: Option<usize>,
    maxconf: Option<usize>,
    addresses: Option<&[Address]>,
    include_unsafe: Option<bool>,
    query_options: Option<ListUnspentQueryOptions>
) -> Result<Vec<ListUnspentResultEntry>>

fn lock_unspent(&self, outputs: &[OutPoint]) -> Result<bool>

To unlock, use [unlock_unspent].

fn unlock_unspent(&self, outputs: &[OutPoint]) -> Result<bool>

fn list_received_by_address(
    &self,
    address_filter: Option<&Address>,
    minconf: Option<u32>,
    include_empty: Option<bool>,
    include_watchonly: Option<bool>
) -> Result<Vec<ListReceivedByAddressResult>>

fn create_raw_transaction_hex(
    &self,
    utxos: &[CreateRawTransactionInput],
    outs: &HashMap<String, Amount>,
    locktime: Option<i64>,
    replaceable: Option<bool>
) -> Result<String>

fn create_raw_transaction(
    &self,
    utxos: &[CreateRawTransactionInput],
    outs: &HashMap<String, Amount>,
    locktime: Option<i64>,
    replaceable: Option<bool>
) -> Result<Transaction>

fn fund_raw_transaction<R: RawTx>(
    &self,
    tx: R,
    options: Option<&FundRawTransactionOptions>,
    is_witness: Option<bool>
) -> Result<FundRawTransactionResult>

fn sign_raw_transaction<R: RawTx>(
    &self,
    tx: R,
    utxos: Option<&[SignRawTransactionInput]>,
    private_keys: Option<&[PrivateKey]>,
    sighash_type: Option<SigHashType>
) -> Result<SignRawTransactionResult>

Deprecated

fn sign_raw_transaction_with_wallet<R: RawTx>(
    &self,
    tx: R,
    utxos: Option<&[SignRawTransactionInput]>,
    sighash_type: Option<SigHashType>
) -> Result<SignRawTransactionResult>

fn sign_raw_transaction_with_key<R: RawTx>(
    &self,
    tx: R,
    privkeys: &[PrivateKey],
    prevtxs: Option<&[SignRawTransactionInput]>,
    sighash_type: Option<SigHashType>
) -> Result<SignRawTransactionResult>

fn test_mempool_accept<R: RawTx>(
    &self,
    rawtxs: &[R]
) -> Result<Vec<TestMempoolAccept>>

fn stop(&self) -> Result<()>

fn verify_message(
    &self,
    address: &Address,
    signature: &Signature,
    message: &str
) -> Result<bool>

fn get_new_address(
    &self,
    label: Option<&str>,
    address_type: Option<AddressType>
) -> Result<Address>

Generate new address under own control

fn generate_to_address(
    &self,
    block_num: u64,
    address: &Address
) -> Result<Vec<Hash>>

Mine block_num blocks and pay coinbase to address

Returns hashes of the generated blocks

fn generate(&self, block_num: u64, maxtries: Option<u64>) -> Result<Vec<Hash>>

Mine up to block_num blocks immediately (before the RPC call returns) to an address in the wallet.

fn invalidate_block(&self, block_hash: &Hash) -> Result<()>

Mark a block as invalid by block_hash

fn reconsider_block(&self, block_hash: &Hash) -> Result<()>

Mark a block as valid by block_hash

fn get_raw_mempool(&self) -> Result<Vec<Hash>>

Get txids of all transactions in a memory pool

fn send_to_address(
    &self,
    address: &Address,
    amount: Amount,
    comment: Option<&str>,
    comment_to: Option<&str>,
    subtract_fee: Option<bool>,
    replaceable: Option<bool>,
    confirmation_target: Option<u32>,
    estimate_mode: Option<EstimateMode>
) -> Result<Hash>

fn get_peer_info(&self) -> Result<Vec<GetPeerInfoResult>>

Returns data about each connected network node as an array of PeerInfo

fn ping(&self) -> Result<()>

Requests that a ping be sent to all other nodes, to measure ping time.

Results provided in getpeerinfo, pingtime and pingwait fields are decimal seconds.

Ping command is handled in queue with all other commands, so it measures processing backlog, not just network ping.

fn send_raw_transaction<R: RawTx>(&self, tx: R) -> Result<Hash>

fn estimate_smartfee<E>(
    &self,
    conf_target: u16,
    estimate_mode: Option<EstimateMode>
) -> Result<EstimateSmartFeeResult>

fn wait_for_new_block(&self, timeout: u64) -> Result<BlockRef>

Waits for a specific new block and returns useful info about it. Returns the current block on timeout or exit.

Arguments

  1. timeout: Time in milliseconds to wait for a response. 0 indicates no timeout.

fn wait_for_block(&self, blockhash: &Hash, timeout: u64) -> Result<BlockRef>

Waits for a specific new block and returns useful info about it. Returns the current block on timeout or exit.

Arguments

  1. blockhash: Block hash to wait for.
  2. timeout: Time in milliseconds to wait for a response. 0 indicates no timeout.
Loading content...

Implementors

impl RpcApi for Client[src]

fn call<T: for<'a> Deserialize<'a>>(
    &self,
    cmd: &str,
    args: &[Value]
) -> Result<T>
[src]

Call an cmd rpc with given args list

Loading content...