Action Return Values
[[eosio::action]] asset mycontract::claimtokens(const name& user){
require_auth( user );
auto itr = users_t.require_find( user.value, "no user found" );
asset claimable_amount = itr->balance;
check( claimable_amount.amount > 0, "nothing to claim" );
transfer_tokens( user, claimable_amount, itr->contract, std::string("token claim") );
users_t.modify(itr, same_payer, [&](auto &row){
row.balance.amount = 0;
});
return claimable_amount;
}const claimTokens = async () => {
try {
const result = await session.transact({
actions: [{
account: 'mycontract',
name: 'claimtokens',
authorization: [{
actor: session.actor,
permission: session.permission,
}],
data: {
user: session.actor,
}
}]
}, {
blocksBehind: 3,
expireSeconds: 90,
});
const actionTraces = result.response.processed.action_traces;
const returnValues = actionTraces
.filter(trace => trace.return_value_data !== undefined)
.map(trace => trace.return_value_data);
console.log(returnValues[0])
} catch (e) {
console.log(`error submitting return value: ${e}`);
}
};
claimTokens();Last updated