@filfox/fnsjs
TypeScript icon, indicating that this package has built-in type declarations

1.1.7 • Public • Published

Library for FNS

FNS is Filecoin Name Service based on FEVM, developed by Filfox Team.

Homepage: https://fns.space
App: https://app.fns.space
Doc: https://fns-dao.gitbook.io/fns-doc

Installation

yarn add @filfox/fnsjs ethers

Getting Started

import FNS from '@filfox/fnsjs'
import { ethers } from 'ethers'

const fns = new FNS('calibration') // or 'mainnet'

// The fns instance has a default read-only provider, but of course, you can set your own provider :
const provider = new ethers.providers.JsonRpcProvider(RPC)
fns.setProvider(provider)

// If you are in a pure node script environment, you may need to use it like the following :
const FNS = require('@filfox/fnsjs')
const fns = new FNS('calibration') // or 'mainnet'

fns methods

  • setProvider(provider: any)
  • getProvider()
  • setSigner(signer: any)
  • getSigner()
  • name(name: string): Name
  • address(address: string): Address
  • lookupAddress(addr: string): Promise
  • getResolver(): string
  • getNameBase(name: string): Promise
  • getNameAddrs(name: string): Promise
  • getNameTexts(name: string): Promise
  • getNameInfo(name: string): Promise
  • getAvailable(name: string): Promise
  • getPrice(name: string, months = 12, unit?: 'fil' | 'usd'): Promise<BigNumberish | string>
  • getRegistrant(name: string): Promise
  • getExpires(name: string, format?: string): Promise
  • getExpired(name: string): Promise
  • getController(name: string): Promise
  • getContent(name: string): Promise
  • getText(name: string, key: string): Promise
  • getAddrOf(name: string, coin: string): Promise
  • getPrimaryName(addr: string): Promise
  • getOwnershipNames(addr: string): Promise<string []>
  • register(name: string, owner: string, months: number): Promise
  • renew(name: string, months: number): Promise
  • transferControl(name: string, addr: string): Promise
  • transferOwnership(name: string, to: string): Promise
  • setController(name: string, addr: string): Promise
  • setContent(name: string, content: string)
  • setText(name: string, key: string, val: string): Promise
  • setTexts(name: string, texts: Record<string, string>): Promise
  • setAddrOf(name: string, coin: string, addr: string): Promise
  • setAddrs(name: string, addrMap: Record<string, string>): Promise
  • setPrimaryName(name: string): Promise
  • setSubName(name: string, subname: string, owner: string): Promise

fns.name() methods

  • getBase()
  • getInfo()
  • getText()
  • getTexts()
  • getAvailable()
  • getPrice()
  • getRegistrant()
  • getController()
  • getExpires()
  • getExpired()
  • getContent()
  • getAddr()
  • getAddrs()
  • getAddrOf()
  • setController()
  • setContent()
  • setText()
  • setTexts()
  • setAddrOf()
  • setAddrs()
  • setPrimaryName()
  • setSubName()
  • register()
  • renew()
  • transferControlTo()
  • transferOwnershipTo()

getBase()

Method: getBase()
Return: Promise<object>, get name base information

Example: 
fns.name('yamy.fil').getBase()
or
fns.getBase('yamy.fil')

Result: 
{
    name: 'yamy.fil',
    available: false,
    expires: '2024-05-04 07:21',
    expired: false,
    registrant: '0x6FBfd1ee64Ae1c027eDa61c2e1FB975E18F68F35',
    controller: '0x7e5b29792F4cAF463A7faADd028fCA53b6a2241F',
    resolver: '0xb28f7372f27dC2Ef104F2a3347FdcAaA86D2d3Cc'
}

getInfo()

Method: getInfo()
Return: Promise<object>, get name detail information

Example: 
fns.name('web3.fil').getInfo()
or
fns.getInfo('web3.fil')

