From 2cb2ecb02a74f0c2fb0c0ec75c6cd618a50c3c86 Mon Sep 17 00:00:00 2001 From: Raul Duarte Pereira Date: Wed, 14 Aug 2024 16:34:56 -0300 Subject: [PATCH] CU-86ducxtcz - Error to make a transaction in NeoX using AbstractWalletConnectEIP155Adapter --- .../CU-86ducxtcz_2024-08-14-19-34.json | 10 ++++++++ .../AbstractWalletConnectEIP155Adapter.ts | 25 +++++++++++-------- 2 files changed, 25 insertions(+), 10 deletions(-) create mode 100644 common/changes/@cityofzion/wallet-connect-sdk-wallet-core/CU-86ducxtcz_2024-08-14-19-34.json diff --git a/common/changes/@cityofzion/wallet-connect-sdk-wallet-core/CU-86ducxtcz_2024-08-14-19-34.json b/common/changes/@cityofzion/wallet-connect-sdk-wallet-core/CU-86ducxtcz_2024-08-14-19-34.json new file mode 100644 index 0000000..a237e02 --- /dev/null +++ b/common/changes/@cityofzion/wallet-connect-sdk-wallet-core/CU-86ducxtcz_2024-08-14-19-34.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@cityofzion/wallet-connect-sdk-wallet-core", + "comment": "fix error to make a transaction in NeoX using AbstractWalletConnectEIP155Adapter", + "type": "patch" + } + ], + "packageName": "@cityofzion/wallet-connect-sdk-wallet-core" +} \ No newline at end of file diff --git a/packages/wallet-connect-sdk-wallet-core/src/adapters/AbstractWalletConnectEIP155Adapter.ts b/packages/wallet-connect-sdk-wallet-core/src/adapters/AbstractWalletConnectEIP155Adapter.ts index 83011f5..9d18842 100644 --- a/packages/wallet-connect-sdk-wallet-core/src/adapters/AbstractWalletConnectEIP155Adapter.ts +++ b/packages/wallet-connect-sdk-wallet-core/src/adapters/AbstractWalletConnectEIP155Adapter.ts @@ -25,7 +25,10 @@ export abstract class AbstractWalletConnectEIP155Adapter { } } - protected resolveParams(param: any) { + protected async resolveParams(param: any, args: TAdapterMethodParam) { + const { provider, wallet } = await this.getServices(args) + const gasPrice = await provider.getGasPrice() + if (typeof param !== 'object') { throw new Error('Invalid Params') } @@ -35,7 +38,13 @@ export abstract class AbstractWalletConnectEIP155Adapter { delete param.gas } - return param + param.gasPrice = gasPrice + + return { + param, + provider, + wallet, + } } protected convertHexToUtf8(value: string) { @@ -61,8 +70,7 @@ export abstract class AbstractWalletConnectEIP155Adapter { } async eth_signTransaction(args: TAdapterMethodParam): Promise { - const param = this.resolveParams(args.request.params.request.params[0]) - const { wallet } = await this.getServices(args) + const { param, wallet } = await this.resolveParams(args.request.params.request.params[0], args) const signature = await wallet.signTransaction(param) return signature } @@ -89,9 +97,8 @@ export abstract class AbstractWalletConnectEIP155Adapter { } async eth_sendTransaction(args: TAdapterMethodParam): Promise { - const param = this.resolveParams(args.request.params.request.params[0]) + const { param, provider, wallet } = await this.resolveParams(args.request.params.request.params[0], args) - const { wallet, provider } = await this.getServices(args) const connectedWallet = wallet.connect(provider) const { hash } = await connectedWallet.sendTransaction(param) @@ -99,9 +106,8 @@ export abstract class AbstractWalletConnectEIP155Adapter { } async eth_call(args: TAdapterMethodParam): Promise { - const param = this.resolveParams(args.request.params.request.params[0]) + const { param, provider, wallet } = await this.resolveParams(args.request.params.request.params[0], args) - const { wallet, provider } = await this.getServices(args) const connectedWallet = wallet.connect(provider) return await connectedWallet.call(param) @@ -139,8 +145,7 @@ export abstract class AbstractWalletConnectEIP155Adapter { } async calculateFee(args: TAdapterMethodParam): Promise { - const param = this.resolveParams(args.request.params.request.params[0]) - const { wallet, provider } = await this.getServices(args) + const { param, wallet, provider } = await this.resolveParams(args.request.params.request.params[0], args) const connectedWallet = wallet.connect(provider) const gasPrice = await provider.getGasPrice()