From b607f4703c39d0b2f42c3abcba0d62be044489da Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Sun, 21 Apr 2019 00:30:42 +0530 Subject: [PATCH 01/22] eth_getProof commit --- packages/web3-core-method/src/index.js | 1 + .../src/methods/node/GetProofMethod.js | 36 +++++++++++++++++++ .../src/methods/node/GetProofMethodTest.js | 25 +++++++++++++ .../web3-eth/src/factories/MethodFactory.js | 6 ++-- .../tests/src/factories/MethodFactoryTest.js | 6 ++-- packages/web3-eth/types/index.d.ts | 16 +++++++++ packages/web3-eth/types/tests/eth.tests.ts | 34 +++++++++++++++++- 7 files changed, 119 insertions(+), 5 deletions(-) create mode 100644 packages/web3-core-method/src/methods/node/GetProofMethod.js create mode 100644 packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js diff --git a/packages/web3-core-method/src/index.js b/packages/web3-core-method/src/index.js index 3fdd7f74b62..e1b95cc6557 100644 --- a/packages/web3-core-method/src/index.js +++ b/packages/web3-core-method/src/index.js @@ -43,6 +43,7 @@ export IsSyncingMethod from './methods/node/IsSyncingMethod'; export GetGasPriceMethod from './methods/node/GetGasPriceMethod'; export SubmitWorkMethod from './methods/node/SubmitWorkMethod'; export GetWorkMethod from './methods/node/GetWorkMethod'; +export GetProofMethod from './methods/node/GetProofMethod'; // Account export GetAccountsMethod from './methods/account/GetAccountsMethod'; diff --git a/packages/web3-core-method/src/methods/node/GetProofMethod.js b/packages/web3-core-method/src/methods/node/GetProofMethod.js new file mode 100644 index 00000000000..cdfacc59a29 --- /dev/null +++ b/packages/web3-core-method/src/methods/node/GetProofMethod.js @@ -0,0 +1,36 @@ +/* + This file is part of web3.js. + + web3.js is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + web3.js is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with web3.js. If not, see . +*/ +/** + * @file GetProofMethod.js + * @author Prince Sinha + * @date 2019 + */ + +import AbstractMethod from '../../../lib/methods/AbstractMethod'; + +export default class GetProofMethod extends AbstractMethod { + /** + * @param {Utils} utils + * @param {Object} formatters + * @param {AbstractWeb3Module} moduleInstance + * + * @constructor + */ + constructor(utils, formatters, moduleInstance) { + super('eth_getProof', 3, utils, formatters, moduleInstance); + } +} diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js new file mode 100644 index 00000000000..1587a39dfc4 --- /dev/null +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -0,0 +1,25 @@ +import AbstractMethod from '../../../../lib/methods/AbstractMethod'; +import GetProofMethod from '../../../../src/methods/node/GetProofMethod'; + +/** + * GetProofMethod test + */ +describe('GetProofMethodTest', () => { + let method; + + beforeEach(() => { + method = new GetProofMethod(null, null, {}); + }); + + it('constructor check', () => { + expect(method).toBeInstanceOf(AbstractMethod); + + expect(method.rpcMethod).toEqual('eth_getProof'); + + expect(method.parametersAmount).toEqual(3); + + expect(method.utils).toEqual(null); + + expect(method.formatters).toEqual(null); + }); +}); diff --git a/packages/web3-eth/src/factories/MethodFactory.js b/packages/web3-eth/src/factories/MethodFactory.js index f3fed3b7d1d..f0ae7ac607d 100644 --- a/packages/web3-eth/src/factories/MethodFactory.js +++ b/packages/web3-eth/src/factories/MethodFactory.js @@ -46,7 +46,8 @@ import { SubmitWorkMethod, VersionMethod, SendRawTransactionMethod, - EthSendTransactionMethod + EthSendTransactionMethod, + GetProofMethod } from 'web3-core-method'; import GetBlockMethod from '../methods/GetBlockMethod'; @@ -101,7 +102,8 @@ export default class MethodFactory extends AbstractMethodFactory { getPastLogs: GetPastLogsMethod, requestAccounts: RequestAccountsMethod, getId: VersionMethod, - getChainId: ChainIdMethod + getChainId: ChainIdMethod, + getProof: GetProofMethod }; } } diff --git a/packages/web3-eth/tests/src/factories/MethodFactoryTest.js b/packages/web3-eth/tests/src/factories/MethodFactoryTest.js index 91873e33c5b..7268096ab4d 100644 --- a/packages/web3-eth/tests/src/factories/MethodFactoryTest.js +++ b/packages/web3-eth/tests/src/factories/MethodFactoryTest.js @@ -23,7 +23,8 @@ import { RequestAccountsMethod, SendRawTransactionMethod, SubmitWorkMethod, - VersionMethod + VersionMethod, + GetProofMethod } from 'web3-core-method'; import * as Utils from 'web3-utils'; import {formatters} from 'web3-core-helpers'; @@ -90,7 +91,8 @@ describe('MethodFactoryTest', () => { getPastLogs: GetPastLogsMethod, requestAccounts: RequestAccountsMethod, getChainId: ChainIdMethod, - getId: VersionMethod + getId: VersionMethod, + getProof: GetProofMethod }); }); }); diff --git a/packages/web3-eth/types/index.d.ts b/packages/web3-eth/types/index.d.ts index 32f637d065c..709f09cf922 100644 --- a/packages/web3-eth/types/index.d.ts +++ b/packages/web3-eth/types/index.d.ts @@ -145,6 +145,8 @@ export class Eth extends AbstractWeb3Module { submitWork(data: [string, string, string], callback?: (error: Error, result: boolean) => void): Promise; pendingTransactions(callback?: (error: Error, result: []) => void): Promise<[]>; + + getProof(data: string, array: string[], tag: number | string, callback?: (error: Error, result: GetProof) => void): Promise; } export interface Methods { @@ -220,3 +222,17 @@ export interface Subscription { on(type: 'error', handler: (data: Error) => void): void } + +export interface GetProof { + jsonrpc: string; + id: number; + result: { + address: string; + accountProof: string[]; + balance: number | string; + codeHash: string; + nonce: number | string; + storageHash: string; + storageProof: Object[] + }; +} diff --git a/packages/web3-eth/types/tests/eth.tests.ts b/packages/web3-eth/types/tests/eth.tests.ts index 6aa503a35e6..59ff0fb55ab 100644 --- a/packages/web3-eth/types/tests/eth.tests.ts +++ b/packages/web3-eth/types/tests/eth.tests.ts @@ -14,11 +14,12 @@ /** * @file eth-tests.ts * @author Josh Stevens + * @author Prince Sinha * @date 2018 */ import {Log, Transaction, TransactionReceipt, RLPEncodedTransaction} from 'web3-core'; -import {Eth, BlockHeader, Syncing, Block} from 'web3-eth'; +import {Eth, BlockHeader, Syncing, Block, GetProof} from 'web3-eth'; const eth = new Eth('http://localhost:8545'); @@ -457,3 +458,34 @@ eth.pendingTransactions(); // $ExpectType Promise<[]> eth.pendingTransactions((error: Error, result: []) => {}); + +// $ExpectType Promise +eth.getProof( + "0x1234567890123456789012345678901234567890", + ["0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000001"], + "latest" +); + +// $ExpectType Promise +eth.getProof( + "0x1234567890123456789012345678901234567890", + ["0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000001"], + "latest", + (error: Error, result: GetProof) => {} +); + +// $ExpectType Promise +eth.getProof( + "0x1234567890123456789012345678901234567890", + ["0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000001"], + 10 +); + +// $ExpectType Promise +eth.getProof( + "0x1234567890123456789012345678901234567890", + ["0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000001"], + 10, + (error: Error, result: GetProof) => {} +); + From 2ce3723b414b9b35e2c7972bd76d2d607fb7302b Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Sun, 21 Apr 2019 00:59:25 +0530 Subject: [PATCH 02/22] eth_getProof Documentation --- docs/web3-eth.rst | 81 +++++++++++++++++++++++++++++- packages/web3-eth/types/index.d.ts | 4 +- 2 files changed, 82 insertions(+), 3 deletions(-) diff --git a/docs/web3-eth.rst b/docs/web3-eth.rst index 2c192ff2d15..f8f5792276b 100644 --- a/docs/web3-eth.rst +++ b/docs/web3-eth.rst @@ -1489,7 +1489,7 @@ Example .. _eth-getNodeInfo: getNodeInfo -========== +=========== .. code-block:: javascript @@ -1512,3 +1512,82 @@ Example > "Mist/v0.9.3/darwin/go1.4.1" ------------------------------------------------------------------------------ + +.. _eth-getProof: + +getProof +======== + +.. code-block:: javascript + + web3.eth.getProof(address, storageKey, blockNumber, [callback]) + +Returns the account and storage-values of the specified account including the Merkle-proof as described in `EIP-1186 `_. + +---------- +Parameters +---------- + +1. ``String`` 20 Bytes: The Address of the account or contract. +2. ``Array`` 32 Bytes: Array of storage-keys which should be proofed and included. See :ref:`web3.eth.getStorageAt `. +3. ``Number | String``: Integer block number, or the string "latest" or "earliest". +4. ``Function`` - (optional) Optional callback, returns an error object as first parameter and the result as second. + +------- +Returns +------- + +``Promise`` - A account object. + + ``balance`` - The balance of the account. See :ref:`web3.eth.getBalance `. + ``codeHash`` - hash of the code of the account. For a simple Account without code it will return "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + ``nonce`` - Nonce of the account. + ``storageHash`` - SHA3 of the StorageRoot. All storage will deliver a MerkleProof starting with this rootHash. + ``accountProof`` - Array of rlp-serialized MerkleTree-Nodes, starting with the stateRoot-Node, following the path of the SHA3 (address) as key. + ``storageProof`` - Array of storage-entries as requested. + ``key`` - The requested storage key. + ``value`` - The storage value. + +------- +Example +------- + + +.. code-block:: javascript + + web3.eth.getProof( + "0x1234567890123456789012345678901234567890", + ["0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000001"], + "latest" + ).then(console.log); + > { + "jsonrpc": "2.0", + "id": 1, + "result": { + "address": "0x1234567890123456789012345678901234567890", + "accountProof": [ + "0xf90211a090dcaf88c40c7bbc95a912cbdde67c175767b31173df9ee4b0d733bfdd511c43a0babe369f6b12092f49181ae04ca173fb68d1a5456f18d20fa32cba73954052bda0473ecf8a7e36a829e75039a3b055e51b8332cbf03324ab4af2066bbd6fbf0021a0bbda34753d7aa6c38e603f360244e8f59611921d9e1f128372fec0d586d4f9e0a04e44caecff45c9891f74f6a2156735886eedf6f1a733628ebc802ec79d844648a0a5f3f2f7542148c973977c8a1e154c4300fec92f755f7846f1b734d3ab1d90e7a0e823850f50bf72baae9d1733a36a444ab65d0a6faaba404f0583ce0ca4dad92da0f7a00cbe7d4b30b11faea3ae61b7f1f2b315b61d9f6bd68bfe587ad0eeceb721a07117ef9fc932f1a88e908eaead8565c19b5645dc9e5b1b6e841c5edbdfd71681a069eb2de283f32c11f859d7bcf93da23990d3e662935ed4d6b39ce3673ec84472a0203d26456312bbc4da5cd293b75b840fc5045e493d6f904d180823ec22bfed8ea09287b5c21f2254af4e64fca76acc5cd87399c7f1ede818db4326c98ce2dc2208a06fc2d754e304c48ce6a517753c62b1a9c1d5925b89707486d7fc08919e0a94eca07b1c54f15e299bd58bdfef9741538c7828b5d7d11a489f9c20d052b3471df475a051f9dd3739a927c89e357580a4c97b40234aa01ed3d5e0390dc982a7975880a0a089d613f26159af43616fd9455bb461f4869bfede26f2130835ed067a8b967bfb80", + "0xf90211a0395d87a95873cd98c21cf1df9421af03f7247880a2554e20738eec2c7507a494a0bcf6546339a1e7e14eb8fb572a968d217d2a0d1f3bc4257b22ef5333e9e4433ca012ae12498af8b2752c99efce07f3feef8ec910493be749acd63822c3558e6671a0dbf51303afdc36fc0c2d68a9bb05dab4f4917e7531e4a37ab0a153472d1b86e2a0ae90b50f067d9a2244e3d975233c0a0558c39ee152969f6678790abf773a9621a01d65cd682cc1be7c5e38d8da5c942e0a73eeaef10f387340a40a106699d494c3a06163b53d956c55544390c13634ea9aa75309f4fd866f312586942daf0f60fb37a058a52c1e858b1382a8893eb9c1f111f266eb9e21e6137aff0dddea243a567000a037b4b100761e02de63ea5f1fcfcf43e81a372dafb4419d126342136d329b7a7ba032472415864b08f808ba4374092003c8d7c40a9f7f9fe9cc8291f62538e1cc14a074e238ff5ec96b810364515551344100138916594d6af966170ff326a092fab0a0d31ac4eef14a79845200a496662e92186ca8b55e29ed0f9f59dbc6b521b116fea090607784fe738458b63c1942bba7c0321ae77e18df4961b2bc66727ea996464ea078f757653c1b63f72aff3dcc3f2a2e4c8cb4a9d36d1117c742833c84e20de994a0f78407de07f4b4cb4f899dfb95eedeb4049aeb5fc1635d65cf2f2f4dfd25d1d7a0862037513ba9d45354dd3e36264aceb2b862ac79d2050f14c95657e43a51b85c80", + "0xf90171a04ad705ea7bf04339fa36b124fa221379bd5a38ffe9a6112cb2d94be3a437b879a08e45b5f72e8149c01efcb71429841d6a8879d4bbe27335604a5bff8dfdf85dcea00313d9b2f7c03733d6549ea3b810e5262ed844ea12f70993d87d3e0f04e3979ea0b59e3cdd6750fa8b15164612a5cb6567cdfb386d4e0137fccee5f35ab55d0efda0fe6db56e42f2057a071c980a778d9a0b61038f269dd74a0e90155b3f40f14364a08538587f2378a0849f9608942cf481da4120c360f8391bbcc225d811823c6432a026eac94e755534e16f9552e73025d6d9c30d1d7682a4cb5bd7741ddabfd48c50a041557da9a74ca68da793e743e81e2029b2835e1cc16e9e25bd0c1e89d4ccad6980a041dda0a40a21ade3a20fcd1a4abb2a42b74e9a32b02424ff8db4ea708a5e0fb9a09aaf8326a51f613607a8685f57458329b41e938bb761131a5747e066b81a0a16808080a022e6cef138e16d2272ef58434ddf49260dc1de1f8ad6dfca3da5d2a92aaaadc58080", + "0xf851808080a009833150c367df138f1538689984b8a84fc55692d3d41fe4d1e5720ff5483a6980808080808080808080a0a319c1c415b271afc0adcb664e67738d103ac168e0bc0b7bd2da7966165cb9518080" + ], + "balance": "0x0", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": "0x0", + "storageHash": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "storageProof": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "value": "0x0", + "proof": [] + }, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000001", + "value": "0x0", + "proof": [] + } + ] + } + } + +------------------------------------------------------------------------------ diff --git a/packages/web3-eth/types/index.d.ts b/packages/web3-eth/types/index.d.ts index 709f09cf922..d5b96e44115 100644 --- a/packages/web3-eth/types/index.d.ts +++ b/packages/web3-eth/types/index.d.ts @@ -146,7 +146,7 @@ export class Eth extends AbstractWeb3Module { pendingTransactions(callback?: (error: Error, result: []) => void): Promise<[]>; - getProof(data: string, array: string[], tag: number | string, callback?: (error: Error, result: GetProof) => void): Promise; + getProof(address: string, storageKey: string[], blockNumber: number | string, callback?: (error: Error, result: GetProof) => void): Promise; } export interface Methods { @@ -233,6 +233,6 @@ export interface GetProof { codeHash: string; nonce: number | string; storageHash: string; - storageProof: Object[] + storageProof: []; }; } From a49f95d3d173be86cf24200a3686f556981c5ec8 Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Sun, 21 Apr 2019 01:08:07 +0530 Subject: [PATCH 03/22] Extra blankline fix --- packages/web3-eth/types/tests/eth.tests.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/web3-eth/types/tests/eth.tests.ts b/packages/web3-eth/types/tests/eth.tests.ts index 59ff0fb55ab..f16a7cb0f88 100644 --- a/packages/web3-eth/types/tests/eth.tests.ts +++ b/packages/web3-eth/types/tests/eth.tests.ts @@ -488,4 +488,3 @@ eth.getProof( 10, (error: Error, result: GetProof) => {} ); - From 5cfcee466838f277e10a422d2fb7721176695e1e Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Tue, 23 Apr 2019 14:56:34 +0530 Subject: [PATCH 04/22] Typing fixed --- docs/web3-eth.rst | 2 +- packages/web3-eth/types/index.d.ts | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/web3-eth.rst b/docs/web3-eth.rst index f8f5792276b..d64d7cb4b67 100644 --- a/docs/web3-eth.rst +++ b/docs/web3-eth.rst @@ -1530,7 +1530,7 @@ Parameters 1. ``String`` 20 Bytes: The Address of the account or contract. 2. ``Array`` 32 Bytes: Array of storage-keys which should be proofed and included. See :ref:`web3.eth.getStorageAt `. -3. ``Number | String``: Integer block number, or the string "latest" or "earliest". +3. ``Number | String | "latest" | "earliest"``: Integer block number, or the string "latest" or "earliest". 4. ``Function`` - (optional) Optional callback, returns an error object as first parameter and the result as second. ------- diff --git a/packages/web3-eth/types/index.d.ts b/packages/web3-eth/types/index.d.ts index d5b96e44115..f524b4de771 100644 --- a/packages/web3-eth/types/index.d.ts +++ b/packages/web3-eth/types/index.d.ts @@ -146,7 +146,7 @@ export class Eth extends AbstractWeb3Module { pendingTransactions(callback?: (error: Error, result: []) => void): Promise<[]>; - getProof(address: string, storageKey: string[], blockNumber: number | string, callback?: (error: Error, result: GetProof) => void): Promise; + getProof(address: string, storageKey: string[], blockNumber: number | string | "latest" | "earliest", callback?: (error: Error, result: GetProof) => void): Promise; } export interface Methods { @@ -229,10 +229,14 @@ export interface GetProof { result: { address: string; accountProof: string[]; - balance: number | string; + balance: string; codeHash: string; - nonce: number | string; + nonce: string; storageHash: string; - storageProof: []; + storageProof: { + key: string; + proof: string[]; + value: string; + }[]; }; } From d9c5127cc74e77d9ab00742745d70635cb9a177d Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Tue, 23 Apr 2019 15:31:35 +0530 Subject: [PATCH 05/22] Interface created for StorgeProof --- packages/web3-eth/types/index.d.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/web3-eth/types/index.d.ts b/packages/web3-eth/types/index.d.ts index f524b4de771..cec2cf7edb5 100644 --- a/packages/web3-eth/types/index.d.ts +++ b/packages/web3-eth/types/index.d.ts @@ -233,10 +233,12 @@ export interface GetProof { codeHash: string; nonce: string; storageHash: string; - storageProof: { - key: string; - proof: string[]; - value: string; - }[]; + storageProof: StorageProof[]; }; } + +export interface StorageProof { + key: string; + proof: string[]; + value: string; +} From 2375512df41801137a9e10991685fc90eefe9332 Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Tue, 23 Apr 2019 18:22:16 +0530 Subject: [PATCH 06/22] Added after execution --- docs/web3-eth.rst | 8 ++++---- .../src/methods/node/GetProofMethod.js | 20 +++++++++++++++++++ packages/web3-eth/types/index.d.ts | 2 +- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/docs/web3-eth.rst b/docs/web3-eth.rst index d64d7cb4b67..831a1015280 100644 --- a/docs/web3-eth.rst +++ b/docs/web3-eth.rst @@ -1571,19 +1571,19 @@ Example "0xf90171a04ad705ea7bf04339fa36b124fa221379bd5a38ffe9a6112cb2d94be3a437b879a08e45b5f72e8149c01efcb71429841d6a8879d4bbe27335604a5bff8dfdf85dcea00313d9b2f7c03733d6549ea3b810e5262ed844ea12f70993d87d3e0f04e3979ea0b59e3cdd6750fa8b15164612a5cb6567cdfb386d4e0137fccee5f35ab55d0efda0fe6db56e42f2057a071c980a778d9a0b61038f269dd74a0e90155b3f40f14364a08538587f2378a0849f9608942cf481da4120c360f8391bbcc225d811823c6432a026eac94e755534e16f9552e73025d6d9c30d1d7682a4cb5bd7741ddabfd48c50a041557da9a74ca68da793e743e81e2029b2835e1cc16e9e25bd0c1e89d4ccad6980a041dda0a40a21ade3a20fcd1a4abb2a42b74e9a32b02424ff8db4ea708a5e0fb9a09aaf8326a51f613607a8685f57458329b41e938bb761131a5747e066b81a0a16808080a022e6cef138e16d2272ef58434ddf49260dc1de1f8ad6dfca3da5d2a92aaaadc58080", "0xf851808080a009833150c367df138f1538689984b8a84fc55692d3d41fe4d1e5720ff5483a6980808080808080808080a0a319c1c415b271afc0adcb664e67738d103ac168e0bc0b7bd2da7966165cb9518080" ], - "balance": "0x0", + "balance": "0", "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "nonce": "0x0", + "nonce": "0", "storageHash": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "storageProof": [ { "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "value": "0x0", + "value": "0", "proof": [] }, { "key": "0x0000000000000000000000000000000000000000000000000000000000000001", - "value": "0x0", + "value": "0", "proof": [] } ] diff --git a/packages/web3-core-method/src/methods/node/GetProofMethod.js b/packages/web3-core-method/src/methods/node/GetProofMethod.js index cdfacc59a29..338397c892a 100644 --- a/packages/web3-core-method/src/methods/node/GetProofMethod.js +++ b/packages/web3-core-method/src/methods/node/GetProofMethod.js @@ -33,4 +33,24 @@ export default class GetProofMethod extends AbstractMethod { constructor(utils, formatters, moduleInstance) { super('eth_getProof', 3, utils, formatters, moduleInstance); } + + /** + * This method will be executed after the RPC request. + * + * @method afterExecution + * + * @param {Object} response + * + * @returns {Number} + */ + afterExecution(response) { + response.nonce = this.utils.hexToNumber(response.nonce); + response.gas = this.utils.hexToNumber(response.gas); + + for (let i = 0; i < response.storageProof.length; i++) { + response.storageProof[i].value = this.utils.toBN(response.storageProof[i].value).toString(10); + } + + return response; + } } diff --git a/packages/web3-eth/types/index.d.ts b/packages/web3-eth/types/index.d.ts index cec2cf7edb5..ac7fb275eae 100644 --- a/packages/web3-eth/types/index.d.ts +++ b/packages/web3-eth/types/index.d.ts @@ -239,6 +239,6 @@ export interface GetProof { export interface StorageProof { key: string; - proof: string[]; value: string; + proof: string[]; } From a0d1e3bf7941e33b147ea1078e9aff62fad31f50 Mon Sep 17 00:00:00 2001 From: prince Date: Tue, 23 Apr 2019 22:36:20 +0530 Subject: [PATCH 07/22] Test Updated --- .../src/methods/node/GetProofMethod.js | 2 +- .../src/methods/node/GetProofMethodTest.js | 29 ++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/packages/web3-core-method/src/methods/node/GetProofMethod.js b/packages/web3-core-method/src/methods/node/GetProofMethod.js index 338397c892a..960e4a2da30 100644 --- a/packages/web3-core-method/src/methods/node/GetProofMethod.js +++ b/packages/web3-core-method/src/methods/node/GetProofMethod.js @@ -45,7 +45,7 @@ export default class GetProofMethod extends AbstractMethod { */ afterExecution(response) { response.nonce = this.utils.hexToNumber(response.nonce); - response.gas = this.utils.hexToNumber(response.gas); + response.balance = this.utils.hexToNumber(response.balance); for (let i = 0; i < response.storageProof.length; i++) { response.storageProof[i].value = this.utils.toBN(response.storageProof[i].value).toString(10); diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index 1587a39dfc4..898034bc6b7 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -1,3 +1,4 @@ +import * as Utils from 'web3-utils'; import AbstractMethod from '../../../../lib/methods/AbstractMethod'; import GetProofMethod from '../../../../src/methods/node/GetProofMethod'; @@ -8,7 +9,7 @@ describe('GetProofMethodTest', () => { let method; beforeEach(() => { - method = new GetProofMethod(null, null, {}); + method = new GetProofMethod(Utils, null, {}); }); it('constructor check', () => { @@ -22,4 +23,30 @@ describe('GetProofMethodTest', () => { expect(method.formatters).toEqual(null); }); + + it('afterExecution should map the response', () => { + Utils.hexToNumber.mockReturnValueOnce(100); + + expect(method.afterExecution('0x1').nonce).toEqual(1); + expect(method.afterExecution('0x1').balance).toEqual(1); + + const tests = [{input: '0x2', result: 2}, {input: '0x63', result: 99}]; + + for (let i = 0; i < 2; i++) { + it('should call BN', () => { + var afterExecution = method.afterExecution(tests[i].input); + var actual = afterExecution.storageProof[i].value; + + expect(actual).toBe(tests[i].result); + + expect(Utils.toBN).toHaveBeenCalledWith(tests[i].input); + }); + } + + expect(Utils.hexToNumber).toHaveBeenCalledWith('0x0'); + }); + + it('afterExecution should directly return the response', () => { + expect(method.afterExecution(false)).toEqual(false); + }); }); From aabc6abb41f6ba0d0273548bd930998cc2c62789 Mon Sep 17 00:00:00 2001 From: prince Date: Tue, 23 Apr 2019 22:47:10 +0530 Subject: [PATCH 08/22] Test Updated --- .../tests/src/methods/node/GetProofMethodTest.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index 898034bc6b7..1ed0a312e95 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -19,7 +19,7 @@ describe('GetProofMethodTest', () => { expect(method.parametersAmount).toEqual(3); - expect(method.utils).toEqual(null); + expect(method.utils).toEqual(Utils); expect(method.formatters).toEqual(null); }); @@ -43,7 +43,7 @@ describe('GetProofMethodTest', () => { }); } - expect(Utils.hexToNumber).toHaveBeenCalledWith('0x0'); + expect(Utils.hexToNumber).toHaveBeenCalledWith('0x1'); }); it('afterExecution should directly return the response', () => { From 159ff596f3b983cd0485bc697db2a02b17cb5ea8 Mon Sep 17 00:00:00 2001 From: prince Date: Tue, 23 Apr 2019 23:16:02 +0530 Subject: [PATCH 09/22] Test fix --- .../src/methods/node/GetProofMethod.js | 10 ++-- .../src/methods/node/GetProofMethodTest.js | 46 +++++++++++++++---- 2 files changed, 41 insertions(+), 15 deletions(-) diff --git a/packages/web3-core-method/src/methods/node/GetProofMethod.js b/packages/web3-core-method/src/methods/node/GetProofMethod.js index 960e4a2da30..263a6196477 100644 --- a/packages/web3-core-method/src/methods/node/GetProofMethod.js +++ b/packages/web3-core-method/src/methods/node/GetProofMethod.js @@ -44,13 +44,13 @@ export default class GetProofMethod extends AbstractMethod { * @returns {Number} */ afterExecution(response) { - response.nonce = this.utils.hexToNumber(response.nonce); - response.balance = this.utils.hexToNumber(response.balance); + response.result.nonce = this.utils.hexToNumber(response.result.nonce); + response.result.balance = this.utils.hexToNumber(response.result.balance); - for (let i = 0; i < response.storageProof.length; i++) { - response.storageProof[i].value = this.utils.toBN(response.storageProof[i].value).toString(10); + for (let i = 0; i < response.result.storageProof.length; i++) { + response.result.storageProof[i].value = this.utils.toBN(response.result.storageProof[i].value).toString(10); } return response; - } + } diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index 1ed0a312e95..9b7ff9bd7ef 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -25,21 +25,47 @@ describe('GetProofMethodTest', () => { }); it('afterExecution should map the response', () => { - Utils.hexToNumber.mockReturnValueOnce(100); + const response = { + jsonrpc: '2.0', + id: 1, + result: { + address: '0x1234567890123456789012345678901234567890', + accountProof: [ + '0xf90211a090dcaf88c40c7bbc95a912cbdde67c175767b31173df9ee4b0d733bfdd511c43a0babe369f6b12092f49181ae04ca173fb68d1a5456f18d20fa32cba73954052bda0473ecf8a7e36a829e75039a3b055e51b8332cbf03324ab4af2066bbd6fbf0021a0bbda34753d7aa6c38e603f360244e8f59611921d9e1f128372fec0d586d4f9e0a04e44caecff45c9891f74f6a2156735886eedf6f1a733628ebc802ec79d844648a0a5f3f2f7542148c973977c8a1e154c4300fec92f755f7846f1b734d3ab1d90e7a0e823850f50bf72baae9d1733a36a444ab65d0a6faaba404f0583ce0ca4dad92da0f7a00cbe7d4b30b11faea3ae61b7f1f2b315b61d9f6bd68bfe587ad0eeceb721a07117ef9fc932f1a88e908eaead8565c19b5645dc9e5b1b6e841c5edbdfd71681a069eb2de283f32c11f859d7bcf93da23990d3e662935ed4d6b39ce3673ec84472a0203d26456312bbc4da5cd293b75b840fc5045e493d6f904d180823ec22bfed8ea09287b5c21f2254af4e64fca76acc5cd87399c7f1ede818db4326c98ce2dc2208a06fc2d754e304c48ce6a517753c62b1a9c1d5925b89707486d7fc08919e0a94eca07b1c54f15e299bd58bdfef9741538c7828b5d7d11a489f9c20d052b3471df475a051f9dd3739a927c89e357580a4c97b40234aa01ed3d5e0390dc982a7975880a0a089d613f26159af43616fd9455bb461f4869bfede26f2130835ed067a8b967bfb80', + '0xf90211a0395d87a95873cd98c21cf1df9421af03f7247880a2554e20738eec2c7507a494a0bcf6546339a1e7e14eb8fb572a968d217d2a0d1f3bc4257b22ef5333e9e4433ca012ae12498af8b2752c99efce07f3feef8ec910493be749acd63822c3558e6671a0dbf51303afdc36fc0c2d68a9bb05dab4f4917e7531e4a37ab0a153472d1b86e2a0ae90b50f067d9a2244e3d975233c0a0558c39ee152969f6678790abf773a9621a01d65cd682cc1be7c5e38d8da5c942e0a73eeaef10f387340a40a106699d494c3a06163b53d956c55544390c13634ea9aa75309f4fd866f312586942daf0f60fb37a058a52c1e858b1382a8893eb9c1f111f266eb9e21e6137aff0dddea243a567000a037b4b100761e02de63ea5f1fcfcf43e81a372dafb4419d126342136d329b7a7ba032472415864b08f808ba4374092003c8d7c40a9f7f9fe9cc8291f62538e1cc14a074e238ff5ec96b810364515551344100138916594d6af966170ff326a092fab0a0d31ac4eef14a79845200a496662e92186ca8b55e29ed0f9f59dbc6b521b116fea090607784fe738458b63c1942bba7c0321ae77e18df4961b2bc66727ea996464ea078f757653c1b63f72aff3dcc3f2a2e4c8cb4a9d36d1117c742833c84e20de994a0f78407de07f4b4cb4f899dfb95eedeb4049aeb5fc1635d65cf2f2f4dfd25d1d7a0862037513ba9d45354dd3e36264aceb2b862ac79d2050f14c95657e43a51b85c80', + '0xf90171a04ad705ea7bf04339fa36b124fa221379bd5a38ffe9a6112cb2d94be3a437b879a08e45b5f72e8149c01efcb71429841d6a8879d4bbe27335604a5bff8dfdf85dcea00313d9b2f7c03733d6549ea3b810e5262ed844ea12f70993d87d3e0f04e3979ea0b59e3cdd6750fa8b15164612a5cb6567cdfb386d4e0137fccee5f35ab55d0efda0fe6db56e42f2057a071c980a778d9a0b61038f269dd74a0e90155b3f40f14364a08538587f2378a0849f9608942cf481da4120c360f8391bbcc225d811823c6432a026eac94e755534e16f9552e73025d6d9c30d1d7682a4cb5bd7741ddabfd48c50a041557da9a74ca68da793e743e81e2029b2835e1cc16e9e25bd0c1e89d4ccad6980a041dda0a40a21ade3a20fcd1a4abb2a42b74e9a32b02424ff8db4ea708a5e0fb9a09aaf8326a51f613607a8685f57458329b41e938bb761131a5747e066b81a0a16808080a022e6cef138e16d2272ef58434ddf49260dc1de1f8ad6dfca3da5d2a92aaaadc58080', + '0xf851808080a009833150c367df138f1538689984b8a84fc55692d3d41fe4d1e5720ff5483a6980808080808080808080a0a319c1c415b271afc0adcb664e67738d103ac168e0bc0b7bd2da7966165cb9518080' + ], + balance: '0x5', + codeHash: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', + nonce: '0x1', + storageHash: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421', + storageProof: [ + { + key: '0x0000000000000000000000000000000000000000000000000000000000000000', + value: '0x0', + proof: [] + }, + { + key: '0x0000000000000000000000000000000000000000000000000000000000000001', + value: '0x0', + proof: [] + } + ] + } + }; - expect(method.afterExecution('0x1').nonce).toEqual(1); - expect(method.afterExecution('0x1').balance).toEqual(1); + expect(method.afterExecution(response).result.nonce).toEqual(1); + expect(method.afterExecution(response).result.balance).toEqual(5); - const tests = [{input: '0x2', result: 2}, {input: '0x63', result: 99}]; - - for (let i = 0; i < 2; i++) { + for (let i = 0; i < response.result.storageProof.length; i++) { it('should call BN', () => { - var afterExecution = method.afterExecution(tests[i].input); - var actual = afterExecution.storageProof[i].value; + var afterExecution = method.afterExecution(response); + var actual = afterExecution.result.storageProof[i].value; - expect(actual).toBe(tests[i].result); + expect(actual).toBe(0); - expect(Utils.toBN).toHaveBeenCalledWith(tests[i].input); + expect(Utils.toBN).toHaveBeenCalledWith('0x0'); }); } From f3e2f3035f2fa3794b47795056e69ae13169f7d3 Mon Sep 17 00:00:00 2001 From: prince Date: Tue, 23 Apr 2019 23:24:39 +0530 Subject: [PATCH 10/22] Test fix --- packages/web3-core-method/src/methods/node/GetProofMethod.js | 4 ++-- .../tests/src/methods/node/GetProofMethodTest.js | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/web3-core-method/src/methods/node/GetProofMethod.js b/packages/web3-core-method/src/methods/node/GetProofMethod.js index 263a6196477..c61bc041117 100644 --- a/packages/web3-core-method/src/methods/node/GetProofMethod.js +++ b/packages/web3-core-method/src/methods/node/GetProofMethod.js @@ -47,10 +47,10 @@ export default class GetProofMethod extends AbstractMethod { response.result.nonce = this.utils.hexToNumber(response.result.nonce); response.result.balance = this.utils.hexToNumber(response.result.balance); - for (let i = 0; i < response.result.storageProof.length; i++) { + for (let i = 0; i < response.storageProof.length; i++) { response.result.storageProof[i].value = this.utils.toBN(response.result.storageProof[i].value).toString(10); } return response; - + } } diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index 9b7ff9bd7ef..27607579fac 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -65,11 +65,12 @@ describe('GetProofMethodTest', () => { expect(actual).toBe(0); - expect(Utils.toBN).toHaveBeenCalledWith('0x0'); + expect(Utils.toBN).toHaveBeenCalledWith(response.result.storageProof[i].value); }); } - expect(Utils.hexToNumber).toHaveBeenCalledWith('0x1'); + expect(Utils.hexToNumber).toHaveBeenCalledWith(response.result.nonce); + expect(Utils.hexToNumber).toHaveBeenCalledWith(response.result.balance); }); it('afterExecution should directly return the response', () => { From 567df07c6f01b02acbcc22f18cfeb3cbe8075c5c Mon Sep 17 00:00:00 2001 From: prince Date: Tue, 23 Apr 2019 23:41:02 +0530 Subject: [PATCH 11/22] Test error fix --- .../web3-core-method/src/methods/node/GetProofMethod.js | 2 +- .../tests/src/methods/node/GetProofMethodTest.js | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/web3-core-method/src/methods/node/GetProofMethod.js b/packages/web3-core-method/src/methods/node/GetProofMethod.js index c61bc041117..49b808835dd 100644 --- a/packages/web3-core-method/src/methods/node/GetProofMethod.js +++ b/packages/web3-core-method/src/methods/node/GetProofMethod.js @@ -47,7 +47,7 @@ export default class GetProofMethod extends AbstractMethod { response.result.nonce = this.utils.hexToNumber(response.result.nonce); response.result.balance = this.utils.hexToNumber(response.result.balance); - for (let i = 0; i < response.storageProof.length; i++) { + for (let i = 0; i < response.result.storageProof.length; i++) { response.result.storageProof[i].value = this.utils.toBN(response.result.storageProof[i].value).toString(10); } diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index 27607579fac..f10e91a55aa 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -55,13 +55,14 @@ describe('GetProofMethodTest', () => { } }; - expect(method.afterExecution(response).result.nonce).toEqual(1); - expect(method.afterExecution(response).result.balance).toEqual(5); + const actualResponse = method.afterExecution(response); + + expect(actualResponse.result.nonce).toEqual(1); + expect(actualResponse.result.balance).toEqual(5); for (let i = 0; i < response.result.storageProof.length; i++) { it('should call BN', () => { - var afterExecution = method.afterExecution(response); - var actual = afterExecution.result.storageProof[i].value; + var actual = actualResponse.result.storageProof[i].value; expect(actual).toBe(0); From 6cb1c1668d4653f47829d0c8e28d992ccc8caac6 Mon Sep 17 00:00:00 2001 From: prince Date: Tue, 23 Apr 2019 23:52:33 +0530 Subject: [PATCH 12/22] Test error fix --- .../tests/src/methods/node/GetProofMethodTest.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index f10e91a55aa..42dac8c0624 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -61,20 +61,16 @@ describe('GetProofMethodTest', () => { expect(actualResponse.result.balance).toEqual(5); for (let i = 0; i < response.result.storageProof.length; i++) { - it('should call BN', () => { - var actual = actualResponse.result.storageProof[i].value; + var actual = actualResponse.result.storageProof[i].value; - expect(actual).toBe(0); + expect(actual).toBe(0); - expect(Utils.toBN).toHaveBeenCalledWith(response.result.storageProof[i].value); - }); + expect(Utils.toBN).toHaveBeenCalledWith(response.result.storageProof[i].value); } expect(Utils.hexToNumber).toHaveBeenCalledWith(response.result.nonce); expect(Utils.hexToNumber).toHaveBeenCalledWith(response.result.balance); - }); - it('afterExecution should directly return the response', () => { expect(method.afterExecution(false)).toEqual(false); }); }); From e6b23988a8b80b6ad379603ac5ac30ef9a4bb0af Mon Sep 17 00:00:00 2001 From: prince Date: Wed, 24 Apr 2019 00:00:54 +0530 Subject: [PATCH 13/22] Test error fix --- .../tests/src/methods/node/GetProofMethodTest.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index 42dac8c0624..e7a569cc465 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -63,7 +63,7 @@ describe('GetProofMethodTest', () => { for (let i = 0; i < response.result.storageProof.length; i++) { var actual = actualResponse.result.storageProof[i].value; - expect(actual).toBe(0); + expect(actual).toBe('0'); expect(Utils.toBN).toHaveBeenCalledWith(response.result.storageProof[i].value); } From 29889b862cb8d0cd6680533e4f9ea10c8a418606 Mon Sep 17 00:00:00 2001 From: prince Date: Wed, 24 Apr 2019 00:12:09 +0530 Subject: [PATCH 14/22] Test error fix --- .../tests/src/methods/node/GetProofMethodTest.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index e7a569cc465..9774f73d590 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -55,6 +55,9 @@ describe('GetProofMethodTest', () => { } }; + Utils.hexToNumber.mockReturnValueOnce(100); + Utils.toBN.mockReturnValueOnce('0'); + const actualResponse = method.afterExecution(response); expect(actualResponse.result.nonce).toEqual(1); From dbe0507bcbb50a3f0fc2d16069326fd984ca7b04 Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Wed, 24 Apr 2019 10:27:37 +0530 Subject: [PATCH 15/22] Test jest fix --- .../tests/src/methods/node/GetProofMethodTest.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index 9774f73d590..fedb049a53b 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -55,9 +55,6 @@ describe('GetProofMethodTest', () => { } }; - Utils.hexToNumber.mockReturnValueOnce(100); - Utils.toBN.mockReturnValueOnce('0'); - const actualResponse = method.afterExecution(response); expect(actualResponse.result.nonce).toEqual(1); @@ -68,11 +65,10 @@ describe('GetProofMethodTest', () => { expect(actual).toBe('0'); - expect(Utils.toBN).toHaveBeenCalledWith(response.result.storageProof[i].value); + expect(Utils.toBN).toHaveBeenCalled(); } - expect(Utils.hexToNumber).toHaveBeenCalledWith(response.result.nonce); - expect(Utils.hexToNumber).toHaveBeenCalledWith(response.result.balance); + expect(Utils.hexToNumber).toHaveBeenCalled(); expect(method.afterExecution(false)).toEqual(false); }); From e20aa9736e86376abe34f8041f1e1f9628e84dc5 Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Wed, 24 Apr 2019 10:40:50 +0530 Subject: [PATCH 16/22] Test jest fix --- .../tests/src/methods/node/GetProofMethodTest.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index fedb049a53b..85f036f3204 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -64,12 +64,8 @@ describe('GetProofMethodTest', () => { var actual = actualResponse.result.storageProof[i].value; expect(actual).toBe('0'); - - expect(Utils.toBN).toHaveBeenCalled(); } - expect(Utils.hexToNumber).toHaveBeenCalled(); - expect(method.afterExecution(false)).toEqual(false); }); }); From 11ba4a6044ab224a161301cf18a0eeea3c9d9b8e Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Wed, 24 Apr 2019 10:57:22 +0530 Subject: [PATCH 17/22] Test jest fix --- .../tests/src/methods/node/GetProofMethodTest.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index 85f036f3204..ceb2a734ab7 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -2,6 +2,9 @@ import * as Utils from 'web3-utils'; import AbstractMethod from '../../../../lib/methods/AbstractMethod'; import GetProofMethod from '../../../../src/methods/node/GetProofMethod'; +// Mocks +jest.mock('web3-utils'); + /** * GetProofMethod test */ @@ -64,8 +67,10 @@ describe('GetProofMethodTest', () => { var actual = actualResponse.result.storageProof[i].value; expect(actual).toBe('0'); + + expect(Utils.toBN).toHaveBeenCalled(); } - expect(method.afterExecution(false)).toEqual(false); + expect(Utils.hexToNumber).toHaveBeenCalled(); }); }); From 8f5664222a1e7d3d2d0b5676b19796f8436347ce Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Wed, 24 Apr 2019 11:21:57 +0530 Subject: [PATCH 18/22] Test jest fix --- packages/web3-core-method/src/methods/node/GetProofMethod.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web3-core-method/src/methods/node/GetProofMethod.js b/packages/web3-core-method/src/methods/node/GetProofMethod.js index 49b808835dd..20d2ed170d0 100644 --- a/packages/web3-core-method/src/methods/node/GetProofMethod.js +++ b/packages/web3-core-method/src/methods/node/GetProofMethod.js @@ -48,7 +48,7 @@ export default class GetProofMethod extends AbstractMethod { response.result.balance = this.utils.hexToNumber(response.result.balance); for (let i = 0; i < response.result.storageProof.length; i++) { - response.result.storageProof[i].value = this.utils.toBN(response.result.storageProof[i].value).toString(10); + response.result.storageProof[i].value = this.utils.toBN(response.result.storageProof[i].value); } return response; From c867613c28b2ddec72577a2b4cd5304c65d85b2f Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Wed, 24 Apr 2019 13:46:45 +0530 Subject: [PATCH 19/22] Test cases fixed --- .../web3-core-method/src/methods/node/GetProofMethod.js | 4 ++-- .../tests/src/methods/node/GetProofMethodTest.js | 7 ------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/packages/web3-core-method/src/methods/node/GetProofMethod.js b/packages/web3-core-method/src/methods/node/GetProofMethod.js index 20d2ed170d0..2be11cbc4ed 100644 --- a/packages/web3-core-method/src/methods/node/GetProofMethod.js +++ b/packages/web3-core-method/src/methods/node/GetProofMethod.js @@ -41,14 +41,14 @@ export default class GetProofMethod extends AbstractMethod { * * @param {Object} response * - * @returns {Number} + * @returns {Object} */ afterExecution(response) { response.result.nonce = this.utils.hexToNumber(response.result.nonce); response.result.balance = this.utils.hexToNumber(response.result.balance); for (let i = 0; i < response.result.storageProof.length; i++) { - response.result.storageProof[i].value = this.utils.toBN(response.result.storageProof[i].value); + response.result.storageProof[i].value = this.utils.toBN(response.result.storageProof[i].value).toString(10); } return response; diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index ceb2a734ab7..b6709cffa54 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -2,9 +2,6 @@ import * as Utils from 'web3-utils'; import AbstractMethod from '../../../../lib/methods/AbstractMethod'; import GetProofMethod from '../../../../src/methods/node/GetProofMethod'; -// Mocks -jest.mock('web3-utils'); - /** * GetProofMethod test */ @@ -67,10 +64,6 @@ describe('GetProofMethodTest', () => { var actual = actualResponse.result.storageProof[i].value; expect(actual).toBe('0'); - - expect(Utils.toBN).toHaveBeenCalled(); } - - expect(Utils.hexToNumber).toHaveBeenCalled(); }); }); From 06cd1498595a4c113412ee68c8198230a32f66ea Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Wed, 24 Apr 2019 16:08:22 +0530 Subject: [PATCH 20/22] afterExecution fixed --- docs/web3-eth.rst | 58 +++++++++---------- .../src/methods/node/GetProofMethod.js | 8 +-- .../src/methods/node/GetProofMethodTest.js | 58 +++++++++---------- 3 files changed, 58 insertions(+), 66 deletions(-) diff --git a/docs/web3-eth.rst b/docs/web3-eth.rst index 831a1015280..cba1dd6e111 100644 --- a/docs/web3-eth.rst +++ b/docs/web3-eth.rst @@ -760,7 +760,7 @@ Example web3.eth.getPendingTransactions().then(console.log); > [ - { + { blockHash: '0x0000000000000000000000000000000000000000000000000000000000000000', blockNumber: null, from: '0x28bdb9c230f4d5e45435e4d006326ee32e46cb31', @@ -774,8 +774,8 @@ Example value: '0x0', v: '0x3d', r: '0xaabc9ddafffb2ae0bac4107697547d22d9383667d9e97f5409dd6881ce08f13f', - s: '0x69e43116be8f842dcd4a0b2f760043737a59534430b762317db21d9ac8c5034' - },....,{ + s: '0x69e43116be8f842dcd4a0b2f760043737a59534430b762317db21d9ac8c5034' + },....,{ blockHash: '0x0000000000000000000000000000000000000000000000000000000000000000', blockNumber: null, from: '0x28bdb9c230f4d5e45435e4d006326ee32e487b31', @@ -789,7 +789,7 @@ Example value: '0x0', v: '0x3d', r: '0x1ec191ef20b0e9628c4397665977cbe7a53a263c04f6f185132b77fa0fd5ca44', - s: '0x8a58e00c63e05cfeae4f1cf19f05ce82079dc4d5857e2cc281b7797d58b5faf' + s: '0x8a58e00c63e05cfeae4f1cf19f05ce82079dc4d5857e2cc281b7797d58b5faf' } ] @@ -1561,33 +1561,29 @@ Example "latest" ).then(console.log); > { - "jsonrpc": "2.0", - "id": 1, - "result": { - "address": "0x1234567890123456789012345678901234567890", - "accountProof": [ - "0xf90211a090dcaf88c40c7bbc95a912cbdde67c175767b31173df9ee4b0d733bfdd511c43a0babe369f6b12092f49181ae04ca173fb68d1a5456f18d20fa32cba73954052bda0473ecf8a7e36a829e75039a3b055e51b8332cbf03324ab4af2066bbd6fbf0021a0bbda34753d7aa6c38e603f360244e8f59611921d9e1f128372fec0d586d4f9e0a04e44caecff45c9891f74f6a2156735886eedf6f1a733628ebc802ec79d844648a0a5f3f2f7542148c973977c8a1e154c4300fec92f755f7846f1b734d3ab1d90e7a0e823850f50bf72baae9d1733a36a444ab65d0a6faaba404f0583ce0ca4dad92da0f7a00cbe7d4b30b11faea3ae61b7f1f2b315b61d9f6bd68bfe587ad0eeceb721a07117ef9fc932f1a88e908eaead8565c19b5645dc9e5b1b6e841c5edbdfd71681a069eb2de283f32c11f859d7bcf93da23990d3e662935ed4d6b39ce3673ec84472a0203d26456312bbc4da5cd293b75b840fc5045e493d6f904d180823ec22bfed8ea09287b5c21f2254af4e64fca76acc5cd87399c7f1ede818db4326c98ce2dc2208a06fc2d754e304c48ce6a517753c62b1a9c1d5925b89707486d7fc08919e0a94eca07b1c54f15e299bd58bdfef9741538c7828b5d7d11a489f9c20d052b3471df475a051f9dd3739a927c89e357580a4c97b40234aa01ed3d5e0390dc982a7975880a0a089d613f26159af43616fd9455bb461f4869bfede26f2130835ed067a8b967bfb80", - "0xf90211a0395d87a95873cd98c21cf1df9421af03f7247880a2554e20738eec2c7507a494a0bcf6546339a1e7e14eb8fb572a968d217d2a0d1f3bc4257b22ef5333e9e4433ca012ae12498af8b2752c99efce07f3feef8ec910493be749acd63822c3558e6671a0dbf51303afdc36fc0c2d68a9bb05dab4f4917e7531e4a37ab0a153472d1b86e2a0ae90b50f067d9a2244e3d975233c0a0558c39ee152969f6678790abf773a9621a01d65cd682cc1be7c5e38d8da5c942e0a73eeaef10f387340a40a106699d494c3a06163b53d956c55544390c13634ea9aa75309f4fd866f312586942daf0f60fb37a058a52c1e858b1382a8893eb9c1f111f266eb9e21e6137aff0dddea243a567000a037b4b100761e02de63ea5f1fcfcf43e81a372dafb4419d126342136d329b7a7ba032472415864b08f808ba4374092003c8d7c40a9f7f9fe9cc8291f62538e1cc14a074e238ff5ec96b810364515551344100138916594d6af966170ff326a092fab0a0d31ac4eef14a79845200a496662e92186ca8b55e29ed0f9f59dbc6b521b116fea090607784fe738458b63c1942bba7c0321ae77e18df4961b2bc66727ea996464ea078f757653c1b63f72aff3dcc3f2a2e4c8cb4a9d36d1117c742833c84e20de994a0f78407de07f4b4cb4f899dfb95eedeb4049aeb5fc1635d65cf2f2f4dfd25d1d7a0862037513ba9d45354dd3e36264aceb2b862ac79d2050f14c95657e43a51b85c80", - "0xf90171a04ad705ea7bf04339fa36b124fa221379bd5a38ffe9a6112cb2d94be3a437b879a08e45b5f72e8149c01efcb71429841d6a8879d4bbe27335604a5bff8dfdf85dcea00313d9b2f7c03733d6549ea3b810e5262ed844ea12f70993d87d3e0f04e3979ea0b59e3cdd6750fa8b15164612a5cb6567cdfb386d4e0137fccee5f35ab55d0efda0fe6db56e42f2057a071c980a778d9a0b61038f269dd74a0e90155b3f40f14364a08538587f2378a0849f9608942cf481da4120c360f8391bbcc225d811823c6432a026eac94e755534e16f9552e73025d6d9c30d1d7682a4cb5bd7741ddabfd48c50a041557da9a74ca68da793e743e81e2029b2835e1cc16e9e25bd0c1e89d4ccad6980a041dda0a40a21ade3a20fcd1a4abb2a42b74e9a32b02424ff8db4ea708a5e0fb9a09aaf8326a51f613607a8685f57458329b41e938bb761131a5747e066b81a0a16808080a022e6cef138e16d2272ef58434ddf49260dc1de1f8ad6dfca3da5d2a92aaaadc58080", - "0xf851808080a009833150c367df138f1538689984b8a84fc55692d3d41fe4d1e5720ff5483a6980808080808080808080a0a319c1c415b271afc0adcb664e67738d103ac168e0bc0b7bd2da7966165cb9518080" - ], - "balance": "0", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "nonce": "0", - "storageHash": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "storageProof": [ - { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "value": "0", - "proof": [] - }, - { - "key": "0x0000000000000000000000000000000000000000000000000000000000000001", - "value": "0", - "proof": [] - } - ] - } + "address": "0x1234567890123456789012345678901234567890", + "accountProof": [ + "0xf90211a090dcaf88c40c7bbc95a912cbdde67c175767b31173df9ee4b0d733bfdd511c43a0babe369f6b12092f49181ae04ca173fb68d1a5456f18d20fa32cba73954052bda0473ecf8a7e36a829e75039a3b055e51b8332cbf03324ab4af2066bbd6fbf0021a0bbda34753d7aa6c38e603f360244e8f59611921d9e1f128372fec0d586d4f9e0a04e44caecff45c9891f74f6a2156735886eedf6f1a733628ebc802ec79d844648a0a5f3f2f7542148c973977c8a1e154c4300fec92f755f7846f1b734d3ab1d90e7a0e823850f50bf72baae9d1733a36a444ab65d0a6faaba404f0583ce0ca4dad92da0f7a00cbe7d4b30b11faea3ae61b7f1f2b315b61d9f6bd68bfe587ad0eeceb721a07117ef9fc932f1a88e908eaead8565c19b5645dc9e5b1b6e841c5edbdfd71681a069eb2de283f32c11f859d7bcf93da23990d3e662935ed4d6b39ce3673ec84472a0203d26456312bbc4da5cd293b75b840fc5045e493d6f904d180823ec22bfed8ea09287b5c21f2254af4e64fca76acc5cd87399c7f1ede818db4326c98ce2dc2208a06fc2d754e304c48ce6a517753c62b1a9c1d5925b89707486d7fc08919e0a94eca07b1c54f15e299bd58bdfef9741538c7828b5d7d11a489f9c20d052b3471df475a051f9dd3739a927c89e357580a4c97b40234aa01ed3d5e0390dc982a7975880a0a089d613f26159af43616fd9455bb461f4869bfede26f2130835ed067a8b967bfb80", + "0xf90211a0395d87a95873cd98c21cf1df9421af03f7247880a2554e20738eec2c7507a494a0bcf6546339a1e7e14eb8fb572a968d217d2a0d1f3bc4257b22ef5333e9e4433ca012ae12498af8b2752c99efce07f3feef8ec910493be749acd63822c3558e6671a0dbf51303afdc36fc0c2d68a9bb05dab4f4917e7531e4a37ab0a153472d1b86e2a0ae90b50f067d9a2244e3d975233c0a0558c39ee152969f6678790abf773a9621a01d65cd682cc1be7c5e38d8da5c942e0a73eeaef10f387340a40a106699d494c3a06163b53d956c55544390c13634ea9aa75309f4fd866f312586942daf0f60fb37a058a52c1e858b1382a8893eb9c1f111f266eb9e21e6137aff0dddea243a567000a037b4b100761e02de63ea5f1fcfcf43e81a372dafb4419d126342136d329b7a7ba032472415864b08f808ba4374092003c8d7c40a9f7f9fe9cc8291f62538e1cc14a074e238ff5ec96b810364515551344100138916594d6af966170ff326a092fab0a0d31ac4eef14a79845200a496662e92186ca8b55e29ed0f9f59dbc6b521b116fea090607784fe738458b63c1942bba7c0321ae77e18df4961b2bc66727ea996464ea078f757653c1b63f72aff3dcc3f2a2e4c8cb4a9d36d1117c742833c84e20de994a0f78407de07f4b4cb4f899dfb95eedeb4049aeb5fc1635d65cf2f2f4dfd25d1d7a0862037513ba9d45354dd3e36264aceb2b862ac79d2050f14c95657e43a51b85c80", + "0xf90171a04ad705ea7bf04339fa36b124fa221379bd5a38ffe9a6112cb2d94be3a437b879a08e45b5f72e8149c01efcb71429841d6a8879d4bbe27335604a5bff8dfdf85dcea00313d9b2f7c03733d6549ea3b810e5262ed844ea12f70993d87d3e0f04e3979ea0b59e3cdd6750fa8b15164612a5cb6567cdfb386d4e0137fccee5f35ab55d0efda0fe6db56e42f2057a071c980a778d9a0b61038f269dd74a0e90155b3f40f14364a08538587f2378a0849f9608942cf481da4120c360f8391bbcc225d811823c6432a026eac94e755534e16f9552e73025d6d9c30d1d7682a4cb5bd7741ddabfd48c50a041557da9a74ca68da793e743e81e2029b2835e1cc16e9e25bd0c1e89d4ccad6980a041dda0a40a21ade3a20fcd1a4abb2a42b74e9a32b02424ff8db4ea708a5e0fb9a09aaf8326a51f613607a8685f57458329b41e938bb761131a5747e066b81a0a16808080a022e6cef138e16d2272ef58434ddf49260dc1de1f8ad6dfca3da5d2a92aaaadc58080", + "0xf851808080a009833150c367df138f1538689984b8a84fc55692d3d41fe4d1e5720ff5483a6980808080808080808080a0a319c1c415b271afc0adcb664e67738d103ac168e0bc0b7bd2da7966165cb9518080" + ], + "balance": 0, + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nonce": 0, + "storageHash": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "storageProof": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "value": '0', + "proof": [] + }, + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000001", + "value": '0', + "proof": [] + } + ] } ------------------------------------------------------------------------------ diff --git a/packages/web3-core-method/src/methods/node/GetProofMethod.js b/packages/web3-core-method/src/methods/node/GetProofMethod.js index 2be11cbc4ed..bad18b67acc 100644 --- a/packages/web3-core-method/src/methods/node/GetProofMethod.js +++ b/packages/web3-core-method/src/methods/node/GetProofMethod.js @@ -44,11 +44,11 @@ export default class GetProofMethod extends AbstractMethod { * @returns {Object} */ afterExecution(response) { - response.result.nonce = this.utils.hexToNumber(response.result.nonce); - response.result.balance = this.utils.hexToNumber(response.result.balance); + response.nonce = this.utils.hexToNumber(response.nonce); + response.balance = this.utils.hexToNumber(response.balance); - for (let i = 0; i < response.result.storageProof.length; i++) { - response.result.storageProof[i].value = this.utils.toBN(response.result.storageProof[i].value).toString(10); + for (let i = 0; i < response.storageProof.length; i++) { + response.storageProof[i].value = this.utils.toBN(response.storageProof[i].value).toString(10); } return response; diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index b6709cffa54..2dbca5402e8 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -26,42 +26,38 @@ describe('GetProofMethodTest', () => { it('afterExecution should map the response', () => { const response = { - jsonrpc: '2.0', - id: 1, - result: { - address: '0x1234567890123456789012345678901234567890', - accountProof: [ - '0xf90211a090dcaf88c40c7bbc95a912cbdde67c175767b31173df9ee4b0d733bfdd511c43a0babe369f6b12092f49181ae04ca173fb68d1a5456f18d20fa32cba73954052bda0473ecf8a7e36a829e75039a3b055e51b8332cbf03324ab4af2066bbd6fbf0021a0bbda34753d7aa6c38e603f360244e8f59611921d9e1f128372fec0d586d4f9e0a04e44caecff45c9891f74f6a2156735886eedf6f1a733628ebc802ec79d844648a0a5f3f2f7542148c973977c8a1e154c4300fec92f755f7846f1b734d3ab1d90e7a0e823850f50bf72baae9d1733a36a444ab65d0a6faaba404f0583ce0ca4dad92da0f7a00cbe7d4b30b11faea3ae61b7f1f2b315b61d9f6bd68bfe587ad0eeceb721a07117ef9fc932f1a88e908eaead8565c19b5645dc9e5b1b6e841c5edbdfd71681a069eb2de283f32c11f859d7bcf93da23990d3e662935ed4d6b39ce3673ec84472a0203d26456312bbc4da5cd293b75b840fc5045e493d6f904d180823ec22bfed8ea09287b5c21f2254af4e64fca76acc5cd87399c7f1ede818db4326c98ce2dc2208a06fc2d754e304c48ce6a517753c62b1a9c1d5925b89707486d7fc08919e0a94eca07b1c54f15e299bd58bdfef9741538c7828b5d7d11a489f9c20d052b3471df475a051f9dd3739a927c89e357580a4c97b40234aa01ed3d5e0390dc982a7975880a0a089d613f26159af43616fd9455bb461f4869bfede26f2130835ed067a8b967bfb80', - '0xf90211a0395d87a95873cd98c21cf1df9421af03f7247880a2554e20738eec2c7507a494a0bcf6546339a1e7e14eb8fb572a968d217d2a0d1f3bc4257b22ef5333e9e4433ca012ae12498af8b2752c99efce07f3feef8ec910493be749acd63822c3558e6671a0dbf51303afdc36fc0c2d68a9bb05dab4f4917e7531e4a37ab0a153472d1b86e2a0ae90b50f067d9a2244e3d975233c0a0558c39ee152969f6678790abf773a9621a01d65cd682cc1be7c5e38d8da5c942e0a73eeaef10f387340a40a106699d494c3a06163b53d956c55544390c13634ea9aa75309f4fd866f312586942daf0f60fb37a058a52c1e858b1382a8893eb9c1f111f266eb9e21e6137aff0dddea243a567000a037b4b100761e02de63ea5f1fcfcf43e81a372dafb4419d126342136d329b7a7ba032472415864b08f808ba4374092003c8d7c40a9f7f9fe9cc8291f62538e1cc14a074e238ff5ec96b810364515551344100138916594d6af966170ff326a092fab0a0d31ac4eef14a79845200a496662e92186ca8b55e29ed0f9f59dbc6b521b116fea090607784fe738458b63c1942bba7c0321ae77e18df4961b2bc66727ea996464ea078f757653c1b63f72aff3dcc3f2a2e4c8cb4a9d36d1117c742833c84e20de994a0f78407de07f4b4cb4f899dfb95eedeb4049aeb5fc1635d65cf2f2f4dfd25d1d7a0862037513ba9d45354dd3e36264aceb2b862ac79d2050f14c95657e43a51b85c80', - '0xf90171a04ad705ea7bf04339fa36b124fa221379bd5a38ffe9a6112cb2d94be3a437b879a08e45b5f72e8149c01efcb71429841d6a8879d4bbe27335604a5bff8dfdf85dcea00313d9b2f7c03733d6549ea3b810e5262ed844ea12f70993d87d3e0f04e3979ea0b59e3cdd6750fa8b15164612a5cb6567cdfb386d4e0137fccee5f35ab55d0efda0fe6db56e42f2057a071c980a778d9a0b61038f269dd74a0e90155b3f40f14364a08538587f2378a0849f9608942cf481da4120c360f8391bbcc225d811823c6432a026eac94e755534e16f9552e73025d6d9c30d1d7682a4cb5bd7741ddabfd48c50a041557da9a74ca68da793e743e81e2029b2835e1cc16e9e25bd0c1e89d4ccad6980a041dda0a40a21ade3a20fcd1a4abb2a42b74e9a32b02424ff8db4ea708a5e0fb9a09aaf8326a51f613607a8685f57458329b41e938bb761131a5747e066b81a0a16808080a022e6cef138e16d2272ef58434ddf49260dc1de1f8ad6dfca3da5d2a92aaaadc58080', - '0xf851808080a009833150c367df138f1538689984b8a84fc55692d3d41fe4d1e5720ff5483a6980808080808080808080a0a319c1c415b271afc0adcb664e67738d103ac168e0bc0b7bd2da7966165cb9518080' - ], - balance: '0x5', - codeHash: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', - nonce: '0x1', - storageHash: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421', - storageProof: [ - { - key: '0x0000000000000000000000000000000000000000000000000000000000000000', - value: '0x0', - proof: [] - }, - { - key: '0x0000000000000000000000000000000000000000000000000000000000000001', - value: '0x0', - proof: [] - } - ] - } + address: '0x1234567890123456789012345678901234567890', + accountProof: [ + '0xf90211a090dcaf88c40c7bbc95a912cbdde67c175767b31173df9ee4b0d733bfdd511c43a0babe369f6b12092f49181ae04ca173fb68d1a5456f18d20fa32cba73954052bda0473ecf8a7e36a829e75039a3b055e51b8332cbf03324ab4af2066bbd6fbf0021a0bbda34753d7aa6c38e603f360244e8f59611921d9e1f128372fec0d586d4f9e0a04e44caecff45c9891f74f6a2156735886eedf6f1a733628ebc802ec79d844648a0a5f3f2f7542148c973977c8a1e154c4300fec92f755f7846f1b734d3ab1d90e7a0e823850f50bf72baae9d1733a36a444ab65d0a6faaba404f0583ce0ca4dad92da0f7a00cbe7d4b30b11faea3ae61b7f1f2b315b61d9f6bd68bfe587ad0eeceb721a07117ef9fc932f1a88e908eaead8565c19b5645dc9e5b1b6e841c5edbdfd71681a069eb2de283f32c11f859d7bcf93da23990d3e662935ed4d6b39ce3673ec84472a0203d26456312bbc4da5cd293b75b840fc5045e493d6f904d180823ec22bfed8ea09287b5c21f2254af4e64fca76acc5cd87399c7f1ede818db4326c98ce2dc2208a06fc2d754e304c48ce6a517753c62b1a9c1d5925b89707486d7fc08919e0a94eca07b1c54f15e299bd58bdfef9741538c7828b5d7d11a489f9c20d052b3471df475a051f9dd3739a927c89e357580a4c97b40234aa01ed3d5e0390dc982a7975880a0a089d613f26159af43616fd9455bb461f4869bfede26f2130835ed067a8b967bfb80', + '0xf90211a0395d87a95873cd98c21cf1df9421af03f7247880a2554e20738eec2c7507a494a0bcf6546339a1e7e14eb8fb572a968d217d2a0d1f3bc4257b22ef5333e9e4433ca012ae12498af8b2752c99efce07f3feef8ec910493be749acd63822c3558e6671a0dbf51303afdc36fc0c2d68a9bb05dab4f4917e7531e4a37ab0a153472d1b86e2a0ae90b50f067d9a2244e3d975233c0a0558c39ee152969f6678790abf773a9621a01d65cd682cc1be7c5e38d8da5c942e0a73eeaef10f387340a40a106699d494c3a06163b53d956c55544390c13634ea9aa75309f4fd866f312586942daf0f60fb37a058a52c1e858b1382a8893eb9c1f111f266eb9e21e6137aff0dddea243a567000a037b4b100761e02de63ea5f1fcfcf43e81a372dafb4419d126342136d329b7a7ba032472415864b08f808ba4374092003c8d7c40a9f7f9fe9cc8291f62538e1cc14a074e238ff5ec96b810364515551344100138916594d6af966170ff326a092fab0a0d31ac4eef14a79845200a496662e92186ca8b55e29ed0f9f59dbc6b521b116fea090607784fe738458b63c1942bba7c0321ae77e18df4961b2bc66727ea996464ea078f757653c1b63f72aff3dcc3f2a2e4c8cb4a9d36d1117c742833c84e20de994a0f78407de07f4b4cb4f899dfb95eedeb4049aeb5fc1635d65cf2f2f4dfd25d1d7a0862037513ba9d45354dd3e36264aceb2b862ac79d2050f14c95657e43a51b85c80', + '0xf90171a04ad705ea7bf04339fa36b124fa221379bd5a38ffe9a6112cb2d94be3a437b879a08e45b5f72e8149c01efcb71429841d6a8879d4bbe27335604a5bff8dfdf85dcea00313d9b2f7c03733d6549ea3b810e5262ed844ea12f70993d87d3e0f04e3979ea0b59e3cdd6750fa8b15164612a5cb6567cdfb386d4e0137fccee5f35ab55d0efda0fe6db56e42f2057a071c980a778d9a0b61038f269dd74a0e90155b3f40f14364a08538587f2378a0849f9608942cf481da4120c360f8391bbcc225d811823c6432a026eac94e755534e16f9552e73025d6d9c30d1d7682a4cb5bd7741ddabfd48c50a041557da9a74ca68da793e743e81e2029b2835e1cc16e9e25bd0c1e89d4ccad6980a041dda0a40a21ade3a20fcd1a4abb2a42b74e9a32b02424ff8db4ea708a5e0fb9a09aaf8326a51f613607a8685f57458329b41e938bb761131a5747e066b81a0a16808080a022e6cef138e16d2272ef58434ddf49260dc1de1f8ad6dfca3da5d2a92aaaadc58080', + '0xf851808080a009833150c367df138f1538689984b8a84fc55692d3d41fe4d1e5720ff5483a6980808080808080808080a0a319c1c415b271afc0adcb664e67738d103ac168e0bc0b7bd2da7966165cb9518080' + ], + balance: '0x5', + codeHash: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', + nonce: '0x1', + storageHash: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421', + storageProof: [ + { + key: '0x0000000000000000000000000000000000000000000000000000000000000000', + value: '0x0', + proof: [] + }, + { + key: '0x0000000000000000000000000000000000000000000000000000000000000001', + value: '0x0', + proof: [] + } + ] }; const actualResponse = method.afterExecution(response); - expect(actualResponse.result.nonce).toEqual(1); - expect(actualResponse.result.balance).toEqual(5); + expect(actualResponse.nonce).toEqual(1); + expect(actualResponse.balance).toEqual(5); - for (let i = 0; i < response.result.storageProof.length; i++) { - var actual = actualResponse.result.storageProof[i].value; + for (let i = 0; i < response.storageProof.length; i++) { + var actual = actualResponse.storageProof[i].value; expect(actual).toBe('0'); } From f65086b26b5da2cf77446941d9df60f16bb43ac0 Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Wed, 24 Apr 2019 16:24:00 +0530 Subject: [PATCH 21/22] Balance conversion to BN --- packages/web3-core-method/src/methods/node/GetProofMethod.js | 2 +- .../tests/src/methods/node/GetProofMethodTest.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/web3-core-method/src/methods/node/GetProofMethod.js b/packages/web3-core-method/src/methods/node/GetProofMethod.js index bad18b67acc..ba6c882c69c 100644 --- a/packages/web3-core-method/src/methods/node/GetProofMethod.js +++ b/packages/web3-core-method/src/methods/node/GetProofMethod.js @@ -45,7 +45,7 @@ export default class GetProofMethod extends AbstractMethod { */ afterExecution(response) { response.nonce = this.utils.hexToNumber(response.nonce); - response.balance = this.utils.hexToNumber(response.balance); + response.balance = this.utils.toBN(response.balance).toString(10); for (let i = 0; i < response.storageProof.length; i++) { response.storageProof[i].value = this.utils.toBN(response.storageProof[i].value).toString(10); diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index 2dbca5402e8..62afb3d23d8 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -33,7 +33,7 @@ describe('GetProofMethodTest', () => { '0xf90171a04ad705ea7bf04339fa36b124fa221379bd5a38ffe9a6112cb2d94be3a437b879a08e45b5f72e8149c01efcb71429841d6a8879d4bbe27335604a5bff8dfdf85dcea00313d9b2f7c03733d6549ea3b810e5262ed844ea12f70993d87d3e0f04e3979ea0b59e3cdd6750fa8b15164612a5cb6567cdfb386d4e0137fccee5f35ab55d0efda0fe6db56e42f2057a071c980a778d9a0b61038f269dd74a0e90155b3f40f14364a08538587f2378a0849f9608942cf481da4120c360f8391bbcc225d811823c6432a026eac94e755534e16f9552e73025d6d9c30d1d7682a4cb5bd7741ddabfd48c50a041557da9a74ca68da793e743e81e2029b2835e1cc16e9e25bd0c1e89d4ccad6980a041dda0a40a21ade3a20fcd1a4abb2a42b74e9a32b02424ff8db4ea708a5e0fb9a09aaf8326a51f613607a8685f57458329b41e938bb761131a5747e066b81a0a16808080a022e6cef138e16d2272ef58434ddf49260dc1de1f8ad6dfca3da5d2a92aaaadc58080', '0xf851808080a009833150c367df138f1538689984b8a84fc55692d3d41fe4d1e5720ff5483a6980808080808080808080a0a319c1c415b271afc0adcb664e67738d103ac168e0bc0b7bd2da7966165cb9518080' ], - balance: '0x5', + balance: '0x13f306a2409fc0000', codeHash: '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470', nonce: '0x1', storageHash: '0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421', @@ -54,7 +54,7 @@ describe('GetProofMethodTest', () => { const actualResponse = method.afterExecution(response); expect(actualResponse.nonce).toEqual(1); - expect(actualResponse.balance).toEqual(5); + expect(actualResponse.balance).toEqual('23000000000000000000'); for (let i = 0; i < response.storageProof.length; i++) { var actual = actualResponse.storageProof[i].value; From 48d62ad99f5a992d8e5fb259f04ec3d3447cc183 Mon Sep 17 00:00:00 2001 From: princesinha19 Date: Wed, 24 Apr 2019 16:28:45 +0530 Subject: [PATCH 22/22] Nonce conversion to BN --- packages/web3-core-method/src/methods/node/GetProofMethod.js | 2 +- .../tests/src/methods/node/GetProofMethodTest.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web3-core-method/src/methods/node/GetProofMethod.js b/packages/web3-core-method/src/methods/node/GetProofMethod.js index ba6c882c69c..40fc233112f 100644 --- a/packages/web3-core-method/src/methods/node/GetProofMethod.js +++ b/packages/web3-core-method/src/methods/node/GetProofMethod.js @@ -44,7 +44,7 @@ export default class GetProofMethod extends AbstractMethod { * @returns {Object} */ afterExecution(response) { - response.nonce = this.utils.hexToNumber(response.nonce); + response.nonce = this.utils.toBN(response.nonce).toString(10); response.balance = this.utils.toBN(response.balance).toString(10); for (let i = 0; i < response.storageProof.length; i++) { diff --git a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js index 62afb3d23d8..54a456c9697 100644 --- a/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js +++ b/packages/web3-core-method/tests/src/methods/node/GetProofMethodTest.js @@ -53,7 +53,7 @@ describe('GetProofMethodTest', () => { const actualResponse = method.afterExecution(response); - expect(actualResponse.nonce).toEqual(1); + expect(actualResponse.nonce).toEqual('1'); expect(actualResponse.balance).toEqual('23000000000000000000'); for (let i = 0; i < response.storageProof.length; i++) {