Result: 
{
    name: 'yamy.fil',
    available: false,
    expires: '2024-05-04 07:21',
    expired: false,
    registrant: '0x6FBfd1ee64Ae1c027eDa61c2e1FB975E18F68F35',
    controller: '0x7e5b29792F4cAF463A7faADd028fCA53b6a2241F',
    resolver: '0xb28f7372f27dC2Ef104F2a3347FdcAaA86D2d3Cc',
    addrs: { 
    	fil: 'f4kxv6m7a7uoe6d3qsjokw4pzkogf6ojadqdn3dhi', 
    	eth: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e', 
    	btc: '1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2', 
    	ltc: 'LdNFQrJLsCHW1zZKjGyPcqpiMuNvry7BUh', 
    	doge: 'D9yU9D8zqcRfvJSNXFfHefYnuPVaQA5M2N'
	},
    texts: {
            projectname: '',
            banner: '',
		filecoincid: 'bafybeigxj6o4gpyw5c3rhxbllyudkbld3ztt7kfq3qbrjjejbunevyd3zm',
		email: 'example@gmail.com',
		url: 'https://example.com',
		avatar: 'https://example.com/avatar.png',
		description: 'I am a software engineer with experience in blockchain development.',
		'com.twitter': '@example',
		'com.discord': 'example#1234',
		'com.reddit': 'u/example',
		'com.telegram': '@example',
		'com.github': 'example'
	},
    content: 'CONTENT'
}

getAddrs()

Method: getAddrs()
Return: Promise<object>, get all coins addresses

Example: 
fns.name('yamy.fil').getAddrs()
or
fns.getAddrs('yamy.fil')

Result:
{ 
    fil: 'f4kxv6m7a7uoe6d3qsjokw4pzkogf6ojadqdn3dhi', 
    eth: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e', 
    btc: '1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2', 
    ltc: 'LdNFQrJLsCHW1zZKjGyPcqpiMuNvry7BUh', 
    doge: 'D9yU9D8zqcRfvJSNXFfHefYnuPVaQA5M2N'
}

getTexts()

Method: getTexts()
Return: Promise<object>, get all text informations

Example: 
fns.name('yamy.fil').getTexts()
or
fns.getTexts('yamy.fil')

Result:
{
      projectname: '',
      banner: '',
	filecoincid: 'bafybeigxj6o4gpyw5c3rhxbllyudkbld3ztt7kfq3qbrjjejbunevyd3zm',
	email: 'example@gmail.com',
	url: 'https://example.com',
	avatar: 'https://example.com/avatar.png',
	description: 'I am a software engineer with experience in blockchain development.',
	'com.twitter': '@example',
	'com.discord': 'example#1234',
	'com.reddit': 'u/example',
	'com.telegram': '@example',
	'com.github': 'example'
}

getAvailable()

Method: getAvailable()
Return: Promise<boolean>, get if available of the name

Example: 
fns.name('yamy.fil').getAvailable()
or
fns.getAvailable('yamy.fil')

Result:
false

getPrice(months?: number)

Method: getPrice(months?: number, unit?: 'fil' | 'usd')
Params: months: register or renew months, default by 12
Return: Promise<BigNumberish|string>, get register or renew price

Example: 

fns.name('yamy.fil').getPrice(12)
or
fns.getPrice('yamy.fil', 12)

=> BigNumber { _hex: '0x0daef6dd95ac0000', _isBigNumber: true }

fns.name('yamy.fil').getPrice(12, 'fil')
or
fns.getPrice('yamy.fil', 12, 'fil')

=> 0.9859968

fns.name('yamy.fil').getPrice(12, 'usd')
or
fns.getPrice('yamy.fil', 12, 'usd')

=> 3.5241

getRegistrant()

Method: getRegistrant()
Return: Promise<string> get registrant of the name

Example:

fns.name('yamy.fil').getRegistrant()
or
fns.getRegistrant('yamy.fil')

Result:
0xf70f118432221a98fca961e65dd7303a8ba1fc76

getExpires(format?: string)

Method: getExpires(format?: string)
Params: format: time format, default by none
Return: Promise<string|number> get expires time

Example:

fns.name('yamy.fil').getExpires()
or
fns.getExpires('yamy.fil')

=> 1719991260

