4

I am trying to send from an account that I activated from the Alphanet faucet (tz1htPf3VPXrHBTX1E7y3tBteib6hA9Teosj) to an account that I created myself using generateKeys(mnemonic, password) (tz1VVeF3DUFGydahfawXFN47eSra9G1xuK2R).

Using my same send method, I am able to send to known Tezos addresses (such as tz3WXYtyDUNL91qfiCJtVUX746QpNv5i5ve5), but when I try to send to the address I created myself I get back status: 'backtracked' with the error as

{ kind: 'temporary', id: 'proto.003-PsddFKi3.storage_exhausted.operation' }

Googling this error turns up this definition:

A script or one of its callee wrote more bytes than the operation said it would

I'm not sure where to go from here, or how to fix it. I will say, the account I created shows as not-revealed on tzscan, but I don't know how to reveal it since it doesn't have any funds to pay the gas for the reveal operation. Is the fact that it isn't activated even the reason it is failing? Or is there something else I need to look at?

Failed transaction here.

Address I created here.

Edit: I did attempt to reveal the new account with the following code, but it just hangs indefinitely with no result or error:

        const operation = {
            kind: 'reveal',
            fee: '1269',
            public_key: keys.pk,
            source: address,
            gas_limit: '10000',
            storage_limit: '0',
        }

        sotez.rpc.sendOperation({from: address, operation, keys})
            .then(result => { console.log(result) })

2 Answers 2

1

I was getting the proto.003-PsddFKi3.storage_exhausted.operation error because I was using storage_limit: 0, and I am assuming that because I am "publishing" a new account to the blockchain, I need to pay a fee for the storage required. By changing the storage_limit to 10000 the error went away, and the transaction went through.

Then I was wondering why my new account is not revealed. I remember from my troubles yesterday that using the sendOperation handles the revealing and counter automatically. So I went ahead and tried to send a small amount of tezzies from the new account, and it worked!

Now I just need to learn more about storage_limits and how to know what number to use for that property when sending an operation.

4
  • 1
    This is a good guide to base your limits on: github.com/TezTech/eztz/blob/master/PROTO_003_FEES.md
    – AKISH
    Mar 4, 2019 at 17:26
  • Thanks, this is very helpful. I noticed from my experiments that it doesn't really affect my fees if I just set the storage_limit to 257, the required amount to send to a inactive implicit account. Am I wrong? If this is true, it would be much simpler for me to always use 257 so that sends will work whether the destination is active or not. Mar 4, 2019 at 18:28
  • 1
    Yeah that should be correct. It is a limit so is there to prevent you from doing something that you may not have anticipated.
    – AKISH
    Mar 5, 2019 at 17:05
  • Thanks! I gather you're the developer/maintainer of sotez? Thanks for adding examples to the wiki. That will prove useful to future devs. Kudos for a project well done! Mar 6, 2019 at 0:15
0

In my case the storage_exhausted.operation error appeared when I didn't have enough funds in my account to cover the storage fee. Transferred some more in and it was good.

full error id: proto.012-Psithaca.storage_exhausted.operation

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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