diff --git a/.vscode/settings.json b/.vscode/settings.json index 6bac214fd..5ea3de751 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,6 @@ { "files.associations": { - "chrono": "cpp" + "chrono": "cpp", + "tuple": "cpp" } } \ No newline at end of file diff --git a/contracts/eosio.msig/src/eosio.msig.cpp b/contracts/eosio.msig/src/eosio.msig.cpp index 00424ef48..cbd04cc38 100644 --- a/contracts/eosio.msig/src/eosio.msig.cpp +++ b/contracts/eosio.msig/src/eosio.msig.cpp @@ -143,10 +143,10 @@ void multisig::exec( name proposer, name proposal_name, name executer ) { proposals proptable( get_self(), proposer.value ); auto& prop = proptable.get( proposal_name.value, "proposal not found" ); - transaction_header trx_header; + transaction trx; datastream ds( prop.packed_transaction.data(), prop.packed_transaction.size() ); - ds >> trx_header; - check( trx_header.expiration >= eosio::time_point_sec(current_time_point()), "transaction expired" ); + ds >> trx; + check( trx.expiration >= eosio::time_point_sec(current_time_point()), "transaction expired" ); approvals apptable( get_self(), proposer.value ); auto apps_it = apptable.find( proposal_name.value ); @@ -180,8 +180,9 @@ void multisig::exec( name proposer, name proposal_name, name executer ) { ); check( res > 0, "transaction authorization failed" ); - send_deferred( (uint128_t(proposer.value) << 64) | proposal_name.value, executer, - prop.packed_transaction.data(), prop.packed_transaction.size() ); + for ( auto action: trx.actions ) { + action.send(); + } proptable.erase(prop); }