fns.name('yamy.fil').getExpires('YYYY-MM-DD HH:mm')
or
fns.getExpires('yamy.fil', 'YYYY-MM-DD HH:mm')

=> 2024-07-03 07:21

getExpired()

Method: getExpired()
Return: Promise<string> get if a name has expired

Example:

fns.name('yamy.fil').getExpired()
or
fns.getExpired('yamy.fil')

Result:
false

getController()

Method: getController()
Return: Promise<string> get controller address

Example:

fns.name('yamy.fil').getController()
or
fns.getController('yamy.fil')

Result:
0x00ab1c3f84a2c48f1a2d3b7fca69445c39bc6883

getContent()

Method: getContent()
Return: Promise<string> get content stirng

Example:

fns.name('yamy.fil').getContent()
or
fns.getContent('yamy.fil')

Result:
CONTENT123

getText(key: string)

Method: getText(key: string)
Params: key: text key
Return: Promise<string>, get text value of the key

Example:

fns.name('yamy.fil').getText('email')
or
fns.getText('yamy.fil', 'email')

Result:
470032665@web3.com

getAddr()

Method: getAddr()
Return: Promise<string> get fil address

Example:

fns.name('yamy.fil').getAddr()
or
fns.getAddr('yamy.fil')

Result:
f4kxv6m7a7uoe6d3qsjokw4pzkogf6ojadqdn3dhi

getAddrOf(coin: string)

Method: getAddrOf(coin: string)
Params: coin: The coin you want to query
Return: Promise<string>, get coin address

Example:

fns.name('yamy.fil').getAddrOf('eth')
or
fns.getAddrOf('yamy.fil', 'eth')

Result:
0x6FBfd1ee64Ae1c027eDa61c2e1FB975E18F68F35

register(owner: string, months: number)

Method: register(owner: string, months: number)
Params: owner: owner, months: number of months
Return: Promise<tx>

Example:

fns.name('yamy.fil').register('0x00ab1c3f84a2c48f1a2d3b7fca69445c39bc6883', 1)
or
fns.getAddrOf('yamy.fil', '0x00ab1c3f84a2c48f1a2d3b7fca69445c39bc6883', 1)

Result:
{
      type: 2,
      chainId: 3141,
      nonce: 334,
      maxPriorityFeePerGas: BigNumber { _hex: '0x59682f00', _isBigNumber: true },
      maxFeePerGas: BigNumber { _hex: '0x59682fc8', _isBigNumber: true },
      gasPrice: null,
      gasLimit: BigNumber { _hex: '0x0b791bd8', _isBigNumber: true },
      to: '0xcf38A805f2F5f0b9E96cE6Cfb1059D5CDEDa5cf0',
      value: BigNumber { _hex: '0x3a03af47530000', _isBigNumber: true },
      data: '0x5692a2cf00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000ab1c3f84a2c48f1a2d3b7fca69445c39bc68830000000000000000000000000000000000000000000000000000000000278d00000000000000000000000000b28f7372f27dc2ef104f2a3347fdcaaa86d2d3cc00000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000779616d79393939000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
      accessList: [],
      hash: '0x3268d7a2233bd6a43886ba21009427e40cb73568d5a3ceff17db356b50869815',
      v: 1,
      r: '0x5879adb69264352c6dc0cc420fdb61464771cbf935643fe40642eeb749d91638',
      s: '0x31a97c08bf0622f4efb642330749a3634d6297396dbd0be5f9bc9e1e8564c3a8',
      from: '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883',
      confirmations: 0,
      wait: [Function (anonymous)]
}

renew(months: number)

Method: renew(months: number)
Params: months: the number of months you want to renew your name
Return: Promise<tx>

Example:

fns.name('yamy.fil').renew(1)
or
fns.getAddrOf('yamy.fil', 1)

Result:
{
      type: 2,
      chainId: 3141,
      nonce: 333,
      maxPriorityFeePerGas: BigNumber { _hex: '0x59682f00', _isBigNumber: true },
      maxFeePerGas: BigNumber { _hex: '0x59682fc8', _isBigNumber: true },
      gasPrice: null,
      gasLimit: BigNumber { _hex: '0x02ae6daa', _isBigNumber: true },
      to: '0xcf38A805f2F5f0b9E96cE6Cfb1059D5CDEDa5cf0',
      value: BigNumber { _hex: '0x0123e9e7cc790000', _isBigNumber: true },
      data: '0xacf1a84100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000278d00000000000000000000000000000000000000000000000000000000000000000479616d7900000000000000000000000000000000000000000000000000000000',
      accessList: [],
      hash: '0xe70413acde387ae543c33fcf4f3ee932e884129a07d3bfc039605fc0d67280f4',
      v: 0,
      r: '0x70967dd5779c2c3c3118a8be53858181e1e146f50f904903640d75d303fec31c',
      s: '0x44cefa8da2dc7a5cece13583b49a468610ebfd5fca9aef7a034d4d4a37e5d98d',
      from: '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883',
      confirmations: 0,
      wait: [Function (anonymous)]
}

transferControlTo(addr: string)

Method: transferControlTo(addr: string)
Params: addr: new controller
Return: Promise<tx>

Example:

fns.name('yamy.fil').transferControlTo('0x6FBfd1ee64Ae1c027eDa61c2e1FB975E18F68F35')
or
fns.transferControl('yamy.fil', '0x6FBfd1ee64Ae1c027eDa61c2e1FB975E18F68F35')

Result:
{
      type: 2,
      chainId: 3141,
      nonce: 333,
      maxPriorityFeePerGas: BigNumber { _hex: '0x59682f00', _isBigNumber: true },
      maxFeePerGas: BigNumber { _hex: '0x59682fc8', _isBigNumber: true },
      gasPrice: null,
      gasLimit: BigNumber { _hex: '0x02ae6daa', _isBigNumber: true },
      to: '0xcf38A805f2F5f0b9E96cE6Cfb1059D5CDEDa5cf0',
      value: BigNumber { _hex: '0x0123e9e7cc790000', _isBigNumber: true },
      data: '0xacf1a84100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000278d00000000000000000000000000000000000000000000000000000000000000000479616d7900000000000000000000000000000000000000000000000000000000',
      accessList: [],
      hash: '0xe70413acde387ae543c33fcf4f3ee932e884129a07d3bfc039605fc0d67280f4',
      v: 0,
      r: '0x70967dd5779c2c3c3118a8be53858181e1e146f50f904903640d75d303fec31c',
      s: '0x44cefa8da2dc7a5cece13583b49a468610ebfd5fca9aef7a034d4d4a37e5d98d',
      from: '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883',
      confirmations: 0,
      wait: [Function (anonymous)]
}

Tips:
- The purpose of this method is to transfer the controller of a name
- The method can only be called by registrant, otherwise an error will be thrown

transferOwnershipTo(to: string)

Method: transferOwnershipTo(to: string)
Params: to: new owner
Return: Promise<tx>

Example:

fns.name('yamy.fil').transferOwnershipTo('0x6FBfd1ee64Ae1c027eDa61c2e1FB975E18F68F35')
or
fns.transferOwnership('yamy.fil', '0x6FBfd1ee64Ae1c027eDa61c2e1FB975E18F68F35')

Result:
{
      type: 2,
      chainId: 3141,
      nonce: 333,
      maxPriorityFeePerGas: BigNumber { _hex: '0x59682f00', _isBigNumber: true },
      maxFeePerGas: BigNumber { _hex: '0x59682fc8', _isBigNumber: true },
      gasPrice: null,
      gasLimit: BigNumber { _hex: '0x02ae6daa', _isBigNumber: true },
      to: '0xcf38A805f2F5f0b9E96cE6Cfb1059D5CDEDa5cf0',
      value: BigNumber { _hex: '0x0123e9e7cc790000', _isBigNumber: true },
      data: '0xacf1a84100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000278d00000000000000000000000000000000000000000000000000000000000000000479616d7900000000000000000000000000000000000000000000000000000000',
      accessList: [],
      hash: '0xe70413acde387ae543c33fcf4f3ee932e884129a07d3bfc039605fc0d67280f4',
      v: 0,
      r: '0x70967dd5779c2c3c3118a8be53858181e1e146f50f904903640d75d303fec31c',
      s: '0x44cefa8da2dc7a5cece13583b49a468610ebfd5fca9aef7a034d4d4a37e5d98d',
      from: '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883',
      confirmations: 0,
      wait: [Function (anonymous)]
}

