UNPKG

@filfox/fnsjs

Version:

Library For FNS

915 lines (752 loc) 28.3 kB
# Library for FNS **FNS** is Filecoin Name Service based on FEVM, developed by **Filfox Team**. **Homepage**: [https://fns.space](https://fns.space) **App**: [https://app.fns.space](https://app.fns.space) **Doc**: [https://fns-dao.gitbook.io/fns-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<string> + getResolver(): string + getNameBase(name: string): Promise<object> + getNameAddrs(name: string): Promise<object> + getNameTexts(name: string): Promise<object> + getNameInfo(name: string): Promise<object> + getAvailable(name: string): Promise<boolean> + getPrice(name: string, months = 12, unit?: 'fil' | 'usd'): Promise<BigNumberish | string> + getRegistrant(name: string): Promise<string> + getExpires(name: string, format?: string): Promise<any> + getExpired(name: string): Promise<boolean> + getController(name: string): Promise<string> + getContent(name: string): Promise<string> + getText(name: string, key: string): Promise<object> + getAddrOf(name: string, coin: string): Promise<string> + getPrimaryName(addr: string): Promise<string> + getOwnershipNames(addr: string): Promise<string []> + register(name: string, owner: string, months: number): Promise<object> + renew(name: string, months: number): Promise<object> + transferControl(name: string, addr: string): Promise<object> + transferOwnership(name: string, to: string): Promise<object> + setController(name: string, addr: string): Promise<object> + setContent(name: string, content: string) + setText(name: string, key: string, val: string): Promise<object> + setTexts(name: string, texts: Record<string, string>): Promise<object> + setAddrOf(name: string, coin: string, addr: string): Promise<object> + setAddrs(name: string, addrMap: Record<string, string>): Promise<object> + setPrimaryName(name: string): Promise<object> + setSubName(name: string, subname: string, owner: string): Promise<object> ## 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&lt;object&gt;, 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&lt;object&gt;, 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&lt;object&gt;, 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&lt;object&gt;, 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&lt;boolean&gt;, 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&lt;BigNumberish|string&gt;, 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&lt;string&gt; 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&lt;string|number&gt; 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&lt;string&gt; get if a name has expired ``` Example: fns.name('yamy.fil').getExpired() or fns.getExpired('yamy.fil') Result: false ``` ### getController() Method: getController() Return: Promise&lt;string&gt; get controller address ``` Example: fns.name('yamy.fil').getController() or fns.getController('yamy.fil') Result: 0x00ab1c3f84a2c48f1a2d3b7fca69445c39bc6883 ``` ### getContent() Method: getContent() Return: Promise&lt;string&gt; 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&lt;string&gt;, 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&lt;string&gt; 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&lt;string&gt;, 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&lt;tx&gt; ``` 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&lt;tx&gt; ``` 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&lt;tx&gt; ``` 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&lt;tx&gt; ``` 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&lt;tx&gt; ``` 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&lt;tx&gt; ``` 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&lt;tx&gt; ``` 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&lt;string, string&gt;) Method: setTexts(texts: Record&lt;string, string&gt;) Params: texts: texts of object Return: Promise&lt;tx&gt; ``` 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&lt;tx&gt; ``` 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&lt;string, string&gt;) Method: setAddrs(addrMap: Record&lt;string, string&gt;) Params: addrMap: addresses of coins Return: Promise&lt;tx&gt; ``` 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&lt;object&gt; ``` 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&lt;tx&gt; ``` 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&lt;string&gt;, 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&lt;string&gt;, get primary name ``` Example: fns.address('0xf70f118432221a98fca961e65dd7303a8ba1fc76').getPrimaryName() or fns.getPrimaryName('0xf70f118432221a98fca961e65dd7303a8ba1fc76') Result: testcontroller.fil ``` ### getOwnershipNames() Method: getOwnershipNames() Return: Promise&lt;string[]&gt;, 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' ] ```