Hi, guys! I'm struggling with the error: "provided keys, permissions, and delays do not satisfy declared authorizations ....... but does not have signatures for it under a provided delay of 0 ms" on transaction push. Would appreciate any help.
"server_version"=>"379cb1a9"
abi to bin
{"code":"eosio.token","action":"transfer","args":{"from":"test1","to":"eosio","quantity":"1.0000 SYS","memo":"m"}}
sign tx
[{"ref_block_num":521327,"ref_block_prefix":3679368664,"expiration":"2018-06-07T14:37:50","actions":[{"account":"eosio.token","name":"transfer","authorization":[{"actor":"test1","permission":"active"}],"data":"000000008090b1ca0000000000ea305510270000000000000453595300000000016d"}],"signatures":[]},["EOS6fjFLfgBugD79qQdB4KPcqCDDVQZFgAK7D93uFt7TAqXHLqhiX"],""]
push transaction
{"compression":"none","transaction":{"expiration":"2018-06-07T14:37:50","ref_block_num":521327,"ref_block_prefix":3679368664,"context_free_actions":[],"actions":[{"account":"eosio.token","name":"transfer","authorization":[{"actor":"test1","permission":"active"}],"data":"000000008090b1ca0000000000ea305510270000000000000453595300000000016d"}],"transaction_extensions":[]},"signatures":["SIG_K1_K4oBf2vwXsCpS13Kc4GvGaiEx85xeDUSMUC7GcZQ77XAgrmZgTwPQu8y3Rxs8AzYDxUmL9wQMLs1NWQcULjnBLFqGopGap"]}
I'm having similar issue:
abi to bin
{"code":"eosio.token","action":"transfer","args":{"from":"shakhruztest","to":"eosio","quantity":"1.0000 EOS","memo":"test"}}
sign tx
{"ref_block_num":"796209", "ref_block_prefix":"1766603132", "expiration":"2018-06-07T18:59:14", "max_net_usage_words":0, "max_cpu_usage_ms":0, "delay_sec":0, "context_free_actions":[], "actions":[{ "account":"eosio.token","name":"transfer","authorization":[{"actor":"shakhruztest", "permission":"active"}],"data":"90b1ca5fdf064dc30000000000ea3055102700000000000004454f53000000000474657374"}], "transaction_extensions":[], "context_free_data":[]}
push transaction
{"compression":"none", "transaction":{"ref_block_num":"796209", "ref_block_prefix":"1766603132", "expiration":"2018-06-07T18:59:14", "max_net_usage_words":0, "max_cpu_usage_ms":0, "delay_sec":0, "context_free_actions":[], "actions":[{ "account":"eosio.token","name":"transfer","authorization":[{"actor":"shakhruztest", "permission":"active"}],"data":"90b1ca5fdf064dc30000000000ea3055102700000000000004454f53000000000474657374"}], "transaction_extensions":[], "context_free_data":[]},"signatures":["SIG_K1_K13fMherxwd9HnZcDdhBue35K93iqoUDjepPssufEu2Ez5mUycBavtCQD8uedNRusPuxvjKWB9yzxvDdDeJomxJZbm3n3u"]}
I use Scatter for signing the transaction.
The result I get from trying to push the transaction (directly via http endpoint):
{"code":500,"message":"Internal Service Error","error":{"code":3090003,"name":"unsatisfied_authorization","what":"provided keys, permissions, and delays do not satisfy declared authorizations","details":[{"message":"transaction declares authority '{\"actor\":\"shakhruztest\",\"permission\":\"active\"}', but does not have signatures for it under a provided delay of 0 ms","file":"authorization_manager.cpp","line_number":405,"method":"check_authorization"}]}}
It isn't possible to validate this without a copy of your account permissions (get account)
cleos get account test1
permissions:
owner 1: 1 EOS7GgDZBnwuhGVmVxubb4fnU5jnwTjQpfzSVQXhvhYwgiKRX8Q4u
active 1: 1 EOS6fjFLfgBugD79qQdB4KPcqCDDVQZFgAK7D93uFt7TAqXHLqhiX
rpc
{"account_name"=>"test1",
"privileged"=>false,
"last_code_update"=>"2018-05-31T07:20:40.000",
"created"=>"2018-05-30T15:56:10.000",
"ram_quota"=>-1,
"net_weight"=>-1,
"cpu_weight"=>-1,
"net_limit"=>{"used"=>-1, "available"=>-1, "max"=>-1},
"cpu_limit"=>{"used"=>-1, "available"=>-1, "max"=>-1},
"ram_usage"=>64577,
"permissions"=>
[{"perm_name"=>"active",
"parent"=>"owner",
"required_auth"=>{"threshold"=>1, "keys"=>[{"key"=>"EOS6fjFLfgBugD79qQdB4KPcqCDDVQZFgAK7D93uFt7TAqXHLqhiX", "weight"=>1}], "accounts"=>[], "waits"=>[]}},
{"perm_name"=>"owner",
"parent"=>"",
"required_auth"=>{"threshold"=>1, "keys"=>[{"key"=>"EOS7GgDZBnwuhGVmVxubb4fnU5jnwTjQpfzSVQXhvhYwgiKRX8Q4u", "weight"=>1}], "accounts"=>[], "waits"=>[]}}],
"total_resources"=>nil,
"delegated_bandwidth"=>nil,
"voter_info"=>nil}
permissions
owner key: EOS881AGo1MyiSXqMkAR3kFndoN8rvj9eDohoE5ZXQdYUpw7G4eY7
active key: EOS62Uv1ZTQhgGMtupADVajduyGMW9ZUmXZjxPD3Y9eMAgQBfnBdr
rpc
{"account_name":"shakhruztest","privileged":false,"last_code_update":"1970-01-01T00:00:00.000","created":"2018-06-05T12:47:21.500","ram_quota":1304562,"net_weight":1000000,"cpu_weight":1000000,"net_limit":{"used":0,"available":21355756,"max":21355756},"cpu_limit":{"used":0,"available":4047555,"max":4047555},"ram_usage":3446,"permissions":[{"perm_name":"active","parent":"owner","required_auth":{"threshold":1,"keys":[{"key":"EOS62Uv1ZTQhgGMtupADVajduyGMW9ZUmXZjxPD3Y9eMAgQBfnBdr","weight":1}],"accounts":[],"waits":[]}},{"perm_name":"owner","parent":"","required_auth":{"threshold":1,"keys":[{"key":"EOS881AGo1MyiSXqMkAR3kFndoN8rvj9eDohoE5ZXQdYUpw7G4eY7","weight":1}],"accounts":[],"waits":[]}}],"total_resources":{"owner":"shakhruztest","net_weight":"100.0000 EOS","cpu_weight":"100.0000 EOS","ram_bytes":1304562},"delegated_bandwidth":{"from":"shakhruztest","to":"shakhruztest","net_weight":"100.0000 EOS","cpu_weight":"100.0000 EOS"},"voter_info":{"owner":"shakhruztest","proxy":"","producers":[],"staked":2000000,"last_vote_weight":"0.00000000000000000","proxied_vote_weight":"0.00000000000000000","is_proxy":0,"deferred_trx_id":0,"last_unstake_time":"1970-01-01T00:00:00","unstaking":"0.0000 EOS"}}
same problem +1
Hey guys, I've encountered this issue, and have it fixed.
It turns out that, in mannet, when signing a transaction, you have to pass current chain's chain_id. For example, if you trying to sign this transaction:
[
%{
actions: [
%{
account: "eosio.token",
authorization: [%{actor: "eosabcdefg11", permission: "active"}],
data: "c0a66a881a173155a0986aff4e988569010000000000000004454f530000000000",
name: "transfer"
}
],
expiration: "2018-06-11T10:43:19",
ref_block_num: 170420,
ref_block_prefix: 3886304667,
signatures: []
},
["EOS5dnDdwApedkxbZHWqX37reaeXXZW7orYoA5R4mSUx8hrLi13BU"],
"aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906" # chain id
]
you need to pass chain id (aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906 here) as the last element of the array.
In testnet, an empty string "" was used as the chain id, instead of testnet's real chain id.
@chengevo Issue appears in local testnet. Adding chain id does not help.
@LDS1 I see, so you have nodeeos manage the wallet or keosd?
@chengevo ?
nodeos - server-side blockchain node component
cleos - command line interface to interact with the blockchain and to manage wallets
keosd - component that manages EOSIO wallets
Hey guys,
Did anyone find the root cause?
I have the same issue with RPC.
But I also managed to reproduce this with cleos
$ cleos transfer user tester "1.0000 SYS" memo -d 2>&1 | json-minify
{"expiration":"2018-06-12T00:50:27","ref_block_num":58010,"ref_block_prefix":2308286282,"max_net_usage_words":0,"max_cpu_usage_ms":0,"delay_sec":0,"context_free_actions":[],"actions":[{"account":"eosio.token","name":"transfer","authorization":[{"actor":"user","permission":"active"}],"data":"00000000007015d6000000005c95b1ca10270000000000000453595300000000046d656d6f"}],"transaction_extensions":[],"signatures":["SIG_K1_K9erWvKgSS7gMvJCCb5Wapdyai2y3Pkts1PQhPN4RXM97qEu82UAicya9MWqchviczBpDH6v61PnsJ4PUvCaGVchRDv7vr"],"context_free_data":[]}
$
$ cleos push transaction '{"expiration":"2018-06-12T00:52:27","ref_block_num":58010,"ref_block_prefix":2308286282,"max_net_usage_words":0,"max_cpu_usage_ms":0,"delay_sec":0,"context_free_actions":[],"actions":[{"account":"eosio.token","name":"transfer","authorization":[{"actor":"user","permission":"active"}],"data":"00000000007015d6000000005c95b1ca10270000000000000453595300000000046d656d6f"}],"transaction_extensions":[],"signatures":["SIG_K1_K9erWvKgSS7gMvJCCb5Wapdyai2y3Pkts1PQhPN4RXM97qEu82UAicya9MWqchviczBpDH6v61PnsJ4PUvCaGVchRDv7vr"],"context_free_data":[]}'
Error 3090003: provided keys, permissions, and delays do not satisfy declared authorizations
Ensure that you have the related private keys inside your wallet and your wallet is unlocked.
Error Details:
transaction declares authority '{"actor":"user","permission":"active"}', but does not have signatures for it under a provided delay of 0 ms
if I do not delay the transaction it works
$ cleos transfer user tester "1.0000 SYS" memo
executed transaction: 7871d6b433e8a53a15d16c6c40f28791ab40c8e1c00798aec3f01ee0b8e00a93 136 bytes 6403 us
# eosio.token <= eosio.token::transfer {"from":"user","to":"tester","quantity":"1.0000 SYS","memo":"memo"}
# user <= eosio.token::transfer {"from":"user","to":"tester","quantity":"1.0000 SYS","memo":"memo"}
# tester <= eosio.token::transfer {"from":"user","to":"tester","quantity":"1.0000 SYS","memo":"memo"}
warning: transaction executed locally, but may not be confirmed by the network yet
same problem
same problem
Does anybody knows what is the local setup in order to reproduce it? In that case I would try to locate the issue quickly.
I cannot reproduce it with single node mode:
nodeos -e -p eosio --plugin eosio::chain_api_plugin --plugin eosio::history_api_plugin
@tarassh, you could use my example above, with cleos on mainnet, it still gives the error we discuss here
@roman-tik unfortunately, I cannot debug full node on main net.
Okay, what I found.
I had the same issue, when I was using eosjs library. The main problem was with this line.
chainId mismatch, signatures will not match transaction authority. expected cf057bbfb72640471fd910bcb67639c22df9f92470936cddc1ade0e2f2e7dc4f !== actual 038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca .
By default eosjs has hardcoded value: 038f4b0fc8ff18a4f0842a8f0564611f6e96e8535901dd45e43ac8691a1c4dca
so after getInfo request I have set new value, and it seems to work. The main problem was with signing transaction. ChainId is used to sign it.
Please verify that your application is using the right chainid.
In my case I did supply a correct chainid, did not help.
It does not have to be mainnet to reproduce, just use the steps with cleos I mentioned. It gives the same error in mainnet as well as in a testnet in my case.
Still not resolved,hummmm...
$ cleos create account eosio anorak "EOS6vevAwCd9XxxPxE486TRySSH5Uv8CoS5pDRm8ZVxTJ8RE577S9" "EOS5H5vjaW3Nv7v1qkKRgjuHrXyCaPjkFVVzQxaRjnekWwjjqprMW"
Error 3090003: Provided keys, permissions, and delays do not satisfy declared authorizations
Ensure that you have the related private keys inside your wallet and your wallet is unlocked.
New cleos commands may be helpful:
09:33:24@heifnerk:~/ext/eosio/programs/cleos$ ./cleos convert --help
Pack and unpack transactions
Usage: ./cleos convert SUBCOMMAND
Subcommands:
pack_transaction From plain signed json to packed form
unpack_transaction From packed to plain signed json form
pack_action_data From json action data to packed form
unpack_action_data From packed to json action data form
@heifner after convert, and sign_transaction,pack_transaction have same problem
2018-08-31T07:22:23.587898145Z transaction declares authority '{"actor":"wyl.eosadmin","permission":"active"}', but does not have signatures for it under a provided delay of 0 ms, provided permissions [], and provided keys ["EOS6Tn7ZTemc9VGm3fAswSmw6WXPyjoc3RLMFkSqkmAduT5RS6aLN"]
2018-08-31T07:22:23.587903194Z {"auth":{"actor":"wyl.eosadmin","permission":"active"},"provided_delay":0,"provided_permissions":[],"provided_keys":["EOS6Tn7ZTemc9VGm3fAswSmw6WXPyjoc3RLMFkSqkmAduT5RS6aLN"],"delay_max_limit_ms":3888000000}
`cleos convert pack_transaction '
{
"expiration": "2018-08-31T07:29:05.500",
"ref_block_num": 1854766,
"ref_block_prefix": 1170868577,
"context_free_actions": [],
"actions": [
{
"account": "eosio.token",
"name": "transfer",
"authorization": [
{
"actor": "wyl.eosadmin",
"permission": "active"
}
],
"data": "309d4c26d306a2e7309d4c26d306ce6718cc07000000000004484f54430000000974657374206c617374"
}
],
"transaction_extensions": []
}'
http://52.14.100.150:8800/v1/wallet/sign_transaction
[
{
"signatures": [],
"compression": "none",
"packed_context_free_data": "",
"packed_trx": "41ee885b2e4d6109ca45000000000100a6823403ea326d000000572d3ccdcd01309d4c26d306a2e700000000a8ed32322a309d4c26d306a2e7309d4c26d306ce6718cc07000000000004484f54430000000974657374206c61737400"
}
,
[
"EOS4tWbh1RzyysfwDLHNfELvFdLYimaq9JBtPpdDfREi3yHHpp5FG"
],
"8be32650b763690b95b7d7e32d7637757a0a7392ad04f1c393872e525a2ce82b"
]
http://47.96.238.46:8888/v1/chain/push_transaction
{
"signatures" : [ "SIG_K1_KmRdgSxMjBVCskrpKcp5Wgs1zEVKHGqo1hNE3YdeiiNW1b8mqxNvMk5YaWbu1eWzmamEpWpAJpbAkixFKmSaPzwvAU7edg" ],
"compression" : "none",
"packed_context_free_data" : [],
"packed_trx" : "41ee885b2e4d6109ca45000000000100a6823403ea326d000000572d3ccdcd01309d4c26d306a2e700000000a8ed32322a309d4c26d306a2e7309d4c26d306ce6718cc07000000000004484f54430000000974657374206c61737400"
}
`
Same problem, I have the permission
but still cannot push the action
•100% ➜ cleos wallet keys
[
"EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV",
"EOS6d8x1HuKMwMb2yeBuceKNTdPzk5MoPf7mw7kBPJ6NXH9bQtqQe",
"EOS6xLJ3cZCWruWiFNggypfPhPkDKpsrH36mAXDJSmcBr2QYezqnm",
"EOS8BfD4MtVEcuP9k2iAGdW4HECsGfDjHMu2kydoD87JzWdE13aur",
"EOS8gCe1TcXjVKLtqUURwgiFga8TNPn7hLekRvku2xLgqxf8ByAWp"
]
•100% ➜ cleos get account tester
permissions:
owner 1: 1 EOS6xLJ3cZCWruWiFNggypfPhPkDKpsrH36mAXDJSmcBr2QYezqnm
active 1: 1 EOS6xLJ3cZCWruWiFNggypfPhPkDKpsrH36mAXDJSmcBr2QYezqnm
memory:
quota: unlimited used: 129.8 KiB
net bandwidth:
used: unlimited
available: unlimited
limit: unlimited
cpu bandwidth:
used: unlimited
available: unlimited
limit: unlimited
•100% ➜ cleos push action tester battleresult '[1, "user", "tester", "user", 1, 2, 1]' -r "" -p tester@active
Error 3090003: Provided keys, permissions, and delays do not satisfy declared authorizations
Ensure that you have the related private keys inside your wallet and your wallet is unlocked.
================
i have resovled, because i set the contract to the eosio, not the tester
use this action , it works
cleos push action tester battleresult '[1, "user", "tester", "user", 1, 2, 1]' -r "" -p tester@active -p user@active
I believe it's because of the reference block is updated again when you push the trx, and I believe this is already fixed in the latest version. Please try again with the latest version.
If you still have the problem and wish to discuss further, please post it in https://eosio.stackexchange.com. To keep things organized, Github issues are intended for bugs reporting and features tracking, and Stack Exchange is the right place for any technical support discussions. Thanks!
hey,I don't think it's been solved because I met the same problem.
Most helpful comment
Hey guys, I've encountered this issue, and have it fixed.
It turns out that, in mannet, when signing a transaction, you have to pass current chain's
chain_id. For example, if you trying to sign this transaction:you need to pass chain id (
aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906here) as the last element of the array.In testnet, an empty string
""was used as the chain id, instead of testnet's real chain id.