Tips:
- The purpose of this method is to transfer the ownership of a name 721 token
- The method can only be called by registrant, otherwise an error will be thrown

setController(addr: string)

Method: setController(addr: string)
Params: addr: controller address
Return: Promise<tx>

Example:

fns.name('yamy.fil').setController('0x6FBfd1ee64Ae1c027eDa61c2e1FB975E18F68F35')
or
fns.setController('yamy.fil', '0x6FBfd1ee64Ae1c027eDa61c2e1FB975E18F68F35')

Result:
{
      type: 2,
      chainId: 3141,
      nonce: 333,
      maxPriorityFeePerGas: BigNumber { _hex: '0x59682f00', _isBigNumber: true },
      maxFeePerGas: BigNumber { _hex: '0x59682fc8', _isBigNumber: true },
      gasPrice: null,
      gasLimit: BigNumber { _hex: '0x02ae6daa', _isBigNumber: true },
      to: '0xcf38A805f2F5f0b9E96cE6Cfb1059D5CDEDa5cf0',
      value: BigNumber { _hex: '0x0123e9e7cc790000', _isBigNumber: true },
      data: '0xacf1a84100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000278d00000000000000000000000000000000000000000000000000000000000000000479616d7900000000000000000000000000000000000000000000000000000000',
      accessList: [],
      hash: '0xe70413acde387ae543c33fcf4f3ee932e884129a07d3bfc039605fc0d67280f4',
      v: 0,
      r: '0x70967dd5779c2c3c3118a8be53858181e1e146f50f904903640d75d303fec31c',
      s: '0x44cefa8da2dc7a5cece13583b49a468610ebfd5fca9aef7a034d4d4a37e5d98d',
      from: '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883',
      confirmations: 0,
      wait: [Function (anonymous)]
}

Tips:
- The purpose of this method is to transfer the controller of a name
- The method can only be called by controller, otherwise an error will be thrown

setContent(content: string)

Method: setContent(content: string)
Params: content: content you want to set
Return: Promise<tx>

Example:

fns.name('yamy.fil').setContent('CONTENT123')
or
fns.setContent('yamy.fil', 'CONTENT123')

Result:
{
      type: 2,
      chainId: 3141,
      nonce: 333,
      maxPriorityFeePerGas: BigNumber { _hex: '0x59682f00', _isBigNumber: true },
      maxFeePerGas: BigNumber { _hex: '0x59682fc8', _isBigNumber: true },
      gasPrice: null,
      gasLimit: BigNumber { _hex: '0x02ae6daa', _isBigNumber: true },
      to: '0xcf38A805f2F5f0b9E96cE6Cfb1059D5CDEDa5cf0',
      value: BigNumber { _hex: '0x0123e9e7cc790000', _isBigNumber: true },
      data: '0xacf1a84100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000278d00000000000000000000000000000000000000000000000000000000000000000479616d7900000000000000000000000000000000000000000000000000000000',
      accessList: [],
      hash: '0xe70413acde387ae543c33fcf4f3ee932e884129a07d3bfc039605fc0d67280f4',
      v: 0,
      r: '0x70967dd5779c2c3c3118a8be53858181e1e146f50f904903640d75d303fec31c',
      s: '0x44cefa8da2dc7a5cece13583b49a468610ebfd5fca9aef7a034d4d4a37e5d98d',
      from: '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883',
      confirmations: 0,
      wait: [Function (anonymous)]
}

setText(key: string, val: string)

Method: setText(key: string, val: string)
Params: key: the key to update | val: the value of the key
Return: Promise<tx>

Example:

