VRC-10智能合约中转账
介绍
与 VRC-20 代币相比,VRC-10 代币面临用户体验灵活性问题。 开发人员及其智能合约调用者可以根据合约逻辑,在智能合约中进行VRC-10代币转账,从而使他们能够更好地在业务场景中控制代币执行。 与VRC-20代币不同,发送VRC-10代币与在合同中传输VS方法类似, VISION开发者在solidity中增加了专门用于VRC-10的转账和查询的接口。
VRC10在合约中转账示例
pragma solidity ^0.5.0;
contract transferTokenContract {
constructor() payable public{}
function() payable external {}
function transferTokenTest(address payable toAddress, uint256 tokenValue, vsToken id) payable public {
toAddress.transferToken(tokenValue, id);
}
function msgTokenValueAndTokenIdTest() public payable returns(vsToken, uint256){
vsToken id = msg.tokenid;
uint256 value = msg.tokenvalue;
return (id, value);
}
function getTokenBalanceTest(address accountAddress) payable public returns (uint256){
vsToken id = 1000001;
return accountAddress.tokenBalance(id);
}
}
VRC 10代币类型
为VRC10 代币定义了一种新类型(vsToken),它代表代币转账操作中的 tokenId。 VRC10 代币可以转换为 uint256 类型,反之亦然。
vsToken id = 1000001;
合约中VRC10转账
address.transferToken(uint256 tokenValue, vsToken tokenId)
Odyssey_v3.2 为 VISION solidity 编译器中的 VRC10 代币转账定义了一个新的 transferToken 函数,并且在 JAVA-VISION 中也得到了支持。 TransferToken 函数与 transfer(uint256)函数一样,只有 2300 熵被发送到此函数,及其相关的回退函数。
合约中查询VRC10余额
address.tokenBalance(vsToken) returns(uint256 tokenAmount)
为 VRC10 代币余额查询定义了一个新的 tokenBalance 函数。
TokenValue & TokenID
Msg.tokenvalue 表示当前 msg 调用中的标记值,默认值为 0。 Msg.tokenid 表示当前 msg 调用中的标记 Id,默认值为 0。
Updated about 3 years ago