3

Despite using a unique module name (e.g. THIS was not the issue at hand), deploying my smart contract on kadena's testnet failed with the following error message:

: Failure: Tx Failed: Keyset failure (keys-any): '[my keyset name]

The only way to achieve a success was to assign a separate account that I control as the gas payer. To elaborate for new developers:

When you hit "Deploy" in Chainweaver and fill out the form on the first page of the pop-up, you move to the SIGN tab and choose an account separate from the SENDER to pay for the gas fee.

In the following image we have two keys, red and green. Green is the sender, red is the gas payer. This is a configuration that has worked for me. enter image description here

It is not clear to me, however, why this is the case or if there is a better solution.

Thank you in advance.

ednkh
  • 95
  • 6

2 Answers2

2

This seems to be just a Chainweaver web client issue. On the non-web client, you can grant the capability and sign with the same key without issues

Kitty Kad
  • 412
  • 1
  • 7
2

I don't think the answer above is correct. The desktop edition does indeed disable the use of unrestricted signing for a key as soon as you select it for a managed capability. enter image description here

georgep
  • 731
  • 1
  • 12
  • 1
    The key I use for gas transactions does indeed grey out. I didn't think that it would limit the key entirely to just that cap scope. That is weird. – ednkh Feb 13 '22 at 14:16
  • @ednkh If you have a problem to deploy the contract, just select 1 unrestricted keys and none for gas, just leave it empty. It will give a warning in Chainweaver but works just fine. For production deployment one often works with a little script to sign yaml files and send them to the node using curl. – georgep Feb 14 '22 at 16:33