fns.name('yamy.fil').setText('email', '470023552@web3.com')
or
fns.setText('yamy.fil', 'email', '470023552@web3.com')

Result:
{
      type: 2,
      chainId: 3141,
      nonce: 333,
      maxPriorityFeePerGas: BigNumber { _hex: '0x59682f00', _isBigNumber: true },
      maxFeePerGas: BigNumber { _hex: '0x59682fc8', _isBigNumber: true },
      gasPrice: null,
      gasLimit: BigNumber { _hex: '0x02ae6daa', _isBigNumber: true },
      to: '0xcf38A805f2F5f0b9E96cE6Cfb1059D5CDEDa5cf0',
      value: BigNumber { _hex: '0x0123e9e7cc790000', _isBigNumber: true },
      data: '0xacf1a84100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000278d00000000000000000000000000000000000000000000000000000000000000000479616d7900000000000000000000000000000000000000000000000000000000',
      accessList: [],
      hash: '0xe70413acde387ae543c33fcf4f3ee932e884129a07d3bfc039605fc0d67280f4',
      v: 0,
      r: '0x70967dd5779c2c3c3118a8be53858181e1e146f50f904903640d75d303fec31c',
      s: '0x44cefa8da2dc7a5cece13583b49a468610ebfd5fca9aef7a034d4d4a37e5d98d',
      from: '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883',
      confirmations: 0,
      wait: [Function (anonymous)]
}

setTexts(texts: Record<string, string>)

Method: setTexts(texts: Record<string, string>)
Params: texts: texts of object
Return: Promise<tx>

Example:

fns.name('yamy.fil').setTexts({ email: '470023552@web3.com', url: 'example.com', ... })
or
fns.setTexts('yamy.fil', { email: '470023552@web3.com', url: 'example.com', ... })

Result:
{
      type: 2,
      chainId: 3141,
      nonce: 333,
      maxPriorityFeePerGas: BigNumber { _hex: '0x59682f00', _isBigNumber: true },
      maxFeePerGas: BigNumber { _hex: '0x59682fc8', _isBigNumber: true },
      gasPrice: null,
      gasLimit: BigNumber { _hex: '0x02ae6daa', _isBigNumber: true },
      to: '0xcf38A805f2F5f0b9E96cE6Cfb1059D5CDEDa5cf0',
      value: BigNumber { _hex: '0x0123e9e7cc790000', _isBigNumber: true },
      data: '0xacf1a84100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000278d00000000000000000000000000000000000000000000000000000000000000000479616d7900000000000000000000000000000000000000000000000000000000',
      accessList: [],
      hash: '0xe70413acde387ae543c33fcf4f3ee932e884129a07d3bfc039605fc0d67280f4',
      v: 0,
      r: '0x70967dd5779c2c3c3118a8be53858181e1e146f50f904903640d75d303fec31c',
      s: '0x44cefa8da2dc7a5cece13583b49a468610ebfd5fca9aef7a034d4d4a37e5d98d',
      from: '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883',
      confirmations: 0,
      wait: [Function (anonymous)]
}

setAddrOf(coin: string, addr: string)

Method: setAddrOf(coin: string, addr: string)
Params: coin: coin type name | addr: coin address
Return: Promise<tx>

Example:

fns.name('yamy.fil').setAddrOf('eth', '0x6FBfd1ee64Ae1c027eDa61c2e1FB975E18F68F35')
or
fns.setAddrOf('yamy.fil', 'eth', '0x6FBfd1ee64Ae1c027eDa61c2e1FB975E18F68F35')

