caver.kct.kip17
caver.kct.kip17 "可幫助您在 kaia 區塊鏈上輕鬆處理以 JavaScript 對象形式實現 KIP-17 的智能合約。
caver.kct.kip17 "繼承了caver.contract,以實現 KIP-17 令牌合約。 caver.kct.kip17 "擁有與 "caver.contract "相同的屬性,但還有其他方法來實現額外的功能。 本節僅介紹 "caver.kct.kip17 "新增的綁定方法。
為 caver-js 實現 KIP-17 的代碼可在 Kaia Contracts Github Repo 上獲取。 用於 caver-js 的 KIP-17 支持 Ownable 接口。 使用此功能,您可以在部署合約時指定合約所有者
有關 KIP-17 的更多信息,請參閱 Kaia 改進提案。
caver.kct.kip17.deploy
caver.kct.kip17.deploy(tokenInfo, deployer)
將 KIP-17 代幣合約部署到 kaia 區塊鏈上。 使用 caver.kct.kip17.deploy 部署的合約是一種遵循 KIP-17 標準的不可篡改令牌。
成功部署後,將使用新的 KIP17 實例解決承諾問題。
參數
名稱 | 類型 | 描 述 |
---|---|---|
tokenInfo | object | 在 kaia 區塊鏈上部署 KIP-17 代幣合約所需的信息。 詳見下表。 |
deployer | string \ | object |
tokenInfo 對象必須包含以下內容:
名稱 | 類型 | 描述 |
---|---|---|
name | string | 代筆名稱 |
symbol | string | 代筆符號 |
回報價值
PromiEvent`:一個承諾組合事件發射器,用一個新的 KIP17 實例來解決。 此外,還可能發生以下事件:
名稱 | 類型 | 描述 |
---|---|---|
transactionHash | string | 在事務發送且事務哈希值可用後立即觸發。 |
receipt | object | 當交易收據可用時觸發。 如果您想了解收據對象內部的屬性,請參閱 getTransactionReceipt。 來自 KIP17 實例的收據有一個通過 abi 解析的 "事件 "屬性,而不是 "日誌 "屬性。 |
error | Error | 發送過程中發生錯誤時觸發。 |
代幣註冊
-
要在區塊資源管理器上註冊代幣,合約創建者必須填寫一份提交申請表。 記下表格上所需的具體信息。
-
智能合約環境
-
編譯器類型固態
-
編譯器版本:v0.8.4+commit.c7e474f2
-
開源許可證類型:MIT
-
-
智能合約詳情
-
優化: --optimize-run 200
-
源代碼:KIP17 合同 Github 鏈接。
-
-
ABI 編碼值:kip17JsonInterface at dev - kaiachain/caver-js - GitHub
示例
// using the promise> caver.kct.kip17.deploy({ name: 'Jasmine', symbol: 'JAS',}, '0x{address in hex}').then(console.log)KIP17 { ... _address: '0xfA7D967f414468083aDAd85257a2cBD6019693C2', _jsonInterface: [ ... { anonymous: false, inputs: [ { indexed: true, name: 'owner', type: 'address' }, { indexed: true, name: 'operator', type: 'address' }, { indexed: false, name: 'approved', type: 'bool' } ], name: 'ApprovalForAll', type: 'event', signature: '0x17307...' } ] }// Send object as second parameter> caver.kct.kip17.deploy({ name: 'Jasmine', symbol: 'JAS', }, { from: '0x{address in hex}', feeDelegation: true, feePayer: '0x{address in hex}', }).then(console.log)// using event emitter and promise> caver.kct.kip17.deploy({ name: 'Jasmine', symbol: 'JAS',}, '0x{address in hex}').on('error', function(error) { ... }).on('transactionHash', function(transactionHash) { ... }).on('receipt', function(receipt) { console.log(receipt.contractAddress) // contains the new token contract address}).then(function(newKIP17Instance) { console.log(newKIP17Instance.options.address) // instance with the new token contract address})
caver.kct.kip17.detectInterface
caver.kct.kip17.detectInterface(contractAddress
返回代幣合約實現的接口信息。 此靜態函數將使用 kip17.detectInterface。
參數
名稱 | 類型 | 描述 |
---|---|---|
contractAddress | string | KIP-7 代幣合約的地址 |
返回價值
Promise "會返回一個 "對象",其中包含每個KIP-17 接口是否已實現的布爾值結果。
示例
> caver.kct.kip17.detectInterface('0x{address in hex}').then(console.log){ IKIP17: true, IKIP17Metadata: true, IKIP17Enumerable: true, IKIP17Mintable: true, IKIP17MetadataMintable: true, IKIP17Burnable: true, IKIP17Pausable: true,}
caver.kct.kip17.create
caver.kct.kip17.create([tokenAddress
創建新的 KIP17 實例及其綁定的方法和事件。 該功能與 [new KIP17](#new-kip17)相同。
注意 caver.kct.kip17.create
從 caver-js v1.6.1 開始支持。
參數
請參見 [new KIP17](#new-kip17)。
返回價值
請參見 [new KIP17](#new-kip17)。
示例
// Create a KIP17 instance without a parameter> const kip17 = caver.kct.kip17.create()// Create a KIP17 instance with a token address> const kip17 = caver.kct.kip17.create('0x{address in hex}')
新 KIP17
new caver.kct.kip17([tokenAddress])
創建新的 KIP17 實例及其綁定的方法和事件。
參數
名稱 | 類型 | 描述 |
---|---|---|
代幣地址 | string | (可選)KIP-17 代幣合約的地址,可稍後通過 kip17.options.address = '0x1234...' 指定。 |
返回價值
類型 | 描述 |
---|---|
對象 | KIP17 實例及其綁定的方法和事件。 |
示例
// Create a KIP17 instance without a parameter> const kip17 = new caver.kct.kip17()// Create a KIP17 instance with a token address> const kip17 = new caver.kct.kip17('0x{address in hex}')
kip17.clone
kip17.clone([tokenAddress])
克隆當前 KIP17 實例。
參數
名稱 | 類型 | 描述 |
---|---|---|
tokenAddress | string | (可選)部署另一個 KIP-17 令牌的智能合約地址。 如果省略,則將設置為原始實例中的合同地址。 |
返回價值
類型 | 描述 |
---|---|
object | 原始 KIP17 實例的克隆。 |
Example
> const kip17 = new caver.kct.kip17(address)// Clone without a parameter> const cloned = kip17.clone()// Clone with the address of the new token contract> const cloned = kip17.clone('0x{address in hex}')
kip17.detectInterface
kip17.detectInterface()
返回代幣合約實現的接口信息。
參數
空
返回價值
Promise "會返回一個 "對象",其中包含每個KIP-17 接口是否已實現的布爾值結果。
示例
> kip17.detectInterface().then(console.log){ IKIP17: true, IKIP17Metadata: true, IKIP17Enumerable: true, IKIP17Mintable: true, IKIP17MetadataMintable: true, IKIP17Burnable: true, IKIP17Pausable: true,}
kip17.supportsInterface
kip17.supportsInterface(interfaceId)
如果此合約實現了由 interfaceId
定義的接口,則返回 true
。
參數
名稱 | 類型 | 描述 |
---|---|---|
interfaceId | string | 要檢查的 interfaceId。 |
返回價值
Promise
返回 boolean
:如果此合約實現了由 "interfaceId
定義的接口,則返回 "true"。
示例
> kip17.supportsInterface('0x80ac58cd').then(console.log)true> kip17.supportsInterface('0xa22cb465').then(console.log)false
kip17.name
kip17.name()
返回代幣的名稱。
參數
空
返回價值
Promise
返回 string
:代幣的名稱。
示例
> kip17.name().then(console.log)Jasmine
kip17.symbol
kip17.symbol()
返回代幣的符號。
參數
空
回報價值
Promise
返回 string
:標記的符號。
示例
> kip17.symbol().then(console.log)JAS
kip17.totalSupply
kip17.totalSupply()
返回合約鑄造的代幣總數。
參數
空
返回價值
Promise
返回 BigNumber
:代幣總數。
示例
> kip17.totalSupply().then(console.log)10
kip17.tokenURI
kip17.tokenURI(tokenId)
返回給定標記 ID 的 URI。
參數
名稱 | 類型 | 描述 |
---|---|---|
tokenId | BigNumber \ | string \ |
注意* "tokenId "參 數接受 "數字 "類型,但如果輸入值超出 number.MAX_SAFE_INTEGER 的範圍,可能會導致意外結果或錯誤。 在這種情況下,建議使用 BigNumber
類型,特別是對於 uint256
大小的數值輸入值。
返回價值
Promise
返回 string
:給定標記的 URI。
示例
> kip17.tokenURI(0).then(console.log)https://kip17.example/uri-ex-caver.json
kip17.tokenOfOwnerByIndex
kip17.tokenOfOwnerByIndex(owner, index)
搜索 "所有者 "的代幣列表中的給定索引,如果匹配,則返回位於列表中匹配索引處的代幣的代幣 ID。
參數
名稱 | 類型 | 描述 |
---|---|---|
所有者 | string | 擁有代幣的賬戶地址。 |
index | BigNumber \ | string \ |
注意 index
參數接受number
類型,但如果輸入值超出了number.MAX_SAFE_INTEGER的範圍,可能會導 致意外結果或錯誤。 在這種情況下,建議使用 BigNumber
類型,特別是對於 uint256
大小的數值輸入值。
返回價值
Promise返回
BigNumber`:代幣的 id。
示例
> kip17.tokenOfOwnerByIndex('0x{address in hex}', 5).then(console.log)5
kip17.tokenByIndex
kip17.tokenByIndex(index)
根據給定的索引搜索此合約中所有代幣的列表,如果匹配,則返回列表中匹配索引處的代幣 id。 如果索引大於或等於代幣總數,它就會還原。
參數
名稱 | 類型 | 描述 |
---|---|---|
index | BigNumber \ | string \ |
注意 index
參數接受number
類型,但如果輸入值超出了number.MAX_SAFE_INTEGER的範圍,可能會導致意外結果或錯誤。 在這種情況下,建議使用 BigNumber
類型,特別是對於 uint256
大小的數值輸入值。
返回價值
Promise