@layerzerolabs/lz-iotal1-sdk-v2 3.0.143
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 +32 -0
- package/README.md +19 -0
- package/deployments/iotal1-mainnet/blocked_message_lib.json +58 -0
- package/deployments/iotal1-mainnet/blocked_msglib_ptb_builder.json +58 -0
- package/deployments/iotal1-mainnet/call.json +46 -0
- package/deployments/iotal1-mainnet/counter.json +85 -0
- package/deployments/iotal1-mainnet/dvn.json +49 -0
- package/deployments/iotal1-mainnet/dvn_call_type.json +45 -0
- package/deployments/iotal1-mainnet/dvn_fee_lib.json +59 -0
- package/deployments/iotal1-mainnet/dvn_layerzero.json +56 -0
- package/deployments/iotal1-mainnet/dvn_ptb_builder.json +45 -0
- package/deployments/iotal1-mainnet/endpoint_ptb_builder.json +70 -0
- package/deployments/iotal1-mainnet/endpoint_v2.json +86 -0
- package/deployments/iotal1-mainnet/executor.json +49 -0
- package/deployments/iotal1-mainnet/executor_call_type.json +45 -0
- package/deployments/iotal1-mainnet/executor_fee_lib.json +60 -0
- package/deployments/iotal1-mainnet/executor_layerzero.json +56 -0
- package/deployments/iotal1-mainnet/executor_ptb_builder.json +45 -0
- package/deployments/iotal1-mainnet/layerzero_views.json +46 -0
- package/deployments/iotal1-mainnet/message_lib_common.json +47 -0
- package/deployments/iotal1-mainnet/msglib_ptb_builder_call_types.json +45 -0
- package/deployments/iotal1-mainnet/multi_call.json +45 -0
- package/deployments/iotal1-mainnet/oapp.json +50 -0
- package/deployments/iotal1-mainnet/object-BlockedMessageLib.json +9 -0
- package/deployments/iotal1-mainnet/object-BlockedMsglibPtbBuilder.json +9 -0
- package/deployments/iotal1-mainnet/object-Counter.json +9 -0
- package/deployments/iotal1-mainnet/object-CounterAdminCap.json +9 -0
- package/deployments/iotal1-mainnet/object-CounterOApp.json +9 -0
- package/deployments/iotal1-mainnet/object-DVN.json +5 -0
- package/deployments/iotal1-mainnet/object-DVNCap.json +9 -0
- package/deployments/iotal1-mainnet/object-DVNFeeLib.json +9 -0
- package/deployments/iotal1-mainnet/object-EndpointPtbBuilder.json +9 -0
- package/deployments/iotal1-mainnet/object-EndpointPtbBuilderAdminCap.json +9 -0
- package/deployments/iotal1-mainnet/object-EndpointV2.json +9 -0
- package/deployments/iotal1-mainnet/object-EndpointV2AdminCap.json +9 -0
- package/deployments/iotal1-mainnet/object-Executor.json +5 -0
- package/deployments/iotal1-mainnet/object-ExecutorCap.json +9 -0
- package/deployments/iotal1-mainnet/object-ExecutorFeeLib.json +9 -0
- package/deployments/iotal1-mainnet/object-ExecutorOwnerCap.json +5 -0
- package/deployments/iotal1-mainnet/object-OFTComposerManager.json +9 -0
- package/deployments/iotal1-mainnet/object-PackageWhitelistValidator.json +9 -0
- package/deployments/iotal1-mainnet/object-PriceFeed.json +9 -0
- package/deployments/iotal1-mainnet/object-PriceFeedOwnerCap.json +9 -0
- package/deployments/iotal1-mainnet/object-SimpleMessageLib.json +9 -0
- package/deployments/iotal1-mainnet/object-SimpleMessageLibAdminCap.json +9 -0
- package/deployments/iotal1-mainnet/object-SmlPtbBuilder.json +9 -0
- package/deployments/iotal1-mainnet/object-Treasury.json +9 -0
- package/deployments/iotal1-mainnet/object-TreasuryAdminCap.json +9 -0
- package/deployments/iotal1-mainnet/object-ULN302.json +9 -0
- package/deployments/iotal1-mainnet/object-ULN302AdminCap.json +9 -0
- package/deployments/iotal1-mainnet/object-Uln302PtbBuilder.json +9 -0
- package/deployments/iotal1-mainnet/object-Uln302Verification.json +9 -0
- package/deployments/iotal1-mainnet/object-WorkerRegistry.json +9 -0
- package/deployments/iotal1-mainnet/object-ZroCoinMetadata.json +9 -0
- package/deployments/iotal1-mainnet/object-ZroTreasuryCap.json +9 -0
- package/deployments/iotal1-mainnet/oft_common.json +61 -0
- package/deployments/iotal1-mainnet/package_whitelist_validator.json +113 -0
- package/deployments/iotal1-mainnet/price_feed.json +70 -0
- package/deployments/iotal1-mainnet/price_feed_call_types.json +45 -0
- package/deployments/iotal1-mainnet/ptb_move_call.json +48 -0
- package/deployments/iotal1-mainnet/simple_message_lib.json +69 -0
- package/deployments/iotal1-mainnet/simple_msglib_ptb_builder.json +58 -0
- package/deployments/iotal1-mainnet/treasury.json +69 -0
- package/deployments/iotal1-mainnet/uln_302.json +87 -0
- package/deployments/iotal1-mainnet/uln_302_ptb_builder.json +58 -0
- package/deployments/iotal1-mainnet/uln_common.json +49 -0
- package/deployments/iotal1-mainnet/utils.json +57 -0
- package/deployments/iotal1-mainnet/worker_common.json +46 -0
- package/deployments/iotal1-mainnet/worker_registry.json +58 -0
- package/deployments/iotal1-mainnet/zro.json +67 -0
- package/deployments/iotal1-sandbox-local/blocked_message_lib.json +58 -0
- package/deployments/iotal1-sandbox-local/blocked_msglib_ptb_builder.json +58 -0
- package/deployments/iotal1-sandbox-local/call.json +46 -0
- package/deployments/iotal1-sandbox-local/counter.json +148 -0
- package/deployments/iotal1-sandbox-local/dvn.json +49 -0
- package/deployments/iotal1-sandbox-local/dvn_call_type.json +73 -0
- package/deployments/iotal1-sandbox-local/dvn_fee_lib.json +59 -0
- package/deployments/iotal1-sandbox-local/dvn_layerzero.json +56 -0
- package/deployments/iotal1-sandbox-local/dvn_ptb_builder.json +45 -0
- package/deployments/iotal1-sandbox-local/endpoint_ptb_builder.json +70 -0
- package/deployments/iotal1-sandbox-local/endpoint_v2.json +86 -0
- package/deployments/iotal1-sandbox-local/executor.json +49 -0
- package/deployments/iotal1-sandbox-local/executor_call_type.json +73 -0
- package/deployments/iotal1-sandbox-local/executor_fee_lib.json +60 -0
- package/deployments/iotal1-sandbox-local/executor_layerzero.json +56 -0
- package/deployments/iotal1-sandbox-local/executor_ptb_builder.json +45 -0
- package/deployments/iotal1-sandbox-local/layerzero_views.json +46 -0
- package/deployments/iotal1-sandbox-local/message_lib_common.json +47 -0
- package/deployments/iotal1-sandbox-local/msglib_ptb_builder_call_types.json +45 -0
- package/deployments/iotal1-sandbox-local/multi_call.json +45 -0
- package/deployments/iotal1-sandbox-local/oapp.json +50 -0
- package/deployments/iotal1-sandbox-local/object-BlockedMessageLib.json +9 -0
- package/deployments/iotal1-sandbox-local/object-BlockedMsglibPtbBuilder.json +9 -0
- package/deployments/iotal1-sandbox-local/object-Counter.json +9 -0
- package/deployments/iotal1-sandbox-local/object-CounterAdminCap.json +9 -0
- package/deployments/iotal1-sandbox-local/object-CounterOApp.json +9 -0
- package/deployments/iotal1-sandbox-local/object-DVN.json +5 -0
- package/deployments/iotal1-sandbox-local/object-DVNCap.json +9 -0
- package/deployments/iotal1-sandbox-local/object-DVNFeeLib.json +9 -0
- package/deployments/iotal1-sandbox-local/object-EndpointPtbBuilder.json +9 -0
- package/deployments/iotal1-sandbox-local/object-EndpointPtbBuilderAdminCap.json +9 -0
- package/deployments/iotal1-sandbox-local/object-EndpointV2.json +9 -0
- package/deployments/iotal1-sandbox-local/object-EndpointV2AdminCap.json +9 -0
- package/deployments/iotal1-sandbox-local/object-Executor.json +5 -0
- package/deployments/iotal1-sandbox-local/object-ExecutorCap.json +9 -0
- package/deployments/iotal1-sandbox-local/object-ExecutorFeeLib.json +9 -0
- package/deployments/iotal1-sandbox-local/object-ExecutorOwnerCap.json +5 -0
- package/deployments/iotal1-sandbox-local/object-PackageWhitelistValidator.json +9 -0
- package/deployments/iotal1-sandbox-local/object-PriceFeed.json +9 -0
- package/deployments/iotal1-sandbox-local/object-PriceFeedOwnerCap.json +9 -0
- package/deployments/iotal1-sandbox-local/object-SimpleMessageLib.json +9 -0
- package/deployments/iotal1-sandbox-local/object-SimpleMessageLibAdminCap.json +9 -0
- package/deployments/iotal1-sandbox-local/object-SmlPtbBuilder.json +9 -0
- package/deployments/iotal1-sandbox-local/object-Treasury.json +9 -0
- package/deployments/iotal1-sandbox-local/object-TreasuryAdminCap.json +9 -0
- package/deployments/iotal1-sandbox-local/object-ULN302.json +9 -0
- package/deployments/iotal1-sandbox-local/object-ULN302AdminCap.json +9 -0
- package/deployments/iotal1-sandbox-local/object-Uln302PtbBuilder.json +9 -0
- package/deployments/iotal1-sandbox-local/object-Uln302Verification.json +9 -0
- package/deployments/iotal1-sandbox-local/object-WorkerRegistry.json +9 -0
- package/deployments/iotal1-sandbox-local/object-ZroCoinMetadata.json +9 -0
- package/deployments/iotal1-sandbox-local/object-ZroTreasuryCap.json +9 -0
- package/deployments/iotal1-sandbox-local/package_whitelist_validator.json +113 -0
- package/deployments/iotal1-sandbox-local/price_feed.json +98 -0
- package/deployments/iotal1-sandbox-local/price_feed_call_types.json +45 -0
- package/deployments/iotal1-sandbox-local/ptb_move_call.json +48 -0
- package/deployments/iotal1-sandbox-local/simple_message_lib.json +69 -0
- package/deployments/iotal1-sandbox-local/simple_msglib_ptb_builder.json +58 -0
- package/deployments/iotal1-sandbox-local/treasury.json +97 -0
- package/deployments/iotal1-sandbox-local/uln_302.json +87 -0
- package/deployments/iotal1-sandbox-local/uln_302_ptb_builder.json +58 -0
- package/deployments/iotal1-sandbox-local/uln_common.json +49 -0
- package/deployments/iotal1-sandbox-local/utils.json +78 -0
- package/deployments/iotal1-sandbox-local/worker_common.json +46 -0
- package/deployments/iotal1-sandbox-local/worker_registry.json +58 -0
- package/deployments/iotal1-sandbox-local/zro.json +67 -0
- package/deployments/iotal1-testnet/blocked_message_lib.json +58 -0
- package/deployments/iotal1-testnet/blocked_msglib_ptb_builder.json +58 -0
- package/deployments/iotal1-testnet/call.json +46 -0
- package/deployments/iotal1-testnet/counter.json +85 -0
- package/deployments/iotal1-testnet/dvn.json +49 -0
- package/deployments/iotal1-testnet/dvn_call_type.json +45 -0
- package/deployments/iotal1-testnet/dvn_fee_lib.json +59 -0
- package/deployments/iotal1-testnet/dvn_layerzero.json +56 -0
- package/deployments/iotal1-testnet/dvn_ptb_builder.json +45 -0
- package/deployments/iotal1-testnet/endpoint_ptb_builder.json +70 -0
- package/deployments/iotal1-testnet/endpoint_v2.json +86 -0
- package/deployments/iotal1-testnet/executor.json +49 -0
- package/deployments/iotal1-testnet/executor_call_type.json +45 -0
- package/deployments/iotal1-testnet/executor_fee_lib.json +60 -0
- package/deployments/iotal1-testnet/executor_layerzero.json +56 -0
- package/deployments/iotal1-testnet/executor_ptb_builder.json +45 -0
- package/deployments/iotal1-testnet/layerzero_views.json +46 -0
- package/deployments/iotal1-testnet/message_lib_common.json +47 -0
- package/deployments/iotal1-testnet/msglib_ptb_builder_call_types.json +45 -0
- package/deployments/iotal1-testnet/multi_call.json +45 -0
- package/deployments/iotal1-testnet/oapp.json +50 -0
- package/deployments/iotal1-testnet/object-BlockedMessageLib.json +9 -0
- package/deployments/iotal1-testnet/object-BlockedMsglibPtbBuilder.json +9 -0
- package/deployments/iotal1-testnet/object-Counter.json +9 -0
- package/deployments/iotal1-testnet/object-CounterAdminCap.json +9 -0
- package/deployments/iotal1-testnet/object-CounterOApp.json +9 -0
- package/deployments/iotal1-testnet/object-DVN.json +5 -0
- package/deployments/iotal1-testnet/object-DVNCap.json +9 -0
- package/deployments/iotal1-testnet/object-DVNFeeLib.json +9 -0
- package/deployments/iotal1-testnet/object-EndpointPtbBuilder.json +9 -0
- package/deployments/iotal1-testnet/object-EndpointPtbBuilderAdminCap.json +9 -0
- package/deployments/iotal1-testnet/object-EndpointV2.json +9 -0
- package/deployments/iotal1-testnet/object-EndpointV2AdminCap.json +9 -0
- package/deployments/iotal1-testnet/object-Executor.json +5 -0
- package/deployments/iotal1-testnet/object-ExecutorCap.json +9 -0
- package/deployments/iotal1-testnet/object-ExecutorFeeLib.json +9 -0
- package/deployments/iotal1-testnet/object-ExecutorOwnerCap.json +5 -0
- package/deployments/iotal1-testnet/object-PackageWhitelistValidator.json +9 -0
- package/deployments/iotal1-testnet/object-PriceFeed.json +9 -0
- package/deployments/iotal1-testnet/object-PriceFeedOwnerCap.json +9 -0
- package/deployments/iotal1-testnet/object-SimpleMessageLib.json +9 -0
- package/deployments/iotal1-testnet/object-SimpleMessageLibAdminCap.json +9 -0
- package/deployments/iotal1-testnet/object-SmlPtbBuilder.json +9 -0
- package/deployments/iotal1-testnet/object-Treasury.json +9 -0
- package/deployments/iotal1-testnet/object-TreasuryAdminCap.json +9 -0
- package/deployments/iotal1-testnet/object-ULN302.json +9 -0
- package/deployments/iotal1-testnet/object-ULN302AdminCap.json +9 -0
- package/deployments/iotal1-testnet/object-Uln302PtbBuilder.json +9 -0
- package/deployments/iotal1-testnet/object-Uln302Verification.json +9 -0
- package/deployments/iotal1-testnet/object-WorkerRegistry.json +9 -0
- package/deployments/iotal1-testnet/object-ZroCoinMetadata.json +9 -0
- package/deployments/iotal1-testnet/object-ZroTreasuryCap.json +9 -0
- package/deployments/iotal1-testnet/package_whitelist_validator.json +113 -0
- package/deployments/iotal1-testnet/price_feed.json +70 -0
- package/deployments/iotal1-testnet/price_feed_call_types.json +45 -0
- package/deployments/iotal1-testnet/ptb_move_call.json +48 -0
- package/deployments/iotal1-testnet/simple_message_lib.json +69 -0
- package/deployments/iotal1-testnet/simple_msglib_ptb_builder.json +58 -0
- package/deployments/iotal1-testnet/treasury.json +69 -0
- package/deployments/iotal1-testnet/uln_302.json +87 -0
- package/deployments/iotal1-testnet/uln_302_ptb_builder.json +58 -0
- package/deployments/iotal1-testnet/uln_common.json +49 -0
- package/deployments/iotal1-testnet/utils.json +57 -0
- package/deployments/iotal1-testnet/worker_common.json +46 -0
- package/deployments/iotal1-testnet/worker_registry.json +58 -0
- package/deployments/iotal1-testnet/zro.json +67 -0
- package/dist/index.cjs +11279 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +5824 -0
- package/dist/index.d.ts +5824 -0
- package/dist/index.mjs +11107 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +68 -0
- package/src/bcs/dvn.ts +7 -0
- package/src/bcs/endpoint.ts +7 -0
- package/src/bcs/executor.ts +27 -0
- package/src/bcs/index.ts +8 -0
- package/src/bcs/messaging-fee.ts +6 -0
- package/src/bcs/move-call.ts +28 -0
- package/src/bcs/oapp.ts +14 -0
- package/src/bcs/price-feed.ts +21 -0
- package/src/bcs/uln.ts +15 -0
- package/src/generated/addresses.ts +344 -0
- package/src/index.ts +5 -0
- package/src/module-manager.ts +360 -0
- package/src/modules/call.ts +245 -0
- package/src/modules/endpoint.ts +2417 -0
- package/src/modules/index.ts +10 -0
- package/src/modules/layerzero-views.ts +205 -0
- package/src/modules/message-libs/blocked-message-lib.ts +112 -0
- package/src/modules/message-libs/index.ts +4 -0
- package/src/modules/message-libs/simple-message-lib.ts +270 -0
- package/src/modules/message-libs/uln302.ts +827 -0
- package/src/modules/oapps/counter.ts +458 -0
- package/src/modules/oapps/index.ts +3 -0
- package/src/modules/oapps/oapp.ts +744 -0
- package/src/modules/ptb-builders/blocked-message-lib-ptb-builder.ts +49 -0
- package/src/modules/ptb-builders/dvn-ptb-builder.ts +58 -0
- package/src/modules/ptb-builders/endpoint-ptb-builder.ts +520 -0
- package/src/modules/ptb-builders/executor-ptb-builder.ts +58 -0
- package/src/modules/ptb-builders/index.ts +9 -0
- package/src/modules/ptb-builders/package-whitelist-validator.ts +142 -0
- package/src/modules/ptb-builders/ptb-builder.ts +357 -0
- package/src/modules/ptb-builders/simple-message-lib-ptb-builder.ts +53 -0
- package/src/modules/ptb-builders/uln302-ptb-builder.ts +222 -0
- package/src/modules/utils.ts +902 -0
- package/src/modules/workers/dvn-fee-lib.ts +89 -0
- package/src/modules/workers/dvn-layerzero.ts +85 -0
- package/src/modules/workers/dvn.ts +1727 -0
- package/src/modules/workers/executor-fee-lib.ts +94 -0
- package/src/modules/workers/executor-layerzero.ts +79 -0
- package/src/modules/workers/executor.ts +1170 -0
- package/src/modules/workers/index.ts +10 -0
- package/src/modules/workers/price-feed.ts +575 -0
- package/src/modules/workers/treasury.ts +295 -0
- package/src/modules/workers/worker-registry.ts +110 -0
- package/src/modules/zro.ts +94 -0
- package/src/resource.ts +104 -0
- package/src/sdk.ts +183 -0
- package/src/types/dvn.ts +20 -0
- package/src/types/endpoint.ts +16 -0
- package/src/types/errors.ts +10 -0
- package/src/types/executor.ts +23 -0
- package/src/types/index.ts +13 -0
- package/src/types/layerzero-views.ts +59 -0
- package/src/types/message-lib.ts +38 -0
- package/src/types/modules.ts +36 -0
- package/src/types/move-types.ts +24 -0
- package/src/types/oapp.ts +6 -0
- package/src/types/options.ts +333 -0
- package/src/types/price-feed.ts +21 -0
- package/src/types/ptb-builder.ts +29 -0
- package/src/types/simulation.ts +8 -0
- package/src/utils/argument.ts +198 -0
- package/src/utils/index.ts +8 -0
- package/src/utils/move-call-object-fetcher.ts +105 -0
- package/src/utils/non-sender-object-validator.ts +102 -0
- package/src/utils/package-allowlist-validator.ts +134 -0
- package/src/utils/ptb-validator.ts +14 -0
- package/src/utils/share-object-validator.ts +37 -0
- package/src/utils/transaction.ts +157 -0
- package/src/utils/type-name.ts +99 -0
- package/src/utils/validate-with-details.ts +50 -0
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
import { bcs } from '@iota/iota-sdk/bcs'
|
|
2
|
+
import { IotaClient } from '@iota/iota-sdk/client'
|
|
3
|
+
import { Transaction, TransactionArgument, TransactionResult } from '@iota/iota-sdk/transactions'
|
|
4
|
+
|
|
5
|
+
import { EndpointId } from '@layerzerolabs/lz-definitions'
|
|
6
|
+
|
|
7
|
+
import { ModuleManager } from '../../module-manager'
|
|
8
|
+
import { MessagingFee, ObjectOptions } from '../../types'
|
|
9
|
+
import {
|
|
10
|
+
IPTBValidator,
|
|
11
|
+
asAddress,
|
|
12
|
+
asBool,
|
|
13
|
+
asBytes,
|
|
14
|
+
asBytes32,
|
|
15
|
+
asU32,
|
|
16
|
+
asU64,
|
|
17
|
+
asU8,
|
|
18
|
+
executeSimulate,
|
|
19
|
+
isTransactionArgument,
|
|
20
|
+
} from '../../utils'
|
|
21
|
+
|
|
22
|
+
const MODULE_NAME = 'counter'
|
|
23
|
+
|
|
24
|
+
export const CounterErrorCode = {
|
|
25
|
+
// Counter related errors (matching counter.move)
|
|
26
|
+
Counter_EInvalidMsgType: 0,
|
|
27
|
+
Counter_EInvalidValue: 1,
|
|
28
|
+
Counter_EInvalidNonce: 2,
|
|
29
|
+
Counter_EOnlyEndpoint: 3,
|
|
30
|
+
Counter_ESelfComposeOnly: 4,
|
|
31
|
+
Counter_EInvalidOApp: 5,
|
|
32
|
+
|
|
33
|
+
// OptionsBuilder related errors (matching options_builder.move)
|
|
34
|
+
OptionsBuilder_EInvalidSize: 1,
|
|
35
|
+
} as const
|
|
36
|
+
|
|
37
|
+
export class Counter {
|
|
38
|
+
public packageId: string
|
|
39
|
+
public readonly client: IotaClient
|
|
40
|
+
private readonly objects: ObjectOptions
|
|
41
|
+
|
|
42
|
+
constructor(
|
|
43
|
+
packageId: string,
|
|
44
|
+
client: IotaClient,
|
|
45
|
+
objects: ObjectOptions,
|
|
46
|
+
private readonly moduleManager: ModuleManager
|
|
47
|
+
) {
|
|
48
|
+
this.packageId = packageId
|
|
49
|
+
this.client = client
|
|
50
|
+
this.objects = objects
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// === Set Functions ===
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Initialize counter with LayerZero receive and compose information
|
|
57
|
+
* @param tx - The transaction to add the move call to
|
|
58
|
+
* @param lzReceiveInfo - LayerZero receive information transaction argument
|
|
59
|
+
* @param lzComposeInfo - LayerZero compose information transaction argument
|
|
60
|
+
*/
|
|
61
|
+
initCounterMoveCall(tx: Transaction, lzReceiveInfo: TransactionArgument, lzComposeInfo: TransactionArgument): void {
|
|
62
|
+
tx.moveCall({
|
|
63
|
+
target: this.#target('init_counter'),
|
|
64
|
+
arguments: [
|
|
65
|
+
tx.object(this.objects.counter),
|
|
66
|
+
tx.object(this.objects.counterOapp),
|
|
67
|
+
tx.object(this.objects.counterAdminCap),
|
|
68
|
+
tx.object(this.objects.endpointV2),
|
|
69
|
+
lzReceiveInfo,
|
|
70
|
+
lzComposeInfo,
|
|
71
|
+
],
|
|
72
|
+
})
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Quote messaging fees for sending counter increment
|
|
77
|
+
* @param dstEid - Destination endpoint ID
|
|
78
|
+
* @param msgType - Message type (SEND or SEND_AND_CALL)
|
|
79
|
+
* @param options - Execution options as bytes
|
|
80
|
+
* @param payInZero - Whether to pay in ZRO tokens
|
|
81
|
+
* @returns Promise<MessagingFee> - The calculated messaging fees
|
|
82
|
+
*/
|
|
83
|
+
async quote(
|
|
84
|
+
dstEid: EndpointId | TransactionArgument,
|
|
85
|
+
msgType: number | TransactionArgument,
|
|
86
|
+
options: Uint8Array | TransactionArgument,
|
|
87
|
+
payInZero: boolean | TransactionArgument,
|
|
88
|
+
validators?: IPTBValidator[]
|
|
89
|
+
): Promise<MessagingFee> {
|
|
90
|
+
const tx = new Transaction()
|
|
91
|
+
const quoteCall = tx.moveCall({
|
|
92
|
+
target: this.#target('quote'),
|
|
93
|
+
arguments: [
|
|
94
|
+
tx.object(this.objects.counter),
|
|
95
|
+
tx.object(this.objects.counterOapp),
|
|
96
|
+
asU32(tx, dstEid),
|
|
97
|
+
asU8(tx, msgType),
|
|
98
|
+
asBytes(tx, options),
|
|
99
|
+
asBool(tx, payInZero),
|
|
100
|
+
],
|
|
101
|
+
})
|
|
102
|
+
return this.moduleManager.getEndpoint().quote(tx, quoteCall, undefined, validators)
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Increment counter on destination chain
|
|
107
|
+
* @param tx - The transaction to add the move call to
|
|
108
|
+
* @param sender - Sender address for ZRO token operations
|
|
109
|
+
* @param dstEid - Destination endpoint ID
|
|
110
|
+
* @param msgType - Message type (SEND or SEND_AND_CALL)
|
|
111
|
+
* @param options - Execution options as bytes
|
|
112
|
+
* @param nativeFee - Native token fee amount
|
|
113
|
+
* @param zroFee - ZRO token fee amount
|
|
114
|
+
* @param refundAddress - Address for fee refunds
|
|
115
|
+
*/
|
|
116
|
+
async incrementMoveCall(
|
|
117
|
+
tx: Transaction,
|
|
118
|
+
sender: string,
|
|
119
|
+
dstEid: EndpointId | TransactionArgument,
|
|
120
|
+
msgType: number | TransactionArgument,
|
|
121
|
+
options: Uint8Array | TransactionArgument,
|
|
122
|
+
nativeFee: bigint | TransactionArgument,
|
|
123
|
+
zroFee: bigint | TransactionArgument,
|
|
124
|
+
refundAddress: string | TransactionArgument,
|
|
125
|
+
validators?: IPTBValidator[]
|
|
126
|
+
): Promise<void> {
|
|
127
|
+
const [nativeToken] = tx.splitCoins(tx.gas, [asU64(tx, nativeFee)])
|
|
128
|
+
const zroToken = isTransactionArgument(zroFee)
|
|
129
|
+
? zroFee
|
|
130
|
+
: await this.moduleManager.getZro().splitOptionZroTokenMoveCall(tx, sender, zroFee)
|
|
131
|
+
const incrementCall = tx.moveCall({
|
|
132
|
+
target: this.#target('increment'),
|
|
133
|
+
arguments: [
|
|
134
|
+
tx.object(this.objects.counter),
|
|
135
|
+
tx.object(this.objects.counterOapp),
|
|
136
|
+
asU32(tx, dstEid),
|
|
137
|
+
asU8(tx, msgType),
|
|
138
|
+
asBytes(tx, options),
|
|
139
|
+
nativeToken,
|
|
140
|
+
zroToken,
|
|
141
|
+
asAddress(tx, refundAddress),
|
|
142
|
+
],
|
|
143
|
+
})
|
|
144
|
+
await this.moduleManager.getEndpoint().populateSendTransaction(tx, incrementCall, sender, validators)
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Set composer information for counter
|
|
149
|
+
* @param tx - The transaction to add the move call to
|
|
150
|
+
* @param composerInfo - Composer information including lz_compose execution information as bytes
|
|
151
|
+
*/
|
|
152
|
+
setComposerInfoMoveCall(tx: Transaction, composerInfo: Uint8Array | TransactionArgument): void {
|
|
153
|
+
tx.moveCall({
|
|
154
|
+
target: this.#target('set_composer_info'),
|
|
155
|
+
arguments: [
|
|
156
|
+
tx.object(this.objects.counter),
|
|
157
|
+
tx.object(this.objects.counterOapp),
|
|
158
|
+
tx.object(this.objects.counterAdminCap),
|
|
159
|
+
tx.object(this.objects.endpointV2),
|
|
160
|
+
asBytes(tx, composerInfo),
|
|
161
|
+
],
|
|
162
|
+
})
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// === View Functions ===
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Get counter EID
|
|
169
|
+
* @param tx - The transaction to add the move call to
|
|
170
|
+
* @returns Transaction result containing the counter EID
|
|
171
|
+
*/
|
|
172
|
+
getEidMoveCall(tx: Transaction): TransactionResult {
|
|
173
|
+
return tx.moveCall({
|
|
174
|
+
target: this.#target('eid'),
|
|
175
|
+
arguments: [tx.object(this.objects.counter)],
|
|
176
|
+
})
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Get counter EID
|
|
181
|
+
* @returns Promise<number> - The counter EID
|
|
182
|
+
*/
|
|
183
|
+
async getEid(): Promise<number> {
|
|
184
|
+
return executeSimulate(
|
|
185
|
+
this.client,
|
|
186
|
+
(tx) => {
|
|
187
|
+
this.getEidMoveCall(tx)
|
|
188
|
+
},
|
|
189
|
+
(result) => bcs.U32.parse(result[0].value)
|
|
190
|
+
)
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Get call capability address for counter
|
|
195
|
+
* @param tx - The transaction to add the move call to
|
|
196
|
+
* @returns Transaction result containing the call capability address
|
|
197
|
+
*/
|
|
198
|
+
getCallCapAddressMoveCall(tx: Transaction): TransactionResult {
|
|
199
|
+
return tx.moveCall({
|
|
200
|
+
target: this.#target('call_cap_address'),
|
|
201
|
+
arguments: [tx.object(this.objects.counter)],
|
|
202
|
+
})
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Get call capability address for counter
|
|
207
|
+
* @returns Promise<string> - The call capability address
|
|
208
|
+
*/
|
|
209
|
+
async getCallCapAddress(): Promise<string> {
|
|
210
|
+
return executeSimulate(
|
|
211
|
+
this.client,
|
|
212
|
+
(tx) => {
|
|
213
|
+
this.getCallCapAddressMoveCall(tx)
|
|
214
|
+
},
|
|
215
|
+
(result) => bcs.Address.parse(result[0].value)
|
|
216
|
+
)
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Get composer address for counter
|
|
221
|
+
* @param tx - The transaction to add the move call to
|
|
222
|
+
* @returns Transaction result containing the composer address
|
|
223
|
+
*/
|
|
224
|
+
getComposerAddressMoveCall(tx: Transaction): TransactionResult {
|
|
225
|
+
return tx.moveCall({
|
|
226
|
+
target: this.#target('composer_address'),
|
|
227
|
+
arguments: [tx.object(this.objects.counter)],
|
|
228
|
+
})
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Get composer address for counter
|
|
233
|
+
* @returns Promise<string> - The composer address
|
|
234
|
+
*/
|
|
235
|
+
async getComposerAddress(): Promise<string> {
|
|
236
|
+
return executeSimulate(
|
|
237
|
+
this.client,
|
|
238
|
+
(tx) => {
|
|
239
|
+
this.getComposerAddressMoveCall(tx)
|
|
240
|
+
},
|
|
241
|
+
(result) => bcs.Address.parse(result[0].value)
|
|
242
|
+
)
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Get current counter value
|
|
247
|
+
* @param tx - The transaction to add the move call to
|
|
248
|
+
* @returns Transaction result containing the counter value
|
|
249
|
+
*/
|
|
250
|
+
getCountMoveCall(tx: Transaction): TransactionResult {
|
|
251
|
+
return tx.moveCall({
|
|
252
|
+
target: this.#target('get_count'),
|
|
253
|
+
arguments: [tx.object(this.objects.counter)],
|
|
254
|
+
})
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Get current counter value
|
|
259
|
+
* @returns Promise<number> - The current counter value
|
|
260
|
+
*/
|
|
261
|
+
async getCount(): Promise<number> {
|
|
262
|
+
return executeSimulate(
|
|
263
|
+
this.client,
|
|
264
|
+
(tx) => {
|
|
265
|
+
this.getCountMoveCall(tx)
|
|
266
|
+
},
|
|
267
|
+
(result) => Number(bcs.U64.parse(result[0].value))
|
|
268
|
+
)
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Get composed counter value
|
|
273
|
+
* @param tx - The transaction to add the move call to
|
|
274
|
+
* @returns Transaction result containing the composed counter value
|
|
275
|
+
*/
|
|
276
|
+
getComposedCountMoveCall(tx: Transaction): TransactionResult {
|
|
277
|
+
return tx.moveCall({
|
|
278
|
+
target: this.#target('get_composed_count'),
|
|
279
|
+
arguments: [tx.object(this.objects.counter)],
|
|
280
|
+
})
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Get composed counter value
|
|
285
|
+
* @returns Promise<number> - The composed counter value
|
|
286
|
+
*/
|
|
287
|
+
async getComposedCount(): Promise<number> {
|
|
288
|
+
return executeSimulate(
|
|
289
|
+
this.client,
|
|
290
|
+
(tx) => {
|
|
291
|
+
this.getComposedCountMoveCall(tx)
|
|
292
|
+
},
|
|
293
|
+
(result) => Number(bcs.U64.parse(result[0].value))
|
|
294
|
+
)
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Get outbound counter value for a destination
|
|
299
|
+
* @param tx - The transaction to add the move call to
|
|
300
|
+
* @param dstEid - Destination endpoint ID
|
|
301
|
+
* @returns Transaction result containing the outbound counter value
|
|
302
|
+
*/
|
|
303
|
+
getOutboundCountMoveCall(tx: Transaction, dstEid: number | TransactionArgument): TransactionResult {
|
|
304
|
+
return tx.moveCall({
|
|
305
|
+
target: this.#target('get_outbound_count'),
|
|
306
|
+
arguments: [tx.object(this.objects.counter), asU32(tx, dstEid)],
|
|
307
|
+
})
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* Get outbound counter value for a destination
|
|
312
|
+
* @param dstEid - Destination endpoint ID
|
|
313
|
+
* @returns Promise<number> - The outbound counter value
|
|
314
|
+
*/
|
|
315
|
+
async getOutboundCount(dstEid: number): Promise<number> {
|
|
316
|
+
return executeSimulate(
|
|
317
|
+
this.client,
|
|
318
|
+
(tx) => {
|
|
319
|
+
this.getOutboundCountMoveCall(tx, dstEid)
|
|
320
|
+
},
|
|
321
|
+
(result) => Number(bcs.U64.parse(result[0].value))
|
|
322
|
+
)
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Get inbound counter value from a source
|
|
327
|
+
* @param tx - The transaction to add the move call to
|
|
328
|
+
* @param srcEid - Source endpoint ID
|
|
329
|
+
* @returns Transaction result containing the inbound counter value
|
|
330
|
+
*/
|
|
331
|
+
getInboundCountMoveCall(tx: Transaction, srcEid: number | TransactionArgument): TransactionResult {
|
|
332
|
+
return tx.moveCall({
|
|
333
|
+
target: this.#target('get_inbound_count'),
|
|
334
|
+
arguments: [tx.object(this.objects.counter), asU32(tx, srcEid)],
|
|
335
|
+
})
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* Get inbound counter value from a source
|
|
340
|
+
* @param srcEid - Source endpoint ID
|
|
341
|
+
* @returns Promise<number> - The inbound counter value
|
|
342
|
+
*/
|
|
343
|
+
async getInboundCount(srcEid: number): Promise<number> {
|
|
344
|
+
return executeSimulate(
|
|
345
|
+
this.client,
|
|
346
|
+
(tx) => {
|
|
347
|
+
this.getInboundCountMoveCall(tx, srcEid)
|
|
348
|
+
},
|
|
349
|
+
(result) => Number(bcs.U64.parse(result[0].value))
|
|
350
|
+
)
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
nextNonceMoveCall(
|
|
354
|
+
tx: Transaction,
|
|
355
|
+
srcEid: number | TransactionArgument,
|
|
356
|
+
sender: Uint8Array | TransactionArgument
|
|
357
|
+
): TransactionResult {
|
|
358
|
+
return tx.moveCall({
|
|
359
|
+
target: this.#target('next_nonce'),
|
|
360
|
+
arguments: [
|
|
361
|
+
tx.object(this.objects.counter),
|
|
362
|
+
asU32(tx, srcEid),
|
|
363
|
+
asBytes32(tx, sender, this.moduleManager.getUtils()),
|
|
364
|
+
],
|
|
365
|
+
})
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
async nextNonce(srcEid: number, sender: Uint8Array): Promise<number> {
|
|
369
|
+
return executeSimulate(
|
|
370
|
+
this.client,
|
|
371
|
+
(tx) => {
|
|
372
|
+
this.nextNonceMoveCall(tx, srcEid, sender)
|
|
373
|
+
},
|
|
374
|
+
(result) => Number(bcs.U64.parse(result[0].value))
|
|
375
|
+
)
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
getMaxReceivedNonceMoveCall(
|
|
379
|
+
tx: Transaction,
|
|
380
|
+
srcEid: number | TransactionArgument,
|
|
381
|
+
sender: Uint8Array | TransactionArgument
|
|
382
|
+
): TransactionResult {
|
|
383
|
+
return tx.moveCall({
|
|
384
|
+
target: this.#target('get_max_received_nonce'),
|
|
385
|
+
arguments: [
|
|
386
|
+
tx.object(this.objects.counter),
|
|
387
|
+
asU32(tx, srcEid),
|
|
388
|
+
asBytes32(tx, sender, this.moduleManager.getUtils()),
|
|
389
|
+
],
|
|
390
|
+
})
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
async getMaxReceivedNonce(srcEid: number, sender: Uint8Array): Promise<number> {
|
|
394
|
+
return executeSimulate(
|
|
395
|
+
this.client,
|
|
396
|
+
(tx) => {
|
|
397
|
+
this.getMaxReceivedNonceMoveCall(tx, srcEid, sender)
|
|
398
|
+
},
|
|
399
|
+
(result) => Number(bcs.U64.parse(result[0].value))
|
|
400
|
+
)
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
isOrderedNonceMoveCall(tx: Transaction): TransactionResult {
|
|
404
|
+
return tx.moveCall({
|
|
405
|
+
target: this.#target('is_ordered_nonce'),
|
|
406
|
+
arguments: [tx.object(this.objects.counter)],
|
|
407
|
+
})
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
async isOrderedNonce(): Promise<boolean> {
|
|
411
|
+
return executeSimulate(
|
|
412
|
+
this.client,
|
|
413
|
+
(tx) => {
|
|
414
|
+
this.isOrderedNonceMoveCall(tx)
|
|
415
|
+
},
|
|
416
|
+
(result) => bcs.Bool.parse(result[0].value)
|
|
417
|
+
)
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
// === PTB Builder Functions ===
|
|
421
|
+
|
|
422
|
+
lzReceiveInfoMoveCall(tx: Transaction): TransactionResult {
|
|
423
|
+
return tx.moveCall({
|
|
424
|
+
target: this.#target('lz_receive_info', 'counter_ptb_builder'),
|
|
425
|
+
arguments: [
|
|
426
|
+
tx.object(this.objects.counter),
|
|
427
|
+
tx.object(this.objects.counterOapp),
|
|
428
|
+
tx.object(this.objects.endpointV2),
|
|
429
|
+
tx.object(this.objects.endpointPtbBuilder),
|
|
430
|
+
],
|
|
431
|
+
})
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
lzComposeInfoMoveCall(tx: Transaction): TransactionResult {
|
|
435
|
+
return tx.moveCall({
|
|
436
|
+
target: this.#target('lz_compose_info', 'counter_ptb_builder'),
|
|
437
|
+
arguments: [
|
|
438
|
+
tx.object(this.objects.counter),
|
|
439
|
+
tx.object(this.objects.counterOapp),
|
|
440
|
+
tx.object(this.objects.endpointV2),
|
|
441
|
+
tx.object(this.objects.endpointPtbBuilder),
|
|
442
|
+
],
|
|
443
|
+
})
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
// === Private Functions ===
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* Generate the full target path for move calls
|
|
450
|
+
* @param name - The function name to call
|
|
451
|
+
* @param module_name - The module name (defaults to 'counter')
|
|
452
|
+
* @returns The full module path for the move call
|
|
453
|
+
* @private
|
|
454
|
+
*/
|
|
455
|
+
#target(name: string, module_name = MODULE_NAME): string {
|
|
456
|
+
return `${this.packageId}::${module_name}::${name}`
|
|
457
|
+
}
|
|
458
|
+
}
|