Result:
{
      type: 2,
      chainId: 3141,
      nonce: 333,
      maxPriorityFeePerGas: BigNumber { _hex: '0x59682f00', _isBigNumber: true },
      maxFeePerGas: BigNumber { _hex: '0x59682fc8', _isBigNumber: true },
      gasPrice: null,
      gasLimit: BigNumber { _hex: '0x02ae6daa', _isBigNumber: true },
      to: '0xcf38A805f2F5f0b9E96cE6Cfb1059D5CDEDa5cf0',
      value: BigNumber { _hex: '0x0123e9e7cc790000', _isBigNumber: true },
      data: '0xacf1a84100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000278d00000000000000000000000000000000000000000000000000000000000000000479616d7900000000000000000000000000000000000000000000000000000000',
      accessList: [],
      hash: '0xe70413acde387ae543c33fcf4f3ee932e884129a07d3bfc039605fc0d67280f4',
      v: 0,
      r: '0x70967dd5779c2c3c3118a8be53858181e1e146f50f904903640d75d303fec31c',
      s: '0x44cefa8da2dc7a5cece13583b49a468610ebfd5fca9aef7a034d4d4a37e5d98d',
      from: '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883',
      confirmations: 0,
      wait: [Function (anonymous)]
}

setAddrs(addrMap: Record<string, string>)

Method: setAddrs(addrMap: Record<string, string>)
Params: addrMap: addresses of coins
Return: Promise<tx>

Example:

fns.name('yamy.fil').setAddrs({ 
    fil: 'f4kxv6m7a7uoe6d3qsjokw4pzkogf6ojadqdn3dhi', 
    eth: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e', 
    btc: '1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2', 
    ltc: 'LdNFQrJLsCHW1zZKjGyPcqpiMuNvry7BUh', 
    doge: 'D9yU9D8zqcRfvJSNXFfHefYnuPVaQA5M2N'
})
or
fns.setAddrs('yamy.fil', { 
    fil: 'f4kxv6m7a7uoe6d3qsjokw4pzkogf6ojadqdn3dhi', 
    eth: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e', 
    btc: '1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2', 
    ltc: 'LdNFQrJLsCHW1zZKjGyPcqpiMuNvry7BUh', 
    doge: 'D9yU9D8zqcRfvJSNXFfHefYnuPVaQA5M2N'
})

Result:
{
      type: 2,
      chainId: 3141,
      nonce: 333,
      maxPriorityFeePerGas: BigNumber { _hex: '0x59682f00', _isBigNumber: true },
      maxFeePerGas: BigNumber { _hex: '0x59682fc8', _isBigNumber: true },
      gasPrice: null,
      gasLimit: BigNumber { _hex: '0x02ae6daa', _isBigNumber: true },
      to: '0xcf38A805f2F5f0b9E96cE6Cfb1059D5CDEDa5cf0',
      value: BigNumber { _hex: '0x0123e9e7cc790000', _isBigNumber: true },
      data: '0xacf1a84100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000278d00000000000000000000000000000000000000000000000000000000000000000479616d7900000000000000000000000000000000000000000000000000000000',
      accessList: [],
      hash: '0xe70413acde387ae543c33fcf4f3ee932e884129a07d3bfc039605fc0d67280f4',
      v: 0,
      r: '0x70967dd5779c2c3c3118a8be53858181e1e146f50f904903640d75d303fec31c',
      s: '0x44cefa8da2dc7a5cece13583b49a468610ebfd5fca9aef7a034d4d4a37e5d98d',
      from: '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883',
      confirmations: 0,
      wait: [Function (anonymous)]
}

setSubName(subname: string, owner: string)

Method: setSubName(subname: string, owner: string)
Params: subname: subname | owner: name controller
Return: Promise<object>

Example:

fns.name('yamy.fil').setSubName('api', '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883') => api.yamy.fil
or
fns.setSubName('yamy.fil', 'api', '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883')

Result:
{
      type: 2,
      chainId: 3141,
      nonce: 333,
      maxPriorityFeePerGas: BigNumber { _hex: '0x59682f00', _isBigNumber: true },
      maxFeePerGas: BigNumber { _hex: '0x59682fc8', _isBigNumber: true },
      gasPrice: null,
      gasLimit: BigNumber { _hex: '0x02ae6daa', _isBigNumber: true },
      to: '0xcf38A805f2F5f0b9E96cE6Cfb1059D5CDEDa5cf0',
      value: BigNumber { _hex: '0x0123e9e7cc790000', _isBigNumber: true },
      data: '0xacf1a84100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000278d00000000000000000000000000000000000000000000000000000000000000000479616d7900000000000000000000000000000000000000000000000000000000',
      accessList: [],
      hash: '0xe70413acde387ae543c33fcf4f3ee932e884129a07d3bfc039605fc0d67280f4',
      v: 0,
      r: '0x70967dd5779c2c3c3118a8be53858181e1e146f50f904903640d75d303fec31c',
      s: '0x44cefa8da2dc7a5cece13583b49a468610ebfd5fca9aef7a034d4d4a37e5d98d',
      from: '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883',
      confirmations: 0,
      wait: [Function (anonymous)]
}

