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 "参数接受 "