@layerzerolabs/ton-sdk-tools 3.0.27 → 3.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @layerzerolabs/ton-sdk-tools
2
2
 
3
+ ## 3.0.29
4
+
5
+ ### Patch Changes
6
+
7
+ - 6d435ec: fix sdk
8
+
9
+ ## 3.0.28
10
+
11
+ ### Patch Changes
12
+
13
+ - 0ced4cd: fix zksync artifacts
14
+
3
15
  ## 3.0.27
4
16
 
5
17
  ### Patch Changes
package/dist/index.cjs CHANGED
@@ -297,7 +297,7 @@ function parseDeclareLines(input, fieldMap) {
297
297
  function parseFieldNames(strInput) {
298
298
  const fieldMap = {};
299
299
  const inverseFieldMap = {};
300
- const regex = /^const\s+int\s+(?:[A-Za-z]+::)?[A-Za-z]\w+::(\w+)\s*=\s*(\d+);/gm;
300
+ const regex = /^const\s+int\s+(?:[A-Za-z]+::)?[A-Za-z]\w+::([A-Za-z0-9]+)\s*=\s*(\d+);/gm;
301
301
  let match;
302
302
  while ((match = regex.exec(strInput)) !== null) {
303
303
  const [, fieldName, fieldIndexStr] = match;
@@ -3178,8 +3178,7 @@ function generateSmlTestUtils(directory, filename) {
3178
3178
  fs__namespace.default.writeFileSync(path__namespace.default.join(directory, filename), savedCode);
3179
3179
  }
3180
3180
  function generateUlnTestUtils(directory, filename) {
3181
- const savedCode = `
3182
- import { Address, Cell, TupleItemCell, beginCell, toNano } from '@ton/core'
3181
+ const savedCode = `import { Address, Cell, TupleItemCell, beginCell, toNano } from '@ton/core'
3183
3182
  import { Blockchain, SandboxContract, SendMessageResult, TreasuryContract } from '@ton/sandbox'
3184
3183
  import { FlatTransactionComparable } from '@ton/test-utils'
3185
3184
  import { ethers } from 'ethers'
@@ -3198,21 +3197,15 @@ import UlnManagerArtifact from '@layerzerolabs/layerzero-v2-ton/build/UlnManager
3198
3197
  import { Profile, addressToBigInt, cellFromArtifact } from '@layerzerolabs/ton-sdk-tools'
3199
3198
 
3200
3199
  import {
3201
- ActionTypes,
3202
3200
  OAppFixture,
3203
3201
  OAppFlowGas,
3204
- OutOfOrder,
3205
- PacketInFlight,
3206
3202
  ProtocolFixture,
3207
3203
  SIGNATURE_BYTE_LENGTH,
3208
3204
  addMsgLibToController,
3209
- assertCommittableView,
3210
- assertVerifiedView,
3211
3205
  createLzPacketFromPacketEncoded,
3212
3206
  createVerifierDictSet,
3213
3207
  emptyObject,
3214
3208
  generateRandomVerifierSet,
3215
- lzReceiveAndExpect,
3216
3209
  protocolSetupGas,
3217
3210
  publicKeyToHash,
3218
3211
  requireDefined,
@@ -3222,9 +3215,7 @@ import {
3222
3215
  setDefaultEndpointConfig,
3223
3216
  wireChannels,
3224
3217
  } from './auto-utils-common'
3225
- import { ExpectedCounts, assertInboundCount, assertOutboundCount, incrementCounterAndExpectULN } from './utils'
3226
3218
  import {
3227
- ERRORS,
3228
3219
  ExtendedContract,
3229
3220
  LzDict,
3230
3221
  LzEventHandler,
@@ -3235,8 +3226,6 @@ import {
3235
3226
  } from '../../src'
3236
3227
 
3237
3228
  const ULN_MANAGER_DEFAULT_VERSION = BigInt(1)
3238
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
3239
- const ULN_MANAGER_CUSTOM_VERSION = BigInt(2)
3240
3229
 
3241
3230
  export const TRUE = BigInt(-1)
3242
3231
  export const FALSE = BigInt(0)
@@ -3322,211 +3311,6 @@ export function serializeDvns(dvnList: bigint[]): Cell {
3322
3311
  return linkedList.endCell()
3323
3312
  }
3324
3313
 
3325
- // ================================Out of order helper functions================================
3326
-
3327
- export async function generateFromPacketsInFlight(
3328
- outOfOrder: OutOfOrder,
3329
- fixtures: Map<bigint, OAppFixtureULN>,
3330
- expectedCounts: Map<bigint, ExpectedCounts>,
3331
- packetsInFlight: Map<bigint, PacketInFlight[]>,
3332
- multiSigOwner1: SandboxContract<TreasuryContract>,
3333
- eventHandler: LzEventHandler,
3334
- profile?: Profile
3335
- ): Promise<PacketInFlight[]> {
3336
- let fromPacketsInFlight: PacketInFlight[] | undefined = []
3337
-
3338
- for (const action of outOfOrder.actions) {
3339
- const fromEidBigInt = BigInt(action.fromEid)
3340
- const fromFixture = fixtures.get(fromEidBigInt)
3341
- const fromExpectedCounts = expectedCounts.get(fromEidBigInt)
3342
- fromPacketsInFlight = packetsInFlight.get(fromEidBigInt)
3343
-
3344
- if (!fromFixture || !fromExpectedCounts || !fromPacketsInFlight) {
3345
- throw new Error('Fixture, ExpectedCount, or PacketsInFlight not found')
3346
- }
3347
-
3348
- const mdPacketSent = await incrementCounterAndExpectULN(
3349
- {
3350
- dstEid: action.toEid,
3351
- actionType: ActionTypes[action.actionType],
3352
- extraOptions: beginCell().endCell(),
3353
- nativeFee: toNano('0.000006240'),
3354
- zroFee: toNano('0'),
3355
- },
3356
- multiSigOwner1,
3357
- eventHandler,
3358
- fromFixture.msglibConnection,
3359
- fromFixture,
3360
- profile ?? undefined
3361
- )
3362
-
3363
-
3364
- await assertOutboundCount(fromFixture.oApp, action.toEid, ++fromExpectedCounts.outbound)
3365
-
3366
- fromPacketsInFlight.push({
3367
- fromEid: action.fromEid,
3368
- toEid: action.toEid,
3369
- mdPacketSent,
3370
- })
3371
- }
3372
- return fromPacketsInFlight
3373
- }
3374
-
3375
- export async function getRandomLzPacket(
3376
- allStorages: SandboxContract<TonContractWrapper>,
3377
- fromPacketsInFlight: PacketInFlight[],
3378
- fixtures: Map<bigint, OAppFixtureULN>,
3379
- expectedCounts: Map<bigint, ExpectedCounts>,
3380
- pooos: Map<bigint, number[]>
3381
- ): Promise<{
3382
- randomPacketIndex: number
3383
- randomPacketInFlight: PacketInFlight
3384
- toFixture: OAppFixtureULN
3385
- toExpectedCounts: ExpectedCounts
3386
- lzPacket: Cell
3387
- toPooo: number[]
3388
- }> {
3389
- if (fromPacketsInFlight.length === 0) {
3390
- throw new Error('No packets in flight available')
3391
- }
3392
-
3393
- const randomPacketIndex = Math.floor(Math.random() * fromPacketsInFlight.length)
3394
- const randomPacketInFlight = fromPacketsInFlight[randomPacketIndex]
3395
-
3396
- const toEidBigInt = BigInt(randomPacketInFlight.toEid)
3397
- const toFixture = fixtures.get(toEidBigInt)
3398
- const toExpectedCounts = expectedCounts.get(toEidBigInt)
3399
- const toPooo = pooos.get(toEidBigInt)
3400
-
3401
- if (!toFixture || !toExpectedCounts || !toPooo) {
3402
- throw new Error('Fixture, ExpectedCount, or POOO not found')
3403
- }
3404
-
3405
- const lzPacket = await createLzPacketFromPacketEncoded(randomPacketInFlight.mdPacketSent.packetEncoded, allStorages)
3406
-
3407
- return {
3408
- randomPacketIndex,
3409
- randomPacketInFlight,
3410
- toFixture,
3411
- toExpectedCounts,
3412
- lzPacket,
3413
- toPooo,
3414
- }
3415
- }
3416
-
3417
- export async function handleVerify(
3418
- toFixture: OAppFixtureULN,
3419
- randomPacketInFlight: PacketInFlight,
3420
- lzPacket: Cell,
3421
- allStorages: SandboxContract<TonContractWrapper>,
3422
- eventHandler: LzEventHandler
3423
- ): Promise<void> {
3424
- let isVerified = true
3425
- for (const dvnFixture of toFixture.receiveDvnFixturesCustom) {
3426
- const isVerifiedView = await assertVerifiedView(
3427
- toFixture.msglibConnection,
3428
- addressToBigInt(dvnFixture.proxy.address),
3429
- randomPacketInFlight.mdPacketSent.nonce,
3430
- BigInt('0x' + lzPacket.hash().toString('hex')),
3431
- BigInt(1) // requiredConfirmations
3432
- )
3433
-
3434
- if (isVerifiedView == FALSE) {
3435
- isVerified = false
3436
- }
3437
- }
3438
-
3439
- if (!isVerified) {
3440
- await ulnVerifyAndExpect(
3441
- allStorages,
3442
- randomPacketInFlight.mdPacketSent,
3443
- toFixture,
3444
- toFixture.receiveDvnFixturesCustom,
3445
- toFixture.msglibManager,
3446
- toFixture.msglibConnection,
3447
- eventHandler
3448
- )
3449
- }
3450
- }
3451
-
3452
- export async function handleCommit(
3453
- toFixture: OAppFixtureULN,
3454
- randomPacketInFlight: PacketInFlight,
3455
- lzPacketWithGuid: Cell,
3456
- multiSigOwner1: SandboxContract<TreasuryContract>,
3457
- eventHandler: LzEventHandler
3458
- ): Promise<void> {
3459
- const status = await assertCommittableView(
3460
- toFixture.msglibConnection,
3461
- randomPacketInFlight.mdPacketSent.nonce,
3462
- lzPacketWithGuid,
3463
- toFixture.defaultUlnReceiveConfig
3464
- )
3465
-
3466
- if (status == UlnConnectionVerificationStatusCommittable) {
3467
- await commitVerificationAndExpect(lzPacketWithGuid, multiSigOwner1, eventHandler, toFixture)
3468
- }
3469
- }
3470
-
3471
- export async function handleLzReceive(
3472
- isExecutable: boolean,
3473
- nonces: bigint[],
3474
- toFixture: OAppFixtureULN,
3475
- randomPacketInFlight: PacketInFlight,
3476
- multiSigOwner1: SandboxContract<TreasuryContract>,
3477
- allStorages: SandboxContract<TonContractWrapper>,
3478
- lzReceivePrepareValue: bigint,
3479
- eventHandler: LzEventHandler,
3480
- toExpectedCounts: ExpectedCounts,
3481
- randomPacketIndex: number | undefined,
3482
- fromPacketsInFlight: PacketInFlight[] | undefined,
3483
- totalPacketsDelivered?: number,
3484
- opcode = OPCODES.Channel_OP_LZ_RECEIVE_PREPARE,
3485
- profile?: Profile
3486
- ): Promise<number | undefined> {
3487
- if (isExecutable) {
3488
- for (const nonce of nonces) {
3489
- await lzReceiveAndExpect({
3490
- lzReceivePrepareMd: await allStorages.getNewMdLzReceivePrepare({
3491
- nonce,
3492
- nanotons: lzReceivePrepareValue,
3493
- }),
3494
- oAppFixture: toFixture,
3495
- deployer: multiSigOwner1,
3496
- eventHandler,
3497
- profile,
3498
- })
3499
- await assertInboundCount(toFixture.oApp, randomPacketInFlight.fromEid, ++toExpectedCounts.inbound)
3500
- if (totalPacketsDelivered !== undefined) totalPacketsDelivered++
3501
- }
3502
- if (fromPacketsInFlight && randomPacketIndex !== undefined) {
3503
- fromPacketsInFlight.splice(randomPacketIndex, 1)
3504
- }
3505
- } else {
3506
- await sendInternalMessageAndExpect({
3507
- value: toNano('1'),
3508
- sender: multiSigOwner1.getSender(),
3509
- contract: toFixture.channel,
3510
- opCode: opcode,
3511
- md: await allStorages.getNewMdLzReceivePrepare({
3512
- nonce: randomPacketInFlight.mdPacketSent.nonce,
3513
- nanotons: lzReceivePrepareValue,
3514
- }),
3515
- expectedTransactions: [
3516
- {
3517
- from: multiSigOwner1.address,
3518
- to: toFixture.channel.address,
3519
- op: Number(opcode),
3520
- exitCode: Number(ERRORS.Channel_ERROR_notExecutable),
3521
- success: false,
3522
- },
3523
- ],
3524
- })
3525
- await assertInboundCount(toFixture.oApp, randomPacketInFlight.fromEid, toExpectedCounts.inbound)
3526
- }
3527
- return totalPacketsDelivered
3528
- }
3529
-
3530
3314
  // ==============================ULN INTEGRATION FUNCTIONS==============================
3531
3315
 
3532
3316
  export async function commitVerificationAndExpect(
@@ -3639,6 +3423,7 @@ export async function addDvnWorkers(
3639
3423
  for (const dvnFixture of [...sendDvnFixtures, ...receiveDvnFixtures]) {
3640
3424
  const dvnWorkerCallMd = await allStorages.getNewMdExecuteParams({
3641
3425
  target: addressToBigInt(msglibManager.address),
3426
+ forwardingAddress: 0n,
3642
3427
  callData: await allStorages.getNewUlnWorkerFeelibInfo({
3643
3428
  workerAddress: addressToBigInt(dvnFixture.dvn.address),
3644
3429
  workerFeelibBytecode: cellFromArtifact(DvnFeelibArtifact),
@@ -4095,7 +3880,7 @@ export async function deployConfigAndRegisterDvn(
4095
3880
  ): Promise<[DvnFixture[], DvnFixture[]]> {
4096
3881
  const dvnAdmins = [fixture.owner]
4097
3882
  const verifierSet = generateRandomVerifierSet(3)
4098
-
3883
+
4099
3884
  const sendDvnFixtures: DvnFixture[] = []
4100
3885
  const receiveDvnFixtures: DvnFixture[] = []
4101
3886
 
@@ -4137,7 +3922,7 @@ export async function deployConfigAndRegisterDvn(
4137
3922
  })
4138
3923
  await eventHandler.addCurrentEventsToAllEvents(dvnMsgResults, dvn)
4139
3924
  }
4140
-
3925
+
4141
3926
  return [sendDvnFixtures, receiveDvnFixtures]
4142
3927
  }
4143
3928
 
@@ -4151,7 +3936,6 @@ export async function deployConfigAndRegisterUln(
4151
3936
  eventHandler: LzEventHandler,
4152
3937
  dvnFixtureConfig: DvnFixtureConfig
4153
3938
  ): Promise<SandboxContract<TonContractWrapper>> {
4154
-
4155
3939
  // ===================================open and deploy uln manager =====================================
4156
3940
 
4157
3941
  const [msglibManager, ulnManagerMsgResults] = await openAndDeployUlnManagerViaMultisig(
@@ -4164,7 +3948,6 @@ export async function deployConfigAndRegisterUln(
4164
3948
  srcFixture.msglibManager = msglibManager
4165
3949
 
4166
3950
  // ===================================open and deploy dvn =====================================
4167
-
4168
3951
  ;[srcFixture.sendDvnFixtures, srcFixture.receiveDvnFixtures] = await deployConfigAndRegisterDvn(
4169
3952
  blockchain,
4170
3953
  allStorages,
@@ -4172,7 +3955,7 @@ export async function deployConfigAndRegisterUln(
4172
3955
  eventHandler,
4173
3956
  dvnFixtureConfig
4174
3957
  )
4175
-
3958
+
4176
3959
  // ===================================open and deploy executor=====================================
4177
3960
 
4178
3961
  const executorAdmins = [srcFixture.owner]
@@ -4274,7 +4057,7 @@ export async function deployConfigAndRegisterUln(
4274
4057
  priceFeedCacheProxy.address,
4275
4058
  eventHandler
4276
4059
  )
4277
-
4060
+
4278
4061
  // ===================================addUlnWorker - executor =======================================
4279
4062
 
4280
4063
  const executorWorkerCallMd = await allStorages.getNewMdExecuteParams({
@@ -4296,6 +4079,7 @@ export async function deployConfigAndRegisterUln(
4296
4079
  }),
4297
4080
  expiration: BigInt(0),
4298
4081
  opcode: OPCODES.UlnManager_OP_ADD_ULN_WORKER,
4082
+ forwardingAddress: 0n,
4299
4083
  })
4300
4084
 
4301
4085
  internalMsgResults = await addUlnWorker(srcFixture.executorFixtures.admins[0], executor, executorWorkerCallMd, [
@@ -4357,6 +4141,7 @@ export async function deployConfigAndRegisterUln(
4357
4141
  }),
4358
4142
  expiration: BigInt(0),
4359
4143
  opcode: OPCODES.UlnManager_OP_ADD_ULN_WORKER,
4144
+ forwardingAddress: 0n,
4360
4145
  })
4361
4146
 
4362
4147
  internalMsgResults = await addUlnWorker(
@@ -4418,7 +4203,7 @@ export async function deployConfigAndRegisterUln(
4418
4203
  confirmationsNull: BigInt(0),
4419
4204
  confirmations: BigInt(1),
4420
4205
  })
4421
-
4206
+
4422
4207
  srcFixture.defaultUlnSendConfig = ulnSendConfig
4423
4208
 
4424
4209
  await sendMessageViaMultisigAndExpect({
@@ -4471,7 +4256,7 @@ export async function deployConfigAndRegisterUln(
4471
4256
  })
4472
4257
 
4473
4258
  srcFixture.defaultUlnReceiveConfig = ulnReceiveConfig
4474
-
4259
+
4475
4260
  await sendMessageViaMultisigAndExpect({
4476
4261
  blockchain,
4477
4262
  multiSigContract: srcFixture.multisig,
@@ -4547,7 +4332,7 @@ export async function wireFixtureWithUln(
4547
4332
  }
4548
4333
 
4549
4334
  // ===================================deploy, configue, and register uln =====================================
4550
-
4335
+
4551
4336
  srcFixture.msglibManager = await deployConfigAndRegisterUln(
4552
4337
  blockchain,
4553
4338
  multiSigners,
@@ -4569,7 +4354,7 @@ export async function wireFixtureWithUln(
4569
4354
  srcFixture.msglibManager
4570
4355
  )
4571
4356
  await eventHandler.addCurrentEventsToAllEvents(internalMsgResults, srcFixture.controller)
4572
-
4357
+
4573
4358
  // ===================================open and deploy uln connection =====================================
4574
4359
 
4575
4360
  const [msglibConnection, ulnConnectionMsgResults] = await openAndDeployUlnConnection(
@@ -4597,8 +4382,7 @@ export async function wireFixtureWithUln(
4597
4382
 
4598
4383
  // expect no failures
4599
4384
  expect(eventHandler.allFailures.txList).toHaveLength(0)
4600
-
4601
-
4385
+
4602
4386
  if (dvnFixtureConfigCustom) {
4603
4387
  // ===================================open and deploy dvn =====================================
4604
4388
 
@@ -4648,7 +4432,7 @@ export async function wireFixtureWithUln(
4648
4432
  md: await allStorages.getNewLzConfig({
4649
4433
  path: srcFixture.path,
4650
4434
  forwardingAddress: addressToBigInt(srcFixture.msglibManager.address),
4651
- opCode: OPCODES.MsglibManager_OP_SET_OAPP_MSGLIB_SEND_CONFIG,
4435
+ opCode: OPCODES.MsglibManager_OP_SET_OAPP_MSGLIB_SEND_CONFIG as bigint,
4652
4436
  config: ulnSendConfig,
4653
4437
  }),
4654
4438
  balanceRefill: toNano('1'),
@@ -4699,7 +4483,7 @@ export async function wireFixtureWithUln(
4699
4483
  md: await allStorages.getNewLzConfig({
4700
4484
  path: srcFixture.path,
4701
4485
  forwardingAddress: addressToBigInt(srcFixture.msglibManager.address),
4702
- opCode: OPCODES.MsglibManager_OP_SET_OAPP_MSGLIB_RECEIVE_CONFIG,
4486
+ opCode: OPCODES.MsglibManager_OP_SET_OAPP_MSGLIB_RECEIVE_CONFIG as bigint,
4703
4487
  config: ulnReceiveConfig,
4704
4488
  }),
4705
4489
  balanceRefill: toNano('1'),
@@ -4868,6 +4652,7 @@ interface SetDictOnDvnParams {
4868
4652
  nonce: bigint
4869
4653
  allStorages: SandboxContract<TonContractWrapper>
4870
4654
  expectedTransactions: FlatTransactionComparable[]
4655
+ target: bigint
4871
4656
  }
4872
4657
 
4873
4658
  export async function setDictOnDvn({
@@ -4878,6 +4663,7 @@ export async function setDictOnDvn({
4878
4663
  signedOpcode,
4879
4664
  incomingOpcode,
4880
4665
  nonce,
4666
+ target,
4881
4667
  allStorages,
4882
4668
  expectedTransactions = [],
4883
4669
  }: SetDictOnDvnParams): Promise<SendMessageResult> {
@@ -4885,6 +4671,7 @@ export async function setDictOnDvn({
4885
4671
  nonce,
4886
4672
  opcode: signedOpcode,
4887
4673
  _dict: newDict,
4674
+ target,
4888
4675
  })
4889
4676
 
4890
4677
  return signAndSendRequestToDvn({
@@ -4922,6 +4709,7 @@ interface SetQuorumOnDvnParams {
4922
4709
  nonce: bigint
4923
4710
  allStorages: SandboxContract<TonContractWrapper>
4924
4711
  expectedTransactions: FlatTransactionComparable[]
4712
+ target: bigint
4925
4713
  }
4926
4714
 
4927
4715
  export async function setQuorumOnDvn({
@@ -4934,11 +4722,13 @@ export async function setQuorumOnDvn({
4934
4722
  nonce,
4935
4723
  allStorages,
4936
4724
  expectedTransactions,
4725
+ target,
4937
4726
  }: SetQuorumOnDvnParams): Promise<SendMessageResult> {
4938
4727
  const setQuorumMd = await dvn.getNewMdSetQuorum({
4939
4728
  nonce,
4940
4729
  opcode: signedOpcode,
4941
4730
  quorum: newQuorum,
4731
+ target,
4942
4732
  })
4943
4733
 
4944
4734
  return signAndSendRequestToDvn({
@@ -5033,6 +4823,7 @@ interface CallVerifyOnDvnParams {
5033
4823
  callData: Cell
5034
4824
  allStorages: SandboxContract<TonContractWrapper>
5035
4825
  expectedTransactions: FlatTransactionComparable[]
4826
+ forwardingAddress: bigint
5036
4827
  }
5037
4828
 
5038
4829
  export async function callVerifyOnDvn({
@@ -5046,12 +4837,14 @@ export async function callVerifyOnDvn({
5046
4837
  callData,
5047
4838
  allStorages,
5048
4839
  expectedTransactions,
4840
+ forwardingAddress,
5049
4841
  }: CallVerifyOnDvnParams): Promise<SendMessageResult> {
5050
4842
  const executeParamsMd = await dvn.getNewMdExecuteParams({
5051
4843
  expiration,
5052
4844
  target,
5053
4845
  callData,
5054
4846
  opcode: signedOpcode,
4847
+ forwardingAddress,
5055
4848
  })
5056
4849
 
5057
4850
  return signAndSendRequestToDvn({
@@ -5082,21 +4875,22 @@ export async function ulnVerifyAndExpect(
5082
4875
 
5083
4876
  const lzPacket = await createLzPacketFromPacketEncoded(mdPacketSent.packetEncoded, allStorages)
5084
4877
 
5085
- const requestMd = await allStorages.getNewMdExecuteParams({
5086
- target: addressToBigInt(uln.address),
5087
- callData: await allStorages.getNewMdMdAddress({
5088
- md: await allStorages.getNewMdUlnVerification({
5089
- nonce: mdPacketSent.nonce,
5090
- hash: BigInt('0x' + lzPacket.hash().toString('hex')),
5091
- confirmations,
4878
+ for (const { dvn, proxy, admins, verifiers } of receiveDvnFixtures) {
4879
+ const requestMd = await allStorages.getNewMdExecuteParams({
4880
+ target: addressToBigInt(dvn.address),
4881
+ callData: await allStorages.getNewMdMdAddress({
4882
+ md: await allStorages.getNewMdUlnVerification({
4883
+ nonce: mdPacketSent.nonce,
4884
+ hash: BigInt('0x' + lzPacket.hash().toString('hex')),
4885
+ confirmations,
4886
+ }),
4887
+ address: addressToBigInt(msglibConnection.address),
5092
4888
  }),
5093
- address: addressToBigInt(msglibConnection.address),
5094
- }),
5095
- expiration: oneDayFromNow,
5096
- opcode: OPCODES.Uln_OP_ULN_VERIFY,
5097
- })
4889
+ expiration: oneDayFromNow,
4890
+ opcode: OPCODES.Uln_OP_ULN_VERIFY,
4891
+ forwardingAddress: addressToBigInt(uln.address),
4892
+ })
5098
4893
 
5099
- for (const { dvn, proxy, admins, verifiers } of receiveDvnFixtures) {
5100
4894
  const internalMsgResults: SendMessageResult = await sendInternalMessageAndExpect({
5101
4895
  profile,
5102
4896
  value: OAppFlowGas['Msglib.COMMIT_PACKET'],