@conflux-dev/conflux-address-js

The encoder and decoder for Conflux Network address

Usage no npm install needed!

<script type="module">
  import confluxDevConfluxAddressJs from 'https://cdn.skypack.dev/@conflux-dev/conflux-address-js';
</script>

README

conflux-address-js

The simple encoder and decoder for Conflux address.

Check CIP-37 for the protocols.

Install

$ npm install @conflux-dev/conflux-address-js

Opt-in for performance

To gain a address conversion performance boost, you can install @conflux-dev/conflux-address-rust in your project. Which will be used to replace the purejs version and can gain a 10-100 performance boost.

$ npm install --save-optional @conflux-dev/conflux-address-rust

Usage

Encoding

const confluxAddr = require('@conflux-dev/conflux-address-js')
const hexBuffer = Buffer.from('106d49f8505410eb4e671d51f7d96d2c87807b09', 'hex')
const netId = 1029 // Conflux main-net

console.log(confluxAddr.encode(hexBuffer, netId))
// cfx:aajg4wt2mbmbb44sp6szd783ry0jtad5bea80xdy7p

console.log(confluxAddr.encode(hexBuffer, netId, true)) // verbose mode to generate address with type
// CFX:TYPE.USER:AAJG4WT2MBMBB44SP6SZD783RY0JTAD5BEA80XDY7P

Decoding

const confluxAddr = require('@conflux-dev/conflux-address-js')
console.log(confluxAddr.decode('cfx:aajg4wt2mbmbb44sp6szd783ry0jtad5bea80xdy7p'))
/*
{ hexAddress:
   <Buffer 10 6d 49 f8 50 54 10 eb 4e 67 1d 51 f7 d9 6d 2c 87 80 7b 09>,
  netId: 1029,
  type: 'user' }
 */


console.log(confluxAddr.decode('CFX:TYPE.USER:AAJG4WT2MBMBB44SP6SZD783RY0JTAD5BEA80XDY7P'))
/*
{ hexAddress:
   <Buffer 10 6d 49 f8 50 54 10 eb 4e 67 1d 51 f7 d9 6d 2c 87 80 7b 09>,
  netId: 1029,
  type: 'user' }
 */

API

  • encode: Low level encode method
  • decode: Low level decode method
  • isValidCfxAddress: Return a boolean value indicating whether the address is valid
  • verifyCfxAddress: Check whether a address is valid, if not will throw an error
  • hasNetworkPrefix: Check a string whether has an network prefix
  • simplifyCfxAddress: Return a non verbose address
  • shortenCfxAddress: Return a shorten address
  • isZeroAddress: Check whether a address is zero address
  • isInternalContractAddress: Check where a address is Conflux InternalContract address
  • isValidHexAddress: Check whether a address is valid hex address
  • isValidCfxHexAddress: Check where a address is valid Conflux hex address