@layerzerolabs/lz-corekit-evm 3.0.11 → 3.0.12
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 +9 -0
- package/dist/index.cjs +10 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +5 -6
- package/dist/index.d.ts +5 -6
- package/dist/index.mjs +10 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @layerzerolabs/lz-corekit-evm
|
|
2
2
|
|
|
3
|
+
## 3.0.12
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 1f77709: endpoints: superposition mainnet and some testnets
|
|
8
|
+
- Updated dependencies [1f77709]
|
|
9
|
+
- @layerzerolabs/lz-core@3.0.12
|
|
10
|
+
- @layerzerolabs/lz-utilities@3.0.12
|
|
11
|
+
|
|
3
12
|
## 3.0.11
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
package/dist/index.cjs
CHANGED
|
@@ -57,11 +57,15 @@ var EvmProvider = class _EvmProvider {
|
|
|
57
57
|
const response = await this.nativeProvider.sendTransaction(stx);
|
|
58
58
|
return lzCore.TransactionPending.from(response);
|
|
59
59
|
}
|
|
60
|
-
async
|
|
61
|
-
const
|
|
62
|
-
const response = await
|
|
60
|
+
async confirmTransaction(pending, _opts) {
|
|
61
|
+
const nativePending = pending.pending;
|
|
62
|
+
const response = await nativePending.wait();
|
|
63
63
|
return lzCore.TransactionReceipt.from(response);
|
|
64
64
|
}
|
|
65
|
+
async sendAndConfirm(transaction, opts) {
|
|
66
|
+
const pending = await this.sendTransaction(transaction, opts);
|
|
67
|
+
return this.confirmTransaction(pending, opts);
|
|
68
|
+
}
|
|
65
69
|
};
|
|
66
70
|
var EvmSigner = class {
|
|
67
71
|
constructor(signer) {
|
|
@@ -70,12 +74,11 @@ var EvmSigner = class {
|
|
|
70
74
|
static from(source, path) {
|
|
71
75
|
if (source instanceof ethers.ethers.Signer) {
|
|
72
76
|
return new this(source);
|
|
73
|
-
}
|
|
77
|
+
}
|
|
78
|
+
if (path === void 0) {
|
|
74
79
|
return new this(new ethers.ethers.Wallet(source));
|
|
75
|
-
} else if (typeof source === "string" && path !== void 0) {
|
|
76
|
-
return new this(ethers.ethers.Wallet.fromMnemonic(source, path));
|
|
77
80
|
} else {
|
|
78
|
-
|
|
81
|
+
return new this(ethers.ethers.Wallet.fromMnemonic(source, path));
|
|
79
82
|
}
|
|
80
83
|
}
|
|
81
84
|
get native() {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +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(public 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 { 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 async buildTransaction(buildTxRequest: unknown): Promise<TransactionRequest> {\n return Promise.reject(new Error('Method not implemented.'))\n }\n}\n"]}
|
|
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(public 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(): ethers.providers.JsonRpcProvider {\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 confirmTransaction(pending: TransactionPending, _opts?: object): Promise<TransactionReceipt> {\n const nativePending = pending.pending as ethers.providers.TransactionResponse\n const response = await nativePending.wait()\n return TransactionReceipt.from(response)\n }\n\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n const pending = await this.sendTransaction(transaction, opts)\n return this.confirmTransaction(pending, opts)\n }\n}\n","import { 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 | string, path?: string): EvmSigner {\n if (source instanceof ethers.Signer) {\n return new this(source)\n }\n if (path === undefined) {\n return new this(new ethers.Wallet(source))\n } else {\n return new this(ethers.Wallet.fromMnemonic(source, path))\n }\n }\n\n get native(): ethers.Signer {\n return this.nativeSigner\n }\n\n connect(provider: Provider): this {\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 async buildTransaction(buildTxRequest: unknown): Promise<TransactionRequest> {\n return Promise.reject(new Error('Method not implemented.'))\n }\n}\n"]}
|
package/dist/index.d.mts
CHANGED
|
@@ -6,7 +6,7 @@ declare class EvmProvider implements Provider {
|
|
|
6
6
|
nativeProvider: ethers.providers.JsonRpcProvider;
|
|
7
7
|
constructor(url: string);
|
|
8
8
|
static from(url: string): EvmProvider;
|
|
9
|
-
get native():
|
|
9
|
+
get native(): ethers.providers.JsonRpcProvider;
|
|
10
10
|
getBalance(address: string): Promise<string>;
|
|
11
11
|
getBlock(blockTag: string | number): Promise<Block>;
|
|
12
12
|
getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions>;
|
|
@@ -17,17 +17,16 @@ declare class EvmProvider implements Provider {
|
|
|
17
17
|
getTransactionReceipt(txHash: string): Promise<TransactionReceipt>;
|
|
18
18
|
getTransactionCount(addressOrName: string | Promise<string>, blockTag?: BlockTag | Promise<BlockTag>): Promise<number>;
|
|
19
19
|
sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending>;
|
|
20
|
+
confirmTransaction(pending: TransactionPending, _opts?: object): Promise<TransactionReceipt>;
|
|
20
21
|
sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt>;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
declare class EvmSigner implements Signer {
|
|
24
25
|
private nativeSigner;
|
|
25
26
|
private constructor();
|
|
26
|
-
static from(source: ethers.Signer):
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
get native(): unknown;
|
|
30
|
-
connect(provider: Provider): Signer;
|
|
27
|
+
static from(source: ethers.Signer | string, path?: string): EvmSigner;
|
|
28
|
+
get native(): ethers.Signer;
|
|
29
|
+
connect(provider: Provider): this;
|
|
31
30
|
getAddress(): Promise<string>;
|
|
32
31
|
get address(): string;
|
|
33
32
|
sendAndConfirm(transaction: SignedTransaction, opts?: {
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ declare class EvmProvider implements Provider {
|
|
|
6
6
|
nativeProvider: ethers.providers.JsonRpcProvider;
|
|
7
7
|
constructor(url: string);
|
|
8
8
|
static from(url: string): EvmProvider;
|
|
9
|
-
get native():
|
|
9
|
+
get native(): ethers.providers.JsonRpcProvider;
|
|
10
10
|
getBalance(address: string): Promise<string>;
|
|
11
11
|
getBlock(blockTag: string | number): Promise<Block>;
|
|
12
12
|
getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions>;
|
|
@@ -17,17 +17,16 @@ declare class EvmProvider implements Provider {
|
|
|
17
17
|
getTransactionReceipt(txHash: string): Promise<TransactionReceipt>;
|
|
18
18
|
getTransactionCount(addressOrName: string | Promise<string>, blockTag?: BlockTag | Promise<BlockTag>): Promise<number>;
|
|
19
19
|
sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending>;
|
|
20
|
+
confirmTransaction(pending: TransactionPending, _opts?: object): Promise<TransactionReceipt>;
|
|
20
21
|
sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt>;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
declare class EvmSigner implements Signer {
|
|
24
25
|
private nativeSigner;
|
|
25
26
|
private constructor();
|
|
26
|
-
static from(source: ethers.Signer):
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
get native(): unknown;
|
|
30
|
-
connect(provider: Provider): Signer;
|
|
27
|
+
static from(source: ethers.Signer | string, path?: string): EvmSigner;
|
|
28
|
+
get native(): ethers.Signer;
|
|
29
|
+
connect(provider: Provider): this;
|
|
31
30
|
getAddress(): Promise<string>;
|
|
32
31
|
get address(): string;
|
|
33
32
|
sendAndConfirm(transaction: SignedTransaction, opts?: {
|
package/dist/index.mjs
CHANGED
|
@@ -55,11 +55,15 @@ var EvmProvider = class _EvmProvider {
|
|
|
55
55
|
const response = await this.nativeProvider.sendTransaction(stx);
|
|
56
56
|
return TransactionPending.from(response);
|
|
57
57
|
}
|
|
58
|
-
async
|
|
59
|
-
const
|
|
60
|
-
const response = await
|
|
58
|
+
async confirmTransaction(pending, _opts) {
|
|
59
|
+
const nativePending = pending.pending;
|
|
60
|
+
const response = await nativePending.wait();
|
|
61
61
|
return TransactionReceipt.from(response);
|
|
62
62
|
}
|
|
63
|
+
async sendAndConfirm(transaction, opts) {
|
|
64
|
+
const pending = await this.sendTransaction(transaction, opts);
|
|
65
|
+
return this.confirmTransaction(pending, opts);
|
|
66
|
+
}
|
|
63
67
|
};
|
|
64
68
|
var EvmSigner = class {
|
|
65
69
|
constructor(signer) {
|
|
@@ -68,12 +72,11 @@ var EvmSigner = class {
|
|
|
68
72
|
static from(source, path) {
|
|
69
73
|
if (source instanceof ethers.Signer) {
|
|
70
74
|
return new this(source);
|
|
71
|
-
}
|
|
75
|
+
}
|
|
76
|
+
if (path === void 0) {
|
|
72
77
|
return new this(new ethers.Wallet(source));
|
|
73
|
-
} else if (typeof source === "string" && path !== void 0) {
|
|
74
|
-
return new this(ethers.Wallet.fromMnemonic(source, path));
|
|
75
78
|
} else {
|
|
76
|
-
|
|
79
|
+
return new this(ethers.Wallet.fromMnemonic(source, path));
|
|
77
80
|
}
|
|
78
81
|
}
|
|
79
82
|
get native() {
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +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(public 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 { 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 async buildTransaction(buildTxRequest: unknown): Promise<TransactionRequest> {\n return Promise.reject(new Error('Method not implemented.'))\n }\n}\n"]}
|
|
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(public 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(): ethers.providers.JsonRpcProvider {\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 confirmTransaction(pending: TransactionPending, _opts?: object): Promise<TransactionReceipt> {\n const nativePending = pending.pending as ethers.providers.TransactionResponse\n const response = await nativePending.wait()\n return TransactionReceipt.from(response)\n }\n\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n const pending = await this.sendTransaction(transaction, opts)\n return this.confirmTransaction(pending, opts)\n }\n}\n","import { 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 | string, path?: string): EvmSigner {\n if (source instanceof ethers.Signer) {\n return new this(source)\n }\n if (path === undefined) {\n return new this(new ethers.Wallet(source))\n } else {\n return new this(ethers.Wallet.fromMnemonic(source, path))\n }\n }\n\n get native(): ethers.Signer {\n return this.nativeSigner\n }\n\n connect(provider: Provider): this {\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 async buildTransaction(buildTxRequest: unknown): Promise<TransactionRequest> {\n return Promise.reject(new Error('Method not implemented.'))\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@layerzerolabs/lz-corekit-evm",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.12",
|
|
4
4
|
"description": "LayerZero Core Library",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"exports": {
|
|
@@ -23,23 +23,15 @@
|
|
|
23
23
|
"clean-prebuild": "rimraf dist"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@layerzerolabs/lz-
|
|
27
|
-
"@layerzerolabs/lz-
|
|
28
|
-
"
|
|
29
|
-
"@layerzerolabs/tron-utilities": "^3.0.11",
|
|
30
|
-
"aptos": "^1.20.0",
|
|
31
|
-
"bip39": "^3.1.0",
|
|
32
|
-
"ed25519-hd-key": "^1.3.0",
|
|
33
|
-
"ethers": "^5.7.2",
|
|
34
|
-
"mem": "^8.1.1",
|
|
35
|
-
"tiny-invariant": "^1.3.1",
|
|
36
|
-
"tronweb": "^5.3.1"
|
|
26
|
+
"@layerzerolabs/lz-core": "^3.0.12",
|
|
27
|
+
"@layerzerolabs/lz-utilities": "^3.0.12",
|
|
28
|
+
"ethers": "^5.7.2"
|
|
37
29
|
},
|
|
38
30
|
"devDependencies": {
|
|
39
31
|
"@jest/globals": "^29.7.0",
|
|
40
32
|
"@layerzerolabs/tronweb-typescript": "^0.0.0",
|
|
41
|
-
"@layerzerolabs/tsup-config-next": "^3.0.
|
|
42
|
-
"@layerzerolabs/typescript-config-next": "^3.0.
|
|
33
|
+
"@layerzerolabs/tsup-config-next": "^3.0.12",
|
|
34
|
+
"@layerzerolabs/typescript-config-next": "^3.0.12",
|
|
43
35
|
"@types/jest": "^29.5.10",
|
|
44
36
|
"@types/tronweb": "npm:@layerzerolabs/tronweb-typescript@workspace:^",
|
|
45
37
|
"jest": "^29.7.0",
|