push_transaction Error 3050003 eosio_assert_message assertion failure
查看nodeos 抛出log
Exception Details: 3050003 eosio_assert_message_exception: eosio_assert_message assertion failure
assertion failure with message: comparison of assets with different symbols is not allowed
是因为push_transaction中的代币符号与所需代币符号不一致
测试代码如下
eos = Eos({
httpEndpoint: 'http://192.168.1.112:8888',
chainId: 'cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f',
keyProvider: wif,
verbose: true
})
const name = 'bcskillsurou'
const pubkey = 'EOS68mvUMCz73a5Xj2wnJxdTW1aPjmiKCeSAjVdXjTd3D3g9A38EE'
eos.transaction(tr => {
tr.newaccount({
creator: 'dapp.exec1',
name,
owner: pubkey,
active: pubkey
})
tr.buyrambytes({
payer: 'dapp.exec1',
receiver: name,
bytes: 8192
})
tr.delegatebw({
from: 'dapp.exec1',
receiver: name,
stake_net_quantity: '10.0000 EOS',
stake_cpu_quantity: '10.0000 EOS',
transfer: 0
})
}).then(console.log)
.catch(e => {
console.error(e);
})
由于测试网络中内置代币符号为 SYS
,所以需要将上面的 EOS
修改为 SYS
。
还有种就是将测试网内置代币修改为EOS
修改eos_source_dir/CMakeLists.txt
将CORE_SYMBOL_NAME "SYS"
修改为CORE_SYMBOL_NAME "EOS"
重新编译项目