npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@geekberry/js-ethereum-sdk

v0.0.11

Published

JavaScript Ethereum Software Development Kit

Downloads

12

Readme

@geekberry/js-ethereum-sdk


BLOCK_NUMBER

blockNumber label

  • PENDING 'pending': the currently mined block (including pending transactions)
  • LATEST 'latest': the latest block (current head of the block chain)
  • EARLIEST 'earliest': earliest block number, same as 0.

TRANSACTION_GAS

number

gas use for pure transfer transaction

  • Examples
> CONST.TRANSACTION_GAS
 21000

Contract

Contract with all its methods and events defined in its abi.

Contract.prototype.constructor

contract "code" definition:

6080................6080.................a264.........0033...............................
| <-                     create contract transaction `data`                          -> |
| <- deploy code -> | <- runtime code -> | <- metadata -> | <- constructor arguments -> |
| <-                contract `bytecode`                -> |
                    | <-       code as `getCode`       -> |
  • Parameters

Name | Type | Required | Default | Description -----------------|------------|----------|---------|----------------------------------------------------------------------------------------------------- options | object | true | | options.abi | array | true | | The json interface for the contract to instantiate options.address | string | false | | The address of the smart contract to call, can be added later using contract.address = '0x1234...' options.bytecode | string | false | | The byte code of the contract, can be added later using contract.constructor.code = '0x1234...' client | Ethereum | true | | Ethereum instance.

  • Returns

object

  • Examples
> const contract = client.Contract({ abi, bytecode, address });
   {
      abi: ContractABI { contract: [Circular *1] },
      address: '0x8e2f2e68eb75bb8b18caafe9607242d4748f8d98',
      constructor: [Function: bound call],
      name: [Function: bound call],
      'name()': [Function: bound call],
      '0x06fdde03': [Function: bound call],
      balanceOf: [Function: bound call],
      'balanceOf(address)': [Function: bound call],
      '0x70a08231': [Function: bound call],
      send: [Function: bound call],
      'send(address,uint256,bytes)': [Function: bound call],
      '0x9bd9bbc6': [Function: bound call],
      Transfer: [Function: bound call],
      'Transfer(address,address,uint256)': [Function: bound call],
      '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef': [Function: bound call]
   }
> contract.constructor.bytecode; // input code
   "0x6080..."
> const contract = client.Contract({
   address: '0x8e2f2e68eb75bb8b18caafe9607242d4748f8d98',
   abi: [
      {
        type: 'function',
        name: 'name',
        inputs: [],
        outputs: [{ type: 'string' }],
      },
      {
        type: 'function',
        name: 'balanceOf',
        inputs: [{ type: 'address' }],
        outputs: [{ type: 'uint256' }],
      },
      {
        name: 'send',
        type: 'function',
        inputs: [
          { type: 'address', name: 'recipient' },
          { type: 'uint256', name: 'amount' },
          { type: 'bytes', name: 'data' },
        ],
        outputs: [{ type: 'bool' }],
      },
    ]
   });
> contract.address
   "0x8e2f2e68eb75bb8b18caafe9607242d4748f8d98"
> await contract.name(); // call a method without parameter, get decoded return value.
   "FansCoin"
> await contract.name().call({ to: '0x8b8689c7f3014a4d86e4d1d0daaf74a47f5e0f27' }); // call a method with options
   "client USDT"
> await contract.balanceOf('0x19c742cec42b9e4eff3b84cdedcde2f58a36f44f'); // call a method with parameters, get decoded return value.
   10000000000000000000n
> transaction = await client.getTransactionByHash('0x2055f3287f1a6ce77d91f5dfdf7517a531b3a560fee1265f27dc1ff92314530b');
> contract.abi.decodeData(transaction.data)
   {
      name: 'send',
      fullName: 'send(address recipient, uint256 amount, bytes data)',
      type: 'send(address,uint256,bytes)',
      signature: '0x9bd9bbc6',
      array: [
        '0x80bb30efc5683758128b404fe5da03432eb16634',
        60000000000000000000n,
        <Buffer 1f 3c 6b 96 96 60 4c dc 3c e1 ca 27 7d 4c 69 a9 c2 77 0c 9f>
      ],
      object: {
        recipient: '0x80bb30efc5683758128b404fe5da03432eb16634',
        amount: 60000000000000000000n,
        data: <Buffer 1f 3c 6b 96 96 60 4c dc 3c e1 ca 27 7d 4c 69 a9 c2 77 0c 9f>
      }
    }
> receipt = await client.getTransactionReceipt('0x2055f3287f1a6ce77d91f5dfdf7517a531b3a560fee1265f27dc1ff92314530b');
> contract.abi.decodeLog(receipt.logs[1]);
   {
      name: 'Transfer',
      fullName: 'Transfer(address indexed from, address indexed to, uint256 value)',
      type: 'Transfer(address,address,uint256)',
      signature: '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
      array: [
        '0x1f3c6b9696604cdc3ce1ca277d4c69a9c2770c9f',
        '0x80bb30efc5683758128b404fe5da03432eb16634',
        60000000000000000000n
      ],
      object: {
        from: '0x1f3c6b9696604cdc3ce1ca277d4c69a9c2770c9f',
        to: '0x80bb30efc5683758128b404fe5da03432eb16634',
        value: 60000000000000000000n
      }
    }

Ethereum

A sdk of ethereum.

Ethereum.prototype.constructor

  • Parameters

