@layerzerolabs/lz-sui-sdk-v2 3.0.134 → 3.0.135

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.
Files changed (163) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/deployments/sui-sandbox-local/blocked_message_lib.json +22 -22
  3. package/deployments/sui-sandbox-local/blocked_msglib_ptb_builder.json +22 -22
  4. package/deployments/sui-sandbox-local/counter.json +79 -44
  5. package/deployments/sui-sandbox-local/dvn.json +23 -22
  6. package/deployments/sui-sandbox-local/dvn_call_type.json +28 -28
  7. package/deployments/sui-sandbox-local/dvn_fee_lib.json +27 -27
  8. package/deployments/sui-sandbox-local/dvn_layerzero.json +17 -17
  9. package/deployments/sui-sandbox-local/dvn_ptb_builder.json +21 -21
  10. package/deployments/sui-sandbox-local/endpoint_ptb_builder.json +30 -30
  11. package/deployments/sui-sandbox-local/endpoint_v2.json +25 -25
  12. package/deployments/sui-sandbox-local/executor.json +15 -14
  13. package/deployments/sui-sandbox-local/executor_call_type.json +28 -28
  14. package/deployments/sui-sandbox-local/executor_fee_lib.json +28 -28
  15. package/deployments/sui-sandbox-local/executor_layerzero.json +17 -17
  16. package/deployments/sui-sandbox-local/executor_ptb_builder.json +14 -14
  17. package/deployments/sui-sandbox-local/layerzero_views.json +21 -21
  18. package/deployments/sui-sandbox-local/message_lib_common.json +21 -21
  19. package/deployments/sui-sandbox-local/msglib_ptb_builder_call_types.json +13 -13
  20. package/deployments/sui-sandbox-local/oapp.json +15 -13
  21. package/deployments/sui-sandbox-local/object-BlockedMessageLib.json +5 -5
  22. package/deployments/sui-sandbox-local/object-BlockedMsglibPtbBuilder.json +5 -5
  23. package/deployments/sui-sandbox-local/object-Counter.json +5 -5
  24. package/deployments/sui-sandbox-local/object-CounterAdminCap.json +5 -5
  25. package/deployments/sui-sandbox-local/object-CounterOApp.json +5 -5
  26. package/deployments/sui-sandbox-local/object-DVN.json +2 -2
  27. package/deployments/sui-sandbox-local/object-DVNCap.json +4 -4
  28. package/deployments/sui-sandbox-local/object-DVNFeeLib.json +5 -5
  29. package/deployments/sui-sandbox-local/object-EndpointPtbBuilder.json +5 -5
  30. package/deployments/sui-sandbox-local/object-EndpointPtbBuilderAdminCap.json +5 -5
  31. package/deployments/sui-sandbox-local/object-EndpointV2.json +5 -5
  32. package/deployments/sui-sandbox-local/object-EndpointV2AdminCap.json +5 -5
  33. package/deployments/sui-sandbox-local/object-Executor.json +2 -2
  34. package/deployments/sui-sandbox-local/object-ExecutorCap.json +4 -4
  35. package/deployments/sui-sandbox-local/object-ExecutorFeeLib.json +5 -5
  36. package/deployments/sui-sandbox-local/object-ExecutorOwnerCap.json +2 -2
  37. package/deployments/sui-sandbox-local/object-PackageWhitelistValidator.json +5 -5
  38. package/deployments/sui-sandbox-local/object-PriceFeed.json +5 -5
  39. package/deployments/sui-sandbox-local/object-PriceFeedOwnerCap.json +5 -5
  40. package/deployments/sui-sandbox-local/object-SimpleMessageLib.json +5 -5
  41. package/deployments/sui-sandbox-local/object-SimpleMessageLibAdminCap.json +5 -5
  42. package/deployments/sui-sandbox-local/object-SmlPtbBuilder.json +5 -5
  43. package/deployments/sui-sandbox-local/object-Treasury.json +5 -5
  44. package/deployments/sui-sandbox-local/object-TreasuryAdminCap.json +5 -5
  45. package/deployments/sui-sandbox-local/object-ULN302.json +5 -5
  46. package/deployments/sui-sandbox-local/object-ULN302AdminCap.json +5 -5
  47. package/deployments/sui-sandbox-local/object-Uln302PtbBuilder.json +5 -5
  48. package/deployments/sui-sandbox-local/object-Uln302Verification.json +5 -5
  49. package/deployments/sui-sandbox-local/object-WorkerRegistry.json +9 -0
  50. package/deployments/sui-sandbox-local/package_whitelist_validator.json +51 -51
  51. package/deployments/sui-sandbox-local/price_feed.json +39 -39
  52. package/deployments/sui-sandbox-local/price_feed_call_types.json +19 -19
  53. package/deployments/sui-sandbox-local/ptb_move_call.json +20 -20
  54. package/deployments/sui-sandbox-local/sequential_multi_call.json +45 -0
  55. package/deployments/sui-sandbox-local/simple_message_lib.json +33 -33
  56. package/deployments/sui-sandbox-local/simple_msglib_ptb_builder.json +22 -22
  57. package/deployments/sui-sandbox-local/treasury.json +40 -40
  58. package/deployments/sui-sandbox-local/uln_302.json +35 -39
  59. package/deployments/sui-sandbox-local/uln_302_ptb_builder.json +25 -25
  60. package/deployments/sui-sandbox-local/uln_common.json +49 -0
  61. package/deployments/sui-sandbox-local/worker_common.json +15 -14
  62. package/deployments/sui-sandbox-local/worker_registry.json +58 -0
  63. package/deployments/sui-testnet/blocked_message_lib.json +22 -22
  64. package/deployments/sui-testnet/blocked_msglib_ptb_builder.json +29 -29
  65. package/deployments/sui-testnet/call.json +21 -21
  66. package/deployments/sui-testnet/counter.json +40 -40
  67. package/deployments/sui-testnet/dvn.json +22 -21
  68. package/deployments/sui-testnet/dvn_call_type.json +19 -19
  69. package/deployments/sui-testnet/dvn_fee_lib.json +26 -26
  70. package/deployments/sui-testnet/dvn_layerzero.json +24 -24
  71. package/deployments/sui-testnet/dvn_ptb_builder.json +20 -20
  72. package/deployments/sui-testnet/endpoint_ptb_builder.json +30 -30
  73. package/deployments/sui-testnet/endpoint_v2.json +26 -26
  74. package/deployments/sui-testnet/executor.json +22 -21
  75. package/deployments/sui-testnet/executor_call_type.json +19 -19
  76. package/deployments/sui-testnet/executor_fee_lib.json +18 -18
  77. package/deployments/sui-testnet/executor_layerzero.json +25 -25
  78. package/deployments/sui-testnet/executor_ptb_builder.json +20 -20
  79. package/deployments/sui-testnet/layerzero_views.json +13 -13
  80. package/deployments/sui-testnet/message_lib_common.json +21 -21
  81. package/deployments/sui-testnet/msglib_ptb_builder_call_types.json +13 -13
  82. package/deployments/sui-testnet/oapp.json +15 -13
  83. package/deployments/sui-testnet/object-BlockedMessageLib.json +5 -5
  84. package/deployments/sui-testnet/object-BlockedMsglibPtbBuilder.json +5 -5
  85. package/deployments/sui-testnet/object-Counter.json +5 -5
  86. package/deployments/sui-testnet/object-CounterAdminCap.json +5 -5
  87. package/deployments/sui-testnet/object-CounterOApp.json +5 -5
  88. package/deployments/sui-testnet/object-DVN.json +2 -2
  89. package/deployments/sui-testnet/object-DVNCap.json +5 -5
  90. package/deployments/sui-testnet/object-DVNFeeLib.json +5 -5
  91. package/deployments/sui-testnet/object-EndpointPtbBuilder.json +5 -5
  92. package/deployments/sui-testnet/object-EndpointPtbBuilderAdminCap.json +5 -5
  93. package/deployments/sui-testnet/object-EndpointV2.json +5 -5
  94. package/deployments/sui-testnet/object-EndpointV2AdminCap.json +5 -5
  95. package/deployments/sui-testnet/object-Executor.json +2 -2
  96. package/deployments/sui-testnet/object-ExecutorCap.json +5 -5
  97. package/deployments/sui-testnet/object-ExecutorFeeLib.json +5 -5
  98. package/deployments/sui-testnet/object-ExecutorOwnerCap.json +2 -2
  99. package/deployments/sui-testnet/object-PackageWhitelistValidator.json +5 -5
  100. package/deployments/sui-testnet/object-PriceFeed.json +5 -5
  101. package/deployments/sui-testnet/object-PriceFeedOwnerCap.json +5 -5
  102. package/deployments/sui-testnet/object-SimpleMessageLib.json +5 -5
  103. package/deployments/sui-testnet/object-SimpleMessageLibAdminCap.json +5 -5
  104. package/deployments/sui-testnet/object-SmlPtbBuilder.json +5 -5
  105. package/deployments/sui-testnet/object-Treasury.json +5 -5
  106. package/deployments/sui-testnet/object-TreasuryAdminCap.json +5 -5
  107. package/deployments/sui-testnet/object-ULN302.json +5 -5
  108. package/deployments/sui-testnet/object-ULN302AdminCap.json +5 -5
  109. package/deployments/sui-testnet/object-Uln302PtbBuilder.json +5 -5
  110. package/deployments/sui-testnet/object-Uln302Verification.json +5 -5
  111. package/deployments/sui-testnet/object-WorkerRegistry.json +9 -0
  112. package/deployments/sui-testnet/object-ZroCoinMetadata.json +5 -5
  113. package/deployments/sui-testnet/object-ZroTreasuryCap.json +5 -5
  114. package/deployments/sui-testnet/package_whitelist_validator.json +44 -44
  115. package/deployments/sui-testnet/price_feed.json +25 -25
  116. package/deployments/sui-testnet/price_feed_call_types.json +12 -12
  117. package/deployments/sui-testnet/ptb_move_call.json +21 -21
  118. package/deployments/sui-testnet/sequential_multi_call.json +45 -0
  119. package/deployments/sui-testnet/simple_message_lib.json +29 -29
  120. package/deployments/sui-testnet/simple_msglib_ptb_builder.json +26 -26
  121. package/deployments/sui-testnet/treasury.json +30 -58
  122. package/deployments/sui-testnet/uln_302.json +28 -32
  123. package/deployments/sui-testnet/uln_302_ptb_builder.json +25 -25
  124. package/deployments/sui-testnet/uln_common.json +49 -0
  125. package/deployments/sui-testnet/utils.json +12 -12
  126. package/deployments/sui-testnet/worker_common.json +21 -20
  127. package/deployments/sui-testnet/worker_registry.json +58 -0
  128. package/deployments/sui-testnet/zro.json +28 -28
  129. package/dist/index.cjs +1193 -418
  130. package/dist/index.cjs.map +1 -1
  131. package/dist/index.d.mts +702 -352
  132. package/dist/index.d.ts +702 -352
  133. package/dist/index.mjs +1182 -418
  134. package/dist/index.mjs.map +1 -1
  135. package/package.json +7 -7
  136. package/src/bcs/index.ts +2 -1
  137. package/src/bcs/oapp.ts +14 -0
  138. package/src/generated/addresses.ts +123 -105
  139. package/src/module-manager.ts +15 -3
  140. package/src/modules/call.ts +16 -6
  141. package/src/modules/endpoint.ts +12 -4
  142. package/src/modules/message-libs/simple-message-lib.ts +3 -2
  143. package/src/modules/message-libs/uln302.ts +28 -26
  144. package/src/modules/oapps/counter.ts +34 -50
  145. package/src/modules/oapps/oapp.ts +489 -74
  146. package/src/modules/ptb-builders/endpoint-ptb-builder.ts +9 -3
  147. package/src/modules/ptb-builders/ptb-builder.ts +19 -4
  148. package/src/modules/ptb-builders/uln302-ptb-builder.ts +5 -0
  149. package/src/modules/workers/dvn-layerzero.ts +9 -0
  150. package/src/modules/workers/dvn.ts +214 -6
  151. package/src/modules/workers/executor-fee-lib.ts +11 -3
  152. package/src/modules/workers/executor-layerzero.ts +9 -0
  153. package/src/modules/workers/executor.ts +115 -0
  154. package/src/modules/workers/index.ts +1 -0
  155. package/src/modules/workers/treasury.ts +4 -4
  156. package/src/modules/workers/worker-registry.ts +110 -0
  157. package/src/resource.ts +3 -0
  158. package/src/sdk.ts +7 -2
  159. package/src/types/endpoint.ts +2 -1
  160. package/src/types/modules.ts +1 -0
  161. package/src/types/oapp.ts +6 -0
  162. package/src/types/options.ts +15 -0
  163. package/src/utils/transaction.ts +3 -3
