lib/api.rb in ruby-client-1.2.1 vs lib/api.rb in ruby-client-1.2.2

- old
+ new

@@ -12,26 +12,36 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. =end +require "sorbet-runtime" +require_relative "types" + module Api attr_accessor :rpc + extend T::Sig # accounts - Returns a list of addresses owned by client. + sig { returns(T::Array[Types::Account]) } + def accounts result = @rpc.request("accounts") return result end # block_number - Returns the height of most recent block. + sig { returns(Integer) } + def block_number result = @rpc.request("blockNumber") return result end # consensus - Returns information on the current consensus state. + sig { returns(String) } + def consensus result = @rpc.request("consensus") return result end @@ -39,58 +49,72 @@ # When no parameter is given, it returns the value of the constant. # When giving a value as parameter, it sets the constant to the given value. # To reset the constant to the default value, the parameter "reset" should be used. # - @param [String] name - The class and name of the constant. (format should be Class.CONSTANT) # - @param [Integer] value - The new value of the constant or "reset". (optional) + sig { params(name: String, value: T.nilable(Integer)).returns(Integer) } + def constant(name, value = nil) if value result = @rpc.request("constant", name, value) else result = @rpc.request("constant", name) end return result end # create_account - Creates a new account and stores its private key in the client store. + sig { returns(Types::Wallet) } + def create_account result = @rpc.request("createAccount") return result end # create_raw_transaction - Creates and signs a transaction without sending it. # The transaction can then be send via `send_raw_transaction` without accidentally replaying it. # - @param [TransactionObject] transaction - The transaction object. + sig { params(transaction: Types::TransactionOutgoing).returns(String) } + def create_raw_transaction(transaction) result = @rpc.request("createRawTransaction", transaction) return result end - # # new: update with more info - # # get_raw_transaction_info - Checks signed_transaction raw information. - # # - @param [String] signed_transaction - The hex encoded signed transaction. - # def get_raw_transaction_info(signed_transaction) - # result = @rpc.request("getRawTransactionInfo", signed_transaction) - # return result - # end + # NEW + # get_raw_transaction_info - Checks signed_transaction raw information. + # - @param [String] signed_transaction - The hex encoded signed transaction. + sig { params(signed_transaction: String).returns(Object) } + def get_raw_transaction_info(signed_transaction) + result = @rpc.request("getRawTransactionInfo", signed_transaction) + return result + end + # get_account - Returns details for the account of given address. # - @param [String] address - Address to get account details. + sig { params(address: String).returns(Types::Account) } + def get_account(address) result = @rpc.request("getAccount", address) return result end # get_balance - Returns the balance of the account of given address. # - @param [String] address - Address to check for balance. + sig { params(address: String).returns(Integer) } + def get_balance(address) result = @rpc.request("getBalance", address) return result end # get_block_by_hash - Returns information about a block by hash. # - @param [String] block_hash - Hash of the block to gather information on. # - @param [Boolean] full_transactions (optional) - If true it returns the full transaction objects, if false only the hashes of the transactions. (default false) + sig { params(block_hash: String, full_transactions: T.nilable(T::Boolean)).returns(Types::Block) } + def get_block_by_hash(block_hash, full_transactions = nil) if full_transactions result = @rpc.request("getBlockByHash", block_hash, full_transactions) else result = @rpc.request("getBlockByHash", block_hash) @@ -99,10 +123,12 @@ end # get_block_by_number - Returns information about a block by block number. # - @param [Integer] block_number - The height of the block to gather information on. # - @param [Boolean] full_transactions (optional) - If true it returns the full transaction objects, if false only the hashes of the transactions. (default false) + sig { params(block_number: Integer, full_transactions: T.nilable(T::Boolean)).returns(Types::Block) } + def get_block_by_number(block_number, full_transactions = nil) if full_transactions result = @rpc.request("getBlockByNumber", block_number, full_transactions) else result = @rpc.request("getBlockByNumber", block_number) @@ -111,64 +137,80 @@ end # get_block_template - Returns a template to build the next block for mining. # This will consider pool instructions when connected to a pool. # - @param [String] address (optional) - Address to use as a miner for this block. This overrides the address provided during startup or from the pool. - # - @param [String] dada_field (optional) - Hex-encoded value for the extra data field. This overrides the address provided during startup or from the pool. - def get_block_template(address = nil, dada_field = nil) + # - @param [String] data_field (optional) - Hex-encoded value for the extra data field. This overrides the address provided during startup or from the pool. + sig { params(address: T.nilable(Integer), data_field: T.nilable(String)).returns(Types::BlockTemplate) } + + def get_block_template(address = nil, data_field = nil) result = @rpc.request("getBlockTemplate") return result end # get_block_transaction_count_by_hash - Returns the number of transactions in a block from a block matching the given block hash. # - @param [String] block_hash - Hash of the block. + sig { params(block_hash: String).returns(Integer) } + def get_block_transaction_count_by_hash(block_hash) result = @rpc.request("getBlockTransactionCountByHash", block_hash) return result end # get_block_transaction_count_by_number - Returns the number of transactions in a block matching the given block number. # - @param [Integer] block_number - Height of the block. + sig { params(block_number: Integer).returns(Integer) } + def get_block_transaction_count_by_number(block_number) result = @rpc.request("getBlockTransactionCountByNumber", block_number) return result end # get_transaction_by_block_hash_and_index - Returns information about a transaction by block hash and transaction index position. - # - @param [Integer] block_hash - Hash of the block containing the transaction. + # - @param [String] block_hash - Hash of the block containing the transaction. # - @param [Integer] transaction_index - Index of the transaction in the block. + sig { params(block_hash: String, transaction_index: Integer).returns(T.nilable(Types::Transaction)) } + def get_transaction_by_block_hash_and_index(block_hash, transaction_index) result = @rpc.request("getTransactionByBlockHashAndIndex", block_hash, transaction_index) return result end # get_transaction_by_block_number_and_index - Returns information about a transaction by block number and transaction index position. - # - @param [Integer] block_height - Height of the block containing the transaction. + # - @param [Integer] block_hash_index - Height of the block containing the transaction. # - @param [Integer] transaction_index - Index of the transaction in the block. - def get_transaction_by_block_number_and_index(block_height, transaction_index) - result = @rpc.request("getTransactionByBlockNumberAndIndex", block_height, transaction_index) + sig { params(block_hash_index: Integer, transaction_index: Integer).returns(T.nilable(Types::Transaction)) } + + def get_transaction_by_block_number_and_index(block_hash_index, transaction_index) + result = @rpc.request("getTransactionByBlockNumberAndIndex", block_hash_index, transaction_index) return result end # get_transaction_by_hash - Returns the information about a transaction requested by transaction hash. # - @param [String] transaction_hash - Hash of a transaction. + sig { params(transaction_hash: String).returns(T.nilable(Types::Transaction)) } + def get_transaction_by_hash(transaction_hash) result = @rpc.request("getTransactionByHash", transaction_hash) return result end # get_transaction_receipt - Returns the receipt of a transaction by transaction hash. # Note That the receipt is not available for pending transactions. # - @param [String] transaction_hash - Hash of a transaction. + sig { params(transaction_hash: String).returns(T.nilable(Types::TransactionReceipt)) } + def get_transaction_receipt(transaction_hash) result = @rpc.request("getTransactionReceipt", transaction_hash) return result end # get_transactions_by_address - Returns the latest transactions successfully performed by or for an address. # - @param [String] address - Address of which transactions should be gathered. # - @param [Integer] transactions_number (optional) - Number of transactions that shall be returned. (default 1000) + sig { params(address: String, transactions_number: T.nilable(Integer)).returns(T.nilable(T::Array[Types::Transaction])) } + def get_transactions_by_address(address, transactions_number = nil) if transactions_number result = @rpc.request("getTransactionsByAddress", address, transactions_number) else result = @rpc.request("getTransactionsByAddress", address) @@ -176,50 +218,64 @@ return result end # get_work - Returns instructions to mine the next block. This will consider pool instructions when connected to a pool. # - @param [String] address (optional) - Address to use as a miner for this block. This overrides the address provided during startup or from the pool. - # - @param [String] dada_field (optional) - Hex-encoded value for the extra data field. This overrides the address provided during startup or from the pool. - def get_work(address = nil, dada_field = nil) - result = @rpc.request("getWork", address, dada_field) + # - @param [String] data_field (optional) - Hex-encoded value for the extra data field. This overrides the address provided during startup or from the pool. + sig { params(address: T.nilable(String), data_field: T.nilable(String)).returns(Types::MiningWork) } + + def get_work(address = nil, data_field = nil) + result = @rpc.request("getWork", address, data_field) return result end # hashrate - Returns the number of hashes per second that the node is mining with. + sig { returns(T.any(Integer, Float)) } + def hashrate result = @rpc.request("hashrate") return result end # log - Sets the log level of the node. # - @param [String] tag - If the tag is '*' the log level will be set globally, otherwise the log level is applied only on this tag. # - @param [String] log_level - Log levels valid options: `trace`, `verbose`, `debug`, `info`, `warn`, `error`, `assert`. + sig { params(tag: String, log_level: String).returns(T::Boolean) } + def log(tag, log_level) result = @rpc.request("log", tag, log_level) return result end # mempool - Returns information on the current mempool situation. This will provide an overview of the number of transactions sorted into buckets based on their fee per byte (in smallest unit). + sig { returns(Object) } + def mempool result = @rpc.request("mempool") return result end # mempool_content - Returns transactions that are currently in the mempool. - def mempool_content + sig { params(include_full_transactions: T.nilable(T::Boolean)).returns(T.any(T.nilable(T::Array[Types::Transaction]), T.nilable(T::Array))) } + + def mempool_content(include_full_transactions = nil) result = @rpc.request("mempoolContent") return result end # miner_address - Returns the miner address. + sig { returns(String) } + def miner_address result = @rpc.request("minerAddress") return result end # miner_threads - Returns or sets the number of CPU threads for the miner. # - @param [Integer] set_threads (optional) - The number of threads to allocate for mining. + sig { params(set_threads: T.nilable(Integer)).returns(Integer) } + def miner_threads(set_threads = nil) if set_threads result = @rpc.request("minerThreads", set_threads) else result = @rpc.request("minerThreads") @@ -227,90 +283,114 @@ return result end # min_fee_per_byte - Returns or sets the minimum fee per byte. # - @param [Integer] set_min_fee (optional) - The new minimum fee per byte. + sig { params(set_min_fee: T.nilable(Integer)).returns(Integer) } + def min_fee_per_byte(set_min_fee = nil) if set_min_fee result = @rpc.request("minFeePerByte", set_min_fee) else result = @rpc.request("minFeePerByte") end return result end # mining - Returns `true` if client is actively mining new blocks. + sig { returns(T::Boolean) } + def mining result = @rpc.request("mining") return result end # peer_count - Returns number of peers currently connected to the client. + sig { returns(Integer) } + def peer_count result = @rpc.request("peerCount") return result end # peer_list - Returns list of peers known to the client. + sig { returns(T::Array[Types::Peer]) } + def peer_list result = @rpc.request("peerList") return result end # peer_state - Returns the state of the peer. # - @param [String] peer_address - The address of the peer. + sig { params(peer_address: String).returns(Types::Peer) } + def peer_state(peer_address) result = @rpc.request("peerState", peer_address) return result end # pool - Returns or sets the mining pool. # When no parameter is given, it returns the current mining pool. When a value is given as parameter, it sets the mining pool to that value. # - @param [String/Boolean] pool_address (optional) - The mining pool connection string (url:port) or boolean to enable/disable pool mining. - def pool(pool_address = nil) - if pool_address - result = @rpc.request("pool", pool_address) + sig { params(pool_address_or_action: T.nilable(T.any(String, T::Boolean))).returns(T.nilable(String)) } + + def pool(pool_address_or_action = nil) + if pool_address_or_action + result = @rpc.request("pool", pool_address_or_action) else result = @rpc.request("pool") end return result end # pool_confirmed_balance - Returns the confirmed mining pool balance. + sig { returns(Integer) } + def pool_confirmed_balance result = @rpc.request("poolConfirmedBalance") return result end # pool_connection_state - Returns the connection state to mining pool. + sig { returns(Integer) } + def pool_connection_state result = @rpc.request("poolConnectionState") return result end # send_raw_transaction - Sends a signed message call transaction or a contract creation, if the data field contains code. # - @param [String] signed_transaction - The hex encoded signed transaction. + sig { params(signed_transaction: String).returns(Object) } + def send_raw_transaction(signed_transaction) result = @rpc.request("sendRawTransaction", signed_transaction) return result end # send_transaction - Creates new message call transaction or a contract creation, if the data field contains code. # - @param [TransactionObject] transaction - The transaction object. + sig { params(transaction: Types::TransactionOutgoing).returns(String) } + def send_transaction(transaction) result = @rpc.request("sendTransaction", transaction) return result end # submit_block - Submits a block to the node. When the block is valid, the node will forward it to other nodes in the network. # When submitting work from getWork, remember to include the suffix. # - @param [String] block - Hex-encoded full block (including header, interlink and body). + sig { params(block: String) } + def submit_block(block) result = @rpc.request("submitBlock", block) return result end # syncing - Returns an object with data about the sync status or `false`. + sig { returns(T.any(Object, T::Boolean)) } + def syncing result = @rpc.request("syncing") return result end end