diff --git a/web3.js/flow-typed/superstruct.js b/web3.js/flow-typed/superstruct.js index 7333cae28e..e323ea0d2c 100644 --- a/web3.js/flow-typed/superstruct.js +++ b/web3.js/flow-typed/superstruct.js @@ -2,7 +2,7 @@ declare module 'superstruct' { declare type StructFunc = { (any): any, union(schema: any): any; - list(schema: any): any; + array(schema: any): any; literal(schema: any): any; tuple(schema: any): any; }; diff --git a/web3.js/package-lock.json b/web3.js/package-lock.json index 028cd6746c..203be6bea1 100644 --- a/web3.js/package-lock.json +++ b/web3.js/package-lock.json @@ -7868,24 +7868,6 @@ "integrity": "sha1-YT+2hjmyaklKxTJT4Vsaa9iK2oU=", "dev": true }, - "clone-deep": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", - "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", - "requires": { - "for-own": "^1.0.0", - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.0", - "shallow-clone": "^1.0.0" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" - } - } - }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -10321,15 +10303,8 @@ "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "requires": { - "for-in": "^1.0.1" - } + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true }, "foreach": { "version": "2.0.5", @@ -12124,7 +12099,8 @@ "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true }, "is-extglob": { "version": "2.1.1", @@ -12219,6 +12195,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, "requires": { "isobject": "^3.0.1" }, @@ -12226,7 +12203,8 @@ "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true } } }, @@ -15830,22 +15808,6 @@ } } }, - "mixin-object": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", - "requires": { - "for-in": "^0.1.3", - "is-extendable": "^0.1.1" - }, - "dependencies": { - "for-in": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" - } - } - }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -22216,23 +22178,6 @@ "safe-buffer": "^5.0.1" } }, - "shallow-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", - "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", - "requires": { - "is-extendable": "^0.1.1", - "kind-of": "^5.0.0", - "mixin-object": "^2.0.1" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -22821,12 +22766,12 @@ "dev": true }, "superstruct": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.7.0.tgz", - "integrity": "sha512-dtqeKdBjiri64K1mPtc5yFSUcUEnK4r6I6GX9DXSb00aZ08Md7c8UvNRMCtXbi1P9t59KbmVwVrYLt1wUyNv9Q==", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.8.3.tgz", + "integrity": "sha512-LbtbFpktW1FcwxVIJlxdk7bCyBq/GzOx2FSFLRLTUhWIA1gHkYPIl3aXRG5mBdGZtnPNT6t+4eEcLDCMOuBHww==", "requires": { - "clone-deep": "^2.0.1", - "kind-of": "^6.0.1" + "kind-of": "^6.0.2", + "tiny-invariant": "^1.0.6" }, "dependencies": { "kind-of": { @@ -23220,6 +23165,11 @@ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, + "tiny-invariant": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.6.tgz", + "integrity": "sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA==" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", diff --git a/web3.js/package.json b/web3.js/package.json index b70933a7b5..7f8bd69d74 100644 --- a/web3.js/package.json +++ b/web3.js/package.json @@ -77,7 +77,7 @@ "node-fetch": "^2.2.0", "npm-run-all": "^4.1.5", "rpc-websockets": "^5.0.8", - "superstruct": "^0.7.0", + "superstruct": "^0.8.3", "tweetnacl": "^1.0.0", "ws": "^7.0.0" }, diff --git a/web3.js/src/connection.js b/web3.js/src/connection.js index 6ab7cf5fea..8d6389cd50 100644 --- a/web3.js/src/connection.js +++ b/web3.js/src/connection.js @@ -337,7 +337,7 @@ const SlotNotificationResult = struct({ * Expected JSON RPC response for the "getProgramAccounts" message */ const GetProgramAccountsRpcResult = jsonRpcResult( - struct.list([ProgramAccountInfoResult]), + struct.array([ProgramAccountInfoResult]), ); /** @@ -361,7 +361,7 @@ const GetSlotLeader = jsonRpcResult('string'); * Expected JSON RPC response for the "getClusterNodes" message */ const GetClusterNodes = jsonRpcResult( - struct.list([ + struct.array([ struct({ pubkey: 'string', gossip: 'string', @@ -376,13 +376,13 @@ const GetClusterNodes = jsonRpcResult( */ const GetVoteAccounts = jsonRpcResult( struct({ - current: struct.list([ + current: struct.array([ struct({ votePubkey: 'string', nodePubkey: 'string', activatedStake: 'number', epochVoteAccount: 'boolean', - epochCredits: struct.list([ + epochCredits: struct.array([ struct.tuple(['number', 'number', 'number']), ]), commission: 'number', @@ -390,13 +390,13 @@ const GetVoteAccounts = jsonRpcResult( rootSlot: 'number?', }), ]), - delinquent: struct.list([ + delinquent: struct.array([ struct({ votePubkey: 'string', nodePubkey: 'string', activatedStake: 'number', epochVoteAccount: 'boolean', - epochCredits: struct.list([ + epochCredits: struct.array([ struct.tuple(['number', 'number', 'number']), ]), commission: 'number', @@ -440,22 +440,22 @@ export const GetConfirmedBlockRpcResult = jsonRpcResult( blockhash: 'string', previousBlockhash: 'string', parentSlot: 'number', - transactions: struct.list([ + transactions: struct.array([ struct.tuple([ struct({ - signatures: struct.list(['string']), + signatures: struct.array(['string']), message: struct({ - accountKeys: struct.list(['string']), + accountKeys: struct.array(['string']), header: struct({ numRequiredSignatures: 'number', numReadonlySignedAccounts: 'number', numReadonlyUnsignedAccounts: 'number', }), - instructions: struct.list([ + instructions: struct.array([ struct.union([ - struct.list(['number']), + struct.array(['number']), struct({ - accounts: struct.list(['number']), + accounts: struct.array(['number']), data: 'string', programIdIndex: 'number', }), @@ -469,8 +469,8 @@ export const GetConfirmedBlockRpcResult = jsonRpcResult( struct({ status: SignatureStatusResult, fee: 'number', - preBalances: struct.list(['number']), - postBalances: struct.list(['number']), + preBalances: struct.array(['number']), + postBalances: struct.array(['number']), }), ]), ]),