@layerzerolabs/lz-corekit-aptos 2.3.30 → 2.3.32

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,33 @@
1
1
  # @layerzerolabs/lz-corekit-aptos
2
2
 
3
+ ## 2.3.32
4
+
5
+ ### Patch Changes
6
+
7
+ - e846939: testnets: lif3,iota,lyra,lightlink
8
+ - 334b51e: endpoints, including flare mainnet
9
+ - 334b51e: zklink mainnet, and testnets
10
+ - 334b51e: testnet endpoints
11
+ - Updated dependencies [e846939]
12
+ - Updated dependencies [334b51e]
13
+ - Updated dependencies [334b51e]
14
+ - Updated dependencies [334b51e]
15
+ - @layerzerolabs/lz-core@2.3.32
16
+ - @layerzerolabs/tron-utilities@2.3.32
17
+ - @layerzerolabs/lz-utilities@2.3.32
18
+ - @layerzerolabs/lz-aptos-sdk-v1@2.3.32
19
+
20
+ ## 2.3.31
21
+
22
+ ### Patch Changes
23
+
24
+ - 29fecfc: testnets: zksyncsep v2 redeploy, curtis
25
+ - Updated dependencies [29fecfc]
26
+ - @layerzerolabs/lz-core@2.3.31
27
+ - @layerzerolabs/tron-utilities@2.3.31
28
+ - @layerzerolabs/lz-utilities@2.3.31
29
+ - @layerzerolabs/lz-aptos-sdk-v1@2.3.31
30
+
3
31
  ## 2.3.30
4
32
 
5
33
  ### Patch Changes
package/dist/index.cjs CHANGED
@@ -131,17 +131,18 @@ var AptosSigner = class {
131
131
  this.nativeSigner = signer;
132
132
  }
