caver.kct.kip7
caver.kct.kip7
은 클레이튼 블록체인 플랫폼(Klaytn)에서 KIP-7을 JavaScript 객체로 구현하는 스마트 컨트랙트를 쉽게 처리할 수 있도록 도와줍니다.
caver.kct.kip7
은 caver.contract를 상속하여 KIP-7 토큰 컨트랙트를 구현합니다. caver.kct.kip7
은 caver.contract
과 동일한 속성을 가지며, 추가 기능을 구현하기 위한 메서드가 추가되었습니다. 여기서는 caver.kct.kip7
에 새로 추가된 바인딩 메서드만 소개합니다.
caver.kct.kip7에 사용된 abi와 바이트코드는 openzeppelin의 예제를 사용하여 구현했습니다.
caver-js용 KIP-7을 구현하는 코드는 Klaytn 컨트랙트 GitHub 리포지토리에서 확인할 수 있습니다.
KIP-7에 대한 자세한 내용은 클레이튼 개선 제안을 참고하세요.
caver.kct.kip7.deploy
caver.kct.kip7.deploy(tokenInfo, deployer)
KIP-7 토큰 컨트랙트를 Klaytn 블록체인에 배포합니다. caver.kct.kip7.deploy를 사용하여 배포된 컨트랙트는 KIP-7 표준을 따르는 대체 가능한 토큰입니다.
배포가 성공적으로 완료되면 새로운 KIP7 인스턴스로 프로미스가 해결됩니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
tokenInfo | object | 클레이튼 블록체인에 KIP-7 토큰 컨트랙트를 배포하는 데 필요한 정보입니다. 자세한 내용은 아래 표를 참조하세요. |
deployer | String | Object | KIP-7 토큰 컨트랙트를 배포할 Keyring의 주소입니다. 이 Keyring에는 배포하기에 충분한 KLAY가 있어야 합니다. 트랜잭션을 전송할 때 사용할 고유한 필드를 정의하려면 객체 유형을 파라미터로 전달할 수 있습니다. 또한 KIP-7 컨트랙트를 배포할 때 수수료 위임을 사용하려면 오브젝트에서 수수료 위임과 관련된 필드를 정의할 수 있습니다. 오브젝트에서 정의할 수 있는 필드는 approve의 파라미터 설명을 참조하세요. |
토큰 정보 객체에는 다음이 포함되어야 합니다:
이름 | 유형 | 설명 |
---|---|---|
name | String | 토큰의 이름입니다. |
symbol | String | 토큰의 기호입니다. |
decimals | Number | 토큰이 사용하는 소수점 이하 자릿수입니다. |
initialSupply | BigNumber | string | number | 처음에 공급할 토큰의 총 금액입니다. |
참고 initialSupply
파라미터는 number
타입을 허용하지만, 입력된 값이 number.MAX_SAFE_INTEGER로 제한되는 범위를 벗어날 경우 예기치 않은 결과나 오류가 발생할 수 있습니다. 이 경우, 특히 uint256
크기의 숫자 입력 값의 경우 BigNumber
타입을 사용하는 것이 좋습니다.
리턴 값
PromiEvent
: 새로운 KIP7 인스턴스로 해결되는 프로미스 결합 이벤트 이미터입니다. 또한 다음과 같은 이벤트가 발생할 수 있습니다:
이름 | 유형 | 설명 |
---|---|---|
transactionHash | String | 트랜잭션이 전송되고 트랜잭션 해시를 사용할 수 있는 직후에 실행됩니다. |
receipt | Object | 트랜잭션 영수증을 사용할 수 있을 때 발생합니다. 영수증 객체 내부의 프로퍼티에 대해 알고 싶다면 getTransactionReceipt을 참조하세요. KIP7 인스턴스의 영수증에는 'logs' 속성 대신 abi를 통해 파싱된 'events' 속성이 있습니다. |
error | Error | 전송 중 오류가 발생하면 발생합니다. |
예시
// using the promise> caver.kct.kip7.deploy({ name: 'Jasmine', symbol: 'JAS', decimals: 18, initialSupply: '100000000000000000000',}, '0x{address in hex}').then(console.log)KIP7 { ... _address: '0x598367e443D8a2b644Fec69a2C12aF44BC283f23', _jsonInterface: [ ... { anonymous: false, inputs: [ { indexed: true, name: 'owner', type: 'address' }, { indexed: true, name: 'spender', type: 'address' }, { indexed: false, name: 'value', type: 'uint256' } ], name: 'Approval', type: 'event', signature: '0x8c5be...' } ] }// Send object as second parameter> caver.kct.kip7.deploy({ name: 'Jasmine', symbol: 'JAS', decimals: 18, initialSupply: '100000000000000000000', }, { from: '0x{address in hex}', feeDelegation: true, feePayer: '0x{address in hex}', }).then(console.log)// using event emitter and promise> caver.kct.kip7.deploy({ name: 'Jasmine', symbol: 'JAS', decimals: 18, initialSupply: '100000',}, '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(newKIP7Instance) { console.log(newKIP7Instance.options.address) // instance with the new token contract address})
caver.kct.kip7.detectInterface
caver.kct.kip7.detectInterface(contractAddress)
토큰 컨트랙트에 의해 구현된 인터페이스의 정보를 반환합니다. 이 정적 함수는 kip7.detectInterface를 사용합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
contractAddress | String | KIP-7 토큰 컨트랙트의 주소 |
리턴 값
Promise
는 각 KIP-7 인터페이스의 구현 여부가 포함된 결과를 부울 값으로 반환하는 object
를 반환합니다.
예시
> caver.kct.kip7.detectInterface('0x{address in hex}').then(console.log){ IKIP7: true, IKIP7Metadata: true, IKIP7Mintable: true, IKIP7Burnable: true, IKIP7Pausable: true,}
caver.kct.kip7.create
caver.kct.kip7.create([tokenAddress])
바인딩된 메서드와 이벤트가 있는 새 KIP7 인스턴스를 생성합니다. 이 함수는 new KIP7과 동일하게 작동합니다.
참고 caver.kct.kip7.create
는 caver-js v1.6.1 부터 지원됩니다.
매개변수
new KIP7을 참조하세요.
리턴 값
new KIP7을 참조하세요.
예시
// Create a KIP7 instance without a parameter> const kip7 = caver.kct.kip7.create()// Create a KIP7 instance with a token address> const kip7 = caver.kct.kip7.create('0x{address in hex}')
new KIP7
new caver.kct.kip7([tokenAddress])
바인딩된 메서드와 이벤트가 있는 새 KIP7 인스턴스를 생성합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
tokenAddress | String | (선택 사항) KIP-7 토큰 컨트랙트의 주소로, 나중에 kip7.options.address = '0x1234..' 를 통해 할당할 수 있습니다. |
리턴 값
유형 | 설명 |
---|---|
object | 바인딩된 메서드 및 이벤트가 있는 KIP7 인스턴스입니다. |
예시
// Create a KIP7 instance without a parameter> const kip7 = new caver.kct.kip7()// Create a KIP7 instance with a token address> const kip7 = new caver.kct.kip7('0x{address in hex}')
kip7.clone
kip7.clone([tokenAddress])
현재 KIP7 인스턴스를 복제합니다.
매개변수
이름 | 유형 | 설명 |
---|---|---|
tokenAddress | String | (선택 사항) 다른 KIP7 토큰을 배포한 스마트 컨트랙트의 주소입니다. 생략하면 원래 인스턴스의 컨트랙트 주소로 설정됩니다. |
리턴 값
유형 | 설명 |
---|---|
object | 원본 KIP7 인스턴스의 복제본입니다. |
예시
> const kip7 = new caver.kct.kip7(address)// Clone without a parameter> const cloned = kip7.clone()// Clone with the address of the new token contract> const cloned = kip7.clone('0x{address in hex}')
kip7.detectInterface
kip7.detectInterface()
토큰 컨트랙트가 구현한 인터페이스의 정보를 반환합니다.
매개변수
None
리턴 값
Promise
는 각 KIP-7 인터페이스의 구현 여부를 부울 값과 함께 결과를 포함하는 object
를 반환합니다.
예시
> kip7.detectInterface().then(console.log){ IKIP7: true, IKIP7Metadata: true, IKIP7Mintable: true, IKIP7Burnable: true, IKIP7Pausable: true,}
kip7.supportsInterface
kip7.supportsInterface(interfaceId)
이 컨트랙트가 interfaceId
로 정의된 인터페이스를 구현하면 true
를 반환합니다.
매개변수
Object | 유형 | 설명 |
---|---|---|
interfaceId | String | 검사할 인터페이스아이디입니다. |
리턴 값
이 컨트랙트가 interfaceId
로 정의된 인터페이스를 구현하는 경우 Promise
는 Boolean
: true
를 반환합니다.
예시
> kip7.supportsInterface('0x65787371').then(console.log)true> kip7.supportsInterface('0x3a2820fe').then(console.log)false
kip7.name
kip7.name()
토큰의 이름을 반환합니다.
매개변수
None
리턴 값
Promise
는 string
을 반환합니다: 토큰의 이름입니다.
예시
> kip7.name().then(console.log)Jasmine
kip7.symbol
kip7.symbol()
토큰의 심볼을 반환합니다.
매개변수
None
리턴 값
Promise
는 string
을 반환합니다: 토큰의 심볼입니다.
예시
> kip7.symbol().then(console.log)JAS
kip7.decimals
kip7.decimals()
토큰이 사용하는 소수점 이하 자릿수를 반환합니다.
매개변수
None
리턴 값
Promise
는 number
를 반환합니다: 토큰이 사용하는 소수점 이하 자릿수입니다.
예시
> kip7.decimals().then(console.log)18