diff --git a/src/generators/typescript/complex_expr.ts b/src/generators/typescript/complex_expr.ts index e4482ee..fd2d5bb 100644 --- a/src/generators/typescript/complex_expr.ts +++ b/src/generators/typescript/complex_expr.ts @@ -52,7 +52,7 @@ export function sliceLoad(slicePrefix: number[], currentSlice: string) { tFunctionCall(tMemberExpression(id(currentSlice), id("loadRef")), []), id("beginParse") ), - [] + [id('true')] ) ) ); diff --git a/test/generated_files/generated_block.ts b/test/generated_files/generated_block.ts index 7d948e1..575b3d9 100644 --- a/test/generated_files/generated_block.ts +++ b/test/generated_files/generated_block.ts @@ -3987,9 +3987,9 @@ export function loadHashmapNode(slice: Slice, arg0: number, loadX: (slice: Sl } if (true) { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let left: Hashmap = loadHashmap(slice1, (arg0 - 1), loadX); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let right: Hashmap = loadHashmap(slice2, (arg0 - 1), loadX); return { kind: 'HashmapNode_hmn_fork', @@ -4270,9 +4270,9 @@ export function loadHashmapAugNode(slice: Slice, arg0: number, loadX: (sli } if (true) { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let left: HashmapAug = loadHashmapAug(slice1, (arg0 - 1), loadX, loadY); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let right: HashmapAug = loadHashmapAug(slice2, (arg0 - 1), loadX, loadY); let extra: Y = loadY(slice); return { @@ -4384,9 +4384,9 @@ export function loadVarHashmapNode(slice: Slice, arg0: number, loadX: (slice: } if (((slice.remainingBits >= 2) && (slice.preloadUint(2) == 0b01))) { slice.loadUint(2); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let left: VarHashmap = loadVarHashmap(slice1, (arg0 - 1), loadX); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let right: VarHashmap = loadVarHashmap(slice2, (arg0 - 1), loadX); let value: Maybe = loadMaybe(slice, loadX); return { @@ -4401,7 +4401,7 @@ export function loadVarHashmapNode(slice: Slice, arg0: number, loadX: (slice: if (((slice.remainingBits >= 1) && (slice.preloadUint(1) == 0b1))) { slice.loadUint(1); let branch: boolean = slice.loadBit(); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let child: VarHashmap = loadVarHashmap(slice1, (arg0 - 1), loadX); let value: X = loadX(slice); return { @@ -4469,7 +4469,7 @@ export function loadVarHashmapE(slice: Slice, n: number, loadX: (slice: Slice } if (((slice.remainingBits >= 1) && (slice.preloadUint(1) == 0b1))) { slice.loadUint(1); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let root: VarHashmap = loadVarHashmap(slice1, n, loadX); return { kind: 'VarHashmapE_vhme_root', @@ -4568,9 +4568,9 @@ export function loadPfxHashmapNode(slice: Slice, arg0: number, loadX: (slice: } if (((slice.remainingBits >= 1) && (slice.preloadUint(1) == 0b1))) { slice.loadUint(1); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let left: PfxHashmap = loadPfxHashmap(slice1, (arg0 - 1), loadX); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let right: PfxHashmap = loadPfxHashmap(slice2, (arg0 - 1), loadX); return { kind: 'PfxHashmapNode_phmn_fork', @@ -4624,7 +4624,7 @@ export function loadPfxHashmapE(slice: Slice, n: number, loadX: (slice: Slice } if (((slice.remainingBits >= 1) && (slice.preloadUint(1) == 0b1))) { slice.loadUint(1); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let root: PfxHashmap = loadPfxHashmap(slice1, n, loadX); return { kind: 'PfxHashmapE_phme_root', @@ -5001,17 +5001,17 @@ export function loadStateInit(slice: Slice): StateInit { })); let special: Maybe = loadMaybe(slice, loadTickTock); let code: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return slice1 })); let data: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return slice1 })); let library: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return slice1 })); @@ -5079,12 +5079,12 @@ export function loadStateInitWithLibs(slice: Slice): StateInitWithLibs { })); let special: Maybe = loadMaybe(slice, loadTickTock); let code: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return slice1 })); let data: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return slice1 })); @@ -5144,7 +5144,7 @@ export function storeStateInitWithLibs(stateInitWithLibs: StateInitWithLibs): (b export function loadSimpleLib(slice: Slice): SimpleLib { let public0: boolean = slice.loadBoolean(); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let root: Slice = slice1; return { kind: 'SimpleLib', @@ -5174,14 +5174,14 @@ export function loadMessage(slice: Slice, loadX: (slice: Slice) => X): Messag let info: CommonMsgInfo = loadCommonMsgInfo(slice); let init: Maybe> = loadMaybe>(slice, ((slice: Slice) => { return loadEither(slice, loadStateInit, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadStateInit(slice1) })) })); let body: Either = loadEither(slice, loadX, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadX(slice1) })); @@ -5234,14 +5234,14 @@ export function loadMessageRelaxed(slice: Slice, loadX: (slice: Slice) => X): let info: CommonMsgInfoRelaxed = loadCommonMsgInfoRelaxed(slice); let init: Maybe> = loadMaybe>(slice, ((slice: Slice) => { return loadEither(slice, loadStateInit, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadStateInit(slice1) })) })); let body: Either = loadEither(slice, loadX, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadX(slice1) })); @@ -5399,7 +5399,7 @@ export function loadMsgEnvelope(slice: Slice): MsgEnvelope { let cur_addr: IntermediateAddress = loadIntermediateAddress(slice); let next_addr: IntermediateAddress = loadIntermediateAddress(slice); let fwd_fee_remaining: bigint = slice.loadCoins(); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let msg: Message = loadMessage(slice1, ((slice: Slice) => { return slice @@ -5472,12 +5472,12 @@ msg_discard_tr$111 in_msg:^MsgEnvelope transaction_id:uint64 export function loadInMsg(slice: Slice): InMsg { if (((slice.remainingBits >= 3) && (slice.preloadUint(3) == 0b000))) { slice.loadUint(3); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let msg: Message = loadMessage(slice1, ((slice: Slice) => { return slice })); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let transaction: Transaction = loadTransaction(slice2); return { kind: 'InMsg_msg_import_ext', @@ -5488,15 +5488,15 @@ export function loadInMsg(slice: Slice): InMsg { } if (((slice.remainingBits >= 3) && (slice.preloadUint(3) == 0b010))) { slice.loadUint(3); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let msg: Message = loadMessage(slice1, ((slice: Slice) => { return slice })); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let transaction: Transaction = loadTransaction(slice2); let ihr_fee: bigint = slice.loadCoins(); - let slice3 = slice.loadRef().beginParse(); + let slice3 = slice.loadRef().beginParse(true); let proof_created: Slice = slice3; return { kind: 'InMsg_msg_import_ihr', @@ -5509,9 +5509,9 @@ export function loadInMsg(slice: Slice): InMsg { } if (((slice.remainingBits >= 3) && (slice.preloadUint(3) == 0b011))) { slice.loadUint(3); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let in_msg: MsgEnvelope = loadMsgEnvelope(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let transaction: Transaction = loadTransaction(slice2); let fwd_fee: bigint = slice.loadCoins(); return { @@ -5524,9 +5524,9 @@ export function loadInMsg(slice: Slice): InMsg { } if (((slice.remainingBits >= 3) && (slice.preloadUint(3) == 0b100))) { slice.loadUint(3); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let in_msg: MsgEnvelope = loadMsgEnvelope(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let transaction: Transaction = loadTransaction(slice2); let fwd_fee: bigint = slice.loadCoins(); return { @@ -5539,9 +5539,9 @@ export function loadInMsg(slice: Slice): InMsg { } if (((slice.remainingBits >= 3) && (slice.preloadUint(3) == 0b101))) { slice.loadUint(3); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let in_msg: MsgEnvelope = loadMsgEnvelope(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let out_msg: MsgEnvelope = loadMsgEnvelope(slice2); let transit_fee: bigint = slice.loadCoins(); return { @@ -5554,7 +5554,7 @@ export function loadInMsg(slice: Slice): InMsg { } if (((slice.remainingBits >= 3) && (slice.preloadUint(3) == 0b110))) { slice.loadUint(3); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let in_msg: MsgEnvelope = loadMsgEnvelope(slice1); let transaction_id: number = slice.loadUint(64); let fwd_fee: bigint = slice.loadCoins(); @@ -5568,11 +5568,11 @@ export function loadInMsg(slice: Slice): InMsg { } if (((slice.remainingBits >= 3) && (slice.preloadUint(3) == 0b111))) { slice.loadUint(3); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let in_msg: MsgEnvelope = loadMsgEnvelope(slice1); let transaction_id: number = slice.loadUint(64); let fwd_fee: bigint = slice.loadCoins(); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let proof_delivered: Slice = slice2; return { kind: 'InMsg_msg_discard_tr', @@ -5803,12 +5803,12 @@ msg_export_deq_imm$100 out_msg:^MsgEnvelope export function loadOutMsg(slice: Slice): OutMsg { if (((slice.remainingBits >= 3) && (slice.preloadUint(3) == 0b000))) { slice.loadUint(3); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let msg: Message = loadMessage(slice1, ((slice: Slice) => { return slice })); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let transaction: Transaction = loadTransaction(slice2); return { kind: 'OutMsg_msg_export_ext', @@ -5819,11 +5819,11 @@ export function loadOutMsg(slice: Slice): OutMsg { } if (((slice.remainingBits >= 3) && (slice.preloadUint(3) == 0b010))) { slice.loadUint(3); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let out_msg: MsgEnvelope = loadMsgEnvelope(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let transaction: Transaction = loadTransaction(slice2); - let slice3 = slice.loadRef().beginParse(); + let slice3 = slice.loadRef().beginParse(true); let reimport: InMsg = loadInMsg(slice3); return { kind: 'OutMsg_msg_export_imm', @@ -5835,9 +5835,9 @@ export function loadOutMsg(slice: Slice): OutMsg { } if (((slice.remainingBits >= 3) && (slice.preloadUint(3) == 0b001))) { slice.loadUint(3); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let out_msg: MsgEnvelope = loadMsgEnvelope(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let transaction: Transaction = loadTransaction(slice2); return { kind: 'OutMsg_msg_export_new', @@ -5848,9 +5848,9 @@ export function loadOutMsg(slice: Slice): OutMsg { } if (((slice.remainingBits >= 3) && (slice.preloadUint(3) == 0b011))) { slice.loadUint(3); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let out_msg: MsgEnvelope = loadMsgEnvelope(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let imported: InMsg = loadInMsg(slice2); return { kind: 'OutMsg_msg_export_tr', @@ -5861,7 +5861,7 @@ export function loadOutMsg(slice: Slice): OutMsg { } if (((slice.remainingBits >= 4) && (slice.preloadUint(4) == 0b1100))) { slice.loadUint(4); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let out_msg: MsgEnvelope = loadMsgEnvelope(slice1); let import_block_lt: number = slice.loadUint(63); return { @@ -5888,9 +5888,9 @@ export function loadOutMsg(slice: Slice): OutMsg { } if (((slice.remainingBits >= 3) && (slice.preloadUint(3) == 0b111))) { slice.loadUint(3); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let out_msg: MsgEnvelope = loadMsgEnvelope(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let imported: InMsg = loadInMsg(slice2); return { kind: 'OutMsg_msg_export_tr_req', @@ -5901,9 +5901,9 @@ export function loadOutMsg(slice: Slice): OutMsg { } if (((slice.remainingBits >= 3) && (slice.preloadUint(3) == 0b100))) { slice.loadUint(3); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let out_msg: MsgEnvelope = loadMsgEnvelope(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let reimport: InMsg = loadInMsg(slice2); return { kind: 'OutMsg_msg_export_deq_imm', @@ -6023,7 +6023,7 @@ export function storeOutMsg(outMsg: OutMsg): (builder: Builder) => void { export function loadEnqueuedMsg(slice: Slice): EnqueuedMsg { let enqueued_lt: number = slice.loadUint(64); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let out_msg: MsgEnvelope = loadMsgEnvelope(slice1); return { kind: 'EnqueuedMsg', @@ -6544,7 +6544,7 @@ account_descr$_ account:^Account last_trans_hash:bits256 */ export function loadShardAccount(slice: Slice): ShardAccount { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let account: Account = loadAccount(slice1); let last_trans_hash: BitString = slice.loadBits(256); let last_trans_lt: number = slice.loadUint(64); @@ -6653,9 +6653,9 @@ export function loadTransaction(slice: Slice): Transaction { let outmsg_cnt: number = slice.loadUint(15); let orig_status: AccountStatus = loadAccountStatus(slice); let end_status: AccountStatus = loadAccountStatus(slice); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let in_msg: Maybe> = loadMaybe>(slice1, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadMessage(slice1, ((slice: Slice) => { return slice @@ -6665,7 +6665,7 @@ export function loadTransaction(slice: Slice): Transaction { let out_msgs: Dictionary> = Dictionary.load(Dictionary.Keys.Uint(15), { serialize: () => { throw new Error('Not implemented') }, parse: ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadMessage(slice1, ((slice: Slice) => { return slice @@ -6674,9 +6674,9 @@ export function loadTransaction(slice: Slice): Transaction { }), }, slice1); let total_fees: CurrencyCollection = loadCurrencyCollection(slice); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let state_update: HASH_UPDATE = loadHASH_UPDATE(slice2, loadAccount); - let slice3 = slice.loadRef().beginParse(); + let slice3 = slice.loadRef().beginParse(true); let description: TransactionDescr = loadTransactionDescr(slice3); return { kind: 'Transaction', @@ -6766,9 +6766,9 @@ export function loadMERKLE_UPDATE(slice: Slice, loadX: (slice: Slice) => X): slice.loadUint(8); let old_hash: BitString = slice.loadBits(256); let new_hash: BitString = slice.loadBits(256); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let old: X = loadX(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let new0: X = loadX(slice2); return { kind: 'MERKLE_UPDATE', @@ -6833,7 +6833,7 @@ export function loadMERKLE_PROOF(slice: Slice, loadX: (slice: Slice) => X): M slice.loadUint(8); let virtual_hash: BitString = slice.loadBits(256); let depth: number = slice.loadUint(16); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let virtual_root: X = loadX(slice1); return { kind: 'MERKLE_PROOF', @@ -6870,11 +6870,11 @@ export function loadAccountBlock(slice: Slice): AccountBlock { slice.loadUint(4); let account_addr: BitString = slice.loadBits(256); let transactions: HashmapAug = loadHashmapAug(slice, 64, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadTransaction(slice1) }), loadCurrencyCollection); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let state_update: HASH_UPDATE = loadHASH_UPDATE(slice1, loadAccount); return { kind: 'AccountBlock', @@ -7104,7 +7104,7 @@ export function loadTrComputePhase(slice: Slice): TrComputePhase { let msg_state_used: boolean = slice.loadBoolean(); let account_activated: boolean = slice.loadBoolean(); let gas_fees: bigint = slice.loadCoins(); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let gas_used: bigint = slice1.loadVarUintBig(bitLen((7 - 1))); let gas_limit: bigint = slice1.loadVarUintBig(bitLen((7 - 1))); let gas_credit: Maybe = loadMaybe(slice1, ((slice: Slice) => { @@ -7473,7 +7473,7 @@ export function loadTransactionDescr(slice: Slice): TransactionDescr { let credit_ph: Maybe = loadMaybe(slice, loadTrCreditPhase); let compute_ph: TrComputePhase = loadTrComputePhase(slice); let action: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadTrActionPhase(slice1) })); @@ -7508,7 +7508,7 @@ export function loadTransactionDescr(slice: Slice): TransactionDescr { let storage_ph: TrStoragePhase = loadTrStoragePhase(slice); let compute_ph: TrComputePhase = loadTrComputePhase(slice); let action: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadTrActionPhase(slice1) })); @@ -7531,7 +7531,7 @@ export function loadTransactionDescr(slice: Slice): TransactionDescr { let storage_ph: Maybe = loadMaybe(slice, loadTrStoragePhase); let compute_ph: TrComputePhase = loadTrComputePhase(slice); let action: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadTrActionPhase(slice1) })); @@ -7551,7 +7551,7 @@ export function loadTransactionDescr(slice: Slice): TransactionDescr { if (((slice.remainingBits >= 4) && (slice.preloadUint(4) == 0b0101))) { slice.loadUint(4); let split_info: SplitMergeInfo = loadSplitMergeInfo(slice); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let prepare_transaction: Transaction = loadTransaction(slice1); let installed: boolean = slice.loadBoolean(); return { @@ -7578,13 +7578,13 @@ export function loadTransactionDescr(slice: Slice): TransactionDescr { if (((slice.remainingBits >= 4) && (slice.preloadUint(4) == 0b0111))) { slice.loadUint(4); let split_info: SplitMergeInfo = loadSplitMergeInfo(slice); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let prepare_transaction: Transaction = loadTransaction(slice1); let storage_ph: Maybe = loadMaybe(slice, loadTrStoragePhase); let credit_ph: Maybe = loadMaybe(slice, loadTrCreditPhase); let compute_ph: TrComputePhase = loadTrComputePhase(slice); let action: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadTrActionPhase(slice1) })); @@ -7829,7 +7829,7 @@ export function loadOutList(slice: Slice, arg0: number): OutList { } if (true) { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let prev: OutList = loadOutList(slice1, (arg0 - 1)); let action: OutAction = loadOutAction(slice); return { @@ -7882,7 +7882,7 @@ export function loadOutAction(slice: Slice): OutAction { if (((slice.remainingBits >= 32) && (slice.preloadUint(32) == 0x0ec3c86d))) { slice.loadUint(32); let mode: number = slice.loadUint(8); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let out_msg: MessageRelaxed = loadMessageRelaxed(slice1, ((slice: Slice) => { return slice @@ -7896,7 +7896,7 @@ export function loadOutAction(slice: Slice): OutAction { } if (((slice.remainingBits >= 32) && (slice.preloadUint(32) == 0xad4de08e))) { slice.loadUint(32); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let new_code: Slice = slice1; return { kind: 'OutAction_action_set_code', @@ -7989,7 +7989,7 @@ export function loadLibRef(slice: Slice): LibRef { } if (((slice.remainingBits >= 1) && (slice.preloadUint(1) == 0b1))) { slice.loadUint(1); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let library: Slice = slice1; return { kind: 'LibRef_libref_ref', @@ -8023,7 +8023,7 @@ export function storeLibRef(libRef: LibRef): (builder: Builder) => void { // out_list_node$_ prev:^Cell action:OutAction = OutListNode; export function loadOutListNode(slice: Slice): OutListNode { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let prev: Slice = slice1; let action: OutAction = loadOutAction(slice); return { @@ -8183,12 +8183,12 @@ export function loadShardStateUnsplit(slice: Slice): ShardStateUnsplit { let gen_utime: number = slice.loadUint(32); let gen_lt: number = slice.loadUint(64); let min_ref_mc_seqno: number = slice.loadUint(32); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let out_msg_queue_info: OutMsgQueueInfo = loadOutMsgQueueInfo(slice1); let before_split: number = slice.loadUint(1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let accounts: ShardAccounts = loadShardAccounts(slice2); - let slice3 = slice.loadRef().beginParse(); + let slice3 = slice.loadRef().beginParse(true); let overload_history: number = slice3.loadUint(64); let underload_history: number = slice3.loadUint(64); let total_balance: CurrencyCollection = loadCurrencyCollection(slice3); @@ -8199,7 +8199,7 @@ export function loadShardStateUnsplit(slice: Slice): ShardStateUnsplit { }, slice3); let master_ref: Maybe = loadMaybe(slice3, loadBlkMasterInfo); let custom: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadMcStateExtra(slice1) })); @@ -8278,9 +8278,9 @@ export function storeShardStateUnsplit(shardStateUnsplit: ShardStateUnsplit): (b export function loadShardState(slice: Slice): ShardState { if (((slice.remainingBits >= 32) && (slice.preloadUint(32) == 0x5f327da5))) { slice.loadUint(32); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let left: ShardStateUnsplit = loadShardStateUnsplit(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let right: ShardStateUnsplit = loadShardStateUnsplit(slice2); return { kind: 'ShardState_split_state', @@ -8330,7 +8330,7 @@ shared_lib_descr$00 lib:^Cell publishers:(Hashmap 256 True) export function loadLibDescr(slice: Slice): LibDescr { if (((slice.remainingBits >= 2) && (slice.preloadUint(2) == 0b00))) { slice.loadUint(2); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let lib: Slice = slice1; let publishers: Hashmap = loadHashmap(slice, 256, loadTrue); return { @@ -8402,14 +8402,14 @@ export function loadBlockInfo(slice: Slice): BlockInfo { let prev_key_block_seqno: number = slice.loadUint(32); let gen_software: GlobalVersion | undefined = ((flags & (1 << 0)) ? loadGlobalVersion(slice) : undefined); let master_ref: BlkMasterInfo | undefined = (not_master ? ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadBlkMasterInfo(slice1) })(slice) : undefined); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let prev_ref: BlkPrevInfo = loadBlkPrevInfo(slice1, after_merge); let prev_vert_ref: BlkPrevInfo | undefined = (vert_seqno_incr ? ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadBlkPrevInfo(slice1, 0) })(slice) : undefined); @@ -8517,9 +8517,9 @@ export function loadBlkPrevInfo(slice: Slice, arg0: number): BlkPrevInfo { } if ((arg0 == 1)) { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let prev1: ExtBlkRef = loadExtBlkRef(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let prev2: ExtBlkRef = loadExtBlkRef(slice2); return { kind: 'BlkPrevInfo_prev_blks_info', @@ -8563,13 +8563,13 @@ export function loadBlock(slice: Slice): Block { if (((slice.remainingBits >= 32) && (slice.preloadUint(32) == 0x11ef55aa))) { slice.loadUint(32); let global_id: number = slice.loadInt(32); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let info: BlockInfo = loadBlockInfo(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let value_flow: ValueFlow = loadValueFlow(slice2); let cell3 = slice.loadRef(); let state_update = cell3; - let slice4 = slice.loadRef().beginParse(); + let slice4 = slice.loadRef().beginParse(true); let extra: BlockExtra = loadBlockExtra(slice4); return { kind: 'Block', @@ -8614,16 +8614,16 @@ block_extra in_msg_descr:^InMsgDescr export function loadBlockExtra(slice: Slice): BlockExtra { if (((slice.remainingBits >= 32) && (slice.preloadUint(32) == 0x4a33f6fd))) { slice.loadUint(32); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let in_msg_descr: InMsgDescr = loadInMsgDescr(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let out_msg_descr: OutMsgDescr = loadOutMsgDescr(slice2); - let slice3 = slice.loadRef().beginParse(); + let slice3 = slice.loadRef().beginParse(true); let account_blocks: ShardAccountBlocks = loadShardAccountBlocks(slice3); let rand_seed: BitString = slice.loadBits(256); let created_by: BitString = slice.loadBits(256); let custom: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadMcBlockExtra(slice1) })); @@ -8700,13 +8700,13 @@ value_flow_v2#3ebf98b7 ^[ from_prev_blk:CurrencyCollection export function loadValueFlow(slice: Slice): ValueFlow { if (((slice.remainingBits >= 32) && (slice.preloadUint(32) == 0xb8e48dfb))) { slice.loadUint(32); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let from_prev_blk: CurrencyCollection = loadCurrencyCollection(slice1); let to_next_blk: CurrencyCollection = loadCurrencyCollection(slice1); let imported: CurrencyCollection = loadCurrencyCollection(slice1); let exported: CurrencyCollection = loadCurrencyCollection(slice1); let fees_collected: CurrencyCollection = loadCurrencyCollection(slice); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let fees_imported: CurrencyCollection = loadCurrencyCollection(slice2); let recovered: CurrencyCollection = loadCurrencyCollection(slice2); let created: CurrencyCollection = loadCurrencyCollection(slice2); @@ -8727,14 +8727,14 @@ export function loadValueFlow(slice: Slice): ValueFlow { } if (((slice.remainingBits >= 32) && (slice.preloadUint(32) == 0x3ebf98b7))) { slice.loadUint(32); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let from_prev_blk: CurrencyCollection = loadCurrencyCollection(slice1); let to_next_blk: CurrencyCollection = loadCurrencyCollection(slice1); let imported: CurrencyCollection = loadCurrencyCollection(slice1); let exported: CurrencyCollection = loadCurrencyCollection(slice1); let fees_collected: CurrencyCollection = loadCurrencyCollection(slice); let burned: CurrencyCollection = loadCurrencyCollection(slice); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let fees_imported: CurrencyCollection = loadCurrencyCollection(slice2); let recovered: CurrencyCollection = loadCurrencyCollection(slice2); let created: CurrencyCollection = loadCurrencyCollection(slice2); @@ -8819,9 +8819,9 @@ export function loadBinTree(slice: Slice, loadX: (slice: Slice) => X): BinTre } if (((slice.remainingBits >= 1) && (slice.preloadUint(1) == 0b1))) { slice.loadUint(1); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let left: BinTree = loadBinTree(slice1, loadX); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let right: BinTree = loadBinTree(slice2, loadX); return { kind: 'BinTree_bt_fork', @@ -9017,7 +9017,7 @@ export function loadShardDescr(slice: Slice): ShardDescr { let min_ref_mc_seqno: number = slice.loadUint(32); let gen_utime: number = slice.loadUint(32); let split_merge_at: FutureSplitMerge = loadFutureSplitMerge(slice); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let fees_collected: CurrencyCollection = loadCurrencyCollection(slice1); let funds_created: CurrencyCollection = loadCurrencyCollection(slice1); if ((!(flags == 0))) { @@ -9118,7 +9118,7 @@ export function loadShardHashes(slice: Slice): ShardHashes { let anon0: Dictionary> = Dictionary.load(Dictionary.Keys.Uint(32), { serialize: () => { throw new Error('Not implemented') }, parse: ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadBinTree(slice1, loadShardDescr) }), @@ -9171,9 +9171,9 @@ export function loadBinTreeAug(slice: Slice, loadX: (slice: Slice) => X, l } if (((slice.remainingBits >= 1) && (slice.preloadUint(1) == 0b1))) { slice.loadUint(1); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let left: BinTreeAug = loadBinTreeAug(slice1, loadX, loadY); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let right: BinTreeAug = loadBinTreeAug(slice2, loadX, loadY); let extra: Y = loadY(slice); return { @@ -9283,9 +9283,9 @@ _ config_addr:bits256 config:^(Hashmap 32 ^Cell) export function loadConfigParams(slice: Slice): ConfigParams { let config_addr: BitString = slice.loadBits(256); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let config: Hashmap = loadHashmap(slice1, 32, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return slice1 })); @@ -9605,7 +9605,7 @@ export function loadMcStateExtra(slice: Slice): McStateExtra { slice.loadUint(16); let shard_hashes: ShardHashes = loadShardHashes(slice); let config: ConfigParams = loadConfigParams(slice); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let flags: number = slice1.loadUint(16); let validator_info: ValidatorInfo = loadValidatorInfo(slice1); let prev_blocks: OldMcBlocksInfo = loadOldMcBlocksInfo(slice1); @@ -9709,7 +9709,7 @@ chained_signature#f signed_cert:^SignedCertificate temp_key_signature:CryptoSign export function loadCryptoSignature(slice: Slice): CryptoSignature { if (((slice.remainingBits >= 4) && (slice.preloadUint(4) == 0xf))) { slice.loadUint(4); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let signed_cert: SignedCertificate = loadSignedCertificate(slice1); let temp_key_signature: CryptoSignatureSimple = loadCryptoSignatureSimple(slice); return { @@ -9865,18 +9865,18 @@ export function loadMcBlockExtra(slice: Slice): McBlockExtra { let key_block: number = slice.loadUint(1); let shard_hashes: ShardHashes = loadShardHashes(slice); let shard_fees: ShardFees = loadShardFees(slice); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let prev_blk_signatures: Dictionary = Dictionary.load(Dictionary.Keys.Uint(16), { serialize: () => { throw new Error('Not implemented') }, parse: loadCryptoSignaturePair, }, slice1); let recover_create_msg: Maybe = loadMaybe(slice1, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadInMsg(slice1) })); let mint_msg: Maybe = loadMaybe(slice1, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadInMsg(slice1) })); @@ -11034,9 +11034,9 @@ export function storeConfigProposalSetup(configProposalSetup: ConfigProposalSetu export function loadConfigVotingSetup(slice: Slice): ConfigVotingSetup { if (((slice.remainingBits >= 8) && (slice.preloadUint(8) == 0x91))) { slice.loadUint(8); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let normal_params: ConfigProposalSetup = loadConfigProposalSetup(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let critical_params: ConfigProposalSetup = loadConfigProposalSetup(slice2); return { kind: 'ConfigVotingSetup', @@ -11071,7 +11071,7 @@ export function loadConfigProposal(slice: Slice): ConfigProposal { slice.loadUint(8); let param_id: number = slice.loadInt(32); let param_value: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return slice1 })); @@ -11123,7 +11123,7 @@ export function loadConfigProposalStatus(slice: Slice): ConfigProposalStatus { if (((slice.remainingBits >= 8) && (slice.preloadUint(8) == 0xce))) { slice.loadUint(8); let expires: number = slice.loadUint(32); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let proposal: ConfigProposal = loadConfigProposal(slice1); let is_critical: boolean = slice.loadBoolean(); let voters: Dictionary = Dictionary.load(Dictionary.Keys.Uint(16), { @@ -12157,7 +12157,7 @@ export function storeValidatorTempKey(validatorTempKey: ValidatorTempKey): (buil export function loadValidatorSignedTempKey(slice: Slice): ValidatorSignedTempKey { if (((slice.remainingBits >= 4) && (slice.preloadUint(4) == 0x4))) { slice.loadUint(4); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let key: ValidatorTempKey = loadValidatorTempKey(slice1); let signature: CryptoSignature = loadCryptoSignature(slice); return { @@ -12488,7 +12488,7 @@ export function loadJettonBridgeParams(slice: Slice): JettonBridgeParams { }), }, slice); let state_flags: number = slice.loadUint(8); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let prices: JettonBridgePrices = loadJettonBridgePrices(slice1); let external_chain_address: BitString = slice.loadBits(256); return { @@ -12621,10 +12621,10 @@ export function loadBlockProof(slice: Slice): BlockProof { if (((slice.remainingBits >= 8) && (slice.preloadUint(8) == 0xc3))) { slice.loadUint(8); let proof_for: BlockIdExt = loadBlockIdExt(slice); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let root: Slice = slice1; let signatures: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadBlockSignatures(slice1) })); @@ -12671,10 +12671,10 @@ export function loadProofChain(slice: Slice, arg0: number): ProofChain { } if (true) { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let root: Slice = slice1; let prev: ProofChain | undefined = ((arg0 - 1) ? ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadProofChain(slice1, (arg0 - 1)) })(slice) : undefined); @@ -12722,7 +12722,7 @@ export function loadTopBlockDescr(slice: Slice): TopBlockDescr { slice.loadUint(8); let proof_for: BlockIdExt = loadBlockIdExt(slice); let signatures: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadBlockSignatures(slice1) })); @@ -12779,7 +12779,7 @@ export function loadTopBlockDescrSet(slice: Slice): TopBlockDescrSet { let collection: Dictionary = Dictionary.load(Dictionary.Keys.BigUint(96), { serialize: () => { throw new Error('Not implemented') }, parse: ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadTopBlockDescr(slice1) }), @@ -12824,9 +12824,9 @@ export function loadProducerInfo(slice: Slice): ProducerInfo { slice.loadUint(8); let utime: number = slice.loadUint(32); let mc_blk_ref: ExtBlkRef = loadExtBlkRef(slice); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let state_proof: MERKLE_PROOF = loadMERKLE_PROOF(slice1, loadBlock); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let prod_proof: MERKLE_PROOF = loadMERKLE_PROOF(slice2, loadShardState); return { kind: 'ProducerInfo', @@ -12863,7 +12863,7 @@ export function loadComplaintDescr(slice: Slice): ComplaintDescr { if (((slice.remainingBits >= 32) && (slice.preloadUint(32) == 0x450e8bd9))) { slice.loadUint(32); let from_utime: number = slice.loadUint(32); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let prod_info: ProducerInfo = loadProducerInfo(slice1); return { kind: 'ComplaintDescr_no_blk_gen', @@ -12874,9 +12874,9 @@ export function loadComplaintDescr(slice: Slice): ComplaintDescr { } if (((slice.remainingBits >= 32) && (slice.preloadUint(32) == 0x4737b0ca))) { slice.loadUint(32); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let prod_info_old: ProducerInfo = loadProducerInfo(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let prod_info_new: ProducerInfo = loadProducerInfo(slice2); return { kind: 'ComplaintDescr_no_blk_gen_diff', @@ -12920,7 +12920,7 @@ export function loadValidatorComplaint(slice: Slice): ValidatorComplaint { if (((slice.remainingBits >= 8) && (slice.preloadUint(8) == 0xbc))) { slice.loadUint(8); let validator_pubkey: BitString = slice.loadBits(256); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let description: ComplaintDescr = loadComplaintDescr(slice1); let created_at: number = slice.loadUint(32); let severity: number = slice.loadUint(8); @@ -12966,7 +12966,7 @@ export function storeValidatorComplaint(validatorComplaint: ValidatorComplaint): export function loadValidatorComplaintStatus(slice: Slice): ValidatorComplaintStatus { if (((slice.remainingBits >= 8) && (slice.preloadUint(8) == 0x2d))) { slice.loadUint(8); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let complaint: ValidatorComplaint = loadValidatorComplaint(slice1); let voters: Dictionary = Dictionary.load(Dictionary.Keys.Uint(16), { serialize: () => { throw new Error('Not implemented') }, @@ -13057,7 +13057,7 @@ export function loadVmStackValue(slice: Slice): VmStackValue { } if (((slice.remainingBits >= 8) && (slice.preloadUint(8) == 0x03))) { slice.loadUint(8); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let _cell: Slice = slice1; return { kind: 'VmStackValue_vm_stk_cell', @@ -13076,7 +13076,7 @@ export function loadVmStackValue(slice: Slice): VmStackValue { } if (((slice.remainingBits >= 8) && (slice.preloadUint(8) == 0x05))) { slice.loadUint(8); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let _cell: Slice = slice1; return { kind: 'VmStackValue_vm_stk_builder', @@ -13183,7 +13183,7 @@ _ cell:^Cell st_bits:(## 10) end_bits:(## 10) { st_bits <= end_bits } */ export function loadVmCellSlice(slice: Slice): VmCellSlice { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let _cell: Slice = slice1; let st_bits: number = slice.loadUint(10); let end_bits: number = slice.loadUint(10); @@ -13239,7 +13239,7 @@ export function loadVmTupleRef(slice: Slice, arg0: number): VmTupleRef { } if ((arg0 == 1)) { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let entry: VmStackValue = loadVmStackValue(slice1); return { kind: 'VmTupleRef_vm_tupref_single', @@ -13248,7 +13248,7 @@ export function loadVmTupleRef(slice: Slice, arg0: number): VmTupleRef { } if (true) { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let ref: VmTuple = loadVmTuple(slice1, ((arg0 - 2) + 2)); return { kind: 'VmTupleRef_vm_tupref_any', @@ -13298,7 +13298,7 @@ export function loadVmTuple(slice: Slice, arg0: number): VmTuple { } if (true) { let head: VmTupleRef = loadVmTupleRef(slice, (arg0 - 1)); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let tail: VmStackValue = loadVmStackValue(slice1); return { kind: 'VmTuple_vm_tuple_tcons', @@ -13362,7 +13362,7 @@ export function loadVmStackList(slice: Slice, arg0: number): VmStackList { } if (true) { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let rest: VmStackList = loadVmStackList(slice1, (arg0 - 1)); let tos: VmStackValue = loadVmStackValue(slice); return { @@ -13427,7 +13427,7 @@ gas_limits#_ remaining:int64 _:^[ max_limit:int64 cur_limit:int64 credit:int64 ] export function loadVmGasLimits(slice: Slice): VmGasLimits { let remaining: number = slice.loadInt(64); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let max_limit: number = slice1.loadInt(64); let cur_limit: number = slice1.loadInt(64); let credit: number = slice1.loadInt(64); @@ -13459,7 +13459,7 @@ export function loadVmLibraries(slice: Slice): VmLibraries { let libraries: Dictionary = Dictionary.load(Dictionary.Keys.BigUint(256), { serialize: () => { throw new Error('Not implemented') }, parse: ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return slice1 }), @@ -13578,7 +13578,7 @@ export function loadVmCont(slice: Slice): VmCont { if (((slice.remainingBits >= 2) && (slice.preloadUint(2) == 0b01))) { slice.loadUint(2); let cdata: VmControlData = loadVmControlData(slice); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let next: VmCont = loadVmCont(slice1); return { kind: 'VmCont_vmc_envelope', @@ -13606,9 +13606,9 @@ export function loadVmCont(slice: Slice): VmCont { if (((slice.remainingBits >= 5) && (slice.preloadUint(5) == 0b10100))) { slice.loadUint(5); let count: number = slice.loadUint(63); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let body: VmCont = loadVmCont(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let after: VmCont = loadVmCont(slice2); return { kind: 'VmCont_vmc_repeat', @@ -13620,9 +13620,9 @@ export function loadVmCont(slice: Slice): VmCont { } if (((slice.remainingBits >= 6) && (slice.preloadUint(6) == 0b110000))) { slice.loadUint(6); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let body: VmCont = loadVmCont(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let after: VmCont = loadVmCont(slice2); return { kind: 'VmCont_vmc_until', @@ -13633,7 +13633,7 @@ export function loadVmCont(slice: Slice): VmCont { } if (((slice.remainingBits >= 6) && (slice.preloadUint(6) == 0b110001))) { slice.loadUint(6); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let body: VmCont = loadVmCont(slice1); return { kind: 'VmCont_vmc_again', @@ -13643,11 +13643,11 @@ export function loadVmCont(slice: Slice): VmCont { } if (((slice.remainingBits >= 6) && (slice.preloadUint(6) == 0b110010))) { slice.loadUint(6); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let cond: VmCont = loadVmCont(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let body: VmCont = loadVmCont(slice2); - let slice3 = slice.loadRef().beginParse(); + let slice3 = slice.loadRef().beginParse(true); let after: VmCont = loadVmCont(slice3); return { kind: 'VmCont_vmc_while_cond', @@ -13659,11 +13659,11 @@ export function loadVmCont(slice: Slice): VmCont { } if (((slice.remainingBits >= 6) && (slice.preloadUint(6) == 0b110011))) { slice.loadUint(6); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let cond: VmCont = loadVmCont(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let body: VmCont = loadVmCont(slice2); - let slice3 = slice.loadRef().beginParse(); + let slice3 = slice.loadRef().beginParse(true); let after: VmCont = loadVmCont(slice3); return { kind: 'VmCont_vmc_while_body', @@ -13676,7 +13676,7 @@ export function loadVmCont(slice: Slice): VmCont { if (((slice.remainingBits >= 4) && (slice.preloadUint(4) == 0b1111))) { slice.loadUint(4); let value: number = slice.loadInt(32); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let next: VmCont = loadVmCont(slice1); return { kind: 'VmCont_vmc_pushint', @@ -13803,7 +13803,7 @@ export function loadDNS_RecordSet(slice: Slice): DNS_RecordSet { let anon0: Dictionary = Dictionary.load(Dictionary.Keys.BigUint(256), { serialize: () => { throw new Error('Not implemented') }, parse: ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadDNSRecord(slice1) }), @@ -13847,7 +13847,7 @@ export function loadTextChunkRef(slice: Slice, arg0: number): TextChunkRef { } if (true) { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let ref: TextChunks = loadTextChunks(slice1, ((arg0 - 1) + 1)); return { kind: 'TextChunkRef_chunk_ref', @@ -14262,9 +14262,9 @@ export function loadChanConfig(slice: Slice): ChanConfig { let close_timeout: number = slice.loadUint(32); let a_key: BitString = slice.loadBits(256); let b_key: BitString = slice.loadBits(256); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let a_addr: Address = slice1.loadAddress(); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let b_addr: Address = slice2.loadAddress(); let channel_id: number = slice.loadUint(64); let min_A_extra: bigint = slice.loadCoins(); @@ -14429,7 +14429,7 @@ export function storeChanPromise(chanPromise: ChanPromise): (builder: Builder) = export function loadChanSignedPromise(slice: Slice): ChanSignedPromise { let sig: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return slice1.loadBits(512) })); @@ -14554,12 +14554,12 @@ export function storeChanMsg(chanMsg: ChanMsg): (builder: Builder) => void { export function loadChanSignedMsg(slice: Slice): ChanSignedMsg { let sig_A: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return slice1.loadBits(512) })); let sig_B: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return slice1.loadBits(512) })); @@ -14624,9 +14624,9 @@ export function storeChanOp(chanOp: ChanOp): (builder: Builder) => void { // chan_data$_ config:^ChanConfig state:^ChanState = ChanData; export function loadChanData(slice: Slice): ChanData { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let config: ChanConfig = loadChanConfig(slice1); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let state: ChanState = loadChanState(slice2); return { kind: 'ChanData', diff --git a/test/generated_files/generated_test.ts b/test/generated_files/generated_test.ts index a3587e6..d850f82 100644 --- a/test/generated_files/generated_test.ts +++ b/test/generated_files/generated_test.ts @@ -1136,7 +1136,7 @@ export function storeComplexTypedField(complexTypedField: ComplexTypedField): (b // a$_ a:^ExprArgUser = CellTypedField; export function loadCellTypedField(slice: Slice): CellTypedField { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let a: ExprArgUser = loadExprArgUser(slice1); return { kind: 'CellTypedField', @@ -1158,16 +1158,16 @@ export function storeCellTypedField(_cellTypedField: CellTypedField): (builder: export function loadCellsSimple(slice: Slice): CellsSimple { let t: number = slice.loadUint(32); - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let q: number = slice1.loadUint(32); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let a: number = slice2.loadUint(32); - let slice21 = slice2.loadRef().beginParse(); + let slice21 = slice2.loadRef().beginParse(true); let e: number = slice21.loadUint(32); - let slice22 = slice2.loadRef().beginParse(); + let slice22 = slice2.loadRef().beginParse(true); let b: number = slice22.loadUint(32); let d: number = slice22.loadUint(32); - let slice221 = slice22.loadRef().beginParse(); + let slice221 = slice22.loadRef().beginParse(true); let c: number = slice221.loadUint(32); return { kind: 'CellsSimple', @@ -1823,19 +1823,19 @@ export function loadCombArgCellRef(slice: Slice, loadX: (slice: Slice) => X): let info: number = slice.loadInt(32); let init: Maybe> = loadMaybe>(slice, ((slice: Slice) => { return loadEither(slice, loadX, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return slice1.loadInt(22) })) })); let other: Either> = loadEither>(slice, loadX, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadOneComb(slice1, loadX) })); let body: Either = loadEither(slice, loadX, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadX(slice1) })); @@ -1917,7 +1917,7 @@ export function storeCombArgCellRefUser(combArgCellRefUser: CombArgCellRefUser): // a$_ {n:#} ref:^(BitLenArg (n + 2)) = MathExprAsCombArg (n + 2); export function loadMathExprAsCombArg(slice: Slice, arg0: number): MathExprAsCombArg { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let ref: BitLenArg = loadBitLenArg(slice1, ((arg0 - 2) + 2)); return { kind: 'MathExprAsCombArg', @@ -2087,9 +2087,9 @@ export function loadHashmapNode(slice: Slice, arg0: number, loadX: (slice: Sl } if (true) { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let left: Hashmap = loadHashmap(slice1, (arg0 - 1), loadX); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let right: Hashmap = loadHashmap(slice2, (arg0 - 1), loadX); return { kind: 'HashmapNode_hmn_fork', @@ -2446,7 +2446,7 @@ export function storeParamNamedArgInSecondConstr(paramNamedArgInSecondConstr: Pa // a$_ msg:^(Maybe Any) = RefCombinatorAny; export function loadRefCombinatorAny(slice: Slice): RefCombinatorAny { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let msg: Maybe = loadMaybe(slice1, ((slice: Slice) => { return slice @@ -2501,7 +2501,7 @@ export function storeEqualityExpression(equalityExpression: EqualityExpression): export function loadConditionalRef(slice: Slice): ConditionalRef { let x: number = slice.loadUint(1); let y: Simple | undefined = (x ? ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadSimple(slice1) })(slice) : undefined); @@ -2708,7 +2708,7 @@ export function storeCheckKeyword(checkKeyword: CheckKeyword): (builder: Builder export function loadRefCombinatorInRefHelper(slice: Slice, loadX: (slice: Slice) => X): RefCombinatorInRefHelper { let t: number = slice.loadUint(32); let y: Maybe = loadMaybe(slice, ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadX(slice1) })); @@ -2739,7 +2739,7 @@ export function storeRefCombinatorInRefHelper(refCombinatorInRefHelper: RefCo // a$_ msg:^(RefCombinatorInRefHelper Any) = RefCombinatorInRef; export function loadRefCombinatorInRef(slice: Slice): RefCombinatorInRef { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let msg: RefCombinatorInRefHelper = loadRefCombinatorInRefHelper(slice1, ((slice: Slice) => { return slice @@ -2971,7 +2971,7 @@ export function loadHashmapTPCell(slice: Slice): HashmapTPCell { let x: Dictionary = Dictionary.load(Dictionary.Keys.BigUint(100), { serialize: () => { throw new Error('Not implemented') }, parse: ((slice: Slice) => { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); return loadTypedParam(slice1) }), @@ -3236,9 +3236,9 @@ export function loadHashmapAugNode(slice: Slice, arg0: number, loadX: (sli } if (true) { - let slice1 = slice.loadRef().beginParse(); + let slice1 = slice.loadRef().beginParse(true); let left: HashmapAug = loadHashmapAug(slice1, (arg0 - 1), loadX, loadY); - let slice2 = slice.loadRef().beginParse(); + let slice2 = slice.loadRef().beginParse(true); let right: HashmapAug = loadHashmapAug(slice2, (arg0 - 1), loadX, loadY); let extra: Y = loadY(slice); return { diff --git a/test/tlbgen.spec.ts b/test/tlbgen.spec.ts index c04afde..bc66014 100644 --- a/test/tlbgen.spec.ts +++ b/test/tlbgen.spec.ts @@ -508,6 +508,8 @@ describe('Generating tlb code', () => { }) test('block tlb tests', () => { + expect.hasAssertions() + const state = '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'; const cs = Cell.fromBase64(state);