Name | Type | Required | Default | Description ------------------------|-----------------|----------|---------|------------------------------------------------------- options | object | false | | Provider constructor options. options.defaultGasPrice | string,number | false | | The default gas price in drip to use for transactions. options.url | string | false | | Url of node to connect. options.timeout | number | false | | Request time out in ms options.logger | Object | false | | Logger object with 'info' and 'error' method.

  • Examples
> const client = new Ethereum({
     url: 'http://localhost:8000',
     defaultGasPrice: 100,
     logger: console,
   });

Ethereum.prototype.provider

WebsocketProvider,HttpProvider,BaseProvider

Provider for rpc call

Ethereum.prototype.wallet

Wallet

Wallet for sendTransaction to get Account by from field

~~Ethereum.prototype.defaultGasPrice~~

number,string

Default gas price for following methods:

  • client.sendTransaction

Ethereum.prototype.Contract

A shout cut for new Contract(options, client);

  • Parameters

Name | Type | Required | Default | Description --------|----------|----------|---------|----------------------------------------------------- options | object | true | | See Contract.constructor

  • Returns

Contract - A Contract instance

Ethereum.prototype.close

close connection.

  • Examples
> client.close();

Ethereum.prototype.getNetVersion

  • Returns

Promise.<string>

  • Examples
> await client.getNetVersion()
   "Mainnet"

Ethereum.prototype.getChainId

  • Returns

Promise.<number>

  • Examples
> await client.getChainId()
   42

Ethereum.prototype.getProtocolVersion

  • Returns

Promise.<number>

  • Examples
> await client.getProtocolVersion()
   65

Ethereum.prototype.getGasPrice

Returns the current price per gas in Wei.

  • Returns

Promise.<BigInt> Gas price in drip.

  • Examples
> await client.getGasPrice();
   1n

Ethereum.prototype.getBalance

Returns the balance of the account of given address.

  • Parameters

Name | Type | Required | Default | Description ------------|-----------------|----------|---------------------------|--------------------------------------------------------------------- address | string | true | | The address to get the balance of. blockNumber | string,number | false | CONST.BLOCK_NUMBER.LATEST | See format.blockNumber

  • Returns

Promise.<BigInt> The balance in Wei.

  • Examples
> await client.getBalance("0x1c1e72f0c37968557b3d85a3f32747792798bbde");
   824812401057514588670n

Ethereum.prototype.getTransactionCount

Returns the next nonce should be used by given address.

  • Parameters

Name | Type | Required | Default | Description ------------|-----------------|----------|---------|--------------------------------------------------------------------- address | string | true | | The address to get the numbers of transactions from. blockNumber | string,number | false | | See format.blockNumber

  • Returns

Promise.<number> The next nonce should be used by given address.

  • Examples
> await client.getTransactionCount("0x1c1e72f0c37968557b3d85a3f32747792798bbde");
   1449

Ethereum.prototype.getBlockNumber

Returns the block number of given parameter.

  • Returns

Promise.<number> integer of the current block number of given parameter.

  • Examples
> await client.getEpochNumber();
   443

Ethereum.prototype.getBlockByNumber

Returns information about a block by block number.

  • Parameters

Name | Type | Required | Default | Description ------------|-----------------|----------|---------|--------------------------------------------------------------------------------------------------- blockNumber | string,number | false | | See format.blockNumber detail | boolean | false | false | If true it returns the full transaction objects, if false only the hashes of the transactions.

  • Returns

Promise.<(object|null)> See getBlockByHash

  • Examples
> await client.getBlockByNumber('latest', true);
   {
      author: '0x0010f94b296a852aaac52ea6c5ac72e03afd032d',
      difficulty: 131072n,
      extraData: '0xd5830105048650617269747986312e31352e31826c69',
      gasLimit: 4700000n,
      gasUsed: 0n,
      hash: '0xc06fce521f37996a72053c301484ae9746ae70ee848e0476780a9b915e16e749',
      logsBloom: '0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
      miner: '0x0010f94b296a852aaac52ea6c5ac72e03afd032d',
      number: 4096,
      parentHash: '0xb4c94836f52fae22057225d7dd774b08c7e4673a137dee80cd05b6a90b4197ec',
      receiptsRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421',
      sealFields: [
        '0x84162e398f',
        '0xb8414614b11ef1c77413a7b5adff0fe944c0637873d43123146deb1c8f4c7e4c39795e4ce607b38cc4059523f1a2ef4c7c8e2c090567c3e0f7dc0a53ddc61f665fa500'
      ],
      sha3Uncles: '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347',
      signature: '4614b11ef1c77413a7b5adff0fe944c0637873d43123146deb1c8f4c7e4c39795e4ce607b38cc4059523f1a2ef4c7c8e2c090567c3e0f7dc0a53ddc61f665fa500',
      size: 565,
      stateRoot: '0xa483a83d65d35e0360c5559e04496c39bcbb134ecabde9e7684f2ffde3934b4b',
      step: '372128143',
      timestamp: 1488512571,
      totalDifficulty: 537001984n,
      transactions: [],
      transactionsRoot: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421',
      uncles: []
   }

Ethereum.prototype.getBlockByHash

Returns information about a block by hash.

  • Parameters

Name | Type | Required | Default | Description ----------|-----------|----------|---------|--------------------------------------------------------------------------------------------------- blockHash | string | true | | hash of a block. detail | boolean | false | false | If true it returns the full transaction objects, if false only the hashes of the transactions.

  • Returns

Promise.<(object|null)> See getBlockByNumber

Ethereum.prototype.getTransactionByHash

Returns the information about a transaction requested by transaction hash.

  • Parameters