setPrimaryName()

Method: setPrimaryName()
Return: Promise<tx>

Example:

fns.name('yamy.fil').setPrimaryName()
or
fns.setPrimaryName('yamy.fil')

Result:
{
      type: 2,
      chainId: 3141,
      nonce: 333,
      maxPriorityFeePerGas: BigNumber { _hex: '0x59682f00', _isBigNumber: true },
      maxFeePerGas: BigNumber { _hex: '0x59682fc8', _isBigNumber: true },
      gasPrice: null,
      gasLimit: BigNumber { _hex: '0x02ae6daa', _isBigNumber: true },
      to: '0xcf38A805f2F5f0b9E96cE6Cfb1059D5CDEDa5cf0',
      value: BigNumber { _hex: '0x0123e9e7cc790000', _isBigNumber: true },
      data: '0xacf1a84100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000278d00000000000000000000000000000000000000000000000000000000000000000479616d7900000000000000000000000000000000000000000000000000000000',
      accessList: [],
      hash: '0xe70413acde387ae543c33fcf4f3ee932e884129a07d3bfc039605fc0d67280f4',
      v: 0,
      r: '0x70967dd5779c2c3c3118a8be53858181e1e146f50f904903640d75d303fec31c',
      s: '0x44cefa8da2dc7a5cece13583b49a468610ebfd5fca9aef7a034d4d4a37e5d98d',
      from: '0x00AB1C3F84a2c48F1a2D3b7FcA69445c39bC6883',
      confirmations: 0,
      wait: [Function (anonymous)]
}

fns.address() methods

  • getName()
  • getPrimaryName()
  • getOwnershipNames()

getName()

Method: getName()
Return: Promise<string>, get reverse resolve

Example: 
fns.address('0x00ab1c3f84a2c48f1a2d3b7fca69445c39bc6883').getName()
or
fns.address('f410facvryp4eulci6grnhn74u2kelq43y2edsyvmoca').getName()
or
fns.lookupAddress('0x00ab1c3f84a2c48f1a2d3b7fca69445c39bc6883')
or
fns.lookupAddress('f410facvryp4eulci6grnhn74u2kelq43y2edsyvmoca')

Result: 
web999.fil

getPrimaryName()

Method: getPrimaryName()
Return: Promise<string>, get primary name

Example: 
fns.address('0xf70f118432221a98fca961e65dd7303a8ba1fc76').getPrimaryName()
or
fns.getPrimaryName('0xf70f118432221a98fca961e65dd7303a8ba1fc76')

Result: 
testcontroller.fil

getOwnershipNames()

Method: getOwnershipNames()
Return: Promise<string[]>, get all ownership names

Example:
fns.address('0xf70f118432221a98fca961e65dd7303a8ba1fc76').getOwnershipNames()
or
fns.getOwnershipNames('0xf70f118432221a98fca961e65dd7303a8ba1fc76')

Result:
[
    'testapps.fil',
    'helloc.fil',
    'hellod.fil',
    'hellof.fil',
    'ghfjkddfhjksajd.fil',
    'hellog.fil',
    'hahsdhhasd.fil',
    'hahsdhhasdsdasd.fil',
    'hahsdhhasdsdsdsdawdwds.fil'
]

Readme

Keywords

Package Sidebar

Install

npm i @filfox/fnsjs

Weekly Downloads

0

Version

1.1.7

License

ISC

Unpacked Size

251 kB

Total Files

51

Last publish

Collaborators

  • jackynpm
  • chadwick2143
  • bqfox