首页 > 解决方案 > 如何推送交易EOS区块链(eosjs - unsatisfied_authorization)?

问题描述

我使用锚钱包。

这是初始化代码

const privateKeys = ["myprivatekey"];

const signatureProvider = new JsSignatureProvider(privateKeys);
const rpc = new JsonRpc(config.mainnet, { fetch });
const api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), textEncoder: new TextEncoder() });

return {rpc, api};

然后我尝试推送交易

    const transaction = await api.transact({
   actions: [{
     account: 'eosio',
     name: 'buyrambytes',
     authorization: [{
       actor: 'username',
       permission: 'active',
     }],
     data: {
       payer: 'username',
       receiver: 'username',
       bytes: 8192,
     },
   }]
  }, {
   blocksBehind: 3,
   expireSeconds: 30,
  });

(文档示例)

并收到错误

details: [
    {
      message: `transaction declares authority '{"actor":"username","permission":"active"}', but does not have signatures for it.`,
      file: 'authorization_manager.cpp',
      line_number: 643,
      method: 'get_required_keys'
    }
  ],
  json: {
    code: 401,
    message: 'UnAuthorized',
    error: {
      code: 3090003,
      name: 'unsatisfied_authorization',
      what: 'Provided keys, permissions, and delays do not satisfy declared authorizations',
      details: [Array]
    }
  }
}

也许我输入了错误的私钥(Anchor -> Export private key -> Copy key)或其他东西,idk。

所有其他功能(例如 get_block 等)工作正常

标签: node.jsblockchaineos

解决方案


推荐阅读