Name | Type | Required | Default | Description ----------------|----------|----------|---------|---------------------- transactionHash | string | true | | hash of a transaction

  • Returns

Promise.<(object|null)> transaction object, or null when no transaction was found:

  • Examples
> await client.getTransactionByHash('0x984087858bf39943a4deb7069383a90535563aed511248bdcb0982b3acfb65c7');
   {
      blockHash: '0x0f375d45b687dde0f319e0a915144a53361eccf29eacecb007ae1bf45e505ddb',
      blockNumber: 24792868,
      chainId: 42,
      condition: null,
      creates: '0x6c0aa308bd810863ae5c0348604642863a5896c9',
      from: '0xf09b8dda559292111af945e91717da39eef34ade',
      gas: 1636419n,
      gasPrice: 1000000000n,
      hash: '0x984087858bf39943a4deb7069383a90535563aed511248bdcb0982b3acfb65c7',
      input: '0x60806040523480156200001157600080fd5b506040518060400160405280600981526020016844654375732042544360b81b815250604051806040016040528060048152602001634542544360e01b815250816004908051906020019062000069929190620001e9565b5080516200007f906005906020840190620001e9565b50506006805461ff001960ff1990911660121716905550620000a3600033620000d5565b620000cf7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000d5565b62000285565b620000e18282620000e5565b5050565b6000828152602081815260409091206200010a91839062000be16200015e821b17901c565b15620000e1576200011a6200017e565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000175836001600160a01b03841662000182565b90505b92915050565b3390565b6000620001908383620001d1565b620001c85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000178565b50600062000178565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200022c57805160ff19168380011785556200025c565b828001600101855582156200025c579182015b828111156200025c5782518255916020019190600101906200023f565b506200026a9291506200026e565b5090565b5b808211156200026a57600081556001016200026f565b6118c080620002956000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d53913931461051f578063d547741f14610527578063dd62ed3e14610553578063e63ab1e914610581576101a9565b8063a457c2d7146104aa578063a9059cbb146104d6578063ca15c87314610502576101a9565b80639010d07c116100d35780639010d07c1461042f57806391d148541461046e57806395d89b411461049a578063a217fddf146104a2576101a9565b806370a08231146103d557806379cc6790146103fb5780638456cb5914610427576101a9565b8063313ce567116101665780633f4ba83a116101405780633f4ba83a1461037c57806340c10f191461038457806342966c68146103b05780635c975abb146103cd576101a9565b8063313ce5671461030657806336568abe146103245780633950935114610350576101a9565b806306fdde03146101ae578063095ea7b31461022b57806318160ddd1461026b57806323b872dd14610285578063248a9ca3146102bb5780632f2ff15d146102d8575b600080fd5b6101b6610589565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f05781810151838201526020016101d8565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561024157600080fd5b506001600160a01b03813516906020013561061f565b604080519115158252519081900360200190f35b61027361063d565b60408051918252519081900360200190f35b6102576004803603606081101561029b57600080fd5b506001600160a01b03813581169160208101359091169060400135610643565b610273600480360360208110156102d157600080fd5b50356106ca565b610304600480360360408110156102ee57600080fd5b50803590602001356001600160a01b03166106df565b005b61030e61074b565b6040805160ff9092168252519081900360200190f35b6103046004803603604081101561033a57600080fd5b50803590602001356001600160a01b0316610754565b6102576004803603604081101561036657600080fd5b506001600160a01b0381351690602001356107b5565b610304610803565b6103046004803603604081101561039a57600080fd5b506001600160a01b038135169060200135610872565b610304600480360360208110156103c657600080fd5b50356108e1565b6102576108f5565b610273600480360360208110156103eb57600080fd5b50356001600160a01b0316610903565b6103046004803603604081101561041157600080fd5b506001600160a01b03813516906020013561091e565b610304610978565b6104526004803603604081101561044557600080fd5b50803590602001356109e5565b604080516001600160a01b039092168252519081900360200190f35b6102576004803603604081101561048457600080fd5b50803590602001356001600160a01b0316610a04565b6101b6610a1c565b610273610a7d565b610257600480360360408110156104c057600080fd5b506001600160a01b038135169060200135610a82565b610257600480360360408110156104ec57600080fd5b506001600160a01b038135169060200135610aea565b6102736004803603602081101561051857600080fd5b5035610afe565b610273610b15565b6103046004803603604081101561053d57600080fd5b50803590602001356001600160a01b0316610b39565b6102736004803603604081101561056957600080fd5b506001600160a01b0381358116916020013516610b92565b610273610bbd565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106155780601f106105ea57610100808354040283529160200191610615565b820191906000526020600020905b8154815290600101906020018083116105f857829003601f168201915b5050505050905090565b600061063361062c610bf6565b8484610bfa565b5060015b92915050565b60035490565b6000610650848484610ce6565b6106c08461065c610bf6565b6106bb856040518060600160405280602881526020016116ea602891396001600160a01b038a1660009081526002602052604081209061069a610bf6565b6001600160a01b031681526020810191909152604001600020549190610e43565b610bfa565b5060019392505050565b60009081526020819052604090206002015490565b600082815260208190526040902060020154610702906106fd610bf6565b610a04565b61073d5760405162461bcd60e51b815260040180806020018281038252602f8152602001806115e8602f913960400191505060405180910390fd5b6107478282610eda565b5050565b60065460ff1690565b61075c610bf6565b6001600160a01b0316816001600160a01b0316146107ab5760405162461bcd60e51b815260040180806020018281038252602f815260200180611832602f913960400191505060405180910390fd5b6107478282610f43565b60006106336107c2610bf6565b846106bb85600260006107d3610bf6565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610fac565b61082d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610a04565b6108685760405162461bcd60e51b81526004018080602001828103825260398152602001806116396039913960400191505060405180910390fd5b610870611006565b565b61089c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610a04565b6108d75760405162461bcd60e51b81526004018080602001828103825260368152602001806117126036913960400191505060405180910390fd5b61074782826110a7565b6108f26108ec610bf6565b82611199565b50565b600654610100900460ff1690565b6001600160a01b031660009081526001602052604090205490565b6000610955826040518060600160405280602481526020016117486024913961094e86610949610bf6565b610b92565b9190610e43565b905061096983610963610bf6565b83610bfa565b6109738383611199565b505050565b6109a27f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610a04565b6109dd5760405162461bcd60e51b81526004018080602001828103825260378152602001806117d66037913960400191505060405180910390fd5b610870611295565b60008281526020819052604081206109fd908361131a565b9392505050565b60008281526020819052604081206109fd9083611326565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106155780601f106105ea57610100808354040283529160200191610615565b600081565b6000610633610a8f610bf6565b846106bb8560405180606001604052806025815260200161180d6025913960026000610ab9610bf6565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610e43565b6000610633610af7610bf6565b8484610ce6565b60008181526020819052604081206106379061133b565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b600082815260208190526040902060020154610b57906106fd610bf6565b6107ab5760405162461bcd60e51b81526004018080602001828103825260308152602001806116ba6030913960400191505060405180910390fd5b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006109fd836001600160a01b038416611346565b3390565b6001600160a01b038316610c3f5760405162461bcd60e51b81526004018080602001828103825260248152602001806117b26024913960400191505060405180910390fd5b6001600160a01b038216610c845760405162461bcd60e51b81526004018080602001828103825260228152602001806116726022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610d2b5760405162461bcd60e51b815260040180806020018281038252602581526020018061178d6025913960400191505060405180910390fd5b6001600160a01b038216610d705760405162461bcd60e51b81526004018080602001828103825260238152602001806115c56023913960400191505060405180910390fd5b610d7b838383611390565b610db881604051806060016040528060268152602001611694602691396001600160a01b0386166000908152600160205260409020549190610e43565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610de79082610fac565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610ed25760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e97578181015183820152602001610e7f565b50505050905090810190601f168015610ec45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828152602081905260409020610ef29082610be1565b1561074757610eff610bf6565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081905260409020610f5b908261139b565b1561074757610f68610bf6565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000828201838110156109fd576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61100e6108f5565b611056576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6006805461ff00191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61108a610bf6565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b038216611102576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300'... 3996 more characters,
      nonce: 1008,
      publicKey: '0x54dada743fa835164c693546b3f2e04129e8b8d0b03b2d68cbdac73bee3679a2950dd864834472c742ed1be598d22d691a32542426eab423b781051c99e0f945',
      r: '0x618082ac56778588961ca2d1383ffcb90d2db1692edcae8f83aea8414278e488',
      raw: '0xf91ba98203f0843b9aca008318f8438080b91b5560806040523480156200001157600080fd5b506040518060400160405280600981526020016844654375732042544360b81b815250604051806040016040528060048152602001634542544360e01b815250816004908051906020019062000069929190620001e9565b5080516200007f906005906020840190620001e9565b50506006805461ff001960ff1990911660121716905550620000a3600033620000d5565b620000cf7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000d5565b62000285565b620000e18282620000e5565b5050565b6000828152602081815260409091206200010a91839062000be16200015e821b17901c565b15620000e1576200011a6200017e565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000175836001600160a01b03841662000182565b90505b92915050565b3390565b6000620001908383620001d1565b620001c85750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000178565b50600062000178565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200022c57805160ff19168380011785556200025c565b828001600101855582156200025c579182015b828111156200025c5782518255916020019190600101906200023f565b506200026a9291506200026e565b5090565b5b808211156200026a57600081556001016200026f565b6118c080620002956000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063a457c2d711610097578063d539139311610071578063d53913931461051f578063d547741f14610527578063dd62ed3e14610553578063e63ab1e914610581576101a9565b8063a457c2d7146104aa578063a9059cbb146104d6578063ca15c87314610502576101a9565b80639010d07c116100d35780639010d07c1461042f57806391d148541461046e57806395d89b411461049a578063a217fddf146104a2576101a9565b806370a08231146103d557806379cc6790146103fb5780638456cb5914610427576101a9565b8063313ce567116101665780633f4ba83a116101405780633f4ba83a1461037c57806340c10f191461038457806342966c68146103b05780635c975abb146103cd576101a9565b8063313ce5671461030657806336568abe146103245780633950935114610350576101a9565b806306fdde03146101ae578063095ea7b31461022b57806318160ddd1461026b57806323b872dd14610285578063248a9ca3146102bb5780632f2ff15d146102d8575b600080fd5b6101b6610589565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f05781810151838201526020016101d8565b50505050905090810190601f16801561021d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102576004803603604081101561024157600080fd5b506001600160a01b03813516906020013561061f565b604080519115158252519081900360200190f35b61027361063d565b60408051918252519081900360200190f35b6102576004803603606081101561029b57600080fd5b506001600160a01b03813581169160208101359091169060400135610643565b610273600480360360208110156102d157600080fd5b50356106ca565b610304600480360360408110156102ee57600080fd5b50803590602001356001600160a01b03166106df565b005b61030e61074b565b6040805160ff9092168252519081900360200190f35b6103046004803603604081101561033a57600080fd5b50803590602001356001600160a01b0316610754565b6102576004803603604081101561036657600080fd5b506001600160a01b0381351690602001356107b5565b610304610803565b6103046004803603604081101561039a57600080fd5b506001600160a01b038135169060200135610872565b610304600480360360208110156103c657600080fd5b50356108e1565b6102576108f5565b610273600480360360208110156103eb57600080fd5b50356001600160a01b0316610903565b6103046004803603604081101561041157600080fd5b506001600160a01b03813516906020013561091e565b610304610978565b6104526004803603604081101561044557600080fd5b50803590602001356109e5565b604080516001600160a01b039092168252519081900360200190f35b6102576004803603604081101561048457600080fd5b50803590602001356001600160a01b0316610a04565b6101b6610a1c565b610273610a7d565b610257600480360360408110156104c057600080fd5b506001600160a01b038135169060200135610a82565b610257600480360360408110156104ec57600080fd5b506001600160a01b038135169060200135610aea565b6102736004803603602081101561051857600080fd5b5035610afe565b610273610b15565b6103046004803603604081101561053d57600080fd5b50803590602001356001600160a01b0316610b39565b6102736004803603604081101561056957600080fd5b506001600160a01b0381358116916020013516610b92565b610273610bbd565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106155780601f106105ea57610100808354040283529160200191610615565b820191906000526020600020905b8154815290600101906020018083116105f857829003601f168201915b5050505050905090565b600061063361062c610bf6565b8484610bfa565b5060015b92915050565b60035490565b6000610650848484610ce6565b6106c08461065c610bf6565b6106bb856040518060600160405280602881526020016116ea602891396001600160a01b038a1660009081526002602052604081209061069a610bf6565b6001600160a01b031681526020810191909152604001600020549190610e43565b610bfa565b5060019392505050565b60009081526020819052604090206002015490565b600082815260208190526040902060020154610702906106fd610bf6565b610a04565b61073d5760405162461bcd60e51b815260040180806020018281038252602f8152602001806115e8602f913960400191505060405180910390fd5b6107478282610eda565b5050565b60065460ff1690565b61075c610bf6565b6001600160a01b0316816001600160a01b0316146107ab5760405162461bcd60e51b815260040180806020018281038252602f815260200180611832602f913960400191505060405180910390fd5b6107478282610f43565b60006106336107c2610bf6565b846106bb85600260006107d3610bf6565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490610fac565b61082d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610a04565b6108685760405162461bcd60e51b81526004018080602001828103825260398152602001806116396039913960400191505060405180910390fd5b610870611006565b565b61089c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633610a04565b6108d75760405162461bcd60e51b81526004018080602001828103825260368152602001806117126036913960400191505060405180910390fd5b61074782826110a7565b6108f26108ec610bf6565b82611199565b50565b600654610100900460ff1690565b6001600160a01b031660009081526001602052604090205490565b6000610955826040518060600160405280602481526020016117486024913961094e86610949610bf6565b610b92565b9190610e43565b905061096983610963610bf6565b83610bfa565b6109738383611199565b505050565b6109a27f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33610a04565b6109dd5760405162461bcd60e51b81526004018080602001828103825260378152602001806117d66037913960400191505060405180910390fd5b610870611295565b60008281526020819052604081206109fd908361131a565b9392505050565b60008281526020819052604081206109fd9083611326565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106155780601f106105ea57610100808354040283529160200191610615565b600081565b6000610633610a8f610bf6565b846106bb8560405180606001604052806025815260200161180d6025913960026000610ab9610bf6565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190610e43565b6000610633610af7610bf6565b8484610ce6565b60008181526020819052604081206106379061133b565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b600082815260208190526040902060020154610b57906106fd610bf6565b6107ab5760405162461bcd60e51b81526004018080602001828103825260308152602001806116ba6030913960400191505060405180910390fd5b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60006109fd836001600160a01b038416611346565b3390565b6001600160a01b038316610c3f5760405162461bcd60e51b81526004018080602001828103825260248152602001806117b26024913960400191505060405180910390fd5b6001600160a01b038216610c845760405162461bcd60e51b81526004018080602001828103825260228152602001806116726022913960400191505060405180910390fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610d2b5760405162461bcd60e51b815260040180806020018281038252602581526020018061178d6025913960400191505060405180910390fd5b6001600160a01b038216610d705760405162461bcd60e51b81526004018080602001828103825260238152602001806115c56023913960400191505060405180910390fd5b610d7b838383611390565b610db881604051806060016040528060268152602001611694602691396001600160a01b0386166000908152600160205260409020549190610e43565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610de79082610fac565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008184841115610ed25760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e97578181015183820152602001610e7f565b50505050905090810190601f168015610ec45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828152602081905260409020610ef29082610be1565b1561074757610eff610bf6565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000828152602081905260409020610f5b908261139b565b1561074757610f68610bf6565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000828201838110156109fd576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b61100e6108f5565b611056576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b6006805461ff00191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61108a610bf6565b604080516001600160a01b039092168252519081900360200190a1565b6001600160a01b038216611102576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420'... 4170 more characters,
      s: '0x6445a2b853334205e8f5bd341e13cb1eeb2f66b99a8ac674e2801911ae6f5b4e',
      standardV: '0x0',
      to: null,
      transactionIndex: 78,
      v: 119,
      value: 0n
   }

