@layerzerolabs/lz-corekit-evm 2.3.8

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/CHANGELOG.md ADDED
@@ -0,0 +1,12 @@
1
+ # @layerzerolabs/lz-corekit-evm
2
+
3
+ ## 2.3.8
4
+
5
+ ### Patch Changes
6
+
7
+ - e0f5d04: deploy contracts to Ebi mainnet
8
+ - Updated dependencies [e0f5d04]
9
+ - @layerzerolabs/lz-core@2.3.8
10
+ - @layerzerolabs/tron-utilities@2.3.8
11
+ - @layerzerolabs/lz-utilities@2.3.8
12
+ - @layerzerolabs/lz-aptos-sdk-v1@2.3.8
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # @layerzerolabs/lz-corekit
package/dist/index.cjs ADDED
@@ -0,0 +1,145 @@
1
+ 'use strict';
2
+
3
+ var ethers2 = require('ethers');
4
+ var lzCore = require('@layerzerolabs/lz-core');
5
+
6
+ function _interopNamespace(e) {
7
+ if (e && e.__esModule) return e;
8
+ var n = Object.create(null);
9
+ if (e) {
10
+ Object.keys(e).forEach(function (k) {
11
+ if (k !== 'default') {
12
+ var d = Object.getOwnPropertyDescriptor(e, k);
13
+ Object.defineProperty(n, k, d.get ? d : {
14
+ enumerable: true,
15
+ get: function () { return e[k]; }
16
+ });
17
+ }
18
+ });
19
+ }
20
+ n.default = e;
21
+ return Object.freeze(n);
22
+ }
23
+
24
+ var ethers2__namespace = /*#__PURE__*/_interopNamespace(ethers2);
25
+
26
+ // src/providers/evm.ts
27
+ var EvmProvider = class _EvmProvider {
28
+ constructor(url) {
29
+ this.nativeProvider = new ethers2.ethers.providers.JsonRpcProvider(url);
30
+ }
31
+ static from(source) {
32
+ if (typeof source === "string") {
33
+ return new _EvmProvider(source);
34
+ } else {
35
+ throw new Error("Invalid parameters");
36
+ }
37
+ }
38
+ get native() {
39
+ return this.nativeProvider;
40
+ }
41
+ async getBalance(address) {
42
+ return (await this.nativeProvider.getBalance(address)).toString();
43
+ }
44
+ async getBlock(blockTag) {
45
+ const response = await this.nativeProvider.getBlock(blockTag);
46
+ return lzCore.Block.from(response);
47
+ }
48
+ async getBlockWithTransactions(blockTag) {
49
+ const response = await this.nativeProvider.getBlockWithTransactions(blockTag);
50
+ return lzCore.BlockWithTransactions.from(response);
51
+ }
52
+ async getBlockNumber() {
53
+ return this.nativeProvider.getBlockNumber();
54
+ }
55
+ // eslint-disable-next-line @typescript-eslint/require-await
56
+ async getSlot(_finality) {
57
+ await Promise.resolve();
58
+ throw new Error("Method not implemented.");
59
+ }
60
+ async getBlockTimestamp(blockTag) {
61
+ return this.nativeProvider.getBlock(blockTag).then((block) => block.timestamp);
62
+ }
63
+ async getTransaction(txHash) {
64
+ const response = await this.nativeProvider.getTransaction(txHash);
65
+ return lzCore.TransactionResponse.from(response);
66
+ }
67
+ async getTransactionReceipt(txHash) {
68
+ const response = await this.nativeProvider.getTransactionReceipt(txHash);
69
+ return lzCore.TransactionReceipt.from(response);
70
+ }
71
+ async getTransactionCount(addressOrName, blockTag) {
72
+ return this.nativeProvider.getTransactionCount(addressOrName, blockTag);
73
+ }
74
+ async sendTransaction(transaction, _sendOptions) {
75
+ const stx = transaction.signed;
76
+ const response = await this.nativeProvider.sendTransaction(stx);
77
+ return lzCore.TransactionPending.from(response);
78
+ }
79
+ async sendAndConfirm(transaction, opts) {
80
+ const pending = (await this.sendTransaction(transaction, opts)).pending;
81
+ const response = await pending.wait();
82
+ return lzCore.TransactionReceipt.from(response);
83
+ }
84
+ };
85
+ var EvmSigner = class {
86
+ constructor(signer) {
87
+ this.nativeSigner = signer;
88
+ }
89
+ static from(source, path) {
90
+ if (source instanceof ethers2__namespace.Signer) {
91
+ return new this(source);
92
+ } else if (typeof source === "string" && path === void 0) {
93
+ return new this(new ethers2__namespace.Wallet(source));
94
+ } else if (typeof source === "string" && path !== void 0) {
95
+ return new this(ethers2__namespace.Wallet.fromMnemonic(source, path));
96
+ } else {
97
+ throw new Error("Invalid parameters");
98
+ }
99
+ }
100
+ get native() {
101
+ return this.nativeSigner;
102
+ }
103
+ connect(provider) {
104
+ if (!(provider.native instanceof ethers2__namespace.providers.Provider)) {
105
+ throw new Error("Only ethers.providers.Provider is supported.");
106
+ }
107
+ this.nativeSigner = this.nativeSigner.connect(provider.native);
108
+ return this;
109
+ }
110
+ async getAddress() {
111
+ return this.nativeSigner.getAddress();
112
+ }
113
+ get address() {
114
+ return this.nativeSigner.address;
115
+ }
116
+ async sendAndConfirm(transaction, opts) {
117
+ const pending = await this.sendTransaction(transaction);
118
+ const response = pending.pending;
119
+ const receipt = await response.wait(opts?.confirmations);
120
+ return lzCore.TransactionReceipt.from(receipt);
121
+ }
122
+ async sendTransaction(transaction) {
123
+ const stx = transaction.signed;
124
+ if (this.nativeSigner.provider === void 0) {
125
+ throw new Error("No provider attached to the signer");
126
+ }
127
+ const response = await this.nativeSigner.provider.sendTransaction(stx);
128
+ return lzCore.TransactionPending.from(response);
129
+ }
130
+ async signTransaction(transaction) {
131
+ const tx = transaction.request;
132
+ const populatedTransaction = await this.nativeSigner.populateTransaction(tx);
133
+ const response = await this.nativeSigner.signTransaction(populatedTransaction);
134
+ return lzCore.SignedTransaction.from(response);
135
+ }
136
+ async signBuffer(buffer) {
137
+ const signedMessage = await this.nativeSigner.signMessage(buffer);
138
+ return ethers2__namespace.utils.arrayify(signedMessage);
139
+ }
140
+ };
141
+
142
+ exports.EvmProvider = EvmProvider;
143
+ exports.EvmSigner = EvmSigner;
144
+ //# sourceMappingURL=out.js.map
145
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/providers/evm.ts","../src/signers/evm.ts"],"names":["ethers","SignedTransaction","TransactionPending","TransactionReceipt"],"mappings":";AAAA,SAAS,cAAc;AAEvB;AAAA,EACI;AAAA,EAEA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEA,IAAM,cAAN,MAAM,aAAgC;AAAA,EAGzC,YAAY,KAAa;AACrB,SAAK,iBAAiB,IAAI,OAAO,UAAU,gBAAgB,GAAG;AAAA,EAClE;AAAA,EAIA,OAAO,KAAK,QAA6B;AACrC,QAAI,OAAO,WAAW,UAAU;AAC5B,aAAO,IAAI,aAAY,MAAM;AAAA,IACjC,OAAO;AACH,YAAM,IAAI,MAAM,oBAAoB;AAAA,IACxC;AAAA,EACJ;AAAA,EAEA,IAAI,SAAkB;AAClB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,WAAW,SAAkC;AAC/C,YAAQ,MAAM,KAAK,eAAe,WAAW,OAAO,GAAG,SAAS;AAAA,EACpE;AAAA,EAEA,MAAM,SAAS,UAA2C;AACtD,UAAM,WAAW,MAAM,KAAK,eAAe,SAAS,QAAQ;AAC5D,WAAO,MAAM,KAAK,QAAQ;AAAA,EAC9B;AAAA,EAEA,MAAM,yBAAyB,UAA2D;AACtF,UAAM,WAAW,MAAM,KAAK,eAAe,yBAAyB,QAAQ;AAC5E,WAAO,sBAAsB,KAAK,QAAQ;AAAA,EAC9C;AAAA,EAEA,MAAM,iBAAkC;AACpC,WAAO,KAAK,eAAe,eAAe;AAAA,EAC9C;AAAA;AAAA,EAGA,MAAM,QAAQ,WAAuC;AACjD,UAAM,QAAQ,QAAQ;AACtB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC7C;AAAA,EAEA,MAAM,kBAAkB,UAA4C;AAChE,WAAO,KAAK,eAAe,SAAS,QAAQ,EAAE,KAAK,CAAC,UAAU,MAAM,SAAS;AAAA,EACjF;AAAA,EAEA,MAAM,eAAe,QAA8C;AAC/D,UAAM,WAAW,MAAM,KAAK,eAAe,eAAe,MAAM;AAChE,WAAO,oBAAoB,KAAK,QAAQ;AAAA,EAC5C;AAAA,EAEA,MAAM,sBAAsB,QAA6C;AACrE,UAAM,WAAW,MAAM,KAAK,eAAe,sBAAsB,MAAM;AACvE,WAAO,mBAAmB,KAAK,QAAQ;AAAA,EAC3C;AAAA,EAEA,MAAM,oBACF,eACA,UACe;AACf,WAAO,KAAK,eAAe,oBAAoB,eAAe,QAAQ;AAAA,EAC1E;AAAA,EAEA,MAAM,gBAAgB,aAAgC,cAAoD;AAEtG,UAAM,MAAM,YAAY;AAExB,UAAM,WAAW,MAAM,KAAK,eAAe,gBAAgB,GAAG;AAC9D,WAAO,mBAAmB,KAAK,QAAQ;AAAA,EAC3C;AAAA,EAEA,MAAM,eAAe,aAAgC,MAA4C;AAC7F,UAAM,WAAW,MAAM,KAAK,gBAAgB,aAAa,IAAI,GAAG;AAChE,UAAM,WAAW,MAAM,QAAQ,KAAK;AACpC,WAAO,mBAAmB,KAAK,QAAQ;AAAA,EAC3C;AACJ;;;AC7FA,YAAYA,aAAY;AAExB;AAAA,EAEI,qBAAAC;AAAA,EAEA,sBAAAC;AAAA,EACA,sBAAAC;AAAA,OAEG;AAEA,IAAM,YAAN,MAAkC;AAAA,EAG7B,YAAY,QAAuB;AACvC,SAAK,eAAe;AAAA,EACxB;AAAA,EAMA,OAAO,KAAK,QAAgC,MAAuB;AAC/D,QAAI,kBAAyB,gBAAQ;AACjC,aAAO,IAAI,KAAK,MAAM;AAAA,IAC1B,WAAW,OAAO,WAAW,YAAY,SAAS,QAAW;AACzD,aAAO,IAAI,KAAK,IAAW,eAAO,MAAM,CAAC;AAAA,IAC7C,WAAW,OAAO,WAAW,YAAY,SAAS,QAAW;AACzD,aAAO,IAAI,KAAY,eAAO,aAAa,QAAQ,IAAI,CAAC;AAAA,IAC5D,OAAO;AACH,YAAM,IAAI,MAAM,oBAAoB;AAAA,IACxC;AAAA,EACJ;AAAA,EAEA,IAAI,SAAkB;AAClB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,QAAQ,UAA4B;AAChC,QAAI,EAAE,SAAS,kBAAyB,kBAAU,WAAW;AACzD,YAAM,IAAI,MAAM,8CAA8C;AAAA,IAClE;AAEA,SAAK,eAAe,KAAK,aAAa,QAAQ,SAAS,MAAM;AAC7D,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,aAA8B;AAChC,WAAO,KAAK,aAAa,WAAW;AAAA,EACxC;AAAA,EAEA,IAAI,UAAkB;AAClB,WAAQ,KAAK,aAAqD;AAAA,EACtE;AAAA,EAEA,MAAM,eACF,aACA,MAC2B;AAC3B,UAAM,UAAU,MAAM,KAAK,gBAAgB,WAAW;AACtD,UAAM,WAAW,QAAQ;AACzB,UAAM,UAAU,MAAM,SAAS,KAAK,MAAM,aAAa;AACvD,WAAOA,oBAAmB,KAAK,OAAO;AAAA,EAC1C;AAAA,EAEA,MAAM,gBAAgB,aAA6D;AAE/E,UAAM,MAAM,YAAY;AACxB,QAAI,KAAK,aAAa,aAAa,QAAW;AAC1C,YAAM,IAAI,MAAM,oCAAoC;AAAA,IACxD;AAEA,UAAM,WAAW,MAAM,KAAK,aAAa,SAAS,gBAAgB,GAAG;AACrE,WAAOD,oBAAmB,KAAK,QAAQ;AAAA,EAC3C;AAAA,EAEA,MAAM,gBAAgB,aAA6D;AAE/E,UAAM,KAAK,YAAY;AAEvB,UAAM,uBAAuB,MAAM,KAAK,aAAa,oBAAoB,EAAE;AAC3E,UAAM,WAAW,MAAM,KAAK,aAAa,gBAAgB,oBAAoB;AAC7E,WAAOD,mBAAkB,KAAK,QAAQ;AAAA,EAC1C;AAAA,EAEA,MAAM,WAAW,QAAyC;AACtD,UAAM,gBAAgB,MAAM,KAAK,aAAa,YAAY,MAAM;AAChE,WAAc,cAAM,SAAS,aAAa;AAAA,EAC9C;AACJ","sourcesContent":["import { ethers } from 'ethers'\n\nimport {\n Block,\n BlockTag,\n BlockWithTransactions,\n Finality,\n Provider,\n SignedTransaction,\n TransactionPending,\n TransactionReceipt,\n TransactionResponse,\n} from '@layerzerolabs/lz-core'\n\nexport class EvmProvider implements Provider {\n nativeProvider: ethers.providers.JsonRpcProvider\n\n constructor(url: string) {\n this.nativeProvider = new ethers.providers.JsonRpcProvider(url)\n }\n\n static from(url: string): EvmProvider\n\n static from(source: string): EvmProvider {\n if (typeof source === 'string') {\n return new EvmProvider(source)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n get native(): unknown {\n return this.nativeProvider\n }\n\n async getBalance(address: string): Promise<string> {\n return (await this.nativeProvider.getBalance(address)).toString()\n }\n\n async getBlock(blockTag: string | number): Promise<Block> {\n const response = await this.nativeProvider.getBlock(blockTag)\n return Block.from(response)\n }\n\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n const response = await this.nativeProvider.getBlockWithTransactions(blockTag)\n return BlockWithTransactions.from(response)\n }\n\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider.getBlockNumber()\n }\n\n // eslint-disable-next-line @typescript-eslint/require-await\n async getSlot(_finality?: Finality): Promise<number> {\n await Promise.resolve()\n throw new Error('Method not implemented.')\n }\n\n async getBlockTimestamp(blockTag: string | number): Promise<number> {\n return this.nativeProvider.getBlock(blockTag).then((block) => block.timestamp)\n }\n\n async getTransaction(txHash: string): Promise<TransactionResponse> {\n const response = await this.nativeProvider.getTransaction(txHash)\n return TransactionResponse.from(response)\n }\n\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n const response = await this.nativeProvider.getTransactionReceipt(txHash)\n return TransactionReceipt.from(response)\n }\n\n async getTransactionCount(\n addressOrName: string | Promise<string>,\n blockTag?: BlockTag | Promise<BlockTag>\n ): Promise<number> {\n return this.nativeProvider.getTransactionCount(addressOrName, blockTag)\n }\n\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.sendTransaction>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.sendTransaction(stx)\n return TransactionPending.from(response)\n }\n\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n const pending = (await this.sendTransaction(transaction, opts)).pending as ethers.providers.TransactionResponse\n const response = await pending.wait()\n return TransactionReceipt.from(response)\n }\n}\n","import * as ethers from 'ethers'\n\nimport {\n Provider,\n SignedTransaction,\n Signer,\n TransactionPending,\n TransactionReceipt,\n TransactionRequest,\n} from '@layerzerolabs/lz-core'\n\nexport class EvmSigner implements Signer {\n private nativeSigner: ethers.Signer\n\n private constructor(signer: ethers.Signer) {\n this.nativeSigner = signer\n }\n\n static from(source: ethers.Signer): Signer\n static from(privKey: string): Signer\n static from(mnemonic: string, path: string): Signer\n\n static from(source: ethers.Signer | string, path?: string): Signer {\n if (source instanceof ethers.Signer) {\n return new this(source)\n } else if (typeof source === 'string' && path === undefined) {\n return new this(new ethers.Wallet(source))\n } else if (typeof source === 'string' && path !== undefined) {\n return new this(ethers.Wallet.fromMnemonic(source, path))\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n get native(): unknown {\n return this.nativeSigner\n }\n\n connect(provider: Provider): Signer {\n if (!(provider.native instanceof ethers.providers.Provider)) {\n throw new Error('Only ethers.providers.Provider is supported.')\n }\n\n this.nativeSigner = this.nativeSigner.connect(provider.native)\n return this\n }\n\n async getAddress(): Promise<string> {\n return this.nativeSigner.getAddress()\n }\n\n get address(): string {\n return (this.nativeSigner as ethers.Signer & { address: string }).address\n }\n\n async sendAndConfirm(\n transaction: SignedTransaction,\n opts?: { confirmations?: number }\n ): Promise<TransactionReceipt> {\n const pending = await this.sendTransaction(transaction)\n const response = pending.pending as ethers.providers.TransactionResponse\n const receipt = await response.wait(opts?.confirmations)\n return TransactionReceipt.from(receipt)\n }\n\n async sendTransaction(transaction: SignedTransaction): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<ethers.providers.Provider['sendTransaction']>[0]\n const stx = transaction.signed as NativeSignedTransaction\n if (this.nativeSigner.provider === undefined) {\n throw new Error('No provider attached to the signer')\n }\n\n const response = await this.nativeSigner.provider.sendTransaction(stx)\n return TransactionPending.from(response)\n }\n\n async signTransaction(transaction: TransactionRequest): Promise<SignedTransaction> {\n type NativeTransactionRequest = Parameters<ethers.Signer['populateTransaction']>[0]\n const tx = transaction.request as NativeTransactionRequest\n\n const populatedTransaction = await this.nativeSigner.populateTransaction(tx)\n const response = await this.nativeSigner.signTransaction(populatedTransaction)\n return SignedTransaction.from(response)\n }\n\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n const signedMessage = await this.nativeSigner.signMessage(buffer)\n return ethers.utils.arrayify(signedMessage)\n }\n}\n"]}
@@ -0,0 +1,41 @@
1
+ import * as ethers from 'ethers';
2
+ import { ethers as ethers$1 } from 'ethers';
3
+ import { Provider, Block, BlockWithTransactions, Finality, TransactionResponse, TransactionReceipt, BlockTag, SignedTransaction, TransactionPending, Signer, TransactionRequest } from '@layerzerolabs/lz-core';
4
+
5
+ declare class EvmProvider implements Provider {
6
+ nativeProvider: ethers$1.providers.JsonRpcProvider;
7
+ constructor(url: string);
8
+ static from(url: string): EvmProvider;
9
+ get native(): unknown;
10
+ getBalance(address: string): Promise<string>;
11
+ getBlock(blockTag: string | number): Promise<Block>;
12
+ getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions>;
13
+ getBlockNumber(): Promise<number>;
14
+ getSlot(_finality?: Finality): Promise<number>;
15
+ getBlockTimestamp(blockTag: string | number): Promise<number>;
16
+ getTransaction(txHash: string): Promise<TransactionResponse>;
17
+ getTransactionReceipt(txHash: string): Promise<TransactionReceipt>;
18
+ getTransactionCount(addressOrName: string | Promise<string>, blockTag?: BlockTag | Promise<BlockTag>): Promise<number>;
19
+ sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending>;
20
+ sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt>;
21
+ }
22
+
23
+ declare class EvmSigner implements Signer {
24
+ private nativeSigner;
25
+ private constructor();
26
+ static from(source: ethers.Signer): Signer;
27
+ static from(privKey: string): Signer;
28
+ static from(mnemonic: string, path: string): Signer;
29
+ get native(): unknown;
30
+ connect(provider: Provider): Signer;
31
+ getAddress(): Promise<string>;
32
+ get address(): string;
33
+ sendAndConfirm(transaction: SignedTransaction, opts?: {
34
+ confirmations?: number;
35
+ }): Promise<TransactionReceipt>;
36
+ sendTransaction(transaction: SignedTransaction): Promise<TransactionPending>;
37
+ signTransaction(transaction: TransactionRequest): Promise<SignedTransaction>;
38
+ signBuffer(buffer: Uint8Array): Promise<Uint8Array>;
39
+ }
40
+
41
+ export { EvmProvider, EvmSigner };
@@ -0,0 +1,41 @@
1
+ import * as ethers from 'ethers';
2
+ import { ethers as ethers$1 } from 'ethers';
3
+ import { Provider, Block, BlockWithTransactions, Finality, TransactionResponse, TransactionReceipt, BlockTag, SignedTransaction, TransactionPending, Signer, TransactionRequest } from '@layerzerolabs/lz-core';
4
+
5
+ declare class EvmProvider implements Provider {
6
+ nativeProvider: ethers$1.providers.JsonRpcProvider;
7
+ constructor(url: string);
8
+ static from(url: string): EvmProvider;
9
+ get native(): unknown;
10
+ getBalance(address: string): Promise<string>;
11
+ getBlock(blockTag: string | number): Promise<Block>;
12
+ getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions>;
13
+ getBlockNumber(): Promise<number>;
14
+ getSlot(_finality?: Finality): Promise<number>;
15
+ getBlockTimestamp(blockTag: string | number): Promise<number>;
16
+ getTransaction(txHash: string): Promise<TransactionResponse>;
17
+ getTransactionReceipt(txHash: string): Promise<TransactionReceipt>;
18
+ getTransactionCount(addressOrName: string | Promise<string>, blockTag?: BlockTag | Promise<BlockTag>): Promise<number>;
19
+ sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending>;
20
+ sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt>;
21
+ }
22
+
23
+ declare class EvmSigner implements Signer {
24
+ private nativeSigner;
25
+ private constructor();
26
+ static from(source: ethers.Signer): Signer;
27
+ static from(privKey: string): Signer;
28
+ static from(mnemonic: string, path: string): Signer;
29
+ get native(): unknown;
30
+ connect(provider: Provider): Signer;
31
+ getAddress(): Promise<string>;
32
+ get address(): string;
33
+ sendAndConfirm(transaction: SignedTransaction, opts?: {
34
+ confirmations?: number;
35
+ }): Promise<TransactionReceipt>;
36
+ sendTransaction(transaction: SignedTransaction): Promise<TransactionPending>;
37
+ signTransaction(transaction: TransactionRequest): Promise<SignedTransaction>;
38
+ signBuffer(buffer: Uint8Array): Promise<Uint8Array>;
39
+ }
40
+
41
+ export { EvmProvider, EvmSigner };
package/dist/index.mjs ADDED
@@ -0,0 +1,123 @@
1
+ import * as ethers2 from 'ethers';
2
+ import { ethers } from 'ethers';
3
+ import { Block, BlockWithTransactions, TransactionResponse, TransactionReceipt, TransactionPending, SignedTransaction } from '@layerzerolabs/lz-core';
4
+
5
+ // src/providers/evm.ts
6
+ var EvmProvider = class _EvmProvider {
7
+ constructor(url) {
8
+ this.nativeProvider = new ethers.providers.JsonRpcProvider(url);
9
+ }
10
+ static from(source) {
11
+ if (typeof source === "string") {
12
+ return new _EvmProvider(source);
13
+ } else {
14
+ throw new Error("Invalid parameters");
15
+ }
16
+ }
17
+ get native() {
18
+ return this.nativeProvider;
19
+ }
20
+ async getBalance(address) {
21
+ return (await this.nativeProvider.getBalance(address)).toString();
22
+ }
23
+ async getBlock(blockTag) {
24
+ const response = await this.nativeProvider.getBlock(blockTag);
25
+ return Block.from(response);
26
+ }
27
+ async getBlockWithTransactions(blockTag) {
28
+ const response = await this.nativeProvider.getBlockWithTransactions(blockTag);
29
+ return BlockWithTransactions.from(response);
30
+ }
31
+ async getBlockNumber() {
32
+ return this.nativeProvider.getBlockNumber();
33
+ }
34
+ // eslint-disable-next-line @typescript-eslint/require-await
35
+ async getSlot(_finality) {
36
+ await Promise.resolve();
37
+ throw new Error("Method not implemented.");
38
+ }
39
+ async getBlockTimestamp(blockTag) {
40
+ return this.nativeProvider.getBlock(blockTag).then((block) => block.timestamp);
41
+ }
42
+ async getTransaction(txHash) {
43
+ const response = await this.nativeProvider.getTransaction(txHash);
44
+ return TransactionResponse.from(response);
45
+ }
46
+ async getTransactionReceipt(txHash) {
47
+ const response = await this.nativeProvider.getTransactionReceipt(txHash);
48
+ return TransactionReceipt.from(response);
49
+ }
50
+ async getTransactionCount(addressOrName, blockTag) {
51
+ return this.nativeProvider.getTransactionCount(addressOrName, blockTag);
52
+ }
53
+ async sendTransaction(transaction, _sendOptions) {
54
+ const stx = transaction.signed;
55
+ const response = await this.nativeProvider.sendTransaction(stx);
56
+ return TransactionPending.from(response);
57
+ }
58
+ async sendAndConfirm(transaction, opts) {
59
+ const pending = (await this.sendTransaction(transaction, opts)).pending;
60
+ const response = await pending.wait();
61
+ return TransactionReceipt.from(response);
62
+ }
63
+ };
64
+ var EvmSigner = class {
65
+ constructor(signer) {
66
+ this.nativeSigner = signer;
67
+ }
68
+ static from(source, path) {
69
+ if (source instanceof ethers2.Signer) {
70
+ return new this(source);
71
+ } else if (typeof source === "string" && path === void 0) {
72
+ return new this(new ethers2.Wallet(source));
73
+ } else if (typeof source === "string" && path !== void 0) {
74
+ return new this(ethers2.Wallet.fromMnemonic(source, path));
75
+ } else {
76
+ throw new Error("Invalid parameters");
77
+ }
78
+ }
79
+ get native() {
80
+ return this.nativeSigner;
81
+ }
82
+ connect(provider) {
83
+ if (!(provider.native instanceof ethers2.providers.Provider)) {
84
+ throw new Error("Only ethers.providers.Provider is supported.");
85
+ }
86
+ this.nativeSigner = this.nativeSigner.connect(provider.native);
87
+ return this;
88
+ }
89
+ async getAddress() {
90
+ return this.nativeSigner.getAddress();
91
+ }
92
+ get address() {
93
+ return this.nativeSigner.address;
94
+ }
95
+ async sendAndConfirm(transaction, opts) {
96
+ const pending = await this.sendTransaction(transaction);
97
+ const response = pending.pending;
98
+ const receipt = await response.wait(opts?.confirmations);
99
+ return TransactionReceipt.from(receipt);
100
+ }
101
+ async sendTransaction(transaction) {
102
+ const stx = transaction.signed;
103
+ if (this.nativeSigner.provider === void 0) {
104
+ throw new Error("No provider attached to the signer");
105
+ }
106
+ const response = await this.nativeSigner.provider.sendTransaction(stx);
107
+ return TransactionPending.from(response);
108
+ }
109
+ async signTransaction(transaction) {
110
+ const tx = transaction.request;
111
+ const populatedTransaction = await this.nativeSigner.populateTransaction(tx);
112
+ const response = await this.nativeSigner.signTransaction(populatedTransaction);
113
+ return SignedTransaction.from(response);
114
+ }
115
+ async signBuffer(buffer) {
116
+ const signedMessage = await this.nativeSigner.signMessage(buffer);
117
+ return ethers2.utils.arrayify(signedMessage);
118
+ }
119
+ };
120
+
121
+ export { EvmProvider, EvmSigner };
122
+ //# sourceMappingURL=out.js.map
123
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/providers/evm.ts","../src/signers/evm.ts"],"names":["ethers","SignedTransaction","TransactionPending","TransactionReceipt"],"mappings":"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","sourcesContent":["import { ethers } from 'ethers'\n\nimport {\n Block,\n BlockTag,\n BlockWithTransactions,\n Finality,\n Provider,\n SignedTransaction,\n TransactionPending,\n TransactionReceipt,\n TransactionResponse,\n} from '@layerzerolabs/lz-core'\n\nexport class EvmProvider implements Provider {\n nativeProvider: ethers.providers.JsonRpcProvider\n\n constructor(url: string) {\n this.nativeProvider = new ethers.providers.JsonRpcProvider(url)\n }\n\n static from(url: string): EvmProvider\n\n static from(source: string): EvmProvider {\n if (typeof source === 'string') {\n return new EvmProvider(source)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n get native(): unknown {\n return this.nativeProvider\n }\n\n async getBalance(address: string): Promise<string> {\n return (await this.nativeProvider.getBalance(address)).toString()\n }\n\n async getBlock(blockTag: string | number): Promise<Block> {\n const response = await this.nativeProvider.getBlock(blockTag)\n return Block.from(response)\n }\n\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n const response = await this.nativeProvider.getBlockWithTransactions(blockTag)\n return BlockWithTransactions.from(response)\n }\n\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider.getBlockNumber()\n }\n\n // eslint-disable-next-line @typescript-eslint/require-await\n async getSlot(_finality?: Finality): Promise<number> {\n await Promise.resolve()\n throw new Error('Method not implemented.')\n }\n\n async getBlockTimestamp(blockTag: string | number): Promise<number> {\n return this.nativeProvider.getBlock(blockTag).then((block) => block.timestamp)\n }\n\n async getTransaction(txHash: string): Promise<TransactionResponse> {\n const response = await this.nativeProvider.getTransaction(txHash)\n return TransactionResponse.from(response)\n }\n\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n const response = await this.nativeProvider.getTransactionReceipt(txHash)\n return TransactionReceipt.from(response)\n }\n\n async getTransactionCount(\n addressOrName: string | Promise<string>,\n blockTag?: BlockTag | Promise<BlockTag>\n ): Promise<number> {\n return this.nativeProvider.getTransactionCount(addressOrName, blockTag)\n }\n\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.sendTransaction>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.sendTransaction(stx)\n return TransactionPending.from(response)\n }\n\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n const pending = (await this.sendTransaction(transaction, opts)).pending as ethers.providers.TransactionResponse\n const response = await pending.wait()\n return TransactionReceipt.from(response)\n }\n}\n","import * as ethers from 'ethers'\n\nimport {\n Provider,\n SignedTransaction,\n Signer,\n TransactionPending,\n TransactionReceipt,\n TransactionRequest,\n} from '@layerzerolabs/lz-core'\n\nexport class EvmSigner implements Signer {\n private nativeSigner: ethers.Signer\n\n private constructor(signer: ethers.Signer) {\n this.nativeSigner = signer\n }\n\n static from(source: ethers.Signer): Signer\n static from(privKey: string): Signer\n static from(mnemonic: string, path: string): Signer\n\n static from(source: ethers.Signer | string, path?: string): Signer {\n if (source instanceof ethers.Signer) {\n return new this(source)\n } else if (typeof source === 'string' && path === undefined) {\n return new this(new ethers.Wallet(source))\n } else if (typeof source === 'string' && path !== undefined) {\n return new this(ethers.Wallet.fromMnemonic(source, path))\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n get native(): unknown {\n return this.nativeSigner\n }\n\n connect(provider: Provider): Signer {\n if (!(provider.native instanceof ethers.providers.Provider)) {\n throw new Error('Only ethers.providers.Provider is supported.')\n }\n\n this.nativeSigner = this.nativeSigner.connect(provider.native)\n return this\n }\n\n async getAddress(): Promise<string> {\n return this.nativeSigner.getAddress()\n }\n\n get address(): string {\n return (this.nativeSigner as ethers.Signer & { address: string }).address\n }\n\n async sendAndConfirm(\n transaction: SignedTransaction,\n opts?: { confirmations?: number }\n ): Promise<TransactionReceipt> {\n const pending = await this.sendTransaction(transaction)\n const response = pending.pending as ethers.providers.TransactionResponse\n const receipt = await response.wait(opts?.confirmations)\n return TransactionReceipt.from(receipt)\n }\n\n async sendTransaction(transaction: SignedTransaction): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<ethers.providers.Provider['sendTransaction']>[0]\n const stx = transaction.signed as NativeSignedTransaction\n if (this.nativeSigner.provider === undefined) {\n throw new Error('No provider attached to the signer')\n }\n\n const response = await this.nativeSigner.provider.sendTransaction(stx)\n return TransactionPending.from(response)\n }\n\n async signTransaction(transaction: TransactionRequest): Promise<SignedTransaction> {\n type NativeTransactionRequest = Parameters<ethers.Signer['populateTransaction']>[0]\n const tx = transaction.request as NativeTransactionRequest\n\n const populatedTransaction = await this.nativeSigner.populateTransaction(tx)\n const response = await this.nativeSigner.signTransaction(populatedTransaction)\n return SignedTransaction.from(response)\n }\n\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n const signedMessage = await this.nativeSigner.signMessage(buffer)\n return ethers.utils.arrayify(signedMessage)\n }\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@layerzerolabs/lz-corekit-evm",
3
+ "version": "2.3.8",
4
+ "description": "LayerZero Core Library",
5
+ "license": "BUSL-1.1",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.mjs",
10
+ "require": "./dist/index.cjs"
11
+ },
12
+ "./package.json": "./package.json"
13
+ },
14
+ "main": "./dist/index.cjs",
15
+ "types": "./dist/index.d.ts",
16
+ "files": [
17
+ "dist/**/*"
18
+ ],
19
+ "scripts": {
20
+ "build": "$npm_execpath clean-prebuild && $npm_execpath build-ts",
21
+ "build-ts": "$npm_execpath tsc --noEmit && $npm_execpath tsup",
22
+ "clean": "$npm_execpath clean-prebuild && rimraf .turbo",
23
+ "clean-prebuild": "rimraf dist"
24
+ },
25
+ "dependencies": {
26
+ "@coral-xyz/anchor": "^0.29.0",
27
+ "@layerzerolabs/lz-aptos-sdk-v1": "^2.3.8",
28
+ "@layerzerolabs/lz-core": "^2.3.8",
29
+ "@layerzerolabs/lz-utilities": "^2.3.8",
30
+ "@layerzerolabs/tron-utilities": "^2.3.8",
31
+ "@solana/web3.js": "^1.91.8",
32
+ "aptos": "^1.20.0",
33
+ "bip39": "^3.1.0",
34
+ "ed25519-hd-key": "^1.3.0",
35
+ "ethers": "^5.7.2",
36
+ "mem": "^8.1.1",
37
+ "tiny-invariant": "^1.3.1",
38
+ "tronweb": "^5.3.1"
39
+ },
40
+ "devDependencies": {
41
+ "@jest/globals": "^29.7.0",
42
+ "@layerzerolabs/tronweb-typescript": "^0.0.0",
43
+ "@layerzerolabs/tsup-config-next": "^2.3.8",
44
+ "@layerzerolabs/typescript-config-next": "^2.3.8",
45
+ "@types/jest": "^29.5.10",
46
+ "@types/tronweb": "npm:@layerzerolabs/tronweb-typescript@workspace:^",
47
+ "jest": "^29.7.0",
48
+ "jest-extended": "^4.0.2",
49
+ "rimraf": "^5.0.5",
50
+ "ts-jest": "^29.1.1",
51
+ "tsup": "^8.0.1",
52
+ "typescript": "~5.2.2"
53
+ },
54
+ "publishConfig": {
55
+ "access": "public"
56
+ }
57
+ }