This commit is contained in:
parent
47d302a9a4
commit
45992c4f91
10 changed files with 670 additions and 13 deletions
|
|
@ -410,6 +410,16 @@ export namespace Catcrafts::Server {
|
|||
// the HTTP around it is thin.
|
||||
std::optional<std::int64_t> ParseEthCallUint(std::string_view json);
|
||||
|
||||
// The eth_call data for balanceOf(address): the 4-byte selector, then the
|
||||
// address left-padded into ONE 32-byte ABI word. Exported for the
|
||||
// self-test for the same reason as ParseEthCallUint, learned the hard
|
||||
// way: this encoding once padded 24 zero bytes instead of 12 (a
|
||||
// bytes-vs-hex-digits slip), which pushed the address out of the argument
|
||||
// word — every node then answered balanceOf of a zero-balance garbage
|
||||
// address, cleanly, and paid orders read as unpaid forever. No error
|
||||
// anywhere; the testnet e2e suite is what caught it.
|
||||
std::string BalanceOfCallData(std::string_view address);
|
||||
|
||||
// nullptr when the chains file or the address pool will not load. The rail
|
||||
// holds no key and no credential; it can only ever hand out an address it
|
||||
// was given.
|
||||
|
|
|
|||
Loading…
Reference in a new issue