Ethereum.prototype.getTransactionReceipt

Returns the information about a transaction receipt requested by transaction hash.

  • Parameters

Name | Type | Required | Default | Description ----------------|----------|----------|---------|---------------------- transactionHash | string | true | | Hash of a transaction

  • Returns

Promise.<(object|null)> A transaction receipt object, or null when no transaction was found or the transaction was not executed yet:

  • Examples
> await client.getTransactionReceipt('0x984087858bf39943a4deb7069383a90535563aed511248bdcb0982b3acfb65c7');
   {
      blockHash: '0x0f375d45b687dde0f319e0a915144a53361eccf29eacecb007ae1bf45e505ddb',
      blockNumber: 24792868,
      contractAddress: '0x6c0aa308bd810863ae5c0348604642863a5896c9',
      cumulativeGasUsed: 9196345n,
      from: '0xf09b8dda559292111af945e91717da39eef34ade',
      gasUsed: 1636419n,
      logs: [],
      logsBloom: '0x00000004000000000000000000000000000000000000000080000000000000000000000000000000000100000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000020000000000000008000800000000000000000000000000000000000000080000000000002000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000100002000000020000000000000000000000000000000000000000400000000000000000000000000',
      status: 1,
      to: null,
      transactionHash: '0x984087858bf39943a4deb7069383a90535563aed511248bdcb0982b3acfb65c7',
      transactionIndex: 78
   }

