@layerzerolabs/lz-corekit-initia 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 +10 -0
- package/dist/index.cjs +13 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +13 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @layerzerolabs/lz-corekit-initia
|
|
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
|
+
- @layerzerolabs/move-definitions@3.0.12
|
|
12
|
+
|
|
3
13
|
## 3.0.11
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var initia_js = require('@initia/initia.js');
|
|
4
|
-
var ethers = require('ethers');
|
|
5
4
|
var lzCore = require('@layerzerolabs/lz-core');
|
|
6
5
|
var lzUtilities = require('@layerzerolabs/lz-utilities');
|
|
7
6
|
|
|
@@ -39,7 +38,7 @@ var InitiaProvider = class _InitiaProvider {
|
|
|
39
38
|
if (typeof blockTag === "number") {
|
|
40
39
|
blockNumber = blockTag;
|
|
41
40
|
} else if (blockTag === "latest") {
|
|
42
|
-
blockNumber = await this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) =>
|
|
41
|
+
blockNumber = await this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) => Number(ledgerInfo.block.header.height));
|
|
43
42
|
} else {
|
|
44
43
|
throw new Error("Invalid blockTag");
|
|
45
44
|
}
|
|
@@ -50,7 +49,7 @@ var InitiaProvider = class _InitiaProvider {
|
|
|
50
49
|
return Promise.reject(new Error("Method not implemented."));
|
|
51
50
|
}
|
|
52
51
|
async getBlockNumber() {
|
|
53
|
-
return this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) =>
|
|
52
|
+
return this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) => Number(ledgerInfo.block.header.height));
|
|
54
53
|
}
|
|
55
54
|
async getSlot(_finality) {
|
|
56
55
|
await Promise.resolve();
|
|
@@ -58,9 +57,9 @@ var InitiaProvider = class _InitiaProvider {
|
|
|
58
57
|
}
|
|
59
58
|
async getBlockTimestamp(blockTag) {
|
|
60
59
|
if (typeof blockTag === "number") {
|
|
61
|
-
return this.nativeProvider.tendermint.blockInfo(blockTag).then((block) =>
|
|
60
|
+
return this.nativeProvider.tendermint.blockInfo(blockTag).then((block) => Number(block.block.header.time));
|
|
62
61
|
} else if (blockTag === "latest") {
|
|
63
|
-
return this.nativeProvider.tendermint.blockInfo().then((block) =>
|
|
62
|
+
return this.nativeProvider.tendermint.blockInfo().then((block) => Number(block.block.header.time));
|
|
64
63
|
} else {
|
|
65
64
|
throw new Error("Invalid blockTag");
|
|
66
65
|
}
|
|
@@ -97,13 +96,16 @@ var InitiaProvider = class _InitiaProvider {
|
|
|
97
96
|
const response = await this.nativeProvider.tx.broadcast(stx);
|
|
98
97
|
return lzCore.TransactionPending.from(response);
|
|
99
98
|
}
|
|
100
|
-
async
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
throw new Error(response.raw_log);
|
|
99
|
+
async confirmTransaction(pending, _opts) {
|
|
100
|
+
const nativePending = pending.pending;
|
|
101
|
+
if (nativePending.code !== 0) {
|
|
102
|
+
throw new Error(nativePending.raw_log);
|
|
105
103
|
}
|
|
106
|
-
return lzCore.TransactionReceipt.from(
|
|
104
|
+
return Promise.resolve(lzCore.TransactionReceipt.from(nativePending));
|
|
105
|
+
}
|
|
106
|
+
async sendAndConfirm(transaction, opts) {
|
|
107
|
+
const pending = await this.sendTransaction(transaction, opts);
|
|
108
|
+
return this.confirmTransaction(pending, opts);
|
|
107
109
|
}
|
|
108
110
|
};
|
|
109
111
|
function convertPayloadToMsgExecute(sender, payload) {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/providers/initia.ts","../src/signers/initia.ts","../src/signers/utils.ts"],"names":["AccAddress","SignedTransaction"],"mappings":"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","sourcesContent":["import { AccAddress, LCDClient } from '@initia/initia.js'\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 InitiaProvider implements Provider {\n readonly nativeProvider: LCDClient\n\n private constructor(public url: string) {\n this.nativeProvider = new LCDClient(url)\n }\n\n static from(url: string): InitiaProvider\n static from(source: string): InitiaProvider {\n if (typeof source === 'string') {\n return new InitiaProvider(source)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n get native(): LCDClient {\n return this.nativeProvider\n }\n\n async getBalance(address: string): Promise<string> {\n let accAddress: AccAddress\n if (!isHexString(address)) {\n accAddress = AccAddress.fromHex(address)\n } else if (address.startsWith('init')) {\n accAddress = address\n } else {\n throw new Error('Invalid Aptos address')\n }\n\n //todo convert all address to aclAddress\n const resources = await this.nativeProvider.bank.balance(accAddress)\n const coins = resources[0]\n return coins.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.tendermint\n .blockInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.block.header.height).toNumber())\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.tendermint.blockInfo(blockNumber)\n return Block.from(response)\n }\n\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n return Promise.reject(new Error('Method not implemented.'))\n }\n\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider.tendermint\n .blockInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.block.header.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.tendermint\n .blockInfo(blockTag)\n .then((block) => BigNumber.from(block.block.header.time).toNumber())\n } else if (blockTag === 'latest') {\n return this.nativeProvider.tendermint\n .blockInfo()\n .then((block) => BigNumber.from(block.block.header.time).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 Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(txHash)\n return TransactionResponse.from(response)\n }\n\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n if (!isHexString(txHash)) {\n throw new Error('Invalid Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(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\n let accAddress: AccAddress\n if (!isHexString(_addressOrName)) {\n accAddress = AccAddress.fromHex(_addressOrName)\n } else if (_addressOrName.startsWith('init')) {\n accAddress = _addressOrName\n } else {\n throw new Error('Invalid Aptos address')\n }\n const response = await this.nativeProvider.auth.accountInfo(accAddress)\n return response.getSequenceNumber()\n }\n\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcast>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.tx.broadcast(stx) //todo need change to broadcastAsync ??\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 type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcast>[0]\n const stx = transaction.signed as NativeSignedTransaction\n const response = await this.nativeProvider.tx.broadcast(stx)\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (((response as any).code as number) !== 0) {\n throw new Error(response.raw_log)\n }\n return TransactionReceipt.from(response)\n }\n}\n","import { AccAddress, CreateTxOptions, Key, MnemonicKey, ModeInfo, RawKey, Wallet } from '@initia/initia.js'\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 { InitiaProvider } from '../providers'\n\nimport { InitiaBuildTxRequest } from './types'\nimport { convertPayloadToMsgExecute } from './utils'\n\nexport class InitiaSigner implements Signer<InitiaBuildTxRequest> {\n public nativeKey: MnemonicKey | RawKey\n public nativeSigner: Wallet | undefined\n public provider: InitiaProvider | undefined\n\n private constructor(signer: MnemonicKey | RawKey) {\n this.nativeKey = signer\n }\n\n static from(signer: MnemonicKey): Signer<InitiaBuildTxRequest>\n static from(privKey: string): Signer<InitiaBuildTxRequest>\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<InitiaBuildTxRequest>\n\n static from(source: string | MnemonicKey, path?: string): Signer<InitiaBuildTxRequest> {\n if (source instanceof MnemonicKey) {\n return new this(source)\n } else if (typeof source === 'string' && path === undefined) {\n const signer = new RawKey(Buffer.from(trim0x(source))) // todo double check\n return new this(signer)\n } else if (typeof source === 'string' && path !== undefined) {\n if (path.startsWith('m/')) {\n const [_, coinType, account, __, index] = path.match(/\\d+/g)?.map(Number) ?? [44, 118, 0, 0, 0]\n const normalizeMnemonics = source\n .trim()\n .split(/\\s+/)\n .map((part) => part.toLowerCase())\n .join(' ')\n const key = new MnemonicKey({\n mnemonic: normalizeMnemonics,\n coinType,\n account,\n index,\n })\n return new this(key)\n }\n }\n throw new Error('Invalid parameters')\n }\n\n get native(): Wallet {\n if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n return this.nativeSigner\n }\n\n connect(provider: Provider): Signer<InitiaBuildTxRequest> {\n if (!(provider instanceof InitiaProvider)) {\n throw new Error('Only InitiaProvider is supported.')\n }\n\n this.provider = provider\n this.nativeSigner = new Wallet(this.provider.native, this.nativeKey)\n return this\n }\n\n async getAddress(): Promise<string> {\n return Promise.resolve(AccAddress.toHex(this.nativeKey.accAddress))\n }\n\n get address(): string {\n return AccAddress.toHex(this.nativeKey.accAddress)\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 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 if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n\n type NativeTransactionRequest = Parameters<Key['signTx']>[0]\n const tx = transaction.request as NativeTransactionRequest\n\n const { account_number, sequence } = await this.nativeSigner.accountNumberAndSequence()\n\n const response = await this.nativeSigner.key.signTx(tx, {\n accountNumber: account_number,\n sequence,\n chainId: await this.nativeSigner.lcd.tendermint.chainId(),\n signMode: ModeInfo.SignMode.SIGN_MODE_DIRECT,\n })\n return SignedTransaction.from(response)\n }\n\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n return this.nativeKey.sign(Buffer.from(buffer))\n }\n\n async buildTransaction(buildTxRequest: InitiaBuildTxRequest): Promise<TransactionRequest> {\n const sender = this.nativeSigner!.key.accAddress.toString()\n const msg = convertPayloadToMsgExecute(sender, buildTxRequest.payload)\n const createOptions: CreateTxOptions & {\n sequence?: number\n } = {\n msgs: [msg],\n }\n if (buildTxRequest.options?.gas !== undefined) {\n createOptions.gas = buildTxRequest.options.gas\n }\n if (buildTxRequest.options?.gasPrice !== undefined) {\n if (isNaN(Number(buildTxRequest.options.gasPrice)) && buildTxRequest.options.gasPrice.endsWith('uinit')) {\n createOptions.gasPrices = buildTxRequest.options.gasPrice\n } else if (!isNaN(Number(buildTxRequest.options.gasPrice))) {\n createOptions.gasPrices = `${buildTxRequest.options.gasPrice}uinit`\n } else {\n throw Error(`Invalid gas price for initia :${buildTxRequest.options.gasPrice}`)\n }\n }\n // createOptions.sequence = initial + offset\n const tx = await this.nativeSigner!.createTx(createOptions)\n return TransactionRequest.from(tx)\n }\n}\n","import { Msg, MsgExecute, bcs } from '@initia/initia.js'\n\nimport { EntryFunctionArgumentTypes, InputEntryFunctionData } from '@layerzerolabs/move-definitions'\n\nexport function convertPayloadToMsgExecute(sender: string, payload: InputEntryFunctionData): Msg {\n const functionStructs = payload.function.split('::')\n const moduleAddress = functionStructs[0]\n const moduleName = functionStructs[1]\n const functionName = functionStructs[2]\n const args = covertPayloadArgs(payload.functionArgumentTypes ?? [], payload.functionArguments)\n const msg = new MsgExecute(\n sender, // sender address\n moduleAddress, // module owner address\n moduleName, // module name\n functionName, // function name\n payload.typeArguments ?? [], // type args\n args\n )\n return msg\n}\nexport function covertPayloadArgs(\n functionArgumentTypes: string[],\n functionArguments: EntryFunctionArgumentTypes[]\n): string[] {\n const args: string[] = []\n for (let i = 0; i < functionArguments.length; i++) {\n args.push(convertArg(functionArgumentTypes[i], functionArguments[i]))\n }\n return args\n}\n\nexport function convertArg(argsType: string, arg: EntryFunctionArgumentTypes): string {\n switch (argsType) {\n case 'bool':\n return bcs\n .bool()\n .serialize(arg as boolean)\n .toBase64()\n case 'u256':\n return bcs\n .u256()\n .serialize(arg as bigint)\n .toBase64()\n case 'u128':\n return bcs\n .u128()\n .serialize(arg as bigint)\n .toBase64()\n case 'u64':\n return bcs\n .u64()\n .serialize(arg as bigint)\n .toBase64()\n case 'u32':\n return bcs\n .u32()\n .serialize(arg as number)\n .toBase64()\n case 'u16':\n return bcs\n .u16()\n .serialize(arg as number)\n .toBase64()\n case 'u8':\n return bcs\n .u8()\n .serialize(arg as number)\n .toBase64()\n case 'address':\n return bcs\n .address()\n .serialize(arg as string)\n .toBase64()\n case 'vector<u8>':\n return bcs\n .vector(bcs.u8())\n .serialize(arg as unknown as Uint8Array)\n .toBase64()\n case 'vector<address>':\n return bcs\n .vector(bcs.address())\n .serialize(arg as unknown as string[])\n .toBase64()\n case 'vector<vector<u8>>':\n return bcs\n .vector(bcs.vector(bcs.u8()))\n .serialize(arg as unknown as Uint8Array[])\n .toBase64()\n default:\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`Invalid type argsType: ${argsType.toString()}`)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/providers/initia.ts","../src/signers/initia.ts","../src/signers/utils.ts"],"names":["AccAddress","SignedTransaction"],"mappings":";AAAA,SAAS,YAAY,iBAAwC;AAE7D;AAAA,EACI;AAAA,EAMA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,mBAAmB;AAErB,IAAM,iBAAN,MAAM,gBAAmC;AAAA,EAGpC,YAAmB,KAAa;AAAb;AACvB,SAAK,iBAAiB,IAAI,UAAU,GAAG;AAAA,EAC3C;AAAA,EAGA,OAAO,KAAK,QAAgC;AACxC,QAAI,OAAO,WAAW,UAAU;AAC5B,aAAO,IAAI,gBAAe,MAAM;AAAA,IACpC,OAAO;AACH,YAAM,IAAI,MAAM,oBAAoB;AAAA,IACxC;AAAA,EACJ;AAAA,EAEA,IAAI,SAAoB;AACpB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,WAAW,SAAkC;AAC/C,QAAI;AACJ,QAAI,CAAC,YAAY,OAAO,GAAG;AACvB,mBAAa,WAAW,QAAQ,OAAO;AAAA,IAC3C,WAAW,QAAQ,WAAW,MAAM,GAAG;AACnC,mBAAa;AAAA,IACjB,OAAO;AACH,YAAM,IAAI,MAAM,uBAAuB;AAAA,IAC3C;AAGA,UAAM,YAAY,MAAM,KAAK,eAAe,KAAK,QAAQ,UAAU;AACnE,UAAM,QAAQ,UAAU,CAAC;AACzB,WAAO,MAAM,SAAS;AAAA,EAC1B;AAAA,EAEA,MAAM,SAAS,UAA2C;AACtD,QAAI,cAAc;AAClB,QAAI,OAAO,aAAa,UAAU;AAC9B,oBAAc;AAAA,IAClB,WAAW,aAAa,UAAU;AAC9B,oBAAc,MAAM,KAAK,eAAe,WACnC,UAAU,EACV,KAAK,CAAC,eAAe,OAAO,WAAW,MAAM,OAAO,MAAM,CAAC;AAAA,IACpE,OAAO;AACH,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACtC;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,WAAW,UAAU,WAAW;AAC3E,WAAO,MAAM,KAAK,QAAQ;AAAA,EAC9B;AAAA,EAEA,MAAM,yBAAyB,UAA2D;AACtF,WAAO,QAAQ,OAAO,IAAI,MAAM,yBAAyB,CAAC;AAAA,EAC9D;AAAA,EAEA,MAAM,iBAAkC;AACpC,WAAO,KAAK,eAAe,WAAW,UAAU,EAAE,KAAK,CAAC,eAAe,OAAO,WAAW,MAAM,OAAO,MAAM,CAAC;AAAA,EACjH;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,eAAe,WAAW,UAAU,QAAQ,EAAE,KAAK,CAAC,UAAU,OAAO,MAAM,MAAM,OAAO,IAAI,CAAC;AAAA,IAC7G,WAAW,aAAa,UAAU;AAC9B,aAAO,KAAK,eAAe,WAAW,UAAU,EAAE,KAAK,CAAC,UAAU,OAAO,MAAM,MAAM,OAAO,IAAI,CAAC;AAAA,IACrG,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,iCAAiC;AAAA,IACrD;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,GAAG,OAAO,MAAM;AAC3D,WAAO,oBAAoB,KAAK,QAAQ;AAAA,EAC5C;AAAA,EAEA,MAAM,sBAAsB,QAA6C;AACrE,QAAI,CAAC,YAAY,MAAM,GAAG;AACtB,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACrD;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,GAAG,OAAO,MAAM;AAC3D,WAAO,mBAAmB,KAAK,QAAQ;AAAA,EAC3C;AAAA,EAEA,MAAM,oBACF,eACA,WACe;AACf,UAAM,iBAAiB,MAAM,QAAQ,QAAQ,aAAa;AAE1D,QAAI;AACJ,QAAI,CAAC,YAAY,cAAc,GAAG;AAC9B,mBAAa,WAAW,QAAQ,cAAc;AAAA,IAClD,WAAW,eAAe,WAAW,MAAM,GAAG;AAC1C,mBAAa;AAAA,IACjB,OAAO;AACH,YAAM,IAAI,MAAM,uBAAuB;AAAA,IAC3C;AACA,UAAM,WAAW,MAAM,KAAK,eAAe,KAAK,YAAY,UAAU;AACtE,WAAO,SAAS,kBAAkB;AAAA,EACtC;AAAA,EAEA,MAAM,gBAAgB,aAAgC,cAAoD;AAEtG,UAAM,MAAM,YAAY;AAExB,UAAM,WAAW,MAAM,KAAK,eAAe,GAAG,UAAU,GAAG;AAC3D,WAAO,mBAAmB,KAAK,QAAQ;AAAA,EAC3C;AAAA,EAEA,MAAM,mBAAmB,SAA6B,OAA6C;AAC/F,UAAM,gBAAgB,QAAQ;AAE9B,QAAM,cAAsB,SAAoB,GAAG;AAC/C,YAAM,IAAI,MAAM,cAAc,OAAO;AAAA,IACzC;AACA,WAAO,QAAQ,QAAQ,mBAAmB,KAAK,aAAa,CAAC;AAAA,EACjE;AAAA,EAEA,MAAM,eAAe,aAAgC,MAA4C;AAC7F,UAAM,UAAU,MAAM,KAAK,gBAAgB,aAAa,IAAI;AAC5D,WAAO,KAAK,mBAAmB,SAAS,IAAI;AAAA,EAChD;AACJ;;;ACnJA,SAAS,cAAAA,aAAkC,aAAa,UAAU,QAAQ,cAAc;AAExF;AAAA,EAEI,qBAAAC;AAAA,EAIA;AAAA,OACG;AACP,SAAS,cAAc;;;ACVvB,SAAc,YAAY,WAAW;AAI9B,SAAS,2BAA2B,QAAgB,SAAsC;AAC7F,QAAM,kBAAkB,QAAQ,SAAS,MAAM,IAAI;AACnD,QAAM,gBAAgB,gBAAgB,CAAC;AACvC,QAAM,aAAa,gBAAgB,CAAC;AACpC,QAAM,eAAe,gBAAgB,CAAC;AACtC,QAAM,OAAO,kBAAkB,QAAQ,yBAAyB,CAAC,GAAG,QAAQ,iBAAiB;AAC7F,QAAM,MAAM,IAAI;AAAA,IACZ;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA,QAAQ,iBAAiB,CAAC;AAAA;AAAA,IAC1B;AAAA,EACJ;AACA,SAAO;AACX;AACO,SAAS,kBACZ,uBACA,mBACQ;AACR,QAAM,OAAiB,CAAC;AACxB,WAAS,IAAI,GAAG,IAAI,kBAAkB,QAAQ,KAAK;AAC/C,SAAK,KAAK,WAAW,sBAAsB,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;AAAA,EACxE;AACA,SAAO;AACX;AAEO,SAAS,WAAW,UAAkB,KAAyC;AAClF,UAAQ,UAAU;AAAA,IACd,KAAK;AACD,aAAO,IACF,KAAK,EACL,UAAU,GAAc,EACxB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,KAAK,EACL,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,KAAK,EACL,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,IAAI,EACJ,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,IAAI,EACJ,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,IAAI,EACJ,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,GAAG,EACH,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,QAAQ,EACR,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,OAAO,IAAI,GAAG,CAAC,EACf,UAAU,GAA4B,EACtC,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,OAAO,IAAI,QAAQ,CAAC,EACpB,UAAU,GAA0B,EACpC,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,OAAO,IAAI,OAAO,IAAI,GAAG,CAAC,CAAC,EAC3B,UAAU,GAA8B,EACxC,SAAS;AAAA,IAClB;AAEI,YAAM,IAAI,MAAM,0BAA0B,SAAS,SAAS,CAAC,EAAE;AAAA,EACvE;AACJ;;;AD3EO,IAAM,eAAN,MAA2D;AAAA,EAKtD,YAAY,QAA8B;AAC9C,SAAK,YAAY;AAAA,EACrB;AAAA,EAWA,OAAO,KAAK,QAA8B,MAA6C;AACnF,QAAI,kBAAkB,aAAa;AAC/B,aAAO,IAAI,KAAK,MAAM;AAAA,IAC1B,WAAW,OAAO,WAAW,YAAY,SAAS,QAAW;AACzD,YAAM,SAAS,IAAI,OAAO,OAAO,KAAK,OAAO,MAAM,CAAC,CAAC;AACrD,aAAO,IAAI,KAAK,MAAM;AAAA,IAC1B,WAAW,OAAO,WAAW,YAAY,SAAS,QAAW;AACzD,UAAI,KAAK,WAAW,IAAI,GAAG;AACvB,cAAM,CAAC,GAAG,UAAU,SAAS,IAAI,KAAK,IAAI,KAAK,MAAM,MAAM,GAAG,IAAI,MAAM,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC;AAC9F,cAAM,qBAAqB,OACtB,KAAK,EACL,MAAM,KAAK,EACX,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,EAChC,KAAK,GAAG;AACb,cAAM,MAAM,IAAI,YAAY;AAAA,UACxB,UAAU;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,QACJ,CAAC;AACD,eAAO,IAAI,KAAK,GAAG;AAAA,MACvB;AAAA,IACJ;AACA,UAAM,IAAI,MAAM,oBAAoB;AAAA,EACxC;AAAA,EAEA,IAAI,SAAiB;AACjB,QAAI,CAAC,KAAK,cAAc;AACpB,YAAM,IAAI,MAAM,+DAA+D;AAAA,IACnF;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,QAAQ,UAAkD;AACtD,QAAI,EAAE,oBAAoB,iBAAiB;AACvC,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACvD;AAEA,SAAK,WAAW;AAChB,SAAK,eAAe,IAAI,OAAO,KAAK,SAAS,QAAQ,KAAK,SAAS;AACnE,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,aAA8B;AAChC,WAAO,QAAQ,QAAQD,YAAW,MAAM,KAAK,UAAU,UAAU,CAAC;AAAA,EACtE;AAAA,EAEA,IAAI,UAAkB;AAClB,WAAOA,YAAW,MAAM,KAAK,UAAU,UAAU;AAAA,EACrD;AAAA,EAEA,MAAM,eAAe,aAAgC,MAA4C;AAC7F,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI,MAAM,sBAAsB;AAAA,IAC1C;AACA,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,QAAI,CAAC,KAAK,cAAc;AACpB,YAAM,IAAI,MAAM,+DAA+D;AAAA,IACnF;AAGA,UAAM,KAAK,YAAY;AAEvB,UAAM,EAAE,gBAAgB,SAAS,IAAI,MAAM,KAAK,aAAa,yBAAyB;AAEtF,UAAM,WAAW,MAAM,KAAK,aAAa,IAAI,OAAO,IAAI;AAAA,MACpD,eAAe;AAAA,MACf;AAAA,MACA,SAAS,MAAM,KAAK,aAAa,IAAI,WAAW,QAAQ;AAAA,MACxD,UAAU,SAAS,SAAS;AAAA,IAChC,CAAC;AACD,WAAOC,mBAAkB,KAAK,QAAQ;AAAA,EAC1C;AAAA,EAEA,MAAM,WAAW,QAAyC;AACtD,WAAO,KAAK,UAAU,KAAK,OAAO,KAAK,MAAM,CAAC;AAAA,EAClD;AAAA,EAEA,MAAM,iBAAiB,gBAAmE;AACtF,UAAM,SAAS,KAAK,aAAc,IAAI,WAAW,SAAS;AAC1D,UAAM,MAAM,2BAA2B,QAAQ,eAAe,OAAO;AACrE,UAAM,gBAEF;AAAA,MACA,MAAM,CAAC,GAAG;AAAA,IACd;AACA,QAAI,eAAe,SAAS,QAAQ,QAAW;AAC3C,oBAAc,MAAM,eAAe,QAAQ;AAAA,IAC/C;AACA,QAAI,eAAe,SAAS,aAAa,QAAW;AAChD,UAAI,MAAM,OAAO,eAAe,QAAQ,QAAQ,CAAC,KAAK,eAAe,QAAQ,SAAS,SAAS,OAAO,GAAG;AACrG,sBAAc,YAAY,eAAe,QAAQ;AAAA,MACrD,WAAW,CAAC,MAAM,OAAO,eAAe,QAAQ,QAAQ,CAAC,GAAG;AACxD,sBAAc,YAAY,GAAG,eAAe,QAAQ,QAAQ;AAAA,MAChE,OAAO;AACH,cAAM,MAAM,iCAAiC,eAAe,QAAQ,QAAQ,EAAE;AAAA,MAClF;AAAA,IACJ;AAEA,UAAM,KAAK,MAAM,KAAK,aAAc,SAAS,aAAa;AAC1D,WAAO,mBAAmB,KAAK,EAAE;AAAA,EACrC;AACJ","sourcesContent":["import { AccAddress, LCDClient, WaitTxBroadcastResult } from '@initia/initia.js'\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 InitiaProvider implements Provider {\n readonly nativeProvider: LCDClient\n\n private constructor(public url: string) {\n this.nativeProvider = new LCDClient(url)\n }\n\n static from(url: string): InitiaProvider\n static from(source: string): InitiaProvider {\n if (typeof source === 'string') {\n return new InitiaProvider(source)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n get native(): LCDClient {\n return this.nativeProvider\n }\n\n async getBalance(address: string): Promise<string> {\n let accAddress: AccAddress\n if (!isHexString(address)) {\n accAddress = AccAddress.fromHex(address)\n } else if (address.startsWith('init')) {\n accAddress = address\n } else {\n throw new Error('Invalid Aptos address')\n }\n\n //todo convert all address to aclAddress\n const resources = await this.nativeProvider.bank.balance(accAddress)\n const coins = resources[0]\n return coins.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.tendermint\n .blockInfo()\n .then((ledgerInfo) => Number(ledgerInfo.block.header.height))\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.tendermint.blockInfo(blockNumber)\n return Block.from(response)\n }\n\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n return Promise.reject(new Error('Method not implemented.'))\n }\n\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) => Number(ledgerInfo.block.header.height))\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.tendermint.blockInfo(blockTag).then((block) => Number(block.block.header.time))\n } else if (blockTag === 'latest') {\n return this.nativeProvider.tendermint.blockInfo().then((block) => Number(block.block.header.time))\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 Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(txHash)\n return TransactionResponse.from(response)\n }\n\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n if (!isHexString(txHash)) {\n throw new Error('Invalid Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(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\n let accAddress: AccAddress\n if (!isHexString(_addressOrName)) {\n accAddress = AccAddress.fromHex(_addressOrName)\n } else if (_addressOrName.startsWith('init')) {\n accAddress = _addressOrName\n } else {\n throw new Error('Invalid Aptos address')\n }\n const response = await this.nativeProvider.auth.accountInfo(accAddress)\n return response.getSequenceNumber()\n }\n\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcast>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.tx.broadcast(stx) //TODO need change to broadcastAsync ??\n return TransactionPending.from(response)\n }\n\n async confirmTransaction(pending: TransactionPending, _opts?: object): Promise<TransactionReceipt> {\n const nativePending = pending.pending as WaitTxBroadcastResult\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (((nativePending as any).code as number) !== 0) {\n throw new Error(nativePending.raw_log)\n }\n return Promise.resolve(TransactionReceipt.from(nativePending))\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 { AccAddress, CreateTxOptions, Key, MnemonicKey, ModeInfo, RawKey, Wallet } from '@initia/initia.js'\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 { InitiaProvider } from '../providers'\n\nimport { InitiaBuildTxRequest } from './types'\nimport { convertPayloadToMsgExecute } from './utils'\n\nexport class InitiaSigner implements Signer<InitiaBuildTxRequest> {\n public nativeKey: MnemonicKey | RawKey\n public nativeSigner: Wallet | undefined\n public provider: InitiaProvider | undefined\n\n private constructor(signer: MnemonicKey | RawKey) {\n this.nativeKey = signer\n }\n\n static from(signer: MnemonicKey): Signer<InitiaBuildTxRequest>\n static from(privKey: string): Signer<InitiaBuildTxRequest>\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<InitiaBuildTxRequest>\n\n static from(source: string | MnemonicKey, path?: string): Signer<InitiaBuildTxRequest> {\n if (source instanceof MnemonicKey) {\n return new this(source)\n } else if (typeof source === 'string' && path === undefined) {\n const signer = new RawKey(Buffer.from(trim0x(source))) // todo double check\n return new this(signer)\n } else if (typeof source === 'string' && path !== undefined) {\n if (path.startsWith('m/')) {\n const [_, coinType, account, __, index] = path.match(/\\d+/g)?.map(Number) ?? [44, 118, 0, 0, 0]\n const normalizeMnemonics = source\n .trim()\n .split(/\\s+/)\n .map((part) => part.toLowerCase())\n .join(' ')\n const key = new MnemonicKey({\n mnemonic: normalizeMnemonics,\n coinType,\n account,\n index,\n })\n return new this(key)\n }\n }\n throw new Error('Invalid parameters')\n }\n\n get native(): Wallet {\n if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n return this.nativeSigner\n }\n\n connect(provider: Provider): Signer<InitiaBuildTxRequest> {\n if (!(provider instanceof InitiaProvider)) {\n throw new Error('Only InitiaProvider is supported.')\n }\n\n this.provider = provider\n this.nativeSigner = new Wallet(this.provider.native, this.nativeKey)\n return this\n }\n\n async getAddress(): Promise<string> {\n return Promise.resolve(AccAddress.toHex(this.nativeKey.accAddress))\n }\n\n get address(): string {\n return AccAddress.toHex(this.nativeKey.accAddress)\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 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 if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n\n type NativeTransactionRequest = Parameters<Key['signTx']>[0]\n const tx = transaction.request as NativeTransactionRequest\n\n const { account_number, sequence } = await this.nativeSigner.accountNumberAndSequence()\n\n const response = await this.nativeSigner.key.signTx(tx, {\n accountNumber: account_number,\n sequence,\n chainId: await this.nativeSigner.lcd.tendermint.chainId(),\n signMode: ModeInfo.SignMode.SIGN_MODE_DIRECT,\n })\n return SignedTransaction.from(response)\n }\n\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n return this.nativeKey.sign(Buffer.from(buffer))\n }\n\n async buildTransaction(buildTxRequest: InitiaBuildTxRequest): Promise<TransactionRequest> {\n const sender = this.nativeSigner!.key.accAddress.toString()\n const msg = convertPayloadToMsgExecute(sender, buildTxRequest.payload)\n const createOptions: CreateTxOptions & {\n sequence?: number\n } = {\n msgs: [msg],\n }\n if (buildTxRequest.options?.gas !== undefined) {\n createOptions.gas = buildTxRequest.options.gas\n }\n if (buildTxRequest.options?.gasPrice !== undefined) {\n if (isNaN(Number(buildTxRequest.options.gasPrice)) && buildTxRequest.options.gasPrice.endsWith('uinit')) {\n createOptions.gasPrices = buildTxRequest.options.gasPrice\n } else if (!isNaN(Number(buildTxRequest.options.gasPrice))) {\n createOptions.gasPrices = `${buildTxRequest.options.gasPrice}uinit`\n } else {\n throw Error(`Invalid gas price for initia :${buildTxRequest.options.gasPrice}`)\n }\n }\n // createOptions.sequence = initial + offset\n const tx = await this.nativeSigner!.createTx(createOptions)\n return TransactionRequest.from(tx)\n }\n}\n","import { Msg, MsgExecute, bcs } from '@initia/initia.js'\n\nimport { EntryFunctionArgumentTypes, InputEntryFunctionData } from '@layerzerolabs/move-definitions'\n\nexport function convertPayloadToMsgExecute(sender: string, payload: InputEntryFunctionData): Msg {\n const functionStructs = payload.function.split('::')\n const moduleAddress = functionStructs[0]\n const moduleName = functionStructs[1]\n const functionName = functionStructs[2]\n const args = covertPayloadArgs(payload.functionArgumentTypes ?? [], payload.functionArguments)\n const msg = new MsgExecute(\n sender, // sender address\n moduleAddress, // module owner address\n moduleName, // module name\n functionName, // function name\n payload.typeArguments ?? [], // type args\n args\n )\n return msg\n}\nexport function covertPayloadArgs(\n functionArgumentTypes: string[],\n functionArguments: EntryFunctionArgumentTypes[]\n): string[] {\n const args: string[] = []\n for (let i = 0; i < functionArguments.length; i++) {\n args.push(convertArg(functionArgumentTypes[i], functionArguments[i]))\n }\n return args\n}\n\nexport function convertArg(argsType: string, arg: EntryFunctionArgumentTypes): string {\n switch (argsType) {\n case 'bool':\n return bcs\n .bool()\n .serialize(arg as boolean)\n .toBase64()\n case 'u256':\n return bcs\n .u256()\n .serialize(arg as bigint)\n .toBase64()\n case 'u128':\n return bcs\n .u128()\n .serialize(arg as bigint)\n .toBase64()\n case 'u64':\n return bcs\n .u64()\n .serialize(arg as bigint)\n .toBase64()\n case 'u32':\n return bcs\n .u32()\n .serialize(arg as number)\n .toBase64()\n case 'u16':\n return bcs\n .u16()\n .serialize(arg as number)\n .toBase64()\n case 'u8':\n return bcs\n .u8()\n .serialize(arg as number)\n .toBase64()\n case 'address':\n return bcs\n .address()\n .serialize(arg as string)\n .toBase64()\n case 'vector<u8>':\n return bcs\n .vector(bcs.u8())\n .serialize(arg as unknown as Uint8Array)\n .toBase64()\n case 'vector<address>':\n return bcs\n .vector(bcs.address())\n .serialize(arg as unknown as string[])\n .toBase64()\n case 'vector<vector<u8>>':\n return bcs\n .vector(bcs.vector(bcs.u8()))\n .serialize(arg as unknown as Uint8Array[])\n .toBase64()\n default:\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`Invalid type argsType: ${argsType.toString()}`)\n }\n}\n"]}
|
package/dist/index.d.mts
CHANGED
|
@@ -18,6 +18,7 @@ declare class InitiaProvider implements Provider {
|
|
|
18
18
|
getTransactionReceipt(txHash: string): Promise<TransactionReceipt>;
|
|
19
19
|
getTransactionCount(addressOrName: string | Promise<string>, _blockTag?: BlockTag | Promise<BlockTag>): Promise<number>;
|
|
20
20
|
sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending>;
|
|
21
|
+
confirmTransaction(pending: TransactionPending, _opts?: object): Promise<TransactionReceipt>;
|
|
21
22
|
sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt>;
|
|
22
23
|
}
|
|
23
24
|
|
package/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ declare class InitiaProvider implements Provider {
|
|
|
18
18
|
getTransactionReceipt(txHash: string): Promise<TransactionReceipt>;
|
|
19
19
|
getTransactionCount(addressOrName: string | Promise<string>, _blockTag?: BlockTag | Promise<BlockTag>): Promise<number>;
|
|
20
20
|
sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending>;
|
|
21
|
+
confirmTransaction(pending: TransactionPending, _opts?: object): Promise<TransactionReceipt>;
|
|
21
22
|
sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt>;
|
|
22
23
|
}
|
|
23
24
|
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { LCDClient, AccAddress, MsgExecute, bcs, MnemonicKey, RawKey, Wallet, ModeInfo } from '@initia/initia.js';
|
|
2
|
-
import { BigNumber } from 'ethers';
|
|
3
2
|
import { Block, TransactionResponse, TransactionReceipt, TransactionPending, SignedTransaction, TransactionRequest } from '@layerzerolabs/lz-core';
|
|
4
3
|
import { isHexString, trim0x } from '@layerzerolabs/lz-utilities';
|
|
5
4
|
|
|
@@ -37,7 +36,7 @@ var InitiaProvider = class _InitiaProvider {
|
|
|
37
36
|
if (typeof blockTag === "number") {
|
|
38
37
|
blockNumber = blockTag;
|
|
39
38
|
} else if (blockTag === "latest") {
|
|
40
|
-
blockNumber = await this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) =>
|
|
39
|
+
blockNumber = await this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) => Number(ledgerInfo.block.header.height));
|
|
41
40
|
} else {
|
|
42
41
|
throw new Error("Invalid blockTag");
|
|
43
42
|
}
|
|
@@ -48,7 +47,7 @@ var InitiaProvider = class _InitiaProvider {
|
|
|
48
47
|
return Promise.reject(new Error("Method not implemented."));
|
|
49
48
|
}
|
|
50
49
|
async getBlockNumber() {
|
|
51
|
-
return this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) =>
|
|
50
|
+
return this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) => Number(ledgerInfo.block.header.height));
|
|
52
51
|
}
|
|
53
52
|
async getSlot(_finality) {
|
|
54
53
|
await Promise.resolve();
|
|
@@ -56,9 +55,9 @@ var InitiaProvider = class _InitiaProvider {
|
|
|
56
55
|
}
|
|
57
56
|
async getBlockTimestamp(blockTag) {
|
|
58
57
|
if (typeof blockTag === "number") {
|
|
59
|
-
return this.nativeProvider.tendermint.blockInfo(blockTag).then((block) =>
|
|
58
|
+
return this.nativeProvider.tendermint.blockInfo(blockTag).then((block) => Number(block.block.header.time));
|
|
60
59
|
} else if (blockTag === "latest") {
|
|
61
|
-
return this.nativeProvider.tendermint.blockInfo().then((block) =>
|
|
60
|
+
return this.nativeProvider.tendermint.blockInfo().then((block) => Number(block.block.header.time));
|
|
62
61
|
} else {
|
|
63
62
|
throw new Error("Invalid blockTag");
|
|
64
63
|
}
|
|
@@ -95,13 +94,16 @@ var InitiaProvider = class _InitiaProvider {
|
|
|
95
94
|
const response = await this.nativeProvider.tx.broadcast(stx);
|
|
96
95
|
return TransactionPending.from(response);
|
|
97
96
|
}
|
|
98
|
-
async
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
throw new Error(response.raw_log);
|
|
97
|
+
async confirmTransaction(pending, _opts) {
|
|
98
|
+
const nativePending = pending.pending;
|
|
99
|
+
if (nativePending.code !== 0) {
|
|
100
|
+
throw new Error(nativePending.raw_log);
|
|
103
101
|
}
|
|
104
|
-
return TransactionReceipt.from(
|
|
102
|
+
return Promise.resolve(TransactionReceipt.from(nativePending));
|
|
103
|
+
}
|
|
104
|
+
async sendAndConfirm(transaction, opts) {
|
|
105
|
+
const pending = await this.sendTransaction(transaction, opts);
|
|
106
|
+
return this.confirmTransaction(pending, opts);
|
|
105
107
|
}
|
|
106
108
|
};
|
|
107
109
|
function convertPayloadToMsgExecute(sender, payload) {
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/providers/initia.ts","../src/signers/initia.ts","../src/signers/utils.ts"],"names":["AccAddress","SignedTransaction"],"mappings":";AAAA,SAAS,YAAY,iBAAiB;AACtC,SAAS,iBAAiB;AAE1B;AAAA,EACI;AAAA,EAMA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,mBAAmB;AAErB,IAAM,iBAAN,MAAM,gBAAmC;AAAA,EAGpC,YAAmB,KAAa;AAAb;AACvB,SAAK,iBAAiB,IAAI,UAAU,GAAG;AAAA,EAC3C;AAAA,EAGA,OAAO,KAAK,QAAgC;AACxC,QAAI,OAAO,WAAW,UAAU;AAC5B,aAAO,IAAI,gBAAe,MAAM;AAAA,IACpC,OAAO;AACH,YAAM,IAAI,MAAM,oBAAoB;AAAA,IACxC;AAAA,EACJ;AAAA,EAEA,IAAI,SAAoB;AACpB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,WAAW,SAAkC;AAC/C,QAAI;AACJ,QAAI,CAAC,YAAY,OAAO,GAAG;AACvB,mBAAa,WAAW,QAAQ,OAAO;AAAA,IAC3C,WAAW,QAAQ,WAAW,MAAM,GAAG;AACnC,mBAAa;AAAA,IACjB,OAAO;AACH,YAAM,IAAI,MAAM,uBAAuB;AAAA,IAC3C;AAGA,UAAM,YAAY,MAAM,KAAK,eAAe,KAAK,QAAQ,UAAU;AACnE,UAAM,QAAQ,UAAU,CAAC;AACzB,WAAO,MAAM,SAAS;AAAA,EAC1B;AAAA,EAEA,MAAM,SAAS,UAA2C;AACtD,QAAI,cAAc;AAClB,QAAI,OAAO,aAAa,UAAU;AAC9B,oBAAc;AAAA,IAClB,WAAW,aAAa,UAAU;AAC9B,oBAAc,MAAM,KAAK,eAAe,WACnC,UAAU,EACV,KAAK,CAAC,eAAe,UAAU,KAAK,WAAW,MAAM,OAAO,MAAM,EAAE,SAAS,CAAC;AAAA,IACvF,OAAO;AACH,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACtC;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,WAAW,UAAU,WAAW;AAC3E,WAAO,MAAM,KAAK,QAAQ;AAAA,EAC9B;AAAA,EAEA,MAAM,yBAAyB,UAA2D;AACtF,WAAO,QAAQ,OAAO,IAAI,MAAM,yBAAyB,CAAC;AAAA,EAC9D;AAAA,EAEA,MAAM,iBAAkC;AACpC,WAAO,KAAK,eAAe,WACtB,UAAU,EACV,KAAK,CAAC,eAAe,UAAU,KAAK,WAAW,MAAM,OAAO,MAAM,EAAE,SAAS,CAAC;AAAA,EACvF;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,eAAe,WACtB,UAAU,QAAQ,EAClB,KAAK,CAAC,UAAU,UAAU,KAAK,MAAM,MAAM,OAAO,IAAI,EAAE,SAAS,CAAC;AAAA,IAC3E,WAAW,aAAa,UAAU;AAC9B,aAAO,KAAK,eAAe,WACtB,UAAU,EACV,KAAK,CAAC,UAAU,UAAU,KAAK,MAAM,MAAM,OAAO,IAAI,EAAE,SAAS,CAAC;AAAA,IAC3E,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,iCAAiC;AAAA,IACrD;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,GAAG,OAAO,MAAM;AAC3D,WAAO,oBAAoB,KAAK,QAAQ;AAAA,EAC5C;AAAA,EAEA,MAAM,sBAAsB,QAA6C;AACrE,QAAI,CAAC,YAAY,MAAM,GAAG;AACtB,YAAM,IAAI,MAAM,iCAAiC;AAAA,IACrD;AAEA,UAAM,WAAW,MAAM,KAAK,eAAe,GAAG,OAAO,MAAM;AAC3D,WAAO,mBAAmB,KAAK,QAAQ;AAAA,EAC3C;AAAA,EAEA,MAAM,oBACF,eACA,WACe;AACf,UAAM,iBAAiB,MAAM,QAAQ,QAAQ,aAAa;AAE1D,QAAI;AACJ,QAAI,CAAC,YAAY,cAAc,GAAG;AAC9B,mBAAa,WAAW,QAAQ,cAAc;AAAA,IAClD,WAAW,eAAe,WAAW,MAAM,GAAG;AAC1C,mBAAa;AAAA,IACjB,OAAO;AACH,YAAM,IAAI,MAAM,uBAAuB;AAAA,IAC3C;AACA,UAAM,WAAW,MAAM,KAAK,eAAe,KAAK,YAAY,UAAU;AACtE,WAAO,SAAS,kBAAkB;AAAA,EACtC;AAAA,EAEA,MAAM,gBAAgB,aAAgC,cAAoD;AAEtG,UAAM,MAAM,YAAY;AAExB,UAAM,WAAW,MAAM,KAAK,eAAe,GAAG,UAAU,GAAG;AAC3D,WAAO,mBAAmB,KAAK,QAAQ;AAAA,EAC3C;AAAA,EAEA,MAAM,eAAe,aAAgC,MAA4C;AAM7F,UAAM,MAAM,YAAY;AACxB,UAAM,WAAW,MAAM,KAAK,eAAe,GAAG,UAAU,GAAG;AAE3D,QAAM,SAAiB,SAAoB,GAAG;AAC1C,YAAM,IAAI,MAAM,SAAS,OAAO;AAAA,IACpC;AACA,WAAO,mBAAmB,KAAK,QAAQ;AAAA,EAC3C;AACJ;;;AC3JA,SAAS,cAAAA,aAAkC,aAAa,UAAU,QAAQ,cAAc;AAExF;AAAA,EAEI,qBAAAC;AAAA,EAIA;AAAA,OACG;AACP,SAAS,cAAc;;;ACVvB,SAAc,YAAY,WAAW;AAI9B,SAAS,2BAA2B,QAAgB,SAAsC;AAC7F,QAAM,kBAAkB,QAAQ,SAAS,MAAM,IAAI;AACnD,QAAM,gBAAgB,gBAAgB,CAAC;AACvC,QAAM,aAAa,gBAAgB,CAAC;AACpC,QAAM,eAAe,gBAAgB,CAAC;AACtC,QAAM,OAAO,kBAAkB,QAAQ,yBAAyB,CAAC,GAAG,QAAQ,iBAAiB;AAC7F,QAAM,MAAM,IAAI;AAAA,IACZ;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA;AAAA;AAAA,IACA,QAAQ,iBAAiB,CAAC;AAAA;AAAA,IAC1B;AAAA,EACJ;AACA,SAAO;AACX;AACO,SAAS,kBACZ,uBACA,mBACQ;AACR,QAAM,OAAiB,CAAC;AACxB,WAAS,IAAI,GAAG,IAAI,kBAAkB,QAAQ,KAAK;AAC/C,SAAK,KAAK,WAAW,sBAAsB,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC;AAAA,EACxE;AACA,SAAO;AACX;AAEO,SAAS,WAAW,UAAkB,KAAyC;AAClF,UAAQ,UAAU;AAAA,IACd,KAAK;AACD,aAAO,IACF,KAAK,EACL,UAAU,GAAc,EACxB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,KAAK,EACL,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,KAAK,EACL,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,IAAI,EACJ,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,IAAI,EACJ,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,IAAI,EACJ,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,GAAG,EACH,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,QAAQ,EACR,UAAU,GAAa,EACvB,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,OAAO,IAAI,GAAG,CAAC,EACf,UAAU,GAA4B,EACtC,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,OAAO,IAAI,QAAQ,CAAC,EACpB,UAAU,GAA0B,EACpC,SAAS;AAAA,IAClB,KAAK;AACD,aAAO,IACF,OAAO,IAAI,OAAO,IAAI,GAAG,CAAC,CAAC,EAC3B,UAAU,GAA8B,EACxC,SAAS;AAAA,IAClB;AAEI,YAAM,IAAI,MAAM,0BAA0B,SAAS,SAAS,CAAC,EAAE;AAAA,EACvE;AACJ;;;AD3EO,IAAM,eAAN,MAA2D;AAAA,EAKtD,YAAY,QAA8B;AAC9C,SAAK,YAAY;AAAA,EACrB;AAAA,EAWA,OAAO,KAAK,QAA8B,MAA6C;AACnF,QAAI,kBAAkB,aAAa;AAC/B,aAAO,IAAI,KAAK,MAAM;AAAA,IAC1B,WAAW,OAAO,WAAW,YAAY,SAAS,QAAW;AACzD,YAAM,SAAS,IAAI,OAAO,OAAO,KAAK,OAAO,MAAM,CAAC,CAAC;AACrD,aAAO,IAAI,KAAK,MAAM;AAAA,IAC1B,WAAW,OAAO,WAAW,YAAY,SAAS,QAAW;AACzD,UAAI,KAAK,WAAW,IAAI,GAAG;AACvB,cAAM,CAAC,GAAG,UAAU,SAAS,IAAI,KAAK,IAAI,KAAK,MAAM,MAAM,GAAG,IAAI,MAAM,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC;AAC9F,cAAM,qBAAqB,OACtB,KAAK,EACL,MAAM,KAAK,EACX,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,EAChC,KAAK,GAAG;AACb,cAAM,MAAM,IAAI,YAAY;AAAA,UACxB,UAAU;AAAA,UACV;AAAA,UACA;AAAA,UACA;AAAA,QACJ,CAAC;AACD,eAAO,IAAI,KAAK,GAAG;AAAA,MACvB;AAAA,IACJ;AACA,UAAM,IAAI,MAAM,oBAAoB;AAAA,EACxC;AAAA,EAEA,IAAI,SAAiB;AACjB,QAAI,CAAC,KAAK,cAAc;AACpB,YAAM,IAAI,MAAM,+DAA+D;AAAA,IACnF;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,QAAQ,UAAkD;AACtD,QAAI,EAAE,oBAAoB,iBAAiB;AACvC,YAAM,IAAI,MAAM,mCAAmC;AAAA,IACvD;AAEA,SAAK,WAAW;AAChB,SAAK,eAAe,IAAI,OAAO,KAAK,SAAS,QAAQ,KAAK,SAAS;AACnE,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,aAA8B;AAChC,WAAO,QAAQ,QAAQD,YAAW,MAAM,KAAK,UAAU,UAAU,CAAC;AAAA,EACtE;AAAA,EAEA,IAAI,UAAkB;AAClB,WAAOA,YAAW,MAAM,KAAK,UAAU,UAAU;AAAA,EACrD;AAAA,EAEA,MAAM,eAAe,aAAgC,MAA4C;AAC7F,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI,MAAM,sBAAsB;AAAA,IAC1C;AACA,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,QAAI,CAAC,KAAK,cAAc;AACpB,YAAM,IAAI,MAAM,+DAA+D;AAAA,IACnF;AAGA,UAAM,KAAK,YAAY;AAEvB,UAAM,EAAE,gBAAgB,SAAS,IAAI,MAAM,KAAK,aAAa,yBAAyB;AAEtF,UAAM,WAAW,MAAM,KAAK,aAAa,IAAI,OAAO,IAAI;AAAA,MACpD,eAAe;AAAA,MACf;AAAA,MACA,SAAS,MAAM,KAAK,aAAa,IAAI,WAAW,QAAQ;AAAA,MACxD,UAAU,SAAS,SAAS;AAAA,IAChC,CAAC;AACD,WAAOC,mBAAkB,KAAK,QAAQ;AAAA,EAC1C;AAAA,EAEA,MAAM,WAAW,QAAyC;AACtD,WAAO,KAAK,UAAU,KAAK,OAAO,KAAK,MAAM,CAAC;AAAA,EAClD;AAAA,EAEA,MAAM,iBAAiB,gBAAmE;AACtF,UAAM,SAAS,KAAK,aAAc,IAAI,WAAW,SAAS;AAC1D,UAAM,MAAM,2BAA2B,QAAQ,eAAe,OAAO;AACrE,UAAM,gBAEF;AAAA,MACA,MAAM,CAAC,GAAG;AAAA,IACd;AACA,QAAI,eAAe,SAAS,QAAQ,QAAW;AAC3C,oBAAc,MAAM,eAAe,QAAQ;AAAA,IAC/C;AACA,QAAI,eAAe,SAAS,aAAa,QAAW;AAChD,UAAI,MAAM,OAAO,eAAe,QAAQ,QAAQ,CAAC,KAAK,eAAe,QAAQ,SAAS,SAAS,OAAO,GAAG;AACrG,sBAAc,YAAY,eAAe,QAAQ;AAAA,MACrD,WAAW,CAAC,MAAM,OAAO,eAAe,QAAQ,QAAQ,CAAC,GAAG;AACxD,sBAAc,YAAY,GAAG,eAAe,QAAQ,QAAQ;AAAA,MAChE,OAAO;AACH,cAAM,MAAM,iCAAiC,eAAe,QAAQ,QAAQ,EAAE;AAAA,MAClF;AAAA,IACJ;AAEA,UAAM,KAAK,MAAM,KAAK,aAAc,SAAS,aAAa;AAC1D,WAAO,mBAAmB,KAAK,EAAE;AAAA,EACrC;AACJ","sourcesContent":["import { AccAddress, LCDClient } from '@initia/initia.js'\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 InitiaProvider implements Provider {\n readonly nativeProvider: LCDClient\n\n private constructor(public url: string) {\n this.nativeProvider = new LCDClient(url)\n }\n\n static from(url: string): InitiaProvider\n static from(source: string): InitiaProvider {\n if (typeof source === 'string') {\n return new InitiaProvider(source)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n get native(): LCDClient {\n return this.nativeProvider\n }\n\n async getBalance(address: string): Promise<string> {\n let accAddress: AccAddress\n if (!isHexString(address)) {\n accAddress = AccAddress.fromHex(address)\n } else if (address.startsWith('init')) {\n accAddress = address\n } else {\n throw new Error('Invalid Aptos address')\n }\n\n //todo convert all address to aclAddress\n const resources = await this.nativeProvider.bank.balance(accAddress)\n const coins = resources[0]\n return coins.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.tendermint\n .blockInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.block.header.height).toNumber())\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.tendermint.blockInfo(blockNumber)\n return Block.from(response)\n }\n\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n return Promise.reject(new Error('Method not implemented.'))\n }\n\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider.tendermint\n .blockInfo()\n .then((ledgerInfo) => BigNumber.from(ledgerInfo.block.header.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.tendermint\n .blockInfo(blockTag)\n .then((block) => BigNumber.from(block.block.header.time).toNumber())\n } else if (blockTag === 'latest') {\n return this.nativeProvider.tendermint\n .blockInfo()\n .then((block) => BigNumber.from(block.block.header.time).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 Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(txHash)\n return TransactionResponse.from(response)\n }\n\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n if (!isHexString(txHash)) {\n throw new Error('Invalid Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(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\n let accAddress: AccAddress\n if (!isHexString(_addressOrName)) {\n accAddress = AccAddress.fromHex(_addressOrName)\n } else if (_addressOrName.startsWith('init')) {\n accAddress = _addressOrName\n } else {\n throw new Error('Invalid Aptos address')\n }\n const response = await this.nativeProvider.auth.accountInfo(accAddress)\n return response.getSequenceNumber()\n }\n\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcast>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.tx.broadcast(stx) //todo need change to broadcastAsync ??\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 type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcast>[0]\n const stx = transaction.signed as NativeSignedTransaction\n const response = await this.nativeProvider.tx.broadcast(stx)\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (((response as any).code as number) !== 0) {\n throw new Error(response.raw_log)\n }\n return TransactionReceipt.from(response)\n }\n}\n","import { AccAddress, CreateTxOptions, Key, MnemonicKey, ModeInfo, RawKey, Wallet } from '@initia/initia.js'\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 { InitiaProvider } from '../providers'\n\nimport { InitiaBuildTxRequest } from './types'\nimport { convertPayloadToMsgExecute } from './utils'\n\nexport class InitiaSigner implements Signer<InitiaBuildTxRequest> {\n public nativeKey: MnemonicKey | RawKey\n public nativeSigner: Wallet | undefined\n public provider: InitiaProvider | undefined\n\n private constructor(signer: MnemonicKey | RawKey) {\n this.nativeKey = signer\n }\n\n static from(signer: MnemonicKey): Signer<InitiaBuildTxRequest>\n static from(privKey: string): Signer<InitiaBuildTxRequest>\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<InitiaBuildTxRequest>\n\n static from(source: string | MnemonicKey, path?: string): Signer<InitiaBuildTxRequest> {\n if (source instanceof MnemonicKey) {\n return new this(source)\n } else if (typeof source === 'string' && path === undefined) {\n const signer = new RawKey(Buffer.from(trim0x(source))) // todo double check\n return new this(signer)\n } else if (typeof source === 'string' && path !== undefined) {\n if (path.startsWith('m/')) {\n const [_, coinType, account, __, index] = path.match(/\\d+/g)?.map(Number) ?? [44, 118, 0, 0, 0]\n const normalizeMnemonics = source\n .trim()\n .split(/\\s+/)\n .map((part) => part.toLowerCase())\n .join(' ')\n const key = new MnemonicKey({\n mnemonic: normalizeMnemonics,\n coinType,\n account,\n index,\n })\n return new this(key)\n }\n }\n throw new Error('Invalid parameters')\n }\n\n get native(): Wallet {\n if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n return this.nativeSigner\n }\n\n connect(provider: Provider): Signer<InitiaBuildTxRequest> {\n if (!(provider instanceof InitiaProvider)) {\n throw new Error('Only InitiaProvider is supported.')\n }\n\n this.provider = provider\n this.nativeSigner = new Wallet(this.provider.native, this.nativeKey)\n return this\n }\n\n async getAddress(): Promise<string> {\n return Promise.resolve(AccAddress.toHex(this.nativeKey.accAddress))\n }\n\n get address(): string {\n return AccAddress.toHex(this.nativeKey.accAddress)\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 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 if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n\n type NativeTransactionRequest = Parameters<Key['signTx']>[0]\n const tx = transaction.request as NativeTransactionRequest\n\n const { account_number, sequence } = await this.nativeSigner.accountNumberAndSequence()\n\n const response = await this.nativeSigner.key.signTx(tx, {\n accountNumber: account_number,\n sequence,\n chainId: await this.nativeSigner.lcd.tendermint.chainId(),\n signMode: ModeInfo.SignMode.SIGN_MODE_DIRECT,\n })\n return SignedTransaction.from(response)\n }\n\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n return this.nativeKey.sign(Buffer.from(buffer))\n }\n\n async buildTransaction(buildTxRequest: InitiaBuildTxRequest): Promise<TransactionRequest> {\n const sender = this.nativeSigner!.key.accAddress.toString()\n const msg = convertPayloadToMsgExecute(sender, buildTxRequest.payload)\n const createOptions: CreateTxOptions & {\n sequence?: number\n } = {\n msgs: [msg],\n }\n if (buildTxRequest.options?.gas !== undefined) {\n createOptions.gas = buildTxRequest.options.gas\n }\n if (buildTxRequest.options?.gasPrice !== undefined) {\n if (isNaN(Number(buildTxRequest.options.gasPrice)) && buildTxRequest.options.gasPrice.endsWith('uinit')) {\n createOptions.gasPrices = buildTxRequest.options.gasPrice\n } else if (!isNaN(Number(buildTxRequest.options.gasPrice))) {\n createOptions.gasPrices = `${buildTxRequest.options.gasPrice}uinit`\n } else {\n throw Error(`Invalid gas price for initia :${buildTxRequest.options.gasPrice}`)\n }\n }\n // createOptions.sequence = initial + offset\n const tx = await this.nativeSigner!.createTx(createOptions)\n return TransactionRequest.from(tx)\n }\n}\n","import { Msg, MsgExecute, bcs } from '@initia/initia.js'\n\nimport { EntryFunctionArgumentTypes, InputEntryFunctionData } from '@layerzerolabs/move-definitions'\n\nexport function convertPayloadToMsgExecute(sender: string, payload: InputEntryFunctionData): Msg {\n const functionStructs = payload.function.split('::')\n const moduleAddress = functionStructs[0]\n const moduleName = functionStructs[1]\n const functionName = functionStructs[2]\n const args = covertPayloadArgs(payload.functionArgumentTypes ?? [], payload.functionArguments)\n const msg = new MsgExecute(\n sender, // sender address\n moduleAddress, // module owner address\n moduleName, // module name\n functionName, // function name\n payload.typeArguments ?? [], // type args\n args\n )\n return msg\n}\nexport function covertPayloadArgs(\n functionArgumentTypes: string[],\n functionArguments: EntryFunctionArgumentTypes[]\n): string[] {\n const args: string[] = []\n for (let i = 0; i < functionArguments.length; i++) {\n args.push(convertArg(functionArgumentTypes[i], functionArguments[i]))\n }\n return args\n}\n\nexport function convertArg(argsType: string, arg: EntryFunctionArgumentTypes): string {\n switch (argsType) {\n case 'bool':\n return bcs\n .bool()\n .serialize(arg as boolean)\n .toBase64()\n case 'u256':\n return bcs\n .u256()\n .serialize(arg as bigint)\n .toBase64()\n case 'u128':\n return bcs\n .u128()\n .serialize(arg as bigint)\n .toBase64()\n case 'u64':\n return bcs\n .u64()\n .serialize(arg as bigint)\n .toBase64()\n case 'u32':\n return bcs\n .u32()\n .serialize(arg as number)\n .toBase64()\n case 'u16':\n return bcs\n .u16()\n .serialize(arg as number)\n .toBase64()\n case 'u8':\n return bcs\n .u8()\n .serialize(arg as number)\n .toBase64()\n case 'address':\n return bcs\n .address()\n .serialize(arg as string)\n .toBase64()\n case 'vector<u8>':\n return bcs\n .vector(bcs.u8())\n .serialize(arg as unknown as Uint8Array)\n .toBase64()\n case 'vector<address>':\n return bcs\n .vector(bcs.address())\n .serialize(arg as unknown as string[])\n .toBase64()\n case 'vector<vector<u8>>':\n return bcs\n .vector(bcs.vector(bcs.u8()))\n .serialize(arg as unknown as Uint8Array[])\n .toBase64()\n default:\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`Invalid type argsType: ${argsType.toString()}`)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/providers/initia.ts","../src/signers/initia.ts","../src/signers/utils.ts"],"names":["AccAddress","SignedTransaction"],"mappings":"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","sourcesContent":["import { AccAddress, LCDClient, WaitTxBroadcastResult } from '@initia/initia.js'\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 InitiaProvider implements Provider {\n readonly nativeProvider: LCDClient\n\n private constructor(public url: string) {\n this.nativeProvider = new LCDClient(url)\n }\n\n static from(url: string): InitiaProvider\n static from(source: string): InitiaProvider {\n if (typeof source === 'string') {\n return new InitiaProvider(source)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n get native(): LCDClient {\n return this.nativeProvider\n }\n\n async getBalance(address: string): Promise<string> {\n let accAddress: AccAddress\n if (!isHexString(address)) {\n accAddress = AccAddress.fromHex(address)\n } else if (address.startsWith('init')) {\n accAddress = address\n } else {\n throw new Error('Invalid Aptos address')\n }\n\n //todo convert all address to aclAddress\n const resources = await this.nativeProvider.bank.balance(accAddress)\n const coins = resources[0]\n return coins.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.tendermint\n .blockInfo()\n .then((ledgerInfo) => Number(ledgerInfo.block.header.height))\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.tendermint.blockInfo(blockNumber)\n return Block.from(response)\n }\n\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n return Promise.reject(new Error('Method not implemented.'))\n }\n\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) => Number(ledgerInfo.block.header.height))\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.tendermint.blockInfo(blockTag).then((block) => Number(block.block.header.time))\n } else if (blockTag === 'latest') {\n return this.nativeProvider.tendermint.blockInfo().then((block) => Number(block.block.header.time))\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 Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(txHash)\n return TransactionResponse.from(response)\n }\n\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n if (!isHexString(txHash)) {\n throw new Error('Invalid Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(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\n let accAddress: AccAddress\n if (!isHexString(_addressOrName)) {\n accAddress = AccAddress.fromHex(_addressOrName)\n } else if (_addressOrName.startsWith('init')) {\n accAddress = _addressOrName\n } else {\n throw new Error('Invalid Aptos address')\n }\n const response = await this.nativeProvider.auth.accountInfo(accAddress)\n return response.getSequenceNumber()\n }\n\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcast>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.tx.broadcast(stx) //TODO need change to broadcastAsync ??\n return TransactionPending.from(response)\n }\n\n async confirmTransaction(pending: TransactionPending, _opts?: object): Promise<TransactionReceipt> {\n const nativePending = pending.pending as WaitTxBroadcastResult\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (((nativePending as any).code as number) !== 0) {\n throw new Error(nativePending.raw_log)\n }\n return Promise.resolve(TransactionReceipt.from(nativePending))\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 { AccAddress, CreateTxOptions, Key, MnemonicKey, ModeInfo, RawKey, Wallet } from '@initia/initia.js'\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 { InitiaProvider } from '../providers'\n\nimport { InitiaBuildTxRequest } from './types'\nimport { convertPayloadToMsgExecute } from './utils'\n\nexport class InitiaSigner implements Signer<InitiaBuildTxRequest> {\n public nativeKey: MnemonicKey | RawKey\n public nativeSigner: Wallet | undefined\n public provider: InitiaProvider | undefined\n\n private constructor(signer: MnemonicKey | RawKey) {\n this.nativeKey = signer\n }\n\n static from(signer: MnemonicKey): Signer<InitiaBuildTxRequest>\n static from(privKey: string): Signer<InitiaBuildTxRequest>\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<InitiaBuildTxRequest>\n\n static from(source: string | MnemonicKey, path?: string): Signer<InitiaBuildTxRequest> {\n if (source instanceof MnemonicKey) {\n return new this(source)\n } else if (typeof source === 'string' && path === undefined) {\n const signer = new RawKey(Buffer.from(trim0x(source))) // todo double check\n return new this(signer)\n } else if (typeof source === 'string' && path !== undefined) {\n if (path.startsWith('m/')) {\n const [_, coinType, account, __, index] = path.match(/\\d+/g)?.map(Number) ?? [44, 118, 0, 0, 0]\n const normalizeMnemonics = source\n .trim()\n .split(/\\s+/)\n .map((part) => part.toLowerCase())\n .join(' ')\n const key = new MnemonicKey({\n mnemonic: normalizeMnemonics,\n coinType,\n account,\n index,\n })\n return new this(key)\n }\n }\n throw new Error('Invalid parameters')\n }\n\n get native(): Wallet {\n if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n return this.nativeSigner\n }\n\n connect(provider: Provider): Signer<InitiaBuildTxRequest> {\n if (!(provider instanceof InitiaProvider)) {\n throw new Error('Only InitiaProvider is supported.')\n }\n\n this.provider = provider\n this.nativeSigner = new Wallet(this.provider.native, this.nativeKey)\n return this\n }\n\n async getAddress(): Promise<string> {\n return Promise.resolve(AccAddress.toHex(this.nativeKey.accAddress))\n }\n\n get address(): string {\n return AccAddress.toHex(this.nativeKey.accAddress)\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 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 if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n\n type NativeTransactionRequest = Parameters<Key['signTx']>[0]\n const tx = transaction.request as NativeTransactionRequest\n\n const { account_number, sequence } = await this.nativeSigner.accountNumberAndSequence()\n\n const response = await this.nativeSigner.key.signTx(tx, {\n accountNumber: account_number,\n sequence,\n chainId: await this.nativeSigner.lcd.tendermint.chainId(),\n signMode: ModeInfo.SignMode.SIGN_MODE_DIRECT,\n })\n return SignedTransaction.from(response)\n }\n\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n return this.nativeKey.sign(Buffer.from(buffer))\n }\n\n async buildTransaction(buildTxRequest: InitiaBuildTxRequest): Promise<TransactionRequest> {\n const sender = this.nativeSigner!.key.accAddress.toString()\n const msg = convertPayloadToMsgExecute(sender, buildTxRequest.payload)\n const createOptions: CreateTxOptions & {\n sequence?: number\n } = {\n msgs: [msg],\n }\n if (buildTxRequest.options?.gas !== undefined) {\n createOptions.gas = buildTxRequest.options.gas\n }\n if (buildTxRequest.options?.gasPrice !== undefined) {\n if (isNaN(Number(buildTxRequest.options.gasPrice)) && buildTxRequest.options.gasPrice.endsWith('uinit')) {\n createOptions.gasPrices = buildTxRequest.options.gasPrice\n } else if (!isNaN(Number(buildTxRequest.options.gasPrice))) {\n createOptions.gasPrices = `${buildTxRequest.options.gasPrice}uinit`\n } else {\n throw Error(`Invalid gas price for initia :${buildTxRequest.options.gasPrice}`)\n }\n }\n // createOptions.sequence = initial + offset\n const tx = await this.nativeSigner!.createTx(createOptions)\n return TransactionRequest.from(tx)\n }\n}\n","import { Msg, MsgExecute, bcs } from '@initia/initia.js'\n\nimport { EntryFunctionArgumentTypes, InputEntryFunctionData } from '@layerzerolabs/move-definitions'\n\nexport function convertPayloadToMsgExecute(sender: string, payload: InputEntryFunctionData): Msg {\n const functionStructs = payload.function.split('::')\n const moduleAddress = functionStructs[0]\n const moduleName = functionStructs[1]\n const functionName = functionStructs[2]\n const args = covertPayloadArgs(payload.functionArgumentTypes ?? [], payload.functionArguments)\n const msg = new MsgExecute(\n sender, // sender address\n moduleAddress, // module owner address\n moduleName, // module name\n functionName, // function name\n payload.typeArguments ?? [], // type args\n args\n )\n return msg\n}\nexport function covertPayloadArgs(\n functionArgumentTypes: string[],\n functionArguments: EntryFunctionArgumentTypes[]\n): string[] {\n const args: string[] = []\n for (let i = 0; i < functionArguments.length; i++) {\n args.push(convertArg(functionArgumentTypes[i], functionArguments[i]))\n }\n return args\n}\n\nexport function convertArg(argsType: string, arg: EntryFunctionArgumentTypes): string {\n switch (argsType) {\n case 'bool':\n return bcs\n .bool()\n .serialize(arg as boolean)\n .toBase64()\n case 'u256':\n return bcs\n .u256()\n .serialize(arg as bigint)\n .toBase64()\n case 'u128':\n return bcs\n .u128()\n .serialize(arg as bigint)\n .toBase64()\n case 'u64':\n return bcs\n .u64()\n .serialize(arg as bigint)\n .toBase64()\n case 'u32':\n return bcs\n .u32()\n .serialize(arg as number)\n .toBase64()\n case 'u16':\n return bcs\n .u16()\n .serialize(arg as number)\n .toBase64()\n case 'u8':\n return bcs\n .u8()\n .serialize(arg as number)\n .toBase64()\n case 'address':\n return bcs\n .address()\n .serialize(arg as string)\n .toBase64()\n case 'vector<u8>':\n return bcs\n .vector(bcs.u8())\n .serialize(arg as unknown as Uint8Array)\n .toBase64()\n case 'vector<address>':\n return bcs\n .vector(bcs.address())\n .serialize(arg as unknown as string[])\n .toBase64()\n case 'vector<vector<u8>>':\n return bcs\n .vector(bcs.vector(bcs.u8()))\n .serialize(arg as unknown as Uint8Array[])\n .toBase64()\n default:\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`Invalid type argsType: ${argsType.toString()}`)\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@layerzerolabs/lz-corekit-initia",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.12",
|
|
4
4
|
"description": "LayerZero Core Library",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"exports": {
|
|
@@ -24,15 +24,14 @@
|
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@initia/initia.js": "^0.2.11",
|
|
27
|
-
"@layerzerolabs/lz-core": "^3.0.
|
|
28
|
-
"@layerzerolabs/lz-utilities": "^3.0.
|
|
29
|
-
"@layerzerolabs/move-definitions": "^3.0.
|
|
30
|
-
"ethers": "^5.7.2"
|
|
27
|
+
"@layerzerolabs/lz-core": "^3.0.12",
|
|
28
|
+
"@layerzerolabs/lz-utilities": "^3.0.12",
|
|
29
|
+
"@layerzerolabs/move-definitions": "^3.0.12"
|
|
31
30
|
},
|
|
32
31
|
"devDependencies": {
|
|
33
32
|
"@jest/globals": "^29.7.0",
|
|
34
|
-
"@layerzerolabs/tsup-config-next": "^3.0.
|
|
35
|
-
"@layerzerolabs/typescript-config-next": "^3.0.
|
|
33
|
+
"@layerzerolabs/tsup-config-next": "^3.0.12",
|
|
34
|
+
"@layerzerolabs/typescript-config-next": "^3.0.12",
|
|
36
35
|
"@types/jest": "^29.5.10",
|
|
37
36
|
"jest": "^29.7.0",
|
|
38
37
|
"jest-extended": "^4.0.2",
|