From 7062234a45032d68c9be0252290680fffc616739 Mon Sep 17 00:00:00 2001 From: Raul Duarte Pereira Date: Wed, 17 Jul 2024 21:38:47 -0300 Subject: [PATCH] CU-86du15m7h - Plan, Structure and Implement BsLib support to multichain EVM --- .../bs-ethereum/CU-86du15m7h-6_2024-07-18-00-38.json | 10 ++++++++++ packages/bs-ethereum/src/BSEthereum.ts | 6 +++--- .../bs-ethereum/src/EthersLedgerServiceEthereum.ts | 8 ++++---- 3 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 common/changes/@cityofzion/bs-ethereum/CU-86du15m7h-6_2024-07-18-00-38.json diff --git a/common/changes/@cityofzion/bs-ethereum/CU-86du15m7h-6_2024-07-18-00-38.json b/common/changes/@cityofzion/bs-ethereum/CU-86du15m7h-6_2024-07-18-00-38.json new file mode 100644 index 0000000..1d22ee0 --- /dev/null +++ b/common/changes/@cityofzion/bs-ethereum/CU-86du15m7h-6_2024-07-18-00-38.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@cityofzion/bs-ethereum", + "comment": "Fix for EthersLedgerSigner instantiation", + "type": "patch" + } + ], + "packageName": "@cityofzion/bs-ethereum" +} \ No newline at end of file diff --git a/packages/bs-ethereum/src/BSEthereum.ts b/packages/bs-ethereum/src/BSEthereum.ts index a69f343..bf9bd45 100644 --- a/packages/bs-ethereum/src/BSEthereum.ts +++ b/packages/bs-ethereum/src/BSEthereum.ts @@ -21,7 +21,7 @@ import { BitqueryEDSEthereum } from './BitqueryEDSEthereum' import { GhostMarketNDSEthereum } from './GhostMarketNDSEthereum' import { RpcBDSEthereum } from './RpcBDSEthereum' import { BitqueryBDSEthereum } from './BitqueryBDSEthereum' -import { EthersLedgerServiceEthereum, EthersLedgerSigner } from './EthersLedgerServiceEthereum' +import { EthersLedgerServiceEthereum } from './EthersLedgerServiceEthereum' import Transport from '@ledgerhq/hw-transport' import { BSEthereumNetworkId, BSEthereumHelper } from './BSEthereumHelper' @@ -161,7 +161,7 @@ export class BSEthereum let signer: ethers.Signer if (ledgerTransport) { - signer = new EthersLedgerSigner(ledgerTransport, provider) + signer = this.ledgerService.getSigner(ledgerTransport, provider) } else { signer = new ethers.Wallet(param.senderAccount.key, provider) } @@ -202,7 +202,7 @@ export class BSEthereum let signer: ethers.Signer if (ledgerTransport) { - signer = new EthersLedgerSigner(ledgerTransport, provider) + signer = this.ledgerService.getSigner(ledgerTransport, provider) } else { signer = new ethers.Wallet(param.senderAccount.key, provider) } diff --git a/packages/bs-ethereum/src/EthersLedgerServiceEthereum.ts b/packages/bs-ethereum/src/EthersLedgerServiceEthereum.ts index 574b36e..133d663 100644 --- a/packages/bs-ethereum/src/EthersLedgerServiceEthereum.ts +++ b/packages/bs-ethereum/src/EthersLedgerServiceEthereum.ts @@ -182,17 +182,17 @@ export class EthersLedgerServiceEthereum implements LedgerService { constructor(public getLedgerTransport?: (account: Account) => Promise) {} async getAddress(transport: Transport): Promise { - const signer = new EthersLedgerSigner(transport) + const signer = this.getSigner(transport) return await signer.getAddress() } async getPublicKey(transport: Transport): Promise { - const signer = new EthersLedgerSigner(transport) + const signer = this.getSigner(transport) return await signer.getPublicKey() } - getSigner(transport: Transport): EthersLedgerSigner { - return new EthersLedgerSigner(transport, undefined, this.emitter) + getSigner(transport: Transport, provider?: ethers.providers.Provider): EthersLedgerSigner { + return new EthersLedgerSigner(transport, provider, this.emitter) } }