Ethereum.prototype.sendRawTransaction

Creates new message call transaction or a contract creation for signed transactions.

  • Parameters

Name | Type | Required | Default | Description -----|-----------------|----------|---------|----------------------------- hex | string,Buffer | true | | The signed transaction data.

  • Returns

Promise.<PendingTransaction> The transaction hash, or the zero hash if the transaction is not yet available.

  • Examples
> await client.sendRawTransaction('0xf85f800382520894bbd9e9b...');
   "0xbe007c3eca92d01f3917f33ae983f40681182cf618defe75f490a65aac016914"

Ethereum.prototype.sendTransaction

  • Parameters

Name | Type | Required | Default | Description --------|----------|----------|---------|------------ options | object | true | |

  • Returns

Promise.<PendingTransaction>

Ethereum.prototype.getCode

Returns the code of given contract.

  • Parameters

Name | Type | Required | Default | Description ------------|-----------------|----------|---------------------------|--------------------------------------------------------------------- address | string | true | | Address to contract. blockNumber | string,number | false | CONST.BLOCK_NUMBER.LATEST | See format.blockNumber

  • Returns

Promise.<string> Byte code of contract, or 0x if the contract does not exist.

  • Examples
> await client.getCode('0xb385b84f08161f92a195953b980c8939679e906a');
   "0x6080604052348015600f57600080fd5b506004361060325760003560e01c806306661abd1460375780638..."

Ethereum.prototype.getStorageAt

Returns storage entries from a given contract.

  • Parameters

Name | Type | Required | Default | Description ------------|-----------------|----------|----------------|--------------------------------------------------------------------- address | string | true | | Address to contract. position | string | true | | The given position. blockNumber | string,number | false | 'latest_state' | See format.blockNumber

  • Returns

Promise.<(string|null)> Storage entry of given query, or null if the it does not exist.

  • Examples
> await client.getStorageAt('0x866aca87ff33a0ae05d2164b3d999a804f583222', '0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9')
   "0x000000000000000000000000000000000000000000000000000000000000162e"

Ethereum.prototype.call

Virtually call a contract, return the output data.

  • Parameters

Name | Type | Required | Default | Description ------------|-----------------|----------|---------------------------|--------------------------------------------------------------------- options | object | true | | See Transaction blockNumber | string,number | false | CONST.BLOCK_NUMBER.LATEST | See format.blockNumber

  • Returns

Promise.<string> The output data.

Ethereum.prototype.estimateGas

Virtually call a contract, return the estimate gas used and storage collateralized.

  • Parameters

Name | Type | Required | Default | Description ------------|-----------------|----------|---------------------------|--------------------------------------------------------------------- options | object | true | | See Transaction blockNumber | string,number | false | CONST.BLOCK_NUMBER.LATEST | See format.blockNumber

  • Returns

Promise.<BigInt> : estimate gas used

Ethereum.prototype.getLogs

Returns logs matching the filter provided.

  • Parameters

Name | Type | Required | Default | Description ------------------|-------------------------|----------|---------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- options | object | false | | options.fromBlock | string,number | false | CONST.BLOCK_NUMBER.LATEST | See format.blockNumber. Search will be applied from this block number. options.toBlock | string,number | false | CONST.BLOCK_NUMBER.LATEST | See format.blockNumber. Search will be applied up until (and including) this block number. options.blockHash | string | false | | Array of up to 128 block hashes that the search will be applied to. This will override from/to block fields if it's not null options.address | string,Array.<string> | false | | Search contract addresses. If null, match all. If specified, log must be produced by one of these addresses. options.topics | array | false | | Search topics. Logs can have 4 topics: the function signature and up to 3 indexed event arguments. The elements of topics match the corresponding log topics. Example: ["0xA", null, ["0xB", "0xC"], null] matches logs with "0xA" as the 1st topic AND ("0xB" OR "0xC") as the 3rd topic. If null, match all.

  • Returns

Promise.<Array.<object>> Array of log, that the logs matching the filter provided:

  • Examples
