1

here is what i am trying to do :

  • users will sign a specific action which will take their username, permission_name, smart_contract_name, action_name, public_key
  • i am trying to assign the user username a new permission permission_name then linkauth the contract name and action name with a specified public key.

here is my code :

void bypasssign::link_permission(struct account_t& data,name permission,name contract_name,name sm_action){
    link_auth_args link_args {
        .account = data.name,
        .code = contract_name,
        .type = sm_action,
        .requirement = permission
    };
    action linker = action(
        permission_level(data.name, name("active")),
        "eosio"_n,
        "linkauth"_n,
        std::move(link_auth_args)
    );
    linker.send();
}
void bypasssign::create_permission(struct account_t& data, name permission) {
    key_weight active_pubkey_weight {
        .key = data.active_key,
        .weight = 1
    };
    authority active_auth {
        .threshold = 1,
        .keys = {active_pubkey_weight},
        .accounts = {},
        .waits = {}
    };
    recover_args recovery {
        .account = data.name,
        .permission = permission,
        .parent = name("active"),
        .auth = active_auth
    };
    action recover = action(
        permission_level(data.name, name("active")),
        "eosio"_n,
        "updateauth"_n,
        std::move(recovery)
    );
    recover.send();
}

the account_t struct only contains 2 attributes name and active_key. when i try to execute these function i get an error back from eosio

transaction declares authority '{"actor":"bypassasign1","permission":"active"}', but does not have signatures for it under a provided delay of 0 ms, provided permissions [{"actor":"bypassasign1","permission":"eosio.code"}], provided keys [], and a delay max limit of 3888000000 ms

anyone know what i am doing wrong? thanks.

0

Your Answer

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

Browse other questions tagged or ask your own question.