@wormhole-foundation/sdk-evm 0.5.2-beta.8 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/signer.d.ts +5 -7
- package/dist/cjs/signer.d.ts.map +1 -1
- package/dist/cjs/signer.js +26 -25
- package/dist/cjs/signer.js.map +1 -1
- package/dist/esm/signer.d.ts +5 -7
- package/dist/esm/signer.d.ts.map +1 -1
- package/dist/esm/signer.js +27 -26
- package/dist/esm/signer.js.map +1 -1
- package/package.json +2 -2
package/dist/cjs/signer.d.ts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import type { Network, SignOnlySigner, SignedTx, Signer, UnsignedTransaction } from '@wormhole-foundation/sdk-connect';
|
|
2
2
|
import { PlatformNativeSigner } from '@wormhole-foundation/sdk-connect';
|
|
3
|
-
import type {
|
|
3
|
+
import type { Signer as EthersSigner, Provider } from 'ethers';
|
|
4
4
|
import type { EvmChains } from './types.js';
|
|
5
|
-
export declare function getEvmSigner(
|
|
6
|
-
rpc: Provider;
|
|
7
|
-
key: string;
|
|
8
|
-
}, opts?: {
|
|
5
|
+
export declare function getEvmSigner(rpc: Provider, key: string | EthersSigner, opts?: {
|
|
9
6
|
maxGasLimit?: bigint;
|
|
10
|
-
|
|
7
|
+
chain?: EvmChains;
|
|
8
|
+
}): Promise<Signer>;
|
|
11
9
|
export declare function getEvmSignerForKey(rpc: Provider, privateKey: string): Promise<Signer>;
|
|
12
|
-
export declare function getEvmSignerForSigner(
|
|
10
|
+
export declare function getEvmSignerForSigner(signer: EthersSigner): Promise<Signer>;
|
|
13
11
|
export declare class EvmNativeSigner<N extends Network, C extends EvmChains = EvmChains> extends PlatformNativeSigner<EthersSigner, N, C> implements SignOnlySigner<N, C> {
|
|
14
12
|
readonly opts?: {
|
|
15
13
|
maxGasLimit?: bigint | undefined;
|
package/dist/cjs/signer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,MAAM,EACN,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,oBAAoB,EAGrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,MAAM,EACN,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,oBAAoB,EAGrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,MAAM,IAAI,YAAY,EACtB,QAAQ,EAET,MAAM,QAAQ,CAAC;AAGhB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,wBAAsB,YAAY,CAChC,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,MAAM,GAAG,YAAY,EAC1B,IAAI,CAAC,EAAE;IACL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,GACA,OAAO,CAAC,MAAM,CAAC,CAajB;AAGD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAGD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,qBAAa,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,GAAG,SAAS,CAC7E,SAAQ,oBAAoB,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAC/C,YAAW,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAM7B,QAAQ,CAAC,IAAI,CAAC;;;gBAHd,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,EACZ,IAAI,CAAC;;iBAA0B;IAK1C,KAAK,IAAI,CAAC;IAIV,OAAO,IAAI,MAAM;IAIX,IAAI,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CA+CjE;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,EACjD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAChB,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAM9B"}
|
package/dist/cjs/signer.js
CHANGED
|
@@ -5,28 +5,23 @@ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
|
5
5
|
const ethers_1 = require("ethers");
|
|
6
6
|
const platform_js_1 = require("./platform.js");
|
|
7
7
|
const types_js_1 = require("./types.js");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
if (!chain) {
|
|
15
|
-
const [, c] = await platform_js_1.EvmPlatform.chainFromRpc(signer.provider);
|
|
16
|
-
chain = c;
|
|
17
|
-
}
|
|
18
|
-
signer = new ethers_2.NonceManager(signer);
|
|
19
|
-
return new EvmNativeSigner(chain, await signer.getAddress(), signer, opts);
|
|
8
|
+
async function getEvmSigner(rpc, key, opts) {
|
|
9
|
+
const signer = typeof key === 'string' ? new ethers_1.Wallet(key, rpc) : key;
|
|
10
|
+
const chain = opts?.chain ?? (await platform_js_1.EvmPlatform.chainFromRpc(rpc))[1];
|
|
11
|
+
const managedSigner = new ethers_1.NonceManager(signer);
|
|
12
|
+
return new EvmNativeSigner(chain, await signer.getAddress(), managedSigner.connect(rpc), opts);
|
|
20
13
|
}
|
|
21
14
|
exports.getEvmSigner = getEvmSigner;
|
|
22
15
|
// Get a SignOnlySigner for the EVM platform
|
|
23
16
|
async function getEvmSignerForKey(rpc, privateKey) {
|
|
24
|
-
return getEvmSigner(
|
|
17
|
+
return getEvmSigner(rpc, privateKey);
|
|
25
18
|
}
|
|
26
19
|
exports.getEvmSignerForKey = getEvmSignerForKey;
|
|
27
20
|
// Get a SignOnlySigner for the EVM platform
|
|
28
|
-
async function getEvmSignerForSigner(
|
|
29
|
-
|
|
21
|
+
async function getEvmSignerForSigner(signer) {
|
|
22
|
+
if (!signer.provider)
|
|
23
|
+
throw new Error('Signer must have a provider');
|
|
24
|
+
return getEvmSigner(signer.provider, signer, {});
|
|
30
25
|
}
|
|
31
26
|
exports.getEvmSignerForSigner = getEvmSignerForSigner;
|
|
32
27
|
class EvmNativeSigner extends sdk_connect_1.PlatformNativeSigner {
|
|
@@ -43,7 +38,8 @@ class EvmNativeSigner extends sdk_connect_1.PlatformNativeSigner {
|
|
|
43
38
|
}
|
|
44
39
|
async sign(tx) {
|
|
45
40
|
const signed = [];
|
|
46
|
-
//
|
|
41
|
+
// default gas limit
|
|
42
|
+
const gasLimit = this.opts?.maxGasLimit ?? 500000n;
|
|
47
43
|
let maxFeePerGas = 1500000000n; // 1.5gwei
|
|
48
44
|
let maxPriorityFeePerGas = 100000000n; // 0.1gwei
|
|
49
45
|
// Celo does not support this call
|
|
@@ -53,7 +49,6 @@ class EvmNativeSigner extends sdk_connect_1.PlatformNativeSigner {
|
|
|
53
49
|
maxPriorityFeePerGas =
|
|
54
50
|
feeData.maxPriorityFeePerGas ?? maxPriorityFeePerGas;
|
|
55
51
|
}
|
|
56
|
-
let nonce = await this._signer.getNonce();
|
|
57
52
|
for (const txn of tx) {
|
|
58
53
|
const { transaction, description } = txn;
|
|
59
54
|
console.log(`Signing: ${description} for ${this.address()}`);
|
|
@@ -62,17 +57,23 @@ class EvmNativeSigner extends sdk_connect_1.PlatformNativeSigner {
|
|
|
62
57
|
...{
|
|
63
58
|
maxFeePerGas,
|
|
64
59
|
maxPriorityFeePerGas,
|
|
65
|
-
|
|
60
|
+
gasLimit,
|
|
61
|
+
nonce: await this._signer.getNonce(),
|
|
66
62
|
},
|
|
67
63
|
};
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
64
|
+
// try {
|
|
65
|
+
// const estimate = await this._signer.provider!.estimateGas(t);
|
|
66
|
+
// t.gasLimit = estimate + estimate / 10n; // Add 10% buffer
|
|
67
|
+
// if (this.opts?.maxGasLimit && t.gasLimit > this.opts?.maxGasLimit) {
|
|
68
|
+
// throw new Error(
|
|
69
|
+
// `Gas limit ${t.gasLimit} exceeds maxGasLimit ${this.opts?.maxGasLimit}`,
|
|
70
|
+
// );
|
|
71
|
+
// }
|
|
72
|
+
// } catch (e) {
|
|
73
|
+
// console.info('Failed to estimate gas for transaction: ', e);
|
|
74
|
+
// console.info('Using gas limit: ', t.gasLimit);
|
|
75
|
+
// }
|
|
73
76
|
signed.push(await this._signer.signTransaction(t));
|
|
74
|
-
// assuming no nonce manager
|
|
75
|
-
nonce += 1;
|
|
76
77
|
}
|
|
77
78
|
return signed;
|
|
78
79
|
}
|
package/dist/cjs/signer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":";;;AAOA,kEAI0C;AAM1C,
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":";;;AAOA,kEAI0C;AAM1C,mCAA8C;AAC9C,+CAA4C;AAE5C,yCAAuC;AAEhC,KAAK,UAAU,YAAY,CAChC,GAAa,EACb,GAA0B,EAC1B,IAGC;IAED,MAAM,MAAM,GACV,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,eAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAEvD,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,yBAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,IAAI,qBAAY,CAAC,MAAM,CAAC,CAAC;IAE/C,OAAO,IAAI,eAAe,CACxB,KAAK,EACL,MAAM,MAAM,CAAC,UAAU,EAAE,EACzB,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAC1B,IAAI,CACL,CAAC;AACJ,CAAC;AApBD,oCAoBC;AAED,4CAA4C;AACrC,KAAK,UAAU,kBAAkB,CACtC,GAAa,EACb,UAAkB;IAElB,OAAO,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC;AALD,gDAKC;AAED,4CAA4C;AACrC,KAAK,UAAU,qBAAqB,CACzC,MAAoB;IAEpB,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACrE,OAAO,YAAY,CAAC,MAAM,CAAC,QAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AALD,sDAKC;AAED,MAAa,eACX,SAAQ,kCAAwC;IAOrC;IAJX,YACE,MAAS,EACT,QAAgB,EAChB,OAAqB,EACZ,IAA+B;QAExC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAFxB,SAAI,GAAJ,IAAI,CAA2B;IAG1C,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAA+B;QACxC,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,oBAAoB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,IAAI,OAAQ,CAAC;QAEpD,IAAI,YAAY,GAAG,WAAc,CAAC,CAAC,UAAU;QAC7C,IAAI,oBAAoB,GAAG,UAAY,CAAC,CAAC,UAAU;QACnD,kCAAkC;QAClC,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,MAAM,EAAE;YAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC,UAAU,EAAE,CAAC;YAC1D,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC;YACpD,oBAAoB;gBAClB,OAAO,CAAC,oBAAoB,IAAI,oBAAoB,CAAC;SACxD;QAED,KAAK,MAAM,GAAG,IAAI,EAAE,EAAE;YACpB,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,QAAQ,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAE7D,MAAM,CAAC,GAAuB;gBAC5B,GAAG,WAAW;gBACd,GAAG;oBACD,YAAY;oBACZ,oBAAoB;oBACpB,QAAQ;oBACR,KAAK,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;iBACrC;aACF,CAAC;YAEF,QAAQ;YACR,kEAAkE;YAClE,8DAA8D;YAC9D,yEAAyE;YACzE,uBAAuB;YACvB,iFAAiF;YACjF,SAAS;YACT,MAAM;YACN,gBAAgB;YAChB,iEAAiE;YACjE,mDAAmD;YACnD,IAAI;YAEJ,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;SACpD;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AApED,0CAoEC;AAED,SAAgB,iBAAiB,CAC/B,MAAiB;IAEjB,OAAO,CACL,IAAA,4BAAc,EAAC,MAAM,CAAC;QACtB,IAAA,6BAAe,EAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,oBAAS;QAC7C,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAChC,CAAC;AACJ,CAAC;AARD,8CAQC;AAED,8GAA8G;AAC9G,SAAS,cAAc,CAAC,KAAU;IAChC,OAAO,CACL,UAAU,IAAI,KAAK;QACnB,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU;QACnC,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU;QACtC,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU;QACpC,OAAO,KAAK,CAAC,YAAY,KAAK,UAAU;QACxC,OAAO,KAAK,CAAC,mBAAmB,KAAK,UAAU;QAC/C,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU;QACvC,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;QAChC,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU;QACvC,OAAO,KAAK,CAAC,eAAe,KAAK,UAAU;QAC3C,OAAO,KAAK,CAAC,eAAe,KAAK,UAAU;QAC3C,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU;QACvC,OAAO,KAAK,CAAC,aAAa,KAAK,UAAU,CAC1C,CAAC;AACJ,CAAC"}
|
package/dist/esm/signer.d.ts
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import type { Network, SignOnlySigner, SignedTx, Signer, UnsignedTransaction } from '@wormhole-foundation/sdk-connect';
|
|
2
2
|
import { PlatformNativeSigner } from '@wormhole-foundation/sdk-connect';
|
|
3
|
-
import type {
|
|
3
|
+
import type { Signer as EthersSigner, Provider } from 'ethers';
|
|
4
4
|
import type { EvmChains } from './types.js';
|
|
5
|
-
export declare function getEvmSigner(
|
|
6
|
-
rpc: Provider;
|
|
7
|
-
key: string;
|
|
8
|
-
}, opts?: {
|
|
5
|
+
export declare function getEvmSigner(rpc: Provider, key: string | EthersSigner, opts?: {
|
|
9
6
|
maxGasLimit?: bigint;
|
|
10
|
-
|
|
7
|
+
chain?: EvmChains;
|
|
8
|
+
}): Promise<Signer>;
|
|
11
9
|
export declare function getEvmSignerForKey(rpc: Provider, privateKey: string): Promise<Signer>;
|
|
12
|
-
export declare function getEvmSignerForSigner(
|
|
10
|
+
export declare function getEvmSignerForSigner(signer: EthersSigner): Promise<Signer>;
|
|
13
11
|
export declare class EvmNativeSigner<N extends Network, C extends EvmChains = EvmChains> extends PlatformNativeSigner<EthersSigner, N, C> implements SignOnlySigner<N, C> {
|
|
14
12
|
readonly opts?: {
|
|
15
13
|
maxGasLimit?: bigint | undefined;
|
package/dist/esm/signer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,MAAM,EACN,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,oBAAoB,EAGrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,MAAM,EACN,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,oBAAoB,EAGrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EACV,MAAM,IAAI,YAAY,EACtB,QAAQ,EAET,MAAM,QAAQ,CAAC;AAGhB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,wBAAsB,YAAY,CAChC,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,MAAM,GAAG,YAAY,EAC1B,IAAI,CAAC,EAAE;IACL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,GACA,OAAO,CAAC,MAAM,CAAC,CAajB;AAGD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAGD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,qBAAa,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,GAAG,SAAS,CAC7E,SAAQ,oBAAoB,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC,CAC/C,YAAW,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;IAM7B,QAAQ,CAAC,IAAI,CAAC;;;gBAHd,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,EACZ,IAAI,CAAC;;iBAA0B;IAK1C,KAAK,IAAI,CAAC;IAIV,OAAO,IAAI,MAAM;IAIX,IAAI,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CA+CjE;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,EACjD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAChB,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,CAM9B"}
|
package/dist/esm/signer.js
CHANGED
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
import { PlatformNativeSigner, chainToPlatform, isNativeSigner, } from '@wormhole-foundation/sdk-connect';
|
|
2
|
-
import { Wallet } from 'ethers';
|
|
2
|
+
import { NonceManager, Wallet } from 'ethers';
|
|
3
3
|
import { EvmPlatform } from './platform.js';
|
|
4
4
|
import { _platform } from './types.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
if (!chain) {
|
|
12
|
-
const [, c] = await EvmPlatform.chainFromRpc(signer.provider);
|
|
13
|
-
chain = c;
|
|
14
|
-
}
|
|
15
|
-
signer = new NonceManager(signer);
|
|
16
|
-
return new EvmNativeSigner(chain, await signer.getAddress(), signer, opts);
|
|
5
|
+
export async function getEvmSigner(rpc, key, opts) {
|
|
6
|
+
const signer = typeof key === 'string' ? new Wallet(key, rpc) : key;
|
|
7
|
+
const chain = opts?.chain ?? (await EvmPlatform.chainFromRpc(rpc))[1];
|
|
8
|
+
const managedSigner = new NonceManager(signer);
|
|
9
|
+
return new EvmNativeSigner(chain, await signer.getAddress(), managedSigner.connect(rpc), opts);
|
|
17
10
|
}
|
|
18
11
|
// Get a SignOnlySigner for the EVM platform
|
|
19
12
|
export async function getEvmSignerForKey(rpc, privateKey) {
|
|
20
|
-
return getEvmSigner(
|
|
13
|
+
return getEvmSigner(rpc, privateKey);
|
|
21
14
|
}
|
|
22
15
|
// Get a SignOnlySigner for the EVM platform
|
|
23
|
-
export async function getEvmSignerForSigner(
|
|
24
|
-
|
|
16
|
+
export async function getEvmSignerForSigner(signer) {
|
|
17
|
+
if (!signer.provider)
|
|
18
|
+
throw new Error('Signer must have a provider');
|
|
19
|
+
return getEvmSigner(signer.provider, signer, {});
|
|
25
20
|
}
|
|
26
21
|
export class EvmNativeSigner extends PlatformNativeSigner {
|
|
27
22
|
opts;
|
|
@@ -37,7 +32,8 @@ export class EvmNativeSigner extends PlatformNativeSigner {
|
|
|
37
32
|
}
|
|
38
33
|
async sign(tx) {
|
|
39
34
|
const signed = [];
|
|
40
|
-
//
|
|
35
|
+
// default gas limit
|
|
36
|
+
const gasLimit = this.opts?.maxGasLimit ?? 500000n;
|
|
41
37
|
let maxFeePerGas = 1500000000n; // 1.5gwei
|
|
42
38
|
let maxPriorityFeePerGas = 100000000n; // 0.1gwei
|
|
43
39
|
// Celo does not support this call
|
|
@@ -47,7 +43,6 @@ export class EvmNativeSigner extends PlatformNativeSigner {
|
|
|
47
43
|
maxPriorityFeePerGas =
|
|
48
44
|
feeData.maxPriorityFeePerGas ?? maxPriorityFeePerGas;
|
|
49
45
|
}
|
|
50
|
-
let nonce = await this._signer.getNonce();
|
|
51
46
|
for (const txn of tx) {
|
|
52
47
|
const { transaction, description } = txn;
|
|
53
48
|
console.log(`Signing: ${description} for ${this.address()}`);
|
|
@@ -56,17 +51,23 @@ export class EvmNativeSigner extends PlatformNativeSigner {
|
|
|
56
51
|
...{
|
|
57
52
|
maxFeePerGas,
|
|
58
53
|
maxPriorityFeePerGas,
|
|
59
|
-
|
|
54
|
+
gasLimit,
|
|
55
|
+
nonce: await this._signer.getNonce(),
|
|
60
56
|
},
|
|
61
57
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
// try {
|
|
59
|
+
// const estimate = await this._signer.provider!.estimateGas(t);
|
|
60
|
+
// t.gasLimit = estimate + estimate / 10n; // Add 10% buffer
|
|
61
|
+
// if (this.opts?.maxGasLimit && t.gasLimit > this.opts?.maxGasLimit) {
|
|
62
|
+
// throw new Error(
|
|
63
|
+
// `Gas limit ${t.gasLimit} exceeds maxGasLimit ${this.opts?.maxGasLimit}`,
|
|
64
|
+
// );
|
|
65
|
+
// }
|
|
66
|
+
// } catch (e) {
|
|
67
|
+
// console.info('Failed to estimate gas for transaction: ', e);
|
|
68
|
+
// console.info('Using gas limit: ', t.gasLimit);
|
|
69
|
+
// }
|
|
67
70
|
signed.push(await this._signer.signTransaction(t));
|
|
68
|
-
// assuming no nonce manager
|
|
69
|
-
nonce += 1;
|
|
70
71
|
}
|
|
71
72
|
return signed;
|
|
72
73
|
}
|
package/dist/esm/signer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,GACf,MAAM,kCAAkC,CAAC;AAM1C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,GACf,MAAM,kCAAkC,CAAC;AAM1C,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAa,EACb,GAA0B,EAC1B,IAGC;IAED,MAAM,MAAM,GACV,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAEvD,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAE/C,OAAO,IAAI,eAAe,CACxB,KAAK,EACL,MAAM,MAAM,CAAC,UAAU,EAAE,EACzB,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAC1B,IAAI,CACL,CAAC;AACJ,CAAC;AAED,4CAA4C;AAC5C,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAa,EACb,UAAkB;IAElB,OAAO,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC;AAED,4CAA4C;AAC5C,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAoB;IAEpB,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACrE,OAAO,YAAY,CAAC,MAAM,CAAC,QAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,OAAO,eACX,SAAQ,oBAAwC;IAOrC;IAJX,YACE,MAAS,EACT,QAAgB,EAChB,OAAqB,EACZ,IAA+B;QAExC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAFxB,SAAI,GAAJ,IAAI,CAA2B;IAG1C,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAA+B;QACxC,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,oBAAoB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,IAAI,OAAQ,CAAC;QAEpD,IAAI,YAAY,GAAG,WAAc,CAAC,CAAC,UAAU;QAC7C,IAAI,oBAAoB,GAAG,UAAY,CAAC,CAAC,UAAU;QACnD,kCAAkC;QAClC,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,MAAM,EAAE;YAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC,UAAU,EAAE,CAAC;YAC1D,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC;YACpD,oBAAoB;gBAClB,OAAO,CAAC,oBAAoB,IAAI,oBAAoB,CAAC;SACxD;QAED,KAAK,MAAM,GAAG,IAAI,EAAE,EAAE;YACpB,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,QAAQ,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAE7D,MAAM,CAAC,GAAuB;gBAC5B,GAAG,WAAW;gBACd,GAAG;oBACD,YAAY;oBACZ,oBAAoB;oBACpB,QAAQ;oBACR,KAAK,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;iBACrC;aACF,CAAC;YAEF,QAAQ;YACR,kEAAkE;YAClE,8DAA8D;YAC9D,yEAAyE;YACzE,uBAAuB;YACvB,iFAAiF;YACjF,SAAS;YACT,MAAM;YACN,gBAAgB;YAChB,iEAAiE;YACjE,mDAAmD;YACnD,IAAI;YAEJ,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;SACpD;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAiB;IAEjB,OAAO,CACL,cAAc,CAAC,MAAM,CAAC;QACtB,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS;QAC7C,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAChC,CAAC;AACJ,CAAC;AAED,8GAA8G;AAC9G,SAAS,cAAc,CAAC,KAAU;IAChC,OAAO,CACL,UAAU,IAAI,KAAK;QACnB,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU;QACnC,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU;QACtC,OAAO,KAAK,CAAC,QAAQ,KAAK,UAAU;QACpC,OAAO,KAAK,CAAC,YAAY,KAAK,UAAU;QACxC,OAAO,KAAK,CAAC,mBAAmB,KAAK,UAAU;QAC/C,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU;QACvC,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU;QAChC,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU;QACvC,OAAO,KAAK,CAAC,eAAe,KAAK,UAAU;QAC3C,OAAO,KAAK,CAAC,eAAe,KAAK,UAAU;QAC3C,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU;QACvC,OAAO,KAAK,CAAC,aAAa,KAAK,UAAU,CAC1C,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wormhole-foundation/sdk-evm",
|
|
3
|
-
"version": "0.5.2
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/wormhole-foundation/connect-sdk.git"
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"nock": "13.3.8"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@wormhole-foundation/sdk-connect": "0.5.2
|
|
64
|
+
"@wormhole-foundation/sdk-connect": "0.5.2",
|
|
65
65
|
"typechain": "^8.2.0",
|
|
66
66
|
"ethers": "^6.5.1",
|
|
67
67
|
"@typechain/ethers-v6": "^0.4.0"
|