Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Insufficient funds calculation is off #2283

Closed
madduck opened this issue Mar 2, 2016 · 3 comments
Closed

Insufficient funds calculation is off #2283

madduck opened this issue Mar 2, 2016 · 3 comments

Comments

@madduck
Copy link

madduck commented Mar 2, 2016

I am trying the following in geth (v1.3.3, Ubuntu):

d = 0xdeadbeef…
v = 1000
v = eth.getBalance(eth.coinbase) - eth.gasPrice * eth.estimateGas({from: eth.coinbase, to: d, value: v })
eth.sendTransaction({from: eth.coinbase, to: d, value: v})

but this yields:

Insufficient funds for gas * price + value
    at InvalidResponse (<anonymous>:-81662:-104)
    at send (<anonymous>:-156322:-104)
    at sendTransaction (<anonymous>:-133322:-104)
    at <anonymous>:1:1

which seems a bit weird. eth.estimateGas returns the going rate of 21,000. That should be all I need, no?

@madduck
Copy link
Author

madduck commented Mar 2, 2016

FTR, adding gas: 21000 to the eth.sendTransaction call makes it go through just fine.

@obscuren
Copy link
Contributor

obscuren commented Mar 2, 2016

You need big integer arithmetic. JavaScript implements integers as 32 bit ints (2^32). It's very likely that your balance in wei exceeds that number:

> eth.getBalance(eth.coinbase)
1.2230537249418869769081e+22

Try something like

eth.getBalance(eth.coinbase).sub(eth.gasPrice).mul(....)

@madduck
Copy link
Author

madduck commented Mar 2, 2016

Thanks for the explanation! I hope the day doesn't come when an overflow or otherwise problem with the limited JavaScript scope yields to big losses.

@madduck madduck closed this as completed Mar 2, 2016
maoueh pushed a commit to streamingfast/go-ethereum that referenced this issue Apr 17, 2024
* ci: temp enable blobtx branch ci run;
* Switch ON blobpool & ensure Cancun hardfork can occur (ethereum#2223)
* feat: support blob storage & miscs; (ethereum#2229)
* chainconfig: use cancun fork for BSC;
* feat: fill WithdrawalsHash when BSC enable cancun fork;
* rawdb: support to CRUD blobs;
* freezer: support to freeze block blobs;
* blockchain: add blob cache & blob query helper;
* freezer: refactor addition table logic, add uts;
* blobexpiry: add more extra expiry time, and logs;
* parlia: implement IsDataAvailable function;
* blob: refactor blob transfer logic;
* blob: support config blob extra reserve;
* blockchian: support to import block with blob & blobGasFee; (ethereum#2260)
* blob: implement min&max gas price logic;
* blockchian: support import side chain;
* blobpool: reject the banned address;
* blockchain: add chasing head for DA check;
* params: update blob related config;
* blockchain: opt data available checking performance;
* params: modify blob related params;
* gasprice: support BEP-336 blob gas price calculate;
* blobTx: mining + brodcasting (ethereum#2253)
* blobtx mining pass (ethereum#2282)
* Sidecar fetching changes for 4844 (ethereum#2283)
* ci: temp enable blobtx branch ci run;
* Switch ON blobpool & ensure Cancun hardfork can occur (ethereum#2223)
* feat: support blob storage & miscs; (ethereum#2229)
* chainconfig: use cancun fork for BSC;
feat: fill WithdrawalsHash when BSC enable cancun fork;
* rawdb: support to CRUD blobs;
* freezer: support to freeze block blobs;
* blockchain: add blob cache & blob query helper;
* freezer: refactor addition table logic, add uts;
* blobexpiry: add more extra expiry time, and logs;
* parlia: implement IsDataAvailable function;
* blob: refactor blob transfer logic;
* blob: support config blob extra reserve;
* blockchian: support to import block with blob & blobGasFee; (ethereum#2260)
* blob: implement min&max gas price logic;
* blockchian: support import side chain;
* blobpool: reject the banned address;
* blockchain: add chasing head for DA check;
* params: update blob related config;
* blockchain: opt data available checking performance;
* params: modify blob related params;
* gasprice: support BEP-336 blob gas price calculate;
* fix failed check for WithdrawalsHash (ethereum#2276)
* eth: include sidecars in fitering of body
* core: refactor sidecars name
* eth: sidecars type refactor
* core: remove extra from bad merge
* eth: fix handlenewblock test after merge
* Implement eth_getBlobSidecars && eth_getBlobSidecarByTxHash (ethereum#2286)
* execution: add blob gas fee reward to system;
* syncing: support blob syncing & DA checking;
* naming: rename blobs to sidecars;
* fix the semantics of WithXXX (ethereum#2293)
* config: reduce sidecar cache to 1024 and rename (ethereum#2297)
* fix: Withdrawals turn into empty from nil when BlockBody has Sidecars (ethereum#2301)
* internal/api_test: add test case for eth_getBlobSidecars && eth_getBlobSidecarByTxHash (ethereum#2300)
* consensus/misc: rollback CalcBlobFee (ethereum#2306)
* flags: add new flags to override blobs' params;
* freezer: fix blob ancient save error;
* blobsidecar: add new sidecar struct with metadata; (ethereum#2315)
* core/rawdb: optimize write block with sidecars (ethereum#2318)
* core: more check for validity of sidecars
* mev: add TxIndex for mev bid (ethereum#2325)
* remove useless Config() (ethereum#2326)
* fix WithSidecars (ethereum#2327)
* fix: fix mined block sidecar issue; (ethereum#2328)
* fix WithSidecars (ethereum#2329)

---------
Co-authored-by: GalaIO <[email protected]>
Co-authored-by: buddho <[email protected]>
Co-authored-by: Satyajit Das <[email protected]>
Co-authored-by: Eric <[email protected]>
Co-authored-by: zzzckck <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants