@layerzerolabs/lz-corekit-aptos 3.0.0 → 3.0.2-initia.0

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 CHANGED
@@ -1,5 +1,27 @@
1
1
  # @layerzerolabs/lz-corekit-aptos
2
2
 
3
+ ## 3.0.2-initia.0
4
+
5
+ ### Patch Changes
6
+
7
+ - latest SDK
8
+ - Updated dependencies
9
+ - @layerzerolabs/lz-core@3.0.2-initia.0
10
+ - @layerzerolabs/tron-utilities@3.0.2-initia.0
11
+ - @layerzerolabs/lz-utilities@3.0.2-initia.0
12
+ - @layerzerolabs/lz-aptos-sdk-v1@3.0.2-initia.0
13
+
14
+ ## 3.0.1
15
+
16
+ ### Patch Changes
17
+
18
+ - a359710: bevm mainnet
19
+ - Updated dependencies [a359710]
20
+ - @layerzerolabs/lz-core@3.0.1
21
+ - @layerzerolabs/tron-utilities@3.0.1
22
+ - @layerzerolabs/lz-utilities@3.0.1
23
+ - @layerzerolabs/lz-aptos-sdk-v1@3.0.1
24
+
3
25
  ## 3.0.0
4
26
 
5
27
  ### Major Changes
@@ -14,6 +36,72 @@
14
36
  - @layerzerolabs/lz-utilities@3.0.0
15
37
  - @layerzerolabs/lz-aptos-sdk-v1@3.0.0
16
38
 
39
+ ## 2.3.45-initia-oft.5
40
+
41
+ ### Patch Changes
42
+
43
+ - Build Initia,aptos,movement,bsc snapshot images with newest images
44
+ - Updated dependencies
45
+ - @layerzerolabs/lz-core@2.3.45-initia-oft.5
46
+ - @layerzerolabs/tron-utilities@2.3.45-initia-oft.5
47
+ - @layerzerolabs/lz-utilities@2.3.45-initia-oft.5
48
+ - @layerzerolabs/lz-aptos-sdk-v1@2.3.45-initia-oft.5
49
+
50
+ ## 2.3.45-initia-oft.4
51
+
52
+ ### Patch Changes
53
+
54
+ - Build initia images with newest contracts
55
+ - Updated dependencies
56
+ - @layerzerolabs/lz-core@2.3.45-initia-oft.4
57
+ - @layerzerolabs/tron-utilities@2.3.45-initia-oft.4
58
+ - @layerzerolabs/lz-utilities@2.3.45-initia-oft.4
59
+ - @layerzerolabs/lz-aptos-sdk-v1@2.3.45-initia-oft.4
60
+
61
+ ## 2.3.45-initia-oft.3
62
+
63
+ ### Patch Changes
64
+
65
+ - Fix Aptos OFT SDK to fit newest contracts
66
+ - Updated dependencies
67
+ - @layerzerolabs/lz-core@2.3.45-initia-oft.3
68
+ - @layerzerolabs/tron-utilities@2.3.45-initia-oft.3
69
+ - @layerzerolabs/lz-utilities@2.3.45-initia-oft.3
70
+ - @layerzerolabs/lz-aptos-sdk-v1@2.3.45-initia-oft.3
71
+
72
+ ## 2.3.45-initia-oft.2
73
+
74
+ ### Patch Changes
75
+
76
+ - Fix bug in Initia OFT sdk
77
+ - Updated dependencies
78
+ - @layerzerolabs/lz-core@2.3.45-initia-oft.2
79
+ - @layerzerolabs/tron-utilities@2.3.45-initia-oft.2
80
+ - @layerzerolabs/lz-utilities@2.3.45-initia-oft.2
81
+ - @layerzerolabs/lz-aptos-sdk-v1@2.3.45-initia-oft.2
82
+
83
+ ## 2.3.45-initia-oft.1
84
+
85
+ ### Patch Changes
86
+
87
+ - Build new initia images with newest contracts
88
+ - Updated dependencies
89
+ - @layerzerolabs/lz-core@2.3.45-initia-oft.1
90
+ - @layerzerolabs/tron-utilities@2.3.45-initia-oft.1
91
+ - @layerzerolabs/lz-utilities@2.3.45-initia-oft.1
92
+ - @layerzerolabs/lz-aptos-sdk-v1@2.3.45-initia-oft.1
93
+
94
+ ## 2.3.45-initia-oft.0
95
+
96
+ ### Patch Changes
97
+
98
+ - Build new initia images with testnet deployments
99
+ - Updated dependencies
100
+ - @layerzerolabs/lz-core@2.3.45-initia-oft.0
101
+ - @layerzerolabs/tron-utilities@2.3.45-initia-oft.0
102
+ - @layerzerolabs/lz-utilities@2.3.45-initia-oft.0
103
+ - @layerzerolabs/lz-aptos-sdk-v1@2.3.45-initia-oft.0
104
+
17
105
  ## 2.3.44
18
106
 
19
107
  ### Patch Changes
package/dist/index.cjs CHANGED
@@ -27,13 +27,15 @@ var aptos2__namespace = /*#__PURE__*/_interopNamespace(aptos2);
27
27
 
28
28
  // src/providers/aptos.ts
29
29
  var AptosProvider = class _AptosProvider {
30
- constructor(url) {
30
+ constructor(url, faucet, indexer) {
31
31
  this.url = url;
32
+ this.faucet = faucet;
33
+ this.indexer = indexer;
32
34
  this.nativeProvider = new aptos2__namespace.AptosClient(url);
33
35
  }
34
- static from(source) {
36
+ static from(source, faucet, indexer) {
35
37
  if (typeof source === "string") {
36
- return new _AptosProvider(source);
38
+ return new _AptosProvider(source, faucet, indexer);
37
39
  } else {
38
40
  throw new Error("Invalid parameters");
39
41
  }
@@ -124,6 +126,10 @@ var AptosProvider = class _AptosProvider {
124
126
  async sendAndConfirm(transaction, opts) {
125
127
  const pending = (await this.sendTransaction(transaction, opts)).pending;
126
128
  const response = await this.nativeProvider.waitForTransactionWithResult(pending.hash);
129
+ const userTransaction = response;
130
+ if (!userTransaction.success) {
131
+ throw new Error(`aptos transaction failed ,vm_status: ${userTransaction.vm_status}`);
132
+ }
127
133
  return lzCore.TransactionReceipt.from(response);
128
134
  }
129
135
  };
@@ -186,6 +192,9 @@ var AptosSigner = class {
186
192
  const rv = this.nativeSigner.signBuffer(Buffer.from(buffer)).toUint8Array();
187
193
  return Promise.resolve(rv);
188
194
  }
195
+ async buildTransaction(buildTxRequest) {
196
+ return Promise.reject(new Error("Method not implemented."));
197
+ }
189
198
  };
190
199
 
191
200
  exports.AptosProvider = AptosProvider;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/providers/aptos.ts","../src/signers/aptos.ts"],"names":["aptos","SignedTransaction"],"mappings":"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","sourcesContent":["import * as aptos from 'aptos'\nimport { BigNumber } 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'\nimport { isHexString } from '@layerzerolabs/lz-utilities'\n\nexport class AptosProvider implements Provider {\n readonly nativeProvider: aptos.AptosClient\n\n private constructor(public url: string) {\n this.nativeProvider = new aptos.AptosClient(url)\n }\n\n static from(url: string): AptosProvider\n static from(source: string): AptosProvider {\n if (typeof source === 'string') {\n return new AptosProvider(source)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n get native(): aptos.AptosClient {\n return this.nativeProvider\n }\n\n async getBalance(address: string): Promise<string> {\n if (!isHexString(address)) {\n throw new Error('Invalid Aptos address')\n }\n\n const aptosCoin = '0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>'\n const resources = await this.nativeProvider.getAccountResources(address)\n const accountResource = resources.find((r) => r.type === aptosCoin)\n if (accountResource === undefined) {\n throw new Error('Account resource not found')\n }\n\n const { coin } = accountResource.data as { coin: { value: string } }\n return BigInt(coin.value).toString()\n }\n\n async getBlock(blockTag: string | number): Promise<Block> {\n let blockNumber = 0\n if (typeof blockTag === 'number') {\n blockNumber = blockTag\n } else if (blockTag === 'latest') {\n blockNumber = await this.nativeProvider\n .getLedgerInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.block_height).toNumber())\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.getBlockByHeight(blockNumber)\n return Block.from(response)\n }\n\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n let blockNumber = 0\n if (typeof blockTag === 'number') {\n blockNumber = blockTag\n } else if (blockTag === 'latest') {\n blockNumber = await this.getBlockNumber()\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.getBlockByHeight(blockNumber, true)\n return BlockWithTransactions.from(response)\n }\n\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider\n .getLedgerInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.block_height).toNumber())\n }\n\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 if (typeof blockTag === 'number') {\n return this.nativeProvider\n .getBlockByHeight(blockTag)\n .then((block) => BigNumber.from(block.block_timestamp).toNumber())\n } else if (blockTag === 'latest') {\n return this.nativeProvider\n .getLedgerInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.ledger_timestamp).toNumber())\n } else {\n throw new Error('Invalid blockTag')\n }\n }\n\n async getTransaction(txHash: string): Promise<TransactionResponse> {\n if (!isHexString(txHash)) {\n throw new Error('Invalid Aptos transaction hash')\n }\n\n const response = await this.nativeProvider.getTransactionByHash(txHash)\n return TransactionResponse.from(response)\n }\n\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n if (!isHexString(txHash)) {\n throw new Error('Invalid Aptos transaction hash')\n }\n\n const response = await this.nativeProvider.getTransactionByHash(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 const _addressOrName = await Promise.resolve(addressOrName)\n if (!isHexString(_addressOrName)) {\n throw new Error('Invalid Aptos transaction hash')\n }\n\n const response = await this.nativeProvider.getAccount(_addressOrName)\n return parseInt(response.sequence_number)\n }\n\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.submitSignedBCSTransaction>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.submitSignedBCSTransaction(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 aptos.Types.PendingTransaction\n const response = await this.nativeProvider.waitForTransactionWithResult(pending.hash)\n return TransactionReceipt.from(response)\n }\n}\n","import * as aptos from 'aptos'\n\nimport {\n Provider,\n SignedTransaction,\n Signer,\n TransactionPending,\n TransactionReceipt,\n TransactionRequest,\n} from '@layerzerolabs/lz-core'\nimport { trim0x } from '@layerzerolabs/lz-utilities'\n\nimport { AptosProvider } from '../providers'\n\nexport class AptosSigner implements Signer {\n public nativeSigner: aptos.AptosAccount\n public provider: AptosProvider | undefined\n\n private constructor(signer: aptos.AptosAccount) {\n this.nativeSigner = signer\n }\n\n static from(signer: aptos.AptosAccount): Signer\n static from(privKey: string): Signer\n /**\n *\n * @param mnemonic\n * @param path e.g. m/44'/637'/0'/0'/0'\n */\n static from(mnemonic: string, path: string): Signer\n\n static from(source: string | aptos.AptosAccount, path?: string): Signer {\n if (source instanceof aptos.AptosAccount) {\n return new this(source)\n } else if (typeof source === 'string' && path === undefined) {\n const signer = new aptos.AptosAccount(Buffer.from(trim0x(source)))\n return new this(signer)\n } else if (typeof source === 'string' && path !== undefined) {\n if (path.startsWith('m/')) {\n const signer = aptos.AptosAccount.fromDerivePath(path, source)\n return new this(signer)\n }\n }\n throw new Error('Invalid parameters')\n }\n\n get native(): aptos.AptosAccount {\n return this.nativeSigner\n }\n\n connect(provider: Provider): Signer {\n if (!(provider instanceof AptosProvider)) {\n throw new Error('Only aptos.AptosClient is supported.')\n }\n\n this.provider = provider\n return this\n }\n\n async getAddress(): Promise<string> {\n return Promise.resolve(this.nativeSigner.address().toString())\n }\n\n get address(): string {\n return this.nativeSigner.address().toString()\n }\n\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n\n return this.provider.sendAndConfirm(transaction, opts)\n }\n\n async sendTransaction(transaction: SignedTransaction, sendOptions?: object): Promise<TransactionPending> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n\n return this.provider.sendTransaction(transaction, sendOptions)\n }\n\n async signTransaction(transaction: TransactionRequest): Promise<SignedTransaction> {\n const nativeProvider = this.provider?.native\n if (nativeProvider === undefined) {\n throw new Error('Connect the native provider first with AptosSigner.connect()')\n }\n\n type NativeTransactionRequest = Parameters<aptos.AptosClient['signTransaction']>[1]\n const tx = transaction.request as NativeTransactionRequest\n\n // signTransaction is an offline operation\n const response = await nativeProvider.signTransaction(this.nativeSigner, tx)\n return SignedTransaction.from(response)\n }\n\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n const rv = this.nativeSigner.signBuffer(Buffer.from(buffer)).toUint8Array()\n return Promise.resolve(rv)\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/providers/aptos.ts","../src/signers/aptos.ts"],"names":["aptos","SignedTransaction"],"mappings":"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","sourcesContent":["import * as aptos from 'aptos'\nimport { BigNumber } 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'\nimport { isHexString } from '@layerzerolabs/lz-utilities'\n\nexport class AptosProvider implements Provider {\n readonly nativeProvider: aptos.AptosClient\n\n private constructor(\n public readonly url: string,\n public readonly faucet?: string,\n public readonly indexer?: string\n ) {\n this.nativeProvider = new aptos.AptosClient(url)\n }\n static from(source: string, faucet?: string, indexer?: string): AptosProvider {\n if (typeof source === 'string') {\n return new AptosProvider(source, faucet, indexer)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n get native(): aptos.AptosClient {\n return this.nativeProvider\n }\n\n async getBalance(address: string): Promise<string> {\n if (!isHexString(address)) {\n throw new Error('Invalid Aptos address')\n }\n\n const aptosCoin = '0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>'\n const resources = await this.nativeProvider.getAccountResources(address)\n const accountResource = resources.find((r) => r.type === aptosCoin)\n if (accountResource === undefined) {\n throw new Error('Account resource not found')\n }\n\n const { coin } = accountResource.data as { coin: { value: string } }\n return BigInt(coin.value).toString()\n }\n\n async getBlock(blockTag: string | number): Promise<Block> {\n let blockNumber = 0\n if (typeof blockTag === 'number') {\n blockNumber = blockTag\n } else if (blockTag === 'latest') {\n blockNumber = await this.nativeProvider\n .getLedgerInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.block_height).toNumber())\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.getBlockByHeight(blockNumber)\n return Block.from(response)\n }\n\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n let blockNumber = 0\n if (typeof blockTag === 'number') {\n blockNumber = blockTag\n } else if (blockTag === 'latest') {\n blockNumber = await this.getBlockNumber()\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.getBlockByHeight(blockNumber, true)\n return BlockWithTransactions.from(response)\n }\n\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider\n .getLedgerInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.block_height).toNumber())\n }\n\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 if (typeof blockTag === 'number') {\n return this.nativeProvider\n .getBlockByHeight(blockTag)\n .then((block) => BigNumber.from(block.block_timestamp).toNumber())\n } else if (blockTag === 'latest') {\n return this.nativeProvider\n .getLedgerInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.ledger_timestamp).toNumber())\n } else {\n throw new Error('Invalid blockTag')\n }\n }\n\n async getTransaction(txHash: string): Promise<TransactionResponse> {\n if (!isHexString(txHash)) {\n throw new Error('Invalid Aptos transaction hash')\n }\n\n const response = await this.nativeProvider.getTransactionByHash(txHash)\n return TransactionResponse.from(response)\n }\n\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n if (!isHexString(txHash)) {\n throw new Error('Invalid Aptos transaction hash')\n }\n\n const response = await this.nativeProvider.getTransactionByHash(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 const _addressOrName = await Promise.resolve(addressOrName)\n if (!isHexString(_addressOrName)) {\n throw new Error('Invalid Aptos transaction hash')\n }\n\n const response = await this.nativeProvider.getAccount(_addressOrName)\n return parseInt(response.sequence_number)\n }\n\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.submitSignedBCSTransaction>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.submitSignedBCSTransaction(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 aptos.Types.PendingTransaction\n const response = await this.nativeProvider.waitForTransactionWithResult(pending.hash)\n const userTransaction = response as aptos.Types.UserTransaction\n if (!userTransaction.success) {\n throw new Error(`aptos transaction failed ,vm_status: ${userTransaction.vm_status}`)\n }\n return TransactionReceipt.from(response)\n }\n}\n","import * as aptos from 'aptos'\n\nimport {\n Provider,\n SignedTransaction,\n Signer,\n TransactionPending,\n TransactionReceipt,\n TransactionRequest,\n} from '@layerzerolabs/lz-core'\nimport { trim0x } from '@layerzerolabs/lz-utilities'\n\nimport { AptosProvider } from '../providers'\n\nexport class AptosSigner implements Signer {\n public nativeSigner: aptos.AptosAccount\n public provider: AptosProvider | undefined\n\n private constructor(signer: aptos.AptosAccount) {\n this.nativeSigner = signer\n }\n\n static from(signer: aptos.AptosAccount): Signer\n static from(privKey: string): Signer\n /**\n *\n * @param mnemonic\n * @param path e.g. m/44'/637'/0'/0'/0'\n */\n static from(mnemonic: string, path: string): Signer\n\n static from(source: string | aptos.AptosAccount, path?: string): Signer {\n if (source instanceof aptos.AptosAccount) {\n return new this(source)\n } else if (typeof source === 'string' && path === undefined) {\n const signer = new aptos.AptosAccount(Buffer.from(trim0x(source)))\n return new this(signer)\n } else if (typeof source === 'string' && path !== undefined) {\n if (path.startsWith('m/')) {\n const signer = aptos.AptosAccount.fromDerivePath(path, source)\n return new this(signer)\n }\n }\n throw new Error('Invalid parameters')\n }\n\n get native(): aptos.AptosAccount {\n return this.nativeSigner\n }\n\n connect(provider: Provider): Signer {\n if (!(provider instanceof AptosProvider)) {\n throw new Error('Only aptos.AptosClient is supported.')\n }\n\n this.provider = provider\n return this\n }\n\n async getAddress(): Promise<string> {\n return Promise.resolve(this.nativeSigner.address().toString())\n }\n\n get address(): string {\n return this.nativeSigner.address().toString()\n }\n\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n\n return this.provider.sendAndConfirm(transaction, opts)\n }\n\n async sendTransaction(transaction: SignedTransaction, sendOptions?: object): Promise<TransactionPending> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n\n return this.provider.sendTransaction(transaction, sendOptions)\n }\n\n async signTransaction(transaction: TransactionRequest): Promise<SignedTransaction> {\n const nativeProvider = this.provider?.native\n if (nativeProvider === undefined) {\n throw new Error('Connect the native provider first with AptosSigner.connect()')\n }\n\n type NativeTransactionRequest = Parameters<aptos.AptosClient['signTransaction']>[1]\n const tx = transaction.request as NativeTransactionRequest\n\n // signTransaction is an offline operation\n const response = await nativeProvider.signTransaction(this.nativeSigner, tx)\n return SignedTransaction.from(response)\n }\n\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n const rv = this.nativeSigner.signBuffer(Buffer.from(buffer)).toUint8Array()\n return Promise.resolve(rv)\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
@@ -2,10 +2,12 @@ import * as aptos from 'aptos';
2
2
  import { Provider, Block, BlockWithTransactions, Finality, TransactionResponse, TransactionReceipt, BlockTag, SignedTransaction, TransactionPending, Signer, TransactionRequest } from '@layerzerolabs/lz-core';
3
3
 
4
4
  declare class AptosProvider implements Provider {
5
- url: string;
5
+ readonly url: string;
6
+ readonly faucet?: string | undefined;
7
+ readonly indexer?: string | undefined;
6
8
  readonly nativeProvider: aptos.AptosClient;
7
9
  private constructor();
8
- static from(url: string): AptosProvider;
10
+ static from(source: string, faucet?: string, indexer?: string): AptosProvider;
9
11
  get native(): aptos.AptosClient;
10
12
  getBalance(address: string): Promise<string>;
11
13
  getBlock(blockTag: string | number): Promise<Block>;
@@ -40,6 +42,7 @@ declare class AptosSigner implements Signer {
40
42
  sendTransaction(transaction: SignedTransaction, sendOptions?: object): Promise<TransactionPending>;
41
43
  signTransaction(transaction: TransactionRequest): Promise<SignedTransaction>;
42
44
  signBuffer(buffer: Uint8Array): Promise<Uint8Array>;
45
+ buildTransaction(buildTxRequest: unknown): Promise<TransactionRequest>;
43
46
  }
44
47
 
45
48
  export { AptosProvider, AptosSigner };
package/dist/index.d.ts CHANGED
@@ -2,10 +2,12 @@ import * as aptos from 'aptos';
2
2
  import { Provider, Block, BlockWithTransactions, Finality, TransactionResponse, TransactionReceipt, BlockTag, SignedTransaction, TransactionPending, Signer, TransactionRequest } from '@layerzerolabs/lz-core';
3
3
 
4
4
  declare class AptosProvider implements Provider {
5
- url: string;
5
+ readonly url: string;
6
+ readonly faucet?: string | undefined;
7
+ readonly indexer?: string | undefined;
6
8
  readonly nativeProvider: aptos.AptosClient;
7
9
  private constructor();
8
- static from(url: string): AptosProvider;
10
+ static from(source: string, faucet?: string, indexer?: string): AptosProvider;
9
11
  get native(): aptos.AptosClient;
10
12
  getBalance(address: string): Promise<string>;
11
13
  getBlock(blockTag: string | number): Promise<Block>;
@@ -40,6 +42,7 @@ declare class AptosSigner implements Signer {
40
42
  sendTransaction(transaction: SignedTransaction, sendOptions?: object): Promise<TransactionPending>;
41
43
  signTransaction(transaction: TransactionRequest): Promise<SignedTransaction>;
42
44
  signBuffer(buffer: Uint8Array): Promise<Uint8Array>;
45
+ buildTransaction(buildTxRequest: unknown): Promise<TransactionRequest>;
43
46
  }
44
47
 
45
48
  export { AptosProvider, AptosSigner };
package/dist/index.mjs CHANGED
@@ -5,13 +5,15 @@ import { isHexString, trim0x } from '@layerzerolabs/lz-utilities';
5
5
 
6
6
  // src/providers/aptos.ts
7
7
  var AptosProvider = class _AptosProvider {
8
- constructor(url) {
8
+ constructor(url, faucet, indexer) {
9
9
  this.url = url;
10
+ this.faucet = faucet;
11
+ this.indexer = indexer;
10
12
  this.nativeProvider = new aptos2.AptosClient(url);
11
13
  }
12
- static from(source) {
14
+ static from(source, faucet, indexer) {
13
15
  if (typeof source === "string") {
14
- return new _AptosProvider(source);
16
+ return new _AptosProvider(source, faucet, indexer);
15
17
  } else {
16
18
  throw new Error("Invalid parameters");
17
19
  }
@@ -102,6 +104,10 @@ var AptosProvider = class _AptosProvider {
102
104
  async sendAndConfirm(transaction, opts) {
103
105
  const pending = (await this.sendTransaction(transaction, opts)).pending;
104
106
  const response = await this.nativeProvider.waitForTransactionWithResult(pending.hash);
107
+ const userTransaction = response;
108
+ if (!userTransaction.success) {
109
+ throw new Error(`aptos transaction failed ,vm_status: ${userTransaction.vm_status}`);
110
+ }
105
111
  return TransactionReceipt.from(response);
106
112
  }
107
113
  };
@@ -164,6 +170,9 @@ var AptosSigner = class {
164
170
  const rv = this.nativeSigner.signBuffer(Buffer.from(buffer)).toUint8Array();
165
171
  return Promise.resolve(rv);
166
172
  }
173
+ async buildTransaction(buildTxRequest) {
174
+ return Promise.reject(new Error("Method not implemented."));
175
+ }
167
176
  };
168
177
 
169
178
  export { AptosProvider, AptosSigner };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/providers/aptos.ts","../src/signers/aptos.ts"],"names":["aptos","SignedTransaction"],"mappings":"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","sourcesContent":["import * as aptos from 'aptos'\nimport { BigNumber } 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'\nimport { isHexString } from '@layerzerolabs/lz-utilities'\n\nexport class AptosProvider implements Provider {\n readonly nativeProvider: aptos.AptosClient\n\n private constructor(public url: string) {\n this.nativeProvider = new aptos.AptosClient(url)\n }\n\n static from(url: string): AptosProvider\n static from(source: string): AptosProvider {\n if (typeof source === 'string') {\n return new AptosProvider(source)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n get native(): aptos.AptosClient {\n return this.nativeProvider\n }\n\n async getBalance(address: string): Promise<string> {\n if (!isHexString(address)) {\n throw new Error('Invalid Aptos address')\n }\n\n const aptosCoin = '0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>'\n const resources = await this.nativeProvider.getAccountResources(address)\n const accountResource = resources.find((r) => r.type === aptosCoin)\n if (accountResource === undefined) {\n throw new Error('Account resource not found')\n }\n\n const { coin } = accountResource.data as { coin: { value: string } }\n return BigInt(coin.value).toString()\n }\n\n async getBlock(blockTag: string | number): Promise<Block> {\n let blockNumber = 0\n if (typeof blockTag === 'number') {\n blockNumber = blockTag\n } else if (blockTag === 'latest') {\n blockNumber = await this.nativeProvider\n .getLedgerInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.block_height).toNumber())\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.getBlockByHeight(blockNumber)\n return Block.from(response)\n }\n\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n let blockNumber = 0\n if (typeof blockTag === 'number') {\n blockNumber = blockTag\n } else if (blockTag === 'latest') {\n blockNumber = await this.getBlockNumber()\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.getBlockByHeight(blockNumber, true)\n return BlockWithTransactions.from(response)\n }\n\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider\n .getLedgerInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.block_height).toNumber())\n }\n\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 if (typeof blockTag === 'number') {\n return this.nativeProvider\n .getBlockByHeight(blockTag)\n .then((block) => BigNumber.from(block.block_timestamp).toNumber())\n } else if (blockTag === 'latest') {\n return this.nativeProvider\n .getLedgerInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.ledger_timestamp).toNumber())\n } else {\n throw new Error('Invalid blockTag')\n }\n }\n\n async getTransaction(txHash: string): Promise<TransactionResponse> {\n if (!isHexString(txHash)) {\n throw new Error('Invalid Aptos transaction hash')\n }\n\n const response = await this.nativeProvider.getTransactionByHash(txHash)\n return TransactionResponse.from(response)\n }\n\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n if (!isHexString(txHash)) {\n throw new Error('Invalid Aptos transaction hash')\n }\n\n const response = await this.nativeProvider.getTransactionByHash(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 const _addressOrName = await Promise.resolve(addressOrName)\n if (!isHexString(_addressOrName)) {\n throw new Error('Invalid Aptos transaction hash')\n }\n\n const response = await this.nativeProvider.getAccount(_addressOrName)\n return parseInt(response.sequence_number)\n }\n\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.submitSignedBCSTransaction>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.submitSignedBCSTransaction(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 aptos.Types.PendingTransaction\n const response = await this.nativeProvider.waitForTransactionWithResult(pending.hash)\n return TransactionReceipt.from(response)\n }\n}\n","import * as aptos from 'aptos'\n\nimport {\n Provider,\n SignedTransaction,\n Signer,\n TransactionPending,\n TransactionReceipt,\n TransactionRequest,\n} from '@layerzerolabs/lz-core'\nimport { trim0x } from '@layerzerolabs/lz-utilities'\n\nimport { AptosProvider } from '../providers'\n\nexport class AptosSigner implements Signer {\n public nativeSigner: aptos.AptosAccount\n public provider: AptosProvider | undefined\n\n private constructor(signer: aptos.AptosAccount) {\n this.nativeSigner = signer\n }\n\n static from(signer: aptos.AptosAccount): Signer\n static from(privKey: string): Signer\n /**\n *\n * @param mnemonic\n * @param path e.g. m/44'/637'/0'/0'/0'\n */\n static from(mnemonic: string, path: string): Signer\n\n static from(source: string | aptos.AptosAccount, path?: string): Signer {\n if (source instanceof aptos.AptosAccount) {\n return new this(source)\n } else if (typeof source === 'string' && path === undefined) {\n const signer = new aptos.AptosAccount(Buffer.from(trim0x(source)))\n return new this(signer)\n } else if (typeof source === 'string' && path !== undefined) {\n if (path.startsWith('m/')) {\n const signer = aptos.AptosAccount.fromDerivePath(path, source)\n return new this(signer)\n }\n }\n throw new Error('Invalid parameters')\n }\n\n get native(): aptos.AptosAccount {\n return this.nativeSigner\n }\n\n connect(provider: Provider): Signer {\n if (!(provider instanceof AptosProvider)) {\n throw new Error('Only aptos.AptosClient is supported.')\n }\n\n this.provider = provider\n return this\n }\n\n async getAddress(): Promise<string> {\n return Promise.resolve(this.nativeSigner.address().toString())\n }\n\n get address(): string {\n return this.nativeSigner.address().toString()\n }\n\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n\n return this.provider.sendAndConfirm(transaction, opts)\n }\n\n async sendTransaction(transaction: SignedTransaction, sendOptions?: object): Promise<TransactionPending> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n\n return this.provider.sendTransaction(transaction, sendOptions)\n }\n\n async signTransaction(transaction: TransactionRequest): Promise<SignedTransaction> {\n const nativeProvider = this.provider?.native\n if (nativeProvider === undefined) {\n throw new Error('Connect the native provider first with AptosSigner.connect()')\n }\n\n type NativeTransactionRequest = Parameters<aptos.AptosClient['signTransaction']>[1]\n const tx = transaction.request as NativeTransactionRequest\n\n // signTransaction is an offline operation\n const response = await nativeProvider.signTransaction(this.nativeSigner, tx)\n return SignedTransaction.from(response)\n }\n\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n const rv = this.nativeSigner.signBuffer(Buffer.from(buffer)).toUint8Array()\n return Promise.resolve(rv)\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/providers/aptos.ts","../src/signers/aptos.ts"],"names":["aptos","SignedTransaction"],"mappings":"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","sourcesContent":["import * as aptos from 'aptos'\nimport { BigNumber } 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'\nimport { isHexString } from '@layerzerolabs/lz-utilities'\n\nexport class AptosProvider implements Provider {\n readonly nativeProvider: aptos.AptosClient\n\n private constructor(\n public readonly url: string,\n public readonly faucet?: string,\n public readonly indexer?: string\n ) {\n this.nativeProvider = new aptos.AptosClient(url)\n }\n static from(source: string, faucet?: string, indexer?: string): AptosProvider {\n if (typeof source === 'string') {\n return new AptosProvider(source, faucet, indexer)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n get native(): aptos.AptosClient {\n return this.nativeProvider\n }\n\n async getBalance(address: string): Promise<string> {\n if (!isHexString(address)) {\n throw new Error('Invalid Aptos address')\n }\n\n const aptosCoin = '0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>'\n const resources = await this.nativeProvider.getAccountResources(address)\n const accountResource = resources.find((r) => r.type === aptosCoin)\n if (accountResource === undefined) {\n throw new Error('Account resource not found')\n }\n\n const { coin } = accountResource.data as { coin: { value: string } }\n return BigInt(coin.value).toString()\n }\n\n async getBlock(blockTag: string | number): Promise<Block> {\n let blockNumber = 0\n if (typeof blockTag === 'number') {\n blockNumber = blockTag\n } else if (blockTag === 'latest') {\n blockNumber = await this.nativeProvider\n .getLedgerInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.block_height).toNumber())\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.getBlockByHeight(blockNumber)\n return Block.from(response)\n }\n\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n let blockNumber = 0\n if (typeof blockTag === 'number') {\n blockNumber = blockTag\n } else if (blockTag === 'latest') {\n blockNumber = await this.getBlockNumber()\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.getBlockByHeight(blockNumber, true)\n return BlockWithTransactions.from(response)\n }\n\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider\n .getLedgerInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.block_height).toNumber())\n }\n\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 if (typeof blockTag === 'number') {\n return this.nativeProvider\n .getBlockByHeight(blockTag)\n .then((block) => BigNumber.from(block.block_timestamp).toNumber())\n } else if (blockTag === 'latest') {\n return this.nativeProvider\n .getLedgerInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.ledger_timestamp).toNumber())\n } else {\n throw new Error('Invalid blockTag')\n }\n }\n\n async getTransaction(txHash: string): Promise<TransactionResponse> {\n if (!isHexString(txHash)) {\n throw new Error('Invalid Aptos transaction hash')\n }\n\n const response = await this.nativeProvider.getTransactionByHash(txHash)\n return TransactionResponse.from(response)\n }\n\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n if (!isHexString(txHash)) {\n throw new Error('Invalid Aptos transaction hash')\n }\n\n const response = await this.nativeProvider.getTransactionByHash(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 const _addressOrName = await Promise.resolve(addressOrName)\n if (!isHexString(_addressOrName)) {\n throw new Error('Invalid Aptos transaction hash')\n }\n\n const response = await this.nativeProvider.getAccount(_addressOrName)\n return parseInt(response.sequence_number)\n }\n\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.submitSignedBCSTransaction>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.submitSignedBCSTransaction(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 aptos.Types.PendingTransaction\n const response = await this.nativeProvider.waitForTransactionWithResult(pending.hash)\n const userTransaction = response as aptos.Types.UserTransaction\n if (!userTransaction.success) {\n throw new Error(`aptos transaction failed ,vm_status: ${userTransaction.vm_status}`)\n }\n return TransactionReceipt.from(response)\n }\n}\n","import * as aptos from 'aptos'\n\nimport {\n Provider,\n SignedTransaction,\n Signer,\n TransactionPending,\n TransactionReceipt,\n TransactionRequest,\n} from '@layerzerolabs/lz-core'\nimport { trim0x } from '@layerzerolabs/lz-utilities'\n\nimport { AptosProvider } from '../providers'\n\nexport class AptosSigner implements Signer {\n public nativeSigner: aptos.AptosAccount\n public provider: AptosProvider | undefined\n\n private constructor(signer: aptos.AptosAccount) {\n this.nativeSigner = signer\n }\n\n static from(signer: aptos.AptosAccount): Signer\n static from(privKey: string): Signer\n /**\n *\n * @param mnemonic\n * @param path e.g. m/44'/637'/0'/0'/0'\n */\n static from(mnemonic: string, path: string): Signer\n\n static from(source: string | aptos.AptosAccount, path?: string): Signer {\n if (source instanceof aptos.AptosAccount) {\n return new this(source)\n } else if (typeof source === 'string' && path === undefined) {\n const signer = new aptos.AptosAccount(Buffer.from(trim0x(source)))\n return new this(signer)\n } else if (typeof source === 'string' && path !== undefined) {\n if (path.startsWith('m/')) {\n const signer = aptos.AptosAccount.fromDerivePath(path, source)\n return new this(signer)\n }\n }\n throw new Error('Invalid parameters')\n }\n\n get native(): aptos.AptosAccount {\n return this.nativeSigner\n }\n\n connect(provider: Provider): Signer {\n if (!(provider instanceof AptosProvider)) {\n throw new Error('Only aptos.AptosClient is supported.')\n }\n\n this.provider = provider\n return this\n }\n\n async getAddress(): Promise<string> {\n return Promise.resolve(this.nativeSigner.address().toString())\n }\n\n get address(): string {\n return this.nativeSigner.address().toString()\n }\n\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n\n return this.provider.sendAndConfirm(transaction, opts)\n }\n\n async sendTransaction(transaction: SignedTransaction, sendOptions?: object): Promise<TransactionPending> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n\n return this.provider.sendTransaction(transaction, sendOptions)\n }\n\n async signTransaction(transaction: TransactionRequest): Promise<SignedTransaction> {\n const nativeProvider = this.provider?.native\n if (nativeProvider === undefined) {\n throw new Error('Connect the native provider first with AptosSigner.connect()')\n }\n\n type NativeTransactionRequest = Parameters<aptos.AptosClient['signTransaction']>[1]\n const tx = transaction.request as NativeTransactionRequest\n\n // signTransaction is an offline operation\n const response = await nativeProvider.signTransaction(this.nativeSigner, tx)\n return SignedTransaction.from(response)\n }\n\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n const rv = this.nativeSigner.signBuffer(Buffer.from(buffer)).toUint8Array()\n return Promise.resolve(rv)\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-aptos",
3
- "version": "3.0.0",
3
+ "version": "3.0.2-initia.0",
4
4
  "description": "LayerZero Core Library",
5
5
  "license": "BUSL-1.1",
6
6
  "exports": {
@@ -23,10 +23,10 @@
23
23
  "clean-prebuild": "rimraf dist"
24
24
  },
25
25
  "dependencies": {
26
- "@layerzerolabs/lz-aptos-sdk-v1": "^3.0.0",
27
- "@layerzerolabs/lz-core": "^3.0.0",
28
- "@layerzerolabs/lz-utilities": "^3.0.0",
29
- "@layerzerolabs/tron-utilities": "^3.0.0",
26
+ "@layerzerolabs/lz-aptos-sdk-v1": "^3.0.2-initia.0",
27
+ "@layerzerolabs/lz-core": "^3.0.2-initia.0",
28
+ "@layerzerolabs/lz-utilities": "^3.0.2-initia.0",
29
+ "@layerzerolabs/tron-utilities": "^3.0.2-initia.0",
30
30
  "aptos": "^1.20.0",
31
31
  "bip39": "^3.1.0",
32
32
  "ed25519-hd-key": "^1.3.0",
@@ -38,8 +38,8 @@
38
38
  "devDependencies": {
39
39
  "@jest/globals": "^29.7.0",
40
40
  "@layerzerolabs/tronweb-typescript": "^0.0.0",
41
- "@layerzerolabs/tsup-config-next": "^3.0.0",
42
- "@layerzerolabs/typescript-config-next": "^3.0.0",
41
+ "@layerzerolabs/tsup-config-next": "^3.0.2-initia.0",
42
+ "@layerzerolabs/typescript-config-next": "^3.0.2-initia.0",
43
43
  "@types/jest": "^29.5.10",
44
44
  "@types/tronweb": "npm:@layerzerolabs/tronweb-typescript@workspace:^",
45
45
  "jest": "^29.7.0",