@@ -9,9 +9,10 @@ import { asAddress, asBytes, asBytes32, asObject, asU64, executeSimulate } from
9
9
  const MODULE_NAME = 'simple_message_lib'
10
10
 
11
11
  export const SimpleMessageLibErrorCode = {
12
- // SimpleMessageLib related errors (with SimpleMessageLib_ prefix)
13
- SimpleMessageLib_EConfigNotFound: 1,
12
+ // SimpleMessageLib related errors (matching simple_message_lib.move)
13
+ SimpleMessageLib_ENotImplemented: 1,
14
14
  SimpleMessageLib_EZROFeeNotEnabled: 2,
15
+ SimpleMessageLib_EInvalidEid: 3,
15
16
  } as const
16
17
 
17
18
  export class SimpleMessageLib {
@@ -19,7 +19,7 @@ import {
19
19
 
20
20
  const MODULE_NAME = 'uln_302'
21
21
 
22
- // ULN-302 specific error codes
22
+ // ULN-302 specific error codes (matching uln-302 contract files)
23
23
  export const Uln302ErrorCode = {
24
24
  SendUln302_EDefaultExecutorConfigNotFound: 1,
25
25
  SendUln302_EDefaultUlnConfigNotFound: 2,
@@ -33,10 +33,28 @@ export const Uln302ErrorCode = {
33
33
  ReceiveUln302_EOAppUlnConfigNotFound: 4,
34
34
  ReceiveUln302_EVerifying: 5,
35
35
 
36
- Uln302_EEndpointInitialized: 1,
37
- Uln302_EInvalidConfigType: 2,
38
- Uln302_EInvalidMessagingChannel: 3,
39
- Uln302_EUnsupportedEid: 4,
36
+ Uln302_EInvalidConfigType: 1,
37
+ Uln302_EInvalidMessagingChannel: 2,
38
+ Uln302_EUnsupportedEid: 3,
39
+
40
+ // UlnConfig related errors (matching uln_config.move)
41
+ UlnConfig_EAtLeastOneDVN: 1,
42
+ UlnConfig_EDuplicateOptionalDVNs: 2,
43
+ UlnConfig_EDuplicateRequiredDVNs: 3,
44
+ UlnConfig_EInvalidOptionalDVNCount: 4,
45
+ UlnConfig_EInvalidOptionalDVNThreshold: 5,
46
+ UlnConfig_EInvalidRequiredDVNCount: 6,
47
+ UlnConfig_EInvalidUlnConfigBytes: 7,
48
+
49
+ // OAppUlnConfig related errors (matching oapp_uln_config.move)
50
+ OAppUlnConfig_EInvalidConfirmations: 1,
51
+ OAppUlnConfig_EInvalidRequiredDVNs: 2,
52
+ OAppUlnConfig_EInvalidOptionalDVNs: 3,
53
+
54
+ // ExecutorConfig related errors (matching executor_config.move)
55
+ ExecutorConfig_EInvalidExecutorAddress: 1,
56
+ ExecutorConfig_EInvalidExecutorBytes: 2,
57
+ ExecutorConfig_EZeroMessageSize: 3,
40
58
  } as const
41
59
 
42
60
  export class Uln302 {
@@ -162,32 +180,16 @@ export class Uln302 {
162
180
  }
163
181
 
164
182
  /**
165
- * Verify packet move call with DVN signatures
166
- * Note: This is typically called by DVNs, not directly by users
183
+ * Verify packet move call with DVN call (new API)
184
+ * Note: This is typically called by DVNs via Call objects, not directly by users
167
185
  * @param tx - The transaction to add the move call to
168
186
  * @param verification - The verification object address or transaction argument
169
- * @param dvn - The DVN address performing verification or transaction argument
170
- * @param packetHeader - The packet header as bytes or transaction argument
171
- * @param payloadHash - The payload hash as bytes or transaction argument
172
- * @param confirmations - Required confirmations count or transaction argument
187
+ * @param call - The DVN verification call containing verification parameters
173
188
  */
174
- verifyMoveCall(
175
- tx: Transaction,
176
- verification: string | TransactionArgument,
177
- dvn: string | TransactionArgument,
178
- packetHeader: Uint8Array | TransactionArgument,
179
- payloadHash: Uint8Array | TransactionArgument,
180
- confirmations: bigint | TransactionArgument
181
- ): void {
189
+ verifyMoveCall(tx: Transaction, verification: string | TransactionArgument, call: TransactionArgument): void {
182
190
  tx.moveCall({
183
191
  target: this.#target('verify'),
184
- arguments: [
185
- asObject(tx, verification),
186
- asObject(tx, dvn),
187
- asBytes(tx, packetHeader),
188
- asBytes32(tx, payloadHash, this.moduleManager.getUtils()),
189
- asU64(tx, confirmations),
190
- ],
192
+ arguments: [tx.object(this.objects.uln302), asObject(tx, verification), call],
191
193
  })
192
194
  }
193
195
 
@@ -7,11 +7,11 @@ import { EndpointId } from '@layerzerolabs/lz-definitions'
7
7
  import { ModuleManager } from '../../module-manager'
8
8
  import { MessagingFee, ObjectOptions } from '../../types'
9
9
  import {
10
+ IPTBValidator,
10
11
  asAddress,
11
12
  asBool,
12
13
  asBytes,
13
14
  asBytes32,
14
- asObject,
15
15
  asU32,
16
16
  asU64,
17
17
  asU8,
@@ -22,15 +22,16 @@ import {
22
22
  const MODULE_NAME = 'counter'
23
23
 
24
24
  export const CounterErrorCode = {
25
- // Counter related errors
25
+ // Counter related errors (matching counter.move)
26
26
  Counter_EInvalidMsgType: 0,
27
27
  Counter_EInvalidValue: 1,
28
28
  Counter_EInvalidNonce: 2,
29
29
  Counter_EOnlyEndpoint: 3,
30
30
  Counter_ESelfComposeOnly: 4,
31
31
  Counter_EInvalidOApp: 5,
32
- Counter_EInvalidAdminCap: 6,
33
- Counter_EAlreadyInitialized: 7,
32
+
33
+ // OptionsBuilder related errors (matching options_builder.move)
34
+ OptionsBuilder_EInvalidSize: 1,
34
35
  } as const
35
36
 
36
37
  export class Counter {
@@ -83,7 +84,8 @@ export class Counter {
83
84
  dstEid: EndpointId | TransactionArgument,
84
85
  msgType: number | TransactionArgument,
85
86
  options: Uint8Array | TransactionArgument,
86
- payInZero: boolean | TransactionArgument
87
+ payInZero: boolean | TransactionArgument,
88
+ validators?: IPTBValidator[]
87
89
  ): Promise<MessagingFee> {
88
90
  const tx = new Transaction()
89
91
  const quoteCall = tx.moveCall({
@@ -97,7 +99,7 @@ export class Counter {
97
99
  asBool(tx, payInZero),
98
100
  ],
99
101
  })
100
- return this.moduleManager.getEndpoint().quote(tx, quoteCall)
102
+ return this.moduleManager.getEndpoint().quote(tx, quoteCall, undefined, validators)
101
103
  }
102
104
 
103
105
  /**
@@ -121,7 +123,8 @@ export class Counter {
121
123
  sendValue: bigint | TransactionArgument,
122
124
  nativeFee: bigint | TransactionArgument,
123
125
  zroFee: bigint | TransactionArgument,
124
- refundAddress: string | TransactionArgument
126
+ refundAddress: string | TransactionArgument,
127
+ validators?: IPTBValidator[]
125
128
  ): Promise<void> {
126
129
  const [nativeToken] = tx.splitCoins(tx.gas, [asU64(tx, nativeFee)])
127
130
  const zroToken = isTransactionArgument(zroFee)
@@ -141,74 +144,55 @@ export class Counter {
141
144
  asAddress(tx, refundAddress),
142
145
  ],
143
146
  })
144
- await this.moduleManager.getEndpoint().populateSendTransaction(tx, incrementCall, sender)
147
+ await this.moduleManager.getEndpoint().populateSendTransaction(tx, incrementCall, sender, validators)
145
148
  }
146
149
 
147
150
  /**
148
- * Set peer counter on another chain
151
+ * Set LayerZero compose information for counter
149
152
  * @param tx - The transaction to add the move call to
150
- * @param messagingChannel - The messaging channel object ID or transaction argument
151
- * @param eid - The peer endpoint ID or transaction argument
152
- * @param peer - The peer counter address as bytes or transaction argument
153
+ * @param lzComposeInfo - LayerZero compose information as bytes
153
154
  */
154
- setPeerMoveCall(
155
- tx: Transaction,
156
- messagingChannel: string | TransactionArgument,
157
- eid: number | TransactionArgument,
158
- peer: Uint8Array | TransactionArgument
159
- ): void {
155
+ setLzComposeInfoMoveCall(tx: Transaction, lzComposeInfo: Uint8Array | TransactionArgument): void {
160
156
  tx.moveCall({
161
- target: this.#target('set_peer'),
157
+ target: this.#target('set_lz_compose_info'),
162
158
  arguments: [
163
159
  tx.object(this.objects.counter),
164
160
  tx.object(this.objects.counterOapp),
165
161
  tx.object(this.objects.counterAdminCap),
166
162
  tx.object(this.objects.endpointV2),
167
- asObject(tx, messagingChannel),
168
- asU32(tx, eid),
169
- asBytes32(tx, peer, this.moduleManager.getUtils()),
163
+ asBytes(tx, lzComposeInfo),
170
164
  ],
171
165
  })
172
166
  }
173
167
 
168
+ // === View Functions ===
169
+
174
170
  /**
175
- * Set delegate for the counter
171
+ * Get counter EID
176
172
  * @param tx - The transaction to add the move call to
177
- * @param newDelegate - The new delegate address or transaction argument
173
+ * @returns Transaction result containing the counter EID
178
174
  */
179
- setDelegateMoveCall(tx: Transaction, newDelegate: string | TransactionArgument): void {
180
- tx.moveCall({
181
- target: this.#target('set_delegate'),
182
- arguments: [
183
- tx.object(this.objects.counter),
184
- tx.object(this.objects.counterOapp),
185
- tx.object(this.objects.counterAdminCap),
186
- tx.object(this.objects.endpointV2),
187
- asAddress(tx, newDelegate),
188
- ],
175
+ getEidMoveCall(tx: Transaction): TransactionResult {
176
+ return tx.moveCall({
177
+ target: this.#target('eid'),
178
+ arguments: [tx.object(this.objects.counter)],
189
179
  })
190
180
  }
191
181
 
192
182
  /**
193
- * Set LayerZero compose information for counter
194
- * @param tx - The transaction to add the move call to
195
- * @param lzComposeInfo - LayerZero compose information as bytes
183
+ * Get counter EID
184
+ * @returns Promise<number> - The counter EID
196
185
  */
197
- setLzComposeInfoMoveCall(tx: Transaction, lzComposeInfo: Uint8Array | TransactionArgument): void {
198
- tx.moveCall({
199
- target: this.#target('set_lz_compose_info'),
200
- arguments: [
201
- tx.object(this.objects.counter),
202
- tx.object(this.objects.counterOapp),
203
- tx.object(this.objects.counterAdminCap),
204
- tx.object(this.objects.endpointV2),
205
- asBytes(tx, lzComposeInfo),
206
- ],
207
- })
186
+ async getEid(): Promise<number> {
187
+ return executeSimulate(
188
+ this.client,
189
+ (tx) => {
190
+ this.getEidMoveCall(tx)
191
+ },
192
+ (result) => bcs.U32.parse(result[0].value)
193
+ )
208
194
  }
209
195
 
210
- // === View Functions ===
211
-
212
196
  /**
213
197
  * Get call capability address for counter
214
198
  * @param tx - The transaction to add the move call to