EOS Transaction
转账 Transfer (转移凭证)
转账时候的金额精度需要和发行该token时保持一致,
[root@test-work2 ~]# cleos push action eosio.token transfer '[ "kevin", "coco", "25.0000 CL", "fa goong zi le ." ]' -p kevin@active
executed transaction: e4ec2bf220038850e2b3f78af7d96ecb6f56d78ab61833e2351716eefb8cb91e 144 bytes 386 us
# eosio.token <= eosio.token::transfer {"from":"kevin","to":"coco","quantity":"25.0000 CL","memo":"fa goong zi le ."}
# kevin <= eosio.token::transfer {"from":"kevin","to":"coco","quantity":"25.0000 CL","memo":"fa goong zi le ."}
# coco <= eosio.token::transfer {"from":"kevin","to":"coco","quantity":"25.0000 CL","memo":"fa goong zi le ."}
warning: transaction executed locally, but may not be confirmed by the network yet ]
[root@test-work2 ~]#
查询余额
[root@test-work2 ~]# cleos get currency balance eosio.token coco CL
25.0000 CL
[root@test-work2 ~]# cleos get currency balance eosio.token kevin CL
75.0000 CL
[root@test-work2 ~]#
EOS交易验证
- 交易excuted --> 验证transaction status参数为"executed"
- 不可逆,即交易所在区块号低于当前最新不可逆块号
–>获得transaction所在区块的区块号以及主网最新不可逆块的区块号(不可逆区块高度),判断block_num<last_irreversible_block_num; - 合约账户和货币符号,假币攻击就是因为交易所没验证合约账户
- From和to,即转入转出的账户需要再次确认
打包交易签名
sign_transaction
打包签名,需要启动钱包api(keosd服务)
{
"actions": [
{
"account": "eosio.token",
"authorization": [
{
"actor": "coinlifebase",
"permission": "active"
}
],
"data": "a0b0396ab9381d4590b1ca6ab9381d45010000000000000000454f5300000000186b6576696e31303039313733343939383931313633313336",
"name": "transfer"
}
],
"contextFreeActions": [],
"contextFreeData": [],
"delaySec": 0,
"expiration": "2020-03-23T01:55:38",
"maxCpuUsageMs": 0,
"maxNetUsageWords": "0",
"refBlockNum": "51464",
"refBlockPrefix": "3300466237",
"signatures": [
"SIG_K1_JyWr7uNea652xWkSr3FPqMrsYX5H38R37gydj8Ufs6kUTj7rnpAGqJmuhF7V5Gt3PjPDTt5ApLmY2DwZ6xVMLHJbbf2Qjh"
],
"transactionExtensions": []
}