133
133
  static from(source, path) {
134
- if (source instanceof aptos2__namespace.AptosClient) {
134
+ if (source instanceof aptos2__namespace.AptosAccount) {
135
135
  return new this(source);
136
136
  } else if (typeof source === "string" && path === void 0) {
137
137
  const signer = new aptos2__namespace.AptosAccount(Buffer.from(lzUtilities.trim0x(source)));
138
138
  return new this(signer);
139
139
  } else if (typeof source === "string" && path !== void 0) {
140
- const signer = aptos2__namespace.AptosAccount.fromDerivePath("m/44'/637'/0'/0'/0'", source);
141
- return new this(signer);
142
- } else {
143
- throw new Error("Invalid parameters");
140
+ if (path.startsWith("m/")) {
141
+ const signer = aptos2__namespace.AptosAccount.fromDerivePath(path, source);
142
+ return new this(signer);
143
+ }
144
144
  }
145
+ throw new Error("Invalid parameters");
145
146
  }
146
147
  get native() {
147
148
  return this.nativeSigner;
@@ -172,9 +173,9 @@ var AptosSigner = class {
172
173
  return this.provider.sendTransaction(transaction, sendOptions);
173
174
  }
174
175
  async signTransaction(transaction) {
175
- let nativeProvider = this.provider?.native;
176
+ const nativeProvider = this.provider?.native;
176
177
  if (nativeProvider === void 0) {
177
- nativeProvider = new aptos2__namespace.AptosClient("");
178
+ throw new Error("Connect the native provider first with AptosSigner.connect()");
178
179
  }
179
180
  const tx = transaction.request;
180
181
  const response = await nativeProvider.signTransaction(this.nativeSigner, tx);
@@ -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(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.AptosClient) {\n return new this(source as aptos.AptosAccount)\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 const signer = aptos.AptosAccount.fromDerivePath(\"m/44'/637'/0'/0'/0'\", source)\n return new this(signer)\n } else {\n throw new Error('Invalid parameters')\n }\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 let nativeProvider = this.provider?.native\n if (nativeProvider === undefined) {\n nativeProvider = new aptos.AptosClient('')\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":";AAAA,YAAY,WAAW;AACvB,SAAS,iBAAiB;AAE1B;AAAA,EACI;AAAA,EAEA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,mBAAmB;AAErB,IAAM,gBAAN,MAAM,eAAkC;AAAA,EAGnC,YAAY,KAAa;AAC7B,SAAK,iBAAiB,IAAU,kBAAY,GAAG;AAAA,EACnD;AAAA,EAGA,OAAO,KAAK,QAA+B;AACvC,QAAI,OAAO,WAAW,UAAU;AAC5B,aAAO,IAAI,eAAc,MAAM;AAAA,IACnC,OAAO;AACH,YAAM,IAAI,MAAM,oBAAoB;AAAA,IACxC;AAAA,EACJ;AAAA,EAEA,IAAI,SAA4B;AAC5B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,WAAW,SAAkC;AAC/C,QAAI,CAAC,YAAY,OAAO,GAAG;AACvB,YAAM,IAAI,MAAM,uBAAuB;AAAA,IAC3C;AAEA,UAAM,YAAY;AAClB,UAAM,YAAY,MAAM,KAAK,eAAe,oBAAoB,OAAO;AACvE,UAAM,kBAAkB,UAAU,KAAK,CAAC,MAAM,EAAE,SAAS,SAAS;AAClE,QAAI,oBAAoB,QAAW;AAC/B,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAChD;AAEA,UAAM,EAAE,KAAK,IAAI,gBAAgB;AACjC,WAAO,OAAO,KAAK,KAAK,EAAE,SAAS;AAAA,EACvC;AAAA,EAEA,MAAM,SAAS,UAA2C;AACtD,QAAI,cAAc;AAClB,QAAI,OAAO,aAAa,UAAU;AAC9B,oBAAc;AAAA,IAClB,WAAW,aAAa,UAAU;AAC9B,oBAAc,MAAM,KAAK,eACpB,cAAc,EACd,KAAK,CAAC,eAAe,UAAU,KAAK,WAAW,YAAY,EAAE,SAAS,CAAC;AAAA,IAChF,OAAO;AACH,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACtC;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,iBAAiB,WAAW;AACvE,WAAO,MAAM,KAAK,QAAQ;AAAA,EAC9B;AAAA,EAEA,MAAM,yBAAyB,UAA2D;AACtF,QAAI,cAAc;AAClB,QAAI,OAAO,aAAa,UAAU;AAC9B,oBAAc;AAAA,IAClB,WAAW,aAAa,UAAU;AAC9B,oBAAc,MAAM,KAAK,eAAe;AAAA,IAC5C,OAAO;AACH,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACtC;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,iBAAiB,aAAa,IAAI;AAC7E,WAAO,sBAAsB,KAAK,QAAQ;AAAA,EAC9C;AAAA,EAEA,MAAM,iBAAkC;AACpC,WAAO,KAAK,eACP,cAAc,EACd,KAAK,CAAC,eAAe,UAAU,KAAK,WAAW,YAAY,EAAE,SAAS,CAAC;AAAA,EAChF;AAAA,EAEA,MAAM,QAAQ,WAAuC;AACjD,UAAM,QAAQ,QAAQ;AACtB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC7C;AAAA,EAEA,MAAM,kBAAkB,UAA4C;AAChE,QAAI,OAAO,aAAa,UAAU;AAC9B,aAAO,KAAK,eACP,iBAAiB,QAAQ,EACzB,KAAK,CAAC,UAAU,UAAU,KAAK,MAAM,eAAe,EAAE,SAAS,CAAC;AAAA,IACzE,WAAW,aAAa,UAAU;AAC9B,aAAO,KAAK,eACP,cAAc,EACd,KAAK,CAAC,eAAe,UAAU,KAAK,WAAW,gBAAgB,EAAE,SAAS,CAAC;AAAA,IACpF,OAAO;AACH,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACtC;AAAA,EACJ;AAAA,EAEA,MAAM,eAAe,QAA8C;AAC/D,QAAI,CAAC,YAAY,MAAM,GAAG;AACtB,YAAM,IAAI,MAAM,gCAAgC;AAAA,IACpD;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,qBAAqB,MAAM;AACtE,WAAO,oBAAoB,KAAK,QAAQ;AAAA,EAC5C;AAAA,EAEA,MAAM,sBAAsB,QAA6C;AACrE,QAAI,CAAC,YAAY,MAAM,GAAG;AACtB,YAAM,IAAI,MAAM,gCAAgC;AAAA,IACpD;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,qBAAqB,MAAM;AACtE,WAAO,mBAAmB,KAAK,QAAQ;AAAA,EAC3C;AAAA,EAEA,MAAM,oBACF,eACA,WACe;AACf,UAAM,iBAAiB,MAAM,QAAQ,QAAQ,aAAa;AAC1D,QAAI,CAAC,YAAY,cAAc,GAAG;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IACpD;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,WAAW,cAAc;AACpE,WAAO,SAAS,SAAS,eAAe;AAAA,EAC5C;AAAA,EAEA,MAAM,gBAAgB,aAAgC,cAAoD;AAEtG,UAAM,MAAM,YAAY;AAExB,UAAM,WAAW,MAAM,KAAK,eAAe,2BAA2B,GAAG;AACzE,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,KAAK,eAAe,6BAA6B,QAAQ,IAAI;AACpF,WAAO,mBAAmB,KAAK,QAAQ;AAAA,EAC3C;AACJ;;;ACvJA,YAAYA,YAAW;AAEvB;AAAA,EAEI,qBAAAC;AAAA,OAKG;AACP,SAAS,cAAc;AAIhB,IAAM,cAAN,MAAoC;AAAA,EAI/B,YAAY,QAA4B;AAC5C,SAAK,eAAe;AAAA,EACxB;AAAA,EAWA,OAAO,KAAK,QAAqC,MAAuB;AACpE,QAAI,kBAAwB,qBAAc;AACtC,aAAO,IAAI,KAAK,MAAM;AAAA,IAC1B,WAAW,OAAO,WAAW,YAAY,SAAS,QAAW;AACzD,YAAM,SAAS,IAAU,oBAAa,OAAO,KAAK,OAAO,MAAM,CAAC,CAAC;AACjE,aAAO,IAAI,KAAK,MAAM;AAAA,IAC1B,WAAW,OAAO,WAAW,YAAY,SAAS,QAAW;AACzD,UAAI,KAAK,WAAW,IAAI,GAAG;AACvB,cAAM,SAAe,oBAAa,eAAe,MAAM,MAAM;AAC7D,eAAO,IAAI,KAAK,MAAM;AAAA,MAC1B;AAAA,IACJ;AACA,UAAM,IAAI,MAAM,oBAAoB;AAAA,EACxC;AAAA,EAEA,IAAI,SAA6B;AAC7B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,QAAQ,UAA4B;AAChC,QAAI,EAAE,oBAAoB,gBAAgB;AACtC,YAAM,IAAI,MAAM,sCAAsC;AAAA,IAC1D;AAEA,SAAK,WAAW;AAChB,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,aAA8B;AAChC,WAAO,QAAQ,QAAQ,KAAK,aAAa,QAAQ,EAAE,SAAS,CAAC;AAAA,EACjE;AAAA,EAEA,IAAI,UAAkB;AAClB,WAAO,KAAK,aAAa,QAAQ,EAAE,SAAS;AAAA,EAChD;AAAA,EAEA,MAAM,eAAe,aAAgC,MAA4C;AAC7F,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI,MAAM,sBAAsB;AAAA,IAC1C;AAEA,WAAO,KAAK,SAAS,eAAe,aAAa,IAAI;AAAA,EACzD;AAAA,EAEA,MAAM,gBAAgB,aAAgC,aAAmD;AACrG,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI,MAAM,sBAAsB;AAAA,IAC1C;AAEA,WAAO,KAAK,SAAS,gBAAgB,aAAa,WAAW;AAAA,EACjE;AAAA,EAEA,MAAM,gBAAgB,aAA6D;AAC/E,UAAM,iBAAiB,KAAK,UAAU;AACtC,QAAI,mBAAmB,QAAW;AAC9B,YAAM,IAAI,MAAM,8DAA8D;AAAA,IAClF;AAGA,UAAM,KAAK,YAAY;AAGvB,UAAM,WAAW,MAAM,eAAe,gBAAgB,KAAK,cAAc,EAAE;AAC3E,WAAOA,mBAAkB,KAAK,QAAQ;AAAA,EAC1C;AAAA,EAEA,MAAM,WAAW,QAAyC;AACtD,UAAM,KAAK,KAAK,aAAa,WAAW,OAAO,KAAK,MAAM,CAAC,EAAE,aAAa;AAC1E,WAAO,QAAQ,QAAQ,EAAE;AAAA,EAC7B;AACJ","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(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"]}
package/dist/index.mjs CHANGED
@@ -109,17 +109,18 @@ var AptosSigner = class {
109
109
  this.nativeSigner = signer;
110
110
  }
111
111
  static from(source, path) {
112
- if (source instanceof aptos2.AptosClient) {
112
+ if (source instanceof aptos2.AptosAccount) {
113
113
  return new this(source);
114
114
  } else if (typeof source === "string" && path === void 0) {
115
115
  const signer = new aptos2.AptosAccount(Buffer.from(trim0x(source)));
116
116
  return new this(signer);
117
117
  } else if (typeof source === "string" && path !== void 0) {
118
- const signer = aptos2.AptosAccount.fromDerivePath("m/44'/637'/0'/0'/0'", source);
119
- return new this(signer);
120
- } else {
121
- throw new Error("Invalid parameters");
118
+ if (path.startsWith("m/")) {
119
+ const signer = aptos2.AptosAccount.fromDerivePath(path, source);
120
+ return new this(signer);
121
+ }
122
122
  }
123
+ throw new Error("Invalid parameters");
123
124
  }
124
125
  get native() {
125
126
  return this.nativeSigner;
@@ -150,9 +151,9 @@ var AptosSigner = class {
150
151
  return this.provider.sendTransaction(transaction, sendOptions);
151
152
  }
152
153
  async signTransaction(transaction) {
153
- let nativeProvider = this.provider?.native;
154
+ const nativeProvider = this.provider?.native;
154
155
  if (nativeProvider === void 0) {
155
- nativeProvider = new aptos2.AptosClient("");
156
+ throw new Error("Connect the native provider first with AptosSigner.connect()");
156
157
  }
157
158
  const tx = transaction.request;
158
159
  const response = await nativeProvider.signTransaction(this.nativeSigner, tx);
@@ -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(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.AptosClient) {\n return new this(source as aptos.AptosAccount)\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 const signer = aptos.AptosAccount.fromDerivePath(\"m/44'/637'/0'/0'/0'\", source)\n return new this(signer)\n } else {\n throw new Error('Invalid parameters')\n }\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 let nativeProvider = this.provider?.native\n if (nativeProvider === undefined) {\n nativeProvider = new aptos.AptosClient('')\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":";AAAA,YAAY,WAAW;AACvB,SAAS,iBAAiB;AAE1B;AAAA,EACI;AAAA,EAEA;AAAA,EAIA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,mBAAmB;AAErB,IAAM,gBAAN,MAAM,eAAkC;AAAA,EAGnC,YAAY,KAAa;AAC7B,SAAK,iBAAiB,IAAU,kBAAY,GAAG;AAAA,EACnD;AAAA,EAGA,OAAO,KAAK,QAA+B;AACvC,QAAI,OAAO,WAAW,UAAU;AAC5B,aAAO,IAAI,eAAc,MAAM;AAAA,IACnC,OAAO;AACH,YAAM,IAAI,MAAM,oBAAoB;AAAA,IACxC;AAAA,EACJ;AAAA,EAEA,IAAI,SAA4B;AAC5B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,WAAW,SAAkC;AAC/C,QAAI,CAAC,YAAY,OAAO,GAAG;AACvB,YAAM,IAAI,MAAM,uBAAuB;AAAA,IAC3C;AAEA,UAAM,YAAY;AAClB,UAAM,YAAY,MAAM,KAAK,eAAe,oBAAoB,OAAO;AACvE,UAAM,kBAAkB,UAAU,KAAK,CAAC,MAAM,EAAE,SAAS,SAAS;AAClE,QAAI,oBAAoB,QAAW;AAC/B,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAChD;AAEA,UAAM,EAAE,KAAK,IAAI,gBAAgB;AACjC,WAAO,OAAO,KAAK,KAAK,EAAE,SAAS;AAAA,EACvC;AAAA,EAEA,MAAM,SAAS,UAA2C;AACtD,QAAI,cAAc;AAClB,QAAI,OAAO,aAAa,UAAU;AAC9B,oBAAc;AAAA,IAClB,WAAW,aAAa,UAAU;AAC9B,oBAAc,MAAM,KAAK,eACpB,cAAc,EACd,KAAK,CAAC,eAAe,UAAU,KAAK,WAAW,YAAY,EAAE,SAAS,CAAC;AAAA,IAChF,OAAO;AACH,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACtC;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,iBAAiB,WAAW;AACvE,WAAO,MAAM,KAAK,QAAQ;AAAA,EAC9B;AAAA,EAEA,MAAM,yBAAyB,UAA2D;AACtF,QAAI,cAAc;AAClB,QAAI,OAAO,aAAa,UAAU;AAC9B,oBAAc;AAAA,IAClB,WAAW,aAAa,UAAU;AAC9B,oBAAc,MAAM,KAAK,eAAe;AAAA,IAC5C,OAAO;AACH,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACtC;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,iBAAiB,aAAa,IAAI;AAC7E,WAAO,sBAAsB,KAAK,QAAQ;AAAA,EAC9C;AAAA,EAEA,MAAM,iBAAkC;AACpC,WAAO,KAAK,eACP,cAAc,EACd,KAAK,CAAC,eAAe,UAAU,KAAK,WAAW,YAAY,EAAE,SAAS,CAAC;AAAA,EAChF;AAAA,EAEA,MAAM,QAAQ,WAAuC;AACjD,UAAM,QAAQ,QAAQ;AACtB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC7C;AAAA,EAEA,MAAM,kBAAkB,UAA4C;AAChE,QAAI,OAAO,aAAa,UAAU;AAC9B,aAAO,KAAK,eACP,iBAAiB,QAAQ,EACzB,KAAK,CAAC,UAAU,UAAU,KAAK,MAAM,eAAe,EAAE,SAAS,CAAC;AAAA,IACzE,WAAW,aAAa,UAAU;AAC9B,aAAO,KAAK,eACP,cAAc,EACd,KAAK,CAAC,eAAe,UAAU,KAAK,WAAW,gBAAgB,EAAE,SAAS,CAAC;AAAA,IACpF,OAAO;AACH,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACtC;AAAA,EACJ;AAAA,EAEA,MAAM,eAAe,QAA8C;AAC/D,QAAI,CAAC,YAAY,MAAM,GAAG;AACtB,YAAM,IAAI,MAAM,gCAAgC;AAAA,IACpD;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,qBAAqB,MAAM;AACtE,WAAO,oBAAoB,KAAK,QAAQ;AAAA,EAC5C;AAAA,EAEA,MAAM,sBAAsB,QAA6C;AACrE,QAAI,CAAC,YAAY,MAAM,GAAG;AACtB,YAAM,IAAI,MAAM,gCAAgC;AAAA,IACpD;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,qBAAqB,MAAM;AACtE,WAAO,mBAAmB,KAAK,QAAQ;AAAA,EAC3C;AAAA,EAEA,MAAM,oBACF,eACA,WACe;AACf,UAAM,iBAAiB,MAAM,QAAQ,QAAQ,aAAa;AAC1D,QAAI,CAAC,YAAY,cAAc,GAAG;AAC9B,YAAM,IAAI,MAAM,gCAAgC;AAAA,IACpD;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,WAAW,cAAc;AACpE,WAAO,SAAS,SAAS,eAAe;AAAA,EAC5C;AAAA,EAEA,MAAM,gBAAgB,aAAgC,cAAoD;AAEtG,UAAM,MAAM,YAAY;AAExB,UAAM,WAAW,MAAM,KAAK,eAAe,2BAA2B,GAAG;AACzE,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,KAAK,eAAe,6BAA6B,QAAQ,IAAI;AACpF,WAAO,mBAAmB,KAAK,QAAQ;AAAA,EAC3C;AACJ;;;ACvJA,YAAYA,YAAW;AAEvB;AAAA,EAEI,qBAAAC;AAAA,OAKG;AACP,SAAS,cAAc;AAIhB,IAAM,cAAN,MAAoC;AAAA,EAI/B,YAAY,QAA4B;AAC5C,SAAK,eAAe;AAAA,EACxB;AAAA,EAWA,OAAO,KAAK,QAAqC,MAAuB;AACpE,QAAI,kBAAwB,qBAAc;AACtC,aAAO,IAAI,KAAK,MAAM;AAAA,IAC1B,WAAW,OAAO,WAAW,YAAY,SAAS,QAAW;AACzD,YAAM,SAAS,IAAU,oBAAa,OAAO,KAAK,OAAO,MAAM,CAAC,CAAC;AACjE,aAAO,IAAI,KAAK,MAAM;AAAA,IAC1B,WAAW,OAAO,WAAW,YAAY,SAAS,QAAW;AACzD,UAAI,KAAK,WAAW,IAAI,GAAG;AACvB,cAAM,SAAe,oBAAa,eAAe,MAAM,MAAM;AAC7D,eAAO,IAAI,KAAK,MAAM;AAAA,MAC1B;AAAA,IACJ;AACA,UAAM,IAAI,MAAM,oBAAoB;AAAA,EACxC;AAAA,EAEA,IAAI,SAA6B;AAC7B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,QAAQ,UAA4B;AAChC,QAAI,EAAE,oBAAoB,gBAAgB;AACtC,YAAM,IAAI,MAAM,sCAAsC;AAAA,IAC1D;AAEA,SAAK,WAAW;AAChB,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,aAA8B;AAChC,WAAO,QAAQ,QAAQ,KAAK,aAAa,QAAQ,EAAE,SAAS,CAAC;AAAA,EACjE;AAAA,EAEA,IAAI,UAAkB;AAClB,WAAO,KAAK,aAAa,QAAQ,EAAE,SAAS;AAAA,EAChD;AAAA,EAEA,MAAM,eAAe,aAAgC,MAA4C;AAC7F,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI,MAAM,sBAAsB;AAAA,IAC1C;AAEA,WAAO,KAAK,SAAS,eAAe,aAAa,IAAI;AAAA,EACzD;AAAA,EAEA,MAAM,gBAAgB,aAAgC,aAAmD;AACrG,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI,MAAM,sBAAsB;AAAA,IAC1C;AAEA,WAAO,KAAK,SAAS,gBAAgB,aAAa,WAAW;AAAA,EACjE;AAAA,EAEA,MAAM,gBAAgB,aAA6D;AAC/E,UAAM,iBAAiB,KAAK,UAAU;AACtC,QAAI,mBAAmB,QAAW;AAC9B,YAAM,IAAI,MAAM,8DAA8D;AAAA,IAClF;AAGA,UAAM,KAAK,YAAY;AAGvB,UAAM,WAAW,MAAM,eAAe,gBAAgB,KAAK,cAAc,EAAE;AAC3E,WAAOA,mBAAkB,KAAK,QAAQ;AAAA,EAC1C;AAAA,EAEA,MAAM,WAAW,QAAyC;AACtD,UAAM,KAAK,KAAK,aAAa,WAAW,OAAO,KAAK,MAAM,CAAC,EAAE,aAAa;AAC1E,WAAO,QAAQ,QAAQ,EAAE;AAAA,EAC7B;AACJ","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(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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/lz-corekit-aptos",
3
- "version": "2.3.30",
3
+ "version": "2.3.32",
4
4
  "description": "LayerZero Core Library",
5
5
  "license": "BUSL-1.1",
6
6
  "exports": {
@@ -24,10 +24,10 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "@coral-xyz/anchor": "^0.29.0",
27
- "@layerzerolabs/lz-aptos-sdk-v1": "^2.3.30",
28
- "@layerzerolabs/lz-core": "^2.3.30",
29
- "@layerzerolabs/lz-utilities": "^2.3.30",
30
- "@layerzerolabs/tron-utilities": "^2.3.30",
27
+ "@layerzerolabs/lz-aptos-sdk-v1": "^2.3.32",
28
+ "@layerzerolabs/lz-core": "^2.3.32",
29
+ "@layerzerolabs/lz-utilities": "^2.3.32",
30
+ "@layerzerolabs/tron-utilities": "^2.3.32",
31
31
  "aptos": "^1.20.0",
32
32
  "bip39": "^3.1.0",
33
33
  "ed25519-hd-key": "^1.3.0",
@@ -39,8 +39,8 @@
39
39
  "devDependencies": {
40
40
  "@jest/globals": "^29.7.0",
41
41
  "@layerzerolabs/tronweb-typescript": "^0.0.0",
42
- "@layerzerolabs/tsup-config-next": "^2.3.30",
43
- "@layerzerolabs/typescript-config-next": "^2.3.30",
42
+ "@layerzerolabs/tsup-config-next": "^2.3.32",
43
+ "@layerzerolabs/typescript-config-next": "^2.3.32",
44
44
  "@types/jest": "^29.5.10",
45
45
  "@types/tronweb": "npm:@layerzerolabs/tronweb-typescript@workspace:^",
46
46
  "jest": "^29.7.0",