caver.kct.kip7
caver.kct.kip7
giúp bạn dễ dàng xử lý hợp đồng thông minh triển khai KIP-7 dưới dạng đối tượng JavaScript trên nền tảng chuỗi khối Klaytn (Klaytn).
caver.kct.kip7
kế thừa caver.contract để triển khai hợp đồng token KIP-7. caver.kct.kip7
giữ các thuộc tính giống như của caver.contract
trong khi các phương pháp bổ sung để triển khai các tính năng bổ sung. Phần này chỉ giới thiệu các phương pháp liên kết mới được thêm vào của caver.kct.kip7
.
Abi và bytecode được sử dụng trong caver.kct.kip7 đã được triển khai bằng cách sử dụng ví dụ về openzeppelin.
Mã triển khai KIP-7 cho caver-js hiện có trên Klaytn Contracts Github Repo.
Để biết thêm thông tin về KIP-7, hãy xem Đề xuất cải tiến Klaytn.
caver.kct.kip7.deploy
Triển khai hợp đồng token KIP-7 cho chuỗi khối Klaytn. Hợp đồng được triển khai bằng cách sử dụng caver.kct.kip7.deploy là token có thể thay thế tuân theo tiêu chuẩn KIP-7.
Sau khi triển khai thành công, promise sẽ được giải quyết bằng phiên bản KIP7 mới.
Tham số
tokenInfo
đối tượng
Thông tin cần thiết để triển khai hợp đồng token KIP-7 trên chuỗi khối Klaytn. Xem bảng dưới đây để biết thông tin chi tiết.
trình triển khai
chuỗi | đối tượng
Đối tượng tokenInfo phải chứa các thông tin sau:
tên
chuỗi
Tên của token.
ký hiệu
chuỗi
Ký hiệu của token.
thập phân
số
Số vị trí thập phân mà token sử dụng.
initialSupply
BigNumber | chuỗi | số
Tổng số lượng token sẽ được cung cấp ban đầu.
LƯU Ý Tham số initialSupply
chấp nhận loại số
nhưng nếu giá trị được cung cấp nằm ngoài phạm vi được giới hạn bởi number.MAX_SAFE_INTEGER, điều đó có thể gây ra kết quả không mong muốn hoặc lỗi. Trong trường hợp này, bạn nên sử dụng loại BigNumber
, đặc biệt đối với giá trị đầu vào dạng số có kích thước uint256
.
Giá trị trả về
PromiEvent
: Bộ phát hiệu ứng kết hợp promise, được giải quyết bằng một phiên bản KIP7 mới. Ngoài ra, có thể xảy ra các sự kiện sau đây:
transactionHash
chuỗi
Được kích hoạt ngay sau khi giao dịch được gửi và có sẵn hàm băm giao dịch.
biên lai
đối tượng
lỗi
Lỗi
Được kích hoạt nếu xảy ra lỗi trong quá trình gửi.
Ví dụ
caver.kct.kip7.detectInterface
Trả về thông tin của giao diện được triển khai bởi hợp đồng token. Hàm tĩnh này sẽ sử dụng kip7.detectInterface.
Tham số
contractAddress
chuỗi
Địa chỉ của hợp đồng token KIP-7
Giá trị trả về
Promise
trả về một đối tượng
chứa kết quả với các giá trị boolean cho dù từng giao diện KIP-7 có được triển khai hay không.
Ví dụ
caver.kct.kip7.create
Tạo một phiên bản KIP7 mới với các phương pháp và sự kiện liên kết của nó. Hàm này hoạt động tương tự như KIP7 mới.
LƯU Ý caver.kct.kip7.create
được hỗ trợ kể từ caver-js v1.6.1.
Tham số
Xem KIP7 mới .
Giá trị trả về
Xem KIP7 mới .
Ví dụ
KIP7 mới
Tạo một phiên bản KIP7 mới với các phương pháp và sự kiện liên kết của nó.
Tham số
tokenAddress
chuỗi
(tùy chọn) Địa chỉ của hợp đồng mã thông báo KIP-7, có thể được chỉ định sau thông qua kip7.options.address = '0x1234..'
Giá trị trả về
đối tượng
Phiên bản KIP7 với các phương pháp và sự kiện liên kết của nó.
Ví dụ
kip7.clone
Sao chép phiên bản KIP7 hiện tại.
Tham số
tokenAddress
chuỗi
(tùy chọn) Địa chỉ của hợp đồng thông minh đã triển khai token KIP7- khác. Nếu bị bỏ qua, nó sẽ được đặt thành địa chỉ hợp đồng trong trường hợp ban đầu.
Giá trị trả về
đối tượng
Bản sao của phiên bản KIP7 ban đầu.
Ví dụ
kip7.detectInterface
Trả về thông tin của giao diện được triển khai bởi hợp đồng token.
Tham số
Không có
Giá trị trả về
Promise
trả về một đối tượng
chứa kết quả với các giá trị boolean cho dù từng giao diện KIP-7 có được triển khai hay không.
Ví dụ
kip7.supportsInterface
Trả về true
nếu hợp đồng này triển khai giao diện được xác định bởi interfaceId
.
Tham số
interfaceId
chuỗi
InterfaceId cần được kiểm tra.
Giá trị trả về
Promise
trả về Boolean
: true
nếu hợp đồng này triển khai giao diện được xác định bởi interfaceId
.
Ví dụ
kip7.name
Trả lại tên của token.
Tham số
Không có
Giá trị trả về
Promise
trả về chuỗi
: Tên của token.
Ví dụ
kip7.symbol
Trả về ký hiệu của token.
Tham số
Không có
Giá trị trả về
Promise
trả về chuỗi
: Ký hiệu của token.
Ví dụ
kip7.decimals
Trả về số vị trí thập phân mà token sử dụng.
Tham số
Không có
Giá trị trả về
Promise
trả về Số
: Số vị trí thập phân mà token sử dụng.
Ví dụ
kip7.totalSupply
Trả về tổng nguồn cung token.
Tham số
Không có
Giá trị trả về
Promise
trả về BigNumber
: Tổng số token.
Ví dụ
kip7.balanceOf
Trả về số dư của địa chỉ tài khoản đã cho.
Tham số
address
chuỗi
Địa chỉ của tài khoản sẽ được kiểm tra số dư.
Giá trị trả về
Promise
trả về BigNumber
: Số dư tài khoản.
Ví dụ
kip7.allowance
Trả về số lượng token mà người chi tiêu
được phép rút từ chủ sở hữu
.
Tham số
chủ sở hữu
chuỗi
Địa chỉ tài khoản của chủ sở hữu token.
người chi tiêu
chuỗi
Địa chỉ của tài khoản sử dụng token thay cho chủ sở hữu.
Giá trị trả về
Promise
trả về BigNumber
: Số lượng token còn lại mà người chi tiêu được phép chi tiêu thay cho chủ sở hữu.
Ví dụ
kip7.isMinter
Trả về true
nếu tài khoản đã cho là người tạo có thể phát hành token KIP7 mới.
Tham số
address
chuỗi
Địa chỉ của tài khoản cần kiểm tra xem có quyền tạo hay không.
Giá trị trả về
Promise
trả về Boolean
: true
nếu tài khoản là một thợ đào.
Ví dụ
kip7.isPauser
Trả về true
nếu tài khoản đã cho là người tạm dừng có thể tạm dừng chuyển token.
Tham số
address
chuỗi
Địa chỉ của tài khoản đã được kiểm tra để có quyền tạm dừng chuyển token.
Giá trị trả về
Promise
trả về Boolean
: true
nếu tài khoản là tạm dừng.
Ví dụ
kip7.paused
Trả về true
nếu hợp đồng bị tạm dừng hoặc trả về false
.
Tham số
Không có
Giá trị trả về
Promise
trả về Boolean
: true
nếu hợp đồng bị tạm dừng.
Ví dụ
kip7.approve
Đặt số tiền
của token của chủ sở hữu token sẽ được chi tiêu bởi trình chi tiêu
.
Lưu ý rằng phương pháp này sẽ gửi một giao dịch từ chủ sở hữu đến mạng lưới Klaytn, mạng này sẽ tính phí giao dịch cho chủ sở hữu.
Tham số
người chi tiêu
chuỗi
Địa chỉ của tài khoản sử dụng token thay cho chủ sở hữu.
số lượng
BigNumber | chuỗi | số
Số lượng token mà người chi tiêu được phép sử dụng.
sendParam
đối tượng
(tùy chọn) Một đối tượng chứa các tham số cần thiết để gửi giao dịch.
LƯU Ý Tham số số tiền
chấp nhận loại số
nhưng nếu giá trị được cung cấp nằm ngoài phạm vi được giới hạn bởi number.MAX_SAFE_INTEGER, điều đó có thể gây ra kết quả không mong muốn hoặc lỗi. Trong trường hợp này, bạn nên sử dụng loại BigNumber
, đặc biệt đối với giá trị đầu vào dạng số có kích thước uint256
.
Đối tượng sendParam
chứa các thông tin sau:
từ
chuỗi
(tùy chọn) Địa chỉ mà giao dịch sẽ được gửi từ đó. Nếu bỏ qua tham số này thì sẽ được thiết lập bởi kip7.options.from
. Nếu không cung cấp from
trong đối tượng sendParam
cũng như kip7.options.from
thì sẽ xảy ra lỗi.
gas
số | chuỗi
(tùy chọn) Lượng gas tối đa được cung cấp cho giao dịch này (giới hạn gas). Nếu bị bỏ qua, nó sẽ được thiết lập bởi caver-js bằng cách gọi kip7.methods.approve(spender,mount).estimateGas({from})
.
giá gas
số | chuỗi
(tùy chọn) Giá gas tính bằng peb cho giao dịch này. Nếu bị bỏ qua, nó sẽ được thiết lập bởi caver-js bằng cách gọi caver.klay.getGasPrice
.
giá trị
Số | Chuỗi | BN | Số lớn
(tùy chọn) Giá trị được chuyển trong peb.
feeDelegation
boolean
(tùy chọn, mặc định sai
) Có sử dụng giao dịch ủy thác phí hay không. Nếu bỏ qua, kip7.options.feeDelegation
sẽ được sử dụng. Nếu cả hai bị bỏ qua, ủy thác phí không được sử dụng.
feePayer
chuỗi
(tùy chọn) Địa chỉ của người trả phí thanh toán phí giao dịch. Khi feeDelegation
là đúng
, giá trị sẽ được đặt thành trường feePayer
trong giao dịch. Nếu bỏ qua, kip7.options.feePayer
sẽ được sử dụng. Nếu cả hai bị bỏ qua, sẽ đưa ra một lỗi.
feeRatio
chuỗi
(tùy chọn) Tỷ lệ phí giao dịch mà người trả phí sẽ phải chịu. Nếu feeDelegation
là đúng
và feeRatio
được đặt thành giá trị hợp lệ thì giao dịch ủy thác phí một phần sẽ được sử dụng. Khoảng hợp lệ là từ 1 đến 99. Tỷ lệ không được phép bằng 0 hoặc bằng và cao hơn 100. Nếu bỏ qua, kip7.options.feeRatio
sẽ được sử dụng.
LƯU Ý feeDelegation
, feePayer
và feeRatio
được hỗ trợ kể từ phiên bản caver-jsv1.6.1.
Giá trị trả về
Promise
trả về đối tượng
- Biên lai chứa kết quả thực hiện giao dịch. Nếu bạn muốn biết về các thuộc tính bên trong đối tượng biên nhận, hãy xem mô tả của getTransactionReceipt. Biên lai từ các phiên bản KIP7 có thuộc tính 'sự kiện' được phân tích cú pháp qua abi thay vì thuộc tính 'bản ghi'.
Ví dụ
kip7.transfer
Chuyển số tiền
đã cho của token từ số dư của chủ sở hữu token sang người nhận
. Chủ sở hữu token phải thực hiện chuyển token này bằng chính tay của mình. Do đó, chủ sở hữu token phải là người gửi giao dịch này có địa chỉ phải được cung cấp tại sendParam.from
hoặc kip7.options.from
. Nếu không cung cấp sendParam.from
hoặc kip7.options.from
thì sẽ xảy ra lỗi.
Lưu ý rằng việc gửi giao dịch này sẽ tính phí giao dịch cho người gửi giao dịch.
Tham số
người nhận
chuỗi
Địa chỉ tài khoản nhận token.
số lượng
BigNumber | chuỗi | số
Số lượng mã thông báo sẽ được chuyển.
sendParam
đối tượng
LƯU Ý Tham số số tiền
chấp nhận loại số
nhưng nếu giá trị được cung cấp nằm ngoài phạm vi được giới hạn bởi number.MAX_SAFE_INTEGER, điều đó có thể gây ra kết quả không mong muốn hoặc lỗi. Trong trường hợp này, bạn nên sử dụng loại BigNumber
, đặc biệt đối với giá trị đầu vào dạng số có kích thước uint256
.
Giá trị trả về
Promise
trả về đối tượng
- Biên lai chứa kết quả thực hiện giao dịch. Nếu bạn muốn biết về các thuộc tính bên trong đối tượng biên nhận, hãy xem mô tả của getTransactionReceipt. Biên lai từ các phiên bản KIP7 có thuộc tính 'sự kiện' được phân tích cú pháp qua abi thay vì thuộc tính 'bản ghi'.
Ví dụ
kip7.safeTransfer
Chuyển một cách an toàn số tiền
của token từ số dư của chủ sở hữu token sang người nhận
. Chủ sở hữu token phải thực hiện chuyển token này bằng chính tay của mình. Do đó, chủ sở hữu token phải là người gửi giao dịch này có địa chỉ phải được cung cấp tại sendParam.from
hoặc kip7.options.from
. Nếu không cung cấp sendParam.from
hoặc kip7.options.from
thì sẽ xảy ra lỗi.
Nếu người nhận là một địa chỉ hợp đồng, thì địa chỉ đó phải triển khai IKIP7Receiver.onKIP7Received. Nếu không, quá trình chuyển sẽ được hoàn nguyên.
Lưu ý rằng việc gửi giao dịch này sẽ tính phí giao dịch cho người gửi giao dịch.
Tham số
người nhận
chuỗi
Địa chỉ tài khoản nhận token.
số lượng
BigNumber | chuỗi | số
Số lượng token bạn muốn chuyển.
data
Bộ đệm | chuỗi | số
(tùy chọn) Dữ liệu tùy chọn để gửi cùng với cuộc gọi.
sendParam
đối tượng
LƯU Ý Tham số số tiền
chấp nhận loại số
nhưng nếu giá trị được cung cấp nằm ngoài phạm vi được giới hạn bởi number.MAX_SAFE_INTEGER, điều đó có thể gây ra kết quả không mong muốn hoặc lỗi. Trong trường hợp này, bạn nên sử dụng loại BigNumber
, đặc biệt đối với giá trị đầu vào dạng số có kích thước uint256
.
Giá trị trả về
Promise
trả về đối tượng
- Biên lai chứa kết quả thực hiện giao dịch. Nếu bạn muốn biết về các thuộc tính bên trong đối tượng biên nhận, hãy xem mô tả của getTransactionReceipt. Biên lai từ các phiên bản KIP17 có thuộc tính 'sự kiện' được phân tích cú pháp qua ABI thay vì thuộc tính 'bản ghi'.
Ví dụ
kip7.transferFrom
Chuyển số tiền
đã cho của token từ số dư của chủ sở hữu token sang người nhận
. Địa chỉ đã được phê duyệt để gửi token của chủ sở hữu token dự kiến sẽ thực hiện giao dịch chuyển token này. Do đó, người được phê duyệt phải là người gửi giao dịch này có địa chỉ phải được cung cấp tại sendParam.from
hoặc kip7.options.from
. Nếu không cung cấp sendParam.from
hoặc kip7.options.from
thì sẽ xảy ra lỗi.
Lưu ý rằng việc gửi giao dịch này sẽ tính phí giao dịch cho người gửi giao dịch.
Tham số
người gửi
chuỗi
Địa chỉ của tài khoản sở hữu token sẽ được gửi với cơ chế trợ cấp.
người nhận
chuỗi
Địa chỉ tài khoản nhận token.
số lượng
BigNumber | chuỗi | số
Số lượng token bạn muốn chuyển.
sendParam
đối tượng
LƯU Ý Tham số số tiền
chấp nhận loại số
nhưng nếu giá trị được cung cấp nằm ngoài phạm vi được giới hạn bởi number.MAX_SAFE_INTEGER, điều đó có thể gây ra kết quả không mong muốn hoặc lỗi. Trong trường hợp này, bạn nên sử dụng loại BigNumber
, đặc biệt đối với giá trị đầu vào dạng số có kích thước uint256
.
Giá trị trả về
Promise
trả về đối tượng
- Biên lai chứa kết quả thực hiện giao dịch. Nếu bạn muốn biết về các thuộc tính bên trong đối tượng biên nhận, hãy xem mô tả của getTransactionReceipt. Biên lai từ các phiên bản KIP7 có thuộc tính 'sự kiện' được phân tích cú pháp qua abi thay vì thuộc tính 'bản ghi'.
Ví dụ
kip7.safeTransferFrom
Chuyển một cách an toàn số tiền
của token từ số dư của chủ sở hữu token sang người nhận
. Địa chỉ đã được phê duyệt để gửi token của chủ sở hữu token dự kiến sẽ thực hiện giao dịch chuyển token này. Do đó, người được phê duyệt phải là người gửi giao dịch này có địa chỉ phải được cung cấp tại sendParam.from
hoặc kip7.options.from
. Nếu không cung cấp sendParam.from
hoặc kip7.options.from
thì sẽ xảy ra lỗi.
Nếu người nhận là một địa chỉ hợp đồng, thì địa chỉ đó phải triển khai IKIP7Receiver.onKIP7Received. Nếu không, quá trình chuyển sẽ được hoàn nguyên.
Lưu ý rằng việc gửi giao dịch này sẽ tính phí giao dịch cho người gửi giao dịch.
Tham số
người gửi
chuỗi
Địa chỉ của tài khoản sở hữu token sẽ được gửi với cơ chế trợ cấp.
người nhận
chuỗi
Địa chỉ tài khoản nhận token.
số lượng
BigNumber | chuỗi | số
Số lượng token bạn muốn chuyển.
data
Bộ đệm | chuỗi | số
(tùy chọn) Dữ liệu tùy chọn để gửi cùng với cuộc gọi.
sendParam
đối tượng
LƯU Ý Tham số số tiền
chấp nhận loại số
nhưng nếu giá trị được cung cấp nằm ngoài phạm vi được giới hạn bởi number.MAX_SAFE_INTEGER, điều đó có thể gây ra kết quả không mong muốn hoặc lỗi. Trong trường hợp này, bạn nên sử dụng loại BigNumber
, đặc biệt đối với giá trị đầu vào dạng số có kích thước uint256
.
Giá trị trả về
Promise
trả về đối tượng
- Biên lai chứa kết quả thực hiện giao dịch. Nếu bạn muốn biết về các thuộc tính bên trong đối tượng biên nhận, hãy xem mô tả của getTransactionReceipt. Biên lai từ các phiên bản KIP17 có thuộc tính 'sự kiện' được phân tích cú pháp qua ABI thay vì thuộc tính 'bản ghi'.
Ví dụ