> await client.getLogs({
      address: '0x1f9840a85d5af5bf1d1762f925bdaddc4201f984',
      fromEpoch: 25053320,
      toEpoch: 25053330,
      topics: ['0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'],
    });
   [
   {
        address: '0x1f9840a85d5af5bf1d1762f925bdaddc4201f984',
        blockHash: '0x1b7be9c59838df1c0e86e2b2fa7f60e87cb5113e9a7ef2e7d91aff4dc4883be2',
        blockNumber: 25053327,
        data: '0x000000000000000000000000000000000000000000000000016345785d8a0000',
        logIndex: 10,
        removed: false,
        topics: [
          '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
          '0x00000000000000000000000091af345dbc5807975ad5d9face987c808a6649ba',
          '0x0000000000000000000000005388ce76b762530ec8df097e012462389ce8a70c'
        ],
        transactionHash: '0x220d8ef94f713d80c62abd3cf40f0640d8da0f2a4d5086eb846537e7de02a54e',
        transactionIndex: 2,
        transactionLogIndex: 1,
        type: 'mined'
     }
   ]

Ethereum.prototype.subscribe

Subscribe event by name and got id, and provider will emit event by id

Note: suggest use client.subscribeXXX to subscribe

  • Parameters

Name | Type | Required | Default | Description --------|----------|----------|---------|----------------------- name | string | true | | Subscription name ...args | array | true | | Subscription arguments

  • Returns

Promise.<string> Id of subscription

  • Examples
> client = new Ethereum({url:'ws://127.0.0.1:12535'})
> id = await client.subscribe('newHeads');
   "0x8fe7879a1681e9b9"
> client.provider.on(id, data=>console.log(data));
   {...}

Ethereum.prototype.subscribeNewHeads

The newHeads topic streams all new block headers participating in the consensus.

  • Returns

Promise.<Subscription> EventEmitter instance with the follow events:

  • 'data': see getBlockByHash
  • Examples
> subscription = await client.subscribeNewHeads()
> subscription.on('data', data=>console.log(data))
   {
      number: 24908378,
      hash: '0xb6b8641011e90f747c8addb8ae38c622348f07e852af50f688c2bcbd975b4402',
      parentHash: '0xf6ef56360d258f7ae1eb91c3dcee477c2022d1ce5e0780f9852b5a1ea953ae5b',
      sha3Uncles: '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347',
      logsBloom: '0x000000400000200001000080000000000000010000100800020800000010000001800000000020000000040000000000002000100000000000000000002000000000002000000000000400080000000000010200000802000000a400c000000400000801820000008004601000002a20200000000000800010002030002000400800040200008010240000000900000001804001008000000000100080080200021000000000002000000010000103000000000000000000000000a00000020000020002000000000000800000000000000800000000080000008020800020020010000040080008000001000000200008000000800000480000000000814000',
      transactionsRoot: '0xf499abdb0439a896543f0bc9ca5b6f110452b3d1b3fa672626e917065b52139b',
      stateRoot: '0x0225ba245d86c0f64bd4cd7690b6af2a41ccef62034353f22ec6f72e8dc87b58',
      receiptsRoot: '0xb61ec060497fbb6208bc17255553ced836d1e9a468154d2f1a415825a1e66e57',
      miner: '0x03801efb0efe2a25ede5dd3a003ae880c0292e4d',
      author: '0x03801efb0efe2a25ede5dd3a003ae880c0292e4d',
      difficulty: 340282366920938463463374607431768211454n,
      extraData: '0xdb830302058c4f70656e457468657265756d86312e34372e30826c69',
      size: 5925,
      gasLimit: 12499988n,
      gasUsed: 1853185n,
      timestamp: 1621323232,
    }

Ethereum.prototype.subscribeLogs

The logs topic streams all logs matching a certain filter, in order. In case of a pivot chain reorg (which might affect recent logs), a special revert message is sent. All logs received previously that belong to blocks larger than the one in this message should be considered invalid.

  • Parameters

Name | Type | Required | Default | Description ----------------|-------------------------|----------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- options | object | false | | options.address | string,Array.<string> | false | | Search contract addresses. If null, match all. If specified, log must be produced by one of these addresses. options.topics | array | false | | Search topics. Logs can have 4 topics: the function signature and up to 3 indexed event arguments. The elements of topics match the corresponding log topics. Example: ["0xA", null, ["0xB", "0xC"], null] matches logs with "0xA" as the 1st topic AND ("0xB" OR "0xC") as the 3rd topic. If null, match all.

  • Returns

Promise.<Subscription> EventEmitter instance with the follow events:

  • 'data': see getLogs
  • 'removed': see getLogs
  • Examples
> subscription = await client.subscribeLogs()
> subscription.on('data', data=>console.log(data))
   {
      address: '0x1f9840a85d5af5bf1d1762f925bdaddc4201f984',
      blockHash: '0x1b7be9c59838df1c0e86e2b2fa7f60e87cb5113e9a7ef2e7d91aff4dc4883be2',
      blockNumber: 25053327,
      data: '0x000000000000000000000000000000000000000000000000016345785d8a0000',
      logIndex: 10,
      removed: false,
      topics: [
        '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
        '0x00000000000000000000000091af345dbc5807975ad5d9face987c808a6649ba',
        '0x0000000000000000000000005388ce76b762530ec8df097e012462389ce8a70c'
      ],
      transactionHash: '0x220d8ef94f713d80c62abd3cf40f0640d8da0f2a4d5086eb846537e7de02a54e',
      transactionIndex: 2,
      transactionLogIndex: 1,
      type: 'mined'
   }
> subscription.on('removed', data=>console.log(data))

Ethereum.prototype.subscribeNewPendingTransactions

  • Returns

Promise.<Subscription>

  • Examples
> subscription = await client.subscribeNewPendingTransactions()
> subscription.on('data', data=>console.log(data))
   "0x984087858bf39943a4deb7069383a90535563aed511248bdcb0982b3acfb65c7"

