5

I have a action which execute the deferred transaction . Let I send the delay of 20 days . If I want to cancel the deferred transaction before 20 days . Is there any way I can do this ?

This is my action which I push to deferred the transaction .

void second::send(account_name from , account_name to ,asset  quantity,string  memo,uint64_t delay) {
            eosio::transaction t{};

            t.actions.emplace_back(
        eosio::permission_level(from, N(active)),       
        N(eosio.token),
        N(transfer),
                std::make_tuple(from,to,quantity,memo)
            );
            t.delay_sec = delay;
            t.send(N(memo), from);
        }

transfer( account_name from,
                      account_name to,
                      asset        quantity,
                      string      memo  ){....}

transfer is my action that execute the transaction .

4
  • How can we use the function defined in apply_context.hpp file to cancel a deffered transaction bool apply_context::cancel_deferred_transaction( const uint128_t& sender_id, account_name sender ) {....} Aug 3 '18 at 9:05
  • The absolute path of function 'cancel_deferred_transaction ()' is /eos/libraries/chain/include/eosio/chain/apply_context.hpp Aug 3 '18 at 9:14
  • You can import eosio library in your file to use it. Aug 3 '18 at 10:47
  • Yes I found the library but what is context here , the parameter that I have to pass. Aug 3 '18 at 12:30
3
void send(const uint128_t& sender_id, account_name payer, bool replace_existing = false)

First parameter(sender_id) is the id of the deferred transaction. You can call cancel_deferred(sender_id) to cancel it.

See example in delegate_bandwidth on GitHub.

3
  • Rocky I have to make a new action in my contract that implement the method cancel_deferred(sender_id) and import transaction.h in my header file ? Aug 8 '18 at 10:02
  • 2
    yes, need a new action.
    – rocky802
    Aug 8 '18 at 10:25
  • hello could I update the deferred transaction
    – user2872
    Jan 25 '19 at 13:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.