@layerzerolabs/lz-sui-sdk-v2 3.0.111-sui.0 → 3.0.111
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 +105 -68
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +23 -4
- package/dist/index.d.ts +23 -4
- package/dist/index.mjs +101 -68
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
- package/src/errors.ts +9 -0
- package/src/index.ts +1 -0
- package/src/modules/counter.ts +17 -28
- package/src/modules/endpoint.ts +36 -43
- package/src/modules/simple-message-lib.ts +4 -12
- package/src/types.ts +5 -0
- package/src/utils.ts +42 -18
- package/deployments/placeholder0-sandbox-local/blocked_message_lib.json +0 -58
- package/deployments/placeholder0-sandbox-local/counter.json +0 -98
- package/deployments/placeholder0-sandbox-local/endpoint_v2.json +0 -84
- package/deployments/placeholder0-sandbox-local/message_lib_types.json +0 -47
- package/deployments/placeholder0-sandbox-local/oapp_core.json +0 -47
- package/deployments/placeholder0-sandbox-local/oapp_discovery.json +0 -58
- package/deployments/placeholder0-sandbox-local/object-Counter.json +0 -9
- package/deployments/placeholder0-sandbox-local/object-CounterAdminCap.json +0 -9
- package/deployments/placeholder0-sandbox-local/object-CounterOappCap.json +0 -5
- package/deployments/placeholder0-sandbox-local/object-CounterOappCore.json +0 -5
- package/deployments/placeholder0-sandbox-local/object-EndpointV2.json +0 -9
- package/deployments/placeholder0-sandbox-local/object-EndpointV2AdminCap.json +0 -9
- package/deployments/placeholder0-sandbox-local/object-SimpleMessageLib.json +0 -9
- package/deployments/placeholder0-sandbox-local/object-SimpleMessageLibCap.json +0 -5
- package/deployments/placeholder0-sandbox-local/protocol_discovery.json +0 -49
- package/deployments/placeholder0-sandbox-local/simple_message_lib.json +0 -58
- package/deployments/placeholder0-sandbox-local/utils.json +0 -112
- package/deployments/placeholder0-sandbox-local/zro.json +0 -67
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.ts","../src/modules/simple-message-lib.ts","../src/modules/endpoint.ts","../src/bcs/messaging-fee.ts","../src/modules/counter.ts","../src/modules/utils.ts","../src/modules/zro.ts","../src/sdk.ts"],"names":["Transaction","bcs"],"mappings":"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","file":"index.mjs","sourcesContent":["import * as fs from 'fs'\nimport * as path from 'path'\n\nimport { SuiClient, SuiExecutionResult, SuiTransactionBlockResponse } from '@mysten/sui/client'\nimport { Keypair } from '@mysten/sui/cryptography'\nimport { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519'\nimport { Transaction } from '@mysten/sui/transactions'\n\nexport async function devInspectTransaction(\n suiClient: SuiClient,\n tx: Transaction,\n sender: string\n): Promise<SuiExecutionResult[] | null | undefined> {\n const { results, error } = await suiClient.devInspectTransactionBlock({\n transactionBlock: tx,\n sender: sender,\n })\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (error != undefined && error != null) {\n throw new Error(error)\n }\n\n return results\n}\n\nexport async function moveView(\n suiClient: SuiClient,\n tx: Transaction,\n sender?: string\n): Promise<SuiExecutionResult | null | undefined> {\n if (sender === undefined) {\n sender = Ed25519Keypair.generate().toSuiAddress()\n }\n const result = await devInspectTransaction(suiClient, tx, sender)\n return result ? result[result.length - 1] : null\n}\n\nexport function readAddressFromDeployment(network: string, name: string): string | undefined {\n const deploymentPath = path.join(__dirname, '..', 'deployments', network, `${name}.json`)\n if (!fs.existsSync(deploymentPath)) {\n return undefined\n }\n const deployment = JSON.parse(fs.readFileSync(deploymentPath, 'utf8')) as { address: string }\n return deployment.address\n}\n\nexport async function validateTransaction(\n client: SuiClient,\n signer: Keypair,\n tx: Transaction\n): Promise<SuiTransactionBlockResponse> {\n tx.setSenderIfNotSet(signer.getPublicKey().toSuiAddress())\n const result = await client.signAndExecuteTransaction({\n signer,\n transaction: tx,\n options: {\n showEffects: true,\n showObjectChanges: true,\n showEvents: true,\n },\n })\n\n if (result.effects?.status.status !== 'success') {\n throw new Error(result.effects?.status.error)\n }\n\n await client.waitForTransaction({ digest: result.digest })\n return result\n}\n","import { bcs } from '@mysten/sui/bcs'\nimport { SuiClient } from '@mysten/sui/client'\nimport { Transaction, TransactionResult } from '@mysten/sui/transactions'\n\nimport { Context, ObjectOptions } from '../types'\nimport { moveView } from '../utils'\n\nexport class SimpleMessageLib {\n public packageId: string\n public readonly client: SuiClient\n private readonly objects: Pick<\n ObjectOptions,\n 'simple_message_lib' | 'endpoint_admin_cap' | 'endpoint_v2' | 'discovery'\n >\n\n constructor(\n packageId: string,\n client: SuiClient,\n objects: Pick<ObjectOptions, 'simple_message_lib' | 'endpoint_admin_cap' | 'endpoint_v2' | 'discovery'>,\n private readonly context: Context\n ) {\n this.packageId = packageId\n this.client = client\n this.objects = objects\n\n // Validate that required objects are not empty strings\n if (this.objects.simple_message_lib.trim() === '') {\n throw new Error('simple_message_lib object cannot be empty')\n }\n if (this.objects.endpoint_admin_cap.trim() === '') {\n throw new Error('admin_cap object cannot be empty')\n }\n if (this.objects.endpoint_v2.trim() === '') {\n throw new Error('endpoint_v2 object cannot be empty')\n }\n }\n\n populateInitializeTransaction(): Transaction {\n const tx = new Transaction()\n\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::initialize`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_admin_cap), tx.object(this.objects.endpoint_v2)],\n })\n return tx\n }\n\n // === View Functions ===\n\n async getNativeFee(): Promise<string> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::get_native_fee`,\n typeArguments: [],\n arguments: [tx.object(this.objects.simple_message_lib)],\n })\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n return bcs.U64.parse(bytes)\n }\n\n async getZroFee(): Promise<string> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::get_zro_fee`,\n typeArguments: [],\n arguments: [tx.object(this.objects.simple_message_lib)],\n })\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n return bcs.U64.parse(bytes)\n }\n\n async getFeeRecipient(): Promise<string> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::get_fee_recipient`,\n typeArguments: [],\n arguments: [tx.object(this.objects.simple_message_lib)],\n })\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n return bcs.Address.parse(bytes)\n }\n\n async isRegistered(): Promise<boolean> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::is_registered`,\n typeArguments: [],\n arguments: [tx.object(this.objects.simple_message_lib), tx.object(this.objects.endpoint_v2)],\n })\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n return bcs.Bool.parse(bytes)\n }\n\n // === Admin Functions ===\n\n populateRegisterLibraryTransaction(): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::register_library`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.simple_message_lib),\n tx.object(this.objects.endpoint_admin_cap),\n tx.object(this.objects.endpoint_v2),\n ],\n })\n return tx\n }\n\n populateSetMessagingFeeTransaction(zroFee: number, nativeFee: number): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::set_messaging_fee`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.simple_message_lib),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure.u64(zroFee),\n tx.pure.u64(nativeFee),\n ],\n })\n return tx\n }\n\n populateSetDefaultConfigTransaction(eid: number, configType: number, config: Uint8Array): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::set_default_config`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.simple_message_lib),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure.u32(eid),\n tx.pure.u32(configType),\n tx.pure(bcs.vector(bcs.u8()).serialize(config)),\n ],\n })\n return tx\n }\n\n populateSetFeeRecipientTransaction(feeRecipient: string): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::set_fee_recipient`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.simple_message_lib),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure.address(feeRecipient),\n ],\n })\n return tx\n }\n\n // === Endpoint Validation ===\n\n populateValidatePacketTransaction(packetHeader: Uint8Array, payloadHash: Uint8Array): Transaction {\n const tx = new Transaction()\n const payloadHashBytes32 = this.context.utils.fromBytesMoveCall(tx, payloadHash)\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::validate_packet`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.simple_message_lib),\n tx.object(this.objects.endpoint_v2),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure(bcs.vector(bcs.u8()).serialize(packetHeader)),\n payloadHashBytes32,\n tx.object('0x6'), // Clock Object TODO try to get it from the client or sdk\n ],\n })\n return tx\n }\n\n // === Protocol Discovery ===\n\n populateRegisterMessageLibDiscoveryTransaction(): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::register_message_lib_discovery`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.simple_message_lib),\n tx.object(this.objects.endpoint_admin_cap),\n tx.object(this.objects.endpoint_v2),\n tx.object(this.objects.discovery),\n ],\n })\n return tx\n }\n\n quoteMoveCall(tx: Transaction, quoteCall: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::simple_message_lib::quote`,\n typeArguments: [],\n arguments: [tx.object(this.objects.simple_message_lib), quoteCall],\n })\n }\n\n sendMoveCall(tx: Transaction, sendCall: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::simple_message_lib::send`,\n typeArguments: [],\n arguments: [tx.object(this.objects.simple_message_lib), tx.object(this.objects.endpoint_v2), sendCall],\n })\n }\n\n // === TODO: Core Message Lib Functions ===\n // These functions are called by the endpoint and require specific parameter types\n // that need to be implemented based on the endpoint_v2 module interfaces\n\n populateQuoteTransaction(tx: Transaction): void {\n // TODO: implement quote functionality\n // This requires Call<QuoteParam> parameter from endpoint_v2\n }\n\n populateSendTransaction(tx: Transaction): void {\n // TODO: implement send functionality\n // This requires Call<SendParam> parameter from endpoint_v2\n }\n\n populateSetConfigTransaction(tx: Transaction): void {\n // TODO: implement set_config functionality\n // This requires Call<SetConfigParam> parameter from endpoint_v2\n }\n\n populateGetConfigTransaction(tx: Transaction): void {\n // TODO: implement get_config functionality\n // This requires Call<GetConfigParam> parameter from endpoint_v2\n }\n}\n","import { bcs } from '@mysten/sui/bcs'\nimport { SuiClient } from '@mysten/sui/client'\nimport { Transaction, TransactionResult } from '@mysten/sui/transactions'\n\nimport { Context, ObjectOptions } from '../types'\nimport { moveView } from '../utils'\n\nexport class Endpoint {\n public packageId: string\n public readonly client: SuiClient\n private readonly objects: Pick<ObjectOptions, 'endpoint_v2' | 'endpoint_admin_cap'>\n\n constructor(\n packageId: string,\n client: SuiClient,\n objects: Pick<ObjectOptions, 'endpoint_v2' | 'endpoint_admin_cap'>,\n private readonly context: Context\n ) {\n this.packageId = packageId\n this.client = client\n this.objects = objects\n\n // Validate that required objects are not empty strings\n if (this.objects.endpoint_v2.trim() === '') {\n throw new Error('endpoint_v2 object cannot be empty')\n }\n if (this.objects.endpoint_admin_cap.trim() === '') {\n throw new Error('endpoint_admin_cap object cannot be empty')\n }\n }\n\n async eid(): Promise<number> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::eid`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2)],\n })\n try {\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n return bcs.U32.parse(bytes)\n } catch (e) {\n //TODO need to handle error properly\n return 0\n }\n }\n\n populateInitEidTransaction(eid: number): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::init_eid`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure.u32(eid),\n ],\n })\n return tx\n }\n\n async getDefaultSendLibrary(srcEid: number): Promise<string> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_default_send_library`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2), tx.pure.u32(srcEid)],\n })\n try {\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n return bcs.Address.parse(bytes)\n } catch (error) {\n //TODO need to handle error properly\n return '0x0'\n }\n }\n\n populateSetDefaultSendLibraryTransaction(dstEid: number, newLib: string): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::set_default_send_library`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure.u32(dstEid),\n tx.pure.address(newLib),\n ],\n })\n return tx\n }\n\n async getDefaultReceiveLibrary(srcEid: number): Promise<string> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_default_receive_library`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2), tx.pure.u32(srcEid)],\n })\n try {\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n return bcs.Address.parse(bytes)\n } catch (error) {\n return '0x'\n }\n }\n\n populateSetDefaultReceiveLibraryTransaction(srcEid: number, newLib: string, gracePeriod: number): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::set_default_receive_library`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure.u32(srcEid),\n tx.pure.address(newLib),\n tx.pure.u64(gracePeriod),\n tx.object('0x6'), // Clock Object TODO try to get it from the client or sdk\n ],\n })\n return tx\n }\n\n confirmQuoteMoveCall(tx: Transaction, executedCall: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::endpoint_v2::confirm_quote`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2), executedCall],\n })\n }\n\n confirmSendMoveCall(tx: Transaction, executedCall: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::endpoint_v2::confirm_send`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2), executedCall],\n })\n }\n\n // === Worker Endpoint Required Methods ===\n\n async getSendLibrary(sender: string, dstEid: number): Promise<[string, boolean]> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_send_library`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2), tx.pure.address(sender), tx.pure.u32(dstEid)],\n })\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n const lib = bcs.Address.parse(bytes)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const isDefaultBytes = new Uint8Array(result?.returnValues![1][0]!)\n const isDefault = bcs.Bool.parse(isDefaultBytes)\n return [lib, isDefault]\n }\n\n async getReceiveLibrary(receiver: string, srcEid: number): Promise<[string, boolean]> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_receive_library`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2), tx.pure.address(receiver), tx.pure.u32(srcEid)],\n })\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n const lib = bcs.Address.parse(bytes)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const isDefaultBytes = new Uint8Array(result?.returnValues![1][0]!)\n const isDefault = bcs.Bool.parse(isDefaultBytes)\n return [lib, isDefault]\n }\n\n async getInboundNonce(receiver: string, srcEid: number, sender: Uint8Array): Promise<bigint> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_inbound_nonce`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.pure.address(receiver),\n tx.pure.u32(srcEid),\n tx.pure(bcs.vector(bcs.u8()).serialize(sender)),\n ],\n })\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n return BigInt(bcs.U64.parse(bytes))\n }\n\n async getLazyInboundNonce(receiver: string, srcEid: number, sender: Uint8Array): Promise<bigint> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_lazy_inbound_nonce`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.pure.address(receiver),\n tx.pure.u32(srcEid),\n tx.pure(bcs.vector(bcs.u8()).serialize(sender)),\n ],\n })\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n return BigInt(bcs.U64.parse(bytes))\n }\n\n async getOutboundNonce(sender: string, dstEid: number, receiver: Uint8Array): Promise<bigint> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_outbound_nonce`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.pure.address(sender),\n tx.pure.u32(dstEid),\n tx.pure(bcs.vector(bcs.u8()).serialize(receiver)),\n ],\n })\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n return BigInt(bcs.U64.parse(bytes))\n }\n\n async getInboundPayloadHash(\n receiver: string,\n srcEid: number,\n sender: Uint8Array,\n nonce: bigint\n ): Promise<Uint8Array | null> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_inbound_payload_hash`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.pure.address(receiver),\n tx.pure.u32(srcEid),\n tx.pure(bcs.vector(bcs.u8()).serialize(sender)),\n tx.pure.u64(nonce),\n ],\n })\n try {\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n const parsed = bcs.vector(bcs.u8()).parse(bytes)\n return Buffer.from(parsed)\n } catch (error) {\n //TODO need to handle error properly\n return null\n }\n }\n\n async getComposeMessageHash(from: string, to: string, guid: Uint8Array, index: number): Promise<Uint8Array> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_compose_message_hash`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.pure.address(from),\n tx.pure.address(to),\n tx.pure(bcs.vector(bcs.u8()).serialize(guid)),\n tx.pure.u16(index),\n ],\n })\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n const parsed = bcs.vector(bcs.u8()).parse(bytes)\n return Buffer.from(parsed)\n }\n\n // TODO: more view functions to be added here\n populateQuoteTransaction(tx: Transaction): void {\n // TODO: implement\n }\n\n populateSendTransaction(tx: Transaction): void {\n // TODO: implement\n }\n\n populateGetConfigTransaction(tx: Transaction): void {\n // TODO: implement\n }\n\n populateSetConfigTransaction(tx: Transaction): void {\n // TODO: implement\n }\n}\n","import { bcs } from '@mysten/sui/bcs'\n\nexport const MessagingFeeBcs = bcs.struct('MessagingFee', {\n native_fee: bcs.U64,\n zro_fee: bcs.U64,\n})\n","import { bcs } from '@mysten/sui/bcs'\nimport { SuiClient, SuiTransactionBlockResponse } from '@mysten/sui/client'\nimport { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519'\nimport { Transaction } from '@mysten/sui/transactions'\n\nimport { EndpointId } from '@layerzerolabs/lz-definitions'\n\nimport { MessagingFeeBcs } from '../bcs'\nimport { Context, ObjectOptions } from '../types'\nimport { moveView, validateTransaction } from '../utils'\n\nexport class Counter {\n public packageId: string\n public utilsPkgId: string\n public readonly client: SuiClient\n private readonly objects: Pick<\n ObjectOptions,\n 'counter' | 'counter_admin_cap' | 'endpoint_v2' | 'simple_message_lib'\n >\n\n constructor(\n packageId: string,\n utilsPkgId: string,\n client: SuiClient,\n objects: Pick<ObjectOptions, 'counter' | 'counter_admin_cap' | 'endpoint_v2' | 'simple_message_lib'>,\n private readonly context: Context\n ) {\n this.packageId = packageId\n this.utilsPkgId = utilsPkgId\n this.client = client\n this.objects = objects\n\n // Validate that required objects are not empty strings\n // if (this.objects.counter.trim() === '') {\n // throw new Error('counter object cannot be empty')\n // }\n // if (this.objects.counter_admin_cap.trim() === '') {\n // throw new Error('counter_admin_cap object cannot be empty')\n // }\n // if (this.objects.endpoint_v2.trim() === '') {\n // throw new Error('endpoint_v2 object cannot be empty')\n // }\n }\n\n async getPeer(dstEid: number): Promise<string> {\n const tx = new Transaction()\n const peerBytes32 = tx.moveCall({\n target: `${this.packageId}::counter::get_peer`,\n typeArguments: [],\n arguments: [tx.object(this.objects.counter), tx.pure.u32(dstEid)],\n })\n tx.moveCall({\n target: `${this.utilsPkgId}::bytes32::to_address`,\n typeArguments: [],\n arguments: [peerBytes32],\n })\n try {\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n return bcs.Address.parse(bytes)\n } catch (e) {\n //TODO handle error properly\n return ''\n }\n }\n\n async getCount(): Promise<number> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::counter::get_count`,\n typeArguments: [],\n arguments: [tx.object(this.objects.counter)],\n })\n try {\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n const counterStr = bcs.U64.parse(bytes)\n return Number(counterStr)\n } catch (e) {\n //TODO handle error properly\n return 0\n }\n }\n\n async getComposedCount(): Promise<number> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::counter::get_composed_count`,\n typeArguments: [],\n arguments: [tx.object(this.objects.counter)],\n })\n try {\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n const counterStr = bcs.U64.parse(bytes)\n return Number(counterStr)\n } catch (e) {\n //TODO handle error properly\n return 0\n }\n }\n\n populateSetPeerTransaction(dstEid: number, peer: Uint8Array): Transaction {\n const tx = new Transaction()\n const peerBytes32 = tx.moveCall({\n target: `${this.utilsPkgId}::bytes32::from_bytes`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(peer))],\n })\n tx.moveCall({\n target: `${this.packageId}::counter::set_peer`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.counter),\n tx.object(this.objects.counter_admin_cap),\n tx.object(this.objects.endpoint_v2),\n tx.pure.u32(dstEid),\n peerBytes32,\n ],\n })\n return tx\n }\n\n /**\n * Builds a transaction for calling the lz_receive function on the counter contract.\n *\n * @param srcEid - The source endpoint ID\n * @param sender - The sender address as Bytes32\n * @param nonce - The nonce\n * @param guid - The GUID as Bytes32\n * @param message - The message as vector<u8>\n * @param value - The value to be sent (Coin<SUI>)\n * @param extraData - Extra data as vector<u8>\n * @returns A Transaction object ready to be executed\n */\n populateLzReceiveTransaction(\n srcEid: number,\n sender: Uint8Array,\n nonce: bigint,\n guid: Uint8Array,\n message: Uint8Array,\n value: bigint,\n extraData: Uint8Array = new Uint8Array()\n ): Transaction {\n const tx = new Transaction()\n\n // Convert sender to Bytes32 format\n const senderBytes32 = this.context.utils.fromBytesMoveCall(tx, sender)\n\n // Convert guid to Bytes32 format\n const guidBytes32 = this.context.utils.fromBytesMoveCall(tx, guid)\n\n // Split the SUI coin to get the required value\n const coin = tx.splitCoins(tx.gas, [tx.pure.u64(value)])\n\n // Call the lz_receive function\n tx.moveCall({\n target: `${this.packageId}::counter::lz_receive`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.counter),\n tx.object(this.objects.endpoint_v2),\n tx.pure.u32(srcEid),\n senderBytes32,\n tx.pure.u64(nonce),\n guidBytes32,\n tx.pure(bcs.vector(bcs.u8()).serialize(message)),\n coin,\n tx.pure(bcs.vector(bcs.u8()).serialize(extraData)),\n ],\n })\n\n return tx\n }\n\n async quote(\n dstEid: EndpointId,\n msgType: number,\n options: Uint8Array,\n payInZero: boolean\n ): Promise<[bigint, bigint]> {\n const tx = new Transaction()\n const quoteCall = tx.moveCall({\n target: `${this.packageId}::counter::quote`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.counter),\n tx.object(this.objects.endpoint_v2),\n tx.pure.u32(dstEid),\n tx.pure.u8(msgType),\n tx.pure(bcs.vector(bcs.u8()).serialize(options)),\n tx.pure.bool(payInZero),\n ],\n })\n const executedCall = this.context.simpleMessageLib.quoteMoveCall(tx, quoteCall)\n this.context.endpoint.confirmQuoteMoveCall(tx, executedCall)\n const result = await moveView(this.client, tx)\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const bytes = new Uint8Array(result?.returnValues![0][0]!)\n const messageFee = MessagingFeeBcs.parse(bytes)\n return [BigInt(messageFee.native_fee), BigInt(messageFee.zro_fee)]\n }\n\n async send(\n sender: Ed25519Keypair,\n dstEid: EndpointId,\n msgType: number,\n options: Uint8Array,\n sendValue: string,\n nativeFee: string,\n zroFee: string\n ): Promise<SuiTransactionBlockResponse> {\n const tx = new Transaction()\n const [nativeToken] = tx.splitCoins(tx.gas, [tx.pure.u64(nativeFee)])\n const zroToken = this.context.zro.noneOptionMoveCall(tx)\n const incrementCall = tx.moveCall({\n target: `${this.packageId}::counter::increment`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.counter),\n tx.object(this.objects.endpoint_v2),\n tx.pure.u32(dstEid),\n tx.pure.u8(msgType),\n tx.pure(bcs.vector(bcs.u8()).serialize(options)),\n nativeToken,\n zroToken,\n tx.pure.u64(sendValue),\n tx.pure.address(sender.toSuiAddress()),\n ],\n })\n\n const executedCall = this.context.simpleMessageLib.sendMoveCall(tx, incrementCall)\n this.context.endpoint.confirmSendMoveCall(tx, executedCall)\n return validateTransaction(this.client, sender, tx)\n }\n}\n","import { bcs } from '@mysten/sui/bcs'\nimport { SuiClient } from '@mysten/sui/client'\nimport { Transaction, TransactionResult } from '@mysten/sui/transactions'\n\nimport { Context } from '../types'\n\nexport class Utils {\n public packageId: string\n public readonly client: SuiClient\n private readonly context: Context\n\n constructor(packageId: string, client: SuiClient, context: Context) {\n this.packageId = packageId\n this.client = client\n this.context = context\n\n // Validate that package ID is not empty\n if (this.packageId.trim() === '') {\n throw new Error('utils package ID cannot be empty')\n }\n }\n\n // === bytes32 Functions ===\n\n fromBytesMoveCall(tx: Transaction, peer: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::from_bytes`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(peer))],\n })\n }\n\n fromBytesLeftPaddedMoveCall(tx: Transaction, bytes: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::from_bytes_left_padded`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(bytes))],\n })\n }\n\n fromBytesRightPaddedMoveCall(tx: Transaction, bytes: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::from_bytes_right_padded`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(bytes))],\n })\n }\n\n fromAddressMoveCall(tx: Transaction, address: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::from_address`,\n typeArguments: [],\n arguments: [tx.pure.address(address)],\n })\n }\n\n fromIdMoveCall(tx: Transaction, id: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::from_id`,\n typeArguments: [],\n arguments: [tx.object(id)],\n })\n }\n\n zeroBytes32MoveCall(tx: Transaction): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::zero_bytes32`,\n typeArguments: [],\n arguments: [],\n })\n }\n\n ffBytes32MoveCall(tx: Transaction): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::ff_bytes32`,\n typeArguments: [],\n arguments: [],\n })\n }\n\n isZeroMoveCall(tx: Transaction, bytes32: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::is_zero`,\n typeArguments: [],\n arguments: [tx.object(bytes32)],\n })\n }\n\n isFfMoveCall(tx: Transaction, bytes32: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::is_ff`,\n typeArguments: [],\n arguments: [tx.object(bytes32)],\n })\n }\n\n toBytesMoveCall(tx: Transaction, bytes32: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::to_bytes`,\n typeArguments: [],\n arguments: [tx.object(bytes32)],\n })\n }\n\n toAddressMoveCall(tx: Transaction, bytes32: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::to_address`,\n typeArguments: [],\n arguments: [tx.object(bytes32)],\n })\n }\n\n toIdMoveCall(tx: Transaction, bytes32: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::to_id`,\n typeArguments: [],\n arguments: [tx.object(bytes32)],\n })\n }\n\n // === Buffer Functions ===\n\n newReaderMoveCall(tx: Transaction, buffer: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::new_reader`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(buffer))],\n })\n }\n\n newWriterMoveCall(tx: Transaction): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::new_writer`,\n typeArguments: [],\n arguments: [],\n })\n }\n\n createWriterMoveCall(tx: Transaction, buffer: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::create_writer`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(buffer))],\n })\n }\n\n // Reader functions\n positionMoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::position`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n remainingLengthMoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::remaining_length`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n skipMoveCall(tx: Transaction, reader: TransactionResult, len: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::skip`,\n typeArguments: [],\n arguments: [reader, tx.pure.u64(len)],\n })\n }\n\n setPositionMoveCall(tx: Transaction, reader: TransactionResult, position: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::set_position`,\n typeArguments: [],\n arguments: [reader, tx.pure.u64(position)],\n })\n }\n\n rewindMoveCall(tx: Transaction, reader: TransactionResult, len: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::rewind`,\n typeArguments: [],\n arguments: [reader, tx.pure.u64(len)],\n })\n }\n\n readU8MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_u8`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readU16MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_u16`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readU32MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_u32`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readU64MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_u64`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readU128MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_u128`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readU256MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_u256`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readBytes32MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_bytes32`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readAddressMoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_address`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readFixedLenBytesMoveCall(tx: Transaction, reader: TransactionResult, len: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_fixed_len_bytes`,\n typeArguments: [],\n arguments: [reader, tx.pure.u64(len)],\n })\n }\n\n readBytesUntilEndMoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_bytes_until_end`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readerBufferLengthMoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::reader_buffer_length`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readerToBytesMoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::reader_to_bytes`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n // Writer functions\n writerBufferLengthMoveCall(tx: Transaction, writer: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::writer_buffer_length`,\n typeArguments: [],\n arguments: [writer],\n })\n }\n\n writerToBytesMoveCall(tx: Transaction, writer: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::writer_to_bytes`,\n typeArguments: [],\n arguments: [writer],\n })\n }\n\n writeU8MoveCall(tx: Transaction, writer: TransactionResult, value: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_u8`,\n typeArguments: [],\n arguments: [writer, tx.pure.u8(value)],\n })\n }\n\n writeU16MoveCall(tx: Transaction, writer: TransactionResult, value: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_u16`,\n typeArguments: [],\n arguments: [writer, tx.pure.u16(value)],\n })\n }\n\n writeU32MoveCall(tx: Transaction, writer: TransactionResult, value: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_u32`,\n typeArguments: [],\n arguments: [writer, tx.pure.u32(value)],\n })\n }\n\n writeU64MoveCall(tx: Transaction, writer: TransactionResult, value: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_u64`,\n typeArguments: [],\n arguments: [writer, tx.pure.u64(value)],\n })\n }\n\n writeU128MoveCall(tx: Transaction, writer: TransactionResult, value: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_u128`,\n typeArguments: [],\n arguments: [writer, tx.pure.u128(value)],\n })\n }\n\n writeU256MoveCall(tx: Transaction, writer: TransactionResult, value: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_u256`,\n typeArguments: [],\n arguments: [writer, tx.pure.u256(value)],\n })\n }\n\n writeBytesMoveCall(tx: Transaction, writer: TransactionResult, bytes: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_bytes`,\n typeArguments: [],\n arguments: [writer, tx.pure(bcs.vector(bcs.u8()).serialize(bytes))],\n })\n }\n\n writeAddressMoveCall(tx: Transaction, writer: TransactionResult, address: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_address`,\n typeArguments: [],\n arguments: [writer, tx.pure.address(address)],\n })\n }\n\n writeBytes32MoveCall(tx: Transaction, writer: TransactionResult, bytes32: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_bytes32`,\n typeArguments: [],\n arguments: [writer, tx.object(bytes32)],\n })\n }\n\n // === Hash Functions ===\n\n blake2b256MoveCall(tx: Transaction, bytes: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::hash::blake2b256`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(bytes))],\n })\n }\n\n keccak256MoveCall(tx: Transaction, bytes: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::hash::keccak256`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(bytes))],\n })\n }\n}\n","import { SuiClient } from '@mysten/sui/client'\nimport { Transaction, TransactionResult } from '@mysten/sui/transactions'\n\nimport { Context } from '../types'\n\nexport class Zro {\n public packageId: string\n public readonly client: SuiClient\n\n constructor(\n packageId: string,\n client: SuiClient,\n private readonly context: Context\n ) {\n this.packageId = packageId\n this.client = client\n }\n\n zeroOptionMoveCall(tx: Transaction): TransactionResult {\n const zroToken = tx.moveCall({\n target: `0x2::coin::zero`,\n typeArguments: [`${this.packageId}::zro::ZRO`],\n })\n const zroOption = tx.moveCall({\n target: `0x1::option::some`,\n typeArguments: [`0x2::coin::Coin<${this.packageId}::zro::ZRO>`],\n arguments: [zroToken],\n })\n return zroOption\n }\n\n noneOptionMoveCall(tx: Transaction): TransactionResult {\n return tx.moveCall({\n target: `0x1::option::none`,\n typeArguments: [`0x2::coin::Coin<${this.packageId}::zro::ZRO>`],\n })\n }\n}\n","import { SuiClient } from '@mysten/sui/client'\n\nimport { Provider } from '@layerzerolabs/lz-core'\nimport { SuiProvider } from '@layerzerolabs/lz-corekit-sui'\nimport { Chain, Stage, chainAndStageToNetwork } from '@layerzerolabs/lz-definitions'\n\nimport { Counter } from './modules/counter'\nimport { Endpoint } from './modules/endpoint'\nimport { SimpleMessageLib } from './modules/simple-message-lib'\nimport { Utils } from './modules/utils'\nimport { Zro } from './modules/zro'\nimport { Context, ObjectOptions, PackageOptions } from './types'\nimport { readAddressFromDeployment } from './utils'\n\n/**\n * Asserts that the given provider is an instance of SuiProvider.\n *\n * @param {unknown} provider - The provider to check.\n * @throws {Error} If the provider is not an instance of SuiProvider.\n */\nfunction assertSuiProvider(provider: Provider): asserts provider is SuiProvider {\n if (!(provider instanceof SuiProvider)) {\n throw new Error('Invalid provider')\n }\n}\n\n/**\n * Creates an instance of the SDK from the given provider.\n *\n * @param {unknown} provider - The provider of the current chain.\n * @param {Stage} [stage] - The stage of the SDK. {@link Stage}\n * @returns {SDK} The initialized SDK instance.\n */\nexport function getSDKFromProvider(provider: Provider, stage?: Stage): SDK {\n assertSuiProvider(provider)\n const client = provider.native\n\n return new SDK({\n client,\n stage,\n })\n}\n\n/**\n * Options for initializing the SDK.\n */\nexport interface SdkOptions {\n /**\n * The chain for the SDK (optional).\n * default value is Chain.SUI\n */\n chain?: Chain\n /**\n * The Sui client for the SDK.\n */\n client: SuiClient\n\n /**\n * The stage of the SDK (optional).\n * default value is Stage.SANDBOX\n */\n stage?: Stage\n\n /**\n * The package options for the SDK.\n */\n packages?: Partial<PackageOptions>\n\n /**\n * The object options for the SDK.\n */\n objects?: Partial<ObjectOptions>\n}\n\n/**\n * The SDK class provides methods to interact with LayerZero on Sui.\n * It initializes all modules at once and provides access to them.\n */\nexport class SDK {\n chain: Chain\n stage: Stage\n client: SuiClient\n public readonly packages: PackageOptions\n public readonly objects: ObjectOptions\n\n // Module instances\n endpoint: Endpoint\n counter: Counter\n simpleMessageLib: SimpleMessageLib\n utils: Utils\n zro: Zro\n\n /**\n * Creates an instance of the SDK.\n *\n * @param {SdkOptions} options - The SDK options.\n */\n constructor(options: SdkOptions) {\n this.chain = options.chain ?? Chain.PLACEHOLDER0\n this.stage = options.stage ?? Stage.SANDBOX\n this.client = options.client\n const network = chainAndStageToNetwork(this.chain, this.stage, this.stage === Stage.SANDBOX)\n const defaultPackages = {\n utils: readAddressFromDeployment(network, 'utils')!,\n endpoint_v2: readAddressFromDeployment(network, 'endpoint_v2')!,\n counter_v2: readAddressFromDeployment(network, 'counter')!,\n simple_message_lib: readAddressFromDeployment(network, 'simple_message_lib')!,\n zro: readAddressFromDeployment(network, 'zro')!,\n }\n this.packages = {\n ...defaultPackages,\n ...options.packages,\n }\n const defaultObjects = {\n endpoint_v2: readAddressFromDeployment(network, 'object-EndpointV2')!,\n simple_message_lib: readAddressFromDeployment(network, 'object-SimpleMessageLib')!,\n uln_302: readAddressFromDeployment(network, 'object-ULN302')!,\n blocked_message_lib: readAddressFromDeployment(network, 'object-BlockedMessageLib')!,\n discovery: readAddressFromDeployment(network, 'object-Discovery')!,\n counter: readAddressFromDeployment(network, 'object-Counter')!,\n counter_admin_cap: readAddressFromDeployment(network, 'object-CounterAdminCap')!,\n endpoint_admin_cap: readAddressFromDeployment(network, 'object-EndpointV2AdminCap')!,\n oapp_core: readAddressFromDeployment(network, 'object-OAppCore')!,\n }\n this.objects = {\n ...defaultObjects,\n ...options.objects,\n }\n const context: Context = {} as unknown as Context\n // Initialize all modules\n this.endpoint = new Endpoint(this.packages.endpoint_v2, this.client, this.objects, context)\n\n this.counter = new Counter(this.packages.counter_v2, this.packages.utils, this.client, this.objects, context)\n\n this.simpleMessageLib = new SimpleMessageLib(\n this.packages.simple_message_lib,\n this.client,\n this.objects,\n context\n )\n\n this.utils = new Utils(this.packages.utils, this.client, context)\n\n this.zro = new Zro(this.packages.zro, this.client, context)\n\n context.endpoint = this.endpoint\n context.counter = this.counter\n context.simpleMessageLib = this.simpleMessageLib\n context.utils = this.utils\n context.zro = this.zro\n }\n\n /**\n * Gets the Sui client.\n *\n * @returns {SuiClient} The Sui client.\n */\n getSuiClient(): SuiClient {\n return this.client\n }\n\n /**\n * Gets the chain.\n *\n * @returns {Chain} The chain.\n */\n getChain(): Chain {\n return this.chain\n }\n\n /**\n * Gets the stage.\n *\n * @returns {Stage} The stage.\n */\n getStage(): Stage {\n return this.stage\n }\n\n /**\n * Gets the package options.\n *\n * @returns {PackageOptions} The package options.\n */\n getPackages(): PackageOptions {\n return this.packages\n }\n\n /**\n * Gets the object options.\n *\n * @returns {ObjectOptions} The object options.\n */\n getObjects(): ObjectOptions {\n return this.objects\n }\n\n /**\n * Gets the endpoint module.\n *\n * @returns {Endpoint} The endpoint module.\n */\n getEndpoint(): Endpoint {\n return this.endpoint\n }\n\n /**\n * Gets the counter module.\n *\n * @returns {Counter} The counter module.\n */\n getCounter(): Counter {\n return this.counter\n }\n\n /**\n * Gets the simple message library module.\n *\n * @returns {SimpleMessageLib} The simple message library module.\n */\n getSimpleMessageLib(): SimpleMessageLib {\n return this.simpleMessageLib\n }\n\n /**\n * Gets the utils module.\n *\n * @returns {Utils} The utils module.\n */\n getUtils(): Utils {\n return this.utils\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/utils.ts","../src/modules/simple-message-lib.ts","../src/modules/endpoint.ts","../src/bcs/messaging-fee.ts","../src/modules/counter.ts","../src/modules/utils.ts","../src/modules/zro.ts","../src/sdk.ts"],"names":["EndpointErrorCode","Transaction","bcs","CounterErrorCode"],"mappings":"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","file":"index.mjs","sourcesContent":["export class MoveAbortError extends Error {\n readonly abortCode: number\n constructor(abortCode: number, rawMsg: string) {\n super(`Move abort with code: ${abortCode}. Raw error message: ${rawMsg}`)\n this.abortCode = abortCode\n }\n}\n\nexport class UnclassifiedError extends Error {}\n","import * as fs from 'fs'\nimport * as path from 'path'\n\nimport { SuiClient, SuiExecutionResult, SuiTransactionBlockResponse } from '@mysten/sui/client'\nimport { Keypair } from '@mysten/sui/cryptography'\nimport { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519'\nimport { Transaction } from '@mysten/sui/transactions'\n\nimport { MoveAbortError, UnclassifiedError } from './errors'\nimport { MoveViewResult } from './types'\n\nexport async function moveView(suiClient: SuiClient, tx: Transaction, sender?: string): Promise<MoveViewResult[]> {\n if (sender === undefined) {\n sender = Ed25519Keypair.generate().toSuiAddress()\n }\n const { results, error } = await suiClient.devInspectTransactionBlock({\n transactionBlock: tx,\n sender: sender,\n })\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (error != undefined && error != null) {\n throw handleError(error)\n }\n if (results === undefined || results === null) {\n throw new Error('No results found')\n }\n const lastCommandResults: SuiExecutionResult = results[results.length - 1]\n\n if (lastCommandResults.returnValues === undefined) {\n throw new Error('No return values found')\n }\n\n return lastCommandResults.returnValues.map((result) => {\n return {\n value: new Uint8Array(result[0]),\n type: result[1],\n }\n })\n}\n\nexport function readAddressFromDeployment(network: string, name: string): string | undefined {\n const deploymentPath = path.join(__dirname, '..', 'deployments', network, `${name}.json`)\n if (!fs.existsSync(deploymentPath)) {\n return undefined\n }\n const deployment = JSON.parse(fs.readFileSync(deploymentPath, 'utf8')) as { address: string }\n return deployment.address\n}\n\nexport async function validateTransaction(\n client: SuiClient,\n signer: Keypair,\n tx: Transaction\n): Promise<SuiTransactionBlockResponse> {\n tx.setSenderIfNotSet(signer.getPublicKey().toSuiAddress())\n const result = await client.signAndExecuteTransaction({\n signer,\n transaction: tx,\n options: {\n showEffects: true,\n showObjectChanges: true,\n showEvents: true,\n },\n })\n\n if (result.effects?.status.status !== 'success') {\n throw new Error(result.effects?.status.error)\n }\n\n await client.waitForTransaction({ digest: result.digest })\n return result\n}\n\nexport function handleError(e: string): unknown {\n if (e.includes('ExecutionError')) {\n const majorStatusMatch = e.match(/major_status:\\s([A-Z_]+)/)\n if (majorStatusMatch !== null) {\n const major_status = majorStatusMatch[1]\n if (major_status === 'ABORTED') {\n const subStatusMatch = e.match(/sub_status:\\sSome\\((\\d+)\\)/)\n if (subStatusMatch === null) {\n return new MoveAbortError(Number.NEGATIVE_INFINITY, e)\n } else {\n return new MoveAbortError(Number(subStatusMatch[1]), e)\n }\n }\n } else {\n return new UnclassifiedError(e)\n }\n }\n return new Error(e)\n}\n","import { bcs } from '@mysten/sui/bcs'\nimport { SuiClient } from '@mysten/sui/client'\nimport { Transaction, TransactionResult } from '@mysten/sui/transactions'\n\nimport { Context, ObjectOptions } from '../types'\nimport { moveView } from '../utils'\n\nexport class SimpleMessageLib {\n public packageId: string\n public readonly client: SuiClient\n private readonly objects: Pick<\n ObjectOptions,\n 'simple_message_lib' | 'endpoint_admin_cap' | 'endpoint_v2' | 'discovery'\n >\n\n constructor(\n packageId: string,\n client: SuiClient,\n objects: Pick<ObjectOptions, 'simple_message_lib' | 'endpoint_admin_cap' | 'endpoint_v2' | 'discovery'>,\n private readonly context: Context\n ) {\n this.packageId = packageId\n this.client = client\n this.objects = objects\n\n // Validate that required objects are not empty strings\n if (this.objects.simple_message_lib.trim() === '') {\n throw new Error('simple_message_lib object cannot be empty')\n }\n if (this.objects.endpoint_admin_cap.trim() === '') {\n throw new Error('admin_cap object cannot be empty')\n }\n if (this.objects.endpoint_v2.trim() === '') {\n throw new Error('endpoint_v2 object cannot be empty')\n }\n }\n\n populateInitializeTransaction(): Transaction {\n const tx = new Transaction()\n\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::initialize`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_admin_cap), tx.object(this.objects.endpoint_v2)],\n })\n return tx\n }\n\n // === View Functions ===\n\n async getNativeFee(): Promise<string> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::get_native_fee`,\n typeArguments: [],\n arguments: [tx.object(this.objects.simple_message_lib)],\n })\n const result = await moveView(this.client, tx)\n return bcs.U64.parse(result[0].value)\n }\n\n async getZroFee(): Promise<string> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::get_zro_fee`,\n typeArguments: [],\n arguments: [tx.object(this.objects.simple_message_lib)],\n })\n const result = await moveView(this.client, tx)\n return bcs.U64.parse(result[0].value)\n }\n\n async getFeeRecipient(): Promise<string> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::get_fee_recipient`,\n typeArguments: [],\n arguments: [tx.object(this.objects.simple_message_lib)],\n })\n const result = await moveView(this.client, tx)\n return bcs.Address.parse(result[0].value)\n }\n\n async isRegistered(): Promise<boolean> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::is_registered`,\n typeArguments: [],\n arguments: [tx.object(this.objects.simple_message_lib), tx.object(this.objects.endpoint_v2)],\n })\n const result = await moveView(this.client, tx)\n return bcs.Bool.parse(result[0].value)\n }\n\n // === Admin Functions ===\n\n populateRegisterLibraryTransaction(): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::register_library`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.simple_message_lib),\n tx.object(this.objects.endpoint_admin_cap),\n tx.object(this.objects.endpoint_v2),\n ],\n })\n return tx\n }\n\n populateSetMessagingFeeTransaction(zroFee: number, nativeFee: number): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::set_messaging_fee`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.simple_message_lib),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure.u64(zroFee),\n tx.pure.u64(nativeFee),\n ],\n })\n return tx\n }\n\n populateSetDefaultConfigTransaction(eid: number, configType: number, config: Uint8Array): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::set_default_config`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.simple_message_lib),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure.u32(eid),\n tx.pure.u32(configType),\n tx.pure(bcs.vector(bcs.u8()).serialize(config)),\n ],\n })\n return tx\n }\n\n populateSetFeeRecipientTransaction(feeRecipient: string): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::set_fee_recipient`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.simple_message_lib),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure.address(feeRecipient),\n ],\n })\n return tx\n }\n\n // === Endpoint Validation ===\n\n populateValidatePacketTransaction(packetHeader: Uint8Array, payloadHash: Uint8Array): Transaction {\n const tx = new Transaction()\n const payloadHashBytes32 = this.context.utils.fromBytesMoveCall(tx, payloadHash)\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::validate_packet`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.simple_message_lib),\n tx.object(this.objects.endpoint_v2),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure(bcs.vector(bcs.u8()).serialize(packetHeader)),\n payloadHashBytes32,\n tx.object('0x6'), // Clock Object TODO try to get it from the client or sdk\n ],\n })\n return tx\n }\n\n // === Protocol Discovery ===\n\n populateRegisterMessageLibDiscoveryTransaction(): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::simple_message_lib::register_message_lib_discovery`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.simple_message_lib),\n tx.object(this.objects.endpoint_admin_cap),\n tx.object(this.objects.endpoint_v2),\n tx.object(this.objects.discovery),\n ],\n })\n return tx\n }\n\n quoteMoveCall(tx: Transaction, quoteCall: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::simple_message_lib::quote`,\n typeArguments: [],\n arguments: [tx.object(this.objects.simple_message_lib), quoteCall],\n })\n }\n\n sendMoveCall(tx: Transaction, sendCall: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::simple_message_lib::send`,\n typeArguments: [],\n arguments: [tx.object(this.objects.simple_message_lib), tx.object(this.objects.endpoint_v2), sendCall],\n })\n }\n\n // === TODO: Core Message Lib Functions ===\n // These functions are called by the endpoint and require specific parameter types\n // that need to be implemented based on the endpoint_v2 module interfaces\n\n populateQuoteTransaction(tx: Transaction): void {\n // TODO: implement quote functionality\n // This requires Call<QuoteParam> parameter from endpoint_v2\n }\n\n populateSendTransaction(tx: Transaction): void {\n // TODO: implement send functionality\n // This requires Call<SendParam> parameter from endpoint_v2\n }\n\n populateSetConfigTransaction(tx: Transaction): void {\n // TODO: implement set_config functionality\n // This requires Call<SetConfigParam> parameter from endpoint_v2\n }\n\n populateGetConfigTransaction(tx: Transaction): void {\n // TODO: implement get_config functionality\n // This requires Call<GetConfigParam> parameter from endpoint_v2\n }\n}\n","import { bcs } from '@mysten/sui/bcs'\nimport { SuiClient } from '@mysten/sui/client'\nimport { Transaction, TransactionResult } from '@mysten/sui/transactions'\n\nimport { MoveAbortError } from '../errors'\nimport { Context, ObjectOptions } from '../types'\nimport { moveView } from '../utils'\n\nexport enum EndpointErrorCode {\n EDefaultReceiveLibUnavailable = 2,\n EDefaultSendLibUnavailable = 3,\n ENotInitialized = 4,\n}\n\nexport class Endpoint {\n public packageId: string\n public readonly client: SuiClient\n private readonly objects: Pick<ObjectOptions, 'endpoint_v2' | 'endpoint_admin_cap'>\n\n constructor(\n packageId: string,\n client: SuiClient,\n objects: Pick<ObjectOptions, 'endpoint_v2' | 'endpoint_admin_cap'>,\n private readonly context: Context\n ) {\n this.packageId = packageId\n this.client = client\n this.objects = objects\n\n // Validate that required objects are not empty strings\n if (this.objects.endpoint_v2.trim() === '') {\n throw new Error('endpoint_v2 object cannot be empty')\n }\n if (this.objects.endpoint_admin_cap.trim() === '') {\n throw new Error('endpoint_admin_cap object cannot be empty')\n }\n }\n\n async eid(): Promise<number> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::eid`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2)],\n })\n try {\n const result = await moveView(this.client, tx)\n return bcs.U32.parse(result[0].value)\n } catch (e) {\n if (e instanceof MoveAbortError && e.abortCode === EndpointErrorCode.ENotInitialized.valueOf()) {\n return 0\n }\n throw e\n }\n }\n\n populateInitEidTransaction(eid: number): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::init_eid`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure.u32(eid),\n ],\n })\n return tx\n }\n\n async getDefaultSendLibrary(srcEid: number): Promise<string> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_default_send_library`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2), tx.pure.u32(srcEid)],\n })\n try {\n const result = await moveView(this.client, tx)\n return bcs.Address.parse(result[0].value)\n } catch (e) {\n if (e instanceof MoveAbortError && e.abortCode === EndpointErrorCode.EDefaultSendLibUnavailable.valueOf()) {\n return '0x0'\n }\n throw e\n }\n }\n\n populateSetDefaultSendLibraryTransaction(dstEid: number, newLib: string): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::set_default_send_library`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure.u32(dstEid),\n tx.pure.address(newLib),\n ],\n })\n return tx\n }\n\n async getDefaultReceiveLibrary(srcEid: number): Promise<string> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_default_receive_library`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2), tx.pure.u32(srcEid)],\n })\n try {\n const result = await moveView(this.client, tx)\n return bcs.Address.parse(result[0].value)\n } catch (e) {\n if (\n e instanceof MoveAbortError &&\n e.abortCode === EndpointErrorCode.EDefaultReceiveLibUnavailable.valueOf()\n ) {\n return '0x0'\n }\n throw e\n }\n }\n\n populateSetDefaultReceiveLibraryTransaction(srcEid: number, newLib: string, gracePeriod: number): Transaction {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::set_default_receive_library`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.object(this.objects.endpoint_admin_cap),\n tx.pure.u32(srcEid),\n tx.pure.address(newLib),\n tx.pure.u64(gracePeriod),\n tx.object('0x6'), // Clock Object TODO try to get it from the client or sdk\n ],\n })\n return tx\n }\n\n confirmQuoteMoveCall(tx: Transaction, executedCall: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::endpoint_v2::confirm_quote`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2), executedCall],\n })\n }\n\n confirmSendMoveCall(tx: Transaction, executedCall: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::endpoint_v2::confirm_send`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2), executedCall],\n })\n }\n\n // === Worker Endpoint Required Methods ===\n\n async getSendLibrary(sender: string, dstEid: number): Promise<[string, boolean]> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_send_library`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2), tx.pure.address(sender), tx.pure.u32(dstEid)],\n })\n const result = await moveView(this.client, tx)\n const lib = bcs.Address.parse(result[0].value)\n const isDefault = bcs.Bool.parse(result[1].value)\n return [lib, isDefault]\n }\n\n async getReceiveLibrary(receiver: string, srcEid: number): Promise<[string, boolean]> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_receive_library`,\n typeArguments: [],\n arguments: [tx.object(this.objects.endpoint_v2), tx.pure.address(receiver), tx.pure.u32(srcEid)],\n })\n const result = await moveView(this.client, tx)\n const lib = bcs.Address.parse(result[0].value)\n const isDefault = bcs.Bool.parse(result[1].value)\n return [lib, isDefault]\n }\n\n async getInboundNonce(receiver: string, srcEid: number, sender: Uint8Array): Promise<bigint> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_inbound_nonce`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.pure.address(receiver),\n tx.pure.u32(srcEid),\n tx.pure(bcs.vector(bcs.u8()).serialize(sender)),\n ],\n })\n const result = await moveView(this.client, tx)\n return BigInt(bcs.U64.parse(result[0].value))\n }\n\n async getLazyInboundNonce(receiver: string, srcEid: number, sender: Uint8Array): Promise<bigint> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_lazy_inbound_nonce`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.pure.address(receiver),\n tx.pure.u32(srcEid),\n tx.pure(bcs.vector(bcs.u8()).serialize(sender)),\n ],\n })\n const result = await moveView(this.client, tx)\n return BigInt(bcs.U64.parse(result[0].value))\n }\n\n async getOutboundNonce(sender: string, dstEid: number, receiver: Uint8Array): Promise<bigint> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_outbound_nonce`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.pure.address(sender),\n tx.pure.u32(dstEid),\n tx.pure(bcs.vector(bcs.u8()).serialize(receiver)),\n ],\n })\n const result = await moveView(this.client, tx)\n return BigInt(bcs.U64.parse(result[0].value))\n }\n\n async getInboundPayloadHash(\n receiver: string,\n srcEid: number,\n sender: Uint8Array,\n nonce: bigint\n ): Promise<Uint8Array | null> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_inbound_payload_hash`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.pure.address(receiver),\n tx.pure.u32(srcEid),\n tx.pure(bcs.vector(bcs.u8()).serialize(sender)),\n tx.pure.u64(nonce),\n ],\n })\n try {\n const result = await moveView(this.client, tx)\n const parsed = bcs.vector(bcs.u8()).parse(result[0].value)\n return Buffer.from(parsed)\n } catch (error) {\n //TODO need to handle error properly\n return null\n }\n }\n\n async getComposeMessageHash(from: string, to: string, guid: Uint8Array, index: number): Promise<Uint8Array> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::endpoint_v2::get_compose_message_hash`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.endpoint_v2),\n tx.pure.address(from),\n tx.pure.address(to),\n tx.pure(bcs.vector(bcs.u8()).serialize(guid)),\n tx.pure.u16(index),\n ],\n })\n const result = await moveView(this.client, tx)\n const parsed = bcs.vector(bcs.u8()).parse(result[0].value)\n return Buffer.from(parsed)\n }\n\n // TODO: more view functions to be added here\n populateQuoteTransaction(tx: Transaction): void {\n // TODO: implement\n }\n\n populateSendTransaction(tx: Transaction): void {\n // TODO: implement\n }\n\n populateGetConfigTransaction(tx: Transaction): void {\n // TODO: implement\n }\n\n populateSetConfigTransaction(tx: Transaction): void {\n // TODO: implement\n }\n}\n","import { bcs } from '@mysten/sui/bcs'\n\nexport const MessagingFeeBcs = bcs.struct('MessagingFee', {\n native_fee: bcs.U64,\n zro_fee: bcs.U64,\n})\n","import { bcs } from '@mysten/sui/bcs'\nimport { SuiClient, SuiTransactionBlockResponse } from '@mysten/sui/client'\nimport { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519'\nimport { Transaction } from '@mysten/sui/transactions'\n\nimport { EndpointId } from '@layerzerolabs/lz-definitions'\n\nimport { MessagingFeeBcs } from '../bcs'\nimport { MoveAbortError } from '../errors'\nimport { Context, ObjectOptions } from '../types'\nimport { moveView, validateTransaction } from '../utils'\n\nexport enum CounterErrorCode {\n EPeerNotFound = 0,\n}\n\nexport class Counter {\n public packageId: string\n public utilsPkgId: string\n public readonly client: SuiClient\n private readonly objects: Pick<\n ObjectOptions,\n 'counter' | 'counter_admin_cap' | 'endpoint_v2' | 'simple_message_lib'\n >\n\n constructor(\n packageId: string,\n utilsPkgId: string,\n client: SuiClient,\n objects: Pick<ObjectOptions, 'counter' | 'counter_admin_cap' | 'endpoint_v2' | 'simple_message_lib'>,\n private readonly context: Context\n ) {\n this.packageId = packageId\n this.utilsPkgId = utilsPkgId\n this.client = client\n this.objects = objects\n\n // Validate that required objects are not empty strings\n // if (this.objects.counter.trim() === '') {\n // throw new Error('counter object cannot be empty')\n // }\n // if (this.objects.counter_admin_cap.trim() === '') {\n // throw new Error('counter_admin_cap object cannot be empty')\n // }\n // if (this.objects.endpoint_v2.trim() === '') {\n // throw new Error('endpoint_v2 object cannot be empty')\n // }\n }\n\n async getPeer(dstEid: number): Promise<string> {\n const tx = new Transaction()\n const peerBytes32 = tx.moveCall({\n target: `${this.packageId}::counter::get_peer`,\n typeArguments: [],\n arguments: [tx.object(this.objects.counter), tx.pure.u32(dstEid)],\n })\n tx.moveCall({\n target: `${this.utilsPkgId}::bytes32::to_address`,\n typeArguments: [],\n arguments: [peerBytes32],\n })\n try {\n const result = await moveView(this.client, tx)\n return bcs.Address.parse(result[0].value)\n } catch (e) {\n if (e instanceof MoveAbortError && e.abortCode === CounterErrorCode.EPeerNotFound.valueOf()) {\n return '0x0'\n }\n throw e\n }\n }\n\n async getCount(): Promise<number> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::counter::get_count`,\n typeArguments: [],\n arguments: [tx.object(this.objects.counter)],\n })\n const result = await moveView(this.client, tx)\n const counterStr = bcs.U64.parse(result[0].value)\n return Number(counterStr)\n }\n\n async getComposedCount(): Promise<number> {\n const tx = new Transaction()\n tx.moveCall({\n target: `${this.packageId}::counter::get_composed_count`,\n typeArguments: [],\n arguments: [tx.object(this.objects.counter)],\n })\n const result = await moveView(this.client, tx)\n const counterStr = bcs.U64.parse(result[0].value)\n return Number(counterStr)\n }\n\n populateSetPeerTransaction(dstEid: number, peer: Uint8Array): Transaction {\n const tx = new Transaction()\n const peerBytes32 = tx.moveCall({\n target: `${this.utilsPkgId}::bytes32::from_bytes`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(peer))],\n })\n tx.moveCall({\n target: `${this.packageId}::counter::set_peer`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.counter),\n tx.object(this.objects.counter_admin_cap),\n tx.object(this.objects.endpoint_v2),\n tx.pure.u32(dstEid),\n peerBytes32,\n ],\n })\n return tx\n }\n\n /**\n * Builds a transaction for calling the lz_receive function on the counter contract.\n *\n * @param srcEid - The source endpoint ID\n * @param sender - The sender address as Bytes32\n * @param nonce - The nonce\n * @param guid - The GUID as Bytes32\n * @param message - The message as vector<u8>\n * @param value - The value to be sent (Coin<SUI>)\n * @param extraData - Extra data as vector<u8>\n * @returns A Transaction object ready to be executed\n */\n populateLzReceiveTransaction(\n srcEid: number,\n sender: Uint8Array,\n nonce: bigint,\n guid: Uint8Array,\n message: Uint8Array,\n value: bigint,\n extraData: Uint8Array = new Uint8Array()\n ): Transaction {\n const tx = new Transaction()\n\n // Convert sender to Bytes32 format\n const senderBytes32 = this.context.utils.fromBytesMoveCall(tx, sender)\n\n // Convert guid to Bytes32 format\n const guidBytes32 = this.context.utils.fromBytesMoveCall(tx, guid)\n\n // Split the SUI coin to get the required value\n const coin = tx.splitCoins(tx.gas, [tx.pure.u64(value)])\n\n // Call the lz_receive function\n tx.moveCall({\n target: `${this.packageId}::counter::lz_receive`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.counter),\n tx.object(this.objects.endpoint_v2),\n tx.pure.u32(srcEid),\n senderBytes32,\n tx.pure.u64(nonce),\n guidBytes32,\n tx.pure(bcs.vector(bcs.u8()).serialize(message)),\n coin,\n tx.pure(bcs.vector(bcs.u8()).serialize(extraData)),\n ],\n })\n\n return tx\n }\n\n async quote(\n dstEid: EndpointId,\n msgType: number,\n options: Uint8Array,\n payInZero: boolean\n ): Promise<[bigint, bigint]> {\n const tx = new Transaction()\n const quoteCall = tx.moveCall({\n target: `${this.packageId}::counter::quote`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.counter),\n tx.object(this.objects.endpoint_v2),\n tx.pure.u32(dstEid),\n tx.pure.u8(msgType),\n tx.pure(bcs.vector(bcs.u8()).serialize(options)),\n tx.pure.bool(payInZero),\n ],\n })\n const executedCall = this.context.simpleMessageLib.quoteMoveCall(tx, quoteCall)\n this.context.endpoint.confirmQuoteMoveCall(tx, executedCall)\n const result = await moveView(this.client, tx)\n const messageFee = MessagingFeeBcs.parse(result[0].value)\n return [BigInt(messageFee.native_fee), BigInt(messageFee.zro_fee)]\n }\n\n async send(\n sender: Ed25519Keypair,\n dstEid: EndpointId,\n msgType: number,\n options: Uint8Array,\n sendValue: string,\n nativeFee: string,\n zroFee: string\n ): Promise<SuiTransactionBlockResponse> {\n const tx = new Transaction()\n const [nativeToken] = tx.splitCoins(tx.gas, [tx.pure.u64(nativeFee)])\n const zroToken = this.context.zro.noneOptionMoveCall(tx)\n const incrementCall = tx.moveCall({\n target: `${this.packageId}::counter::increment`,\n typeArguments: [],\n arguments: [\n tx.object(this.objects.counter),\n tx.object(this.objects.endpoint_v2),\n tx.pure.u32(dstEid),\n tx.pure.u8(msgType),\n tx.pure(bcs.vector(bcs.u8()).serialize(options)),\n nativeToken,\n zroToken,\n tx.pure.u64(sendValue),\n tx.pure.address(sender.toSuiAddress()),\n ],\n })\n\n const executedCall = this.context.simpleMessageLib.sendMoveCall(tx, incrementCall)\n this.context.endpoint.confirmSendMoveCall(tx, executedCall)\n return validateTransaction(this.client, sender, tx)\n }\n}\n","import { bcs } from '@mysten/sui/bcs'\nimport { SuiClient } from '@mysten/sui/client'\nimport { Transaction, TransactionResult } from '@mysten/sui/transactions'\n\nimport { Context } from '../types'\n\nexport class Utils {\n public packageId: string\n public readonly client: SuiClient\n private readonly context: Context\n\n constructor(packageId: string, client: SuiClient, context: Context) {\n this.packageId = packageId\n this.client = client\n this.context = context\n\n // Validate that package ID is not empty\n if (this.packageId.trim() === '') {\n throw new Error('utils package ID cannot be empty')\n }\n }\n\n // === bytes32 Functions ===\n\n fromBytesMoveCall(tx: Transaction, peer: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::from_bytes`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(peer))],\n })\n }\n\n fromBytesLeftPaddedMoveCall(tx: Transaction, bytes: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::from_bytes_left_padded`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(bytes))],\n })\n }\n\n fromBytesRightPaddedMoveCall(tx: Transaction, bytes: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::from_bytes_right_padded`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(bytes))],\n })\n }\n\n fromAddressMoveCall(tx: Transaction, address: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::from_address`,\n typeArguments: [],\n arguments: [tx.pure.address(address)],\n })\n }\n\n fromIdMoveCall(tx: Transaction, id: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::from_id`,\n typeArguments: [],\n arguments: [tx.object(id)],\n })\n }\n\n zeroBytes32MoveCall(tx: Transaction): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::zero_bytes32`,\n typeArguments: [],\n arguments: [],\n })\n }\n\n ffBytes32MoveCall(tx: Transaction): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::ff_bytes32`,\n typeArguments: [],\n arguments: [],\n })\n }\n\n isZeroMoveCall(tx: Transaction, bytes32: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::is_zero`,\n typeArguments: [],\n arguments: [tx.object(bytes32)],\n })\n }\n\n isFfMoveCall(tx: Transaction, bytes32: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::is_ff`,\n typeArguments: [],\n arguments: [tx.object(bytes32)],\n })\n }\n\n toBytesMoveCall(tx: Transaction, bytes32: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::to_bytes`,\n typeArguments: [],\n arguments: [tx.object(bytes32)],\n })\n }\n\n toAddressMoveCall(tx: Transaction, bytes32: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::to_address`,\n typeArguments: [],\n arguments: [tx.object(bytes32)],\n })\n }\n\n toIdMoveCall(tx: Transaction, bytes32: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::bytes32::to_id`,\n typeArguments: [],\n arguments: [tx.object(bytes32)],\n })\n }\n\n // === Buffer Functions ===\n\n newReaderMoveCall(tx: Transaction, buffer: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::new_reader`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(buffer))],\n })\n }\n\n newWriterMoveCall(tx: Transaction): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::new_writer`,\n typeArguments: [],\n arguments: [],\n })\n }\n\n createWriterMoveCall(tx: Transaction, buffer: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::create_writer`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(buffer))],\n })\n }\n\n // Reader functions\n positionMoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::position`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n remainingLengthMoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::remaining_length`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n skipMoveCall(tx: Transaction, reader: TransactionResult, len: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::skip`,\n typeArguments: [],\n arguments: [reader, tx.pure.u64(len)],\n })\n }\n\n setPositionMoveCall(tx: Transaction, reader: TransactionResult, position: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::set_position`,\n typeArguments: [],\n arguments: [reader, tx.pure.u64(position)],\n })\n }\n\n rewindMoveCall(tx: Transaction, reader: TransactionResult, len: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::rewind`,\n typeArguments: [],\n arguments: [reader, tx.pure.u64(len)],\n })\n }\n\n readU8MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_u8`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readU16MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_u16`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readU32MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_u32`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readU64MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_u64`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readU128MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_u128`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readU256MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_u256`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readBytes32MoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_bytes32`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readAddressMoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_address`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readFixedLenBytesMoveCall(tx: Transaction, reader: TransactionResult, len: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_fixed_len_bytes`,\n typeArguments: [],\n arguments: [reader, tx.pure.u64(len)],\n })\n }\n\n readBytesUntilEndMoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::read_bytes_until_end`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readerBufferLengthMoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::reader_buffer_length`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n readerToBytesMoveCall(tx: Transaction, reader: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::reader_to_bytes`,\n typeArguments: [],\n arguments: [reader],\n })\n }\n\n // Writer functions\n writerBufferLengthMoveCall(tx: Transaction, writer: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::writer_buffer_length`,\n typeArguments: [],\n arguments: [writer],\n })\n }\n\n writerToBytesMoveCall(tx: Transaction, writer: TransactionResult): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::writer_to_bytes`,\n typeArguments: [],\n arguments: [writer],\n })\n }\n\n writeU8MoveCall(tx: Transaction, writer: TransactionResult, value: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_u8`,\n typeArguments: [],\n arguments: [writer, tx.pure.u8(value)],\n })\n }\n\n writeU16MoveCall(tx: Transaction, writer: TransactionResult, value: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_u16`,\n typeArguments: [],\n arguments: [writer, tx.pure.u16(value)],\n })\n }\n\n writeU32MoveCall(tx: Transaction, writer: TransactionResult, value: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_u32`,\n typeArguments: [],\n arguments: [writer, tx.pure.u32(value)],\n })\n }\n\n writeU64MoveCall(tx: Transaction, writer: TransactionResult, value: number): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_u64`,\n typeArguments: [],\n arguments: [writer, tx.pure.u64(value)],\n })\n }\n\n writeU128MoveCall(tx: Transaction, writer: TransactionResult, value: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_u128`,\n typeArguments: [],\n arguments: [writer, tx.pure.u128(value)],\n })\n }\n\n writeU256MoveCall(tx: Transaction, writer: TransactionResult, value: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_u256`,\n typeArguments: [],\n arguments: [writer, tx.pure.u256(value)],\n })\n }\n\n writeBytesMoveCall(tx: Transaction, writer: TransactionResult, bytes: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_bytes`,\n typeArguments: [],\n arguments: [writer, tx.pure(bcs.vector(bcs.u8()).serialize(bytes))],\n })\n }\n\n writeAddressMoveCall(tx: Transaction, writer: TransactionResult, address: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_address`,\n typeArguments: [],\n arguments: [writer, tx.pure.address(address)],\n })\n }\n\n writeBytes32MoveCall(tx: Transaction, writer: TransactionResult, bytes32: string): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::buffer::write_bytes32`,\n typeArguments: [],\n arguments: [writer, tx.object(bytes32)],\n })\n }\n\n // === Hash Functions ===\n\n blake2b256MoveCall(tx: Transaction, bytes: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::hash::blake2b256`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(bytes))],\n })\n }\n\n keccak256MoveCall(tx: Transaction, bytes: Uint8Array): TransactionResult {\n return tx.moveCall({\n target: `${this.packageId}::hash::keccak256`,\n typeArguments: [],\n arguments: [tx.pure(bcs.vector(bcs.u8()).serialize(bytes))],\n })\n }\n}\n","import { SuiClient } from '@mysten/sui/client'\nimport { Transaction, TransactionResult } from '@mysten/sui/transactions'\n\nimport { Context } from '../types'\n\nexport class Zro {\n public packageId: string\n public readonly client: SuiClient\n\n constructor(\n packageId: string,\n client: SuiClient,\n private readonly context: Context\n ) {\n this.packageId = packageId\n this.client = client\n }\n\n zeroOptionMoveCall(tx: Transaction): TransactionResult {\n const zroToken = tx.moveCall({\n target: `0x2::coin::zero`,\n typeArguments: [`${this.packageId}::zro::ZRO`],\n })\n const zroOption = tx.moveCall({\n target: `0x1::option::some`,\n typeArguments: [`0x2::coin::Coin<${this.packageId}::zro::ZRO>`],\n arguments: [zroToken],\n })\n return zroOption\n }\n\n noneOptionMoveCall(tx: Transaction): TransactionResult {\n return tx.moveCall({\n target: `0x1::option::none`,\n typeArguments: [`0x2::coin::Coin<${this.packageId}::zro::ZRO>`],\n })\n }\n}\n","import { SuiClient } from '@mysten/sui/client'\n\nimport { Provider } from '@layerzerolabs/lz-core'\nimport { SuiProvider } from '@layerzerolabs/lz-corekit-sui'\nimport { Chain, Stage, chainAndStageToNetwork } from '@layerzerolabs/lz-definitions'\n\nimport { Counter } from './modules/counter'\nimport { Endpoint } from './modules/endpoint'\nimport { SimpleMessageLib } from './modules/simple-message-lib'\nimport { Utils } from './modules/utils'\nimport { Zro } from './modules/zro'\nimport { Context, ObjectOptions, PackageOptions } from './types'\nimport { readAddressFromDeployment } from './utils'\n\n/**\n * Asserts that the given provider is an instance of SuiProvider.\n *\n * @param {unknown} provider - The provider to check.\n * @throws {Error} If the provider is not an instance of SuiProvider.\n */\nfunction assertSuiProvider(provider: Provider): asserts provider is SuiProvider {\n if (!(provider instanceof SuiProvider)) {\n throw new Error('Invalid provider')\n }\n}\n\n/**\n * Creates an instance of the SDK from the given provider.\n *\n * @param {unknown} provider - The provider of the current chain.\n * @param {Stage} [stage] - The stage of the SDK. {@link Stage}\n * @returns {SDK} The initialized SDK instance.\n */\nexport function getSDKFromProvider(provider: Provider, stage?: Stage): SDK {\n assertSuiProvider(provider)\n const client = provider.native\n\n return new SDK({\n client,\n stage,\n })\n}\n\n/**\n * Options for initializing the SDK.\n */\nexport interface SdkOptions {\n /**\n * The chain for the SDK (optional).\n * default value is Chain.SUI\n */\n chain?: Chain\n /**\n * The Sui client for the SDK.\n */\n client: SuiClient\n\n /**\n * The stage of the SDK (optional).\n * default value is Stage.SANDBOX\n */\n stage?: Stage\n\n /**\n * The package options for the SDK.\n */\n packages?: Partial<PackageOptions>\n\n /**\n * The object options for the SDK.\n */\n objects?: Partial<ObjectOptions>\n}\n\n/**\n * The SDK class provides methods to interact with LayerZero on Sui.\n * It initializes all modules at once and provides access to them.\n */\nexport class SDK {\n chain: Chain\n stage: Stage\n client: SuiClient\n public readonly packages: PackageOptions\n public readonly objects: ObjectOptions\n\n // Module instances\n endpoint: Endpoint\n counter: Counter\n simpleMessageLib: SimpleMessageLib\n utils: Utils\n zro: Zro\n\n /**\n * Creates an instance of the SDK.\n *\n * @param {SdkOptions} options - The SDK options.\n */\n constructor(options: SdkOptions) {\n this.chain = options.chain ?? Chain.PLACEHOLDER0\n this.stage = options.stage ?? Stage.SANDBOX\n this.client = options.client\n const network = chainAndStageToNetwork(this.chain, this.stage, this.stage === Stage.SANDBOX)\n const defaultPackages = {\n utils: readAddressFromDeployment(network, 'utils')!,\n endpoint_v2: readAddressFromDeployment(network, 'endpoint_v2')!,\n counter_v2: readAddressFromDeployment(network, 'counter')!,\n simple_message_lib: readAddressFromDeployment(network, 'simple_message_lib')!,\n zro: readAddressFromDeployment(network, 'zro')!,\n }\n this.packages = {\n ...defaultPackages,\n ...options.packages,\n }\n const defaultObjects = {\n endpoint_v2: readAddressFromDeployment(network, 'object-EndpointV2')!,\n simple_message_lib: readAddressFromDeployment(network, 'object-SimpleMessageLib')!,\n uln_302: readAddressFromDeployment(network, 'object-ULN302')!,\n blocked_message_lib: readAddressFromDeployment(network, 'object-BlockedMessageLib')!,\n discovery: readAddressFromDeployment(network, 'object-Discovery')!,\n counter: readAddressFromDeployment(network, 'object-Counter')!,\n counter_admin_cap: readAddressFromDeployment(network, 'object-CounterAdminCap')!,\n endpoint_admin_cap: readAddressFromDeployment(network, 'object-EndpointV2AdminCap')!,\n oapp_core: readAddressFromDeployment(network, 'object-OAppCore')!,\n }\n this.objects = {\n ...defaultObjects,\n ...options.objects,\n }\n const context: Context = {} as unknown as Context\n // Initialize all modules\n this.endpoint = new Endpoint(this.packages.endpoint_v2, this.client, this.objects, context)\n\n this.counter = new Counter(this.packages.counter_v2, this.packages.utils, this.client, this.objects, context)\n\n this.simpleMessageLib = new SimpleMessageLib(\n this.packages.simple_message_lib,\n this.client,\n this.objects,\n context\n )\n\n this.utils = new Utils(this.packages.utils, this.client, context)\n\n this.zro = new Zro(this.packages.zro, this.client, context)\n\n context.endpoint = this.endpoint\n context.counter = this.counter\n context.simpleMessageLib = this.simpleMessageLib\n context.utils = this.utils\n context.zro = this.zro\n }\n\n /**\n * Gets the Sui client.\n *\n * @returns {SuiClient} The Sui client.\n */\n getSuiClient(): SuiClient {\n return this.client\n }\n\n /**\n * Gets the chain.\n *\n * @returns {Chain} The chain.\n */\n getChain(): Chain {\n return this.chain\n }\n\n /**\n * Gets the stage.\n *\n * @returns {Stage} The stage.\n */\n getStage(): Stage {\n return this.stage\n }\n\n /**\n * Gets the package options.\n *\n * @returns {PackageOptions} The package options.\n */\n getPackages(): PackageOptions {\n return this.packages\n }\n\n /**\n * Gets the object options.\n *\n * @returns {ObjectOptions} The object options.\n */\n getObjects(): ObjectOptions {\n return this.objects\n }\n\n /**\n * Gets the endpoint module.\n *\n * @returns {Endpoint} The endpoint module.\n */\n getEndpoint(): Endpoint {\n return this.endpoint\n }\n\n /**\n * Gets the counter module.\n *\n * @returns {Counter} The counter module.\n */\n getCounter(): Counter {\n return this.counter\n }\n\n /**\n * Gets the simple message library module.\n *\n * @returns {SimpleMessageLib} The simple message library module.\n */\n getSimpleMessageLib(): SimpleMessageLib {\n return this.simpleMessageLib\n }\n\n /**\n * Gets the utils module.\n *\n * @returns {Utils} The utils module.\n */\n getUtils(): Utils {\n return this.utils\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@layerzerolabs/lz-sui-sdk-v2",
|
|
3
|
-
"version": "3.0.111
|
|
3
|
+
"version": "3.0.111",
|
|
4
4
|
"license": "BUSL-1.1",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -33,15 +33,15 @@
|
|
|
33
33
|
"typecheck": "tsc --noEmit"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@layerzerolabs/lz-core": "^3.0.111
|
|
37
|
-
"@layerzerolabs/lz-corekit-sui": "^3.0.
|
|
38
|
-
"@layerzerolabs/lz-definitions": "^3.0.111
|
|
36
|
+
"@layerzerolabs/lz-core": "^3.0.111",
|
|
37
|
+
"@layerzerolabs/lz-corekit-sui": "^3.0.96",
|
|
38
|
+
"@layerzerolabs/lz-definitions": "^3.0.111",
|
|
39
39
|
"@mysten/sui": "^1.33.0",
|
|
40
40
|
"tiny-invariant": "^1.3.1"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@layerzerolabs/tsup-config-next": "^3.0.111
|
|
44
|
-
"@layerzerolabs/typescript-config-next": "^3.0.111
|
|
43
|
+
"@layerzerolabs/tsup-config-next": "^3.0.111",
|
|
44
|
+
"@layerzerolabs/typescript-config-next": "^3.0.111",
|
|
45
45
|
"@types/chai": "^4.3.11",
|
|
46
46
|
"@types/chai-as-promised": "^7.1.0",
|
|
47
47
|
"@types/mocha": "^10.0.6",
|
package/src/errors.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export class MoveAbortError extends Error {
|
|
2
|
+
readonly abortCode: number
|
|
3
|
+
constructor(abortCode: number, rawMsg: string) {
|
|
4
|
+
super(`Move abort with code: ${abortCode}. Raw error message: ${rawMsg}`)
|
|
5
|
+
this.abortCode = abortCode
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export class UnclassifiedError extends Error {}
|
package/src/index.ts
CHANGED
package/src/modules/counter.ts
CHANGED
|
@@ -6,9 +6,14 @@ import { Transaction } from '@mysten/sui/transactions'
|
|
|
6
6
|
import { EndpointId } from '@layerzerolabs/lz-definitions'
|
|
7
7
|
|
|
8
8
|
import { MessagingFeeBcs } from '../bcs'
|
|
9
|
+
import { MoveAbortError } from '../errors'
|
|
9
10
|
import { Context, ObjectOptions } from '../types'
|
|
10
11
|
import { moveView, validateTransaction } from '../utils'
|
|
11
12
|
|
|
13
|
+
export enum CounterErrorCode {
|
|
14
|
+
EPeerNotFound = 0,
|
|
15
|
+
}
|
|
16
|
+
|
|
12
17
|
export class Counter {
|
|
13
18
|
public packageId: string
|
|
14
19
|
public utilsPkgId: string
|
|
@@ -56,12 +61,12 @@ export class Counter {
|
|
|
56
61
|
})
|
|
57
62
|
try {
|
|
58
63
|
const result = await moveView(this.client, tx)
|
|
59
|
-
|
|
60
|
-
const bytes = new Uint8Array(result?.returnValues![0][0]!)
|
|
61
|
-
return bcs.Address.parse(bytes)
|
|
64
|
+
return bcs.Address.parse(result[0].value)
|
|
62
65
|
} catch (e) {
|
|
63
|
-
|
|
64
|
-
|
|
66
|
+
if (e instanceof MoveAbortError && e.abortCode === CounterErrorCode.EPeerNotFound.valueOf()) {
|
|
67
|
+
return '0x0'
|
|
68
|
+
}
|
|
69
|
+
throw e
|
|
65
70
|
}
|
|
66
71
|
}
|
|
67
72
|
|
|
@@ -72,16 +77,9 @@ export class Counter {
|
|
|
72
77
|
typeArguments: [],
|
|
73
78
|
arguments: [tx.object(this.objects.counter)],
|
|
74
79
|
})
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const bytes = new Uint8Array(result?.returnValues![0][0]!)
|
|
79
|
-
const counterStr = bcs.U64.parse(bytes)
|
|
80
|
-
return Number(counterStr)
|
|
81
|
-
} catch (e) {
|
|
82
|
-
//TODO handle error properly
|
|
83
|
-
return 0
|
|
84
|
-
}
|
|
80
|
+
const result = await moveView(this.client, tx)
|
|
81
|
+
const counterStr = bcs.U64.parse(result[0].value)
|
|
82
|
+
return Number(counterStr)
|
|
85
83
|
}
|
|
86
84
|
|
|
87
85
|
async getComposedCount(): Promise<number> {
|
|
@@ -91,16 +89,9 @@ export class Counter {
|
|
|
91
89
|
typeArguments: [],
|
|
92
90
|
arguments: [tx.object(this.objects.counter)],
|
|
93
91
|
})
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
const bytes = new Uint8Array(result?.returnValues![0][0]!)
|
|
98
|
-
const counterStr = bcs.U64.parse(bytes)
|
|
99
|
-
return Number(counterStr)
|
|
100
|
-
} catch (e) {
|
|
101
|
-
//TODO handle error properly
|
|
102
|
-
return 0
|
|
103
|
-
}
|
|
92
|
+
const result = await moveView(this.client, tx)
|
|
93
|
+
const counterStr = bcs.U64.parse(result[0].value)
|
|
94
|
+
return Number(counterStr)
|
|
104
95
|
}
|
|
105
96
|
|
|
106
97
|
populateSetPeerTransaction(dstEid: number, peer: Uint8Array): Transaction {
|
|
@@ -198,9 +189,7 @@ export class Counter {
|
|
|
198
189
|
const executedCall = this.context.simpleMessageLib.quoteMoveCall(tx, quoteCall)
|
|
199
190
|
this.context.endpoint.confirmQuoteMoveCall(tx, executedCall)
|
|
200
191
|
const result = await moveView(this.client, tx)
|
|
201
|
-
|
|
202
|
-
const bytes = new Uint8Array(result?.returnValues![0][0]!)
|
|
203
|
-
const messageFee = MessagingFeeBcs.parse(bytes)
|
|
192
|
+
const messageFee = MessagingFeeBcs.parse(result[0].value)
|
|
204
193
|
return [BigInt(messageFee.native_fee), BigInt(messageFee.zro_fee)]
|
|
205
194
|
}
|
|
206
195
|
|