diff --git a/axelar-chains-config/info/mainnet.json b/axelar-chains-config/info/mainnet.json index 69349e48..3132d486 100644 --- a/axelar-chains-config/info/mainnet.json +++ b/axelar-chains-config/info/mainnet.json @@ -53,13 +53,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0x7c2a10f3fb640011bd79b87339fa19125328ae8cb3031d73778edde8250cb5a7", + "codehash": "0xc267d7aaedb1dc89499aaecf4ac77e3ab7c06b7ccca3312cabf6dcd76be177cd", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -141,13 +141,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0x2b944fdbc04729de747b8c86df899e5922ab0823f743938ec786b6523d03fc14", + "codehash": "0x72bf6ca25654837abfbd9e534fd22c77db6256058964e7c19d9c6968620347a9", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -229,13 +229,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0xa90689a5ab35edaacb5305faf3dc4c375541254923da1799aeb73b925aed15bb", + "codehash": "0xc656797ac2fcb7da505d62ae2d037bd8cac0440281b19ccc177eb0d8de8640d3", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -320,13 +320,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0x5c155b1174086bf397f5b944e073a3a3d8bd391de8194fbae6b02180a9dd875f", + "codehash": "0x29db59337c0baa2643f96b30678ad643a749bf8354794f6165d883a113c2074f", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -411,13 +411,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0x7c2a10f3fb640011bd79b87339fa19125328ae8cb3031d73778edde8250cb5a7", + "codehash": "0xc267d7aaedb1dc89499aaecf4ac77e3ab7c06b7ccca3312cabf6dcd76be177cd", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -500,13 +500,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0xa90689a5ab35edaacb5305faf3dc4c375541254923da1799aeb73b925aed15bb", + "codehash": "0xc656797ac2fcb7da505d62ae2d037bd8cac0440281b19ccc177eb0d8de8640d3", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -591,13 +591,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0xdf93a83f152e71432d3ccdfa5502fc805f4eeef0a6e616b6a28dc55d74aaae85", + "codehash": "0x70cb562f5d856fab1b0eee1e91dfcbb568be85f28e184c6a096b4c63b145a6c2", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -645,7 +645,9 @@ "authModule": "0x96eEE595f0ACD7d232a9B1dE4FCc2a4b2F6b0f3a", "tokenDeployer": "0xb28478319B64f8D47e19A120209A211D902F8b8f", "deploymentMethod": "create3", - "salt": "AxelarGateway v6.2" + "salt": "AxelarGateway v6.2", + "governance": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", + "mintLimiter": "0xCC940AE49C78F20E3F13F3cF37e996b98Ac3EC68" }, "AxelarGasService": { "salt": "AxelarGasService", @@ -682,13 +684,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0xdf93a83f152e71432d3ccdfa5502fc805f4eeef0a6e616b6a28dc55d74aaae85", + "codehash": "0x70cb562f5d856fab1b0eee1e91dfcbb568be85f28e184c6a096b4c63b145a6c2", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -770,13 +772,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0xdf93a83f152e71432d3ccdfa5502fc805f4eeef0a6e616b6a28dc55d74aaae85", + "codehash": "0x70cb562f5d856fab1b0eee1e91dfcbb568be85f28e184c6a096b4c63b145a6c2", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -797,8 +799,7 @@ } }, "explorer": { - "url": "https://explorer.kava.io", - "api": "https://explorer.kava.io/api" + "url": "https://explorer.kava.io" }, "staticGasOptions": { "gasLimit": 3000000, @@ -858,13 +859,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0xdf93a83f152e71432d3ccdfa5502fc805f4eeef0a6e616b6a28dc55d74aaae85", + "codehash": "0x70cb562f5d856fab1b0eee1e91dfcbb568be85f28e184c6a096b4c63b145a6c2", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -891,9 +892,10 @@ "gasOptions": { "gasLimit": 500000000 }, + "eip1559": true, "staticGasOptions": { - "gasLimit": 3000000, - "gasPrice": 1000000000 + "gasLimit": 100000000, + "maxFeePerGas": 1000000000 } }, "optimism": { @@ -949,13 +951,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0xdf93a83f152e71432d3ccdfa5502fc805f4eeef0a6e616b6a28dc55d74aaae85", + "codehash": "0x70cb562f5d856fab1b0eee1e91dfcbb568be85f28e184c6a096b4c63b145a6c2", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -1041,13 +1043,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0xdf93a83f152e71432d3ccdfa5502fc805f4eeef0a6e616b6a28dc55d74aaae85", + "codehash": "0x70cb562f5d856fab1b0eee1e91dfcbb568be85f28e184c6a096b4c63b145a6c2", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -1129,13 +1131,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0xdf93a83f152e71432d3ccdfa5502fc805f4eeef0a6e616b6a28dc55d74aaae85", + "codehash": "0x70cb562f5d856fab1b0eee1e91dfcbb568be85f28e184c6a096b4c63b145a6c2", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -1218,13 +1220,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0xdf93a83f152e71432d3ccdfa5502fc805f4eeef0a6e616b6a28dc55d74aaae85", + "codehash": "0x70cb562f5d856fab1b0eee1e91dfcbb568be85f28e184c6a096b4c63b145a6c2", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, @@ -1305,13 +1307,13 @@ "InterchainGovernance": { "governanceChain": "Axelarnet", "governanceAddress": "axelar10d07y265gmmuvt4z0w9aw880jnsr700j7v9daj", - "minimumTimeDelay": 14400, - "address": "0xBbEE71e2fE7741Cdd7787DC46D73Af6715D47Dc0", - "deployer": "0xd55cd98cdE61c3CcE1286F9aF50cDbF16f5dba5b", + "minimumTimeDelay": 604800, + "address": "0xfDF36A30070ea0241d69052ea85ff44Ad0476a66", + "deployer": "0x6f24A47Fc8AE5441Eb47EFfC3665e70e69Ac3F05", "deploymentMethod": "create3", - "codehash": "0xdf93a83f152e71432d3ccdfa5502fc805f4eeef0a6e616b6a28dc55d74aaae85", + "codehash": "0x70cb562f5d856fab1b0eee1e91dfcbb568be85f28e184c6a096b4c63b145a6c2", "predeployCodehash": "0xe2de43b29f2387b6f3575a1b50d566908fc00e03a8d88ad6be74b674a70874d2", - "salt": "InterchainGovernance v5.5 test" + "salt": "InterchainGovernance v5.5" }, "Multisig": { "threshold": 3, diff --git a/axelar-chains-config/info/testnet.json b/axelar-chains-config/info/testnet.json index 34a85246..4ec0e1b8 100644 --- a/axelar-chains-config/info/testnet.json +++ b/axelar-chains-config/info/testnet.json @@ -1338,7 +1338,8 @@ "gasOptions": { "gasLimit": 300000000 }, - "confirmations": 3 + "confirmations": 3, + "eip1559": true }, "linea": { "name": "Linea", @@ -1646,11 +1647,7 @@ "gasOptions": { "gasLimit": 8000000 }, - "skipRevertTests": true, - "staticGasOptions": { - "gasLimit": 3000000, - "gasPrice": 1000000000 - } + "skipRevertTests": true }, "scroll": { "name": "Scroll", diff --git a/evm/LedgerSigner.js b/evm/LedgerSigner.js new file mode 100644 index 00000000..9c9a542a --- /dev/null +++ b/evm/LedgerSigner.js @@ -0,0 +1,107 @@ +'use strict'; + +const { ethers } = require('hardhat'); +const { + BigNumber, + Signer, + VoidSigner, + utils: { serializeTransaction }, +} = ethers; +const TransportNodeHid = require('@ledgerhq/hw-transport-node-hid').default; +const Eth = require('@ledgerhq/hw-app-eth').default; + +const { printInfo } = require('./utils'); + +class LedgerSigner extends Signer { + constructor(provider, path = "m/44'/60'/0'/0/0") { + super(); + this.path = path; + this.provider = provider; + } + + async connect(provider = null) { + if (provider) { + this.provider = provider; + } + + this.transport = await TransportNodeHid.open(); + this.eth = new Eth(this.transport); + } + + async getAddress() { + if (!this.eth) await this.connect(); + const result = await this.eth.getAddress(this.path); + return result.address; + } + + async signMessage(message) { + if (!this.eth) await this.connect(); + + if (typeof message === 'string') { + message = ethers.utils.toUtf8Bytes(message); + } + + const messageHex = ethers.utils.hexlify(message).substring(2); + + const sig = await this.eth.signPersonalMessage(this.path, messageHex); + + return ethers.utils.joinSignature(await this._fixSignature(sig, 2, 1)); + } + + async signTransaction(tx) { + if (!this.eth) await this.connect(); + + delete tx.from; + + tx = await ethers.utils.resolveProperties(tx); + + console.log('Unsigned tx', tx); + + const rawTx = serializeTransaction(tx).substring(2); + + const sig = await this._fixSignature(await this.eth.signTransaction(this.path, rawTx, null), tx.type, tx.chainId); + + const signedTx = serializeTransaction(tx, sig); + + printInfo('Signed Tx', signedTx); + + return signedTx; + } + + async populateTransaction(tx) { + if (!this.eth) await this.connect(); + + return new VoidSigner(await this.getAddress(), this.provider).populateTransaction(tx); + } + + async _fixSignature(signature, type, chainId) { + let v = BigNumber.from('0x' + signature.v).toNumber(); + + if (type === 2) { + // EIP-1559 transaction. Nothing to do. + // v is already returned as 0 or 1 by Ledger for Type 2 txs + } else { + // Undefined or Legacy Type 0 transaction. Ledger computes EIP-155 sig.v computation incorrectly in this case + // v in {0,1} + 2 * chainId + 35 + // Ledger gives this value mod 256 + // So from that, compute whether v is 0 or 1 and then add to 2 * chainId + 35 without doing a mod + v = 2 * chainId + 35 + ((v + 256 * 100000000000 - (2 * chainId + 35)) % 256); + } + + return { + r: '0x' + signature.r, + s: '0x' + signature.s, + v, + }; + } + + disconnect() { + if (this.transport) { + this.transport.close(); + } + } +} + +module.exports = { + LedgerSigner, +}; diff --git a/evm/broadcast-transactions.js b/evm/broadcast-transactions.js index b72502ee..c0368563 100644 --- a/evm/broadcast-transactions.js +++ b/evm/broadcast-transactions.js @@ -7,32 +7,38 @@ const { providers: { getDefaultProvider }, } = ethers; -const { printError, printInfo, printWarn, prompt, mainProcessor } = require('./utils'); +const { printError, printInfo, printWarn, getConfigByChainId, prompt, loadConfig } = require('./utils'); const { sendTransaction, getSignedTx, storeSignedTx } = require('./sign-utils'); -async function processCommand(_, chain, options) { - const { filePath, rpc } = options; +async function processCommand(config, _, options, file) { + const { rpc } = options; + + const transaction = await getSignedTx(file); + const parsedTx = ethers.utils.parseTransaction(transaction.signedTx); + + const chain = getConfigByChainId(parsedTx.chainId, config); const provider = getDefaultProvider(rpc || chain.rpc); + if (parsedTx.chainId !== transaction.unsignedTx.chainId) { + printError( + `ChainId mismatch: signed tx chain id ${parsedTx.chainId} doesn't match unsigned tx chain id ${transaction.unsignedTx.chainId}`, + ); + return; + } + if ( prompt( - `Proceed with the broadcasting of all pending signed transactions for file ${chalk.green( - options.filePath, - )} on chain ${chalk.green(chain.name)}`, + `Proceed with the broadcasting of all pending signed transactions for file ${chalk.green(file)} on chain ${chalk.green( + chain.name, + )}`, options.yes, ) ) { return; } - if (!filePath) { - throw new Error('FilePath is not provided in user info'); - } - - const transaction = await getSignedTx(filePath); - - if (transaction.status === 'PENDING') { + if (transaction.status !== 'SUCCESS') { printInfo('Broadcasting transaction', JSON.stringify(transaction.unsignedTx, null, 2)); // Send the signed transaction @@ -46,21 +52,30 @@ async function processCommand(_, chain, options) { printError('Error broadcasting tx', error); } - storeSignedTx(filePath, transaction); + storeSignedTx(file, transaction); } else { printWarn('Skipping broadcast, transaction status is', transaction.status); } } async function main(options) { - await mainProcessor(options, processCommand); + const config = loadConfig(options.env); + const { files } = options; + + if (!files || files.length === 0) { + throw new Error('FilePath is not provided in user info'); + } + + for (const file of files) { + await processCommand(config, null, options, file); + } } const program = new Command(); program.name('broadcast-transactions').description('Broadcast all the pending signed transactions of the signer'); -program.addOption(new Option('--filePath ', 'The file where the signed tx are stored').makeOptionMandatory(true)); +program.addOption(new Option('--files [files...]', 'The file where the signed tx are stored').makeOptionMandatory(true)); program.addOption( new Option('-e, --env ', 'environment') .choices(['local', 'devnet', 'stagenet', 'testnet', 'mainnet']) @@ -68,7 +83,6 @@ program.addOption( .makeOptionMandatory(true) .env('ENV'), ); -program.addOption(new Option('-n, --chainName ', 'chain names').makeOptionMandatory(true)); program.addOption(new Option('-r, --rpc ', 'The chain rpc')); program.addOption(new Option('-y, --yes', 'skip prompts')); diff --git a/evm/check-wallet-balance.js b/evm/check-wallet-balance.js index 2177c83e..5d65cb2b 100644 --- a/evm/check-wallet-balance.js +++ b/evm/check-wallet-balance.js @@ -23,6 +23,8 @@ async function processCommand(_, chain, options) { const gasLimit = BigNumber.from(staticGasOptions.gasLimit); const gasPrice = BigNumber.from(staticGasOptions.gasPrice); const minRequiredBalance = gasLimit * gasPrice * 1.5; + printError(`${chain.name} minimum required Balance`, `${minRequiredBalance / 1e18}`); + const nonceData = getNonceFileData(); const nonces = nonceData[options.env][chainName]; @@ -36,7 +38,6 @@ async function processCommand(_, chain, options) { const balance = await provider.getBalance(address); if (balance < minRequiredBalance) { - printError(`${chain.name} minimum required Balance`, `${minRequiredBalance / 1e18}`); printError(`${chain.name} Wallet Balance for ${address} is`, `${balance / 1e18}`); } } diff --git a/evm/deploy-contract.js b/evm/deploy-contract.js index 1d51f59a..993974b5 100644 --- a/evm/deploy-contract.js +++ b/evm/deploy-contract.js @@ -14,6 +14,7 @@ const { printInfo, printWarn, printError, + copyObject, isString, isNumber, isAddressArray, @@ -258,7 +259,7 @@ async function processCommand(config, chain, options) { printInfo('Pre-deploy Contract bytecode hash', predeployCodehash); const constructorArgs = await getConstructorArgs(contractName, chain, wallet, options); - const gasOptions = JSON.parse(JSON.stringify(contractConfig.gasOptions || chain.gasOptions || {})); + const gasOptions = copyObject(contractConfig.gasOptions || chain.gasOptions || {}); // Some chains require a gas adjustment if (env === 'mainnet' && !gasOptions.gasPrice && (chain.name === 'Fantom' || chain.name === 'Binance' || chain.name === 'Polygon')) { diff --git a/evm/deploy-gateway-v6.2.x.js b/evm/deploy-gateway-v6.2.x.js index 64a726ed..5575781d 100644 --- a/evm/deploy-gateway-v6.2.x.js +++ b/evm/deploy-gateway-v6.2.x.js @@ -420,6 +420,8 @@ async function upgrade(_, chain, options) { printInfo('Upgrading to implementation', contractConfig.implementation); printInfo('New Implementation codehash', implementationCodehash); + printInfo('Governance', governance); + printInfo('Mint limiter', mintLimiter); printInfo('Setup params', setupParams); const gasOptions = contractConfig.gasOptions || chain.gasOptions || {}; @@ -434,7 +436,7 @@ async function upgrade(_, chain, options) { const { baseTx, signedTx } = await signTransaction(wallet, chain, tx, options); if (offline) { - const filePath = `./tx/signed-tx-${env}-${chainName}-gateway-upgrade-address-${address}-nonce-${baseTx.nonce}.json`; + const filePath = `./tx/signed-tx-${env}-gateway-upgrade-${chainName}-address-${address}-nonce-${baseTx.nonce}.json`; printInfo(`Storing signed Tx offline in file ${filePath}`); // Storing the fields in the data that will be stored in file @@ -446,8 +448,6 @@ async function upgrade(_, chain, options) { }; storeSignedTx(filePath, data); - - options.nonceOffset = (options.nonceOffset || 0) + 1; } else { const newImplementation = await gateway.implementation(); printInfo('New implementation', newImplementation); diff --git a/evm/governance.js b/evm/governance.js index 9309e04d..99e96b72 100644 --- a/evm/governance.js +++ b/evm/governance.js @@ -12,6 +12,7 @@ const { const { Command, Option } = require('commander'); const { printInfo, + copyObject, printWalletInfo, isValidTimeFormat, dateToEta, @@ -62,7 +63,7 @@ async function getGatewaySetupParams(governance, gateway, contracts, options) { } async function processCommand(_, chain, options) { - const { contractName, address, action, date, privateKey, yes } = options; + const { env, contractName, address, action, date, privateKey, yes } = options; const contracts = chain.contracts; const contractConfig = contracts[contractName]; @@ -103,7 +104,13 @@ async function processCommand(_, chain, options) { const governance = new Contract(governanceAddress, IGovernance.abi, wallet); - const gasOptions = contractConfig?.gasOptions || chain?.gasOptions || { gasLimit: 5e6 }; + const gasOptions = copyObject(contractConfig?.gasOptions || chain?.gasOptions || { gasLimit: 5e6 }); + + // Some chains require a gas adjustment + if (env === 'mainnet' && !gasOptions.gasPrice && (chain.name === 'Fantom' || chain.name === 'Binance' || chain.name === 'Polygon')) { + gasOptions.gasPrice = Math.floor((await provider.getGasPrice()) * 1.4); + } + printInfo('Gas options', JSON.stringify(gasOptions, null, 2)); printInfo('Proposal Action', action); @@ -464,6 +471,23 @@ async function processCommand(_, chain, options) { break; } + case 'cancelUpgrade': { + const eta = dateToEta(date); + const implementation = options.implementation || chain.contracts.AxelarGateway?.implementation; + const newGatewayImplementationCodeHash = await getBytecodeHash(implementation, chain.name, provider); + const gateway = new Contract(target, IGateway.abi, wallet); + const setupParams = await getGatewaySetupParams(governance, gateway, contracts, options); + calldata = gateway.interface.encodeFunctionData('upgrade', [implementation, newGatewayImplementationCodeHash, setupParams]); + + const commandType = 1; + const types = ['uint256', 'address', 'bytes', 'uint256', 'uint256']; + const values = [commandType, target, calldata, nativeValue, eta]; + + gmpPayload = defaultAbiCoder.encode(types, values); + + break; + } + case 'withdraw': { if (!isValidTimeFormat(date)) { throw new Error(`Invalid ETA: ${date}. Please pass the eta in the format YYYY-MM-DDTHH:mm:ss`); @@ -609,6 +633,7 @@ program.addOption( 'gatewayUpgrade', 'submitUpgrade', 'executeUpgrade', + 'cancelUpgrade', 'withdraw', 'getProposalEta', ]), diff --git a/evm/multisig.js b/evm/multisig.js index f56dcba7..6bf7a851 100644 --- a/evm/multisig.js +++ b/evm/multisig.js @@ -176,6 +176,14 @@ async function processCommand(_, chain, options) { if (!offline) { await preExecutionChecks(multisigContract, action, wallet, multisigTarget, multisigCalldata, 0, yes); + + // loop over each token + for (let i = 0; i < symbolsArray.length; i++) { + const token = await gateway.tokenAddresses(symbolsArray[i]); + const limit = await gateway.tokenMintLimit(token); + printInfo(`Token ${symbolsArray[i]} address`, token); + printInfo(`Token ${symbolsArray[i]} limit`, limit); + } } tx = await multisigContract.populateTransaction.executeContract(multisigTarget, multisigCalldata, 0, gasOptions); @@ -284,7 +292,7 @@ async function processCommand(_, chain, options) { const { baseTx, signedTx } = await signTransaction(wallet, chain, tx, options); if (offline) { - const filePath = `./tx/signed-tx-${env}-${chain.name.toLowerCase()}-multisig-${action}-address-${walletAddress}-nonce-${ + const filePath = `./tx/signed-tx-${env}-multisig-${action}-${chain.name.toLowerCase()}-address-${walletAddress}-nonce-${ baseTx.nonce }.json`; printInfo(`Storing signed Tx offline in file ${filePath}`); @@ -298,13 +306,11 @@ async function processCommand(_, chain, options) { }; storeSignedTx(filePath, data); - - options.nonceOffset = (options.nonceOffset || 0) + 1; } } async function main(options) { - await mainProcessor(options, processCommand); + await mainProcessor(options, processCommand, false); } const program = new Command(); diff --git a/evm/nonces.json b/evm/nonces.json index 43d5ea23..eb8a32ce 100644 --- a/evm/nonces.json +++ b/evm/nonces.json @@ -120,5 +120,15 @@ "0xf505462A29E36E26f25Ef0175Ca1eCBa09CC118f": 0, "0x027c1882B975E2cd771AE068b0389FA38B9dda73": 0 } + }, + "testnet": { + "mantle": { + "0x3f5876a2b06E54949aB106651Ab6694d0289b2b4": 0, + "0x9256Fd872118ed3a97754B0fB42c15015d17E0CC": 0, + "0x1486157d505C7F7E546aD00E3E2Eee25BF665C9b": 0, + "0x2eC991B5c0B742AbD9d2ea31fe6c14a85e91C821": 0, + "0xf505462A29E36E26f25Ef0175Ca1eCBa09CC118f": 0, + "0x027c1882B975E2cd771AE068b0389FA38B9dda73": 0 + } } } diff --git a/evm/send-tokens.js b/evm/send-tokens.js index 0560c5a4..5155f213 100644 --- a/evm/send-tokens.js +++ b/evm/send-tokens.js @@ -75,7 +75,7 @@ async function processCommand(_, chain, options) { const { baseTx, signedTx } = await signTransaction(wallet, chain, tx, options); if (offline) { - const filePath = `./tx/signed-tx-${env}-${chainName}-send-tokens-address-${address}-nonce-${baseTx.nonce}.json`; + const filePath = `./tx/signed-tx-${env}-send-tokens-${chainName}-address-${address}-nonce-${baseTx.nonce}.json`; printInfo(`Storing signed Tx offline in file ${filePath}`); // Storing the fields in the data that will be stored in file @@ -88,7 +88,7 @@ async function processCommand(_, chain, options) { storeSignedTx(filePath, data); - options.nonceOffset = (options.nonceOffset || 0) + 1; + options.nonceOffset = (parseInt(options.nonceOffset) || 0) + 1; } } } diff --git a/evm/sign-utils.js b/evm/sign-utils.js index 60574d78..0ede949e 100644 --- a/evm/sign-utils.js +++ b/evm/sign-utils.js @@ -4,12 +4,11 @@ const fs = require('fs'); const { ethers } = require('hardhat'); const { Wallet, - BigNumber, - utils: { isAddress, serializeTransaction }, + utils: { isAddress }, } = ethers; const path = require('path'); -const { LedgerSigner } = require('@ethersproject/hardware-wallets'); +const { LedgerSigner } = require('./LedgerSigner'); const { printError, printInfo, printObj, isValidPrivateKey, isNumber, isValidNumber } = require('./utils'); @@ -28,7 +27,7 @@ const getWallet = async (privateKey, provider, options = {}) => { } if (privateKey === 'ledger') { - wallet = getLedgerWallet(provider, options?.ledgerPath); + wallet = await getLedgerWallet(provider, options?.ledgerPath); } else { if (!isValidPrivateKey(privateKey)) { throw new Error('Private key is missing/ not provided correctly'); @@ -41,10 +40,10 @@ const getWallet = async (privateKey, provider, options = {}) => { }; // function to create a ledgerSigner type wallet object -const getLedgerWallet = (provider, path) => { - const type = 'hid'; +const getLedgerWallet = async (provider, path) => { path = path || "m/44'/60'/0'/0/0"; - return new LedgerSigner(provider, type, path); + + return new LedgerSigner(provider, path); }; /** @@ -68,12 +67,6 @@ const signTransaction = async (wallet, chain, tx, options = {}) => { } if (!options.offline) { - // force legacy tx type for ledger signer - if (wallet instanceof LedgerSigner) { - tx.type = 0; - tx.gasPrice = tx.gasPrice || (await wallet.provider.getGasPrice()); - } - tx = await wallet.populateTransaction(tx); } else { const address = options.signerAddress || (await wallet.getAddress()); @@ -86,8 +79,12 @@ const signTransaction = async (wallet, chain, tx, options = {}) => { ...tx, // prefer tx options if they were set }; - if (!tx.nonce) { + if (tx.nonce === undefined) { tx.nonce = getLocalNonce(options.env, chain.name.toLowerCase(), address); + + if (tx.nonce === undefined) { + throw new Error(`Nonce is missing for ${address} on ${chain.name} in nonces.json`); + } } if (options.nonceOffset) { @@ -102,23 +99,23 @@ const signTransaction = async (wallet, chain, tx, options = {}) => { throw new Error('Gas limit is missing/not provided for the tx in function arguments'); } - if (!tx.gasPrice && !(isNumber(tx.maxFeePerGas) && isNumber(tx.maxPriorityFeePerGas))) { + if ( + !tx.gasPrice && + !(isValidNumber(tx.maxFeePerGas) && (tx.maxPriorityFeePerGas === undefined || isNumber(tx.maxPriorityFeePerGas))) + ) { throw new Error('Gas price (legacy or eip-1559) is missing/not provided for the tx in function arguments'); } + if (tx.maxFeePerGas !== undefined) { + tx.type = 2; + } else { + tx.type = 0; + } + printInfo('Transaction being signed', JSON.stringify(tx, null, 2)); } - let signedTx; - - if (wallet instanceof LedgerSigner) { - // Ledger doesn't like .from to be set - delete tx.from; - - signedTx = await ledgerSign(wallet, chain, tx); - } else { - signedTx = await wallet.signTransaction(tx); - } + const signedTx = await wallet.signTransaction(tx); if (!options.offline) { await sendTransaction(signedTx, wallet.provider, chain.confirmations); @@ -127,30 +124,6 @@ const signTransaction = async (wallet, chain, tx, options = {}) => { return { baseTx: tx, signedTx }; }; -const ledgerSign = async (wallet, chain, baseTx) => { - printInfo('Waiting for user to approve transaction through ledger wallet'); - - const unsignedTx = serializeTransaction(baseTx).substring(2); - const sig = await wallet._retry((eth) => eth.signTransaction("m/44'/60'/0'/0/0", unsignedTx)); - - // EIP-155 sig.v computation - // v in {0,1} + 2 * chainId + 35 - // Ledger gives this value mod 256 - // So from that, compute whether v is 0 or 1 and then add to 2 * chainId + 35 without doing a mod - var v = BigNumber.from('0x' + sig.v).toNumber(); - v = 2 * chain.chainId + 35 + ((v + 256 * 100000000000 - (2 * chain.chainId + 35)) % 256); - - const signedTx = serializeTransaction(baseTx, { - v, - r: '0x' + sig.r, - s: '0x' + sig.s, - }); - - printInfo('Signed Tx from ledger with signedTxHash as', signedTx); - - return signedTx; -}; - const sendTransaction = async (tx, provider, confirmations = undefined) => { const response = await provider.sendTransaction(tx); const receipt = await response.wait(confirmations); diff --git a/evm/update-static-gas-options.js b/evm/update-static-gas-options.js index dc27c348..b9f9577b 100644 --- a/evm/update-static-gas-options.js +++ b/evm/update-static-gas-options.js @@ -6,6 +6,7 @@ const { ethers } = require('hardhat'); const { getDefaultProvider, utils: { parseUnits }, + BigNumber, } = ethers; const { printInfo, mainProcessor, prompt } = require('./utils'); @@ -36,27 +37,58 @@ const minGasPrices = { }, }; +const minGasLimits = { + mainnet: { + filecoin: 3e8, + arbitrum: 20e8, + }, + testnet: { + filecoin: 3e8, + arbitrum: 20e8, + }, +}; + +async function getBaseFee(provider) { + const block = await provider.getBlock('latest'); + return block.baseFeePerGas; +} + async function processCommand(_, chain, options) { const { env, rpc, yes } = options; - const provider = rpc ? getDefaultProvider(rpc) : getDefaultProvider(chain.rpc); + const provider = getDefaultProvider(rpc || chain.rpc); if (prompt(`Proceed with the static gasOption update on ${chalk.green(chain.name)}`, yes)) { return; } - const gasPriceWei = await provider.getGasPrice(); + let gasPriceWei = await provider.getGasPrice(); + + if (chain.eip1559) { + const baseFee = await getBaseFee(provider); + const maxPriorityFeePerGas = await provider.send('eth_maxPriorityFeePerGas', []); + gasPriceWei = BigNumber.from(baseFee).add(BigNumber.from(maxPriorityFeePerGas)); + } + printInfo(`${chain.name} gas price`, `${gasPriceWei / 1e9} gwei`); - const gasPrice = parseUnits(gasPriceWei.toString(), 'wei') * gasPriceMultiplier; + let gasPrice = parseUnits(gasPriceWei.toString(), 'wei') * gasPriceMultiplier; + + const minGasLimit = (minGasLimits[env] || {})[chain.name.toLowerCase()] || defaultGasLimit; if (!(chain.staticGasOptions && chain.staticGasOptions.gasLimit !== undefined)) { - chain.staticGasOptions = { gasLimit: defaultGasLimit }; + chain.staticGasOptions = { gasLimit: minGasLimit }; } const minGasPrice = ((minGasPrices[env] || {})[chain.name.toLowerCase()] || 0) * 1e9; - chain.staticGasOptions.gasPrice = gasPrice < minGasPrice ? minGasPrice : gasPrice; + gasPrice = gasPrice < minGasPrice ? minGasPrice : gasPrice; + + if (chain.eip1559) { + chain.staticGasOptions.maxFeePerGas = gasPrice; + } else { + chain.staticGasOptions.gasPrice = gasPrice; + } - printInfo(`${chain.name} static gas price set to`, `${chain.staticGasOptions.gasPrice / 1e9} gwei`); + printInfo(`${chain.name} static gas price set to`, `${gasPrice / 1e9} gwei`); printInfo(`staticGasOptions updated succesfully and stored in config file`); } diff --git a/evm/utils.js b/evm/utils.js index 61a06323..97b0ad17 100644 --- a/evm/utils.js +++ b/evm/utils.js @@ -698,6 +698,10 @@ function isValidAddress(address, allowZeroAddress) { return isAddress(address); } +function copyObject(obj) { + return JSON.parse(JSON.stringify(obj)); +} + const mainProcessor = async (options, processCommand, save = true, catchErr = false) => { if (!options.env) { throw new Error('Environment was not provided'); @@ -763,12 +767,23 @@ const prompt = (question, yes = false) => { return answer !== 'y'; }; +function getConfigByChainId(chainId, config) { + for (const chain of Object.values(config.chains)) { + if (chain.chainId === chainId) { + return chain; + } + } + + throw new Error(`Chain with chainId ${chainId} not found in the config`); +} + module.exports = { deployCreate, deployCreate2, deployCreate3, deployContract, writeJSON, + copyObject, httpGet, printObj, printLog, @@ -791,6 +806,7 @@ module.exports = { getProxy, getEVMBatch, getEVMAddresses, + getConfigByChainId, sleep, loadConfig, saveConfig, diff --git a/evm/verify-contract.js b/evm/verify-contract.js index c1fe8b3a..ec58fe04 100644 --- a/evm/verify-contract.js +++ b/evm/verify-contract.js @@ -137,7 +137,7 @@ async function processCommand(config, chain, options) { const tokenDeployer = await gateway.tokenDeployer(); const { addresses, weights, threshold } = await getEVMAddresses(config, chain.id, { - keyID: options.args || `evm-${chain.id.toLowerCase()}-genesis`, + keyID: chain.contracts.AxelarGateway.startingKeyIDs[0] || options.args || `evm-${chain.id.toLowerCase()}-genesis`, }); const authParams = [defaultAbiCoder.encode(['address[]', 'uint256[]', 'uint256'], [addresses, weights, threshold])]; diff --git a/package-lock.json b/package-lock.json index bf76b07e..39ac7055 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,9 +14,8 @@ "@axelar-network/axelar-gmp-sdk-solidity": "5.5.2", "@axelar-network/interchain-token-service": "0.3.0", "@cosmjs/cosmwasm-stargate": "^0.31.1", - "@ethersproject/hardware-wallets": "^5.5.0", - "@ledgerhq/hw-transport-node-hid": "^6.11.2", - "ethers": "^5.7.2", + "@ledgerhq/hw-app-eth": "6.32.2", + "@ledgerhq/hw-transport-node-hid": "^6.27.21", "path": "^0.12.7" }, "devDependencies": { @@ -626,254 +625,6 @@ "@ethersproject/transactions": "^5.7.0" } }, - "node_modules/@ethersproject/hardware-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hardware-wallets/-/hardware-wallets-5.7.0.tgz", - "integrity": "sha512-DjMMXIisRc8xFvEoLoYz1w7JDOYmaz/a0X9sp7Zu668RR8U1zCAyj5ow25HLRW+TCzEC5XiFetTXqS5kXonFCQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ledgerhq/hw-app-eth": "5.27.2", - "@ledgerhq/hw-transport": "5.26.0", - "@ledgerhq/hw-transport-u2f": "5.26.0", - "ethers": "^5.7.0" - }, - "optionalDependencies": { - "@ledgerhq/hw-transport-node-hid": "5.26.0" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ledgerhq/hw-transport-node-hid": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.26.0.tgz", - "integrity": "sha512-qhaefZVZatJ6UuK8Wb6WSFNOLWc2mxcv/xgsfKi5HJCIr4bPF/ecIeN+7fRcEaycxj4XykY6Z4A7zDVulfFH4w==", - "optional": true, - "dependencies": { - "@ledgerhq/devices": "^5.26.0", - "@ledgerhq/errors": "^5.26.0", - "@ledgerhq/hw-transport": "^5.26.0", - "@ledgerhq/hw-transport-node-hid-noevents": "^5.26.0", - "@ledgerhq/logs": "^5.26.0", - "lodash": "^4.17.20", - "node-hid": "1.3.0", - "usb": "^1.6.3" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ledgerhq/hw-transport-node-hid-noevents": { - "version": "5.51.1", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.51.1.tgz", - "integrity": "sha512-9wFf1L8ZQplF7XOY2sQGEeOhpmBRzrn+4X43kghZ7FBDoltrcK+s/D7S+7ffg3j2OySyP6vIIIgloXylao5Scg==", - "optional": true, - "dependencies": { - "@ledgerhq/devices": "^5.51.1", - "@ledgerhq/errors": "^5.50.0", - "@ledgerhq/hw-transport": "^5.51.1", - "@ledgerhq/logs": "^5.50.0", - "node-hid": "2.1.1" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ledgerhq/hw-transport-node-hid-noevents/node_modules/@ledgerhq/hw-transport": { - "version": "5.51.1", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz", - "integrity": "sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==", - "optional": true, - "dependencies": { - "@ledgerhq/devices": "^5.51.1", - "@ledgerhq/errors": "^5.50.0", - "events": "^3.3.0" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ledgerhq/hw-transport-node-hid-noevents/node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "optional": true - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ledgerhq/hw-transport-node-hid-noevents/node_modules/node-hid": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-2.1.1.tgz", - "integrity": "sha512-Skzhqow7hyLZU93eIPthM9yjot9lszg9xrKxESleEs05V2NcbUptZc5HFqzjOkSmL0sFlZFr3kmvaYebx06wrw==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "bindings": "^1.5.0", - "node-addon-api": "^3.0.2", - "prebuild-install": "^6.0.0" - }, - "bin": { - "hid-showdevices": "src/show-devices.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/@ledgerhq/hw-transport-node-hid-noevents/node_modules/prebuild-install": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", - "optional": true, - "dependencies": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "optional": true, - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "optional": true, - "dependencies": { - "semver": "^5.4.1" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "optional": true - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/node-hid": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-1.3.0.tgz", - "integrity": "sha512-BA6G4V84kiNd1uAChub/Z/5s/xS3EHBCxotQ0nyYrUG65mXewUDHE1tWOSqA2dp3N+mV0Ffq9wo2AW9t4p/G7g==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.14.0", - "node-abi": "^2.18.0", - "prebuild-install": "^5.3.4" - }, - "bin": { - "hid-showdevices": "src/show-devices.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/prebuild-install": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", - "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", - "optional": true, - "dependencies": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.7.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "optional": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "optional": true, - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/@ethersproject/hardware-wallets/node_modules/usb": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/usb/-/usb-1.9.2.tgz", - "integrity": "sha512-dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-addon-api": "^4.2.0", - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, "node_modules/@ethersproject/hash": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", @@ -1402,25 +1153,70 @@ } }, "node_modules/@ledgerhq/cryptoassets": { - "version": "5.53.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-5.53.0.tgz", - "integrity": "sha512-M3ibc3LRuHid5UtL7FI3IC6nMEppvly98QHFoSa7lJU0HDzQxY6zHec/SPM4uuJUC8sXoGVAiRJDkgny54damw==", + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-9.13.0.tgz", + "integrity": "sha512-MzGJyc48OGU/FLYGYwEJyfOgbJzlR8XJ9Oo6XpNpNUM1/E5NDqvD72V0D+0uWIJYN3e2NtyqHXShLZDu7P95YA==", "dependencies": { "invariant": "2" } }, - "node_modules/@ledgerhq/devices": { - "version": "5.51.1", - "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.51.1.tgz", - "integrity": "sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==", + "node_modules/@ledgerhq/hw-app-eth": { + "version": "6.32.2", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-6.32.2.tgz", + "integrity": "sha512-5RmRw+vhzCE88hFPcpFOXelLTk9cjscweYJLritdAcTSkXV3jOdmAYvY1KLhG5Ungy561r8AQHm6NleR/Qjpjw==", + "dependencies": { + "@ethersproject/abi": "^5.5.0", + "@ethersproject/rlp": "^5.5.0", + "@ledgerhq/cryptoassets": "^9.2.0", + "@ledgerhq/errors": "^6.12.4", + "@ledgerhq/hw-transport": "^6.28.2", + "@ledgerhq/hw-transport-mocker": "^6.27.13", + "@ledgerhq/logs": "^6.10.1", + "axios": "^0.26.1", + "bignumber.js": "^9.1.0", + "crypto-js": "^4.1.1" + } + }, + "node_modules/@ledgerhq/hw-app-eth/node_modules/@ledgerhq/devices": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-8.0.7.tgz", + "integrity": "sha512-BbPyET52lXnVs7CxJWrGYqmtGdbGzj+XnfCqLsDnA7QYr1CZREysxmie+Rr6BKpNDBRVesAovXjtaVaZOn+upw==", "dependencies": { - "@ledgerhq/errors": "^5.50.0", - "@ledgerhq/logs": "^5.50.0", + "@ledgerhq/errors": "^6.14.0", + "@ledgerhq/logs": "^6.10.1", "rxjs": "6", "semver": "^7.3.5" } }, - "node_modules/@ledgerhq/devices/node_modules/lru-cache": { + "node_modules/@ledgerhq/hw-app-eth/node_modules/@ledgerhq/errors": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.14.0.tgz", + "integrity": "sha512-ZWJw2Ti6Dq1Ott/+qYqJdDWeZm16qI3VNG5rFlb0TQ3UcAyLIQZbnnzzdcVVwVeZiEp66WIpINd/pBdqsHVyOA==" + }, + "node_modules/@ledgerhq/hw-app-eth/node_modules/@ledgerhq/hw-transport": { + "version": "6.28.8", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.28.8.tgz", + "integrity": "sha512-XxQVl4htd018u/M66r0iu5nlHi+J6QfdPsORzDF6N39jaz+tMqItb7tUlXM/isggcuS5lc7GJo7NOuJ8rvHZaQ==", + "dependencies": { + "@ledgerhq/devices": "^8.0.7", + "@ledgerhq/errors": "^6.14.0", + "events": "^3.3.0" + } + }, + "node_modules/@ledgerhq/hw-app-eth/node_modules/@ledgerhq/logs": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.1.tgz", + "integrity": "sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w==" + }, + "node_modules/@ledgerhq/hw-app-eth/node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, + "node_modules/@ledgerhq/hw-app-eth/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", @@ -1431,7 +1227,7 @@ "node": ">=10" } }, - "node_modules/@ledgerhq/devices/node_modules/semver": { + "node_modules/@ledgerhq/hw-app-eth/node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", @@ -1445,38 +1241,81 @@ "node": ">=10" } }, - "node_modules/@ledgerhq/devices/node_modules/yallist": { + "node_modules/@ledgerhq/hw-app-eth/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/@ledgerhq/errors": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.50.0.tgz", - "integrity": "sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow==" + "node_modules/@ledgerhq/hw-transport-mocker": { + "version": "6.27.19", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-mocker/-/hw-transport-mocker-6.27.19.tgz", + "integrity": "sha512-sD/7Ht1flaHZcwIFOi2E1LTHYLdAOe206/JwlwRU78pT0oUan8FnXR5SD8PSmhwgmQjJXto+PFBlmVe5EIt9Lw==", + "dependencies": { + "@ledgerhq/hw-transport": "^6.28.8", + "@ledgerhq/logs": "^6.10.1" + } }, - "node_modules/@ledgerhq/hw-app-eth": { - "version": "5.27.2", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-5.27.2.tgz", - "integrity": "sha512-llNdrE894cCN8j6yxJEUniciyLVcLmu5N0UmIJLOObztG+5rOF4bX54h4SreTWK+E10Z0CzHSeyE5Lz/tVcqqQ==", + "node_modules/@ledgerhq/hw-transport-mocker/node_modules/@ledgerhq/devices": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-8.0.7.tgz", + "integrity": "sha512-BbPyET52lXnVs7CxJWrGYqmtGdbGzj+XnfCqLsDnA7QYr1CZREysxmie+Rr6BKpNDBRVesAovXjtaVaZOn+upw==", "dependencies": { - "@ledgerhq/cryptoassets": "^5.27.2", - "@ledgerhq/errors": "^5.26.0", - "@ledgerhq/hw-transport": "^5.26.0", - "bignumber.js": "^9.0.1", - "rlp": "^2.2.6" + "@ledgerhq/errors": "^6.14.0", + "@ledgerhq/logs": "^6.10.1", + "rxjs": "6", + "semver": "^7.3.5" } }, - "node_modules/@ledgerhq/hw-transport": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.26.0.tgz", - "integrity": "sha512-NFeJOJmyEfAX8uuIBTpocWHcz630sqPcXbu864Q+OCBm4EK5UOKV1h/pX7e0xgNIKY8zhJ/O4p4cIZp9tnXLHQ==", + "node_modules/@ledgerhq/hw-transport-mocker/node_modules/@ledgerhq/errors": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.14.0.tgz", + "integrity": "sha512-ZWJw2Ti6Dq1Ott/+qYqJdDWeZm16qI3VNG5rFlb0TQ3UcAyLIQZbnnzzdcVVwVeZiEp66WIpINd/pBdqsHVyOA==" + }, + "node_modules/@ledgerhq/hw-transport-mocker/node_modules/@ledgerhq/hw-transport": { + "version": "6.28.8", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.28.8.tgz", + "integrity": "sha512-XxQVl4htd018u/M66r0iu5nlHi+J6QfdPsORzDF6N39jaz+tMqItb7tUlXM/isggcuS5lc7GJo7NOuJ8rvHZaQ==", "dependencies": { - "@ledgerhq/devices": "^5.26.0", - "@ledgerhq/errors": "^5.26.0", - "events": "^3.2.0" + "@ledgerhq/devices": "^8.0.7", + "@ledgerhq/errors": "^6.14.0", + "events": "^3.3.0" + } + }, + "node_modules/@ledgerhq/hw-transport-mocker/node_modules/@ledgerhq/logs": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.1.tgz", + "integrity": "sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w==" + }, + "node_modules/@ledgerhq/hw-transport-mocker/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, + "node_modules/@ledgerhq/hw-transport-mocker/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ledgerhq/hw-transport-mocker/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/@ledgerhq/hw-transport-node-hid": { "version": "6.27.21", "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-6.27.21.tgz", @@ -1626,23 +1465,6 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/@ledgerhq/hw-transport-u2f": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.26.0.tgz", - "integrity": "sha512-QTxP1Rsh+WZ184LUOelYVLeaQl3++V3I2jFik+l9JZtakwEHjD0XqOT750xpYNL/vfHsy31Wlz+oicdxGzFk+w==", - "deprecated": "@ledgerhq/hw-transport-u2f is deprecated. Please use @ledgerhq/hw-transport-webusb or @ledgerhq/hw-transport-webhid. https://github.com/LedgerHQ/ledgerjs/blob/master/docs/migrate_webusb.md", - "dependencies": { - "@ledgerhq/errors": "^5.26.0", - "@ledgerhq/hw-transport": "^5.26.0", - "@ledgerhq/logs": "^5.26.0", - "u2f-api": "0.2.7" - } - }, - "node_modules/@ledgerhq/logs": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.50.0.tgz", - "integrity": "sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA==" - }, "node_modules/@metamask/eth-sig-util": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", @@ -2655,9 +2477,12 @@ "peer": true }, "node_modules/@types/node": { - "version": "20.2.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.3.tgz", - "integrity": "sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw==" + "version": "20.8.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.8.tgz", + "integrity": "sha512-YRsdVxq6OaLfmR9Hy816IMp33xOBjfyOgUd77ehqg96CFywxAPbDbXvAsuN2KVg2HOT8Eh6uAfU+l4WffwPVrQ==", + "dependencies": { + "undici-types": "~5.25.1" + } }, "node_modules/@types/pbkdf2": { "version": "3.1.0", @@ -2980,52 +2805,6 @@ "node": ">= 8" } }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -3773,15 +3552,6 @@ "node": ">=8" } }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -3970,12 +3740,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "optional": true - }, "node_modules/cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", @@ -3999,7 +3763,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "devOptional": true + "dev": true, + "peer": true }, "node_modules/cosmjs-types": { "version": "0.8.0", @@ -4077,6 +3842,11 @@ "node": "*" } }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, "node_modules/death": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", @@ -4238,12 +4008,6 @@ "node": ">=0.4.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "optional": true - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -5583,69 +5347,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", - "optional": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -6255,12 +5956,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "optional": true - }, "node_modules/hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", @@ -6646,7 +6341,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "devOptional": true, + "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -6832,7 +6528,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "devOptional": true + "dev": true, + "peer": true }, "node_modules/isexe": { "version": "2.0.0", @@ -7649,12 +7346,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", - "optional": true - }, "node_modules/nanoid": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", @@ -7789,12 +7480,6 @@ "node": ">=12.19" } }, - "node_modules/noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ==", - "optional": true - }, "node_modules/nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -7817,27 +7502,6 @@ "node": ">=0.10.0" } }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/number-to-bn": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", @@ -7864,7 +7528,8 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "devOptional": true, + "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -8319,7 +7984,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "devOptional": true + "dev": true, + "peer": true }, "node_modules/promise": { "version": "8.3.0", @@ -8971,12 +8637,6 @@ "randombytes": "^2.1.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "optional": true - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -9067,12 +8727,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "optional": true - }, "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -9503,7 +9157,8 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "devOptional": true, + "dev": true, + "peer": true, "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -9516,7 +9171,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "devOptional": true, + "dev": true, + "peer": true, "engines": { "node": ">=4" } @@ -9525,7 +9181,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "devOptional": true, + "dev": true, + "peer": true, "dependencies": { "ansi-regex": "^3.0.0" }, @@ -10186,11 +9843,6 @@ "node": ">=8" } }, - "node_modules/u2f-api": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/u2f-api/-/u2f-api-0.2.7.tgz", - "integrity": "sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==" - }, "node_modules/uglify-js": { "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", @@ -10232,6 +9884,11 @@ "node": ">=14.0" } }, + "node_modules/undici-types": { + "version": "5.25.3", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", + "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -10387,15 +10044,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-pm-runs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", - "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", - "optional": true, - "engines": { - "node": ">=4" - } - }, "node_modules/which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", @@ -10416,15 +10064,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "optional": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -11118,226 +10757,34 @@ "@ethersproject/bytes": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0" - } - }, - "@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "requires": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" - } - }, - "@ethersproject/hardware-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hardware-wallets/-/hardware-wallets-5.7.0.tgz", - "integrity": "sha512-DjMMXIisRc8xFvEoLoYz1w7JDOYmaz/a0X9sp7Zu668RR8U1zCAyj5ow25HLRW+TCzEC5XiFetTXqS5kXonFCQ==", - "requires": { - "@ledgerhq/hw-app-eth": "5.27.2", - "@ledgerhq/hw-transport": "5.26.0", - "@ledgerhq/hw-transport-node-hid": "5.26.0", - "@ledgerhq/hw-transport-u2f": "5.26.0", - "ethers": "^5.7.0" - }, - "dependencies": { - "@ledgerhq/hw-transport-node-hid": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.26.0.tgz", - "integrity": "sha512-qhaefZVZatJ6UuK8Wb6WSFNOLWc2mxcv/xgsfKi5HJCIr4bPF/ecIeN+7fRcEaycxj4XykY6Z4A7zDVulfFH4w==", - "optional": true, - "requires": { - "@ledgerhq/devices": "^5.26.0", - "@ledgerhq/errors": "^5.26.0", - "@ledgerhq/hw-transport": "^5.26.0", - "@ledgerhq/hw-transport-node-hid-noevents": "^5.26.0", - "@ledgerhq/logs": "^5.26.0", - "lodash": "^4.17.20", - "node-hid": "1.3.0", - "usb": "^1.6.3" - } - }, - "@ledgerhq/hw-transport-node-hid-noevents": { - "version": "5.51.1", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.51.1.tgz", - "integrity": "sha512-9wFf1L8ZQplF7XOY2sQGEeOhpmBRzrn+4X43kghZ7FBDoltrcK+s/D7S+7ffg3j2OySyP6vIIIgloXylao5Scg==", - "optional": true, - "requires": { - "@ledgerhq/devices": "^5.51.1", - "@ledgerhq/errors": "^5.50.0", - "@ledgerhq/hw-transport": "^5.51.1", - "@ledgerhq/logs": "^5.50.0", - "node-hid": "2.1.1" - }, - "dependencies": { - "@ledgerhq/hw-transport": { - "version": "5.51.1", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz", - "integrity": "sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw==", - "optional": true, - "requires": { - "@ledgerhq/devices": "^5.51.1", - "@ledgerhq/errors": "^5.50.0", - "events": "^3.3.0" - } - }, - "node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "optional": true - }, - "node-hid": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-2.1.1.tgz", - "integrity": "sha512-Skzhqow7hyLZU93eIPthM9yjot9lszg9xrKxESleEs05V2NcbUptZc5HFqzjOkSmL0sFlZFr3kmvaYebx06wrw==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "node-addon-api": "^3.0.2", - "prebuild-install": "^6.0.0" - } - }, - "prebuild-install": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", - "optional": true, - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - } - } - } - }, - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "optional": true, - "requires": { - "mimic-response": "^2.0.0" - } - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "optional": true - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "optional": true - }, - "node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "optional": true, - "requires": { - "semver": "^5.4.1" - } - }, - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "optional": true - }, - "node-hid": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/node-hid/-/node-hid-1.3.0.tgz", - "integrity": "sha512-BA6G4V84kiNd1uAChub/Z/5s/xS3EHBCxotQ0nyYrUG65mXewUDHE1tWOSqA2dp3N+mV0Ffq9wo2AW9t4p/G7g==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.14.0", - "node-abi": "^2.18.0", - "prebuild-install": "^5.3.4" - } - }, - "prebuild-install": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", - "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", - "optional": true, - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.7.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - } - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "optional": true - }, - "simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "optional": true, - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "usb": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/usb/-/usb-1.9.2.tgz", - "integrity": "sha512-dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg==", - "optional": true, - "requires": { - "node-addon-api": "^4.2.0", - "node-gyp-build": "^4.3.0" - } - } + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" } }, "@ethersproject/hash": { @@ -11652,24 +11099,69 @@ } }, "@ledgerhq/cryptoassets": { - "version": "5.53.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-5.53.0.tgz", - "integrity": "sha512-M3ibc3LRuHid5UtL7FI3IC6nMEppvly98QHFoSa7lJU0HDzQxY6zHec/SPM4uuJUC8sXoGVAiRJDkgny54damw==", + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-9.13.0.tgz", + "integrity": "sha512-MzGJyc48OGU/FLYGYwEJyfOgbJzlR8XJ9Oo6XpNpNUM1/E5NDqvD72V0D+0uWIJYN3e2NtyqHXShLZDu7P95YA==", "requires": { "invariant": "2" } }, - "@ledgerhq/devices": { - "version": "5.51.1", - "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-5.51.1.tgz", - "integrity": "sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA==", - "requires": { - "@ledgerhq/errors": "^5.50.0", - "@ledgerhq/logs": "^5.50.0", - "rxjs": "6", - "semver": "^7.3.5" + "@ledgerhq/hw-app-eth": { + "version": "6.32.2", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-6.32.2.tgz", + "integrity": "sha512-5RmRw+vhzCE88hFPcpFOXelLTk9cjscweYJLritdAcTSkXV3jOdmAYvY1KLhG5Ungy561r8AQHm6NleR/Qjpjw==", + "requires": { + "@ethersproject/abi": "^5.5.0", + "@ethersproject/rlp": "^5.5.0", + "@ledgerhq/cryptoassets": "^9.2.0", + "@ledgerhq/errors": "^6.12.4", + "@ledgerhq/hw-transport": "^6.28.2", + "@ledgerhq/hw-transport-mocker": "^6.27.13", + "@ledgerhq/logs": "^6.10.1", + "axios": "^0.26.1", + "bignumber.js": "^9.1.0", + "crypto-js": "^4.1.1" }, "dependencies": { + "@ledgerhq/devices": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-8.0.7.tgz", + "integrity": "sha512-BbPyET52lXnVs7CxJWrGYqmtGdbGzj+XnfCqLsDnA7QYr1CZREysxmie+Rr6BKpNDBRVesAovXjtaVaZOn+upw==", + "requires": { + "@ledgerhq/errors": "^6.14.0", + "@ledgerhq/logs": "^6.10.1", + "rxjs": "6", + "semver": "^7.3.5" + } + }, + "@ledgerhq/errors": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.14.0.tgz", + "integrity": "sha512-ZWJw2Ti6Dq1Ott/+qYqJdDWeZm16qI3VNG5rFlb0TQ3UcAyLIQZbnnzzdcVVwVeZiEp66WIpINd/pBdqsHVyOA==" + }, + "@ledgerhq/hw-transport": { + "version": "6.28.8", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.28.8.tgz", + "integrity": "sha512-XxQVl4htd018u/M66r0iu5nlHi+J6QfdPsORzDF6N39jaz+tMqItb7tUlXM/isggcuS5lc7GJo7NOuJ8rvHZaQ==", + "requires": { + "@ledgerhq/devices": "^8.0.7", + "@ledgerhq/errors": "^6.14.0", + "events": "^3.3.0" + } + }, + "@ledgerhq/logs": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.1.tgz", + "integrity": "sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w==" + }, + "axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "requires": { + "follow-redirects": "^1.14.8" + } + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -11693,31 +11185,67 @@ } } }, - "@ledgerhq/errors": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-5.50.0.tgz", - "integrity": "sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow==" - }, - "@ledgerhq/hw-app-eth": { - "version": "5.27.2", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-5.27.2.tgz", - "integrity": "sha512-llNdrE894cCN8j6yxJEUniciyLVcLmu5N0UmIJLOObztG+5rOF4bX54h4SreTWK+E10Z0CzHSeyE5Lz/tVcqqQ==", - "requires": { - "@ledgerhq/cryptoassets": "^5.27.2", - "@ledgerhq/errors": "^5.26.0", - "@ledgerhq/hw-transport": "^5.26.0", - "bignumber.js": "^9.0.1", - "rlp": "^2.2.6" - } - }, - "@ledgerhq/hw-transport": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-5.26.0.tgz", - "integrity": "sha512-NFeJOJmyEfAX8uuIBTpocWHcz630sqPcXbu864Q+OCBm4EK5UOKV1h/pX7e0xgNIKY8zhJ/O4p4cIZp9tnXLHQ==", + "@ledgerhq/hw-transport-mocker": { + "version": "6.27.19", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-mocker/-/hw-transport-mocker-6.27.19.tgz", + "integrity": "sha512-sD/7Ht1flaHZcwIFOi2E1LTHYLdAOe206/JwlwRU78pT0oUan8FnXR5SD8PSmhwgmQjJXto+PFBlmVe5EIt9Lw==", "requires": { - "@ledgerhq/devices": "^5.26.0", - "@ledgerhq/errors": "^5.26.0", - "events": "^3.2.0" + "@ledgerhq/hw-transport": "^6.28.8", + "@ledgerhq/logs": "^6.10.1" + }, + "dependencies": { + "@ledgerhq/devices": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-8.0.7.tgz", + "integrity": "sha512-BbPyET52lXnVs7CxJWrGYqmtGdbGzj+XnfCqLsDnA7QYr1CZREysxmie+Rr6BKpNDBRVesAovXjtaVaZOn+upw==", + "requires": { + "@ledgerhq/errors": "^6.14.0", + "@ledgerhq/logs": "^6.10.1", + "rxjs": "6", + "semver": "^7.3.5" + } + }, + "@ledgerhq/errors": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.14.0.tgz", + "integrity": "sha512-ZWJw2Ti6Dq1Ott/+qYqJdDWeZm16qI3VNG5rFlb0TQ3UcAyLIQZbnnzzdcVVwVeZiEp66WIpINd/pBdqsHVyOA==" + }, + "@ledgerhq/hw-transport": { + "version": "6.28.8", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.28.8.tgz", + "integrity": "sha512-XxQVl4htd018u/M66r0iu5nlHi+J6QfdPsORzDF6N39jaz+tMqItb7tUlXM/isggcuS5lc7GJo7NOuJ8rvHZaQ==", + "requires": { + "@ledgerhq/devices": "^8.0.7", + "@ledgerhq/errors": "^6.14.0", + "events": "^3.3.0" + } + }, + "@ledgerhq/logs": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.1.tgz", + "integrity": "sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } } }, "@ledgerhq/hw-transport-node-hid": { @@ -11855,22 +11383,6 @@ } } }, - "@ledgerhq/hw-transport-u2f": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-u2f/-/hw-transport-u2f-5.26.0.tgz", - "integrity": "sha512-QTxP1Rsh+WZ184LUOelYVLeaQl3++V3I2jFik+l9JZtakwEHjD0XqOT750xpYNL/vfHsy31Wlz+oicdxGzFk+w==", - "requires": { - "@ledgerhq/errors": "^5.26.0", - "@ledgerhq/hw-transport": "^5.26.0", - "@ledgerhq/logs": "^5.26.0", - "u2f-api": "0.2.7" - } - }, - "@ledgerhq/logs": { - "version": "5.50.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-5.50.0.tgz", - "integrity": "sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA==" - }, "@metamask/eth-sig-util": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", @@ -12707,9 +12219,12 @@ "peer": true }, "@types/node": { - "version": "20.2.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.3.tgz", - "integrity": "sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw==" + "version": "20.8.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.8.tgz", + "integrity": "sha512-YRsdVxq6OaLfmR9Hy816IMp33xOBjfyOgUd77ehqg96CFywxAPbDbXvAsuN2KVg2HOT8Eh6uAfU+l4WffwPVrQ==", + "requires": { + "undici-types": "~5.25.1" + } }, "@types/pbkdf2": { "version": "3.1.0", @@ -12958,54 +12473,6 @@ "picomatch": "^2.0.4" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", @@ -13578,12 +13045,6 @@ } } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "optional": true - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -13746,12 +13207,6 @@ } } }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "optional": true - }, "cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", @@ -13767,7 +13222,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "devOptional": true + "dev": true, + "peer": true }, "cosmjs-types": { "version": "0.8.0", @@ -13833,6 +13289,11 @@ "dev": true, "peer": true }, + "crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, "death": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", @@ -13938,12 +13399,6 @@ "dev": true, "peer": true }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "optional": true - }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -14989,59 +14444,6 @@ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==", - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -15498,12 +14900,6 @@ "has-symbols": "^1.0.2" } }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "optional": true - }, "hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", @@ -15788,7 +15184,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "devOptional": true + "dev": true, + "peer": true }, "is-glob": { "version": "4.0.3", @@ -15907,7 +15304,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "devOptional": true + "dev": true, + "peer": true }, "isexe": { "version": "2.0.0", @@ -16541,12 +15939,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", - "optional": true - }, "nanoid": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", @@ -16652,12 +16044,6 @@ "dev": true, "peer": true }, - "noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ==", - "optional": true - }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -16674,24 +16060,6 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "optional": true - }, "number-to-bn": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", @@ -16716,7 +16084,8 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "devOptional": true + "dev": true, + "peer": true }, "object-inspect": { "version": "1.12.3", @@ -17042,7 +16411,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "devOptional": true + "dev": true, + "peer": true }, "promise": { "version": "8.3.0", @@ -17515,12 +16885,6 @@ "randombytes": "^2.1.0" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "optional": true - }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -17590,12 +16954,6 @@ "object-inspect": "^1.9.0" } }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "optional": true - }, "simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -17930,7 +17288,8 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "devOptional": true, + "dev": true, + "peer": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -17940,13 +17299,15 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", - "devOptional": true + "dev": true, + "peer": true }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", - "devOptional": true, + "dev": true, + "peer": true, "requires": { "ansi-regex": "^3.0.0" } @@ -18453,11 +17814,6 @@ "dev": true, "peer": true }, - "u2f-api": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/u2f-api/-/u2f-api-0.2.7.tgz", - "integrity": "sha512-fqLNg8vpvLOD5J/z4B6wpPg4Lvowz1nJ9xdHcCzdUPKcFE/qNCceV2gNZxSJd5vhAZemHr/K/hbzVA0zxB5mkg==" - }, "uglify-js": { "version": "3.17.4", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", @@ -18487,6 +17843,11 @@ "@fastify/busboy": "^2.0.0" } }, + "undici-types": { + "version": "5.25.3", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", + "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -18621,12 +17982,6 @@ "is-symbol": "^1.0.3" } }, - "which-pm-runs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", - "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", - "optional": true - }, "which-typed-array": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", @@ -18641,15 +17996,6 @@ "is-typed-array": "^1.1.10" } }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, "word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", diff --git a/package.json b/package.json index 1a9a235c..ae82c3c9 100644 --- a/package.json +++ b/package.json @@ -27,9 +27,8 @@ "@axelar-network/axelar-gmp-sdk-solidity": "5.5.2", "@axelar-network/interchain-token-service": "0.3.0", "@cosmjs/cosmwasm-stargate": "^0.31.1", - "@ethersproject/hardware-wallets": "^5.5.0", - "@ledgerhq/hw-transport-node-hid": "^6.11.2", - "ethers": "^5.7.2", + "@ledgerhq/hw-transport-node-hid": "^6.27.21", + "@ledgerhq/hw-app-eth": "6.32.2", "path": "^0.12.7" }, "devDependencies": {