Ethereum.prototype.unsubscribe

Unsubscribe subscription.

  • Parameters

Name | Type | Required | Default | Description -----|-----------------------|----------|---------|---------------- id | string,Subscription | true | | Subscription id

  • Returns

Promise.<boolean> Is success

  • Examples
> id = await client.subscribe('newPendingTransactions');
> await client.unsubscribe(id);
   true
> await client.unsubscribe(id);
   false
> subscription = await client.subscribeLogs();
> await client.unsubscribe(subscription);
   true

BaseProvider

BaseProvider.prototype.constructor

  • Parameters

Name | Type | Required | Default | Description ----------------|----------|----------|---------|------------------------------- options | object | false | | options.url | string | true | | Full json rpc http url options.timeout | number | false | 60*1000 | Request time out in ms options.logger | object | false | | Logger with info and error

  • Returns

BaseProvider

BaseProvider.prototype.requestId

Gen a random json rpc id. It is used in call method, overwrite it to gen your own id.

  • Returns

string

BaseProvider.prototype.call

Call a json rpc method with params

  • Parameters

Name | Type | Required | Default | Description ----------|----------|----------|---------|------------------------ method | string | true | | Json rpc method name. ...params | array | false | | Json rpc method params.

  • Returns

Promise.<*> Json rpc method return value.

  • Examples
> await provider.call('eth_blockNumber');
> await provider.call('eth_getBlockByHash', blockHash);

BaseProvider.prototype.batch

Batch call json rpc methods with params

  • Parameters

Name | Type | Required | Default | Description ------|------------------|----------|---------|------------------------------------------- array | Array.<object> | true | | Array of object with "method" and "params"

  • Returns

Promise.<Array>

  • Examples
> await provider.batch([
  { method: 'cfx_blockNumber' },
  { method: 'cfx_getBalance', params: ['0x0123456789012345678901234567890123456789'] },
  { method: 'InValidInput' },
])
   [ '0x3b734d', '0x22374d959c622f74728', RPCError: Method not found ]

HttpProvider

Http protocol json rpc provider.


providerFactory

  • Parameters

Name | Type | Required | Default | Description ------------|----------|----------|---------|------------ options | object | true | | options.url | string | true | |

  • Returns

WebsocketProvider,HttpProvider,BaseProvider

  • Examples
> providerFactory()
 BaseProvider {
    url: undefined,
    timeout: 300000,
    logger: { info: [Function: info], error: [Function: error] }
  }
> providerFactory({ url: 'http://localhost:12537' })
 HttpProvider {
    url: 'http://localhost:12537',
    timeout: 300000,
    logger: { info: [Function: info], error: [Function: error] }
  }
> providerFactory({
    url: 'http://main.confluxrpc.org',
    timeout: 60 * 60 * 1000,
    logger: console,
  }
 HttpProvider {
    url: 'http://main.confluxrpc.org',
    timeout: 3600000,
    logger: {...}
  }

WebSocketProvider

Websocket protocol json rpc provider.

WebSocketProvider.prototype.constructor

  • Parameters

Name | Type | Required | Default | Description --------------------------------------------|------------------|----------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------- options | object | false | | See W3CWebSocket options.url | string | true | | Full json rpc http url options.timeout | number | false | 60*1000 | Request time out in ms options.logger | object | false | | Logger with info and error options.protocols | Array.<string> | false | | See w3 options.origin | string | false | | options.headers | object | false | | options.requestOptions | object | false | | options.clientConfig | object | false | | See websocket/lib/WebSocketClient options.clientConfig.maxReceivedFrameSize | number | false | 0x100000 | 1MiB max frame size. options.clientConfig.maxReceivedMessageSize | number | false | 0x800000 | 8MiB max message size, only applicable if assembleFragments is true options.clientConfig.closeTimeout | number | false | 5000 | The number of milliseconds to wait after sending a close frame for an acknowledgement to come back before giving up and just closing the socket.

  • Returns

WebSocketProvider


Subscription

Subscription event emitter


Transaction

Transaction.prototype.constructor

Create a transaction.

  • Parameters

Name | Type | Required | Default | Description -----------------|-----------------|----------|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------ options | object | true | | options.from | string | false | | The sender address. options.nonce | string,number | false | | This allows to overwrite your own pending transactions that use the same nonce. options.gasPrice | string,number | false | | The price of gas for this transaction in drip. options.to | string | false | | The destination address of the message, left undefined for a contract-creation transaction. options.value | string,number | false | | The value transferred for the transaction in drip, also the endowment if it’s a contract-creation transaction. options.chainId | string,number | false | | The chain ID specified by the sender. options.data | string,Buffer | false | | Either a ABI byte string containing the data of the function call on a contract, or in the case of a contract-creation transaction the initialisation code. options.r | string,Buffer | false | | ECDSA signature r options.s | string,Buffer | false | | ECDSA signature s options.v | number | false | | ECDSA recovery id

  • Returns

Transaction

Transaction.prototype.hash

Getter of transaction hash include signature.

Note: calculate every time.

  • Returns

string,undefined If transaction has r,s,v return hex string, else return undefined.

Transaction.prototype.sign

Sign transaction and set 'r','s','v'.

  • Parameters

Name | Type | Required | Default | Description -----------|----------|----------|---------|------------------------ privateKey | string | true | | Private key hex string.

  • Returns

Transaction

Transaction.prototype.recover

Recover public key from signed Transaction.

  • Returns

string

Transaction.prototype.encode <a id="Transa