@nodefactory/filecoin-address v1.0.1
filecoin-address
Provides functions for generation of keypairs and protocol-1 addresses for filecoin network.
Usage
yarn add @nodefactory/filecoin-address
API
function keyPairFromPrivateKey(privateKey: Uint8Array | string, network?: FilecoinNetwork): KeyPairCreates KeyPair from provided private key. Return value KeyPair has string readonly properties publicKey, privateKey, address.
function keyPairFromSeed(seed: string, network?: FilecoinNetwork): KeyPairCreates KeyPair from provided string seed. Return value KeyPair has string readonly properties publicKey, privateKey, address.
function publicKeyToAddress(publicKey: Uint8Array | string, network?: FilecoinNetwork): stringReturns address for provided public key as hex string or Uint8Array.
network
Every functions has optional parameter network that can be "f" (representing filecoin mainnet) or "t" (representing filecoin testnet)
If network is omitted on invocation, address is returned as string representing raw address that is not encoded (structure below).
|----------|---------------------|
| protocol | payload |
|----------|---------------------|
| 1 | blake2b-160(PubKey) |If network is provided, address is encoded and returned as string (structure below).
|------------|----------|---------------------|----------|
| network | protocol | payload | checksum |
|------------|----------|---------------------|----------|
| 'f' or 't' | '1' | blake2b-160(PubKey) | 4 bytes |
base32[................................]Example
keyPairFromPrivateKey
import {keyPairFromPrivateKey} from "filecoin-address";
const generatedKeypair = keyPairFromPrivateKey(privateKeyAsUint8ArrayOrString, "f");
console.log(generatedKeypair.publicKey);
// 048bfab3a70675389cf61836a09d2dd7a61163905d88c0d507ed18a1b94e7119f3e36646cd711337f373b91814fe7258a58e2206273620f71254928389930abd70
console.log(generatedKeypair.privateKey);
// 663b1374b4ae5242ae51984a2c358e57e355c2a96b9cd9a0cde902cbc432fa79
console.log(generatedKeypair.address);
// f1j5klxt6zktifpibt7jlafmdxkfe4fwjhm6yqjhqkeyPairFromSeed
import {keyPairFromSeed} from "filecoin-address";
const generatedKeypair = keyPairFromSeed("3a47b554c417b75545b5545545545e", "f");
console.log(generatedKeypair.publicKey);
// 048bfab3a70675389cf61836a09d2dd7a61163905d88c0d507ed18a1b94e7119f3e36646cd711337f373b91814fe7258a58e2206273620f71254928389930abd70
console.log(generatedKeypair.privateKey);
// 663b1374b4ae5242ae51984a2c358e57e355c2a96b9cd9a0cde902cbc432fa79
console.log(generatedKeypair.address);
// f1j5klxt6zktifpibt7jlafmdxkfe4fwjhm6yqjhqpublicKeyToAddress
import {publicKeyToAddress} from "filecoin-address";
const address = publicKeyToAddress(publicKeyAsUint8ArrayOrString, "f");
console.log(address);
// f1j5klxt6zktifpibt7jlafmdxkfe4fwjhm6yqjhqDeveloped by
