diff --git a/libs/ledgerjs/packages/hw-app-eth/README.md b/libs/ledgerjs/packages/hw-app-eth/README.md index 233165470597..7c2666f5275c 100644 --- a/libs/ledgerjs/packages/hw-app-eth/README.md +++ b/libs/ledgerjs/packages/hw-app-eth/README.md @@ -488,7 +488,7 @@ provides the name of a trusted binding of a plugin with a contract address and a ##### Parameters * `payload` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** external plugin data -* `signature` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** signature for the plugin +* `signature` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)>** a boolean diff --git a/libs/ledgerjs/packages/hw-app-eth/src/Eth.ts b/libs/ledgerjs/packages/hw-app-eth/src/Eth.ts index c6a8a6644c69..cff4b72763da 100644 --- a/libs/ledgerjs/packages/hw-app-eth/src/Eth.ts +++ b/libs/ledgerjs/packages/hw-app-eth/src/Eth.ts @@ -1198,12 +1198,12 @@ export default class Eth { * provides the name of a trusted binding of a plugin with a contract address and a supported method selector. This plugin will be called to interpret contract data in the following transaction signing command. * * @param payload external plugin data - * @param signature signature for the plugin + * @option signature optionally signature for the plugin * @returns a boolean */ - setExternalPlugin(payload: string, signature: string): Promise { + setExternalPlugin(payload: string, signature?: string): Promise { const payloadBuffer = Buffer.from(payload, "hex"); - const signatureBuffer = Buffer.from(signature, "hex"); + const signatureBuffer = Buffer.from(signature ?? "", "hex"); const buffer = Buffer.concat([payloadBuffer, signatureBuffer]); return this.transport.send(0xe0, 0x12, 0x00, 0x00, buffer).then( () => true, diff --git a/libs/ledgerjs/packages/keyring-eth/jest.config.ts b/libs/ledgerjs/packages/keyring-eth/jest.config.ts new file mode 100644 index 000000000000..c4f012862710 --- /dev/null +++ b/libs/ledgerjs/packages/keyring-eth/jest.config.ts @@ -0,0 +1,6 @@ +import baseConfig from "../../jest.config"; + +export default { + ...baseConfig, + rootDir: __dirname, +}; diff --git a/libs/ledgerjs/packages/keyring-eth/package.json b/libs/ledgerjs/packages/keyring-eth/package.json new file mode 100644 index 000000000000..c3d69d31af4b --- /dev/null +++ b/libs/ledgerjs/packages/keyring-eth/package.json @@ -0,0 +1,31 @@ +{ + "name": "@ledgerhq/keyring-eth", + "version": "0.0.1", + "description": "Ledger keyring eth module", + "files": [ + "./lib" + ], + "scripts": { + "build": "rimraf lib && tsc", + "test": "jest" + }, + "keywords": [], + "license": "Apache-2.0", + "devDependencies": { + "@tsconfig/recommended": "^1.0.6", + "@types/jest": "^29.5.10", + "@types/node": "^20.8.10", + "jest": "^29.7.0", + "rimraf": "^4.4.1", + "ts-jest": "^29.1.1", + "ts-node": "^10.7.0", + "typescript": "^5.4.5" + }, + "dependencies": { + "@ledgerhq/context-module": "workspace:^", + "@ledgerhq/hw-app-eth": "workspace:^", + "@ledgerhq/hw-transport": "workspace:^", + "@ledgerhq/types-live": "workspace:^", + "ethers": "^5.7.2" + } +} diff --git a/libs/ledgerjs/packages/keyring-eth/src/DefaultKeyringEth.test.ts b/libs/ledgerjs/packages/keyring-eth/src/DefaultKeyringEth.test.ts new file mode 100644 index 000000000000..45495695ad2f --- /dev/null +++ b/libs/ledgerjs/packages/keyring-eth/src/DefaultKeyringEth.test.ts @@ -0,0 +1,18 @@ +import Transport from "@ledgerhq/hw-transport"; +import { DefaultKeyringEth } from "./DefaultKeyringEth"; +import { Transaction } from "ethers"; + +describe("DefaultEthKeyring", () => { + describe("signTransaction function", () => { + it("Test1", async () => { + const keyring = new DefaultKeyringEth({ + send: jest.fn(), + decorateAppAPIMethods: jest.fn(), + } as unknown as Transport); + + const result = await keyring.signTransaction("", {} as Transaction, {}); + + expect(result).toEqual({}); + }); + }); +}); diff --git a/libs/ledgerjs/packages/keyring-eth/src/DefaultKeyringEth.ts b/libs/ledgerjs/packages/keyring-eth/src/DefaultKeyringEth.ts new file mode 100644 index 000000000000..d49009c36b32 --- /dev/null +++ b/libs/ledgerjs/packages/keyring-eth/src/DefaultKeyringEth.ts @@ -0,0 +1,46 @@ +import { Transaction } from "ethers"; +import Transport from "@ledgerhq/hw-transport"; +import AppBinding from "@ledgerhq/hw-app-eth"; +import { + EcdsaSignature, + KeyringEth, + GetAddressOptions, + SignMessageOptions, + SignMessagePayload, + SignTransactionOptions, + GetAddressResult, +} from "./KeyringEth"; + +export class DefaultKeyringEth implements KeyringEth { + private _appBinding: AppBinding; + + constructor(transport: Transport) { + this._appBinding = new AppBinding(transport); + } + + public async signTransaction( + _derivationPath: string, + _transaction: Transaction, + _options: SignTransactionOptions, + ) { + // TODO: implement + return Promise.resolve({} as EcdsaSignature); + } + + public async signMessage( + _derivationPath: string, + _message: SignMessagePayload, + _options: SignMessageOptions, + ): Promise { + // TODO: implement + return Promise.resolve({} as EcdsaSignature); + } + + public async getAddress( + _derivationPath: string, + _options?: GetAddressOptions, + ): Promise { + // TODO: implement + return Promise.resolve({} as GetAddressResult); + } +} diff --git a/libs/ledgerjs/packages/keyring-eth/src/Keyring.ts b/libs/ledgerjs/packages/keyring-eth/src/Keyring.ts new file mode 100644 index 000000000000..9d6a0adf7795 --- /dev/null +++ b/libs/ledgerjs/packages/keyring-eth/src/Keyring.ts @@ -0,0 +1,13 @@ +export abstract class Keyring { + abstract getAddress(derivationPath: string, options: unknown): Promise; + abstract signTransaction( + derivationPath: string, + transaction: unknown, + options: unknown, + ): Promise; + abstract signMessage( + derivationPath: string, + message: unknown, + options: unknown, + ): Promise; +} diff --git a/libs/ledgerjs/packages/keyring-eth/src/KeyringEth.ts b/libs/ledgerjs/packages/keyring-eth/src/KeyringEth.ts new file mode 100644 index 000000000000..1efc301b992c --- /dev/null +++ b/libs/ledgerjs/packages/keyring-eth/src/KeyringEth.ts @@ -0,0 +1,41 @@ +import { Transaction } from "ethers"; +import { Keyring } from "./Keyring"; +import { LoaderOptions } from "@ledgerhq/context-module/src/shared/model/LoaderOptions"; +import { EIP712Message } from "@ledgerhq/types-live"; + +export type EcdsaSignature = { r: `0x${string}`; s: `0x${string}`; v: number }; + +export type EIP712Params = { domainSeparator: `0x${string}`; hashStruct: `0x${string}` }; + +export type SignTransactionOptions = LoaderOptions["options"]; + +export type SignMessagePayload = string | EIP712Message | EIP712Params; + +// TODO: reinforce the type of the options +export type SignMessageOptions = { method: "personalSign" | "eip712" | "eip712Hashed" }; + +export type GetAddressResult = { + publicKey: string; + address: `0x${string}`; +}; + +export type GetAddressOptions = { + displayOnDevice?: boolean; + chainId?: string; +}; + +export interface KeyringEth extends Keyring { + getAddress(derivationPath: string, options?: GetAddressOptions): Promise; + + signTransaction( + derivationPath: string, + transaction: Transaction, + options: SignTransactionOptions, + ): Promise; + + signMessage( + derivationPath: string, + message: SignMessagePayload, + options: SignMessageOptions, + ): Promise; +} diff --git a/libs/ledgerjs/packages/keyring-eth/src/index.ts b/libs/ledgerjs/packages/keyring-eth/src/index.ts new file mode 100644 index 000000000000..48f34a5dd556 --- /dev/null +++ b/libs/ledgerjs/packages/keyring-eth/src/index.ts @@ -0,0 +1,2 @@ +export * from "./DefaultKeyringEth"; +export * from "./KeyringEth"; diff --git a/libs/ledgerjs/packages/keyring-eth/tsconfig.json b/libs/ledgerjs/packages/keyring-eth/tsconfig.json new file mode 100644 index 000000000000..0cf4676deafc --- /dev/null +++ b/libs/ledgerjs/packages/keyring-eth/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "lib" + }, + "include": ["src/**/*"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0f44f61ebe00..d982ce426044 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4653,6 +4653,49 @@ importers: specifier: ^10.4.0 version: 10.9.2(@types/node@20.12.12)(source-map-support@0.5.21)(typescript@5.4.3) + libs/ledgerjs/packages/keyring-eth: + dependencies: + '@ledgerhq/context-module': + specifier: workspace:^ + version: link:../context-module + '@ledgerhq/hw-app-eth': + specifier: workspace:^ + version: link:../hw-app-eth + '@ledgerhq/hw-transport': + specifier: workspace:^ + version: link:../hw-transport + '@ledgerhq/types-live': + specifier: workspace:^ + version: link:../types-live + ethers: + specifier: ^5.7.2 + version: 5.7.2 + devDependencies: + '@tsconfig/recommended': + specifier: ^1.0.6 + version: 1.0.6 + '@types/jest': + specifier: ^29.5.10 + version: 29.5.12 + '@types/node': + specifier: ^20.8.10 + version: 20.12.12 + jest: + specifier: ^29.7.0 + version: 29.7.0(@types/node@20.12.12)(ts-node@10.9.2) + rimraf: + specifier: ^4.4.1 + version: 4.4.1 + ts-jest: + specifier: ^29.1.1 + version: 29.1.2(jest@29.7.0)(typescript@5.4.5) + ts-node: + specifier: ^10.7.0 + version: 10.9.2(@types/node@20.12.12)(typescript@5.4.5) + typescript: + specifier: ^5.4.5 + version: 5.4.5 + libs/ledgerjs/packages/logs: devDependencies: '@types/jest': @@ -9769,14 +9812,14 @@ packages: '@commitlint/types': 17.8.1 '@types/node': 20.5.1 chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.4.3) - cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6)(ts-node@10.9.2)(typescript@5.4.3) + cosmiconfig: 8.3.6(typescript@5.4.5) + cosmiconfig-typescript-loader: 4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6)(ts-node@10.9.2)(typescript@5.4.5) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 resolve-from: 5.0.0 - ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.4.3) - typescript: 5.4.3 + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -11509,11 +11552,11 @@ packages: /@ethersproject/abi@5.6.4: resolution: {integrity: sha512-TTeZUlCeIHG6527/2goZA6gW5F8Emoc7MrZDC7hhP84aRGvW3TEdTnZR08Ls88YXM1m2SuK42Osw/jSi3uO8gg==} dependencies: - '@ethersproject/address': 5.6.1 + '@ethersproject/address': 5.7.0 '@ethersproject/bignumber': 5.7.0 '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.6.1 - '@ethersproject/hash': 5.6.1 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 '@ethersproject/keccak256': 5.7.0 '@ethersproject/logger': 5.7.0 '@ethersproject/properties': 5.7.0 @@ -11539,10 +11582,10 @@ packages: '@ethersproject/bignumber': 5.7.0 '@ethersproject/bytes': 5.7.0 '@ethersproject/logger': 5.7.0 - '@ethersproject/networks': 5.6.4 + '@ethersproject/networks': 5.7.1 '@ethersproject/properties': 5.7.0 - '@ethersproject/transactions': 5.6.2 - '@ethersproject/web': 5.6.1 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.1 dev: true /@ethersproject/abstract-provider@5.7.0: @@ -11559,7 +11602,7 @@ packages: /@ethersproject/abstract-signer@5.6.2: resolution: {integrity: sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ==} dependencies: - '@ethersproject/abstract-provider': 5.6.1 + '@ethersproject/abstract-provider': 5.7.0 '@ethersproject/bignumber': 5.7.0 '@ethersproject/bytes': 5.7.0 '@ethersproject/logger': 5.7.0 @@ -11617,7 +11660,6 @@ packages: dependencies: '@ethersproject/bytes': 5.7.0 '@ethersproject/properties': 5.7.0 - dev: false /@ethersproject/bignumber@5.6.2: resolution: {integrity: sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==} @@ -11660,15 +11702,15 @@ packages: resolution: {integrity: sha512-hguUA57BIKi6WY0kHvZp6PwPlWF87MCeB4B7Z7AbUpTxfFXFdn/3b0GmjZPagIHS+3yhcBJDnuEfU4Xz+Ks/8g==} dependencies: '@ethersproject/abi': 5.7.0 - '@ethersproject/abstract-provider': 5.6.1 - '@ethersproject/abstract-signer': 5.6.2 - '@ethersproject/address': 5.6.1 + '@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.6.1 + '@ethersproject/constants': 5.7.0 '@ethersproject/logger': 5.7.0 '@ethersproject/properties': 5.7.0 - '@ethersproject/transactions': 5.6.2 + '@ethersproject/transactions': 5.7.0 dev: true /@ethersproject/contracts@5.7.0: @@ -11689,8 +11731,8 @@ packages: /@ethersproject/hash@5.6.1: resolution: {integrity: sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA==} dependencies: - '@ethersproject/abstract-signer': 5.6.2 - '@ethersproject/address': 5.6.1 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 '@ethersproject/bignumber': 5.7.0 '@ethersproject/bytes': 5.7.0 '@ethersproject/keccak256': 5.7.0 @@ -11715,18 +11757,18 @@ packages: /@ethersproject/hdnode@5.6.2: resolution: {integrity: sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q==} dependencies: - '@ethersproject/abstract-signer': 5.6.2 - '@ethersproject/basex': 5.6.1 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/basex': 5.7.0 '@ethersproject/bignumber': 5.7.0 '@ethersproject/bytes': 5.7.0 '@ethersproject/logger': 5.7.0 - '@ethersproject/pbkdf2': 5.6.1 + '@ethersproject/pbkdf2': 5.7.0 '@ethersproject/properties': 5.7.0 - '@ethersproject/sha2': 5.6.1 - '@ethersproject/signing-key': 5.6.2 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/signing-key': 5.7.0 '@ethersproject/strings': 5.7.0 - '@ethersproject/transactions': 5.6.2 - '@ethersproject/wordlists': 5.6.1 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/wordlists': 5.7.0 dev: true /@ethersproject/hdnode@5.7.0: @@ -11744,22 +11786,21 @@ packages: '@ethersproject/strings': 5.7.0 '@ethersproject/transactions': 5.7.0 '@ethersproject/wordlists': 5.7.0 - dev: false /@ethersproject/json-wallets@5.6.1: resolution: {integrity: sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ==} dependencies: - '@ethersproject/abstract-signer': 5.6.2 - '@ethersproject/address': 5.6.1 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 '@ethersproject/bytes': 5.7.0 - '@ethersproject/hdnode': 5.6.2 + '@ethersproject/hdnode': 5.7.0 '@ethersproject/keccak256': 5.7.0 '@ethersproject/logger': 5.7.0 - '@ethersproject/pbkdf2': 5.6.1 + '@ethersproject/pbkdf2': 5.7.0 '@ethersproject/properties': 5.7.0 - '@ethersproject/random': 5.6.1 + '@ethersproject/random': 5.7.0 '@ethersproject/strings': 5.7.0 - '@ethersproject/transactions': 5.6.2 + '@ethersproject/transactions': 5.7.0 aes-js: 3.0.0 scrypt-js: 3.0.1 dev: true @@ -11780,7 +11821,6 @@ packages: '@ethersproject/transactions': 5.7.0 aes-js: 3.0.0 scrypt-js: 3.0.1 - dev: false /@ethersproject/keccak256@5.6.1: resolution: {integrity: sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==} @@ -11817,7 +11857,7 @@ packages: resolution: {integrity: sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ==} dependencies: '@ethersproject/bytes': 5.7.0 - '@ethersproject/sha2': 5.6.1 + '@ethersproject/sha2': 5.7.0 dev: true /@ethersproject/pbkdf2@5.7.0: @@ -11825,7 +11865,6 @@ packages: dependencies: '@ethersproject/bytes': 5.7.0 '@ethersproject/sha2': 5.7.0 - dev: false /@ethersproject/properties@5.6.0: resolution: {integrity: sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==} @@ -11841,24 +11880,24 @@ packages: /@ethersproject/providers@5.6.8: resolution: {integrity: sha512-Wf+CseT/iOJjrGtAOf3ck9zS7AgPmr2fZ3N97r4+YXN3mBePTG2/bJ8DApl9mVwYL+RpYbNxMEkEp4mPGdwG/w==} dependencies: - '@ethersproject/abstract-provider': 5.6.1 - '@ethersproject/abstract-signer': 5.6.2 - '@ethersproject/address': 5.6.1 - '@ethersproject/base64': 5.6.1 - '@ethersproject/basex': 5.6.1 + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/basex': 5.7.0 '@ethersproject/bignumber': 5.7.0 '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.6.1 - '@ethersproject/hash': 5.6.1 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 '@ethersproject/logger': 5.7.0 - '@ethersproject/networks': 5.6.4 + '@ethersproject/networks': 5.7.1 '@ethersproject/properties': 5.7.0 - '@ethersproject/random': 5.6.1 + '@ethersproject/random': 5.7.0 '@ethersproject/rlp': 5.7.0 - '@ethersproject/sha2': 5.6.1 + '@ethersproject/sha2': 5.7.0 '@ethersproject/strings': 5.7.0 - '@ethersproject/transactions': 5.6.2 - '@ethersproject/web': 5.6.1 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.1 bech32: 1.1.4 ws: 7.4.6 transitivePeerDependencies: @@ -11906,7 +11945,6 @@ packages: dependencies: '@ethersproject/bytes': 5.7.0 '@ethersproject/logger': 5.7.0 - dev: false /@ethersproject/rlp@5.6.1: resolution: {integrity: sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==} @@ -11935,7 +11973,6 @@ packages: '@ethersproject/bytes': 5.7.0 '@ethersproject/logger': 5.7.0 hash.js: 1.1.7 - dev: false /@ethersproject/shims@5.7.0: resolution: {integrity: sha512-WeDptc6oAprov5CCN2LJ/6/+dC9gTonnkdAtLepm/7P5Z+3PRxS5NpfVWmOMs1yE4Vitl2cU8bOPWC0GvGSbVg==} @@ -11969,7 +12006,7 @@ packages: '@ethersproject/bytes': 5.7.0 '@ethersproject/keccak256': 5.7.0 '@ethersproject/logger': 5.7.0 - '@ethersproject/sha2': 5.6.1 + '@ethersproject/sha2': 5.7.0 '@ethersproject/strings': 5.7.0 dev: true @@ -11988,7 +12025,7 @@ packages: resolution: {integrity: sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw==} dependencies: '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.6.1 + '@ethersproject/constants': 5.7.0 '@ethersproject/logger': 5.7.0 dev: true @@ -12002,15 +12039,15 @@ packages: /@ethersproject/transactions@5.6.2: resolution: {integrity: sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q==} dependencies: - '@ethersproject/address': 5.6.1 + '@ethersproject/address': 5.7.0 '@ethersproject/bignumber': 5.7.0 '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.6.1 + '@ethersproject/constants': 5.7.0 '@ethersproject/keccak256': 5.7.0 '@ethersproject/logger': 5.7.0 '@ethersproject/properties': 5.7.0 '@ethersproject/rlp': 5.7.0 - '@ethersproject/signing-key': 5.6.2 + '@ethersproject/signing-key': 5.7.0 dev: true /@ethersproject/transactions@5.7.0: @@ -12030,7 +12067,7 @@ packages: resolution: {integrity: sha512-rEfSEvMQ7obcx3KWD5EWWx77gqv54K6BKiZzKxkQJqtpriVsICrktIQmKl8ReNToPeIYPnFHpXvKpi068YFZXw==} dependencies: '@ethersproject/bignumber': 5.7.0 - '@ethersproject/constants': 5.6.1 + '@ethersproject/constants': 5.7.0 '@ethersproject/logger': 5.7.0 dev: true @@ -12045,21 +12082,21 @@ packages: /@ethersproject/wallet@5.6.2: resolution: {integrity: sha512-lrgh0FDQPuOnHcF80Q3gHYsSUODp6aJLAdDmDV0xKCN/T7D99ta1jGVhulg3PY8wiXEngD0DfM0I2XKXlrqJfg==} dependencies: - '@ethersproject/abstract-provider': 5.6.1 - '@ethersproject/abstract-signer': 5.6.2 - '@ethersproject/address': 5.6.1 + '@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/hash': 5.6.1 - '@ethersproject/hdnode': 5.6.2 - '@ethersproject/json-wallets': 5.6.1 + '@ethersproject/hash': 5.7.0 + '@ethersproject/hdnode': 5.7.0 + '@ethersproject/json-wallets': 5.7.0 '@ethersproject/keccak256': 5.7.0 '@ethersproject/logger': 5.7.0 '@ethersproject/properties': 5.7.0 - '@ethersproject/random': 5.6.1 - '@ethersproject/signing-key': 5.6.2 - '@ethersproject/transactions': 5.6.2 - '@ethersproject/wordlists': 5.6.1 + '@ethersproject/random': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/wordlists': 5.7.0 dev: true /@ethersproject/wallet@5.7.0: @@ -12085,7 +12122,7 @@ packages: /@ethersproject/web@5.6.1: resolution: {integrity: sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA==} dependencies: - '@ethersproject/base64': 5.6.1 + '@ethersproject/base64': 5.7.0 '@ethersproject/bytes': 5.7.0 '@ethersproject/logger': 5.7.0 '@ethersproject/properties': 5.7.0 @@ -12105,7 +12142,7 @@ packages: resolution: {integrity: sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw==} dependencies: '@ethersproject/bytes': 5.7.0 - '@ethersproject/hash': 5.6.1 + '@ethersproject/hash': 5.7.0 '@ethersproject/logger': 5.7.0 '@ethersproject/properties': 5.7.0 '@ethersproject/strings': 5.7.0 @@ -12119,7 +12156,6 @@ packages: '@ethersproject/logger': 5.7.0 '@ethersproject/properties': 5.7.0 '@ethersproject/strings': 5.7.0 - dev: false /@expo/bunyan@4.0.0: resolution: {integrity: sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==} @@ -28362,7 +28398,7 @@ packages: resolution: {integrity: sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==} dependencies: glob: 10.3.12 - typescript: 5.4.3 + typescript: 5.4.5 dev: true /confusing-browser-globals@1.0.11: @@ -28546,7 +28582,7 @@ packages: layout-base: 1.0.2 dev: false - /cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6)(ts-node@10.9.2)(typescript@5.4.3): + /cosmiconfig-typescript-loader@4.4.0(@types/node@20.5.1)(cosmiconfig@8.3.6)(ts-node@10.9.2)(typescript@5.4.5): resolution: {integrity: sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==} engines: {node: '>=v14.21.3'} peerDependencies: @@ -28556,9 +28592,9 @@ packages: typescript: '>=4' dependencies: '@types/node': 20.5.1 - cosmiconfig: 8.3.6(typescript@5.4.3) - ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.4.3) - typescript: 5.4.3 + cosmiconfig: 8.3.6(typescript@5.4.5) + ts-node: 10.9.2(@types/node@20.5.1)(typescript@5.4.5) + typescript: 5.4.5 dev: true /cosmiconfig@5.2.1: @@ -28607,7 +28643,7 @@ packages: typescript: 4.9.5 dev: true - /cosmiconfig@8.3.6(typescript@5.4.3): + /cosmiconfig@8.3.6(typescript@5.4.5): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: @@ -28620,7 +28656,7 @@ packages: js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - typescript: 5.4.3 + typescript: 5.4.5 dev: true /cosmjs-types@0.2.1: @@ -34344,6 +34380,7 @@ packages: /glob@6.0.4: resolution: {integrity: sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==} + deprecated: Glob versions prior to v9 are no longer supported requiresBuild: true dependencies: inflight: 1.0.6 @@ -47346,6 +47383,7 @@ packages: /rimraf@2.4.5: resolution: {integrity: sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true requiresBuild: true dependencies: @@ -47354,12 +47392,14 @@ packages: /rimraf@2.6.3: resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 /rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -50831,7 +50871,7 @@ packages: - source-map-support dev: true - /ts-node@10.9.2(@types/node@20.5.1)(typescript@5.4.3): + /ts-node@10.9.2(@types/node@20.5.1)(typescript@5.4.5): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -50857,7 +50897,7 @@ packages: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.4.3 + typescript: 5.4.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 transitivePeerDependencies: