@hyperlane-xyz/aleo-sdk 19.11.0
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/README.md +59 -0
- package/dist/artifacts.d.ts +13 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +23 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/clients/base.d.ts +17 -0
- package/dist/clients/base.d.ts.map +1 -0
- package/dist/clients/base.js +66 -0
- package/dist/clients/base.js.map +1 -0
- package/dist/clients/protocol.d.ts +9 -0
- package/dist/clients/protocol.d.ts.map +1 -0
- package/dist/clients/protocol.js +21 -0
- package/dist/clients/protocol.js.map +1 -0
- package/dist/clients/provider.d.ts +65 -0
- package/dist/clients/provider.d.ts.map +1 -0
- package/dist/clients/provider.js +768 -0
- package/dist/clients/provider.js.map +1 -0
- package/dist/clients/signer.d.ts +44 -0
- package/dist/clients/signer.d.ts.map +1 -0
- package/dist/clients/signer.js +473 -0
- package/dist/clients/signer.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/helper.d.ts +25 -0
- package/dist/utils/helper.d.ts.map +1 -0
- package/dist/utils/helper.js +159 -0
- package/dist/utils/helper.js.map +1 -0
- package/dist/utils/types.d.ts +24 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +21 -0
- package/dist/utils/types.js.map +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const credits = "program credits.aleo;\n\nmapping committee:\n key as address.public;\n value as committee_state.public;\n\nstruct committee_state:\n is_open as boolean;\n commission as u8;\n\nmapping delegated:\n key as address.public;\n value as u64.public;\n\nmapping metadata:\n key as address.public;\n value as u32.public;\n\nmapping bonded:\n key as address.public;\n value as bond_state.public;\n\nstruct bond_state:\n validator as address;\n microcredits as u64;\n\nmapping unbonding:\n key as address.public;\n value as unbond_state.public;\n\nstruct unbond_state:\n microcredits as u64;\n height as u32;\n\nmapping account:\n key as address.public;\n value as u64.public;\n\nmapping withdraw:\n key as address.public;\n value as address.public;\n\nmapping pool:\n key as address.public;\n value as u64.public;\n\nrecord credits:\n owner as address.private;\n microcredits as u64.private;\n\nfunction bond_validator:\n input r0 as address.public;\n input r1 as u64.public;\n input r2 as u8.public;\n assert.neq self.signer r0;\n gte r1 1000000u64 into r3;\n assert.eq r3 true;\n gt r2 100u8 into r4;\n assert.neq r4 true;\n async bond_validator self.signer r0 r1 r2 into r5;\n output r5 as credits.aleo/bond_validator.future;\n\nfinalize bond_validator:\n input r0 as address.public;\n input r1 as address.public;\n input r2 as u64.public;\n input r3 as u8.public;\n get.or_use withdraw[r0] r1 into r4;\n assert.eq r1 r4;\n cast true r3 into r5 as committee_state;\n get.or_use committee[r0] r5 into r6;\n assert.eq r3 r6.commission;\n cast r0 0u64 into r7 as bond_state;\n get.or_use bonded[r0] r7 into r8;\n assert.eq r8.validator r0;\n add r8.microcredits r2 into r9;\n cast r0 r9 into r10 as bond_state;\n get.or_use delegated[r0] 0u64 into r11;\n add r2 r11 into r12;\n gte r12 10000000000000u64 into r13;\n assert.eq r13 true;\n get account[r0] into r14;\n sub r14 r2 into r15;\n contains committee[r0] into r16;\n branch.eq r16 true to validator_in_committee;\n set r4 into withdraw[r0];\n gte r2 100000000u64 into r17;\n assert.eq r17 true;\n get.or_use metadata[aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc] 0u32 into r18;\n add r18 1u32 into r19;\n set r19 into metadata[aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc];\n contains unbonding[r0] into r20;\n assert.eq r20 false;\n position validator_in_committee;\n set r6 into committee[r0];\n set r12 into delegated[r0];\n set r10 into bonded[r0];\n set r15 into account[r0];\n\nfunction bond_public:\n input r0 as address.public;\n input r1 as address.public;\n input r2 as u64.public;\n gte r2 1000000u64 into r3;\n assert.eq r3 true;\n assert.neq self.caller r0;\n async bond_public self.caller r0 r1 r2 into r4;\n output r4 as credits.aleo/bond_public.future;\n\nfinalize bond_public:\n input r0 as address.public;\n input r1 as address.public;\n input r2 as address.public;\n input r3 as u64.public;\n get.or_use withdraw[r0] r2 into r4;\n assert.eq r2 r4;\n contains bonded[r0] into r5;\n branch.eq r5 true to continue_bond_delegator;\n set r2 into withdraw[r0];\n cast true 0u8 into r6 as committee_state;\n get.or_use committee[r1] r6 into r7;\n assert.eq r7.is_open true;\n get.or_use metadata[aleo1qgqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqanmpl0] 0u32 into r8;\n add r8 1u32 into r9;\n lte r9 100000u32 into r10;\n assert.eq r10 true;\n set r9 into metadata[aleo1qgqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqanmpl0];\n position continue_bond_delegator;\n cast r1 0u64 into r11 as bond_state;\n get.or_use bonded[r0] r11 into r12;\n assert.eq r12.validator r1;\n add r12.microcredits r3 into r13;\n gte r13 10000000000u64 into r14;\n assert.eq r14 true;\n cast r1 r13 into r15 as bond_state;\n get account[r0] into r16;\n sub r16 r3 into r17;\n get.or_use delegated[r1] 0u64 into r18;\n add r3 r18 into r19;\n contains unbonding[r1] into r20;\n assert.eq r20 false;\n set r15 into bonded[r0];\n set r17 into account[r0];\n set r19 into delegated[r1];\n\nfunction unbond_public:\n input r0 as address.public;\n input r1 as u64.public;\n async unbond_public self.caller r0 r1 into r2;\n output r2 as credits.aleo/unbond_public.future;\n\nfinalize unbond_public:\n input r0 as address.public;\n input r1 as address.public;\n input r2 as u64.public;\n add block.height 360u32 into r3;\n cast 0u64 r3 into r4 as unbond_state;\n get bonded[r1] into r5;\n get withdraw[r1] into r6;\n is.eq r0 r6 into r7;\n contains withdraw[r5.validator] into r8;\n get.or_use withdraw[r5.validator] aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc into r9;\n is.eq r0 r9 into r10;\n and r8 r10 into r11;\n or r7 r11 into r12;\n assert.eq r12 true;\n is.eq r5.validator r1 into r13;\n branch.eq r13 true to unbond_validator;\n get.or_use unbonding[r1] r4 into r14;\n get delegated[r5.validator] into r15;\n sub r5.microcredits r2 into r16;\n lt r16 10000000000u64 into r17;\n or r11 r17 into r18;\n ternary r18 r5.microcredits r2 into r19;\n add r14.microcredits r19 into r20;\n cast r20 r3 into r21 as unbond_state;\n set r21 into unbonding[r1];\n sub r15 r19 into r22;\n set r22 into delegated[r5.validator];\n branch.eq r18 true to remove_delegator;\n cast r5.validator r16 into r23 as bond_state;\n set r23 into bonded[r1];\n branch.eq true true to end_unbond_delegator;\n position remove_delegator;\n remove bonded[r1];\n get metadata[aleo1qgqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqanmpl0] into r24;\n sub r24 1u32 into r25;\n set r25 into metadata[aleo1qgqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqanmpl0];\n position end_unbond_delegator;\n gte r22 10000000000000u64 into r26;\n branch.eq r26 true to end;\n position unbond_validator;\n contains committee[r5.validator] into r27;\n nor r13 r27 into r28;\n branch.eq r28 true to end;\n get committee[r5.validator] into r29;\n get bonded[r5.validator] into r30;\n get delegated[r5.validator] into r31;\n lt r31 10000000000000u64 into r32;\n branch.eq r32 true to remove_validator;\n sub r31 r2 into r33;\n sub r30.microcredits r2 into r34;\n gte r34 100000000u64 into r35;\n gte r33 10000000000000u64 into r36;\n and r35 r36 into r37;\n branch.eq r37 false to remove_validator;\n get.or_use unbonding[r5.validator] r4 into r38;\n add r38.microcredits r2 into r39;\n cast r39 r3 into r40 as unbond_state;\n set r40 into unbonding[r5.validator];\n set r33 into delegated[r5.validator];\n cast r5.validator r34 into r41 as bond_state;\n set r41 into bonded[r5.validator];\n branch.eq true true to end;\n position remove_validator;\n remove committee[r5.validator];\n get metadata[aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc] into r42;\n sub r42 1u32 into r43;\n set r43 into metadata[aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc];\n sub r31 r30.microcredits into r44;\n set r44 into delegated[r5.validator];\n remove bonded[r5.validator];\n get.or_use unbonding[r5.validator] r4 into r45;\n add r30.microcredits r45.microcredits into r46;\n cast r46 r3 into r47 as unbond_state;\n set r47 into unbonding[r5.validator];\n position end;\n\nfunction claim_unbond_public:\n input r0 as address.public;\n async claim_unbond_public r0 into r1;\n output r1 as credits.aleo/claim_unbond_public.future;\n\nfinalize claim_unbond_public:\n input r0 as address.public;\n get unbonding[r0] into r1;\n gte block.height r1.height into r2;\n assert.eq r2 true;\n get withdraw[r0] into r3;\n get.or_use account[r3] 0u64 into r4;\n add r1.microcredits r4 into r5;\n set r5 into account[r3];\n remove unbonding[r0];\n contains bonded[r0] into r6;\n branch.eq r6 true to end;\n remove withdraw[r0];\n position end;\n\nfunction set_validator_state:\n input r0 as boolean.public;\n async set_validator_state self.caller r0 into r1;\n output r1 as credits.aleo/set_validator_state.future;\n\nfinalize set_validator_state:\n input r0 as address.public;\n input r1 as boolean.public;\n get committee[r0] into r2;\n cast r1 r2.commission into r3 as committee_state;\n set r3 into committee[r0];\n\nfunction transfer_public:\n input r0 as address.public;\n input r1 as u64.public;\n async transfer_public self.caller r0 r1 into r2;\n output r2 as credits.aleo/transfer_public.future;\n\nfinalize transfer_public:\n input r0 as address.public;\n input r1 as address.public;\n input r2 as u64.public;\n get account[r0] into r3;\n sub r3 r2 into r4;\n set r4 into account[r0];\n get.or_use account[r1] 0u64 into r5;\n add r5 r2 into r6;\n set r6 into account[r1];\n\nfunction transfer_public_as_signer:\n input r0 as address.public;\n input r1 as u64.public;\n async transfer_public_as_signer self.signer r0 r1 into r2;\n output r2 as credits.aleo/transfer_public_as_signer.future;\n\nfinalize transfer_public_as_signer:\n input r0 as address.public;\n input r1 as address.public;\n input r2 as u64.public;\n get account[r0] into r3;\n sub r3 r2 into r4;\n set r4 into account[r0];\n get.or_use account[r1] 0u64 into r5;\n add r5 r2 into r6;\n set r6 into account[r1];\n\nfunction transfer_private:\n input r0 as credits.record;\n input r1 as address.private;\n input r2 as u64.private;\n sub r0.microcredits r2 into r3;\n cast r1 r2 into r4 as credits.record;\n cast r0.owner r3 into r5 as credits.record;\n output r4 as credits.record;\n output r5 as credits.record;\n\nfunction transfer_private_to_public:\n input r0 as credits.record;\n input r1 as address.public;\n input r2 as u64.public;\n sub r0.microcredits r2 into r3;\n cast r0.owner r3 into r4 as credits.record;\n async transfer_private_to_public r1 r2 into r5;\n output r4 as credits.record;\n output r5 as credits.aleo/transfer_private_to_public.future;\n\nfinalize transfer_private_to_public:\n input r0 as address.public;\n input r1 as u64.public;\n get.or_use account[r0] 0u64 into r2;\n add r1 r2 into r3;\n set r3 into account[r0];\n\nfunction transfer_public_to_private:\n input r0 as address.private;\n input r1 as u64.public;\n cast r0 r1 into r2 as credits.record;\n async transfer_public_to_private self.caller r1 into r3;\n output r2 as credits.record;\n output r3 as credits.aleo/transfer_public_to_private.future;\n\nfinalize transfer_public_to_private:\n input r0 as address.public;\n input r1 as u64.public;\n get account[r0] into r2;\n sub r2 r1 into r3;\n set r3 into account[r0];\n\nfunction join:\n input r0 as credits.record;\n input r1 as credits.record;\n add r0.microcredits r1.microcredits into r2;\n cast r0.owner r2 into r3 as credits.record;\n output r3 as credits.record;\n\nfunction split:\n input r0 as credits.record;\n input r1 as u64.private;\n sub r0.microcredits r1 into r2;\n sub r2 10000u64 into r3;\n cast r0.owner r1 into r4 as credits.record;\n cast r0.owner r3 into r5 as credits.record;\n output r4 as credits.record;\n output r5 as credits.record;\n\nfunction fee_private:\n input r0 as credits.record;\n input r1 as u64.public;\n input r2 as u64.public;\n input r3 as field.public;\n assert.neq r1 0u64;\n assert.neq r3 0field;\n add r1 r2 into r4;\n sub r0.microcredits r4 into r5;\n cast r0.owner r5 into r6 as credits.record;\n output r6 as credits.record;\n\nfunction fee_public:\n input r0 as u64.public;\n input r1 as u64.public;\n input r2 as field.public;\n assert.neq r0 0u64;\n assert.neq r2 0field;\n add r0 r1 into r3;\n async fee_public self.signer r3 into r4;\n output r4 as credits.aleo/fee_public.future;\n\nfinalize fee_public:\n input r0 as address.public;\n input r1 as u64.public;\n get account[r0] into r2;\n sub r2 r1 into r3;\n set r3 into account[r0];\n\nfunction upgrade:\n input r0 as credits.record;\n lte r0.microcredits 1000000000000u64 into r1;\n assert.eq r1 true;\n cast r0.owner r0.microcredits into r2 as credits.record;\n async upgrade r0.microcredits into r3;\n output r2 as credits.record;\n output r3 as credits.aleo/upgrade.future;\n\nfinalize upgrade:\n input r0 as u64.public;\n get.or_use pool[aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc] 0u64 into r1;\n add r1 r0 into r2;\n lte r2 4000000000000u64 into r3;\n assert.eq r3 true;\n set r2 into pool[aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc];\n";
|
|
2
|
+
export declare const dispatch_proxy = "import credits.aleo;\nimport ism_manager.aleo;\nimport mailbox.aleo;\nimport hook_manager.aleo;\nprogram dispatch_proxy.aleo;\n\nstruct MailboxState:\n default_hook as address;\n required_hook as address;\n\nstruct Message:\n version as u8;\n nonce as u32;\n origin_domain as u32;\n sender as [u8; 32u32];\n destination_domain as u32;\n recipient as [u8; 32u32];\n body as [u128; 16u32];\n\nstruct EthAddress:\n bytes as [u8; 20u32];\n\nstruct Mailbox:\n local_domain as u32;\n nonce as u32;\n process_count as u32;\n default_ism as address;\n default_hook as address;\n required_hook as address;\n dispatch_proxy as address;\n mailbox_owner as address;\n\nstruct CreditAllowance:\n spender as address;\n amount as u64;\n\nstruct HookMetadata:\n gas_limit as u128;\n extra_data as [u8; 64u32];\n\nstruct Tree:\n branch as [[u128; 2u32]; 32u32];\n count as u32;\n\nstruct DomainGasConfig:\n gas_overhead as u128;\n exchange_rate as u128;\n gas_price as u128;\n\nfunction get_address:\n output dispatch_proxy.aleo as address.private;\n\nfunction dispatch:\n input r0 as MailboxState.public;\n input r1 as u32.public;\n input r2 as [u8; 32u32].public;\n input r3 as [u128; 16u32].public;\n input r4 as address.public;\n input r5 as HookMetadata.public;\n input r6 as [CreditAllowance; 4u32].public;\n assert.neq r0.default_hook aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc;\n assert.neq r0.required_hook aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc;\n is.eq r4 aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc into r7;\n ternary r7 r0.default_hook r4 into r8;\n call mailbox.aleo/dispatch r1 r2 r3 self.caller into r9;\n call hook_manager.aleo/post_dispatch r8 r5 r6 into r10;\n call hook_manager.aleo/post_dispatch r0.required_hook r5 r6 into r11;\n async dispatch r0 r9 r10 r11 into r12;\n output r12 as dispatch_proxy.aleo/dispatch.future;\n\nfinalize dispatch:\n input r0 as MailboxState.public;\n input r1 as mailbox.aleo/dispatch.future;\n input r2 as hook_manager.aleo/post_dispatch.future;\n input r3 as hook_manager.aleo/post_dispatch.future;\n get mailbox.aleo/mailbox[true] into r4;\n assert.eq r4.default_hook r0.default_hook;\n assert.eq r4.required_hook r0.required_hook;\n await r1;\n await r2;\n await r3;\n\nconstructor:\n assert.eq edition 0u16;\n";
|
|
3
|
+
export declare const hook_manager = "import credits.aleo;\nimport ism_manager.aleo;\nimport mailbox.aleo;\nprogram hook_manager.aleo;\n\nstruct Message:\n version as u8;\n nonce as u32;\n origin_domain as u32;\n sender as [u8; 32u32];\n destination_domain as u32;\n recipient as [u8; 32u32];\n body as [u128; 16u32];\n\nstruct CreditAllowance:\n spender as address;\n amount as u64;\n\nstruct HookMetadata:\n gas_limit as u128;\n extra_data as [u8; 64u32];\n\nstruct Tree:\n branch as [[u128; 2u32]; 32u32];\n count as u32;\n\nstruct MerkleTreeHook:\n parent as address;\n root as [u128; 2u32];\n tree as Tree;\n nonce as u32;\n\nstruct InsertedIntoTreeEvent:\n id as [u128; 2u32];\n index as u32;\n\nstruct NoopHook:\n nonce as u32;\n\nstruct InterchainGasPaymaster:\n hook_owner as address;\n nonce as u32;\n balance as u64;\n count as u32;\n\nstruct GasConfigKey:\n igp as address;\n destination as u32;\n\nstruct DomainGasConfig:\n gas_overhead as u128;\n exchange_rate as u128;\n gas_price as u128;\n\nstruct GasPaymentEvent:\n id as [u128; 2u32];\n destination_domain as u32;\n gas_amount as u128;\n payment as u64;\n index as u32;\n\nstruct HookIndexKey:\n hook as address;\n index as u32;\n\nstruct EventIndexKey:\n hook as address;\n block_height as u32;\n\nstruct EthAddress:\n bytes as [u8; 20u32];\n\nstruct Mailbox:\n local_domain as u32;\n nonce as u32;\n process_count as u32;\n default_ism as address;\n default_hook as address;\n required_hook as address;\n dispatch_proxy as address;\n mailbox_owner as address;\n\nmapping nonce:\n key as boolean.public;\n value as u32.public;\n\nmapping hooks:\n key as address.public;\n value as u8.public;\n\nmapping hook_addresses:\n key as u32.public;\n value as address.public;\n\nmapping igps:\n key as address.public;\n value as InterchainGasPaymaster.public;\n\nmapping destination_gas_configs:\n key as GasConfigKey.public;\n value as DomainGasConfig.public;\n\nmapping destination_gas_config_iter:\n key as HookIndexKey.public;\n value as GasConfigKey.public;\n\nmapping destination_gas_config_length:\n key as address.public;\n value as u32.public;\n\nmapping merkle_tree_hooks:\n key as address.public;\n value as MerkleTreeHook.public;\n\nmapping gas_payment_events:\n key as HookIndexKey.public;\n value as GasPaymentEvent.public;\n\nmapping inserted_into_tree_events:\n key as HookIndexKey.public;\n value as InsertedIntoTreeEvent.public;\n\nmapping last_event_index:\n key as EventIndexKey.public;\n value as u32.public;\n\nfunction init_noop:\n async init_noop into r0;\n output r0 as hook_manager.aleo/init_noop.future;\n\nfinalize init_noop:\n get.or_use nonce[true] 0u32 into r0;\n cast r0 into r1 as NoopHook;\n hash.bhp256 r1 into r2 as address;\n contains hooks[r2] into r3;\n not r3 into r4;\n assert.eq r4 true;\n set r2 into hook_addresses[r0];\n add r0 1u32 into r5;\n set r5 into nonce[true];\n set 0u8 into hooks[r2];\n\nfunction init_igp:\n async init_igp self.caller into r0;\n output r0 as hook_manager.aleo/init_igp.future;\n\nfinalize init_igp:\n input r0 as address.public;\n get.or_use nonce[true] 0u32 into r1;\n cast r0 r1 0u64 0u32 into r2 as InterchainGasPaymaster;\n hash.bhp256 r2 into r3 as address;\n contains hooks[r3] into r4;\n not r4 into r5;\n assert.eq r5 true;\n set r3 into hook_addresses[r1];\n add r1 1u32 into r6;\n set r6 into nonce[true];\n set 4u8 into hooks[r3];\n set r2 into igps[r3];\n\nfunction set_destination_gas_config:\n input r0 as address.public;\n input r1 as u32.public;\n input r2 as DomainGasConfig.public;\n async set_destination_gas_config r0 r1 r2 self.caller into r3;\n output r3 as hook_manager.aleo/set_destination_gas_config.future;\n\nfinalize set_destination_gas_config:\n input r0 as address.public;\n input r1 as u32.public;\n input r2 as DomainGasConfig.public;\n input r3 as address.public;\n contains igps[r0] into r4;\n assert.eq r4 true;\n get igps[r0] into r5;\n assert.eq r5.hook_owner r3;\n cast r0 r1 into r6 as GasConfigKey;\n contains destination_gas_configs[r6] into r7;\n not r7 into r8;\n branch.eq r8 false to end_then_0_0;\n get.or_use destination_gas_config_length[r0] 0u32 into r9;\n cast r0 r9 into r10 as HookIndexKey;\n set r6 into destination_gas_config_iter[r10];\n add r9 1u32 into r11;\n set r11 into destination_gas_config_length[r0];\n branch.eq true true to end_otherwise_0_1;\n position end_then_0_0;\n position end_otherwise_0_1;\n set r2 into destination_gas_configs[r6];\n\nfunction remove_destination_gas_config:\n input r0 as address.public;\n input r1 as u32.public;\n async remove_destination_gas_config r0 r1 self.caller into r2;\n output r2 as hook_manager.aleo/remove_destination_gas_config.future;\n\nfinalize remove_destination_gas_config:\n input r0 as address.public;\n input r1 as u32.public;\n input r2 as address.public;\n contains igps[r0] into r3;\n assert.eq r3 true;\n get igps[r0] into r4;\n assert.eq r4.hook_owner r2;\n cast r0 r1 into r5 as GasConfigKey;\n remove destination_gas_configs[r5];\n\nfunction claim:\n input r0 as address.private;\n input r1 as u64.private;\n call credits.aleo/transfer_public self.caller r1 into r2;\n async claim r0 self.caller r1 r2 into r3;\n output r3 as hook_manager.aleo/claim.future;\n\nfinalize claim:\n input r0 as address.public;\n input r1 as address.public;\n input r2 as u64.public;\n input r3 as credits.aleo/transfer_public.future;\n contains igps[r0] into r4;\n assert.eq r4 true;\n get igps[r0] into r5;\n assert.eq r5.hook_owner r1;\n gte r5.balance r2 into r6;\n assert.eq r6 true;\n await r3;\n sub r5.balance r2 into r7;\n cast r5.hook_owner r5.nonce r7 r5.count into r8 as InterchainGasPaymaster;\n set r8 into igps[r0];\n\nfunction pay_for_gas:\n input r0 as address.private;\n input r1 as [u128; 2u32].private;\n input r2 as u32.private;\n input r3 as u128.private;\n input r4 as u64.private;\n call credits.aleo/transfer_public_as_signer hook_manager.aleo r4 into r5;\n async pay_for_gas r0 r1 r2 r3 r4 r5 into r6;\n output r6 as hook_manager.aleo/pay_for_gas.future;\n\nfinalize pay_for_gas:\n input r0 as address.public;\n input r1 as [u128; 2u32].public;\n input r2 as u32.public;\n input r3 as u128.public;\n input r4 as u64.public;\n input r5 as credits.aleo/transfer_public_as_signer.future;\n cast r0 r2 into r6 as GasConfigKey;\n contains destination_gas_configs[r6] into r7;\n assert.eq r7 true;\n get destination_gas_configs[r6] into r8;\n mul r3 r8.gas_price into r9;\n mul r9 r8.exchange_rate into r10;\n div r10 10000000000u128 into r11;\n lte r11 18446744073709551615u128 into r12;\n assert.eq r12 true;\n cast r11 into r13 as u64;\n assert.eq r13 r4;\n await r5;\n get igps[r0] into r14;\n cast r0 r14.count into r15 as HookIndexKey;\n cast r1 r2 r3 r4 r14.count into r16 as GasPaymentEvent;\n set r16 into gas_payment_events[r15];\n cast r0 block.height into r17 as EventIndexKey;\n set r14.count into last_event_index[r17];\n add r14.balance r4 into r18;\n add r14.count 1u32 into r19;\n cast r14.hook_owner r14.nonce r18 r19 into r20 as InterchainGasPaymaster;\n set r20 into igps[r0];\n\nfunction transfer_igp_ownership:\n input r0 as address.private;\n input r1 as address.private;\n async transfer_igp_ownership r0 self.caller r1 into r2;\n output r2 as hook_manager.aleo/transfer_igp_ownership.future;\n\nfinalize transfer_igp_ownership:\n input r0 as address.public;\n input r1 as address.public;\n input r2 as address.public;\n contains igps[r0] into r3;\n assert.eq r3 true;\n get igps[r0] into r4;\n assert.eq r4.hook_owner r1;\n cast r2 r4.nonce r4.balance r4.count into r5 as InterchainGasPaymaster;\n set r5 into igps[r0];\n\nfunction init_merkle_tree:\n input r0 as address.private;\n async init_merkle_tree r0 into r1;\n output r1 as hook_manager.aleo/init_merkle_tree.future;\n\nfinalize init_merkle_tree:\n input r0 as address.public;\n get.or_use nonce[true] 0u32 into r1;\n cast 0u128 0u128 into r2 as [u128; 2u32];\n cast 200636014418684474793900124069647889069u128 241087320001230136080519585693436229163u128 into r3 as [u128; 2u32];\n cast 93974531276030024843854739648391266740u128 63871773629875849864439396521971482176u128 into r4 as [u128; 2u32];\n cast 66294067272630431583104841350689447201u128 177756802695730322470865725932422475556u128 into r5 as [u128; 2u32];\n cast 17747458619593854979588589471465572325u128 91154039873745303917061774773470934559u128 into r6 as [u128; 2u32];\n cast 41440521891025744745128838831940743182u128 60894629520669430433793374864326529801u128 into r7 as [u128; 2u32];\n cast 59903522946444936989019680377850199176u128 138372656349779401676123096700574490028u128 into r8 as [u128; 2u32];\n cast 3180262733561280138502805056821254143u128 174708888174609290132996609679840034611u128 into r9 as [u128; 2u32];\n cast 48455171203811811641967620231072081816u128 233066451124647651551022141310218850885u128 into r10 as [u128; 2u32];\n cast 334080689485914854275740245880500189902u128 298184847794429370937316245747346618882u128 into r11 as [u128; 2u32];\n cast 282653557140816677488147447345498217721u128 220339046210024952190566302967731665406u128 into r12 as [u128; 2u32];\n cast 145672768088204442335147548738764583416u128 195359773238112912523174698163665391889u128 into r13 as [u128; 2u32];\n cast 21418297075731751014499913670238572596u128 208490304233564026108050214927462029255u128 into r14 as [u128; 2u32];\n cast 281404733672930043025800266103516225473u128 249742050973351594617409037165098847317u128 into r15 as [u128; 2u32];\n cast 289879148739902069907218623618383439708u128 272153760179965878774948581978868862730u128 into r16 as [u128; 2u32];\n cast 293159551140992943817529578958841871322u128 279338235662809517033392482105447374970u128 into r17 as [u128; 2u32];\n cast 322093384055859711002317835595919209255u128 42000488150413793222910142038008516924u128 into r18 as [u128; 2u32];\n cast 122254499464535460357349615889605317601u128 163409875357997099341612933566874181274u128 into r19 as [u128; 2u32];\n cast 59132542617709958082991564676137889114u128 213307109849065044721731388145721391918u128 into r20 as [u128; 2u32];\n cast 81821347195604723027123097456320473780u128 213231151757453664031032733501577239314u128 into r21 as [u128; 2u32];\n cast 336114429845119848727407931190249152198u128 301360598096960973755532425519001651903u128 into r22 as [u128; 2u32];\n cast 320542506166910886628941017057425965556u128 289604304606881051317113816162407361165u128 into r23 as [u128; 2u32];\n cast 270315001578019215236444169667452771418u128 159359836010757059645879798671718049365u128 into r24 as [u128; 2u32];\n cast 222279943939488608983982977534856788045u128 110191212380795297761298100413926971842u128 into r25 as [u128; 2u32];\n cast 133196525511722763539122868050171643853u128 317818349342580659794271157815744496524u128 into r26 as [u128; 2u32];\n cast 155004929552231825612177418997554921226u128 187928388822560161625857840976354543861u128 into r27 as [u128; 2u32];\n cast 133005247855215888074055167590444355000u128 277185228623223348062409148812927309868u128 into r28 as [u128; 2u32];\n cast 297025694464961376815096585744545123459u128 40897156374938635533147054173498873588u128 into r29 as [u128; 2u32];\n cast 6336040213458809633392154838101667430u128 62367222880804479430297662353502398838u128 into r30 as [u128; 2u32];\n cast 202117996738898010692652600915964103224u128 46042986625269866222220954975551057138u128 into r31 as [u128; 2u32];\n cast 85413120008009180910770793363078390675u128 71567477878241302074513460496530530059u128 into r32 as [u128; 2u32];\n cast 297864792032486788802704391190316402820u128 225086078672275754295496924647458870974u128 into r33 as [u128; 2u32];\n cast r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 r32 r33 into r34 as [[u128; 2u32]; 32u32];\n cast r34 0u32 into r35 as Tree;\n cast 96697620089336775378094670865426525735u128 116761479129358376777137895554163725990u128 into r36 as [u128; 2u32];\n cast r0 r36 r35 r1 into r37 as MerkleTreeHook;\n hash.bhp256 r37 into r38 as address;\n contains hooks[r38] into r39;\n not r39 into r40;\n assert.eq r40 true;\n set r38 into hook_addresses[r1];\n add r1 1u32 into r41;\n set r41 into nonce[true];\n set 3u8 into hooks[r38];\n set r37 into merkle_tree_hooks[r38];\n\nfunction post_dispatch:\n input r0 as address.public;\n input r1 as HookMetadata.public;\n input r2 as [CreditAllowance; 4u32].public;\n is.eq r2[0u32].spender r0 into r3;\n ternary r3 r2[0u32].amount 0u64 into r4;\n is.eq r2[1u32].spender r0 into r5;\n ternary r5 r2[1u32].amount r4 into r6;\n is.eq r2[2u32].spender r0 into r7;\n ternary r7 r2[2u32].amount r6 into r8;\n is.eq r2[3u32].spender r0 into r9;\n ternary r9 r2[3u32].amount r8 into r10;\n call credits.aleo/transfer_public_as_signer hook_manager.aleo r10 into r11;\n async post_dispatch r0 r1 self.caller r10 r11 into r12;\n output r12 as hook_manager.aleo/post_dispatch.future;\n\nfinalize post_dispatch:\n input r0 as address.public;\n input r1 as HookMetadata.public;\n input r2 as address.public;\n input r3 as u64.public;\n input r4 as credits.aleo/transfer_public_as_signer.future;\n contains hooks[r0] into r5;\n assert.eq r5 true;\n get hooks[r0] into r6;\n await r4;\n get mailbox.aleo/mailbox[true] into r7;\n gt r7.nonce 0u32 into r8;\n assert.eq r8 true;\n sub r7.nonce 1u32 into r9;\n get mailbox.aleo/dispatch_events[r9] into r10;\n sub r7.nonce 1u32 into r11;\n get mailbox.aleo/dispatch_id_events[r11] into r12;\n cast r0 block.height into r13 as EventIndexKey;\n is.eq r6 3u8 into r14;\n branch.eq r14 false to end_then_0_2;\n get merkle_tree_hooks[r0] into r15;\n assert.eq r15.parent r2;\n lt r15.tree.count 4294967295u32 into r16;\n assert.eq r16 true;\n add r15.tree.count 1u32 into r17;\n and r17 1u32 into r18;\n gt r18 0u32 into r19;\n not false into r20;\n and r19 r20 into r21;\n cast r15.tree.branch[0u32] r15.tree.branch[1u32] r15.tree.branch[2u32] r15.tree.branch[3u32] r15.tree.branch[4u32] r15.tree.branch[5u32] r15.tree.branch[6u32] r15.tree.branch[7u32] r15.tree.branch[8u32] r15.tree.branch[9u32] r15.tree.branch[10u32] r15.tree.branch[11u32] r15.tree.branch[12u32] r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r22 as [[u128; 2u32]; 32u32];\n cast r22[0u32][0u32] r22[0u32][1u32] r12[0u32] r12[1u32] into r23 as [u128; 4u32];\n hash.keccak256.native.raw r23 into r24 as [boolean; 256u32];\n deserialize.bits.raw r24 ([boolean; 256u32]) into r25 ([u128; 2u32]);\n div r17 2u32 into r26;\n ternary r21 r12[0u32] r15.tree.branch[0u32][0u32] into r27;\n ternary r21 r12[1u32] r15.tree.branch[0u32][1u32] into r28;\n cast r27 r28 into r29 as [u128; 2u32];\n ternary r21 true false into r30;\n ternary r21 r12[0u32] r25[0u32] into r31;\n ternary r21 r12[1u32] r25[1u32] into r32;\n cast r31 r32 into r33 as [u128; 2u32];\n ternary r21 r17 r26 into r34;\n and r34 1u32 into r35;\n gt r35 0u32 into r36;\n not r30 into r37;\n and r36 r37 into r38;\n cast r29 r15.tree.branch[1u32] r15.tree.branch[2u32] r15.tree.branch[3u32] r15.tree.branch[4u32] r15.tree.branch[5u32] r15.tree.branch[6u32] r15.tree.branch[7u32] r15.tree.branch[8u32] r15.tree.branch[9u32] r15.tree.branch[10u32] r15.tree.branch[11u32] r15.tree.branch[12u32] r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r39 as [[u128; 2u32]; 32u32];\n cast r39[1u32][0u32] r39[1u32][1u32] r33[0u32] r33[1u32] into r40 as [u128; 4u32];\n hash.keccak256.native.raw r40 into r41 as [boolean; 256u32];\n deserialize.bits.raw r41 ([boolean; 256u32]) into r42 ([u128; 2u32]);\n div r34 2u32 into r43;\n ternary r38 r33[0u32] r15.tree.branch[1u32][0u32] into r44;\n ternary r38 r33[1u32] r15.tree.branch[1u32][1u32] into r45;\n cast r44 r45 into r46 as [u128; 2u32];\n ternary r38 true r30 into r47;\n ternary r38 r33[0u32] r42[0u32] into r48;\n ternary r38 r33[1u32] r42[1u32] into r49;\n cast r48 r49 into r50 as [u128; 2u32];\n ternary r38 r34 r43 into r51;\n and r51 1u32 into r52;\n gt r52 0u32 into r53;\n not r47 into r54;\n and r53 r54 into r55;\n cast r29 r46 r15.tree.branch[2u32] r15.tree.branch[3u32] r15.tree.branch[4u32] r15.tree.branch[5u32] r15.tree.branch[6u32] r15.tree.branch[7u32] r15.tree.branch[8u32] r15.tree.branch[9u32] r15.tree.branch[10u32] r15.tree.branch[11u32] r15.tree.branch[12u32] r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r56 as [[u128; 2u32]; 32u32];\n cast r56[2u32][0u32] r56[2u32][1u32] r50[0u32] r50[1u32] into r57 as [u128; 4u32];\n hash.keccak256.native.raw r57 into r58 as [boolean; 256u32];\n deserialize.bits.raw r58 ([boolean; 256u32]) into r59 ([u128; 2u32]);\n div r51 2u32 into r60;\n ternary r55 r50[0u32] r15.tree.branch[2u32][0u32] into r61;\n ternary r55 r50[1u32] r15.tree.branch[2u32][1u32] into r62;\n cast r61 r62 into r63 as [u128; 2u32];\n ternary r55 true r47 into r64;\n ternary r55 r50[0u32] r59[0u32] into r65;\n ternary r55 r50[1u32] r59[1u32] into r66;\n cast r65 r66 into r67 as [u128; 2u32];\n ternary r55 r51 r60 into r68;\n and r68 1u32 into r69;\n gt r69 0u32 into r70;\n not r64 into r71;\n and r70 r71 into r72;\n cast r29 r46 r63 r15.tree.branch[3u32] r15.tree.branch[4u32] r15.tree.branch[5u32] r15.tree.branch[6u32] r15.tree.branch[7u32] r15.tree.branch[8u32] r15.tree.branch[9u32] r15.tree.branch[10u32] r15.tree.branch[11u32] r15.tree.branch[12u32] r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r73 as [[u128; 2u32]; 32u32];\n cast r73[3u32][0u32] r73[3u32][1u32] r67[0u32] r67[1u32] into r74 as [u128; 4u32];\n hash.keccak256.native.raw r74 into r75 as [boolean; 256u32];\n deserialize.bits.raw r75 ([boolean; 256u32]) into r76 ([u128; 2u32]);\n div r68 2u32 into r77;\n ternary r72 r67[0u32] r15.tree.branch[3u32][0u32] into r78;\n ternary r72 r67[1u32] r15.tree.branch[3u32][1u32] into r79;\n cast r78 r79 into r80 as [u128; 2u32];\n ternary r72 true r64 into r81;\n ternary r72 r67[0u32] r76[0u32] into r82;\n ternary r72 r67[1u32] r76[1u32] into r83;\n cast r82 r83 into r84 as [u128; 2u32];\n ternary r72 r68 r77 into r85;\n and r85 1u32 into r86;\n gt r86 0u32 into r87;\n not r81 into r88;\n and r87 r88 into r89;\n cast r29 r46 r63 r80 r15.tree.branch[4u32] r15.tree.branch[5u32] r15.tree.branch[6u32] r15.tree.branch[7u32] r15.tree.branch[8u32] r15.tree.branch[9u32] r15.tree.branch[10u32] r15.tree.branch[11u32] r15.tree.branch[12u32] r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r90 as [[u128; 2u32]; 32u32];\n cast r90[4u32][0u32] r90[4u32][1u32] r84[0u32] r84[1u32] into r91 as [u128; 4u32];\n hash.keccak256.native.raw r91 into r92 as [boolean; 256u32];\n deserialize.bits.raw r92 ([boolean; 256u32]) into r93 ([u128; 2u32]);\n div r85 2u32 into r94;\n ternary r89 r84[0u32] r15.tree.branch[4u32][0u32] into r95;\n ternary r89 r84[1u32] r15.tree.branch[4u32][1u32] into r96;\n cast r95 r96 into r97 as [u128; 2u32];\n ternary r89 true r81 into r98;\n ternary r89 r84[0u32] r93[0u32] into r99;\n ternary r89 r84[1u32] r93[1u32] into r100;\n cast r99 r100 into r101 as [u128; 2u32];\n ternary r89 r85 r94 into r102;\n and r102 1u32 into r103;\n gt r103 0u32 into r104;\n not r98 into r105;\n and r104 r105 into r106;\n cast r29 r46 r63 r80 r97 r15.tree.branch[5u32] r15.tree.branch[6u32] r15.tree.branch[7u32] r15.tree.branch[8u32] r15.tree.branch[9u32] r15.tree.branch[10u32] r15.tree.branch[11u32] r15.tree.branch[12u32] r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r107 as [[u128; 2u32]; 32u32];\n cast r107[5u32][0u32] r107[5u32][1u32] r101[0u32] r101[1u32] into r108 as [u128; 4u32];\n hash.keccak256.native.raw r108 into r109 as [boolean; 256u32];\n deserialize.bits.raw r109 ([boolean; 256u32]) into r110 ([u128; 2u32]);\n div r102 2u32 into r111;\n ternary r106 r101[0u32] r15.tree.branch[5u32][0u32] into r112;\n ternary r106 r101[1u32] r15.tree.branch[5u32][1u32] into r113;\n cast r112 r113 into r114 as [u128; 2u32];\n ternary r106 true r98 into r115;\n ternary r106 r101[0u32] r110[0u32] into r116;\n ternary r106 r101[1u32] r110[1u32] into r117;\n cast r116 r117 into r118 as [u128; 2u32];\n ternary r106 r102 r111 into r119;\n and r119 1u32 into r120;\n gt r120 0u32 into r121;\n not r115 into r122;\n and r121 r122 into r123;\n cast r29 r46 r63 r80 r97 r114 r15.tree.branch[6u32] r15.tree.branch[7u32] r15.tree.branch[8u32] r15.tree.branch[9u32] r15.tree.branch[10u32] r15.tree.branch[11u32] r15.tree.branch[12u32] r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r124 as [[u128; 2u32]; 32u32];\n cast r124[6u32][0u32] r124[6u32][1u32] r118[0u32] r118[1u32] into r125 as [u128; 4u32];\n hash.keccak256.native.raw r125 into r126 as [boolean; 256u32];\n deserialize.bits.raw r126 ([boolean; 256u32]) into r127 ([u128; 2u32]);\n div r119 2u32 into r128;\n ternary r123 r118[0u32] r15.tree.branch[6u32][0u32] into r129;\n ternary r123 r118[1u32] r15.tree.branch[6u32][1u32] into r130;\n cast r129 r130 into r131 as [u128; 2u32];\n ternary r123 true r115 into r132;\n ternary r123 r118[0u32] r127[0u32] into r133;\n ternary r123 r118[1u32] r127[1u32] into r134;\n cast r133 r134 into r135 as [u128; 2u32];\n ternary r123 r119 r128 into r136;\n and r136 1u32 into r137;\n gt r137 0u32 into r138;\n not r132 into r139;\n and r138 r139 into r140;\n cast r29 r46 r63 r80 r97 r114 r131 r15.tree.branch[7u32] r15.tree.branch[8u32] r15.tree.branch[9u32] r15.tree.branch[10u32] r15.tree.branch[11u32] r15.tree.branch[12u32] r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r141 as [[u128; 2u32]; 32u32];\n cast r141[7u32][0u32] r141[7u32][1u32] r135[0u32] r135[1u32] into r142 as [u128; 4u32];\n hash.keccak256.native.raw r142 into r143 as [boolean; 256u32];\n deserialize.bits.raw r143 ([boolean; 256u32]) into r144 ([u128; 2u32]);\n div r136 2u32 into r145;\n ternary r140 r135[0u32] r15.tree.branch[7u32][0u32] into r146;\n ternary r140 r135[1u32] r15.tree.branch[7u32][1u32] into r147;\n cast r146 r147 into r148 as [u128; 2u32];\n ternary r140 true r132 into r149;\n ternary r140 r135[0u32] r144[0u32] into r150;\n ternary r140 r135[1u32] r144[1u32] into r151;\n cast r150 r151 into r152 as [u128; 2u32];\n ternary r140 r136 r145 into r153;\n and r153 1u32 into r154;\n gt r154 0u32 into r155;\n not r149 into r156;\n and r155 r156 into r157;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r15.tree.branch[8u32] r15.tree.branch[9u32] r15.tree.branch[10u32] r15.tree.branch[11u32] r15.tree.branch[12u32] r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r158 as [[u128; 2u32]; 32u32];\n cast r158[8u32][0u32] r158[8u32][1u32] r152[0u32] r152[1u32] into r159 as [u128; 4u32];\n hash.keccak256.native.raw r159 into r160 as [boolean; 256u32];\n deserialize.bits.raw r160 ([boolean; 256u32]) into r161 ([u128; 2u32]);\n div r153 2u32 into r162;\n ternary r157 r152[0u32] r15.tree.branch[8u32][0u32] into r163;\n ternary r157 r152[1u32] r15.tree.branch[8u32][1u32] into r164;\n cast r163 r164 into r165 as [u128; 2u32];\n ternary r157 true r149 into r166;\n ternary r157 r152[0u32] r161[0u32] into r167;\n ternary r157 r152[1u32] r161[1u32] into r168;\n cast r167 r168 into r169 as [u128; 2u32];\n ternary r157 r153 r162 into r170;\n and r170 1u32 into r171;\n gt r171 0u32 into r172;\n not r166 into r173;\n and r172 r173 into r174;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r15.tree.branch[9u32] r15.tree.branch[10u32] r15.tree.branch[11u32] r15.tree.branch[12u32] r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r175 as [[u128; 2u32]; 32u32];\n cast r175[9u32][0u32] r175[9u32][1u32] r169[0u32] r169[1u32] into r176 as [u128; 4u32];\n hash.keccak256.native.raw r176 into r177 as [boolean; 256u32];\n deserialize.bits.raw r177 ([boolean; 256u32]) into r178 ([u128; 2u32]);\n div r170 2u32 into r179;\n ternary r174 r169[0u32] r15.tree.branch[9u32][0u32] into r180;\n ternary r174 r169[1u32] r15.tree.branch[9u32][1u32] into r181;\n cast r180 r181 into r182 as [u128; 2u32];\n ternary r174 true r166 into r183;\n ternary r174 r169[0u32] r178[0u32] into r184;\n ternary r174 r169[1u32] r178[1u32] into r185;\n cast r184 r185 into r186 as [u128; 2u32];\n ternary r174 r170 r179 into r187;\n and r187 1u32 into r188;\n gt r188 0u32 into r189;\n not r183 into r190;\n and r189 r190 into r191;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r15.tree.branch[10u32] r15.tree.branch[11u32] r15.tree.branch[12u32] r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r192 as [[u128; 2u32]; 32u32];\n cast r192[10u32][0u32] r192[10u32][1u32] r186[0u32] r186[1u32] into r193 as [u128; 4u32];\n hash.keccak256.native.raw r193 into r194 as [boolean; 256u32];\n deserialize.bits.raw r194 ([boolean; 256u32]) into r195 ([u128; 2u32]);\n div r187 2u32 into r196;\n ternary r191 r186[0u32] r15.tree.branch[10u32][0u32] into r197;\n ternary r191 r186[1u32] r15.tree.branch[10u32][1u32] into r198;\n cast r197 r198 into r199 as [u128; 2u32];\n ternary r191 true r183 into r200;\n ternary r191 r186[0u32] r195[0u32] into r201;\n ternary r191 r186[1u32] r195[1u32] into r202;\n cast r201 r202 into r203 as [u128; 2u32];\n ternary r191 r187 r196 into r204;\n and r204 1u32 into r205;\n gt r205 0u32 into r206;\n not r200 into r207;\n and r206 r207 into r208;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r15.tree.branch[11u32] r15.tree.branch[12u32] r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r209 as [[u128; 2u32]; 32u32];\n cast r209[11u32][0u32] r209[11u32][1u32] r203[0u32] r203[1u32] into r210 as [u128; 4u32];\n hash.keccak256.native.raw r210 into r211 as [boolean; 256u32];\n deserialize.bits.raw r211 ([boolean; 256u32]) into r212 ([u128; 2u32]);\n div r204 2u32 into r213;\n ternary r208 r203[0u32] r15.tree.branch[11u32][0u32] into r214;\n ternary r208 r203[1u32] r15.tree.branch[11u32][1u32] into r215;\n cast r214 r215 into r216 as [u128; 2u32];\n ternary r208 true r200 into r217;\n ternary r208 r203[0u32] r212[0u32] into r218;\n ternary r208 r203[1u32] r212[1u32] into r219;\n cast r218 r219 into r220 as [u128; 2u32];\n ternary r208 r204 r213 into r221;\n and r221 1u32 into r222;\n gt r222 0u32 into r223;\n not r217 into r224;\n and r223 r224 into r225;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r15.tree.branch[12u32] r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r226 as [[u128; 2u32]; 32u32];\n cast r226[12u32][0u32] r226[12u32][1u32] r220[0u32] r220[1u32] into r227 as [u128; 4u32];\n hash.keccak256.native.raw r227 into r228 as [boolean; 256u32];\n deserialize.bits.raw r228 ([boolean; 256u32]) into r229 ([u128; 2u32]);\n div r221 2u32 into r230;\n ternary r225 r220[0u32] r15.tree.branch[12u32][0u32] into r231;\n ternary r225 r220[1u32] r15.tree.branch[12u32][1u32] into r232;\n cast r231 r232 into r233 as [u128; 2u32];\n ternary r225 true r217 into r234;\n ternary r225 r220[0u32] r229[0u32] into r235;\n ternary r225 r220[1u32] r229[1u32] into r236;\n cast r235 r236 into r237 as [u128; 2u32];\n ternary r225 r221 r230 into r238;\n and r238 1u32 into r239;\n gt r239 0u32 into r240;\n not r234 into r241;\n and r240 r241 into r242;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r15.tree.branch[13u32] r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r243 as [[u128; 2u32]; 32u32];\n cast r243[13u32][0u32] r243[13u32][1u32] r237[0u32] r237[1u32] into r244 as [u128; 4u32];\n hash.keccak256.native.raw r244 into r245 as [boolean; 256u32];\n deserialize.bits.raw r245 ([boolean; 256u32]) into r246 ([u128; 2u32]);\n div r238 2u32 into r247;\n ternary r242 r237[0u32] r15.tree.branch[13u32][0u32] into r248;\n ternary r242 r237[1u32] r15.tree.branch[13u32][1u32] into r249;\n cast r248 r249 into r250 as [u128; 2u32];\n ternary r242 true r234 into r251;\n ternary r242 r237[0u32] r246[0u32] into r252;\n ternary r242 r237[1u32] r246[1u32] into r253;\n cast r252 r253 into r254 as [u128; 2u32];\n ternary r242 r238 r247 into r255;\n and r255 1u32 into r256;\n gt r256 0u32 into r257;\n not r251 into r258;\n and r257 r258 into r259;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r15.tree.branch[14u32] r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r260 as [[u128; 2u32]; 32u32];\n cast r260[14u32][0u32] r260[14u32][1u32] r254[0u32] r254[1u32] into r261 as [u128; 4u32];\n hash.keccak256.native.raw r261 into r262 as [boolean; 256u32];\n deserialize.bits.raw r262 ([boolean; 256u32]) into r263 ([u128; 2u32]);\n div r255 2u32 into r264;\n ternary r259 r254[0u32] r15.tree.branch[14u32][0u32] into r265;\n ternary r259 r254[1u32] r15.tree.branch[14u32][1u32] into r266;\n cast r265 r266 into r267 as [u128; 2u32];\n ternary r259 true r251 into r268;\n ternary r259 r254[0u32] r263[0u32] into r269;\n ternary r259 r254[1u32] r263[1u32] into r270;\n cast r269 r270 into r271 as [u128; 2u32];\n ternary r259 r255 r264 into r272;\n and r272 1u32 into r273;\n gt r273 0u32 into r274;\n not r268 into r275;\n and r274 r275 into r276;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r15.tree.branch[15u32] r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r277 as [[u128; 2u32]; 32u32];\n cast r277[15u32][0u32] r277[15u32][1u32] r271[0u32] r271[1u32] into r278 as [u128; 4u32];\n hash.keccak256.native.raw r278 into r279 as [boolean; 256u32];\n deserialize.bits.raw r279 ([boolean; 256u32]) into r280 ([u128; 2u32]);\n div r272 2u32 into r281;\n ternary r276 r271[0u32] r15.tree.branch[15u32][0u32] into r282;\n ternary r276 r271[1u32] r15.tree.branch[15u32][1u32] into r283;\n cast r282 r283 into r284 as [u128; 2u32];\n ternary r276 true r268 into r285;\n ternary r276 r271[0u32] r280[0u32] into r286;\n ternary r276 r271[1u32] r280[1u32] into r287;\n cast r286 r287 into r288 as [u128; 2u32];\n ternary r276 r272 r281 into r289;\n and r289 1u32 into r290;\n gt r290 0u32 into r291;\n not r285 into r292;\n and r291 r292 into r293;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r15.tree.branch[16u32] r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r294 as [[u128; 2u32]; 32u32];\n cast r294[16u32][0u32] r294[16u32][1u32] r288[0u32] r288[1u32] into r295 as [u128; 4u32];\n hash.keccak256.native.raw r295 into r296 as [boolean; 256u32];\n deserialize.bits.raw r296 ([boolean; 256u32]) into r297 ([u128; 2u32]);\n div r289 2u32 into r298;\n ternary r293 r288[0u32] r15.tree.branch[16u32][0u32] into r299;\n ternary r293 r288[1u32] r15.tree.branch[16u32][1u32] into r300;\n cast r299 r300 into r301 as [u128; 2u32];\n ternary r293 true r285 into r302;\n ternary r293 r288[0u32] r297[0u32] into r303;\n ternary r293 r288[1u32] r297[1u32] into r304;\n cast r303 r304 into r305 as [u128; 2u32];\n ternary r293 r289 r298 into r306;\n and r306 1u32 into r307;\n gt r307 0u32 into r308;\n not r302 into r309;\n and r308 r309 into r310;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r15.tree.branch[17u32] r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r311 as [[u128; 2u32]; 32u32];\n cast r311[17u32][0u32] r311[17u32][1u32] r305[0u32] r305[1u32] into r312 as [u128; 4u32];\n hash.keccak256.native.raw r312 into r313 as [boolean; 256u32];\n deserialize.bits.raw r313 ([boolean; 256u32]) into r314 ([u128; 2u32]);\n div r306 2u32 into r315;\n ternary r310 r305[0u32] r15.tree.branch[17u32][0u32] into r316;\n ternary r310 r305[1u32] r15.tree.branch[17u32][1u32] into r317;\n cast r316 r317 into r318 as [u128; 2u32];\n ternary r310 true r302 into r319;\n ternary r310 r305[0u32] r314[0u32] into r320;\n ternary r310 r305[1u32] r314[1u32] into r321;\n cast r320 r321 into r322 as [u128; 2u32];\n ternary r310 r306 r315 into r323;\n and r323 1u32 into r324;\n gt r324 0u32 into r325;\n not r319 into r326;\n and r325 r326 into r327;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r15.tree.branch[18u32] r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r328 as [[u128; 2u32]; 32u32];\n cast r328[18u32][0u32] r328[18u32][1u32] r322[0u32] r322[1u32] into r329 as [u128; 4u32];\n hash.keccak256.native.raw r329 into r330 as [boolean; 256u32];\n deserialize.bits.raw r330 ([boolean; 256u32]) into r331 ([u128; 2u32]);\n div r323 2u32 into r332;\n ternary r327 r322[0u32] r15.tree.branch[18u32][0u32] into r333;\n ternary r327 r322[1u32] r15.tree.branch[18u32][1u32] into r334;\n cast r333 r334 into r335 as [u128; 2u32];\n ternary r327 true r319 into r336;\n ternary r327 r322[0u32] r331[0u32] into r337;\n ternary r327 r322[1u32] r331[1u32] into r338;\n cast r337 r338 into r339 as [u128; 2u32];\n ternary r327 r323 r332 into r340;\n and r340 1u32 into r341;\n gt r341 0u32 into r342;\n not r336 into r343;\n and r342 r343 into r344;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r335 r15.tree.branch[19u32] r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r345 as [[u128; 2u32]; 32u32];\n cast r345[19u32][0u32] r345[19u32][1u32] r339[0u32] r339[1u32] into r346 as [u128; 4u32];\n hash.keccak256.native.raw r346 into r347 as [boolean; 256u32];\n deserialize.bits.raw r347 ([boolean; 256u32]) into r348 ([u128; 2u32]);\n div r340 2u32 into r349;\n ternary r344 r339[0u32] r15.tree.branch[19u32][0u32] into r350;\n ternary r344 r339[1u32] r15.tree.branch[19u32][1u32] into r351;\n cast r350 r351 into r352 as [u128; 2u32];\n ternary r344 true r336 into r353;\n ternary r344 r339[0u32] r348[0u32] into r354;\n ternary r344 r339[1u32] r348[1u32] into r355;\n cast r354 r355 into r356 as [u128; 2u32];\n ternary r344 r340 r349 into r357;\n and r357 1u32 into r358;\n gt r358 0u32 into r359;\n not r353 into r360;\n and r359 r360 into r361;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r335 r352 r15.tree.branch[20u32] r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r362 as [[u128; 2u32]; 32u32];\n cast r362[20u32][0u32] r362[20u32][1u32] r356[0u32] r356[1u32] into r363 as [u128; 4u32];\n hash.keccak256.native.raw r363 into r364 as [boolean; 256u32];\n deserialize.bits.raw r364 ([boolean; 256u32]) into r365 ([u128; 2u32]);\n div r357 2u32 into r366;\n ternary r361 r356[0u32] r15.tree.branch[20u32][0u32] into r367;\n ternary r361 r356[1u32] r15.tree.branch[20u32][1u32] into r368;\n cast r367 r368 into r369 as [u128; 2u32];\n ternary r361 true r353 into r370;\n ternary r361 r356[0u32] r365[0u32] into r371;\n ternary r361 r356[1u32] r365[1u32] into r372;\n cast r371 r372 into r373 as [u128; 2u32];\n ternary r361 r357 r366 into r374;\n and r374 1u32 into r375;\n gt r375 0u32 into r376;\n not r370 into r377;\n and r376 r377 into r378;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r335 r352 r369 r15.tree.branch[21u32] r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r379 as [[u128; 2u32]; 32u32];\n cast r379[21u32][0u32] r379[21u32][1u32] r373[0u32] r373[1u32] into r380 as [u128; 4u32];\n hash.keccak256.native.raw r380 into r381 as [boolean; 256u32];\n deserialize.bits.raw r381 ([boolean; 256u32]) into r382 ([u128; 2u32]);\n div r374 2u32 into r383;\n ternary r378 r373[0u32] r15.tree.branch[21u32][0u32] into r384;\n ternary r378 r373[1u32] r15.tree.branch[21u32][1u32] into r385;\n cast r384 r385 into r386 as [u128; 2u32];\n ternary r378 true r370 into r387;\n ternary r378 r373[0u32] r382[0u32] into r388;\n ternary r378 r373[1u32] r382[1u32] into r389;\n cast r388 r389 into r390 as [u128; 2u32];\n ternary r378 r374 r383 into r391;\n and r391 1u32 into r392;\n gt r392 0u32 into r393;\n not r387 into r394;\n and r393 r394 into r395;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r335 r352 r369 r386 r15.tree.branch[22u32] r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r396 as [[u128; 2u32]; 32u32];\n cast r396[22u32][0u32] r396[22u32][1u32] r390[0u32] r390[1u32] into r397 as [u128; 4u32];\n hash.keccak256.native.raw r397 into r398 as [boolean; 256u32];\n deserialize.bits.raw r398 ([boolean; 256u32]) into r399 ([u128; 2u32]);\n div r391 2u32 into r400;\n ternary r395 r390[0u32] r15.tree.branch[22u32][0u32] into r401;\n ternary r395 r390[1u32] r15.tree.branch[22u32][1u32] into r402;\n cast r401 r402 into r403 as [u128; 2u32];\n ternary r395 true r387 into r404;\n ternary r395 r390[0u32] r399[0u32] into r405;\n ternary r395 r390[1u32] r399[1u32] into r406;\n cast r405 r406 into r407 as [u128; 2u32];\n ternary r395 r391 r400 into r408;\n and r408 1u32 into r409;\n gt r409 0u32 into r410;\n not r404 into r411;\n and r410 r411 into r412;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r335 r352 r369 r386 r403 r15.tree.branch[23u32] r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r413 as [[u128; 2u32]; 32u32];\n cast r413[23u32][0u32] r413[23u32][1u32] r407[0u32] r407[1u32] into r414 as [u128; 4u32];\n hash.keccak256.native.raw r414 into r415 as [boolean; 256u32];\n deserialize.bits.raw r415 ([boolean; 256u32]) into r416 ([u128; 2u32]);\n div r408 2u32 into r417;\n ternary r412 r407[0u32] r15.tree.branch[23u32][0u32] into r418;\n ternary r412 r407[1u32] r15.tree.branch[23u32][1u32] into r419;\n cast r418 r419 into r420 as [u128; 2u32];\n ternary r412 true r404 into r421;\n ternary r412 r407[0u32] r416[0u32] into r422;\n ternary r412 r407[1u32] r416[1u32] into r423;\n cast r422 r423 into r424 as [u128; 2u32];\n ternary r412 r408 r417 into r425;\n and r425 1u32 into r426;\n gt r426 0u32 into r427;\n not r421 into r428;\n and r427 r428 into r429;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r335 r352 r369 r386 r403 r420 r15.tree.branch[24u32] r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r430 as [[u128; 2u32]; 32u32];\n cast r430[24u32][0u32] r430[24u32][1u32] r424[0u32] r424[1u32] into r431 as [u128; 4u32];\n hash.keccak256.native.raw r431 into r432 as [boolean; 256u32];\n deserialize.bits.raw r432 ([boolean; 256u32]) into r433 ([u128; 2u32]);\n div r425 2u32 into r434;\n ternary r429 r424[0u32] r15.tree.branch[24u32][0u32] into r435;\n ternary r429 r424[1u32] r15.tree.branch[24u32][1u32] into r436;\n cast r435 r436 into r437 as [u128; 2u32];\n ternary r429 true r421 into r438;\n ternary r429 r424[0u32] r433[0u32] into r439;\n ternary r429 r424[1u32] r433[1u32] into r440;\n cast r439 r440 into r441 as [u128; 2u32];\n ternary r429 r425 r434 into r442;\n and r442 1u32 into r443;\n gt r443 0u32 into r444;\n not r438 into r445;\n and r444 r445 into r446;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r335 r352 r369 r386 r403 r420 r437 r15.tree.branch[25u32] r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r447 as [[u128; 2u32]; 32u32];\n cast r447[25u32][0u32] r447[25u32][1u32] r441[0u32] r441[1u32] into r448 as [u128; 4u32];\n hash.keccak256.native.raw r448 into r449 as [boolean; 256u32];\n deserialize.bits.raw r449 ([boolean; 256u32]) into r450 ([u128; 2u32]);\n div r442 2u32 into r451;\n ternary r446 r441[0u32] r15.tree.branch[25u32][0u32] into r452;\n ternary r446 r441[1u32] r15.tree.branch[25u32][1u32] into r453;\n cast r452 r453 into r454 as [u128; 2u32];\n ternary r446 true r438 into r455;\n ternary r446 r441[0u32] r450[0u32] into r456;\n ternary r446 r441[1u32] r450[1u32] into r457;\n cast r456 r457 into r458 as [u128; 2u32];\n ternary r446 r442 r451 into r459;\n and r459 1u32 into r460;\n gt r460 0u32 into r461;\n not r455 into r462;\n and r461 r462 into r463;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r335 r352 r369 r386 r403 r420 r437 r454 r15.tree.branch[26u32] r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r464 as [[u128; 2u32]; 32u32];\n cast r464[26u32][0u32] r464[26u32][1u32] r458[0u32] r458[1u32] into r465 as [u128; 4u32];\n hash.keccak256.native.raw r465 into r466 as [boolean; 256u32];\n deserialize.bits.raw r466 ([boolean; 256u32]) into r467 ([u128; 2u32]);\n div r459 2u32 into r468;\n ternary r463 r458[0u32] r15.tree.branch[26u32][0u32] into r469;\n ternary r463 r458[1u32] r15.tree.branch[26u32][1u32] into r470;\n cast r469 r470 into r471 as [u128; 2u32];\n ternary r463 true r455 into r472;\n ternary r463 r458[0u32] r467[0u32] into r473;\n ternary r463 r458[1u32] r467[1u32] into r474;\n cast r473 r474 into r475 as [u128; 2u32];\n ternary r463 r459 r468 into r476;\n and r476 1u32 into r477;\n gt r477 0u32 into r478;\n not r472 into r479;\n and r478 r479 into r480;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r335 r352 r369 r386 r403 r420 r437 r454 r471 r15.tree.branch[27u32] r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r481 as [[u128; 2u32]; 32u32];\n cast r481[27u32][0u32] r481[27u32][1u32] r475[0u32] r475[1u32] into r482 as [u128; 4u32];\n hash.keccak256.native.raw r482 into r483 as [boolean; 256u32];\n deserialize.bits.raw r483 ([boolean; 256u32]) into r484 ([u128; 2u32]);\n div r476 2u32 into r485;\n ternary r480 r475[0u32] r15.tree.branch[27u32][0u32] into r486;\n ternary r480 r475[1u32] r15.tree.branch[27u32][1u32] into r487;\n cast r486 r487 into r488 as [u128; 2u32];\n ternary r480 true r472 into r489;\n ternary r480 r475[0u32] r484[0u32] into r490;\n ternary r480 r475[1u32] r484[1u32] into r491;\n cast r490 r491 into r492 as [u128; 2u32];\n ternary r480 r476 r485 into r493;\n and r493 1u32 into r494;\n gt r494 0u32 into r495;\n not r489 into r496;\n and r495 r496 into r497;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r335 r352 r369 r386 r403 r420 r437 r454 r471 r488 r15.tree.branch[28u32] r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r498 as [[u128; 2u32]; 32u32];\n cast r498[28u32][0u32] r498[28u32][1u32] r492[0u32] r492[1u32] into r499 as [u128; 4u32];\n hash.keccak256.native.raw r499 into r500 as [boolean; 256u32];\n deserialize.bits.raw r500 ([boolean; 256u32]) into r501 ([u128; 2u32]);\n div r493 2u32 into r502;\n ternary r497 r492[0u32] r15.tree.branch[28u32][0u32] into r503;\n ternary r497 r492[1u32] r15.tree.branch[28u32][1u32] into r504;\n cast r503 r504 into r505 as [u128; 2u32];\n ternary r497 true r489 into r506;\n ternary r497 r492[0u32] r501[0u32] into r507;\n ternary r497 r492[1u32] r501[1u32] into r508;\n cast r507 r508 into r509 as [u128; 2u32];\n ternary r497 r493 r502 into r510;\n and r510 1u32 into r511;\n gt r511 0u32 into r512;\n not r506 into r513;\n and r512 r513 into r514;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r335 r352 r369 r386 r403 r420 r437 r454 r471 r488 r505 r15.tree.branch[29u32] r15.tree.branch[30u32] r15.tree.branch[31u32] into r515 as [[u128; 2u32]; 32u32];\n cast r515[29u32][0u32] r515[29u32][1u32] r509[0u32] r509[1u32] into r516 as [u128; 4u32];\n hash.keccak256.native.raw r516 into r517 as [boolean; 256u32];\n deserialize.bits.raw r517 ([boolean; 256u32]) into r518 ([u128; 2u32]);\n div r510 2u32 into r519;\n ternary r514 r509[0u32] r15.tree.branch[29u32][0u32] into r520;\n ternary r514 r509[1u32] r15.tree.branch[29u32][1u32] into r521;\n cast r520 r521 into r522 as [u128; 2u32];\n ternary r514 true r506 into r523;\n ternary r514 r509[0u32] r518[0u32] into r524;\n ternary r514 r509[1u32] r518[1u32] into r525;\n cast r524 r525 into r526 as [u128; 2u32];\n ternary r514 r510 r519 into r527;\n and r527 1u32 into r528;\n gt r528 0u32 into r529;\n not r523 into r530;\n and r529 r530 into r531;\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r335 r352 r369 r386 r403 r420 r437 r454 r471 r488 r505 r522 r15.tree.branch[30u32] r15.tree.branch[31u32] into r532 as [[u128; 2u32]; 32u32];\n cast r532[30u32][0u32] r532[30u32][1u32] r526[0u32] r526[1u32] into r533 as [u128; 4u32];\n hash.keccak256.native.raw r533 into r534 as [boolean; 256u32];\n deserialize.bits.raw r534 ([boolean; 256u32]) into r535 ([u128; 2u32]);\n div r527 2u32 into r536;\n ternary r531 r526[0u32] r15.tree.branch[30u32][0u32] into r537;\n ternary r531 r526[1u32] r15.tree.branch[30u32][1u32] into r538;\n cast r537 r538 into r539 as [u128; 2u32];\n ternary r531 true r523 into r540;\n ternary r531 r526[0u32] r535[0u32] into r541;\n ternary r531 r526[1u32] r535[1u32] into r542;\n cast r541 r542 into r543 as [u128; 2u32];\n ternary r531 r527 r536 into r544;\n and r544 1u32 into r545;\n gt r545 0u32 into r546;\n not r540 into r547;\n and r546 r547 into r548;\n div r544 2u32 into r549;\n ternary r548 r543[0u32] r15.tree.branch[31u32][0u32] into r550;\n ternary r548 r543[1u32] r15.tree.branch[31u32][1u32] into r551;\n cast r550 r551 into r552 as [u128; 2u32];\n cast r29 r46 r63 r80 r97 r114 r131 r148 r165 r182 r199 r216 r233 r250 r267 r284 r301 r318 r335 r352 r369 r386 r403 r420 r437 r454 r471 r488 r505 r522 r539 r552 into r553 as [[u128; 2u32]; 32u32];\n cast r553 r17 into r554 as Tree;\n cast 0u128 0u128 into r555 as [u128; 2u32];\n shr r554.count 0u32 into r556;\n and r556 1u32 into r557;\n is.eq r557 1u32 into r558;\n cast r554.branch[0u32][0u32] r554.branch[0u32][1u32] r555[0u32] r555[1u32] into r559 as [u128; 4u32];\n hash.keccak256.native.raw r559 into r560 as [boolean; 256u32];\n deserialize.bits.raw r560 ([boolean; 256u32]) into r561 ([u128; 2u32]);\n cast r555[0u32] r555[1u32] 0u128 0u128 into r562 as [u128; 4u32];\n hash.keccak256.native.raw r562 into r563 as [boolean; 256u32];\n deserialize.bits.raw r563 ([boolean; 256u32]) into r564 ([u128; 2u32]);\n ternary r558 r561[0u32] r564[0u32] into r565;\n ternary r558 r561[1u32] r564[1u32] into r566;\n cast r565 r566 into r567 as [u128; 2u32];\n shr r554.count 1u32 into r568;\n and r568 1u32 into r569;\n is.eq r569 1u32 into r570;\n cast r554.branch[1u32][0u32] r554.branch[1u32][1u32] r567[0u32] r567[1u32] into r571 as [u128; 4u32];\n hash.keccak256.native.raw r571 into r572 as [boolean; 256u32];\n deserialize.bits.raw r572 ([boolean; 256u32]) into r573 ([u128; 2u32]);\n cast r567[0u32] r567[1u32] 200636014418684474793900124069647889069u128 241087320001230136080519585693436229163u128 into r574 as [u128; 4u32];\n hash.keccak256.native.raw r574 into r575 as [boolean; 256u32];\n deserialize.bits.raw r575 ([boolean; 256u32]) into r576 ([u128; 2u32]);\n ternary r570 r573[0u32] r576[0u32] into r577;\n ternary r570 r573[1u32] r576[1u32] into r578;\n cast r577 r578 into r579 as [u128; 2u32];\n shr r554.count 2u32 into r580;\n and r580 1u32 into r581;\n is.eq r581 1u32 into r582;\n cast r554.branch[2u32][0u32] r554.branch[2u32][1u32] r579[0u32] r579[1u32] into r583 as [u128; 4u32];\n hash.keccak256.native.raw r583 into r584 as [boolean; 256u32];\n deserialize.bits.raw r584 ([boolean; 256u32]) into r585 ([u128; 2u32]);\n cast r579[0u32] r579[1u32] 93974531276030024843854739648391266740u128 63871773629875849864439396521971482176u128 into r586 as [u128; 4u32];\n hash.keccak256.native.raw r586 into r587 as [boolean; 256u32];\n deserialize.bits.raw r587 ([boolean; 256u32]) into r588 ([u128; 2u32]);\n ternary r582 r585[0u32] r588[0u32] into r589;\n ternary r582 r585[1u32] r588[1u32] into r590;\n cast r589 r590 into r591 as [u128; 2u32];\n shr r554.count 3u32 into r592;\n and r592 1u32 into r593;\n is.eq r593 1u32 into r594;\n cast r554.branch[3u32][0u32] r554.branch[3u32][1u32] r591[0u32] r591[1u32] into r595 as [u128; 4u32];\n hash.keccak256.native.raw r595 into r596 as [boolean; 256u32];\n deserialize.bits.raw r596 ([boolean; 256u32]) into r597 ([u128; 2u32]);\n cast r591[0u32] r591[1u32] 66294067272630431583104841350689447201u128 177756802695730322470865725932422475556u128 into r598 as [u128; 4u32];\n hash.keccak256.native.raw r598 into r599 as [boolean; 256u32];\n deserialize.bits.raw r599 ([boolean; 256u32]) into r600 ([u128; 2u32]);\n ternary r594 r597[0u32] r600[0u32] into r601;\n ternary r594 r597[1u32] r600[1u32] into r602;\n cast r601 r602 into r603 as [u128; 2u32];\n shr r554.count 4u32 into r604;\n and r604 1u32 into r605;\n is.eq r605 1u32 into r606;\n cast r554.branch[4u32][0u32] r554.branch[4u32][1u32] r603[0u32] r603[1u32] into r607 as [u128; 4u32];\n hash.keccak256.native.raw r607 into r608 as [boolean; 256u32];\n deserialize.bits.raw r608 ([boolean; 256u32]) into r609 ([u128; 2u32]);\n cast r603[0u32] r603[1u32] 17747458619593854979588589471465572325u128 91154039873745303917061774773470934559u128 into r610 as [u128; 4u32];\n hash.keccak256.native.raw r610 into r611 as [boolean; 256u32];\n deserialize.bits.raw r611 ([boolean; 256u32]) into r612 ([u128; 2u32]);\n ternary r606 r609[0u32] r612[0u32] into r613;\n ternary r606 r609[1u32] r612[1u32] into r614;\n cast r613 r614 into r615 as [u128; 2u32];\n shr r554.count 5u32 into r616;\n and r616 1u32 into r617;\n is.eq r617 1u32 into r618;\n cast r554.branch[5u32][0u32] r554.branch[5u32][1u32] r615[0u32] r615[1u32] into r619 as [u128; 4u32];\n hash.keccak256.native.raw r619 into r620 as [boolean; 256u32];\n deserialize.bits.raw r620 ([boolean; 256u32]) into r621 ([u128; 2u32]);\n cast r615[0u32] r615[1u32] 41440521891025744745128838831940743182u128 60894629520669430433793374864326529801u128 into r622 as [u128; 4u32];\n hash.keccak256.native.raw r622 into r623 as [boolean; 256u32];\n deserialize.bits.raw r623 ([boolean; 256u32]) into r624 ([u128; 2u32]);\n ternary r618 r621[0u32] r624[0u32] into r625;\n ternary r618 r621[1u32] r624[1u32] into r626;\n cast r625 r626 into r627 as [u128; 2u32];\n shr r554.count 6u32 into r628;\n and r628 1u32 into r629;\n is.eq r629 1u32 into r630;\n cast r554.branch[6u32][0u32] r554.branch[6u32][1u32] r627[0u32] r627[1u32] into r631 as [u128; 4u32];\n hash.keccak256.native.raw r631 into r632 as [boolean; 256u32];\n deserialize.bits.raw r632 ([boolean; 256u32]) into r633 ([u128; 2u32]);\n cast r627[0u32] r627[1u32] 59903522946444936989019680377850199176u128 138372656349779401676123096700574490028u128 into r634 as [u128; 4u32];\n hash.keccak256.native.raw r634 into r635 as [boolean; 256u32];\n deserialize.bits.raw r635 ([boolean; 256u32]) into r636 ([u128; 2u32]);\n ternary r630 r633[0u32] r636[0u32] into r637;\n ternary r630 r633[1u32] r636[1u32] into r638;\n cast r637 r638 into r639 as [u128; 2u32];\n shr r554.count 7u32 into r640;\n and r640 1u32 into r641;\n is.eq r641 1u32 into r642;\n cast r554.branch[7u32][0u32] r554.branch[7u32][1u32] r639[0u32] r639[1u32] into r643 as [u128; 4u32];\n hash.keccak256.native.raw r643 into r644 as [boolean; 256u32];\n deserialize.bits.raw r644 ([boolean; 256u32]) into r645 ([u128; 2u32]);\n cast r639[0u32] r639[1u32] 3180262733561280138502805056821254143u128 174708888174609290132996609679840034611u128 into r646 as [u128; 4u32];\n hash.keccak256.native.raw r646 into r647 as [boolean; 256u32];\n deserialize.bits.raw r647 ([boolean; 256u32]) into r648 ([u128; 2u32]);\n ternary r642 r645[0u32] r648[0u32] into r649;\n ternary r642 r645[1u32] r648[1u32] into r650;\n cast r649 r650 into r651 as [u128; 2u32];\n shr r554.count 8u32 into r652;\n and r652 1u32 into r653;\n is.eq r653 1u32 into r654;\n cast r554.branch[8u32][0u32] r554.branch[8u32][1u32] r651[0u32] r651[1u32] into r655 as [u128; 4u32];\n hash.keccak256.native.raw r655 into r656 as [boolean; 256u32];\n deserialize.bits.raw r656 ([boolean; 256u32]) into r657 ([u128; 2u32]);\n cast r651[0u32] r651[1u32] 48455171203811811641967620231072081816u128 233066451124647651551022141310218850885u128 into r658 as [u128; 4u32];\n hash.keccak256.native.raw r658 into r659 as [boolean; 256u32];\n deserialize.bits.raw r659 ([boolean; 256u32]) into r660 ([u128; 2u32]);\n ternary r654 r657[0u32] r660[0u32] into r661;\n ternary r654 r657[1u32] r660[1u32] into r662;\n cast r661 r662 into r663 as [u128; 2u32];\n shr r554.count 9u32 into r664;\n and r664 1u32 into r665;\n is.eq r665 1u32 into r666;\n cast r554.branch[9u32][0u32] r554.branch[9u32][1u32] r663[0u32] r663[1u32] into r667 as [u128; 4u32];\n hash.keccak256.native.raw r667 into r668 as [boolean; 256u32];\n deserialize.bits.raw r668 ([boolean; 256u32]) into r669 ([u128; 2u32]);\n cast r663[0u32] r663[1u32] 334080689485914854275740245880500189902u128 298184847794429370937316245747346618882u128 into r670 as [u128; 4u32];\n hash.keccak256.native.raw r670 into r671 as [boolean; 256u32];\n deserialize.bits.raw r671 ([boolean; 256u32]) into r672 ([u128; 2u32]);\n ternary r666 r669[0u32] r672[0u32] into r673;\n ternary r666 r669[1u32] r672[1u32] into r674;\n cast r673 r674 into r675 as [u128; 2u32];\n shr r554.count 10u32 into r676;\n and r676 1u32 into r677;\n is.eq r677 1u32 into r678;\n cast r554.branch[10u32][0u32] r554.branch[10u32][1u32] r675[0u32] r675[1u32] into r679 as [u128; 4u32];\n hash.keccak256.native.raw r679 into r680 as [boolean; 256u32];\n deserialize.bits.raw r680 ([boolean; 256u32]) into r681 ([u128; 2u32]);\n cast r675[0u32] r675[1u32] 282653557140816677488147447345498217721u128 220339046210024952190566302967731665406u128 into r682 as [u128; 4u32];\n hash.keccak256.native.raw r682 into r683 as [boolean; 256u32];\n deserialize.bits.raw r683 ([boolean; 256u32]) into r684 ([u128; 2u32]);\n ternary r678 r681[0u32] r684[0u32] into r685;\n ternary r678 r681[1u32] r684[1u32] into r686;\n cast r685 r686 into r687 as [u128; 2u32];\n shr r554.count 11u32 into r688;\n and r688 1u32 into r689;\n is.eq r689 1u32 into r690;\n cast r554.branch[11u32][0u32] r554.branch[11u32][1u32] r687[0u32] r687[1u32] into r691 as [u128; 4u32];\n hash.keccak256.native.raw r691 into r692 as [boolean; 256u32];\n deserialize.bits.raw r692 ([boolean; 256u32]) into r693 ([u128; 2u32]);\n cast r687[0u32] r687[1u32] 145672768088204442335147548738764583416u128 195359773238112912523174698163665391889u128 into r694 as [u128; 4u32];\n hash.keccak256.native.raw r694 into r695 as [boolean; 256u32];\n deserialize.bits.raw r695 ([boolean; 256u32]) into r696 ([u128; 2u32]);\n ternary r690 r693[0u32] r696[0u32] into r697;\n ternary r690 r693[1u32] r696[1u32] into r698;\n cast r697 r698 into r699 as [u128; 2u32];\n shr r554.count 12u32 into r700;\n and r700 1u32 into r701;\n is.eq r701 1u32 into r702;\n cast r554.branch[12u32][0u32] r554.branch[12u32][1u32] r699[0u32] r699[1u32] into r703 as [u128; 4u32];\n hash.keccak256.native.raw r703 into r704 as [boolean; 256u32];\n deserialize.bits.raw r704 ([boolean; 256u32]) into r705 ([u128; 2u32]);\n cast r699[0u32] r699[1u32] 21418297075731751014499913670238572596u128 208490304233564026108050214927462029255u128 into r706 as [u128; 4u32];\n hash.keccak256.native.raw r706 into r707 as [boolean; 256u32];\n deserialize.bits.raw r707 ([boolean; 256u32]) into r708 ([u128; 2u32]);\n ternary r702 r705[0u32] r708[0u32] into r709;\n ternary r702 r705[1u32] r708[1u32] into r710;\n cast r709 r710 into r711 as [u128; 2u32];\n shr r554.count 13u32 into r712;\n and r712 1u32 into r713;\n is.eq r713 1u32 into r714;\n cast r554.branch[13u32][0u32] r554.branch[13u32][1u32] r711[0u32] r711[1u32] into r715 as [u128; 4u32];\n hash.keccak256.native.raw r715 into r716 as [boolean; 256u32];\n deserialize.bits.raw r716 ([boolean; 256u32]) into r717 ([u128; 2u32]);\n cast r711[0u32] r711[1u32] 281404733672930043025800266103516225473u128 249742050973351594617409037165098847317u128 into r718 as [u128; 4u32];\n hash.keccak256.native.raw r718 into r719 as [boolean; 256u32];\n deserialize.bits.raw r719 ([boolean; 256u32]) into r720 ([u128; 2u32]);\n ternary r714 r717[0u32] r720[0u32] into r721;\n ternary r714 r717[1u32] r720[1u32] into r722;\n cast r721 r722 into r723 as [u128; 2u32];\n shr r554.count 14u32 into r724;\n and r724 1u32 into r725;\n is.eq r725 1u32 into r726;\n cast r554.branch[14u32][0u32] r554.branch[14u32][1u32] r723[0u32] r723[1u32] into r727 as [u128; 4u32];\n hash.keccak256.native.raw r727 into r728 as [boolean; 256u32];\n deserialize.bits.raw r728 ([boolean; 256u32]) into r729 ([u128; 2u32]);\n cast r723[0u32] r723[1u32] 289879148739902069907218623618383439708u128 272153760179965878774948581978868862730u128 into r730 as [u128; 4u32];\n hash.keccak256.native.raw r730 into r731 as [boolean; 256u32];\n deserialize.bits.raw r731 ([boolean; 256u32]) into r732 ([u128; 2u32]);\n ternary r726 r729[0u32] r732[0u32] into r733;\n ternary r726 r729[1u32] r732[1u32] into r734;\n cast r733 r734 into r735 as [u128; 2u32];\n shr r554.count 15u32 into r736;\n and r736 1u32 into r737;\n is.eq r737 1u32 into r738;\n cast r554.branch[15u32][0u32] r554.branch[15u32][1u32] r735[0u32] r735[1u32] into r739 as [u128; 4u32];\n hash.keccak256.native.raw r739 into r740 as [boolean; 256u32];\n deserialize.bits.raw r740 ([boolean; 256u32]) into r741 ([u128; 2u32]);\n cast r735[0u32] r735[1u32] 293159551140992943817529578958841871322u128 279338235662809517033392482105447374970u128 into r742 as [u128; 4u32];\n hash.keccak256.native.raw r742 into r743 as [boolean; 256u32];\n deserialize.bits.raw r743 ([boolean; 256u32]) into r744 ([u128; 2u32]);\n ternary r738 r741[0u32] r744[0u32] into r745;\n ternary r738 r741[1u32] r744[1u32] into r746;\n cast r745 r746 into r747 as [u128; 2u32];\n shr r554.count 16u32 into r748;\n and r748 1u32 into r749;\n is.eq r749 1u32 into r750;\n cast r554.branch[16u32][0u32] r554.branch[16u32][1u32] r747[0u32] r747[1u32] into r751 as [u128; 4u32];\n hash.keccak256.native.raw r751 into r752 as [boolean; 256u32];\n deserialize.bits.raw r752 ([boolean; 256u32]) into r753 ([u128; 2u32]);\n cast r747[0u32] r747[1u32] 322093384055859711002317835595919209255u128 42000488150413793222910142038008516924u128 into r754 as [u128; 4u32];\n hash.keccak256.native.raw r754 into r755 as [boolean; 256u32];\n deserialize.bits.raw r755 ([boolean; 256u32]) into r756 ([u128; 2u32]);\n ternary r750 r753[0u32] r756[0u32] into r757;\n ternary r750 r753[1u32] r756[1u32] into r758;\n cast r757 r758 into r759 as [u128; 2u32];\n shr r554.count 17u32 into r760;\n and r760 1u32 into r761;\n is.eq r761 1u32 into r762;\n cast r554.branch[17u32][0u32] r554.branch[17u32][1u32] r759[0u32] r759[1u32] into r763 as [u128; 4u32];\n hash.keccak256.native.raw r763 into r764 as [boolean; 256u32];\n deserialize.bits.raw r764 ([boolean; 256u32]) into r765 ([u128; 2u32]);\n cast r759[0u32] r759[1u32] 122254499464535460357349615889605317601u128 163409875357997099341612933566874181274u128 into r766 as [u128; 4u32];\n hash.keccak256.native.raw r766 into r767 as [boolean; 256u32];\n deserialize.bits.raw r767 ([boolean; 256u32]) into r768 ([u128; 2u32]);\n ternary r762 r765[0u32] r768[0u32] into r769;\n ternary r762 r765[1u32] r768[1u32] into r770;\n cast r769 r770 into r771 as [u128; 2u32];\n shr r554.count 18u32 into r772;\n and r772 1u32 into r773;\n is.eq r773 1u32 into r774;\n cast r554.branch[18u32][0u32] r554.branch[18u32][1u32] r771[0u32] r771[1u32] into r775 as [u128; 4u32];\n hash.keccak256.native.raw r775 into r776 as [boolean; 256u32];\n deserialize.bits.raw r776 ([boolean; 256u32]) into r777 ([u128; 2u32]);\n cast r771[0u32] r771[1u32] 59132542617709958082991564676137889114u128 213307109849065044721731388145721391918u128 into r778 as [u128; 4u32];\n hash.keccak256.native.raw r778 into r779 as [boolean; 256u32];\n deserialize.bits.raw r779 ([boolean; 256u32]) into r780 ([u128; 2u32]);\n ternary r774 r777[0u32] r780[0u32] into r781;\n ternary r774 r777[1u32] r780[1u32] into r782;\n cast r781 r782 into r783 as [u128; 2u32];\n shr r554.count 19u32 into r784;\n and r784 1u32 into r785;\n is.eq r785 1u32 into r786;\n cast r554.branch[19u32][0u32] r554.branch[19u32][1u32] r783[0u32] r783[1u32] into r787 as [u128; 4u32];\n hash.keccak256.native.raw r787 into r788 as [boolean; 256u32];\n deserialize.bits.raw r788 ([boolean; 256u32]) into r789 ([u128; 2u32]);\n cast r783[0u32] r783[1u32] 81821347195604723027123097456320473780u128 213231151757453664031032733501577239314u128 into r790 as [u128; 4u32];\n hash.keccak256.native.raw r790 into r791 as [boolean; 256u32];\n deserialize.bits.raw r791 ([boolean; 256u32]) into r792 ([u128; 2u32]);\n ternary r786 r789[0u32] r792[0u32] into r793;\n ternary r786 r789[1u32] r792[1u32] into r794;\n cast r793 r794 into r795 as [u128; 2u32];\n shr r554.count 20u32 into r796;\n and r796 1u32 into r797;\n is.eq r797 1u32 into r798;\n cast r554.branch[20u32][0u32] r554.branch[20u32][1u32] r795[0u32] r795[1u32] into r799 as [u128; 4u32];\n hash.keccak256.native.raw r799 into r800 as [boolean; 256u32];\n deserialize.bits.raw r800 ([boolean; 256u32]) into r801 ([u128; 2u32]);\n cast r795[0u32] r795[1u32] 336114429845119848727407931190249152198u128 301360598096960973755532425519001651903u128 into r802 as [u128; 4u32];\n hash.keccak256.native.raw r802 into r803 as [boolean; 256u32];\n deserialize.bits.raw r803 ([boolean; 256u32]) into r804 ([u128; 2u32]);\n ternary r798 r801[0u32] r804[0u32] into r805;\n ternary r798 r801[1u32] r804[1u32] into r806;\n cast r805 r806 into r807 as [u128; 2u32];\n shr r554.count 21u32 into r808;\n and r808 1u32 into r809;\n is.eq r809 1u32 into r810;\n cast r554.branch[21u32][0u32] r554.branch[21u32][1u32] r807[0u32] r807[1u32] into r811 as [u128; 4u32];\n hash.keccak256.native.raw r811 into r812 as [boolean; 256u32];\n deserialize.bits.raw r812 ([boolean; 256u32]) into r813 ([u128; 2u32]);\n cast r807[0u32] r807[1u32] 320542506166910886628941017057425965556u128 289604304606881051317113816162407361165u128 into r814 as [u128; 4u32];\n hash.keccak256.native.raw r814 into r815 as [boolean; 256u32];\n deserialize.bits.raw r815 ([boolean; 256u32]) into r816 ([u128; 2u32]);\n ternary r810 r813[0u32] r816[0u32] into r817;\n ternary r810 r813[1u32] r816[1u32] into r818;\n cast r817 r818 into r819 as [u128; 2u32];\n shr r554.count 22u32 into r820;\n and r820 1u32 into r821;\n is.eq r821 1u32 into r822;\n cast r554.branch[22u32][0u32] r554.branch[22u32][1u32] r819[0u32] r819[1u32] into r823 as [u128; 4u32];\n hash.keccak256.native.raw r823 into r824 as [boolean; 256u32];\n deserialize.bits.raw r824 ([boolean; 256u32]) into r825 ([u128; 2u32]);\n cast r819[0u32] r819[1u32] 270315001578019215236444169667452771418u128 159359836010757059645879798671718049365u128 into r826 as [u128; 4u32];\n hash.keccak256.native.raw r826 into r827 as [boolean; 256u32];\n deserialize.bits.raw r827 ([boolean; 256u32]) into r828 ([u128; 2u32]);\n ternary r822 r825[0u32] r828[0u32] into r829;\n ternary r822 r825[1u32] r828[1u32] into r830;\n cast r829 r830 into r831 as [u128; 2u32];\n shr r554.count 23u32 into r832;\n and r832 1u32 into r833;\n is.eq r833 1u32 into r834;\n cast r554.branch[23u32][0u32] r554.branch[23u32][1u32] r831[0u32] r831[1u32] into r835 as [u128; 4u32];\n hash.keccak256.native.raw r835 into r836 as [boolean; 256u32];\n deserialize.bits.raw r836 ([boolean; 256u32]) into r837 ([u128; 2u32]);\n cast r831[0u32] r831[1u32] 222279943939488608983982977534856788045u128 110191212380795297761298100413926971842u128 into r838 as [u128; 4u32];\n hash.keccak256.native.raw r838 into r839 as [boolean; 256u32];\n deserialize.bits.raw r839 ([boolean; 256u32]) into r840 ([u128; 2u32]);\n ternary r834 r837[0u32] r840[0u32] into r841;\n ternary r834 r837[1u32] r840[1u32] into r842;\n cast r841 r842 into r843 as [u128; 2u32];\n shr r554.count 24u32 into r844;\n and r844 1u32 into r845;\n is.eq r845 1u32 into r846;\n cast r554.branch[24u32][0u32] r554.branch[24u32][1u32] r843[0u32] r843[1u32] into r847 as [u128; 4u32];\n hash.keccak256.native.raw r847 into r848 as [boolean; 256u32];\n deserialize.bits.raw r848 ([boolean; 256u32]) into r849 ([u128; 2u32]);\n cast r843[0u32] r843[1u32] 133196525511722763539122868050171643853u128 317818349342580659794271157815744496524u128 into r850 as [u128; 4u32];\n hash.keccak256.native.raw r850 into r851 as [boolean; 256u32];\n deserialize.bits.raw r851 ([boolean; 256u32]) into r852 ([u128; 2u32]);\n ternary r846 r849[0u32] r852[0u32] into r853;\n ternary r846 r849[1u32] r852[1u32] into r854;\n cast r853 r854 into r855 as [u128; 2u32];\n shr r554.count 25u32 into r856;\n and r856 1u32 into r857;\n is.eq r857 1u32 into r858;\n cast r554.branch[25u32][0u32] r554.branch[25u32][1u32] r855[0u32] r855[1u32] into r859 as [u128; 4u32];\n hash.keccak256.native.raw r859 into r860 as [boolean; 256u32];\n deserialize.bits.raw r860 ([boolean; 256u32]) into r861 ([u128; 2u32]);\n cast r855[0u32] r855[1u32] 155004929552231825612177418997554921226u128 187928388822560161625857840976354543861u128 into r862 as [u128; 4u32];\n hash.keccak256.native.raw r862 into r863 as [boolean; 256u32];\n deserialize.bits.raw r863 ([boolean; 256u32]) into r864 ([u128; 2u32]);\n ternary r858 r861[0u32] r864[0u32] into r865;\n ternary r858 r861[1u32] r864[1u32] into r866;\n cast r865 r866 into r867 as [u128; 2u32];\n shr r554.count 26u32 into r868;\n and r868 1u32 into r869;\n is.eq r869 1u32 into r870;\n cast r554.branch[26u32][0u32] r554.branch[26u32][1u32] r867[0u32] r867[1u32] into r871 as [u128; 4u32];\n hash.keccak256.native.raw r871 into r872 as [boolean; 256u32];\n deserialize.bits.raw r872 ([boolean; 256u32]) into r873 ([u128; 2u32]);\n cast r867[0u32] r867[1u32] 133005247855215888074055167590444355000u128 277185228623223348062409148812927309868u128 into r874 as [u128; 4u32];\n hash.keccak256.native.raw r874 into r875 as [boolean; 256u32];\n deserialize.bits.raw r875 ([boolean; 256u32]) into r876 ([u128; 2u32]);\n ternary r870 r873[0u32] r876[0u32] into r877;\n ternary r870 r873[1u32] r876[1u32] into r878;\n cast r877 r878 into r879 as [u128; 2u32];\n shr r554.count 27u32 into r880;\n and r880 1u32 into r881;\n is.eq r881 1u32 into r882;\n cast r554.branch[27u32][0u32] r554.branch[27u32][1u32] r879[0u32] r879[1u32] into r883 as [u128; 4u32];\n hash.keccak256.native.raw r883 into r884 as [boolean; 256u32];\n deserialize.bits.raw r884 ([boolean; 256u32]) into r885 ([u128; 2u32]);\n cast r879[0u32] r879[1u32] 297025694464961376815096585744545123459u128 40897156374938635533147054173498873588u128 into r886 as [u128; 4u32];\n hash.keccak256.native.raw r886 into r887 as [boolean; 256u32];\n deserialize.bits.raw r887 ([boolean; 256u32]) into r888 ([u128; 2u32]);\n ternary r882 r885[0u32] r888[0u32] into r889;\n ternary r882 r885[1u32] r888[1u32] into r890;\n cast r889 r890 into r891 as [u128; 2u32];\n shr r554.count 28u32 into r892;\n and r892 1u32 into r893;\n is.eq r893 1u32 into r894;\n cast r554.branch[28u32][0u32] r554.branch[28u32][1u32] r891[0u32] r891[1u32] into r895 as [u128; 4u32];\n hash.keccak256.native.raw r895 into r896 as [boolean; 256u32];\n deserialize.bits.raw r896 ([boolean; 256u32]) into r897 ([u128; 2u32]);\n cast r891[0u32] r891[1u32] 6336040213458809633392154838101667430u128 62367222880804479430297662353502398838u128 into r898 as [u128; 4u32];\n hash.keccak256.native.raw r898 into r899 as [boolean; 256u32];\n deserialize.bits.raw r899 ([boolean; 256u32]) into r900 ([u128; 2u32]);\n ternary r894 r897[0u32] r900[0u32] into r901;\n ternary r894 r897[1u32] r900[1u32] into r902;\n cast r901 r902 into r903 as [u128; 2u32];\n shr r554.count 29u32 into r904;\n and r904 1u32 into r905;\n is.eq r905 1u32 into r906;\n cast r554.branch[29u32][0u32] r554.branch[29u32][1u32] r903[0u32] r903[1u32] into r907 as [u128; 4u32];\n hash.keccak256.native.raw r907 into r908 as [boolean; 256u32];\n deserialize.bits.raw r908 ([boolean; 256u32]) into r909 ([u128; 2u32]);\n cast r903[0u32] r903[1u32] 202117996738898010692652600915964103224u128 46042986625269866222220954975551057138u128 into r910 as [u128; 4u32];\n hash.keccak256.native.raw r910 into r911 as [boolean; 256u32];\n deserialize.bits.raw r911 ([boolean; 256u32]) into r912 ([u128; 2u32]);\n ternary r906 r909[0u32] r912[0u32] into r913;\n ternary r906 r909[1u32] r912[1u32] into r914;\n cast r913 r914 into r915 as [u128; 2u32];\n shr r554.count 30u32 into r916;\n and r916 1u32 into r917;\n is.eq r917 1u32 into r918;\n cast r554.branch[30u32][0u32] r554.branch[30u32][1u32] r915[0u32] r915[1u32] into r919 as [u128; 4u32];\n hash.keccak256.native.raw r919 into r920 as [boolean; 256u32];\n deserialize.bits.raw r920 ([boolean; 256u32]) into r921 ([u128; 2u32]);\n cast r915[0u32] r915[1u32] 85413120008009180910770793363078390675u128 71567477878241302074513460496530530059u128 into r922 as [u128; 4u32];\n hash.keccak256.native.raw r922 into r923 as [boolean; 256u32];\n deserialize.bits.raw r923 ([boolean; 256u32]) into r924 ([u128; 2u32]);\n ternary r918 r921[0u32] r924[0u32] into r925;\n ternary r918 r921[1u32] r924[1u32] into r926;\n cast r925 r926 into r927 as [u128; 2u32];\n shr r554.count 31u32 into r928;\n and r928 1u32 into r929;\n is.eq r929 1u32 into r930;\n cast r554.branch[31u32][0u32] r554.branch[31u32][1u32] r927[0u32] r927[1u32] into r931 as [u128; 4u32];\n hash.keccak256.native.raw r931 into r932 as [boolean; 256u32];\n deserialize.bits.raw r932 ([boolean; 256u32]) into r933 ([u128; 2u32]);\n cast r927[0u32] r927[1u32] 297864792032486788802704391190316402820u128 225086078672275754295496924647458870974u128 into r934 as [u128; 4u32];\n hash.keccak256.native.raw r934 into r935 as [boolean; 256u32];\n deserialize.bits.raw r935 ([boolean; 256u32]) into r936 ([u128; 2u32]);\n ternary r930 r933[0u32] r936[0u32] into r937;\n ternary r930 r933[1u32] r936[1u32] into r938;\n cast r937 r938 into r939 as [u128; 2u32];\n cast r15.parent r939 r554 r15.nonce into r940 as MerkleTreeHook;\n set r940 into merkle_tree_hooks[r0];\n assert.eq r3 0u64;\n cast r0 r15.tree.count into r941 as HookIndexKey;\n cast r12 r15.tree.count into r942 as InsertedIntoTreeEvent;\n set r942 into inserted_into_tree_events[r941];\n set r15.tree.count into last_event_index[r13];\n branch.eq true true to end_otherwise_0_3;\n position end_then_0_2;\n is.eq r6 4u8 into r943;\n branch.eq r943 false to end_then_1_4;\n get igps[r0] into r944;\n cast r0 r10.destination_domain into r945 as GasConfigKey;\n cast 0u128 0u128 0u128 into r946 as DomainGasConfig;\n get.or_use destination_gas_configs[r945] r946 into r947;\n is.eq r1.gas_limit 0u128 into r948;\n ternary r948 50000u128 r1.gas_limit into r949;\n add r949 r947.gas_overhead into r950;\n mul r950 r947.gas_price into r951;\n mul r951 r947.exchange_rate into r952;\n div r952 10000000000u128 into r953;\n lte r953 18446744073709551615u128 into r954;\n assert.eq r954 true;\n cast r953 into r955 as u64;\n assert.eq r955 r3;\n cast r0 r944.count into r956 as HookIndexKey;\n cast r12 r10.destination_domain r950 r955 r944.count into r957 as GasPaymentEvent;\n set r957 into gas_payment_events[r956];\n set r944.count into last_event_index[r13];\n add r944.balance r3 into r958;\n add r944.count 1u32 into r959;\n cast r944.hook_owner r944.nonce r958 r959 into r960 as InterchainGasPaymaster;\n set r960 into igps[r0];\n branch.eq true true to end_otherwise_1_5;\n position end_then_1_4;\n is.eq r6 0u8 into r961;\n branch.eq r961 false to end_then_2_6;\n assert.eq r3 0u64;\n branch.eq true true to end_otherwise_2_7;\n position end_then_2_6;\n assert.eq false true;\n position end_otherwise_2_7;\n position end_otherwise_1_5;\n position end_otherwise_0_3;\n\nconstructor:\n assert.eq edition 0u16;\n";
|
|
4
|
+
export declare const hyp_collateral = "import credits.aleo;\nimport ism_manager.aleo;\nimport mailbox.aleo;\nimport hook_manager.aleo;\nimport dispatch_proxy.aleo;\nimport token_registry.aleo;\nprogram hyp_collateral.aleo;\n\nstruct RemoteRouter:\n domain as u32;\n recipient as [u8; 32u32];\n gas as u128;\n\nstruct Metadata:\n token_type as u8;\n token_owner as address;\n ism as address;\n hook as address;\n token_id as field;\n local_decimals as u8;\n remote_decimals as u8;\n\nstruct Message:\n version as u8;\n nonce as u32;\n origin_domain as u32;\n sender as [u8; 32u32];\n destination_domain as u32;\n recipient as [u8; 32u32];\n body as [u128; 16u32];\n\nstruct EthAddress:\n bytes as [u8; 20u32];\n\nstruct Mailbox:\n local_domain as u32;\n nonce as u32;\n process_count as u32;\n default_ism as address;\n default_hook as address;\n required_hook as address;\n dispatch_proxy as address;\n mailbox_owner as address;\n\nstruct CreditAllowance:\n spender as address;\n amount as u64;\n\nstruct HookMetadata:\n gas_limit as u128;\n extra_data as [u8; 64u32];\n\nstruct Tree:\n branch as [[u128; 2u32]; 32u32];\n count as u32;\n\nstruct DomainGasConfig:\n gas_overhead as u128;\n exchange_rate as u128;\n gas_price as u128;\n\nstruct MailboxState:\n default_hook as address;\n required_hook as address;\n\nstruct TokenMetadata:\n token_id as field;\n name as u128;\n symbol as u128;\n decimals as u8;\n supply as u128;\n max_supply as u128;\n admin as address;\n external_authorization_required as boolean;\n external_authorization_party as address;\n\nstruct TokenOwner:\n account as address;\n token_id as field;\n\nmapping remote_routers:\n key as u32.public;\n value as RemoteRouter.public;\n\nmapping remote_router_iter:\n key as u32.public;\n value as u32.public;\n\nmapping remote_router_length:\n key as boolean.public;\n value as u32.public;\n\nmapping app_metadata:\n key as boolean.public;\n value as Metadata.public;\n\nfunction init:\n input r0 as [u8; 128u32].public;\n input r1 as field.public;\n input r2 as u8.public;\n call mailbox.aleo/register_application r0 into r3;\n async init r1 r2 self.caller r3 into r4;\n output r4 as hyp_collateral.aleo/init.future;\n\nfinalize init:\n input r0 as field.public;\n input r1 as u8.public;\n input r2 as address.public;\n input r3 as mailbox.aleo/register_application.future;\n get token_registry.aleo/registered_tokens[r0] into r4;\n cast r1 into r5 as i16;\n cast r4.decimals into r6 as i16;\n sub r5 r6 into r7;\n abs r7 into r8;\n lte r8 18i16 into r9;\n assert.eq r9 true;\n contains app_metadata[true] into r10;\n assert.eq r10 false;\n cast 2u8 r2 aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc r0 r4.decimals r1 into r11 as Metadata;\n set r11 into app_metadata[true];\n await r3;\n\nfunction get_address:\n output hyp_collateral.aleo as address.private;\n\nfunction set_custom_hook:\n input r0 as address.private;\n async set_custom_hook self.caller r0 into r1;\n output r1 as hyp_collateral.aleo/set_custom_hook.future;\n\nfinalize set_custom_hook:\n input r0 as address.public;\n input r1 as address.public;\n get app_metadata[true] into r2;\n assert.eq r2.token_owner r0;\n cast r2.token_type r2.token_owner r2.ism r1 r2.token_id r2.local_decimals r2.remote_decimals into r3 as Metadata;\n set r3 into app_metadata[true];\n\nfunction set_custom_ism:\n input r0 as address.private;\n async set_custom_ism self.caller r0 into r1;\n output r1 as hyp_collateral.aleo/set_custom_ism.future;\n\nfinalize set_custom_ism:\n input r0 as address.public;\n input r1 as address.public;\n get app_metadata[true] into r2;\n assert.eq r2.token_owner r0;\n cast r2.token_type r2.token_owner r1 r2.hook r2.token_id r2.local_decimals r2.remote_decimals into r3 as Metadata;\n set r3 into app_metadata[true];\n\nfunction set_owner:\n input r0 as address.private;\n async set_owner self.caller r0 into r1;\n output r1 as hyp_collateral.aleo/set_owner.future;\n\nfinalize set_owner:\n input r0 as address.public;\n input r1 as address.public;\n get app_metadata[true] into r2;\n assert.eq r2.token_owner r0;\n cast r2.token_type r1 r2.ism r2.hook r2.token_id r2.local_decimals r2.remote_decimals into r3 as Metadata;\n set r3 into app_metadata[true];\n\nfunction enroll_remote_router:\n input r0 as u32.private;\n input r1 as [u8; 32u32].private;\n input r2 as u128.private;\n async enroll_remote_router self.caller r0 r1 r2 into r3;\n output r3 as hyp_collateral.aleo/enroll_remote_router.future;\n\nfinalize enroll_remote_router:\n input r0 as address.public;\n input r1 as u32.public;\n input r2 as [u8; 32u32].public;\n input r3 as u128.public;\n get app_metadata[true] into r4;\n assert.eq r4.token_owner r0;\n contains remote_routers[r1] into r5;\n not r5 into r6;\n branch.eq r6 false to end_then_0_0;\n get.or_use remote_router_length[true] 0u32 into r7;\n set r1 into remote_router_iter[r7];\n add r7 1u32 into r8;\n set r8 into remote_router_length[true];\n branch.eq true true to end_otherwise_0_1;\n position end_then_0_0;\n position end_otherwise_0_1;\n cast r1 r2 r3 into r9 as RemoteRouter;\n set r9 into remote_routers[r1];\n\nfunction unroll_remote_router:\n input r0 as u32.private;\n async unroll_remote_router self.caller r0 into r1;\n output r1 as hyp_collateral.aleo/unroll_remote_router.future;\n\nfinalize unroll_remote_router:\n input r0 as address.public;\n input r1 as u32.public;\n get app_metadata[true] into r2;\n assert.eq r2.token_owner r0;\n remove remote_routers[r1];\n\nfunction transfer_remote:\n input r0 as Metadata.public;\n input r1 as MailboxState.public;\n input r2 as RemoteRouter.public;\n input r3 as u32.public;\n input r4 as [u128; 2u32].public;\n input r5 as u128.public;\n input r6 as [CreditAllowance; 4u32].public;\n cast 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 into r7 as [u8; 64u32];\n cast r2.gas r7 into r8 as HookMetadata;\n is.eq r0.local_decimals r0.remote_decimals into r9;\n shr r5 0u8 into r10;\n rem r10 256u128 into r11;\n shl r11 120u8 into r12;\n add 0u128 r12 into r13;\n shr r5 8u8 into r14;\n rem r14 256u128 into r15;\n shl r15 112u8 into r16;\n add r13 r16 into r17;\n shr r5 16u8 into r18;\n rem r18 256u128 into r19;\n shl r19 104u8 into r20;\n add r17 r20 into r21;\n shr r5 24u8 into r22;\n rem r22 256u128 into r23;\n shl r23 96u8 into r24;\n add r21 r24 into r25;\n shr r5 32u8 into r26;\n rem r26 256u128 into r27;\n shl r27 88u8 into r28;\n add r25 r28 into r29;\n shr r5 40u8 into r30;\n rem r30 256u128 into r31;\n shl r31 80u8 into r32;\n add r29 r32 into r33;\n shr r5 48u8 into r34;\n rem r34 256u128 into r35;\n shl r35 72u8 into r36;\n add r33 r36 into r37;\n shr r5 56u8 into r38;\n rem r38 256u128 into r39;\n shl r39 64u8 into r40;\n add r37 r40 into r41;\n shr r5 64u8 into r42;\n rem r42 256u128 into r43;\n shl r43 56u8 into r44;\n add r41 r44 into r45;\n shr r5 72u8 into r46;\n rem r46 256u128 into r47;\n shl r47 48u8 into r48;\n add r45 r48 into r49;\n shr r5 80u8 into r50;\n rem r50 256u128 into r51;\n shl r51 40u8 into r52;\n add r49 r52 into r53;\n shr r5 88u8 into r54;\n rem r54 256u128 into r55;\n shl r55 32u8 into r56;\n add r53 r56 into r57;\n shr r5 96u8 into r58;\n rem r58 256u128 into r59;\n shl r59 24u8 into r60;\n add r57 r60 into r61;\n shr r5 104u8 into r62;\n rem r62 256u128 into r63;\n shl r63 16u8 into r64;\n add r61 r64 into r65;\n shr r5 112u8 into r66;\n rem r66 256u128 into r67;\n shl r67 8u8 into r68;\n add r65 r68 into r69;\n shr r5 120u8 into r70;\n rem r70 256u128 into r71;\n shl r71 0u8 into r72;\n add r69 r72 into r73;\n cast 0u128 r73 into r74 as [u128; 2u32];\n lt r0.remote_decimals r0.local_decimals into r75;\n lt r0.local_decimals r0.remote_decimals into r76;\n ternary r76 r0.remote_decimals r0.local_decimals into r77;\n sub r77 r0.remote_decimals into r78;\n pow 10u128 r78 into r79;\n div r5 r79 into r80;\n shr r80 0u8 into r81;\n rem r81 256u128 into r82;\n shl r82 120u8 into r83;\n add 0u128 r83 into r84;\n shr r80 8u8 into r85;\n rem r85 256u128 into r86;\n shl r86 112u8 into r87;\n add r84 r87 into r88;\n shr r80 16u8 into r89;\n rem r89 256u128 into r90;\n shl r90 104u8 into r91;\n add r88 r91 into r92;\n shr r80 24u8 into r93;\n rem r93 256u128 into r94;\n shl r94 96u8 into r95;\n add r92 r95 into r96;\n shr r80 32u8 into r97;\n rem r97 256u128 into r98;\n shl r98 88u8 into r99;\n add r96 r99 into r100;\n shr r80 40u8 into r101;\n rem r101 256u128 into r102;\n shl r102 80u8 into r103;\n add r100 r103 into r104;\n shr r80 48u8 into r105;\n rem r105 256u128 into r106;\n shl r106 72u8 into r107;\n add r104 r107 into r108;\n shr r80 56u8 into r109;\n rem r109 256u128 into r110;\n shl r110 64u8 into r111;\n add r108 r111 into r112;\n shr r80 64u8 into r113;\n rem r113 256u128 into r114;\n shl r114 56u8 into r115;\n add r112 r115 into r116;\n shr r80 72u8 into r117;\n rem r117 256u128 into r118;\n shl r118 48u8 into r119;\n add r116 r119 into r120;\n shr r80 80u8 into r121;\n rem r121 256u128 into r122;\n shl r122 40u8 into r123;\n add r120 r123 into r124;\n shr r80 88u8 into r125;\n rem r125 256u128 into r126;\n shl r126 32u8 into r127;\n add r124 r127 into r128;\n shr r80 96u8 into r129;\n rem r129 256u128 into r130;\n shl r130 24u8 into r131;\n add r128 r131 into r132;\n shr r80 104u8 into r133;\n rem r133 256u128 into r134;\n shl r134 16u8 into r135;\n add r132 r135 into r136;\n shr r80 112u8 into r137;\n rem r137 256u128 into r138;\n shl r138 8u8 into r139;\n add r136 r139 into r140;\n shr r80 120u8 into r141;\n rem r141 256u128 into r142;\n shl r142 0u8 into r143;\n add r140 r143 into r144;\n cast 0u128 r144 into r145 as [u128; 2u32];\n not r75 into r146;\n gt r0.local_decimals r0.remote_decimals into r147;\n ternary r147 r0.remote_decimals r0.local_decimals into r148;\n cast 0u64 0u64 0u64 0u64 into r149 as [u64; 4u32];\n shr r5 64u32 into r150;\n cast r150 into r151 as u64;\n and r5 18446744073709551615u128 into r152;\n cast r152 into r153 as u64;\n sub r0.remote_decimals r148 into r154;\n pow 10u64 r154 into r155;\n cast r153 into r156 as u128;\n cast r155 into r157 as u128;\n mul r156 r157 into r158;\n add r158 0u128 into r159;\n and r159 18446744073709551615u128 into r160;\n cast r160 into r161 as u64;\n shr r159 64u32 into r162;\n cast r151 into r163 as u128;\n cast r155 into r164 as u128;\n mul r163 r164 into r165;\n add r165 r162 into r166;\n and r166 18446744073709551615u128 into r167;\n cast r167 into r168 as u64;\n shr r166 64u32 into r169;\n cast r149[1u32] into r170 as u128;\n cast r155 into r171 as u128;\n mul r170 r171 into r172;\n add r172 r169 into r173;\n and r173 18446744073709551615u128 into r174;\n cast r174 into r175 as u64;\n shr r173 64u32 into r176;\n cast r149[0u32] into r177 as u128;\n cast r155 into r178 as u128;\n mul r177 r178 into r179;\n add r179 r176 into r180;\n and r180 18446744073709551615u128 into r181;\n cast r181 into r182 as u64;\n shr r180 64u32 into r183;\n not r146 into r184;\n or r9 r75 into r185;\n is.eq r183 0u128 into r186;\n or r186 r184 into r187;\n or r187 r185 into r188;\n assert.eq r188 true;\n cast r182 into r189 as u128;\n shl r189 64u32 into r190;\n cast r175 into r191 as u128;\n add r190 r191 into r192;\n cast r168 into r193 as u128;\n shl r193 64u32 into r194;\n cast r161 into r195 as u128;\n add r194 r195 into r196;\n shr r192 0u8 into r197;\n rem r197 256u128 into r198;\n shl r198 120u8 into r199;\n add 0u128 r199 into r200;\n shr r192 8u8 into r201;\n rem r201 256u128 into r202;\n shl r202 112u8 into r203;\n add r200 r203 into r204;\n shr r192 16u8 into r205;\n rem r205 256u128 into r206;\n shl r206 104u8 into r207;\n add r204 r207 into r208;\n shr r192 24u8 into r209;\n rem r209 256u128 into r210;\n shl r210 96u8 into r211;\n add r208 r211 into r212;\n shr r192 32u8 into r213;\n rem r213 256u128 into r214;\n shl r214 88u8 into r215;\n add r212 r215 into r216;\n shr r192 40u8 into r217;\n rem r217 256u128 into r218;\n shl r218 80u8 into r219;\n add r216 r219 into r220;\n shr r192 48u8 into r221;\n rem r221 256u128 into r222;\n shl r222 72u8 into r223;\n add r220 r223 into r224;\n shr r192 56u8 into r225;\n rem r225 256u128 into r226;\n shl r226 64u8 into r227;\n add r224 r227 into r228;\n shr r192 64u8 into r229;\n rem r229 256u128 into r230;\n shl r230 56u8 into r231;\n add r228 r231 into r232;\n shr r192 72u8 into r233;\n rem r233 256u128 into r234;\n shl r234 48u8 into r235;\n add r232 r235 into r236;\n shr r192 80u8 into r237;\n rem r237 256u128 into r238;\n shl r238 40u8 into r239;\n add r236 r239 into r240;\n shr r192 88u8 into r241;\n rem r241 256u128 into r242;\n shl r242 32u8 into r243;\n add r240 r243 into r244;\n shr r192 96u8 into r245;\n rem r245 256u128 into r246;\n shl r246 24u8 into r247;\n add r244 r247 into r248;\n shr r192 104u8 into r249;\n rem r249 256u128 into r250;\n shl r250 16u8 into r251;\n add r248 r251 into r252;\n shr r192 112u8 into r253;\n rem r253 256u128 into r254;\n shl r254 8u8 into r255;\n add r252 r255 into r256;\n shr r192 120u8 into r257;\n rem r257 256u128 into r258;\n shl r258 0u8 into r259;\n add r256 r259 into r260;\n shr r196 0u8 into r261;\n rem r261 256u128 into r262;\n shl r262 120u8 into r263;\n add 0u128 r263 into r264;\n shr r196 8u8 into r265;\n rem r265 256u128 into r266;\n shl r266 112u8 into r267;\n add r264 r267 into r268;\n shr r196 16u8 into r269;\n rem r269 256u128 into r270;\n shl r270 104u8 into r271;\n add r268 r271 into r272;\n shr r196 24u8 into r273;\n rem r273 256u128 into r274;\n shl r274 96u8 into r275;\n add r272 r275 into r276;\n shr r196 32u8 into r277;\n rem r277 256u128 into r278;\n shl r278 88u8 into r279;\n add r276 r279 into r280;\n shr r196 40u8 into r281;\n rem r281 256u128 into r282;\n shl r282 80u8 into r283;\n add r280 r283 into r284;\n shr r196 48u8 into r285;\n rem r285 256u128 into r286;\n shl r286 72u8 into r287;\n add r284 r287 into r288;\n shr r196 56u8 into r289;\n rem r289 256u128 into r290;\n shl r290 64u8 into r291;\n add r288 r291 into r292;\n shr r196 64u8 into r293;\n rem r293 256u128 into r294;\n shl r294 56u8 into r295;\n add r292 r295 into r296;\n shr r196 72u8 into r297;\n rem r297 256u128 into r298;\n shl r298 48u8 into r299;\n add r296 r299 into r300;\n shr r196 80u8 into r301;\n rem r301 256u128 into r302;\n shl r302 40u8 into r303;\n add r300 r303 into r304;\n shr r196 88u8 into r305;\n rem r305 256u128 into r306;\n shl r306 32u8 into r307;\n add r304 r307 into r308;\n shr r196 96u8 into r309;\n rem r309 256u128 into r310;\n shl r310 24u8 into r311;\n add r308 r311 into r312;\n shr r196 104u8 into r313;\n rem r313 256u128 into r314;\n shl r314 16u8 into r315;\n add r312 r315 into r316;\n shr r196 112u8 into r317;\n rem r317 256u128 into r318;\n shl r318 8u8 into r319;\n add r316 r319 into r320;\n shr r196 120u8 into r321;\n rem r321 256u128 into r322;\n shl r322 0u8 into r323;\n add r320 r323 into r324;\n cast r260 r324 into r325 as [u128; 2u32];\n ternary r75 r145[0u32] r325[0u32] into r326;\n ternary r75 r145[1u32] r325[1u32] into r327;\n cast r326 r327 into r328 as [u128; 2u32];\n ternary r9 r74[0u32] r328[0u32] into r329;\n ternary r9 r74[1u32] r328[1u32] into r330;\n cast r329 r330 into r331 as [u128; 2u32];\n cast 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 into r332 as [u128; 16u32];\n cast r4[0u32] r4[1u32] r331[0u32] r331[1u32] r332[4u32] r332[5u32] r332[6u32] r332[7u32] r332[8u32] r332[9u32] r332[10u32] r332[11u32] r332[12u32] r332[13u32] r332[14u32] r332[15u32] into r333 as [u128; 16u32];\n call dispatch_proxy.aleo/dispatch r1 r3 r2.recipient r333 r0.hook r8 r6 into r334;\n call token_registry.aleo/transfer_public_as_signer r0.token_id hyp_collateral.aleo r5 into r335;\n async transfer_remote r334 r335 r2 r3 r0 into r336;\n output r336 as hyp_collateral.aleo/transfer_remote.future;\n\nfinalize transfer_remote:\n input r0 as dispatch_proxy.aleo/dispatch.future;\n input r1 as token_registry.aleo/transfer_public_as_signer.future;\n input r2 as RemoteRouter.public;\n input r3 as u32.public;\n input r4 as Metadata.public;\n get remote_routers[r3] into r5;\n assert.eq r5 r2;\n get app_metadata[true] into r6;\n assert.eq r4 r6;\n await r0;\n await r1;\n\nfunction transfer_remote_with_hook:\n input r0 as Metadata.public;\n input r1 as MailboxState.public;\n input r2 as RemoteRouter.public;\n input r3 as u32.public;\n input r4 as [u128; 2u32].public;\n input r5 as u128.public;\n input r6 as [CreditAllowance; 4u32].public;\n input r7 as address.public;\n input r8 as HookMetadata.public;\n is.eq r8.gas_limit 0u128 into r9;\n ternary r9 r2.gas r8.gas_limit into r10;\n is.eq r0.local_decimals r0.remote_decimals into r11;\n shr r5 0u8 into r12;\n rem r12 256u128 into r13;\n shl r13 120u8 into r14;\n add 0u128 r14 into r15;\n shr r5 8u8 into r16;\n rem r16 256u128 into r17;\n shl r17 112u8 into r18;\n add r15 r18 into r19;\n shr r5 16u8 into r20;\n rem r20 256u128 into r21;\n shl r21 104u8 into r22;\n add r19 r22 into r23;\n shr r5 24u8 into r24;\n rem r24 256u128 into r25;\n shl r25 96u8 into r26;\n add r23 r26 into r27;\n shr r5 32u8 into r28;\n rem r28 256u128 into r29;\n shl r29 88u8 into r30;\n add r27 r30 into r31;\n shr r5 40u8 into r32;\n rem r32 256u128 into r33;\n shl r33 80u8 into r34;\n add r31 r34 into r35;\n shr r5 48u8 into r36;\n rem r36 256u128 into r37;\n shl r37 72u8 into r38;\n add r35 r38 into r39;\n shr r5 56u8 into r40;\n rem r40 256u128 into r41;\n shl r41 64u8 into r42;\n add r39 r42 into r43;\n shr r5 64u8 into r44;\n rem r44 256u128 into r45;\n shl r45 56u8 into r46;\n add r43 r46 into r47;\n shr r5 72u8 into r48;\n rem r48 256u128 into r49;\n shl r49 48u8 into r50;\n add r47 r50 into r51;\n shr r5 80u8 into r52;\n rem r52 256u128 into r53;\n shl r53 40u8 into r54;\n add r51 r54 into r55;\n shr r5 88u8 into r56;\n rem r56 256u128 into r57;\n shl r57 32u8 into r58;\n add r55 r58 into r59;\n shr r5 96u8 into r60;\n rem r60 256u128 into r61;\n shl r61 24u8 into r62;\n add r59 r62 into r63;\n shr r5 104u8 into r64;\n rem r64 256u128 into r65;\n shl r65 16u8 into r66;\n add r63 r66 into r67;\n shr r5 112u8 into r68;\n rem r68 256u128 into r69;\n shl r69 8u8 into r70;\n add r67 r70 into r71;\n shr r5 120u8 into r72;\n rem r72 256u128 into r73;\n shl r73 0u8 into r74;\n add r71 r74 into r75;\n cast 0u128 r75 into r76 as [u128; 2u32];\n lt r0.remote_decimals r0.local_decimals into r77;\n lt r0.local_decimals r0.remote_decimals into r78;\n ternary r78 r0.remote_decimals r0.local_decimals into r79;\n sub r79 r0.remote_decimals into r80;\n pow 10u128 r80 into r81;\n div r5 r81 into r82;\n shr r82 0u8 into r83;\n rem r83 256u128 into r84;\n shl r84 120u8 into r85;\n add 0u128 r85 into r86;\n shr r82 8u8 into r87;\n rem r87 256u128 into r88;\n shl r88 112u8 into r89;\n add r86 r89 into r90;\n shr r82 16u8 into r91;\n rem r91 256u128 into r92;\n shl r92 104u8 into r93;\n add r90 r93 into r94;\n shr r82 24u8 into r95;\n rem r95 256u128 into r96;\n shl r96 96u8 into r97;\n add r94 r97 into r98;\n shr r82 32u8 into r99;\n rem r99 256u128 into r100;\n shl r100 88u8 into r101;\n add r98 r101 into r102;\n shr r82 40u8 into r103;\n rem r103 256u128 into r104;\n shl r104 80u8 into r105;\n add r102 r105 into r106;\n shr r82 48u8 into r107;\n rem r107 256u128 into r108;\n shl r108 72u8 into r109;\n add r106 r109 into r110;\n shr r82 56u8 into r111;\n rem r111 256u128 into r112;\n shl r112 64u8 into r113;\n add r110 r113 into r114;\n shr r82 64u8 into r115;\n rem r115 256u128 into r116;\n shl r116 56u8 into r117;\n add r114 r117 into r118;\n shr r82 72u8 into r119;\n rem r119 256u128 into r120;\n shl r120 48u8 into r121;\n add r118 r121 into r122;\n shr r82 80u8 into r123;\n rem r123 256u128 into r124;\n shl r124 40u8 into r125;\n add r122 r125 into r126;\n shr r82 88u8 into r127;\n rem r127 256u128 into r128;\n shl r128 32u8 into r129;\n add r126 r129 into r130;\n shr r82 96u8 into r131;\n rem r131 256u128 into r132;\n shl r132 24u8 into r133;\n add r130 r133 into r134;\n shr r82 104u8 into r135;\n rem r135 256u128 into r136;\n shl r136 16u8 into r137;\n add r134 r137 into r138;\n shr r82 112u8 into r139;\n rem r139 256u128 into r140;\n shl r140 8u8 into r141;\n add r138 r141 into r142;\n shr r82 120u8 into r143;\n rem r143 256u128 into r144;\n shl r144 0u8 into r145;\n add r142 r145 into r146;\n cast 0u128 r146 into r147 as [u128; 2u32];\n not r77 into r148;\n gt r0.local_decimals r0.remote_decimals into r149;\n ternary r149 r0.remote_decimals r0.local_decimals into r150;\n cast 0u64 0u64 0u64 0u64 into r151 as [u64; 4u32];\n shr r5 64u32 into r152;\n cast r152 into r153 as u64;\n and r5 18446744073709551615u128 into r154;\n cast r154 into r155 as u64;\n sub r0.remote_decimals r150 into r156;\n pow 10u64 r156 into r157;\n cast r155 into r158 as u128;\n cast r157 into r159 as u128;\n mul r158 r159 into r160;\n add r160 0u128 into r161;\n and r161 18446744073709551615u128 into r162;\n cast r162 into r163 as u64;\n shr r161 64u32 into r164;\n cast r153 into r165 as u128;\n cast r157 into r166 as u128;\n mul r165 r166 into r167;\n add r167 r164 into r168;\n and r168 18446744073709551615u128 into r169;\n cast r169 into r170 as u64;\n shr r168 64u32 into r171;\n cast r151[1u32] into r172 as u128;\n cast r157 into r173 as u128;\n mul r172 r173 into r174;\n add r174 r171 into r175;\n and r175 18446744073709551615u128 into r176;\n cast r176 into r177 as u64;\n shr r175 64u32 into r178;\n cast r151[0u32] into r179 as u128;\n cast r157 into r180 as u128;\n mul r179 r180 into r181;\n add r181 r178 into r182;\n and r182 18446744073709551615u128 into r183;\n cast r183 into r184 as u64;\n shr r182 64u32 into r185;\n not r148 into r186;\n or r11 r77 into r187;\n is.eq r185 0u128 into r188;\n or r188 r186 into r189;\n or r189 r187 into r190;\n assert.eq r190 true;\n cast r184 into r191 as u128;\n shl r191 64u32 into r192;\n cast r177 into r193 as u128;\n add r192 r193 into r194;\n cast r170 into r195 as u128;\n shl r195 64u32 into r196;\n cast r163 into r197 as u128;\n add r196 r197 into r198;\n shr r194 0u8 into r199;\n rem r199 256u128 into r200;\n shl r200 120u8 into r201;\n add 0u128 r201 into r202;\n shr r194 8u8 into r203;\n rem r203 256u128 into r204;\n shl r204 112u8 into r205;\n add r202 r205 into r206;\n shr r194 16u8 into r207;\n rem r207 256u128 into r208;\n shl r208 104u8 into r209;\n add r206 r209 into r210;\n shr r194 24u8 into r211;\n rem r211 256u128 into r212;\n shl r212 96u8 into r213;\n add r210 r213 into r214;\n shr r194 32u8 into r215;\n rem r215 256u128 into r216;\n shl r216 88u8 into r217;\n add r214 r217 into r218;\n shr r194 40u8 into r219;\n rem r219 256u128 into r220;\n shl r220 80u8 into r221;\n add r218 r221 into r222;\n shr r194 48u8 into r223;\n rem r223 256u128 into r224;\n shl r224 72u8 into r225;\n add r222 r225 into r226;\n shr r194 56u8 into r227;\n rem r227 256u128 into r228;\n shl r228 64u8 into r229;\n add r226 r229 into r230;\n shr r194 64u8 into r231;\n rem r231 256u128 into r232;\n shl r232 56u8 into r233;\n add r230 r233 into r234;\n shr r194 72u8 into r235;\n rem r235 256u128 into r236;\n shl r236 48u8 into r237;\n add r234 r237 into r238;\n shr r194 80u8 into r239;\n rem r239 256u128 into r240;\n shl r240 40u8 into r241;\n add r238 r241 into r242;\n shr r194 88u8 into r243;\n rem r243 256u128 into r244;\n shl r244 32u8 into r245;\n add r242 r245 into r246;\n shr r194 96u8 into r247;\n rem r247 256u128 into r248;\n shl r248 24u8 into r249;\n add r246 r249 into r250;\n shr r194 104u8 into r251;\n rem r251 256u128 into r252;\n shl r252 16u8 into r253;\n add r250 r253 into r254;\n shr r194 112u8 into r255;\n rem r255 256u128 into r256;\n shl r256 8u8 into r257;\n add r254 r257 into r258;\n shr r194 120u8 into r259;\n rem r259 256u128 into r260;\n shl r260 0u8 into r261;\n add r258 r261 into r262;\n shr r198 0u8 into r263;\n rem r263 256u128 into r264;\n shl r264 120u8 into r265;\n add 0u128 r265 into r266;\n shr r198 8u8 into r267;\n rem r267 256u128 into r268;\n shl r268 112u8 into r269;\n add r266 r269 into r270;\n shr r198 16u8 into r271;\n rem r271 256u128 into r272;\n shl r272 104u8 into r273;\n add r270 r273 into r274;\n shr r198 24u8 into r275;\n rem r275 256u128 into r276;\n shl r276 96u8 into r277;\n add r274 r277 into r278;\n shr r198 32u8 into r279;\n rem r279 256u128 into r280;\n shl r280 88u8 into r281;\n add r278 r281 into r282;\n shr r198 40u8 into r283;\n rem r283 256u128 into r284;\n shl r284 80u8 into r285;\n add r282 r285 into r286;\n shr r198 48u8 into r287;\n rem r287 256u128 into r288;\n shl r288 72u8 into r289;\n add r286 r289 into r290;\n shr r198 56u8 into r291;\n rem r291 256u128 into r292;\n shl r292 64u8 into r293;\n add r290 r293 into r294;\n shr r198 64u8 into r295;\n rem r295 256u128 into r296;\n shl r296 56u8 into r297;\n add r294 r297 into r298;\n shr r198 72u8 into r299;\n rem r299 256u128 into r300;\n shl r300 48u8 into r301;\n add r298 r301 into r302;\n shr r198 80u8 into r303;\n rem r303 256u128 into r304;\n shl r304 40u8 into r305;\n add r302 r305 into r306;\n shr r198 88u8 into r307;\n rem r307 256u128 into r308;\n shl r308 32u8 into r309;\n add r306 r309 into r310;\n shr r198 96u8 into r311;\n rem r311 256u128 into r312;\n shl r312 24u8 into r313;\n add r310 r313 into r314;\n shr r198 104u8 into r315;\n rem r315 256u128 into r316;\n shl r316 16u8 into r317;\n add r314 r317 into r318;\n shr r198 112u8 into r319;\n rem r319 256u128 into r320;\n shl r320 8u8 into r321;\n add r318 r321 into r322;\n shr r198 120u8 into r323;\n rem r323 256u128 into r324;\n shl r324 0u8 into r325;\n add r322 r325 into r326;\n cast r262 r326 into r327 as [u128; 2u32];\n ternary r77 r147[0u32] r327[0u32] into r328;\n ternary r77 r147[1u32] r327[1u32] into r329;\n cast r328 r329 into r330 as [u128; 2u32];\n ternary r11 r76[0u32] r330[0u32] into r331;\n ternary r11 r76[1u32] r330[1u32] into r332;\n cast r331 r332 into r333 as [u128; 2u32];\n cast 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 into r334 as [u128; 16u32];\n cast r4[0u32] r4[1u32] r333[0u32] r333[1u32] r334[4u32] r334[5u32] r334[6u32] r334[7u32] r334[8u32] r334[9u32] r334[10u32] r334[11u32] r334[12u32] r334[13u32] r334[14u32] r334[15u32] into r335 as [u128; 16u32];\n cast r10 r8.extra_data into r336 as HookMetadata;\n call dispatch_proxy.aleo/dispatch r1 r3 r2.recipient r335 r7 r336 r6 into r337;\n call token_registry.aleo/transfer_public_as_signer r0.token_id hyp_collateral.aleo r5 into r338;\n async transfer_remote_with_hook r337 r338 r2 r3 r0 into r339;\n output r339 as hyp_collateral.aleo/transfer_remote_with_hook.future;\n\nfinalize transfer_remote_with_hook:\n input r0 as dispatch_proxy.aleo/dispatch.future;\n input r1 as token_registry.aleo/transfer_public_as_signer.future;\n input r2 as RemoteRouter.public;\n input r3 as u32.public;\n input r4 as Metadata.public;\n get remote_routers[r3] into r5;\n assert.eq r5 r2;\n get app_metadata[true] into r6;\n assert.eq r4 r6;\n await r0;\n await r1;\n\nfunction process:\n input r0 as address.public;\n input r1 as Metadata.public;\n input r2 as Message.public;\n input r3 as u32.public;\n input r4 as [u128; 2u32].public;\n input r5 as [u8; 512u32].public;\n call mailbox.aleo/process r0 r2 r3 r4 r5 into r6;\n cast r2.body[0u32] r2.body[1u32] into r7 as [u128; 2u32];\n serialize.bits.raw r7 ([u128; 2u32]) into r8 ([boolean; 256u32]);\n cast r8[0u32] r8[1u32] r8[2u32] r8[3u32] r8[4u32] r8[5u32] r8[6u32] r8[7u32] r8[8u32] r8[9u32] r8[10u32] r8[11u32] r8[12u32] r8[13u32] r8[14u32] r8[15u32] r8[16u32] r8[17u32] r8[18u32] r8[19u32] r8[20u32] r8[21u32] r8[22u32] r8[23u32] r8[24u32] r8[25u32] r8[26u32] r8[27u32] r8[28u32] r8[29u32] r8[30u32] r8[31u32] r8[32u32] r8[33u32] r8[34u32] r8[35u32] r8[36u32] r8[37u32] r8[38u32] r8[39u32] r8[40u32] r8[41u32] r8[42u32] r8[43u32] r8[44u32] r8[45u32] r8[46u32] r8[47u32] r8[48u32] r8[49u32] r8[50u32] r8[51u32] r8[52u32] r8[53u32] r8[54u32] r8[55u32] r8[56u32] r8[57u32] r8[58u32] r8[59u32] r8[60u32] r8[61u32] r8[62u32] r8[63u32] r8[64u32] r8[65u32] r8[66u32] r8[67u32] r8[68u32] r8[69u32] r8[70u32] r8[71u32] r8[72u32] r8[73u32] r8[74u32] r8[75u32] r8[76u32] r8[77u32] r8[78u32] r8[79u32] r8[80u32] r8[81u32] r8[82u32] r8[83u32] r8[84u32] r8[85u32] r8[86u32] r8[87u32] r8[88u32] r8[89u32] r8[90u32] r8[91u32] r8[92u32] r8[93u32] r8[94u32] r8[95u32] r8[96u32] r8[97u32] r8[98u32] r8[99u32] r8[100u32] r8[101u32] r8[102u32] r8[103u32] r8[104u32] r8[105u32] r8[106u32] r8[107u32] r8[108u32] r8[109u32] r8[110u32] r8[111u32] r8[112u32] r8[113u32] r8[114u32] r8[115u32] r8[116u32] r8[117u32] r8[118u32] r8[119u32] r8[120u32] r8[121u32] r8[122u32] r8[123u32] r8[124u32] r8[125u32] r8[126u32] r8[127u32] r8[128u32] r8[129u32] r8[130u32] r8[131u32] r8[132u32] r8[133u32] r8[134u32] r8[135u32] r8[136u32] r8[137u32] r8[138u32] r8[139u32] r8[140u32] r8[141u32] r8[142u32] r8[143u32] r8[144u32] r8[145u32] r8[146u32] r8[147u32] r8[148u32] r8[149u32] r8[150u32] r8[151u32] r8[152u32] r8[153u32] r8[154u32] r8[155u32] r8[156u32] r8[157u32] r8[158u32] r8[159u32] r8[160u32] r8[161u32] r8[162u32] r8[163u32] r8[164u32] r8[165u32] r8[166u32] r8[167u32] r8[168u32] r8[169u32] r8[170u32] r8[171u32] r8[172u32] r8[173u32] r8[174u32] r8[175u32] r8[176u32] r8[177u32] r8[178u32] r8[179u32] r8[180u32] r8[181u32] r8[182u32] r8[183u32] r8[184u32] r8[185u32] r8[186u32] r8[187u32] r8[188u32] r8[189u32] r8[190u32] r8[191u32] r8[192u32] r8[193u32] r8[194u32] r8[195u32] r8[196u32] r8[197u32] r8[198u32] r8[199u32] r8[200u32] r8[201u32] r8[202u32] r8[203u32] r8[204u32] r8[205u32] r8[206u32] r8[207u32] r8[208u32] r8[209u32] r8[210u32] r8[211u32] r8[212u32] r8[213u32] r8[214u32] r8[215u32] r8[216u32] r8[217u32] r8[218u32] r8[219u32] r8[220u32] r8[221u32] r8[222u32] r8[223u32] r8[224u32] r8[225u32] r8[226u32] r8[227u32] r8[228u32] r8[229u32] r8[230u32] r8[231u32] r8[232u32] r8[233u32] r8[234u32] r8[235u32] r8[236u32] r8[237u32] r8[238u32] r8[239u32] r8[240u32] r8[241u32] r8[242u32] r8[243u32] r8[244u32] r8[245u32] r8[246u32] r8[247u32] r8[248u32] r8[249u32] r8[250u32] r8[251u32] r8[252u32] into r9 as [boolean; 253u32];\n deserialize.bits.raw r9 ([boolean; 253u32]) into r10 (address);\n cast r2.body[2u32] r2.body[3u32] into r11 as [u128; 2u32];\n is.eq r1.local_decimals r1.remote_decimals into r12;\n shr r11[1u32] 0u8 into r13;\n rem r13 256u128 into r14;\n shl r14 120u8 into r15;\n add 0u128 r15 into r16;\n shr r11[1u32] 8u8 into r17;\n rem r17 256u128 into r18;\n shl r18 112u8 into r19;\n add r16 r19 into r20;\n shr r11[1u32] 16u8 into r21;\n rem r21 256u128 into r22;\n shl r22 104u8 into r23;\n add r20 r23 into r24;\n shr r11[1u32] 24u8 into r25;\n rem r25 256u128 into r26;\n shl r26 96u8 into r27;\n add r24 r27 into r28;\n shr r11[1u32] 32u8 into r29;\n rem r29 256u128 into r30;\n shl r30 88u8 into r31;\n add r28 r31 into r32;\n shr r11[1u32] 40u8 into r33;\n rem r33 256u128 into r34;\n shl r34 80u8 into r35;\n add r32 r35 into r36;\n shr r11[1u32] 48u8 into r37;\n rem r37 256u128 into r38;\n shl r38 72u8 into r39;\n add r36 r39 into r40;\n shr r11[1u32] 56u8 into r41;\n rem r41 256u128 into r42;\n shl r42 64u8 into r43;\n add r40 r43 into r44;\n shr r11[1u32] 64u8 into r45;\n rem r45 256u128 into r46;\n shl r46 56u8 into r47;\n add r44 r47 into r48;\n shr r11[1u32] 72u8 into r49;\n rem r49 256u128 into r50;\n shl r50 48u8 into r51;\n add r48 r51 into r52;\n shr r11[1u32] 80u8 into r53;\n rem r53 256u128 into r54;\n shl r54 40u8 into r55;\n add r52 r55 into r56;\n shr r11[1u32] 88u8 into r57;\n rem r57 256u128 into r58;\n shl r58 32u8 into r59;\n add r56 r59 into r60;\n shr r11[1u32] 96u8 into r61;\n rem r61 256u128 into r62;\n shl r62 24u8 into r63;\n add r60 r63 into r64;\n shr r11[1u32] 104u8 into r65;\n rem r65 256u128 into r66;\n shl r66 16u8 into r67;\n add r64 r67 into r68;\n shr r11[1u32] 112u8 into r69;\n rem r69 256u128 into r70;\n shl r70 8u8 into r71;\n add r68 r71 into r72;\n shr r11[1u32] 120u8 into r73;\n rem r73 256u128 into r74;\n shl r74 0u8 into r75;\n add r72 r75 into r76;\n lt r1.remote_decimals r1.local_decimals into r77;\n lt r1.local_decimals r1.remote_decimals into r78;\n ternary r78 r1.remote_decimals r1.local_decimals into r79;\n sub r79 r1.remote_decimals into r80;\n not r77 into r81;\n is.eq r11[0u32] 0u128 into r82;\n or r82 r81 into r83;\n or r83 r12 into r84;\n assert.eq r84 true;\n pow 10u64 r80 into r85;\n cast r85 into r86 as u128;\n mul r76 r86 into r87;\n gt r1.local_decimals r1.remote_decimals into r88;\n ternary r88 r1.remote_decimals r1.local_decimals into r89;\n sub r1.remote_decimals r89 into r90;\n pow 10u64 r90 into r91;\n serialize.bits.raw r11 ([u128; 2u32]) into r92 ([boolean; 256u32]);\n deserialize.bits.raw r92 ([boolean; 256u32]) into r93 ([u8; 32u32]);\n cast r93[0u32] into r94 as u64;\n shl r94 56u32 into r95;\n add 0u64 r95 into r96;\n cast r93[1u32] into r97 as u64;\n shl r97 48u32 into r98;\n add r96 r98 into r99;\n cast r93[2u32] into r100 as u64;\n shl r100 40u32 into r101;\n add r99 r101 into r102;\n cast r93[3u32] into r103 as u64;\n shl r103 32u32 into r104;\n add r102 r104 into r105;\n cast r93[4u32] into r106 as u64;\n shl r106 24u32 into r107;\n add r105 r107 into r108;\n cast r93[5u32] into r109 as u64;\n shl r109 16u32 into r110;\n add r108 r110 into r111;\n cast r93[6u32] into r112 as u64;\n shl r112 8u32 into r113;\n add r111 r113 into r114;\n cast r93[7u32] into r115 as u64;\n shl r115 0u32 into r116;\n add r114 r116 into r117;\n cast r93[8u32] into r118 as u64;\n shl r118 56u32 into r119;\n add 0u64 r119 into r120;\n cast r93[9u32] into r121 as u64;\n shl r121 48u32 into r122;\n add r120 r122 into r123;\n cast r93[10u32] into r124 as u64;\n shl r124 40u32 into r125;\n add r123 r125 into r126;\n cast r93[11u32] into r127 as u64;\n shl r127 32u32 into r128;\n add r126 r128 into r129;\n cast r93[12u32] into r130 as u64;\n shl r130 24u32 into r131;\n add r129 r131 into r132;\n cast r93[13u32] into r133 as u64;\n shl r133 16u32 into r134;\n add r132 r134 into r135;\n cast r93[14u32] into r136 as u64;\n shl r136 8u32 into r137;\n add r135 r137 into r138;\n cast r93[15u32] into r139 as u64;\n shl r139 0u32 into r140;\n add r138 r140 into r141;\n cast r93[16u32] into r142 as u64;\n shl r142 56u32 into r143;\n add 0u64 r143 into r144;\n cast r93[17u32] into r145 as u64;\n shl r145 48u32 into r146;\n add r144 r146 into r147;\n cast r93[18u32] into r148 as u64;\n shl r148 40u32 into r149;\n add r147 r149 into r150;\n cast r93[19u32] into r151 as u64;\n shl r151 32u32 into r152;\n add r150 r152 into r153;\n cast r93[20u32] into r154 as u64;\n shl r154 24u32 into r155;\n add r153 r155 into r156;\n cast r93[21u32] into r157 as u64;\n shl r157 16u32 into r158;\n add r156 r158 into r159;\n cast r93[22u32] into r160 as u64;\n shl r160 8u32 into r161;\n add r159 r161 into r162;\n cast r93[23u32] into r163 as u64;\n shl r163 0u32 into r164;\n add r162 r164 into r165;\n cast r93[24u32] into r166 as u64;\n shl r166 56u32 into r167;\n add 0u64 r167 into r168;\n cast r93[25u32] into r169 as u64;\n shl r169 48u32 into r170;\n add r168 r170 into r171;\n cast r93[26u32] into r172 as u64;\n shl r172 40u32 into r173;\n add r171 r173 into r174;\n cast r93[27u32] into r175 as u64;\n shl r175 32u32 into r176;\n add r174 r176 into r177;\n cast r93[28u32] into r178 as u64;\n shl r178 24u32 into r179;\n add r177 r179 into r180;\n cast r93[29u32] into r181 as u64;\n shl r181 16u32 into r182;\n add r180 r182 into r183;\n cast r93[30u32] into r184 as u64;\n shl r184 8u32 into r185;\n add r183 r185 into r186;\n cast r93[31u32] into r187 as u64;\n shl r187 0u32 into r188;\n add r186 r188 into r189;\n shl 0u128 64u32 into r190;\n cast r117 into r191 as u128;\n or r190 r191 into r192;\n cast r91 into r193 as u128;\n div r192 r193 into r194;\n cast r194 into r195 as u64;\n cast r91 into r196 as u128;\n rem r192 r196 into r197;\n shl r197 64u32 into r198;\n cast r141 into r199 as u128;\n or r198 r199 into r200;\n cast r91 into r201 as u128;\n div r200 r201 into r202;\n cast r202 into r203 as u64;\n cast r91 into r204 as u128;\n rem r200 r204 into r205;\n shl r205 64u32 into r206;\n cast r165 into r207 as u128;\n or r206 r207 into r208;\n cast r91 into r209 as u128;\n div r208 r209 into r210;\n cast r210 into r211 as u64;\n cast r91 into r212 as u128;\n rem r208 r212 into r213;\n shl r213 64u32 into r214;\n cast r189 into r215 as u128;\n or r214 r215 into r216;\n cast r91 into r217 as u128;\n div r216 r217 into r218;\n cast r218 into r219 as u64;\n cast r91 into r220 as u128;\n rem r216 r220 into r221;\n assert.eq r195 0u64;\n assert.eq r203 0u64;\n cast r211 into r222 as u128;\n shl r222 64u32 into r223;\n cast r219 into r224 as u128;\n or r223 r224 into r225;\n ternary r77 r87 r225 into r226;\n ternary r12 r76 r226 into r227;\n call token_registry.aleo/transfer_public r1.token_id r10 r227 into r228;\n async process r6 r1 r2 r228 r0 into r229;\n output r229 as hyp_collateral.aleo/process.future;\n\nfinalize process:\n input r0 as mailbox.aleo/process.future;\n input r1 as Metadata.public;\n input r2 as Message.public;\n input r3 as token_registry.aleo/transfer_public.future;\n input r4 as address.public;\n get app_metadata[true] into r5;\n assert.eq r5 r1;\n get mailbox.aleo/mailbox[true] into r6;\n is.eq r5.ism aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc into r7;\n ternary r7 r6.default_ism r5.ism into r8;\n assert.eq r8 r4;\n get remote_routers[r2.origin_domain] into r9;\n assert.eq r9.recipient r2.sender;\n await r0;\n await r3;\n\nfunction get_balance_key:\n input r0 as address.private;\n input r1 as field.private;\n cast r0 r1 into r2 as TokenOwner;\n hash.bhp256 r2 into r3 as field;\n output r3 as field.private;\n\nconstructor:\n assert.eq edition 0u16;\n";
|
|
5
|
+
export declare const hyp_native = "import credits.aleo;\nimport ism_manager.aleo;\nimport mailbox.aleo;\nimport hook_manager.aleo;\nimport dispatch_proxy.aleo;\nprogram hyp_native.aleo;\n\nstruct RemoteRouter:\n domain as u32;\n recipient as [u8; 32u32];\n gas as u128;\n\nstruct Metadata:\n token_type as u8;\n token_owner as address;\n ism as address;\n hook as address;\n scale as u8;\n\nstruct Message:\n version as u8;\n nonce as u32;\n origin_domain as u32;\n sender as [u8; 32u32];\n destination_domain as u32;\n recipient as [u8; 32u32];\n body as [u128; 16u32];\n\nstruct EthAddress:\n bytes as [u8; 20u32];\n\nstruct Mailbox:\n local_domain as u32;\n nonce as u32;\n process_count as u32;\n default_ism as address;\n default_hook as address;\n required_hook as address;\n dispatch_proxy as address;\n mailbox_owner as address;\n\nstruct CreditAllowance:\n spender as address;\n amount as u64;\n\nstruct HookMetadata:\n gas_limit as u128;\n extra_data as [u8; 64u32];\n\nstruct Tree:\n branch as [[u128; 2u32]; 32u32];\n count as u32;\n\nstruct DomainGasConfig:\n gas_overhead as u128;\n exchange_rate as u128;\n gas_price as u128;\n\nstruct MailboxState:\n default_hook as address;\n required_hook as address;\n\nmapping remote_routers:\n key as u32.public;\n value as RemoteRouter.public;\n\nmapping remote_router_iter:\n key as u32.public;\n value as u32.public;\n\nmapping remote_router_length:\n key as boolean.public;\n value as u32.public;\n\nmapping app_metadata:\n key as boolean.public;\n value as Metadata.public;\n\nfunction init:\n input r0 as [u8; 128u32].public;\n input r1 as u8.public;\n lte r1 19u8 into r2;\n assert.eq r2 true;\n call mailbox.aleo/register_application r0 into r3;\n async init self.caller r1 r3 into r4;\n output r4 as hyp_native.aleo/init.future;\n\nfinalize init:\n input r0 as address.public;\n input r1 as u8.public;\n input r2 as mailbox.aleo/register_application.future;\n contains app_metadata[true] into r3;\n assert.eq r3 false;\n cast 0u8 r0 aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc r1 into r4 as Metadata;\n set r4 into app_metadata[true];\n await r2;\n\nfunction get_address:\n output hyp_native.aleo as address.private;\n\nfunction set_custom_hook:\n input r0 as address.private;\n async set_custom_hook self.caller r0 into r1;\n output r1 as hyp_native.aleo/set_custom_hook.future;\n\nfinalize set_custom_hook:\n input r0 as address.public;\n input r1 as address.public;\n get app_metadata[true] into r2;\n assert.eq r2.token_owner r0;\n cast r2.token_type r2.token_owner r2.ism r1 r2.scale into r3 as Metadata;\n set r3 into app_metadata[true];\n\nfunction set_custom_ism:\n input r0 as address.private;\n async set_custom_ism self.caller r0 into r1;\n output r1 as hyp_native.aleo/set_custom_ism.future;\n\nfinalize set_custom_ism:\n input r0 as address.public;\n input r1 as address.public;\n get app_metadata[true] into r2;\n assert.eq r2.token_owner r0;\n cast r2.token_type r2.token_owner r1 r2.hook r2.scale into r3 as Metadata;\n set r3 into app_metadata[true];\n\nfunction set_owner:\n input r0 as address.private;\n async set_owner self.caller r0 into r1;\n output r1 as hyp_native.aleo/set_owner.future;\n\nfinalize set_owner:\n input r0 as address.public;\n input r1 as address.public;\n get app_metadata[true] into r2;\n assert.eq r2.token_owner r0;\n cast r2.token_type r1 r2.ism r2.hook r2.scale into r3 as Metadata;\n set r3 into app_metadata[true];\n\nfunction enroll_remote_router:\n input r0 as u32.private;\n input r1 as [u8; 32u32].private;\n input r2 as u128.private;\n async enroll_remote_router self.caller r0 r1 r2 into r3;\n output r3 as hyp_native.aleo/enroll_remote_router.future;\n\nfinalize enroll_remote_router:\n input r0 as address.public;\n input r1 as u32.public;\n input r2 as [u8; 32u32].public;\n input r3 as u128.public;\n get app_metadata[true] into r4;\n assert.eq r4.token_owner r0;\n contains remote_routers[r1] into r5;\n not r5 into r6;\n branch.eq r6 false to end_then_0_0;\n get.or_use remote_router_length[true] 0u32 into r7;\n set r1 into remote_router_iter[r7];\n add r7 1u32 into r8;\n set r8 into remote_router_length[true];\n branch.eq true true to end_otherwise_0_1;\n position end_then_0_0;\n position end_otherwise_0_1;\n cast r1 r2 r3 into r9 as RemoteRouter;\n set r9 into remote_routers[r1];\n\nfunction unroll_remote_router:\n input r0 as u32.private;\n async unroll_remote_router self.caller r0 into r1;\n output r1 as hyp_native.aleo/unroll_remote_router.future;\n\nfinalize unroll_remote_router:\n input r0 as address.public;\n input r1 as u32.public;\n get app_metadata[true] into r2;\n assert.eq r2.token_owner r0;\n remove remote_routers[r1];\n\nfunction transfer_remote:\n input r0 as Metadata.public;\n input r1 as MailboxState.public;\n input r2 as RemoteRouter.public;\n input r3 as u32.public;\n input r4 as [u128; 2u32].public;\n input r5 as u64.public;\n input r6 as [CreditAllowance; 4u32].public;\n cast 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 into r7 as [u8; 64u32];\n cast r2.gas r7 into r8 as HookMetadata;\n pow 10u64 r0.scale into r9;\n cast r5 into r10 as u128;\n cast r9 into r11 as u128;\n mul r10 r11 into r12;\n shr r12 0u8 into r13;\n rem r13 256u128 into r14;\n shl r14 120u8 into r15;\n add 0u128 r15 into r16;\n shr r12 8u8 into r17;\n rem r17 256u128 into r18;\n shl r18 112u8 into r19;\n add r16 r19 into r20;\n shr r12 16u8 into r21;\n rem r21 256u128 into r22;\n shl r22 104u8 into r23;\n add r20 r23 into r24;\n shr r12 24u8 into r25;\n rem r25 256u128 into r26;\n shl r26 96u8 into r27;\n add r24 r27 into r28;\n shr r12 32u8 into r29;\n rem r29 256u128 into r30;\n shl r30 88u8 into r31;\n add r28 r31 into r32;\n shr r12 40u8 into r33;\n rem r33 256u128 into r34;\n shl r34 80u8 into r35;\n add r32 r35 into r36;\n shr r12 48u8 into r37;\n rem r37 256u128 into r38;\n shl r38 72u8 into r39;\n add r36 r39 into r40;\n shr r12 56u8 into r41;\n rem r41 256u128 into r42;\n shl r42 64u8 into r43;\n add r40 r43 into r44;\n shr r12 64u8 into r45;\n rem r45 256u128 into r46;\n shl r46 56u8 into r47;\n add r44 r47 into r48;\n shr r12 72u8 into r49;\n rem r49 256u128 into r50;\n shl r50 48u8 into r51;\n add r48 r51 into r52;\n shr r12 80u8 into r53;\n rem r53 256u128 into r54;\n shl r54 40u8 into r55;\n add r52 r55 into r56;\n shr r12 88u8 into r57;\n rem r57 256u128 into r58;\n shl r58 32u8 into r59;\n add r56 r59 into r60;\n shr r12 96u8 into r61;\n rem r61 256u128 into r62;\n shl r62 24u8 into r63;\n add r60 r63 into r64;\n shr r12 104u8 into r65;\n rem r65 256u128 into r66;\n shl r66 16u8 into r67;\n add r64 r67 into r68;\n shr r12 112u8 into r69;\n rem r69 256u128 into r70;\n shl r70 8u8 into r71;\n add r68 r71 into r72;\n shr r12 120u8 into r73;\n rem r73 256u128 into r74;\n shl r74 0u8 into r75;\n add r72 r75 into r76;\n cast 0u128 r76 into r77 as [u128; 2u32];\n cast 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 into r78 as [u128; 16u32];\n cast r4[0u32] r4[1u32] r77[0u32] r77[1u32] r78[4u32] r78[5u32] r78[6u32] r78[7u32] r78[8u32] r78[9u32] r78[10u32] r78[11u32] r78[12u32] r78[13u32] r78[14u32] r78[15u32] into r79 as [u128; 16u32];\n call dispatch_proxy.aleo/dispatch r1 r3 r2.recipient r79 r0.hook r8 r6 into r80;\n call credits.aleo/transfer_public_as_signer hyp_native.aleo r5 into r81;\n async transfer_remote r80 r81 r0 r2 r3 into r82;\n output r82 as hyp_native.aleo/transfer_remote.future;\n\nfinalize transfer_remote:\n input r0 as dispatch_proxy.aleo/dispatch.future;\n input r1 as credits.aleo/transfer_public_as_signer.future;\n input r2 as Metadata.public;\n input r3 as RemoteRouter.public;\n input r4 as u32.public;\n get remote_routers[r4] into r5;\n assert.eq r5 r3;\n get app_metadata[true] into r6;\n assert.eq r6 r2;\n await r0;\n await r1;\n\nfunction transfer_remote_with_hook:\n input r0 as Metadata.public;\n input r1 as MailboxState.public;\n input r2 as RemoteRouter.public;\n input r3 as u32.public;\n input r4 as [u128; 2u32].public;\n input r5 as u64.public;\n input r6 as [CreditAllowance; 4u32].public;\n input r7 as address.public;\n input r8 as HookMetadata.public;\n is.eq r8.gas_limit 0u128 into r9;\n ternary r9 r2.gas r8.gas_limit into r10;\n pow 10u64 r0.scale into r11;\n cast r5 into r12 as u128;\n cast r11 into r13 as u128;\n mul r12 r13 into r14;\n shr r14 0u8 into r15;\n rem r15 256u128 into r16;\n shl r16 120u8 into r17;\n add 0u128 r17 into r18;\n shr r14 8u8 into r19;\n rem r19 256u128 into r20;\n shl r20 112u8 into r21;\n add r18 r21 into r22;\n shr r14 16u8 into r23;\n rem r23 256u128 into r24;\n shl r24 104u8 into r25;\n add r22 r25 into r26;\n shr r14 24u8 into r27;\n rem r27 256u128 into r28;\n shl r28 96u8 into r29;\n add r26 r29 into r30;\n shr r14 32u8 into r31;\n rem r31 256u128 into r32;\n shl r32 88u8 into r33;\n add r30 r33 into r34;\n shr r14 40u8 into r35;\n rem r35 256u128 into r36;\n shl r36 80u8 into r37;\n add r34 r37 into r38;\n shr r14 48u8 into r39;\n rem r39 256u128 into r40;\n shl r40 72u8 into r41;\n add r38 r41 into r42;\n shr r14 56u8 into r43;\n rem r43 256u128 into r44;\n shl r44 64u8 into r45;\n add r42 r45 into r46;\n shr r14 64u8 into r47;\n rem r47 256u128 into r48;\n shl r48 56u8 into r49;\n add r46 r49 into r50;\n shr r14 72u8 into r51;\n rem r51 256u128 into r52;\n shl r52 48u8 into r53;\n add r50 r53 into r54;\n shr r14 80u8 into r55;\n rem r55 256u128 into r56;\n shl r56 40u8 into r57;\n add r54 r57 into r58;\n shr r14 88u8 into r59;\n rem r59 256u128 into r60;\n shl r60 32u8 into r61;\n add r58 r61 into r62;\n shr r14 96u8 into r63;\n rem r63 256u128 into r64;\n shl r64 24u8 into r65;\n add r62 r65 into r66;\n shr r14 104u8 into r67;\n rem r67 256u128 into r68;\n shl r68 16u8 into r69;\n add r66 r69 into r70;\n shr r14 112u8 into r71;\n rem r71 256u128 into r72;\n shl r72 8u8 into r73;\n add r70 r73 into r74;\n shr r14 120u8 into r75;\n rem r75 256u128 into r76;\n shl r76 0u8 into r77;\n add r74 r77 into r78;\n cast 0u128 r78 into r79 as [u128; 2u32];\n cast 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 into r80 as [u128; 16u32];\n cast r4[0u32] r4[1u32] r79[0u32] r79[1u32] r80[4u32] r80[5u32] r80[6u32] r80[7u32] r80[8u32] r80[9u32] r80[10u32] r80[11u32] r80[12u32] r80[13u32] r80[14u32] r80[15u32] into r81 as [u128; 16u32];\n cast r10 r8.extra_data into r82 as HookMetadata;\n call dispatch_proxy.aleo/dispatch r1 r3 r2.recipient r81 r7 r82 r6 into r83;\n call credits.aleo/transfer_public_as_signer hyp_native.aleo r5 into r84;\n async transfer_remote_with_hook r83 r84 r0 r2 r3 into r85;\n output r85 as hyp_native.aleo/transfer_remote_with_hook.future;\n\nfinalize transfer_remote_with_hook:\n input r0 as dispatch_proxy.aleo/dispatch.future;\n input r1 as credits.aleo/transfer_public_as_signer.future;\n input r2 as Metadata.public;\n input r3 as RemoteRouter.public;\n input r4 as u32.public;\n get remote_routers[r4] into r5;\n assert.eq r5 r3;\n get app_metadata[true] into r6;\n assert.eq r6 r2;\n await r0;\n await r1;\n\nfunction process:\n input r0 as address.public;\n input r1 as Metadata.public;\n input r2 as Message.public;\n input r3 as u32.public;\n input r4 as [u128; 2u32].public;\n input r5 as [u8; 512u32].public;\n cast r2.body[2u32] r2.body[3u32] into r6 as [u128; 2u32];\n pow 10u64 r1.scale into r7;\n serialize.bits.raw r6 ([u128; 2u32]) into r8 ([boolean; 256u32]);\n deserialize.bits.raw r8 ([boolean; 256u32]) into r9 ([u8; 32u32]);\n cast r9[0u32] into r10 as u64;\n shl r10 56u32 into r11;\n add 0u64 r11 into r12;\n cast r9[1u32] into r13 as u64;\n shl r13 48u32 into r14;\n add r12 r14 into r15;\n cast r9[2u32] into r16 as u64;\n shl r16 40u32 into r17;\n add r15 r17 into r18;\n cast r9[3u32] into r19 as u64;\n shl r19 32u32 into r20;\n add r18 r20 into r21;\n cast r9[4u32] into r22 as u64;\n shl r22 24u32 into r23;\n add r21 r23 into r24;\n cast r9[5u32] into r25 as u64;\n shl r25 16u32 into r26;\n add r24 r26 into r27;\n cast r9[6u32] into r28 as u64;\n shl r28 8u32 into r29;\n add r27 r29 into r30;\n cast r9[7u32] into r31 as u64;\n shl r31 0u32 into r32;\n add r30 r32 into r33;\n cast r9[8u32] into r34 as u64;\n shl r34 56u32 into r35;\n add 0u64 r35 into r36;\n cast r9[9u32] into r37 as u64;\n shl r37 48u32 into r38;\n add r36 r38 into r39;\n cast r9[10u32] into r40 as u64;\n shl r40 40u32 into r41;\n add r39 r41 into r42;\n cast r9[11u32] into r43 as u64;\n shl r43 32u32 into r44;\n add r42 r44 into r45;\n cast r9[12u32] into r46 as u64;\n shl r46 24u32 into r47;\n add r45 r47 into r48;\n cast r9[13u32] into r49 as u64;\n shl r49 16u32 into r50;\n add r48 r50 into r51;\n cast r9[14u32] into r52 as u64;\n shl r52 8u32 into r53;\n add r51 r53 into r54;\n cast r9[15u32] into r55 as u64;\n shl r55 0u32 into r56;\n add r54 r56 into r57;\n cast r9[16u32] into r58 as u64;\n shl r58 56u32 into r59;\n add 0u64 r59 into r60;\n cast r9[17u32] into r61 as u64;\n shl r61 48u32 into r62;\n add r60 r62 into r63;\n cast r9[18u32] into r64 as u64;\n shl r64 40u32 into r65;\n add r63 r65 into r66;\n cast r9[19u32] into r67 as u64;\n shl r67 32u32 into r68;\n add r66 r68 into r69;\n cast r9[20u32] into r70 as u64;\n shl r70 24u32 into r71;\n add r69 r71 into r72;\n cast r9[21u32] into r73 as u64;\n shl r73 16u32 into r74;\n add r72 r74 into r75;\n cast r9[22u32] into r76 as u64;\n shl r76 8u32 into r77;\n add r75 r77 into r78;\n cast r9[23u32] into r79 as u64;\n shl r79 0u32 into r80;\n add r78 r80 into r81;\n cast r9[24u32] into r82 as u64;\n shl r82 56u32 into r83;\n add 0u64 r83 into r84;\n cast r9[25u32] into r85 as u64;\n shl r85 48u32 into r86;\n add r84 r86 into r87;\n cast r9[26u32] into r88 as u64;\n shl r88 40u32 into r89;\n add r87 r89 into r90;\n cast r9[27u32] into r91 as u64;\n shl r91 32u32 into r92;\n add r90 r92 into r93;\n cast r9[28u32] into r94 as u64;\n shl r94 24u32 into r95;\n add r93 r95 into r96;\n cast r9[29u32] into r97 as u64;\n shl r97 16u32 into r98;\n add r96 r98 into r99;\n cast r9[30u32] into r100 as u64;\n shl r100 8u32 into r101;\n add r99 r101 into r102;\n cast r9[31u32] into r103 as u64;\n shl r103 0u32 into r104;\n add r102 r104 into r105;\n shl 0u128 64u32 into r106;\n cast r33 into r107 as u128;\n or r106 r107 into r108;\n cast r7 into r109 as u128;\n div r108 r109 into r110;\n cast r110 into r111 as u64;\n cast r7 into r112 as u128;\n rem r108 r112 into r113;\n shl r113 64u32 into r114;\n cast r57 into r115 as u128;\n or r114 r115 into r116;\n cast r7 into r117 as u128;\n div r116 r117 into r118;\n cast r118 into r119 as u64;\n cast r7 into r120 as u128;\n rem r116 r120 into r121;\n shl r121 64u32 into r122;\n cast r81 into r123 as u128;\n or r122 r123 into r124;\n cast r7 into r125 as u128;\n div r124 r125 into r126;\n cast r126 into r127 as u64;\n cast r7 into r128 as u128;\n rem r124 r128 into r129;\n shl r129 64u32 into r130;\n cast r105 into r131 as u128;\n or r130 r131 into r132;\n cast r7 into r133 as u128;\n div r132 r133 into r134;\n cast r134 into r135 as u64;\n cast r7 into r136 as u128;\n rem r132 r136 into r137;\n assert.eq r111 0u64;\n assert.eq r119 0u64;\n assert.eq r127 0u64;\n call mailbox.aleo/process r0 r2 r3 r4 r5 into r138;\n cast r2.body[0u32] r2.body[1u32] into r139 as [u128; 2u32];\n serialize.bits.raw r139 ([u128; 2u32]) into r140 ([boolean; 256u32]);\n cast r140[0u32] r140[1u32] r140[2u32] r140[3u32] r140[4u32] r140[5u32] r140[6u32] r140[7u32] r140[8u32] r140[9u32] r140[10u32] r140[11u32] r140[12u32] r140[13u32] r140[14u32] r140[15u32] r140[16u32] r140[17u32] r140[18u32] r140[19u32] r140[20u32] r140[21u32] r140[22u32] r140[23u32] r140[24u32] r140[25u32] r140[26u32] r140[27u32] r140[28u32] r140[29u32] r140[30u32] r140[31u32] r140[32u32] r140[33u32] r140[34u32] r140[35u32] r140[36u32] r140[37u32] r140[38u32] r140[39u32] r140[40u32] r140[41u32] r140[42u32] r140[43u32] r140[44u32] r140[45u32] r140[46u32] r140[47u32] r140[48u32] r140[49u32] r140[50u32] r140[51u32] r140[52u32] r140[53u32] r140[54u32] r140[55u32] r140[56u32] r140[57u32] r140[58u32] r140[59u32] r140[60u32] r140[61u32] r140[62u32] r140[63u32] r140[64u32] r140[65u32] r140[66u32] r140[67u32] r140[68u32] r140[69u32] r140[70u32] r140[71u32] r140[72u32] r140[73u32] r140[74u32] r140[75u32] r140[76u32] r140[77u32] r140[78u32] r140[79u32] r140[80u32] r140[81u32] r140[82u32] r140[83u32] r140[84u32] r140[85u32] r140[86u32] r140[87u32] r140[88u32] r140[89u32] r140[90u32] r140[91u32] r140[92u32] r140[93u32] r140[94u32] r140[95u32] r140[96u32] r140[97u32] r140[98u32] r140[99u32] r140[100u32] r140[101u32] r140[102u32] r140[103u32] r140[104u32] r140[105u32] r140[106u32] r140[107u32] r140[108u32] r140[109u32] r140[110u32] r140[111u32] r140[112u32] r140[113u32] r140[114u32] r140[115u32] r140[116u32] r140[117u32] r140[118u32] r140[119u32] r140[120u32] r140[121u32] r140[122u32] r140[123u32] r140[124u32] r140[125u32] r140[126u32] r140[127u32] r140[128u32] r140[129u32] r140[130u32] r140[131u32] r140[132u32] r140[133u32] r140[134u32] r140[135u32] r140[136u32] r140[137u32] r140[138u32] r140[139u32] r140[140u32] r140[141u32] r140[142u32] r140[143u32] r140[144u32] r140[145u32] r140[146u32] r140[147u32] r140[148u32] r140[149u32] r140[150u32] r140[151u32] r140[152u32] r140[153u32] r140[154u32] r140[155u32] r140[156u32] r140[157u32] r140[158u32] r140[159u32] r140[160u32] r140[161u32] r140[162u32] r140[163u32] r140[164u32] r140[165u32] r140[166u32] r140[167u32] r140[168u32] r140[169u32] r140[170u32] r140[171u32] r140[172u32] r140[173u32] r140[174u32] r140[175u32] r140[176u32] r140[177u32] r140[178u32] r140[179u32] r140[180u32] r140[181u32] r140[182u32] r140[183u32] r140[184u32] r140[185u32] r140[186u32] r140[187u32] r140[188u32] r140[189u32] r140[190u32] r140[191u32] r140[192u32] r140[193u32] r140[194u32] r140[195u32] r140[196u32] r140[197u32] r140[198u32] r140[199u32] r140[200u32] r140[201u32] r140[202u32] r140[203u32] r140[204u32] r140[205u32] r140[206u32] r140[207u32] r140[208u32] r140[209u32] r140[210u32] r140[211u32] r140[212u32] r140[213u32] r140[214u32] r140[215u32] r140[216u32] r140[217u32] r140[218u32] r140[219u32] r140[220u32] r140[221u32] r140[222u32] r140[223u32] r140[224u32] r140[225u32] r140[226u32] r140[227u32] r140[228u32] r140[229u32] r140[230u32] r140[231u32] r140[232u32] r140[233u32] r140[234u32] r140[235u32] r140[236u32] r140[237u32] r140[238u32] r140[239u32] r140[240u32] r140[241u32] r140[242u32] r140[243u32] r140[244u32] r140[245u32] r140[246u32] r140[247u32] r140[248u32] r140[249u32] r140[250u32] r140[251u32] r140[252u32] into r141 as [boolean; 253u32];\n deserialize.bits.raw r141 ([boolean; 253u32]) into r142 (address);\n cast r135 into r143 as u64;\n call credits.aleo/transfer_public r142 r143 into r144;\n async process r138 r1 r2 r144 r0 into r145;\n output r145 as hyp_native.aleo/process.future;\n\nfinalize process:\n input r0 as mailbox.aleo/process.future;\n input r1 as Metadata.public;\n input r2 as Message.public;\n input r3 as credits.aleo/transfer_public.future;\n input r4 as address.public;\n get app_metadata[true] into r5;\n assert.eq r5 r1;\n get mailbox.aleo/mailbox[true] into r6;\n is.eq r5.ism aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc into r7;\n ternary r7 r6.default_ism r5.ism into r8;\n assert.eq r8 r4;\n get remote_routers[r2.origin_domain] into r9;\n assert.eq r9.recipient r2.sender;\n await r0;\n await r3;\n\nconstructor:\n assert.eq edition 0u16;\n";
|
|
6
|
+
export declare const hyp_synthetic = "import credits.aleo;\nimport ism_manager.aleo;\nimport mailbox.aleo;\nimport hook_manager.aleo;\nimport dispatch_proxy.aleo;\nimport token_registry.aleo;\nprogram hyp_synthetic.aleo;\n\nstruct RemoteRouter:\n domain as u32;\n recipient as [u8; 32u32];\n gas as u128;\n\nstruct Metadata:\n token_type as u8;\n token_owner as address;\n ism as address;\n hook as address;\n token_id as field;\n local_decimals as u8;\n remote_decimals as u8;\n\nstruct Message:\n version as u8;\n nonce as u32;\n origin_domain as u32;\n sender as [u8; 32u32];\n destination_domain as u32;\n recipient as [u8; 32u32];\n body as [u128; 16u32];\n\nstruct EthAddress:\n bytes as [u8; 20u32];\n\nstruct Mailbox:\n local_domain as u32;\n nonce as u32;\n process_count as u32;\n default_ism as address;\n default_hook as address;\n required_hook as address;\n dispatch_proxy as address;\n mailbox_owner as address;\n\nstruct CreditAllowance:\n spender as address;\n amount as u64;\n\nstruct HookMetadata:\n gas_limit as u128;\n extra_data as [u8; 64u32];\n\nstruct Tree:\n branch as [[u128; 2u32]; 32u32];\n count as u32;\n\nstruct DomainGasConfig:\n gas_overhead as u128;\n exchange_rate as u128;\n gas_price as u128;\n\nstruct MailboxState:\n default_hook as address;\n required_hook as address;\n\nstruct TokenMetadata:\n token_id as field;\n name as u128;\n symbol as u128;\n decimals as u8;\n supply as u128;\n max_supply as u128;\n admin as address;\n external_authorization_required as boolean;\n external_authorization_party as address;\n\nstruct TokenOwner:\n account as address;\n token_id as field;\n\nmapping remote_routers:\n key as u32.public;\n value as RemoteRouter.public;\n\nmapping remote_router_iter:\n key as u32.public;\n value as u32.public;\n\nmapping remote_router_length:\n key as boolean.public;\n value as u32.public;\n\nmapping app_metadata:\n key as boolean.public;\n value as Metadata.public;\n\nfunction init:\n input r0 as [u8; 128u32].public;\n input r1 as u128.public;\n input r2 as u128.public;\n input r3 as u8.public;\n input r4 as u8.public;\n cast hyp_synthetic.aleo into r5 as field;\n cast r4 into r6 as i16;\n cast r3 into r7 as i16;\n sub r6 r7 into r8;\n abs r8 into r9;\n lte r9 18i16 into r10;\n assert.eq r10 true;\n call token_registry.aleo/register_token r5 r1 r2 r3 340282366920938463463374607431768211455u128 false aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc into r11;\n call mailbox.aleo/register_application r0 into r12;\n async init self.caller r5 r3 r4 r11 r12 into r13;\n output r13 as hyp_synthetic.aleo/init.future;\n\nfinalize init:\n input r0 as address.public;\n input r1 as field.public;\n input r2 as u8.public;\n input r3 as u8.public;\n input r4 as token_registry.aleo/register_token.future;\n input r5 as mailbox.aleo/register_application.future;\n contains app_metadata[true] into r6;\n assert.eq r6 false;\n cast 1u8 r0 aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc r1 r2 r3 into r7 as Metadata;\n set r7 into app_metadata[true];\n await r4;\n await r5;\n\nfunction get_address:\n output hyp_synthetic.aleo as address.private;\n\nfunction set_custom_hook:\n input r0 as address.private;\n async set_custom_hook self.caller r0 into r1;\n output r1 as hyp_synthetic.aleo/set_custom_hook.future;\n\nfinalize set_custom_hook:\n input r0 as address.public;\n input r1 as address.public;\n get app_metadata[true] into r2;\n assert.eq r2.token_owner r0;\n cast r2.token_type r2.token_owner r2.ism r1 r2.token_id r2.local_decimals r2.remote_decimals into r3 as Metadata;\n set r3 into app_metadata[true];\n\nfunction set_custom_ism:\n input r0 as address.private;\n async set_custom_ism self.caller r0 into r1;\n output r1 as hyp_synthetic.aleo/set_custom_ism.future;\n\nfinalize set_custom_ism:\n input r0 as address.public;\n input r1 as address.public;\n get app_metadata[true] into r2;\n assert.eq r2.token_owner r0;\n cast r2.token_type r2.token_owner r1 r2.hook r2.token_id r2.local_decimals r2.remote_decimals into r3 as Metadata;\n set r3 into app_metadata[true];\n\nfunction set_owner:\n input r0 as address.private;\n async set_owner self.caller r0 into r1;\n output r1 as hyp_synthetic.aleo/set_owner.future;\n\nfinalize set_owner:\n input r0 as address.public;\n input r1 as address.public;\n get app_metadata[true] into r2;\n assert.eq r2.token_owner r0;\n cast r2.token_type r1 r2.ism r2.hook r2.token_id r2.local_decimals r2.remote_decimals into r3 as Metadata;\n set r3 into app_metadata[true];\n\nfunction enroll_remote_router:\n input r0 as u32.private;\n input r1 as [u8; 32u32].private;\n input r2 as u128.private;\n async enroll_remote_router self.caller r0 r1 r2 into r3;\n output r3 as hyp_synthetic.aleo/enroll_remote_router.future;\n\nfinalize enroll_remote_router:\n input r0 as address.public;\n input r1 as u32.public;\n input r2 as [u8; 32u32].public;\n input r3 as u128.public;\n get app_metadata[true] into r4;\n assert.eq r4.token_owner r0;\n contains remote_routers[r1] into r5;\n not r5 into r6;\n branch.eq r6 false to end_then_0_0;\n get.or_use remote_router_length[true] 0u32 into r7;\n set r1 into remote_router_iter[r7];\n add r7 1u32 into r8;\n set r8 into remote_router_length[true];\n branch.eq true true to end_otherwise_0_1;\n position end_then_0_0;\n position end_otherwise_0_1;\n cast r1 r2 r3 into r9 as RemoteRouter;\n set r9 into remote_routers[r1];\n\nfunction unroll_remote_router:\n input r0 as u32.private;\n async unroll_remote_router self.caller r0 into r1;\n output r1 as hyp_synthetic.aleo/unroll_remote_router.future;\n\nfinalize unroll_remote_router:\n input r0 as address.public;\n input r1 as u32.public;\n get app_metadata[true] into r2;\n assert.eq r2.token_owner r0;\n remove remote_routers[r1];\n\nfunction transfer_remote:\n input r0 as Metadata.public;\n input r1 as MailboxState.public;\n input r2 as RemoteRouter.public;\n input r3 as u32.public;\n input r4 as [u128; 2u32].public;\n input r5 as u128.public;\n input r6 as [CreditAllowance; 4u32].public;\n cast 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 0u8 into r7 as [u8; 64u32];\n cast r2.gas r7 into r8 as HookMetadata;\n is.eq r0.local_decimals r0.remote_decimals into r9;\n shr r5 0u8 into r10;\n rem r10 256u128 into r11;\n shl r11 120u8 into r12;\n add 0u128 r12 into r13;\n shr r5 8u8 into r14;\n rem r14 256u128 into r15;\n shl r15 112u8 into r16;\n add r13 r16 into r17;\n shr r5 16u8 into r18;\n rem r18 256u128 into r19;\n shl r19 104u8 into r20;\n add r17 r20 into r21;\n shr r5 24u8 into r22;\n rem r22 256u128 into r23;\n shl r23 96u8 into r24;\n add r21 r24 into r25;\n shr r5 32u8 into r26;\n rem r26 256u128 into r27;\n shl r27 88u8 into r28;\n add r25 r28 into r29;\n shr r5 40u8 into r30;\n rem r30 256u128 into r31;\n shl r31 80u8 into r32;\n add r29 r32 into r33;\n shr r5 48u8 into r34;\n rem r34 256u128 into r35;\n shl r35 72u8 into r36;\n add r33 r36 into r37;\n shr r5 56u8 into r38;\n rem r38 256u128 into r39;\n shl r39 64u8 into r40;\n add r37 r40 into r41;\n shr r5 64u8 into r42;\n rem r42 256u128 into r43;\n shl r43 56u8 into r44;\n add r41 r44 into r45;\n shr r5 72u8 into r46;\n rem r46 256u128 into r47;\n shl r47 48u8 into r48;\n add r45 r48 into r49;\n shr r5 80u8 into r50;\n rem r50 256u128 into r51;\n shl r51 40u8 into r52;\n add r49 r52 into r53;\n shr r5 88u8 into r54;\n rem r54 256u128 into r55;\n shl r55 32u8 into r56;\n add r53 r56 into r57;\n shr r5 96u8 into r58;\n rem r58 256u128 into r59;\n shl r59 24u8 into r60;\n add r57 r60 into r61;\n shr r5 104u8 into r62;\n rem r62 256u128 into r63;\n shl r63 16u8 into r64;\n add r61 r64 into r65;\n shr r5 112u8 into r66;\n rem r66 256u128 into r67;\n shl r67 8u8 into r68;\n add r65 r68 into r69;\n shr r5 120u8 into r70;\n rem r70 256u128 into r71;\n shl r71 0u8 into r72;\n add r69 r72 into r73;\n cast 0u128 r73 into r74 as [u128; 2u32];\n lt r0.remote_decimals r0.local_decimals into r75;\n lt r0.local_decimals r0.remote_decimals into r76;\n ternary r76 r0.remote_decimals r0.local_decimals into r77;\n sub r77 r0.remote_decimals into r78;\n pow 10u128 r78 into r79;\n div r5 r79 into r80;\n shr r80 0u8 into r81;\n rem r81 256u128 into r82;\n shl r82 120u8 into r83;\n add 0u128 r83 into r84;\n shr r80 8u8 into r85;\n rem r85 256u128 into r86;\n shl r86 112u8 into r87;\n add r84 r87 into r88;\n shr r80 16u8 into r89;\n rem r89 256u128 into r90;\n shl r90 104u8 into r91;\n add r88 r91 into r92;\n shr r80 24u8 into r93;\n rem r93 256u128 into r94;\n shl r94 96u8 into r95;\n add r92 r95 into r96;\n shr r80 32u8 into r97;\n rem r97 256u128 into r98;\n shl r98 88u8 into r99;\n add r96 r99 into r100;\n shr r80 40u8 into r101;\n rem r101 256u128 into r102;\n shl r102 80u8 into r103;\n add r100 r103 into r104;\n shr r80 48u8 into r105;\n rem r105 256u128 into r106;\n shl r106 72u8 into r107;\n add r104 r107 into r108;\n shr r80 56u8 into r109;\n rem r109 256u128 into r110;\n shl r110 64u8 into r111;\n add r108 r111 into r112;\n shr r80 64u8 into r113;\n rem r113 256u128 into r114;\n shl r114 56u8 into r115;\n add r112 r115 into r116;\n shr r80 72u8 into r117;\n rem r117 256u128 into r118;\n shl r118 48u8 into r119;\n add r116 r119 into r120;\n shr r80 80u8 into r121;\n rem r121 256u128 into r122;\n shl r122 40u8 into r123;\n add r120 r123 into r124;\n shr r80 88u8 into r125;\n rem r125 256u128 into r126;\n shl r126 32u8 into r127;\n add r124 r127 into r128;\n shr r80 96u8 into r129;\n rem r129 256u128 into r130;\n shl r130 24u8 into r131;\n add r128 r131 into r132;\n shr r80 104u8 into r133;\n rem r133 256u128 into r134;\n shl r134 16u8 into r135;\n add r132 r135 into r136;\n shr r80 112u8 into r137;\n rem r137 256u128 into r138;\n shl r138 8u8 into r139;\n add r136 r139 into r140;\n shr r80 120u8 into r141;\n rem r141 256u128 into r142;\n shl r142 0u8 into r143;\n add r140 r143 into r144;\n cast 0u128 r144 into r145 as [u128; 2u32];\n not r75 into r146;\n gt r0.local_decimals r0.remote_decimals into r147;\n ternary r147 r0.remote_decimals r0.local_decimals into r148;\n cast 0u64 0u64 0u64 0u64 into r149 as [u64; 4u32];\n shr r5 64u32 into r150;\n cast r150 into r151 as u64;\n and r5 18446744073709551615u128 into r152;\n cast r152 into r153 as u64;\n sub r0.remote_decimals r148 into r154;\n pow 10u64 r154 into r155;\n cast r153 into r156 as u128;\n cast r155 into r157 as u128;\n mul r156 r157 into r158;\n add r158 0u128 into r159;\n and r159 18446744073709551615u128 into r160;\n cast r160 into r161 as u64;\n shr r159 64u32 into r162;\n cast r151 into r163 as u128;\n cast r155 into r164 as u128;\n mul r163 r164 into r165;\n add r165 r162 into r166;\n and r166 18446744073709551615u128 into r167;\n cast r167 into r168 as u64;\n shr r166 64u32 into r169;\n cast r149[1u32] into r170 as u128;\n cast r155 into r171 as u128;\n mul r170 r171 into r172;\n add r172 r169 into r173;\n and r173 18446744073709551615u128 into r174;\n cast r174 into r175 as u64;\n shr r173 64u32 into r176;\n cast r149[0u32] into r177 as u128;\n cast r155 into r178 as u128;\n mul r177 r178 into r179;\n add r179 r176 into r180;\n and r180 18446744073709551615u128 into r181;\n cast r181 into r182 as u64;\n shr r180 64u32 into r183;\n not r146 into r184;\n or r9 r75 into r185;\n is.eq r183 0u128 into r186;\n or r186 r184 into r187;\n or r187 r185 into r188;\n assert.eq r188 true;\n cast r182 into r189 as u128;\n shl r189 64u32 into r190;\n cast r175 into r191 as u128;\n add r190 r191 into r192;\n cast r168 into r193 as u128;\n shl r193 64u32 into r194;\n cast r161 into r195 as u128;\n add r194 r195 into r196;\n shr r192 0u8 into r197;\n rem r197 256u128 into r198;\n shl r198 120u8 into r199;\n add 0u128 r199 into r200;\n shr r192 8u8 into r201;\n rem r201 256u128 into r202;\n shl r202 112u8 into r203;\n add r200 r203 into r204;\n shr r192 16u8 into r205;\n rem r205 256u128 into r206;\n shl r206 104u8 into r207;\n add r204 r207 into r208;\n shr r192 24u8 into r209;\n rem r209 256u128 into r210;\n shl r210 96u8 into r211;\n add r208 r211 into r212;\n shr r192 32u8 into r213;\n rem r213 256u128 into r214;\n shl r214 88u8 into r215;\n add r212 r215 into r216;\n shr r192 40u8 into r217;\n rem r217 256u128 into r218;\n shl r218 80u8 into r219;\n add r216 r219 into r220;\n shr r192 48u8 into r221;\n rem r221 256u128 into r222;\n shl r222 72u8 into r223;\n add r220 r223 into r224;\n shr r192 56u8 into r225;\n rem r225 256u128 into r226;\n shl r226 64u8 into r227;\n add r224 r227 into r228;\n shr r192 64u8 into r229;\n rem r229 256u128 into r230;\n shl r230 56u8 into r231;\n add r228 r231 into r232;\n shr r192 72u8 into r233;\n rem r233 256u128 into r234;\n shl r234 48u8 into r235;\n add r232 r235 into r236;\n shr r192 80u8 into r237;\n rem r237 256u128 into r238;\n shl r238 40u8 into r239;\n add r236 r239 into r240;\n shr r192 88u8 into r241;\n rem r241 256u128 into r242;\n shl r242 32u8 into r243;\n add r240 r243 into r244;\n shr r192 96u8 into r245;\n rem r245 256u128 into r246;\n shl r246 24u8 into r247;\n add r244 r247 into r248;\n shr r192 104u8 into r249;\n rem r249 256u128 into r250;\n shl r250 16u8 into r251;\n add r248 r251 into r252;\n shr r192 112u8 into r253;\n rem r253 256u128 into r254;\n shl r254 8u8 into r255;\n add r252 r255 into r256;\n shr r192 120u8 into r257;\n rem r257 256u128 into r258;\n shl r258 0u8 into r259;\n add r256 r259 into r260;\n shr r196 0u8 into r261;\n rem r261 256u128 into r262;\n shl r262 120u8 into r263;\n add 0u128 r263 into r264;\n shr r196 8u8 into r265;\n rem r265 256u128 into r266;\n shl r266 112u8 into r267;\n add r264 r267 into r268;\n shr r196 16u8 into r269;\n rem r269 256u128 into r270;\n shl r270 104u8 into r271;\n add r268 r271 into r272;\n shr r196 24u8 into r273;\n rem r273 256u128 into r274;\n shl r274 96u8 into r275;\n add r272 r275 into r276;\n shr r196 32u8 into r277;\n rem r277 256u128 into r278;\n shl r278 88u8 into r279;\n add r276 r279 into r280;\n shr r196 40u8 into r281;\n rem r281 256u128 into r282;\n shl r282 80u8 into r283;\n add r280 r283 into r284;\n shr r196 48u8 into r285;\n rem r285 256u128 into r286;\n shl r286 72u8 into r287;\n add r284 r287 into r288;\n shr r196 56u8 into r289;\n rem r289 256u128 into r290;\n shl r290 64u8 into r291;\n add r288 r291 into r292;\n shr r196 64u8 into r293;\n rem r293 256u128 into r294;\n shl r294 56u8 into r295;\n add r292 r295 into r296;\n shr r196 72u8 into r297;\n rem r297 256u128 into r298;\n shl r298 48u8 into r299;\n add r296 r299 into r300;\n shr r196 80u8 into r301;\n rem r301 256u128 into r302;\n shl r302 40u8 into r303;\n add r300 r303 into r304;\n shr r196 88u8 into r305;\n rem r305 256u128 into r306;\n shl r306 32u8 into r307;\n add r304 r307 into r308;\n shr r196 96u8 into r309;\n rem r309 256u128 into r310;\n shl r310 24u8 into r311;\n add r308 r311 into r312;\n shr r196 104u8 into r313;\n rem r313 256u128 into r314;\n shl r314 16u8 into r315;\n add r312 r315 into r316;\n shr r196 112u8 into r317;\n rem r317 256u128 into r318;\n shl r318 8u8 into r319;\n add r316 r319 into r320;\n shr r196 120u8 into r321;\n rem r321 256u128 into r322;\n shl r322 0u8 into r323;\n add r320 r323 into r324;\n cast r260 r324 into r325 as [u128; 2u32];\n ternary r75 r145[0u32] r325[0u32] into r326;\n ternary r75 r145[1u32] r325[1u32] into r327;\n cast r326 r327 into r328 as [u128; 2u32];\n ternary r9 r74[0u32] r328[0u32] into r329;\n ternary r9 r74[1u32] r328[1u32] into r330;\n cast r329 r330 into r331 as [u128; 2u32];\n cast 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 into r332 as [u128; 16u32];\n cast r4[0u32] r4[1u32] r331[0u32] r331[1u32] r332[4u32] r332[5u32] r332[6u32] r332[7u32] r332[8u32] r332[9u32] r332[10u32] r332[11u32] r332[12u32] r332[13u32] r332[14u32] r332[15u32] into r333 as [u128; 16u32];\n call dispatch_proxy.aleo/dispatch r1 r3 r2.recipient r333 r0.hook r8 r6 into r334;\n call token_registry.aleo/burn_public r0.token_id self.signer r5 into r335;\n async transfer_remote r334 r335 r2 r3 r0 into r336;\n output r336 as hyp_synthetic.aleo/transfer_remote.future;\n\nfinalize transfer_remote:\n input r0 as dispatch_proxy.aleo/dispatch.future;\n input r1 as token_registry.aleo/burn_public.future;\n input r2 as RemoteRouter.public;\n input r3 as u32.public;\n input r4 as Metadata.public;\n get remote_routers[r3] into r5;\n assert.eq r5 r2;\n get app_metadata[true] into r6;\n assert.eq r4 r6;\n await r0;\n await r1;\n\nfunction transfer_remote_with_hook:\n input r0 as Metadata.public;\n input r1 as MailboxState.public;\n input r2 as RemoteRouter.public;\n input r3 as u32.public;\n input r4 as [u128; 2u32].public;\n input r5 as u128.public;\n input r6 as [CreditAllowance; 4u32].public;\n input r7 as address.public;\n input r8 as HookMetadata.public;\n is.eq r8.gas_limit 0u128 into r9;\n ternary r9 r2.gas r8.gas_limit into r10;\n is.eq r0.local_decimals r0.remote_decimals into r11;\n shr r5 0u8 into r12;\n rem r12 256u128 into r13;\n shl r13 120u8 into r14;\n add 0u128 r14 into r15;\n shr r5 8u8 into r16;\n rem r16 256u128 into r17;\n shl r17 112u8 into r18;\n add r15 r18 into r19;\n shr r5 16u8 into r20;\n rem r20 256u128 into r21;\n shl r21 104u8 into r22;\n add r19 r22 into r23;\n shr r5 24u8 into r24;\n rem r24 256u128 into r25;\n shl r25 96u8 into r26;\n add r23 r26 into r27;\n shr r5 32u8 into r28;\n rem r28 256u128 into r29;\n shl r29 88u8 into r30;\n add r27 r30 into r31;\n shr r5 40u8 into r32;\n rem r32 256u128 into r33;\n shl r33 80u8 into r34;\n add r31 r34 into r35;\n shr r5 48u8 into r36;\n rem r36 256u128 into r37;\n shl r37 72u8 into r38;\n add r35 r38 into r39;\n shr r5 56u8 into r40;\n rem r40 256u128 into r41;\n shl r41 64u8 into r42;\n add r39 r42 into r43;\n shr r5 64u8 into r44;\n rem r44 256u128 into r45;\n shl r45 56u8 into r46;\n add r43 r46 into r47;\n shr r5 72u8 into r48;\n rem r48 256u128 into r49;\n shl r49 48u8 into r50;\n add r47 r50 into r51;\n shr r5 80u8 into r52;\n rem r52 256u128 into r53;\n shl r53 40u8 into r54;\n add r51 r54 into r55;\n shr r5 88u8 into r56;\n rem r56 256u128 into r57;\n shl r57 32u8 into r58;\n add r55 r58 into r59;\n shr r5 96u8 into r60;\n rem r60 256u128 into r61;\n shl r61 24u8 into r62;\n add r59 r62 into r63;\n shr r5 104u8 into r64;\n rem r64 256u128 into r65;\n shl r65 16u8 into r66;\n add r63 r66 into r67;\n shr r5 112u8 into r68;\n rem r68 256u128 into r69;\n shl r69 8u8 into r70;\n add r67 r70 into r71;\n shr r5 120u8 into r72;\n rem r72 256u128 into r73;\n shl r73 0u8 into r74;\n add r71 r74 into r75;\n cast 0u128 r75 into r76 as [u128; 2u32];\n lt r0.remote_decimals r0.local_decimals into r77;\n lt r0.local_decimals r0.remote_decimals into r78;\n ternary r78 r0.remote_decimals r0.local_decimals into r79;\n sub r79 r0.remote_decimals into r80;\n pow 10u128 r80 into r81;\n div r5 r81 into r82;\n shr r82 0u8 into r83;\n rem r83 256u128 into r84;\n shl r84 120u8 into r85;\n add 0u128 r85 into r86;\n shr r82 8u8 into r87;\n rem r87 256u128 into r88;\n shl r88 112u8 into r89;\n add r86 r89 into r90;\n shr r82 16u8 into r91;\n rem r91 256u128 into r92;\n shl r92 104u8 into r93;\n add r90 r93 into r94;\n shr r82 24u8 into r95;\n rem r95 256u128 into r96;\n shl r96 96u8 into r97;\n add r94 r97 into r98;\n shr r82 32u8 into r99;\n rem r99 256u128 into r100;\n shl r100 88u8 into r101;\n add r98 r101 into r102;\n shr r82 40u8 into r103;\n rem r103 256u128 into r104;\n shl r104 80u8 into r105;\n add r102 r105 into r106;\n shr r82 48u8 into r107;\n rem r107 256u128 into r108;\n shl r108 72u8 into r109;\n add r106 r109 into r110;\n shr r82 56u8 into r111;\n rem r111 256u128 into r112;\n shl r112 64u8 into r113;\n add r110 r113 into r114;\n shr r82 64u8 into r115;\n rem r115 256u128 into r116;\n shl r116 56u8 into r117;\n add r114 r117 into r118;\n shr r82 72u8 into r119;\n rem r119 256u128 into r120;\n shl r120 48u8 into r121;\n add r118 r121 into r122;\n shr r82 80u8 into r123;\n rem r123 256u128 into r124;\n shl r124 40u8 into r125;\n add r122 r125 into r126;\n shr r82 88u8 into r127;\n rem r127 256u128 into r128;\n shl r128 32u8 into r129;\n add r126 r129 into r130;\n shr r82 96u8 into r131;\n rem r131 256u128 into r132;\n shl r132 24u8 into r133;\n add r130 r133 into r134;\n shr r82 104u8 into r135;\n rem r135 256u128 into r136;\n shl r136 16u8 into r137;\n add r134 r137 into r138;\n shr r82 112u8 into r139;\n rem r139 256u128 into r140;\n shl r140 8u8 into r141;\n add r138 r141 into r142;\n shr r82 120u8 into r143;\n rem r143 256u128 into r144;\n shl r144 0u8 into r145;\n add r142 r145 into r146;\n cast 0u128 r146 into r147 as [u128; 2u32];\n not r77 into r148;\n gt r0.local_decimals r0.remote_decimals into r149;\n ternary r149 r0.remote_decimals r0.local_decimals into r150;\n cast 0u64 0u64 0u64 0u64 into r151 as [u64; 4u32];\n shr r5 64u32 into r152;\n cast r152 into r153 as u64;\n and r5 18446744073709551615u128 into r154;\n cast r154 into r155 as u64;\n sub r0.remote_decimals r150 into r156;\n pow 10u64 r156 into r157;\n cast r155 into r158 as u128;\n cast r157 into r159 as u128;\n mul r158 r159 into r160;\n add r160 0u128 into r161;\n and r161 18446744073709551615u128 into r162;\n cast r162 into r163 as u64;\n shr r161 64u32 into r164;\n cast r153 into r165 as u128;\n cast r157 into r166 as u128;\n mul r165 r166 into r167;\n add r167 r164 into r168;\n and r168 18446744073709551615u128 into r169;\n cast r169 into r170 as u64;\n shr r168 64u32 into r171;\n cast r151[1u32] into r172 as u128;\n cast r157 into r173 as u128;\n mul r172 r173 into r174;\n add r174 r171 into r175;\n and r175 18446744073709551615u128 into r176;\n cast r176 into r177 as u64;\n shr r175 64u32 into r178;\n cast r151[0u32] into r179 as u128;\n cast r157 into r180 as u128;\n mul r179 r180 into r181;\n add r181 r178 into r182;\n and r182 18446744073709551615u128 into r183;\n cast r183 into r184 as u64;\n shr r182 64u32 into r185;\n not r148 into r186;\n or r11 r77 into r187;\n is.eq r185 0u128 into r188;\n or r188 r186 into r189;\n or r189 r187 into r190;\n assert.eq r190 true;\n cast r184 into r191 as u128;\n shl r191 64u32 into r192;\n cast r177 into r193 as u128;\n add r192 r193 into r194;\n cast r170 into r195 as u128;\n shl r195 64u32 into r196;\n cast r163 into r197 as u128;\n add r196 r197 into r198;\n shr r194 0u8 into r199;\n rem r199 256u128 into r200;\n shl r200 120u8 into r201;\n add 0u128 r201 into r202;\n shr r194 8u8 into r203;\n rem r203 256u128 into r204;\n shl r204 112u8 into r205;\n add r202 r205 into r206;\n shr r194 16u8 into r207;\n rem r207 256u128 into r208;\n shl r208 104u8 into r209;\n add r206 r209 into r210;\n shr r194 24u8 into r211;\n rem r211 256u128 into r212;\n shl r212 96u8 into r213;\n add r210 r213 into r214;\n shr r194 32u8 into r215;\n rem r215 256u128 into r216;\n shl r216 88u8 into r217;\n add r214 r217 into r218;\n shr r194 40u8 into r219;\n rem r219 256u128 into r220;\n shl r220 80u8 into r221;\n add r218 r221 into r222;\n shr r194 48u8 into r223;\n rem r223 256u128 into r224;\n shl r224 72u8 into r225;\n add r222 r225 into r226;\n shr r194 56u8 into r227;\n rem r227 256u128 into r228;\n shl r228 64u8 into r229;\n add r226 r229 into r230;\n shr r194 64u8 into r231;\n rem r231 256u128 into r232;\n shl r232 56u8 into r233;\n add r230 r233 into r234;\n shr r194 72u8 into r235;\n rem r235 256u128 into r236;\n shl r236 48u8 into r237;\n add r234 r237 into r238;\n shr r194 80u8 into r239;\n rem r239 256u128 into r240;\n shl r240 40u8 into r241;\n add r238 r241 into r242;\n shr r194 88u8 into r243;\n rem r243 256u128 into r244;\n shl r244 32u8 into r245;\n add r242 r245 into r246;\n shr r194 96u8 into r247;\n rem r247 256u128 into r248;\n shl r248 24u8 into r249;\n add r246 r249 into r250;\n shr r194 104u8 into r251;\n rem r251 256u128 into r252;\n shl r252 16u8 into r253;\n add r250 r253 into r254;\n shr r194 112u8 into r255;\n rem r255 256u128 into r256;\n shl r256 8u8 into r257;\n add r254 r257 into r258;\n shr r194 120u8 into r259;\n rem r259 256u128 into r260;\n shl r260 0u8 into r261;\n add r258 r261 into r262;\n shr r198 0u8 into r263;\n rem r263 256u128 into r264;\n shl r264 120u8 into r265;\n add 0u128 r265 into r266;\n shr r198 8u8 into r267;\n rem r267 256u128 into r268;\n shl r268 112u8 into r269;\n add r266 r269 into r270;\n shr r198 16u8 into r271;\n rem r271 256u128 into r272;\n shl r272 104u8 into r273;\n add r270 r273 into r274;\n shr r198 24u8 into r275;\n rem r275 256u128 into r276;\n shl r276 96u8 into r277;\n add r274 r277 into r278;\n shr r198 32u8 into r279;\n rem r279 256u128 into r280;\n shl r280 88u8 into r281;\n add r278 r281 into r282;\n shr r198 40u8 into r283;\n rem r283 256u128 into r284;\n shl r284 80u8 into r285;\n add r282 r285 into r286;\n shr r198 48u8 into r287;\n rem r287 256u128 into r288;\n shl r288 72u8 into r289;\n add r286 r289 into r290;\n shr r198 56u8 into r291;\n rem r291 256u128 into r292;\n shl r292 64u8 into r293;\n add r290 r293 into r294;\n shr r198 64u8 into r295;\n rem r295 256u128 into r296;\n shl r296 56u8 into r297;\n add r294 r297 into r298;\n shr r198 72u8 into r299;\n rem r299 256u128 into r300;\n shl r300 48u8 into r301;\n add r298 r301 into r302;\n shr r198 80u8 into r303;\n rem r303 256u128 into r304;\n shl r304 40u8 into r305;\n add r302 r305 into r306;\n shr r198 88u8 into r307;\n rem r307 256u128 into r308;\n shl r308 32u8 into r309;\n add r306 r309 into r310;\n shr r198 96u8 into r311;\n rem r311 256u128 into r312;\n shl r312 24u8 into r313;\n add r310 r313 into r314;\n shr r198 104u8 into r315;\n rem r315 256u128 into r316;\n shl r316 16u8 into r317;\n add r314 r317 into r318;\n shr r198 112u8 into r319;\n rem r319 256u128 into r320;\n shl r320 8u8 into r321;\n add r318 r321 into r322;\n shr r198 120u8 into r323;\n rem r323 256u128 into r324;\n shl r324 0u8 into r325;\n add r322 r325 into r326;\n cast r262 r326 into r327 as [u128; 2u32];\n ternary r77 r147[0u32] r327[0u32] into r328;\n ternary r77 r147[1u32] r327[1u32] into r329;\n cast r328 r329 into r330 as [u128; 2u32];\n ternary r11 r76[0u32] r330[0u32] into r331;\n ternary r11 r76[1u32] r330[1u32] into r332;\n cast r331 r332 into r333 as [u128; 2u32];\n cast 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 0u128 into r334 as [u128; 16u32];\n cast r4[0u32] r4[1u32] r333[0u32] r333[1u32] r334[4u32] r334[5u32] r334[6u32] r334[7u32] r334[8u32] r334[9u32] r334[10u32] r334[11u32] r334[12u32] r334[13u32] r334[14u32] r334[15u32] into r335 as [u128; 16u32];\n cast r10 r8.extra_data into r336 as HookMetadata;\n call dispatch_proxy.aleo/dispatch r1 r3 r2.recipient r335 r7 r336 r6 into r337;\n call token_registry.aleo/burn_public r0.token_id self.signer r5 into r338;\n async transfer_remote_with_hook r337 r338 r2 r3 r0 into r339;\n output r339 as hyp_synthetic.aleo/transfer_remote_with_hook.future;\n\nfinalize transfer_remote_with_hook:\n input r0 as dispatch_proxy.aleo/dispatch.future;\n input r1 as token_registry.aleo/burn_public.future;\n input r2 as RemoteRouter.public;\n input r3 as u32.public;\n input r4 as Metadata.public;\n get remote_routers[r3] into r5;\n assert.eq r5 r2;\n get app_metadata[true] into r6;\n assert.eq r4 r6;\n await r0;\n await r1;\n\nfunction process:\n input r0 as address.public;\n input r1 as Metadata.public;\n input r2 as Message.public;\n input r3 as u32.public;\n input r4 as [u128; 2u32].public;\n input r5 as [u8; 512u32].public;\n call mailbox.aleo/process r0 r2 r3 r4 r5 into r6;\n cast r2.body[0u32] r2.body[1u32] into r7 as [u128; 2u32];\n serialize.bits.raw r7 ([u128; 2u32]) into r8 ([boolean; 256u32]);\n cast r8[0u32] r8[1u32] r8[2u32] r8[3u32] r8[4u32] r8[5u32] r8[6u32] r8[7u32] r8[8u32] r8[9u32] r8[10u32] r8[11u32] r8[12u32] r8[13u32] r8[14u32] r8[15u32] r8[16u32] r8[17u32] r8[18u32] r8[19u32] r8[20u32] r8[21u32] r8[22u32] r8[23u32] r8[24u32] r8[25u32] r8[26u32] r8[27u32] r8[28u32] r8[29u32] r8[30u32] r8[31u32] r8[32u32] r8[33u32] r8[34u32] r8[35u32] r8[36u32] r8[37u32] r8[38u32] r8[39u32] r8[40u32] r8[41u32] r8[42u32] r8[43u32] r8[44u32] r8[45u32] r8[46u32] r8[47u32] r8[48u32] r8[49u32] r8[50u32] r8[51u32] r8[52u32] r8[53u32] r8[54u32] r8[55u32] r8[56u32] r8[57u32] r8[58u32] r8[59u32] r8[60u32] r8[61u32] r8[62u32] r8[63u32] r8[64u32] r8[65u32] r8[66u32] r8[67u32] r8[68u32] r8[69u32] r8[70u32] r8[71u32] r8[72u32] r8[73u32] r8[74u32] r8[75u32] r8[76u32] r8[77u32] r8[78u32] r8[79u32] r8[80u32] r8[81u32] r8[82u32] r8[83u32] r8[84u32] r8[85u32] r8[86u32] r8[87u32] r8[88u32] r8[89u32] r8[90u32] r8[91u32] r8[92u32] r8[93u32] r8[94u32] r8[95u32] r8[96u32] r8[97u32] r8[98u32] r8[99u32] r8[100u32] r8[101u32] r8[102u32] r8[103u32] r8[104u32] r8[105u32] r8[106u32] r8[107u32] r8[108u32] r8[109u32] r8[110u32] r8[111u32] r8[112u32] r8[113u32] r8[114u32] r8[115u32] r8[116u32] r8[117u32] r8[118u32] r8[119u32] r8[120u32] r8[121u32] r8[122u32] r8[123u32] r8[124u32] r8[125u32] r8[126u32] r8[127u32] r8[128u32] r8[129u32] r8[130u32] r8[131u32] r8[132u32] r8[133u32] r8[134u32] r8[135u32] r8[136u32] r8[137u32] r8[138u32] r8[139u32] r8[140u32] r8[141u32] r8[142u32] r8[143u32] r8[144u32] r8[145u32] r8[146u32] r8[147u32] r8[148u32] r8[149u32] r8[150u32] r8[151u32] r8[152u32] r8[153u32] r8[154u32] r8[155u32] r8[156u32] r8[157u32] r8[158u32] r8[159u32] r8[160u32] r8[161u32] r8[162u32] r8[163u32] r8[164u32] r8[165u32] r8[166u32] r8[167u32] r8[168u32] r8[169u32] r8[170u32] r8[171u32] r8[172u32] r8[173u32] r8[174u32] r8[175u32] r8[176u32] r8[177u32] r8[178u32] r8[179u32] r8[180u32] r8[181u32] r8[182u32] r8[183u32] r8[184u32] r8[185u32] r8[186u32] r8[187u32] r8[188u32] r8[189u32] r8[190u32] r8[191u32] r8[192u32] r8[193u32] r8[194u32] r8[195u32] r8[196u32] r8[197u32] r8[198u32] r8[199u32] r8[200u32] r8[201u32] r8[202u32] r8[203u32] r8[204u32] r8[205u32] r8[206u32] r8[207u32] r8[208u32] r8[209u32] r8[210u32] r8[211u32] r8[212u32] r8[213u32] r8[214u32] r8[215u32] r8[216u32] r8[217u32] r8[218u32] r8[219u32] r8[220u32] r8[221u32] r8[222u32] r8[223u32] r8[224u32] r8[225u32] r8[226u32] r8[227u32] r8[228u32] r8[229u32] r8[230u32] r8[231u32] r8[232u32] r8[233u32] r8[234u32] r8[235u32] r8[236u32] r8[237u32] r8[238u32] r8[239u32] r8[240u32] r8[241u32] r8[242u32] r8[243u32] r8[244u32] r8[245u32] r8[246u32] r8[247u32] r8[248u32] r8[249u32] r8[250u32] r8[251u32] r8[252u32] into r9 as [boolean; 253u32];\n deserialize.bits.raw r9 ([boolean; 253u32]) into r10 (address);\n cast r2.body[2u32] r2.body[3u32] into r11 as [u128; 2u32];\n is.eq r1.local_decimals r1.remote_decimals into r12;\n shr r11[1u32] 0u8 into r13;\n rem r13 256u128 into r14;\n shl r14 120u8 into r15;\n add 0u128 r15 into r16;\n shr r11[1u32] 8u8 into r17;\n rem r17 256u128 into r18;\n shl r18 112u8 into r19;\n add r16 r19 into r20;\n shr r11[1u32] 16u8 into r21;\n rem r21 256u128 into r22;\n shl r22 104u8 into r23;\n add r20 r23 into r24;\n shr r11[1u32] 24u8 into r25;\n rem r25 256u128 into r26;\n shl r26 96u8 into r27;\n add r24 r27 into r28;\n shr r11[1u32] 32u8 into r29;\n rem r29 256u128 into r30;\n shl r30 88u8 into r31;\n add r28 r31 into r32;\n shr r11[1u32] 40u8 into r33;\n rem r33 256u128 into r34;\n shl r34 80u8 into r35;\n add r32 r35 into r36;\n shr r11[1u32] 48u8 into r37;\n rem r37 256u128 into r38;\n shl r38 72u8 into r39;\n add r36 r39 into r40;\n shr r11[1u32] 56u8 into r41;\n rem r41 256u128 into r42;\n shl r42 64u8 into r43;\n add r40 r43 into r44;\n shr r11[1u32] 64u8 into r45;\n rem r45 256u128 into r46;\n shl r46 56u8 into r47;\n add r44 r47 into r48;\n shr r11[1u32] 72u8 into r49;\n rem r49 256u128 into r50;\n shl r50 48u8 into r51;\n add r48 r51 into r52;\n shr r11[1u32] 80u8 into r53;\n rem r53 256u128 into r54;\n shl r54 40u8 into r55;\n add r52 r55 into r56;\n shr r11[1u32] 88u8 into r57;\n rem r57 256u128 into r58;\n shl r58 32u8 into r59;\n add r56 r59 into r60;\n shr r11[1u32] 96u8 into r61;\n rem r61 256u128 into r62;\n shl r62 24u8 into r63;\n add r60 r63 into r64;\n shr r11[1u32] 104u8 into r65;\n rem r65 256u128 into r66;\n shl r66 16u8 into r67;\n add r64 r67 into r68;\n shr r11[1u32] 112u8 into r69;\n rem r69 256u128 into r70;\n shl r70 8u8 into r71;\n add r68 r71 into r72;\n shr r11[1u32] 120u8 into r73;\n rem r73 256u128 into r74;\n shl r74 0u8 into r75;\n add r72 r75 into r76;\n lt r1.remote_decimals r1.local_decimals into r77;\n lt r1.local_decimals r1.remote_decimals into r78;\n ternary r78 r1.remote_decimals r1.local_decimals into r79;\n sub r79 r1.remote_decimals into r80;\n not r77 into r81;\n is.eq r11[0u32] 0u128 into r82;\n or r82 r81 into r83;\n or r83 r12 into r84;\n assert.eq r84 true;\n pow 10u64 r80 into r85;\n cast r85 into r86 as u128;\n mul r76 r86 into r87;\n gt r1.local_decimals r1.remote_decimals into r88;\n ternary r88 r1.remote_decimals r1.local_decimals into r89;\n sub r1.remote_decimals r89 into r90;\n pow 10u64 r90 into r91;\n serialize.bits.raw r11 ([u128; 2u32]) into r92 ([boolean; 256u32]);\n deserialize.bits.raw r92 ([boolean; 256u32]) into r93 ([u8; 32u32]);\n cast r93[0u32] into r94 as u64;\n shl r94 56u32 into r95;\n add 0u64 r95 into r96;\n cast r93[1u32] into r97 as u64;\n shl r97 48u32 into r98;\n add r96 r98 into r99;\n cast r93[2u32] into r100 as u64;\n shl r100 40u32 into r101;\n add r99 r101 into r102;\n cast r93[3u32] into r103 as u64;\n shl r103 32u32 into r104;\n add r102 r104 into r105;\n cast r93[4u32] into r106 as u64;\n shl r106 24u32 into r107;\n add r105 r107 into r108;\n cast r93[5u32] into r109 as u64;\n shl r109 16u32 into r110;\n add r108 r110 into r111;\n cast r93[6u32] into r112 as u64;\n shl r112 8u32 into r113;\n add r111 r113 into r114;\n cast r93[7u32] into r115 as u64;\n shl r115 0u32 into r116;\n add r114 r116 into r117;\n cast r93[8u32] into r118 as u64;\n shl r118 56u32 into r119;\n add 0u64 r119 into r120;\n cast r93[9u32] into r121 as u64;\n shl r121 48u32 into r122;\n add r120 r122 into r123;\n cast r93[10u32] into r124 as u64;\n shl r124 40u32 into r125;\n add r123 r125 into r126;\n cast r93[11u32] into r127 as u64;\n shl r127 32u32 into r128;\n add r126 r128 into r129;\n cast r93[12u32] into r130 as u64;\n shl r130 24u32 into r131;\n add r129 r131 into r132;\n cast r93[13u32] into r133 as u64;\n shl r133 16u32 into r134;\n add r132 r134 into r135;\n cast r93[14u32] into r136 as u64;\n shl r136 8u32 into r137;\n add r135 r137 into r138;\n cast r93[15u32] into r139 as u64;\n shl r139 0u32 into r140;\n add r138 r140 into r141;\n cast r93[16u32] into r142 as u64;\n shl r142 56u32 into r143;\n add 0u64 r143 into r144;\n cast r93[17u32] into r145 as u64;\n shl r145 48u32 into r146;\n add r144 r146 into r147;\n cast r93[18u32] into r148 as u64;\n shl r148 40u32 into r149;\n add r147 r149 into r150;\n cast r93[19u32] into r151 as u64;\n shl r151 32u32 into r152;\n add r150 r152 into r153;\n cast r93[20u32] into r154 as u64;\n shl r154 24u32 into r155;\n add r153 r155 into r156;\n cast r93[21u32] into r157 as u64;\n shl r157 16u32 into r158;\n add r156 r158 into r159;\n cast r93[22u32] into r160 as u64;\n shl r160 8u32 into r161;\n add r159 r161 into r162;\n cast r93[23u32] into r163 as u64;\n shl r163 0u32 into r164;\n add r162 r164 into r165;\n cast r93[24u32] into r166 as u64;\n shl r166 56u32 into r167;\n add 0u64 r167 into r168;\n cast r93[25u32] into r169 as u64;\n shl r169 48u32 into r170;\n add r168 r170 into r171;\n cast r93[26u32] into r172 as u64;\n shl r172 40u32 into r173;\n add r171 r173 into r174;\n cast r93[27u32] into r175 as u64;\n shl r175 32u32 into r176;\n add r174 r176 into r177;\n cast r93[28u32] into r178 as u64;\n shl r178 24u32 into r179;\n add r177 r179 into r180;\n cast r93[29u32] into r181 as u64;\n shl r181 16u32 into r182;\n add r180 r182 into r183;\n cast r93[30u32] into r184 as u64;\n shl r184 8u32 into r185;\n add r183 r185 into r186;\n cast r93[31u32] into r187 as u64;\n shl r187 0u32 into r188;\n add r186 r188 into r189;\n shl 0u128 64u32 into r190;\n cast r117 into r191 as u128;\n or r190 r191 into r192;\n cast r91 into r193 as u128;\n div r192 r193 into r194;\n cast r194 into r195 as u64;\n cast r91 into r196 as u128;\n rem r192 r196 into r197;\n shl r197 64u32 into r198;\n cast r141 into r199 as u128;\n or r198 r199 into r200;\n cast r91 into r201 as u128;\n div r200 r201 into r202;\n cast r202 into r203 as u64;\n cast r91 into r204 as u128;\n rem r200 r204 into r205;\n shl r205 64u32 into r206;\n cast r165 into r207 as u128;\n or r206 r207 into r208;\n cast r91 into r209 as u128;\n div r208 r209 into r210;\n cast r210 into r211 as u64;\n cast r91 into r212 as u128;\n rem r208 r212 into r213;\n shl r213 64u32 into r214;\n cast r189 into r215 as u128;\n or r214 r215 into r216;\n cast r91 into r217 as u128;\n div r216 r217 into r218;\n cast r218 into r219 as u64;\n cast r91 into r220 as u128;\n rem r216 r220 into r221;\n assert.eq r195 0u64;\n assert.eq r203 0u64;\n cast r211 into r222 as u128;\n shl r222 64u32 into r223;\n cast r219 into r224 as u128;\n or r223 r224 into r225;\n ternary r77 r87 r225 into r226;\n ternary r12 r76 r226 into r227;\n call token_registry.aleo/mint_public r1.token_id r10 r227 4294967295u32 into r228;\n async process r6 r1 r2 r228 r0 into r229;\n output r229 as hyp_synthetic.aleo/process.future;\n\nfinalize process:\n input r0 as mailbox.aleo/process.future;\n input r1 as Metadata.public;\n input r2 as Message.public;\n input r3 as token_registry.aleo/mint_public.future;\n input r4 as address.public;\n get app_metadata[true] into r5;\n assert.eq r5 r1;\n get mailbox.aleo/mailbox[true] into r6;\n is.eq r5.ism aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc into r7;\n ternary r7 r6.default_ism r5.ism into r8;\n assert.eq r8 r4;\n get remote_routers[r2.origin_domain] into r9;\n assert.eq r9.recipient r2.sender;\n await r0;\n await r3;\n\nfunction get_balance_key:\n input r0 as address.private;\n input r1 as field.private;\n cast r0 r1 into r2 as TokenOwner;\n hash.bhp256 r2 into r3 as field;\n output r3 as field.private;\n\nconstructor:\n assert.eq edition 0u16;\n";
|
|
7
|
+
export declare const ism_manager = "program ism_manager.aleo;\n\nstruct Message:\n version as u8;\n nonce as u32;\n origin_domain as u32;\n sender as [u8; 32u32];\n destination_domain as u32;\n recipient as [u8; 32u32];\n body as [u128; 16u32];\n\nstruct EthAddress:\n bytes as [u8; 20u32];\n\nstruct MessageIdMultisigIsm:\n validators as [EthAddress; 6u32];\n validator_count as u8;\n threshold as u8;\n nonce as u32;\n\nstruct DomainRoutingIsm:\n ism_owner as address;\n nonce as u32;\n\nstruct NoopIsm:\n nonce as u32;\n\nstruct IsmRouteKey:\n ism as address;\n domain as u32;\n\nstruct RouteIndexKey:\n ism as address;\n index as u32;\n\nmapping nonce:\n key as boolean.public;\n value as u32.public;\n\nmapping ism_addresses:\n key as u32.public;\n value as address.public;\n\nmapping isms:\n key as address.public;\n value as u8.public;\n\nmapping domain_routing_isms:\n key as address.public;\n value as DomainRoutingIsm.public;\n\nmapping routes:\n key as IsmRouteKey.public;\n value as address.public;\n\nmapping route_iter:\n key as RouteIndexKey.public;\n value as IsmRouteKey.public;\n\nmapping route_length:\n key as address.public;\n value as u32.public;\n\nmapping message_id_multisigs:\n key as address.public;\n value as MessageIdMultisigIsm.public;\n\nfunction init_noop:\n async init_noop into r0;\n output r0 as ism_manager.aleo/init_noop.future;\n\nfinalize init_noop:\n get.or_use nonce[true] 0u32 into r0;\n cast r0 into r1 as NoopIsm;\n hash.bhp256 r1 into r2 as address;\n contains isms[r2] into r3;\n not r3 into r4;\n assert.eq r4 true;\n add r0 1u32 into r5;\n set r5 into nonce[true];\n set 6u8 into isms[r2];\n set r2 into ism_addresses[r0];\n\nfunction init_message_id_multisig:\n input r0 as [EthAddress; 6u32].private;\n input r1 as u8.private;\n input r2 as u8.private;\n async init_message_id_multisig r0 r1 r2 into r3;\n output r3 as ism_manager.aleo/init_message_id_multisig.future;\n\nfinalize init_message_id_multisig:\n input r0 as [EthAddress; 6u32].public;\n input r1 as u8.public;\n input r2 as u8.public;\n gt r2 0u8 into r3;\n assert.eq r3 true;\n lte r2 r1 into r4;\n assert.eq r4 true;\n lte r1 6u8 into r5;\n assert.eq r5 true;\n get.or_use nonce[true] 0u32 into r6;\n cast r0 r1 r2 r6 into r7 as MessageIdMultisigIsm;\n hash.bhp256 r7 into r8 as address;\n contains message_id_multisigs[r8] into r9;\n not r9 into r10;\n assert.eq r10 true;\n set r7 into message_id_multisigs[r8];\n add r6 1u32 into r11;\n set r11 into nonce[true];\n set 5u8 into isms[r8];\n set r8 into ism_addresses[r6];\n\nfunction init_domain_routing:\n async init_domain_routing self.caller into r0;\n output r0 as ism_manager.aleo/init_domain_routing.future;\n\nfinalize init_domain_routing:\n input r0 as address.public;\n get.or_use nonce[true] 0u32 into r1;\n cast r0 r1 into r2 as DomainRoutingIsm;\n hash.bhp256 r2 into r3 as address;\n contains domain_routing_isms[r3] into r4;\n not r4 into r5;\n assert.eq r5 true;\n set r2 into domain_routing_isms[r3];\n add r1 1u32 into r6;\n set r6 into nonce[true];\n set 1u8 into isms[r3];\n set r3 into ism_addresses[r1];\n\nfunction set_domain:\n input r0 as address.private;\n input r1 as u32.private;\n input r2 as address.private;\n async set_domain r0 r1 r2 self.caller into r3;\n output r3 as ism_manager.aleo/set_domain.future;\n\nfinalize set_domain:\n input r0 as address.public;\n input r1 as u32.public;\n input r2 as address.public;\n input r3 as address.public;\n contains domain_routing_isms[r0] into r4;\n assert.eq r4 true;\n get domain_routing_isms[r0] into r5;\n assert.eq r5.ism_owner r3;\n cast r0 r1 into r6 as IsmRouteKey;\n contains routes[r6] into r7;\n not r7 into r8;\n branch.eq r8 false to end_then_0_0;\n get.or_use route_length[r0] 0u32 into r9;\n cast r0 r9 into r10 as RouteIndexKey;\n set r6 into route_iter[r10];\n add r9 1u32 into r11;\n set r11 into route_length[r0];\n branch.eq true true to end_otherwise_0_1;\n position end_then_0_0;\n position end_otherwise_0_1;\n set r2 into routes[r6];\n\nfunction remove_domain:\n input r0 as address.private;\n input r1 as u32.private;\n async remove_domain r0 r1 self.caller into r2;\n output r2 as ism_manager.aleo/remove_domain.future;\n\nfinalize remove_domain:\n input r0 as address.public;\n input r1 as u32.public;\n input r2 as address.public;\n contains domain_routing_isms[r0] into r3;\n assert.eq r3 true;\n get domain_routing_isms[r0] into r4;\n assert.eq r4.ism_owner r2;\n cast r0 r1 into r5 as IsmRouteKey;\n remove routes[r5];\n\nfunction transfer_routing_ism_ownership:\n input r0 as address.private;\n input r1 as address.private;\n async transfer_routing_ism_ownership r0 self.caller r1 into r2;\n output r2 as ism_manager.aleo/transfer_routing_ism_ownership.future;\n\nfinalize transfer_routing_ism_ownership:\n input r0 as address.public;\n input r1 as address.public;\n input r2 as address.public;\n contains domain_routing_isms[r0] into r3;\n assert.eq r3 true;\n get domain_routing_isms[r0] into r4;\n assert.eq r4.ism_owner r1;\n cast r2 r4.nonce into r5 as DomainRoutingIsm;\n set r5 into domain_routing_isms[r0];\n\nfunction verify:\n input r0 as address.public;\n input r1 as Message.public;\n input r2 as [u128; 2u32].public;\n input r3 as [u8; 512u32].public;\n async verify r0 r1 r2 r3 into r4;\n output r4 as ism_manager.aleo/verify.future;\n\nfinalize verify:\n input r0 as address.public;\n input r1 as Message.public;\n input r2 as [u128; 2u32].public;\n input r3 as [u8; 512u32].public;\n cast r3[68u32] r3[69u32] r3[70u32] r3[71u32] r3[72u32] r3[73u32] r3[74u32] r3[75u32] r3[76u32] r3[77u32] r3[78u32] r3[79u32] r3[80u32] r3[81u32] r3[82u32] r3[83u32] r3[84u32] r3[85u32] r3[86u32] r3[87u32] r3[88u32] r3[89u32] r3[90u32] r3[91u32] r3[92u32] r3[93u32] r3[94u32] r3[95u32] r3[96u32] r3[97u32] r3[98u32] r3[99u32] r3[100u32] r3[101u32] r3[102u32] r3[103u32] r3[104u32] r3[105u32] r3[106u32] r3[107u32] r3[108u32] r3[109u32] r3[110u32] r3[111u32] r3[112u32] r3[113u32] r3[114u32] r3[115u32] r3[116u32] r3[117u32] r3[118u32] r3[119u32] r3[120u32] r3[121u32] r3[122u32] r3[123u32] r3[124u32] r3[125u32] r3[126u32] r3[127u32] r3[128u32] r3[129u32] r3[130u32] r3[131u32] r3[132u32] into r4 as [u8; 65u32];\n cast r3[133u32] r3[134u32] r3[135u32] r3[136u32] r3[137u32] r3[138u32] r3[139u32] r3[140u32] r3[141u32] r3[142u32] r3[143u32] r3[144u32] r3[145u32] r3[146u32] r3[147u32] r3[148u32] r3[149u32] r3[150u32] r3[151u32] r3[152u32] r3[153u32] r3[154u32] r3[155u32] r3[156u32] r3[157u32] r3[158u32] r3[159u32] r3[160u32] r3[161u32] r3[162u32] r3[163u32] r3[164u32] r3[165u32] r3[166u32] r3[167u32] r3[168u32] r3[169u32] r3[170u32] r3[171u32] r3[172u32] r3[173u32] r3[174u32] r3[175u32] r3[176u32] r3[177u32] r3[178u32] r3[179u32] r3[180u32] r3[181u32] r3[182u32] r3[183u32] r3[184u32] r3[185u32] r3[186u32] r3[187u32] r3[188u32] r3[189u32] r3[190u32] r3[191u32] r3[192u32] r3[193u32] r3[194u32] r3[195u32] r3[196u32] r3[197u32] into r5 as [u8; 65u32];\n cast r3[198u32] r3[199u32] r3[200u32] r3[201u32] r3[202u32] r3[203u32] r3[204u32] r3[205u32] r3[206u32] r3[207u32] r3[208u32] r3[209u32] r3[210u32] r3[211u32] r3[212u32] r3[213u32] r3[214u32] r3[215u32] r3[216u32] r3[217u32] r3[218u32] r3[219u32] r3[220u32] r3[221u32] r3[222u32] r3[223u32] r3[224u32] r3[225u32] r3[226u32] r3[227u32] r3[228u32] r3[229u32] r3[230u32] r3[231u32] r3[232u32] r3[233u32] r3[234u32] r3[235u32] r3[236u32] r3[237u32] r3[238u32] r3[239u32] r3[240u32] r3[241u32] r3[242u32] r3[243u32] r3[244u32] r3[245u32] r3[246u32] r3[247u32] r3[248u32] r3[249u32] r3[250u32] r3[251u32] r3[252u32] r3[253u32] r3[254u32] r3[255u32] r3[256u32] r3[257u32] r3[258u32] r3[259u32] r3[260u32] r3[261u32] r3[262u32] into r6 as [u8; 65u32];\n cast r3[263u32] r3[264u32] r3[265u32] r3[266u32] r3[267u32] r3[268u32] r3[269u32] r3[270u32] r3[271u32] r3[272u32] r3[273u32] r3[274u32] r3[275u32] r3[276u32] r3[277u32] r3[278u32] r3[279u32] r3[280u32] r3[281u32] r3[282u32] r3[283u32] r3[284u32] r3[285u32] r3[286u32] r3[287u32] r3[288u32] r3[289u32] r3[290u32] r3[291u32] r3[292u32] r3[293u32] r3[294u32] r3[295u32] r3[296u32] r3[297u32] r3[298u32] r3[299u32] r3[300u32] r3[301u32] r3[302u32] r3[303u32] r3[304u32] r3[305u32] r3[306u32] r3[307u32] r3[308u32] r3[309u32] r3[310u32] r3[311u32] r3[312u32] r3[313u32] r3[314u32] r3[315u32] r3[316u32] r3[317u32] r3[318u32] r3[319u32] r3[320u32] r3[321u32] r3[322u32] r3[323u32] r3[324u32] r3[325u32] r3[326u32] r3[327u32] into r7 as [u8; 65u32];\n cast r3[328u32] r3[329u32] r3[330u32] r3[331u32] r3[332u32] r3[333u32] r3[334u32] r3[335u32] r3[336u32] r3[337u32] r3[338u32] r3[339u32] r3[340u32] r3[341u32] r3[342u32] r3[343u32] r3[344u32] r3[345u32] r3[346u32] r3[347u32] r3[348u32] r3[349u32] r3[350u32] r3[351u32] r3[352u32] r3[353u32] r3[354u32] r3[355u32] r3[356u32] r3[357u32] r3[358u32] r3[359u32] r3[360u32] r3[361u32] r3[362u32] r3[363u32] r3[364u32] r3[365u32] r3[366u32] r3[367u32] r3[368u32] r3[369u32] r3[370u32] r3[371u32] r3[372u32] r3[373u32] r3[374u32] r3[375u32] r3[376u32] r3[377u32] r3[378u32] r3[379u32] r3[380u32] r3[381u32] r3[382u32] r3[383u32] r3[384u32] r3[385u32] r3[386u32] r3[387u32] r3[388u32] r3[389u32] r3[390u32] r3[391u32] r3[392u32] into r8 as [u8; 65u32];\n cast r3[393u32] r3[394u32] r3[395u32] r3[396u32] r3[397u32] r3[398u32] r3[399u32] r3[400u32] r3[401u32] r3[402u32] r3[403u32] r3[404u32] r3[405u32] r3[406u32] r3[407u32] r3[408u32] r3[409u32] r3[410u32] r3[411u32] r3[412u32] r3[413u32] r3[414u32] r3[415u32] r3[416u32] r3[417u32] r3[418u32] r3[419u32] r3[420u32] r3[421u32] r3[422u32] r3[423u32] r3[424u32] r3[425u32] r3[426u32] r3[427u32] r3[428u32] r3[429u32] r3[430u32] r3[431u32] r3[432u32] r3[433u32] r3[434u32] r3[435u32] r3[436u32] r3[437u32] r3[438u32] r3[439u32] r3[440u32] r3[441u32] r3[442u32] r3[443u32] r3[444u32] r3[445u32] r3[446u32] r3[447u32] r3[448u32] r3[449u32] r3[450u32] r3[451u32] r3[452u32] r3[453u32] r3[454u32] r3[455u32] r3[456u32] r3[457u32] into r9 as [u8; 65u32];\n cast r4 r5 r6 r7 r8 r9 into r10 as [[u8; 65u32]; 6u32];\n cast r3[0u32] r3[1u32] r3[2u32] r3[3u32] r3[4u32] r3[5u32] r3[6u32] r3[7u32] r3[8u32] r3[9u32] r3[10u32] r3[11u32] r3[12u32] r3[13u32] r3[14u32] r3[15u32] r3[16u32] r3[17u32] r3[18u32] r3[19u32] r3[20u32] r3[21u32] r3[22u32] r3[23u32] r3[24u32] r3[25u32] r3[26u32] r3[27u32] r3[28u32] r3[29u32] r3[30u32] r3[31u32] into r11 as [u8; 32u32];\n shr r1.origin_domain 24u32 into r12;\n cast r12 into r13 as u8;\n shr r1.origin_domain 16u32 into r14;\n rem r14 256u32 into r15;\n cast r15 into r16 as u8;\n shr r1.origin_domain 8u32 into r17;\n rem r17 256u32 into r18;\n cast r18 into r19 as u8;\n rem r1.origin_domain 256u32 into r20;\n cast r20 into r21 as u8;\n cast r13 r16 r19 r21 r11[0u32] r11[1u32] r11[2u32] r11[3u32] r11[4u32] r11[5u32] r11[6u32] r11[7u32] r11[8u32] r11[9u32] r11[10u32] r11[11u32] r11[12u32] r11[13u32] r11[14u32] r11[15u32] r11[16u32] r11[17u32] r11[18u32] r11[19u32] r11[20u32] r11[21u32] r11[22u32] r11[23u32] r11[24u32] r11[25u32] r11[26u32] r11[27u32] r11[28u32] r11[29u32] r11[30u32] r11[31u32] 72u8 89u8 80u8 69u8 82u8 76u8 65u8 78u8 69u8 into r22 as [u8; 45u32];\n hash.keccak256.native.raw r22 into r23 as [boolean; 256u32];\n deserialize.bits.raw r23 ([boolean; 256u32]) into r24 ([u8; 32u32]);\n serialize.bits.raw r2[0u32] (u128) into r25 ([boolean; 128u32]);\n serialize.bits.raw r2[1u32] (u128) into r26 ([boolean; 128u32]);\n cast r25[0u32] r25[1u32] r25[2u32] r25[3u32] r25[4u32] r25[5u32] r25[6u32] r25[7u32] r25[8u32] r25[9u32] r25[10u32] r25[11u32] r25[12u32] r25[13u32] r25[14u32] r25[15u32] r25[16u32] r25[17u32] r25[18u32] r25[19u32] r25[20u32] r25[21u32] r25[22u32] r25[23u32] r25[24u32] r25[25u32] r25[26u32] r25[27u32] r25[28u32] r25[29u32] r25[30u32] r25[31u32] r25[32u32] r25[33u32] r25[34u32] r25[35u32] r25[36u32] r25[37u32] r25[38u32] r25[39u32] r25[40u32] r25[41u32] r25[42u32] r25[43u32] r25[44u32] r25[45u32] r25[46u32] r25[47u32] r25[48u32] r25[49u32] r25[50u32] r25[51u32] r25[52u32] r25[53u32] r25[54u32] r25[55u32] r25[56u32] r25[57u32] r25[58u32] r25[59u32] r25[60u32] r25[61u32] r25[62u32] r25[63u32] r25[64u32] r25[65u32] r25[66u32] r25[67u32] r25[68u32] r25[69u32] r25[70u32] r25[71u32] r25[72u32] r25[73u32] r25[74u32] r25[75u32] r25[76u32] r25[77u32] r25[78u32] r25[79u32] r25[80u32] r25[81u32] r25[82u32] r25[83u32] r25[84u32] r25[85u32] r25[86u32] r25[87u32] r25[88u32] r25[89u32] r25[90u32] r25[91u32] r25[92u32] r25[93u32] r25[94u32] r25[95u32] r25[96u32] r25[97u32] r25[98u32] r25[99u32] r25[100u32] r25[101u32] r25[102u32] r25[103u32] r25[104u32] r25[105u32] r25[106u32] r25[107u32] r25[108u32] r25[109u32] r25[110u32] r25[111u32] r25[112u32] r25[113u32] r25[114u32] r25[115u32] r25[116u32] r25[117u32] r25[118u32] r25[119u32] r25[120u32] r25[121u32] r25[122u32] r25[123u32] r25[124u32] r25[125u32] r25[126u32] r25[127u32] r26[0u32] r26[1u32] r26[2u32] r26[3u32] r26[4u32] r26[5u32] r26[6u32] r26[7u32] r26[8u32] r26[9u32] r26[10u32] r26[11u32] r26[12u32] r26[13u32] r26[14u32] r26[15u32] r26[16u32] r26[17u32] r26[18u32] r26[19u32] r26[20u32] r26[21u32] r26[22u32] r26[23u32] r26[24u32] r26[25u32] r26[26u32] r26[27u32] r26[28u32] r26[29u32] r26[30u32] r26[31u32] r26[32u32] r26[33u32] r26[34u32] r26[35u32] r26[36u32] r26[37u32] r26[38u32] r26[39u32] r26[40u32] r26[41u32] r26[42u32] r26[43u32] r26[44u32] r26[45u32] r26[46u32] r26[47u32] r26[48u32] r26[49u32] r26[50u32] r26[51u32] r26[52u32] r26[53u32] r26[54u32] r26[55u32] r26[56u32] r26[57u32] r26[58u32] r26[59u32] r26[60u32] r26[61u32] r26[62u32] r26[63u32] r26[64u32] r26[65u32] r26[66u32] r26[67u32] r26[68u32] r26[69u32] r26[70u32] r26[71u32] r26[72u32] r26[73u32] r26[74u32] r26[75u32] r26[76u32] r26[77u32] r26[78u32] r26[79u32] r26[80u32] r26[81u32] r26[82u32] r26[83u32] r26[84u32] r26[85u32] r26[86u32] r26[87u32] r26[88u32] r26[89u32] r26[90u32] r26[91u32] r26[92u32] r26[93u32] r26[94u32] r26[95u32] r26[96u32] r26[97u32] r26[98u32] r26[99u32] r26[100u32] r26[101u32] r26[102u32] r26[103u32] r26[104u32] r26[105u32] r26[106u32] r26[107u32] r26[108u32] r26[109u32] r26[110u32] r26[111u32] r26[112u32] r26[113u32] r26[114u32] r26[115u32] r26[116u32] r26[117u32] r26[118u32] r26[119u32] r26[120u32] r26[121u32] r26[122u32] r26[123u32] r26[124u32] r26[125u32] r26[126u32] r26[127u32] into r27 as [boolean; 256u32];\n deserialize.bits.raw r27 ([boolean; 256u32]) into r28 ([u8; 32u32]);\n cast r24[0u32] r24[1u32] r24[2u32] r24[3u32] r24[4u32] r24[5u32] r24[6u32] r24[7u32] r24[8u32] r24[9u32] r24[10u32] r24[11u32] r24[12u32] r24[13u32] r24[14u32] r24[15u32] r24[16u32] r24[17u32] r24[18u32] r24[19u32] r24[20u32] r24[21u32] r24[22u32] r24[23u32] r24[24u32] r24[25u32] r24[26u32] r24[27u32] r24[28u32] r24[29u32] r24[30u32] r24[31u32] r3[32u32] r3[33u32] r3[34u32] r3[35u32] r3[36u32] r3[37u32] r3[38u32] r3[39u32] r3[40u32] r3[41u32] r3[42u32] r3[43u32] r3[44u32] r3[45u32] r3[46u32] r3[47u32] r3[48u32] r3[49u32] r3[50u32] r3[51u32] r3[52u32] r3[53u32] r3[54u32] r3[55u32] r3[56u32] r3[57u32] r3[58u32] r3[59u32] r3[60u32] r3[61u32] r3[62u32] r3[63u32] r3[64u32] r3[65u32] r3[66u32] r3[67u32] r28[0u32] r28[1u32] r28[2u32] r28[3u32] r28[4u32] r28[5u32] r28[6u32] r28[7u32] r28[8u32] r28[9u32] r28[10u32] r28[11u32] r28[12u32] r28[13u32] r28[14u32] r28[15u32] r28[16u32] r28[17u32] r28[18u32] r28[19u32] r28[20u32] r28[21u32] r28[22u32] r28[23u32] r28[24u32] r28[25u32] r28[26u32] r28[27u32] r28[28u32] r28[29u32] r28[30u32] r28[31u32] into r29 as [u8; 100u32];\n hash.keccak256.native.raw r29 into r30 as [boolean; 256u32];\n deserialize.bits.raw r30 ([boolean; 256u32]) into r31 ([u8; 32u32]);\n cast 25u8 69u8 116u8 104u8 101u8 114u8 101u8 117u8 109u8 32u8 83u8 105u8 103u8 110u8 101u8 100u8 32u8 77u8 101u8 115u8 115u8 97u8 103u8 101u8 58u8 10u8 51u8 50u8 r31[0u32] r31[1u32] r31[2u32] r31[3u32] r31[4u32] r31[5u32] r31[6u32] r31[7u32] r31[8u32] r31[9u32] r31[10u32] r31[11u32] r31[12u32] r31[13u32] r31[14u32] r31[15u32] r31[16u32] r31[17u32] r31[18u32] r31[19u32] r31[20u32] r31[21u32] r31[22u32] r31[23u32] r31[24u32] r31[25u32] r31[26u32] r31[27u32] r31[28u32] r31[29u32] r31[30u32] r31[31u32] into r32 as [u8; 60u32];\n hash.keccak256.native.raw r32 into r33 as [boolean; 256u32];\n deserialize.bits.raw r33 ([boolean; 256u32]) into r34 ([u8; 32u32]);\n get isms[r0] into r35;\n contains isms[r0] into r36;\n assert.eq r36 true;\n is.eq r35 5u8 into r37;\n branch.eq r37 false to end_then_0_2;\n get message_id_multisigs[r0] into r38;\n ecdsa.verify.digest.eth r10[0u32] r38.validators[0u32].bytes r34 into r39;\n ternary r39 1u8 0u8 into r40;\n add 0u8 r40 into r41;\n ecdsa.verify.digest.eth r10[1u32] r38.validators[1u32].bytes r34 into r42;\n ternary r42 1u8 0u8 into r43;\n add r41 r43 into r44;\n ecdsa.verify.digest.eth r10[2u32] r38.validators[2u32].bytes r34 into r45;\n ternary r45 1u8 0u8 into r46;\n add r44 r46 into r47;\n ecdsa.verify.digest.eth r10[3u32] r38.validators[3u32].bytes r34 into r48;\n ternary r48 1u8 0u8 into r49;\n add r47 r49 into r50;\n ecdsa.verify.digest.eth r10[4u32] r38.validators[4u32].bytes r34 into r51;\n ternary r51 1u8 0u8 into r52;\n add r50 r52 into r53;\n ecdsa.verify.digest.eth r10[5u32] r38.validators[5u32].bytes r34 into r54;\n ternary r54 1u8 0u8 into r55;\n add r53 r55 into r56;\n gte r56 r38.threshold into r57;\n assert.eq r57 true;\n branch.eq true true to end_otherwise_0_3;\n position end_then_0_2;\n is.eq r35 6u8 into r58;\n is.eq r35 1u8 into r59;\n or r58 r59 into r60;\n branch.eq r60 false to end_then_1_4;\n branch.eq true true to end_otherwise_1_5;\n position end_then_1_4;\n assert.eq false true;\n position end_otherwise_1_5;\n position end_otherwise_0_3;\n cast r0 r1.origin_domain into r61 as IsmRouteKey;\n get.or_use routes[r61] r0 into r62;\n get isms[r62] into r63;\n contains isms[r62] into r64;\n assert.eq r64 true;\n is.eq r63 5u8 into r65;\n branch.eq r65 false to end_then_0_6;\n get message_id_multisigs[r62] into r66;\n ecdsa.verify.digest.eth r10[0u32] r66.validators[0u32].bytes r34 into r67;\n ternary r67 1u8 0u8 into r68;\n add 0u8 r68 into r69;\n ecdsa.verify.digest.eth r10[1u32] r66.validators[1u32].bytes r34 into r70;\n ternary r70 1u8 0u8 into r71;\n add r69 r71 into r72;\n ecdsa.verify.digest.eth r10[2u32] r66.validators[2u32].bytes r34 into r73;\n ternary r73 1u8 0u8 into r74;\n add r72 r74 into r75;\n ecdsa.verify.digest.eth r10[3u32] r66.validators[3u32].bytes r34 into r76;\n ternary r76 1u8 0u8 into r77;\n add r75 r77 into r78;\n ecdsa.verify.digest.eth r10[4u32] r66.validators[4u32].bytes r34 into r79;\n ternary r79 1u8 0u8 into r80;\n add r78 r80 into r81;\n ecdsa.verify.digest.eth r10[5u32] r66.validators[5u32].bytes r34 into r82;\n ternary r82 1u8 0u8 into r83;\n add r81 r83 into r84;\n gte r84 r66.threshold into r85;\n assert.eq r85 true;\n branch.eq true true to end_otherwise_0_7;\n position end_then_0_6;\n is.eq r63 6u8 into r86;\n is.eq r63 1u8 into r87;\n or r86 r87 into r88;\n branch.eq r88 false to end_then_1_8;\n branch.eq true true to end_otherwise_1_9;\n position end_then_1_8;\n assert.eq false true;\n position end_otherwise_1_9;\n position end_otherwise_0_7;\n cast r62 r1.origin_domain into r89 as IsmRouteKey;\n get.or_use routes[r89] r62 into r90;\n get isms[r90] into r91;\n contains isms[r90] into r92;\n assert.eq r92 true;\n is.eq r91 5u8 into r93;\n branch.eq r93 false to end_then_0_10;\n get message_id_multisigs[r90] into r94;\n ecdsa.verify.digest.eth r10[0u32] r94.validators[0u32].bytes r34 into r95;\n ternary r95 1u8 0u8 into r96;\n add 0u8 r96 into r97;\n ecdsa.verify.digest.eth r10[1u32] r94.validators[1u32].bytes r34 into r98;\n ternary r98 1u8 0u8 into r99;\n add r97 r99 into r100;\n ecdsa.verify.digest.eth r10[2u32] r94.validators[2u32].bytes r34 into r101;\n ternary r101 1u8 0u8 into r102;\n add r100 r102 into r103;\n ecdsa.verify.digest.eth r10[3u32] r94.validators[3u32].bytes r34 into r104;\n ternary r104 1u8 0u8 into r105;\n add r103 r105 into r106;\n ecdsa.verify.digest.eth r10[4u32] r94.validators[4u32].bytes r34 into r107;\n ternary r107 1u8 0u8 into r108;\n add r106 r108 into r109;\n ecdsa.verify.digest.eth r10[5u32] r94.validators[5u32].bytes r34 into r110;\n ternary r110 1u8 0u8 into r111;\n add r109 r111 into r112;\n gte r112 r94.threshold into r113;\n assert.eq r113 true;\n branch.eq true true to end_otherwise_0_11;\n position end_then_0_10;\n is.eq r91 6u8 into r114;\n is.eq r91 1u8 into r115;\n or r114 r115 into r116;\n branch.eq r116 false to end_then_1_12;\n branch.eq true true to end_otherwise_1_13;\n position end_then_1_12;\n assert.eq false true;\n position end_otherwise_1_13;\n position end_otherwise_0_11;\n cast r90 r1.origin_domain into r117 as IsmRouteKey;\n get.or_use routes[r117] r90 into r118;\n get isms[r118] into r119;\n contains isms[r118] into r120;\n assert.eq r120 true;\n is.eq r119 5u8 into r121;\n branch.eq r121 false to end_then_0_14;\n get message_id_multisigs[r118] into r122;\n ecdsa.verify.digest.eth r10[0u32] r122.validators[0u32].bytes r34 into r123;\n ternary r123 1u8 0u8 into r124;\n add 0u8 r124 into r125;\n ecdsa.verify.digest.eth r10[1u32] r122.validators[1u32].bytes r34 into r126;\n ternary r126 1u8 0u8 into r127;\n add r125 r127 into r128;\n ecdsa.verify.digest.eth r10[2u32] r122.validators[2u32].bytes r34 into r129;\n ternary r129 1u8 0u8 into r130;\n add r128 r130 into r131;\n ecdsa.verify.digest.eth r10[3u32] r122.validators[3u32].bytes r34 into r132;\n ternary r132 1u8 0u8 into r133;\n add r131 r133 into r134;\n ecdsa.verify.digest.eth r10[4u32] r122.validators[4u32].bytes r34 into r135;\n ternary r135 1u8 0u8 into r136;\n add r134 r136 into r137;\n ecdsa.verify.digest.eth r10[5u32] r122.validators[5u32].bytes r34 into r138;\n ternary r138 1u8 0u8 into r139;\n add r137 r139 into r140;\n gte r140 r122.threshold into r141;\n assert.eq r141 true;\n branch.eq true true to end_otherwise_0_15;\n position end_then_0_14;\n is.eq r119 6u8 into r142;\n is.eq r119 1u8 into r143;\n or r142 r143 into r144;\n branch.eq r144 false to end_then_1_16;\n branch.eq true true to end_otherwise_1_17;\n position end_then_1_16;\n assert.eq false true;\n position end_otherwise_1_17;\n position end_otherwise_0_15;\n cast r118 r1.origin_domain into r145 as IsmRouteKey;\n get.or_use routes[r145] r118 into r146;\n get isms[r146] into r147;\n is.eq r147 1u8 into r148;\n branch.eq r148 false to end_then_0_18;\n assert.eq false true;\n branch.eq true true to end_otherwise_0_19;\n position end_then_0_18;\n position end_otherwise_0_19;\n\nconstructor:\n assert.eq edition 0u16;\n";
|
|
8
|
+
export declare const mailbox = "import ism_manager.aleo;\nprogram mailbox.aleo;\n\nstruct Mailbox:\n local_domain as u32;\n nonce as u32;\n process_count as u32;\n default_ism as address;\n default_hook as address;\n required_hook as address;\n dispatch_proxy as address;\n mailbox_owner as address;\n\nstruct Message:\n version as u8;\n nonce as u32;\n origin_domain as u32;\n sender as [u8; 32u32];\n destination_domain as u32;\n recipient as [u8; 32u32];\n body as [u128; 16u32];\n\nstruct Delivery:\n processor as address;\n block_number as u32;\n\nstruct DeliveryKey:\n id as [u128; 2u32];\n\nstruct EthAddress:\n bytes as [u8; 20u32];\n\nmapping deliveries:\n key as DeliveryKey.public;\n value as Delivery.public;\n\nmapping dispatch_events:\n key as u32.public;\n value as Message.public;\n\nmapping dispatch_id_events:\n key as u32.public;\n value as [u128; 2u32].public;\n\nmapping process_events:\n key as u32.public;\n value as [u128; 2u32].public;\n\nmapping mailbox:\n key as boolean.public;\n value as Mailbox.public;\n\nmapping process_event_index:\n key as u32.public;\n value as u32.public;\n\nmapping dispatch_event_index:\n key as u32.public;\n value as u32.public;\n\nmapping registered_applications:\n key as address.public;\n value as [u8; 128u32].public;\n\nfunction init:\n input r0 as u32.private;\n async init r0 self.caller into r1;\n output r1 as mailbox.aleo/init.future;\n\nfinalize init:\n input r0 as u32.public;\n input r1 as address.public;\n contains mailbox[true] into r2;\n not r2 into r3;\n assert.eq r3 true;\n cast r0 0u32 0u32 aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc r1 into r4 as Mailbox;\n set r4 into mailbox[true];\n\nfunction get_address:\n output mailbox.aleo as address.private;\n\nfunction set_dispatch_proxy:\n input r0 as address.private;\n async set_dispatch_proxy self.caller r0 into r1;\n output r1 as mailbox.aleo/set_dispatch_proxy.future;\n\nfinalize set_dispatch_proxy:\n input r0 as address.public;\n input r1 as address.public;\n get mailbox[true] into r2;\n assert.eq r2.mailbox_owner r0;\n cast r2.local_domain r2.nonce r2.process_count r2.default_ism r2.default_hook r2.required_hook r1 r2.mailbox_owner into r3 as Mailbox;\n set r3 into mailbox[true];\n\nfunction set_owner:\n input r0 as address.private;\n async set_owner self.caller r0 into r1;\n output r1 as mailbox.aleo/set_owner.future;\n\nfinalize set_owner:\n input r0 as address.public;\n input r1 as address.public;\n get mailbox[true] into r2;\n assert.eq r2.mailbox_owner r0;\n cast r2.local_domain r2.nonce r2.process_count r2.default_ism r2.default_hook r2.required_hook r2.dispatch_proxy r1 into r3 as Mailbox;\n set r3 into mailbox[true];\n\nfunction set_default_ism:\n input r0 as address.private;\n async set_default_ism self.caller r0 into r1;\n output r1 as mailbox.aleo/set_default_ism.future;\n\nfinalize set_default_ism:\n input r0 as address.public;\n input r1 as address.public;\n get mailbox[true] into r2;\n assert.eq r2.mailbox_owner r0;\n cast r2.local_domain r2.nonce r2.process_count r1 r2.default_hook r2.required_hook r2.dispatch_proxy r2.mailbox_owner into r3 as Mailbox;\n set r3 into mailbox[true];\n\nfunction set_default_hook:\n input r0 as address.private;\n async set_default_hook self.caller r0 into r1;\n output r1 as mailbox.aleo/set_default_hook.future;\n\nfinalize set_default_hook:\n input r0 as address.public;\n input r1 as address.public;\n get mailbox[true] into r2;\n assert.eq r2.mailbox_owner r0;\n cast r2.local_domain r2.nonce r2.process_count r2.default_ism r1 r2.required_hook r2.dispatch_proxy r2.mailbox_owner into r3 as Mailbox;\n set r3 into mailbox[true];\n\nfunction set_required_hook:\n input r0 as address.private;\n async set_required_hook self.caller r0 into r1;\n output r1 as mailbox.aleo/set_required_hook.future;\n\nfinalize set_required_hook:\n input r0 as address.public;\n input r1 as address.public;\n get mailbox[true] into r2;\n assert.eq r2.mailbox_owner r0;\n cast r2.local_domain r2.nonce r2.process_count r2.default_ism r2.default_hook r1 r2.dispatch_proxy r2.mailbox_owner into r3 as Mailbox;\n set r3 into mailbox[true];\n\nfunction register_application:\n input r0 as [u8; 128u32].private;\n async register_application r0 self.caller into r1;\n output r1 as mailbox.aleo/register_application.future;\n\nfinalize register_application:\n input r0 as [u8; 128u32].public;\n input r1 as address.public;\n contains mailbox[true] into r2;\n assert.eq r2 true;\n contains registered_applications[r1] into r3;\n not r3 into r4;\n assert.eq r4 true;\n set r0 into registered_applications[r1];\n\nfunction process:\n input r0 as address.public;\n input r1 as Message.public;\n input r2 as u32.public;\n input r3 as [u128; 2u32].public;\n input r4 as [u8; 512u32].public;\n call ism_manager.aleo/verify r0 r1 r3 r4 into r5;\n async process r0 r1 r2 r3 self.caller r5 into r6;\n output r6 as mailbox.aleo/process.future;\n\nfinalize process:\n input r0 as address.public;\n input r1 as Message.public;\n input r2 as u32.public;\n input r3 as [u128; 2u32].public;\n input r4 as address.public;\n input r5 as ism_manager.aleo/verify.future;\n contains mailbox[true] into r6;\n assert.eq r6 true;\n gte r2 77u32 into r7;\n lte r2 333u32 into r8;\n and r7 r8 into r9;\n assert.eq r9 true;\n sub r2 77u32 into r10;\n rem r10 16u32 into r11;\n is.eq r11 0u32 into r12;\n is.eq r2 206u32 into r13;\n or r12 r13 into r14;\n is.eq r2 149u32 into r15;\n or r14 r15 into r16;\n is.eq r2 167u32 into r17;\n or r16 r17 into r18;\n assert.eq r18 true;\n cast 0u128 0u128 into r19 as [u128; 2u32];\n shr r1.nonce 24u32 into r20;\n cast r20 into r21 as u8;\n shr r1.nonce 16u32 into r22;\n rem r22 256u32 into r23;\n cast r23 into r24 as u8;\n shr r1.nonce 8u32 into r25;\n rem r25 256u32 into r26;\n cast r26 into r27 as u8;\n rem r1.nonce 256u32 into r28;\n cast r28 into r29 as u8;\n cast r21 r24 r27 r29 into r30 as [u8; 4u32];\n shr r1.origin_domain 24u32 into r31;\n cast r31 into r32 as u8;\n shr r1.origin_domain 16u32 into r33;\n rem r33 256u32 into r34;\n cast r34 into r35 as u8;\n shr r1.origin_domain 8u32 into r36;\n rem r36 256u32 into r37;\n cast r37 into r38 as u8;\n rem r1.origin_domain 256u32 into r39;\n cast r39 into r40 as u8;\n cast r32 r35 r38 r40 into r41 as [u8; 4u32];\n shr r1.destination_domain 24u32 into r42;\n cast r42 into r43 as u8;\n shr r1.destination_domain 16u32 into r44;\n rem r44 256u32 into r45;\n cast r45 into r46 as u8;\n shr r1.destination_domain 8u32 into r47;\n rem r47 256u32 into r48;\n cast r48 into r49 as u8;\n rem r1.destination_domain 256u32 into r50;\n cast r50 into r51 as u8;\n cast r43 r46 r49 r51 into r52 as [u8; 4u32];\n serialize.bits.raw r1.body[0u32] (u128) into r53 ([boolean; 128u32]);\n deserialize.bits.raw r53 ([boolean; 128u32]) into r54 ([u8; 16u32]);\n serialize.bits.raw r1.body[1u32] (u128) into r55 ([boolean; 128u32]);\n deserialize.bits.raw r55 ([boolean; 128u32]) into r56 ([u8; 16u32]);\n serialize.bits.raw r1.body[2u32] (u128) into r57 ([boolean; 128u32]);\n deserialize.bits.raw r57 ([boolean; 128u32]) into r58 ([u8; 16u32]);\n serialize.bits.raw r1.body[3u32] (u128) into r59 ([boolean; 128u32]);\n deserialize.bits.raw r59 ([boolean; 128u32]) into r60 ([u8; 16u32]);\n serialize.bits.raw r1.body[4u32] (u128) into r61 ([boolean; 128u32]);\n deserialize.bits.raw r61 ([boolean; 128u32]) into r62 ([u8; 16u32]);\n serialize.bits.raw r1.body[5u32] (u128) into r63 ([boolean; 128u32]);\n deserialize.bits.raw r63 ([boolean; 128u32]) into r64 ([u8; 16u32]);\n serialize.bits.raw r1.body[6u32] (u128) into r65 ([boolean; 128u32]);\n deserialize.bits.raw r65 ([boolean; 128u32]) into r66 ([u8; 16u32]);\n serialize.bits.raw r1.body[7u32] (u128) into r67 ([boolean; 128u32]);\n deserialize.bits.raw r67 ([boolean; 128u32]) into r68 ([u8; 16u32]);\n serialize.bits.raw r1.body[8u32] (u128) into r69 ([boolean; 128u32]);\n deserialize.bits.raw r69 ([boolean; 128u32]) into r70 ([u8; 16u32]);\n serialize.bits.raw r1.body[9u32] (u128) into r71 ([boolean; 128u32]);\n deserialize.bits.raw r71 ([boolean; 128u32]) into r72 ([u8; 16u32]);\n serialize.bits.raw r1.body[10u32] (u128) into r73 ([boolean; 128u32]);\n deserialize.bits.raw r73 ([boolean; 128u32]) into r74 ([u8; 16u32]);\n serialize.bits.raw r1.body[11u32] (u128) into r75 ([boolean; 128u32]);\n deserialize.bits.raw r75 ([boolean; 128u32]) into r76 ([u8; 16u32]);\n serialize.bits.raw r1.body[12u32] (u128) into r77 ([boolean; 128u32]);\n deserialize.bits.raw r77 ([boolean; 128u32]) into r78 ([u8; 16u32]);\n serialize.bits.raw r1.body[13u32] (u128) into r79 ([boolean; 128u32]);\n deserialize.bits.raw r79 ([boolean; 128u32]) into r80 ([u8; 16u32]);\n serialize.bits.raw r1.body[14u32] (u128) into r81 ([boolean; 128u32]);\n deserialize.bits.raw r81 ([boolean; 128u32]) into r82 ([u8; 16u32]);\n serialize.bits.raw r1.body[15u32] (u128) into r83 ([boolean; 128u32]);\n deserialize.bits.raw r83 ([boolean; 128u32]) into r84 ([u8; 16u32]);\n cast r1.version r30[0u32] r30[1u32] r30[2u32] r30[3u32] r41[0u32] r41[1u32] r41[2u32] r41[3u32] r1.sender[0u32] r1.sender[1u32] r1.sender[2u32] r1.sender[3u32] r1.sender[4u32] r1.sender[5u32] r1.sender[6u32] r1.sender[7u32] r1.sender[8u32] r1.sender[9u32] r1.sender[10u32] r1.sender[11u32] r1.sender[12u32] r1.sender[13u32] r1.sender[14u32] r1.sender[15u32] r1.sender[16u32] r1.sender[17u32] r1.sender[18u32] r1.sender[19u32] r1.sender[20u32] r1.sender[21u32] r1.sender[22u32] r1.sender[23u32] r1.sender[24u32] r1.sender[25u32] r1.sender[26u32] r1.sender[27u32] r1.sender[28u32] r1.sender[29u32] r1.sender[30u32] r1.sender[31u32] r52[0u32] r52[1u32] r52[2u32] r52[3u32] r1.recipient[0u32] r1.recipient[1u32] r1.recipient[2u32] r1.recipient[3u32] r1.recipient[4u32] r1.recipient[5u32] r1.recipient[6u32] r1.recipient[7u32] r1.recipient[8u32] r1.recipient[9u32] r1.recipient[10u32] r1.recipient[11u32] r1.recipient[12u32] r1.recipient[13u32] r1.recipient[14u32] r1.recipient[15u32] r1.recipient[16u32] r1.recipient[17u32] r1.recipient[18u32] r1.recipient[19u32] r1.recipient[20u32] r1.recipient[21u32] r1.recipient[22u32] r1.recipient[23u32] r1.recipient[24u32] r1.recipient[25u32] r1.recipient[26u32] r1.recipient[27u32] r1.recipient[28u32] r1.recipient[29u32] r1.recipient[30u32] r1.recipient[31u32] r54[0u32] r54[1u32] r54[2u32] r54[3u32] r54[4u32] r54[5u32] r54[6u32] r54[7u32] r54[8u32] r54[9u32] r54[10u32] r54[11u32] r54[12u32] r54[13u32] r54[14u32] r54[15u32] r56[0u32] r56[1u32] r56[2u32] r56[3u32] r56[4u32] r56[5u32] r56[6u32] r56[7u32] r56[8u32] r56[9u32] r56[10u32] r56[11u32] r56[12u32] r56[13u32] r56[14u32] r56[15u32] r58[0u32] r58[1u32] r58[2u32] r58[3u32] r58[4u32] r58[5u32] r58[6u32] r58[7u32] r58[8u32] r58[9u32] r58[10u32] r58[11u32] r58[12u32] r58[13u32] r58[14u32] r58[15u32] r60[0u32] r60[1u32] r60[2u32] r60[3u32] r60[4u32] r60[5u32] r60[6u32] r60[7u32] r60[8u32] r60[9u32] r60[10u32] r60[11u32] r60[12u32] r60[13u32] r60[14u32] r60[15u32] r62[0u32] r62[1u32] r62[2u32] r62[3u32] r62[4u32] r62[5u32] r62[6u32] r62[7u32] r62[8u32] r62[9u32] r62[10u32] r62[11u32] r62[12u32] r62[13u32] r62[14u32] r62[15u32] r64[0u32] r64[1u32] r64[2u32] r64[3u32] r64[4u32] r64[5u32] r64[6u32] r64[7u32] r64[8u32] r64[9u32] r64[10u32] r64[11u32] r64[12u32] r64[13u32] r64[14u32] r64[15u32] r66[0u32] r66[1u32] r66[2u32] r66[3u32] r66[4u32] r66[5u32] r66[6u32] r66[7u32] r66[8u32] r66[9u32] r66[10u32] r66[11u32] r66[12u32] r66[13u32] r66[14u32] r66[15u32] r68[0u32] r68[1u32] r68[2u32] r68[3u32] r68[4u32] r68[5u32] r68[6u32] r68[7u32] r68[8u32] r68[9u32] r68[10u32] r68[11u32] r68[12u32] r68[13u32] r68[14u32] r68[15u32] r70[0u32] r70[1u32] r70[2u32] r70[3u32] r70[4u32] r70[5u32] r70[6u32] r70[7u32] r70[8u32] r70[9u32] r70[10u32] r70[11u32] r70[12u32] r70[13u32] r70[14u32] r70[15u32] r72[0u32] r72[1u32] r72[2u32] r72[3u32] r72[4u32] r72[5u32] r72[6u32] r72[7u32] r72[8u32] r72[9u32] r72[10u32] r72[11u32] r72[12u32] r72[13u32] r72[14u32] r72[15u32] r74[0u32] r74[1u32] r74[2u32] r74[3u32] r74[4u32] r74[5u32] r74[6u32] r74[7u32] r74[8u32] r74[9u32] r74[10u32] r74[11u32] r74[12u32] r74[13u32] r74[14u32] r74[15u32] r76[0u32] r76[1u32] r76[2u32] r76[3u32] r76[4u32] r76[5u32] r76[6u32] r76[7u32] r76[8u32] r76[9u32] r76[10u32] r76[11u32] r76[12u32] r76[13u32] r76[14u32] r76[15u32] r78[0u32] r78[1u32] r78[2u32] r78[3u32] r78[4u32] r78[5u32] r78[6u32] r78[7u32] r78[8u32] r78[9u32] r78[10u32] r78[11u32] r78[12u32] r78[13u32] r78[14u32] r78[15u32] r80[0u32] r80[1u32] r80[2u32] r80[3u32] r80[4u32] r80[5u32] r80[6u32] r80[7u32] r80[8u32] r80[9u32] r80[10u32] r80[11u32] r80[12u32] r80[13u32] r80[14u32] r80[15u32] r82[0u32] r82[1u32] r82[2u32] r82[3u32] r82[4u32] r82[5u32] r82[6u32] r82[7u32] r82[8u32] r82[9u32] r82[10u32] r82[11u32] r82[12u32] r82[13u32] r82[14u32] r82[15u32] r84[0u32] r84[1u32] r84[2u32] r84[3u32] r84[4u32] r84[5u32] r84[6u32] r84[7u32] r84[8u32] r84[9u32] r84[10u32] r84[11u32] r84[12u32] r84[13u32] r84[14u32] r84[15u32] into r85 as [u8; 333u32];\n is.eq r2 77u32 into r86;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] into r87 as [u8; 77u32];\n hash.keccak256.native.raw r87 into r88 as [boolean; 256u32];\n deserialize.bits.raw r88 ([boolean; 256u32]) into r89 ([u128; 2u32]);\n is.eq r2 93u32 into r90;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] into r91 as [u8; 93u32];\n hash.keccak256.native.raw r91 into r92 as [boolean; 256u32];\n deserialize.bits.raw r92 ([boolean; 256u32]) into r93 ([u128; 2u32]);\n is.eq r2 109u32 into r94;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] into r95 as [u8; 109u32];\n hash.keccak256.native.raw r95 into r96 as [boolean; 256u32];\n deserialize.bits.raw r96 ([boolean; 256u32]) into r97 ([u128; 2u32]);\n is.eq r2 125u32 into r98;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] into r99 as [u8; 125u32];\n hash.keccak256.native.raw r99 into r100 as [boolean; 256u32];\n deserialize.bits.raw r100 ([boolean; 256u32]) into r101 ([u128; 2u32]);\n is.eq r2 141u32 into r102;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] into r103 as [u8; 141u32];\n hash.keccak256.native.raw r103 into r104 as [boolean; 256u32];\n deserialize.bits.raw r104 ([boolean; 256u32]) into r105 ([u128; 2u32]);\n is.eq r2 157u32 into r106;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] r85[149u32] r85[150u32] r85[151u32] r85[152u32] r85[153u32] r85[154u32] r85[155u32] r85[156u32] into r107 as [u8; 157u32];\n hash.keccak256.native.raw r107 into r108 as [boolean; 256u32];\n deserialize.bits.raw r108 ([boolean; 256u32]) into r109 ([u128; 2u32]);\n is.eq r2 173u32 into r110;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] r85[149u32] r85[150u32] r85[151u32] r85[152u32] r85[153u32] r85[154u32] r85[155u32] r85[156u32] r85[157u32] r85[158u32] r85[159u32] r85[160u32] r85[161u32] r85[162u32] r85[163u32] r85[164u32] r85[165u32] r85[166u32] r85[167u32] r85[168u32] r85[169u32] r85[170u32] r85[171u32] r85[172u32] into r111 as [u8; 173u32];\n hash.keccak256.native.raw r111 into r112 as [boolean; 256u32];\n deserialize.bits.raw r112 ([boolean; 256u32]) into r113 ([u128; 2u32]);\n is.eq r2 189u32 into r114;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] r85[149u32] r85[150u32] r85[151u32] r85[152u32] r85[153u32] r85[154u32] r85[155u32] r85[156u32] r85[157u32] r85[158u32] r85[159u32] r85[160u32] r85[161u32] r85[162u32] r85[163u32] r85[164u32] r85[165u32] r85[166u32] r85[167u32] r85[168u32] r85[169u32] r85[170u32] r85[171u32] r85[172u32] r85[173u32] r85[174u32] r85[175u32] r85[176u32] r85[177u32] r85[178u32] r85[179u32] r85[180u32] r85[181u32] r85[182u32] r85[183u32] r85[184u32] r85[185u32] r85[186u32] r85[187u32] r85[188u32] into r115 as [u8; 189u32];\n hash.keccak256.native.raw r115 into r116 as [boolean; 256u32];\n deserialize.bits.raw r116 ([boolean; 256u32]) into r117 ([u128; 2u32]);\n is.eq r2 205u32 into r118;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] r85[149u32] r85[150u32] r85[151u32] r85[152u32] r85[153u32] r85[154u32] r85[155u32] r85[156u32] r85[157u32] r85[158u32] r85[159u32] r85[160u32] r85[161u32] r85[162u32] r85[163u32] r85[164u32] r85[165u32] r85[166u32] r85[167u32] r85[168u32] r85[169u32] r85[170u32] r85[171u32] r85[172u32] r85[173u32] r85[174u32] r85[175u32] r85[176u32] r85[177u32] r85[178u32] r85[179u32] r85[180u32] r85[181u32] r85[182u32] r85[183u32] r85[184u32] r85[185u32] r85[186u32] r85[187u32] r85[188u32] r85[189u32] r85[190u32] r85[191u32] r85[192u32] r85[193u32] r85[194u32] r85[195u32] r85[196u32] r85[197u32] r85[198u32] r85[199u32] r85[200u32] r85[201u32] r85[202u32] r85[203u32] r85[204u32] into r119 as [u8; 205u32];\n hash.keccak256.native.raw r119 into r120 as [boolean; 256u32];\n deserialize.bits.raw r120 ([boolean; 256u32]) into r121 ([u128; 2u32]);\n is.eq r2 221u32 into r122;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] r85[149u32] r85[150u32] r85[151u32] r85[152u32] r85[153u32] r85[154u32] r85[155u32] r85[156u32] r85[157u32] r85[158u32] r85[159u32] r85[160u32] r85[161u32] r85[162u32] r85[163u32] r85[164u32] r85[165u32] r85[166u32] r85[167u32] r85[168u32] r85[169u32] r85[170u32] r85[171u32] r85[172u32] r85[173u32] r85[174u32] r85[175u32] r85[176u32] r85[177u32] r85[178u32] r85[179u32] r85[180u32] r85[181u32] r85[182u32] r85[183u32] r85[184u32] r85[185u32] r85[186u32] r85[187u32] r85[188u32] r85[189u32] r85[190u32] r85[191u32] r85[192u32] r85[193u32] r85[194u32] r85[195u32] r85[196u32] r85[197u32] r85[198u32] r85[199u32] r85[200u32] r85[201u32] r85[202u32] r85[203u32] r85[204u32] r85[205u32] r85[206u32] r85[207u32] r85[208u32] r85[209u32] r85[210u32] r85[211u32] r85[212u32] r85[213u32] r85[214u32] r85[215u32] r85[216u32] r85[217u32] r85[218u32] r85[219u32] r85[220u32] into r123 as [u8; 221u32];\n hash.keccak256.native.raw r123 into r124 as [boolean; 256u32];\n deserialize.bits.raw r124 ([boolean; 256u32]) into r125 ([u128; 2u32]);\n is.eq r2 237u32 into r126;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] r85[149u32] r85[150u32] r85[151u32] r85[152u32] r85[153u32] r85[154u32] r85[155u32] r85[156u32] r85[157u32] r85[158u32] r85[159u32] r85[160u32] r85[161u32] r85[162u32] r85[163u32] r85[164u32] r85[165u32] r85[166u32] r85[167u32] r85[168u32] r85[169u32] r85[170u32] r85[171u32] r85[172u32] r85[173u32] r85[174u32] r85[175u32] r85[176u32] r85[177u32] r85[178u32] r85[179u32] r85[180u32] r85[181u32] r85[182u32] r85[183u32] r85[184u32] r85[185u32] r85[186u32] r85[187u32] r85[188u32] r85[189u32] r85[190u32] r85[191u32] r85[192u32] r85[193u32] r85[194u32] r85[195u32] r85[196u32] r85[197u32] r85[198u32] r85[199u32] r85[200u32] r85[201u32] r85[202u32] r85[203u32] r85[204u32] r85[205u32] r85[206u32] r85[207u32] r85[208u32] r85[209u32] r85[210u32] r85[211u32] r85[212u32] r85[213u32] r85[214u32] r85[215u32] r85[216u32] r85[217u32] r85[218u32] r85[219u32] r85[220u32] r85[221u32] r85[222u32] r85[223u32] r85[224u32] r85[225u32] r85[226u32] r85[227u32] r85[228u32] r85[229u32] r85[230u32] r85[231u32] r85[232u32] r85[233u32] r85[234u32] r85[235u32] r85[236u32] into r127 as [u8; 237u32];\n hash.keccak256.native.raw r127 into r128 as [boolean; 256u32];\n deserialize.bits.raw r128 ([boolean; 256u32]) into r129 ([u128; 2u32]);\n is.eq r2 253u32 into r130;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] r85[149u32] r85[150u32] r85[151u32] r85[152u32] r85[153u32] r85[154u32] r85[155u32] r85[156u32] r85[157u32] r85[158u32] r85[159u32] r85[160u32] r85[161u32] r85[162u32] r85[163u32] r85[164u32] r85[165u32] r85[166u32] r85[167u32] r85[168u32] r85[169u32] r85[170u32] r85[171u32] r85[172u32] r85[173u32] r85[174u32] r85[175u32] r85[176u32] r85[177u32] r85[178u32] r85[179u32] r85[180u32] r85[181u32] r85[182u32] r85[183u32] r85[184u32] r85[185u32] r85[186u32] r85[187u32] r85[188u32] r85[189u32] r85[190u32] r85[191u32] r85[192u32] r85[193u32] r85[194u32] r85[195u32] r85[196u32] r85[197u32] r85[198u32] r85[199u32] r85[200u32] r85[201u32] r85[202u32] r85[203u32] r85[204u32] r85[205u32] r85[206u32] r85[207u32] r85[208u32] r85[209u32] r85[210u32] r85[211u32] r85[212u32] r85[213u32] r85[214u32] r85[215u32] r85[216u32] r85[217u32] r85[218u32] r85[219u32] r85[220u32] r85[221u32] r85[222u32] r85[223u32] r85[224u32] r85[225u32] r85[226u32] r85[227u32] r85[228u32] r85[229u32] r85[230u32] r85[231u32] r85[232u32] r85[233u32] r85[234u32] r85[235u32] r85[236u32] r85[237u32] r85[238u32] r85[239u32] r85[240u32] r85[241u32] r85[242u32] r85[243u32] r85[244u32] r85[245u32] r85[246u32] r85[247u32] r85[248u32] r85[249u32] r85[250u32] r85[251u32] r85[252u32] into r131 as [u8; 253u32];\n hash.keccak256.native.raw r131 into r132 as [boolean; 256u32];\n deserialize.bits.raw r132 ([boolean; 256u32]) into r133 ([u128; 2u32]);\n is.eq r2 269u32 into r134;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] r85[149u32] r85[150u32] r85[151u32] r85[152u32] r85[153u32] r85[154u32] r85[155u32] r85[156u32] r85[157u32] r85[158u32] r85[159u32] r85[160u32] r85[161u32] r85[162u32] r85[163u32] r85[164u32] r85[165u32] r85[166u32] r85[167u32] r85[168u32] r85[169u32] r85[170u32] r85[171u32] r85[172u32] r85[173u32] r85[174u32] r85[175u32] r85[176u32] r85[177u32] r85[178u32] r85[179u32] r85[180u32] r85[181u32] r85[182u32] r85[183u32] r85[184u32] r85[185u32] r85[186u32] r85[187u32] r85[188u32] r85[189u32] r85[190u32] r85[191u32] r85[192u32] r85[193u32] r85[194u32] r85[195u32] r85[196u32] r85[197u32] r85[198u32] r85[199u32] r85[200u32] r85[201u32] r85[202u32] r85[203u32] r85[204u32] r85[205u32] r85[206u32] r85[207u32] r85[208u32] r85[209u32] r85[210u32] r85[211u32] r85[212u32] r85[213u32] r85[214u32] r85[215u32] r85[216u32] r85[217u32] r85[218u32] r85[219u32] r85[220u32] r85[221u32] r85[222u32] r85[223u32] r85[224u32] r85[225u32] r85[226u32] r85[227u32] r85[228u32] r85[229u32] r85[230u32] r85[231u32] r85[232u32] r85[233u32] r85[234u32] r85[235u32] r85[236u32] r85[237u32] r85[238u32] r85[239u32] r85[240u32] r85[241u32] r85[242u32] r85[243u32] r85[244u32] r85[245u32] r85[246u32] r85[247u32] r85[248u32] r85[249u32] r85[250u32] r85[251u32] r85[252u32] r85[253u32] r85[254u32] r85[255u32] r85[256u32] r85[257u32] r85[258u32] r85[259u32] r85[260u32] r85[261u32] r85[262u32] r85[263u32] r85[264u32] r85[265u32] r85[266u32] r85[267u32] r85[268u32] into r135 as [u8; 269u32];\n hash.keccak256.native.raw r135 into r136 as [boolean; 256u32];\n deserialize.bits.raw r136 ([boolean; 256u32]) into r137 ([u128; 2u32]);\n is.eq r2 285u32 into r138;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] r85[149u32] r85[150u32] r85[151u32] r85[152u32] r85[153u32] r85[154u32] r85[155u32] r85[156u32] r85[157u32] r85[158u32] r85[159u32] r85[160u32] r85[161u32] r85[162u32] r85[163u32] r85[164u32] r85[165u32] r85[166u32] r85[167u32] r85[168u32] r85[169u32] r85[170u32] r85[171u32] r85[172u32] r85[173u32] r85[174u32] r85[175u32] r85[176u32] r85[177u32] r85[178u32] r85[179u32] r85[180u32] r85[181u32] r85[182u32] r85[183u32] r85[184u32] r85[185u32] r85[186u32] r85[187u32] r85[188u32] r85[189u32] r85[190u32] r85[191u32] r85[192u32] r85[193u32] r85[194u32] r85[195u32] r85[196u32] r85[197u32] r85[198u32] r85[199u32] r85[200u32] r85[201u32] r85[202u32] r85[203u32] r85[204u32] r85[205u32] r85[206u32] r85[207u32] r85[208u32] r85[209u32] r85[210u32] r85[211u32] r85[212u32] r85[213u32] r85[214u32] r85[215u32] r85[216u32] r85[217u32] r85[218u32] r85[219u32] r85[220u32] r85[221u32] r85[222u32] r85[223u32] r85[224u32] r85[225u32] r85[226u32] r85[227u32] r85[228u32] r85[229u32] r85[230u32] r85[231u32] r85[232u32] r85[233u32] r85[234u32] r85[235u32] r85[236u32] r85[237u32] r85[238u32] r85[239u32] r85[240u32] r85[241u32] r85[242u32] r85[243u32] r85[244u32] r85[245u32] r85[246u32] r85[247u32] r85[248u32] r85[249u32] r85[250u32] r85[251u32] r85[252u32] r85[253u32] r85[254u32] r85[255u32] r85[256u32] r85[257u32] r85[258u32] r85[259u32] r85[260u32] r85[261u32] r85[262u32] r85[263u32] r85[264u32] r85[265u32] r85[266u32] r85[267u32] r85[268u32] r85[269u32] r85[270u32] r85[271u32] r85[272u32] r85[273u32] r85[274u32] r85[275u32] r85[276u32] r85[277u32] r85[278u32] r85[279u32] r85[280u32] r85[281u32] r85[282u32] r85[283u32] r85[284u32] into r139 as [u8; 285u32];\n hash.keccak256.native.raw r139 into r140 as [boolean; 256u32];\n deserialize.bits.raw r140 ([boolean; 256u32]) into r141 ([u128; 2u32]);\n is.eq r2 301u32 into r142;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] r85[149u32] r85[150u32] r85[151u32] r85[152u32] r85[153u32] r85[154u32] r85[155u32] r85[156u32] r85[157u32] r85[158u32] r85[159u32] r85[160u32] r85[161u32] r85[162u32] r85[163u32] r85[164u32] r85[165u32] r85[166u32] r85[167u32] r85[168u32] r85[169u32] r85[170u32] r85[171u32] r85[172u32] r85[173u32] r85[174u32] r85[175u32] r85[176u32] r85[177u32] r85[178u32] r85[179u32] r85[180u32] r85[181u32] r85[182u32] r85[183u32] r85[184u32] r85[185u32] r85[186u32] r85[187u32] r85[188u32] r85[189u32] r85[190u32] r85[191u32] r85[192u32] r85[193u32] r85[194u32] r85[195u32] r85[196u32] r85[197u32] r85[198u32] r85[199u32] r85[200u32] r85[201u32] r85[202u32] r85[203u32] r85[204u32] r85[205u32] r85[206u32] r85[207u32] r85[208u32] r85[209u32] r85[210u32] r85[211u32] r85[212u32] r85[213u32] r85[214u32] r85[215u32] r85[216u32] r85[217u32] r85[218u32] r85[219u32] r85[220u32] r85[221u32] r85[222u32] r85[223u32] r85[224u32] r85[225u32] r85[226u32] r85[227u32] r85[228u32] r85[229u32] r85[230u32] r85[231u32] r85[232u32] r85[233u32] r85[234u32] r85[235u32] r85[236u32] r85[237u32] r85[238u32] r85[239u32] r85[240u32] r85[241u32] r85[242u32] r85[243u32] r85[244u32] r85[245u32] r85[246u32] r85[247u32] r85[248u32] r85[249u32] r85[250u32] r85[251u32] r85[252u32] r85[253u32] r85[254u32] r85[255u32] r85[256u32] r85[257u32] r85[258u32] r85[259u32] r85[260u32] r85[261u32] r85[262u32] r85[263u32] r85[264u32] r85[265u32] r85[266u32] r85[267u32] r85[268u32] r85[269u32] r85[270u32] r85[271u32] r85[272u32] r85[273u32] r85[274u32] r85[275u32] r85[276u32] r85[277u32] r85[278u32] r85[279u32] r85[280u32] r85[281u32] r85[282u32] r85[283u32] r85[284u32] r85[285u32] r85[286u32] r85[287u32] r85[288u32] r85[289u32] r85[290u32] r85[291u32] r85[292u32] r85[293u32] r85[294u32] r85[295u32] r85[296u32] r85[297u32] r85[298u32] r85[299u32] r85[300u32] into r143 as [u8; 301u32];\n hash.keccak256.native.raw r143 into r144 as [boolean; 256u32];\n deserialize.bits.raw r144 ([boolean; 256u32]) into r145 ([u128; 2u32]);\n is.eq r2 317u32 into r146;\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] r85[149u32] r85[150u32] r85[151u32] r85[152u32] r85[153u32] r85[154u32] r85[155u32] r85[156u32] r85[157u32] r85[158u32] r85[159u32] r85[160u32] r85[161u32] r85[162u32] r85[163u32] r85[164u32] r85[165u32] r85[166u32] r85[167u32] r85[168u32] r85[169u32] r85[170u32] r85[171u32] r85[172u32] r85[173u32] r85[174u32] r85[175u32] r85[176u32] r85[177u32] r85[178u32] r85[179u32] r85[180u32] r85[181u32] r85[182u32] r85[183u32] r85[184u32] r85[185u32] r85[186u32] r85[187u32] r85[188u32] r85[189u32] r85[190u32] r85[191u32] r85[192u32] r85[193u32] r85[194u32] r85[195u32] r85[196u32] r85[197u32] r85[198u32] r85[199u32] r85[200u32] r85[201u32] r85[202u32] r85[203u32] r85[204u32] r85[205u32] r85[206u32] r85[207u32] r85[208u32] r85[209u32] r85[210u32] r85[211u32] r85[212u32] r85[213u32] r85[214u32] r85[215u32] r85[216u32] r85[217u32] r85[218u32] r85[219u32] r85[220u32] r85[221u32] r85[222u32] r85[223u32] r85[224u32] r85[225u32] r85[226u32] r85[227u32] r85[228u32] r85[229u32] r85[230u32] r85[231u32] r85[232u32] r85[233u32] r85[234u32] r85[235u32] r85[236u32] r85[237u32] r85[238u32] r85[239u32] r85[240u32] r85[241u32] r85[242u32] r85[243u32] r85[244u32] r85[245u32] r85[246u32] r85[247u32] r85[248u32] r85[249u32] r85[250u32] r85[251u32] r85[252u32] r85[253u32] r85[254u32] r85[255u32] r85[256u32] r85[257u32] r85[258u32] r85[259u32] r85[260u32] r85[261u32] r85[262u32] r85[263u32] r85[264u32] r85[265u32] r85[266u32] r85[267u32] r85[268u32] r85[269u32] r85[270u32] r85[271u32] r85[272u32] r85[273u32] r85[274u32] r85[275u32] r85[276u32] r85[277u32] r85[278u32] r85[279u32] r85[280u32] r85[281u32] r85[282u32] r85[283u32] r85[284u32] r85[285u32] r85[286u32] r85[287u32] r85[288u32] r85[289u32] r85[290u32] r85[291u32] r85[292u32] r85[293u32] r85[294u32] r85[295u32] r85[296u32] r85[297u32] r85[298u32] r85[299u32] r85[300u32] r85[301u32] r85[302u32] r85[303u32] r85[304u32] r85[305u32] r85[306u32] r85[307u32] r85[308u32] r85[309u32] r85[310u32] r85[311u32] r85[312u32] r85[313u32] r85[314u32] r85[315u32] r85[316u32] into r147 as [u8; 317u32];\n hash.keccak256.native.raw r147 into r148 as [boolean; 256u32];\n deserialize.bits.raw r148 ([boolean; 256u32]) into r149 ([u128; 2u32]);\n is.eq r2 333u32 into r150;\n hash.keccak256.native.raw r85 into r151 as [boolean; 256u32];\n deserialize.bits.raw r151 ([boolean; 256u32]) into r152 ([u128; 2u32]);\n ternary r150 r152[0u32] r19[0u32] into r153;\n ternary r150 r152[1u32] r19[1u32] into r154;\n cast r153 r154 into r155 as [u128; 2u32];\n ternary r146 r149[0u32] r155[0u32] into r156;\n ternary r146 r149[1u32] r155[1u32] into r157;\n cast r156 r157 into r158 as [u128; 2u32];\n ternary r142 r145[0u32] r158[0u32] into r159;\n ternary r142 r145[1u32] r158[1u32] into r160;\n cast r159 r160 into r161 as [u128; 2u32];\n ternary r138 r141[0u32] r161[0u32] into r162;\n ternary r138 r141[1u32] r161[1u32] into r163;\n cast r162 r163 into r164 as [u128; 2u32];\n ternary r134 r137[0u32] r164[0u32] into r165;\n ternary r134 r137[1u32] r164[1u32] into r166;\n cast r165 r166 into r167 as [u128; 2u32];\n ternary r130 r133[0u32] r167[0u32] into r168;\n ternary r130 r133[1u32] r167[1u32] into r169;\n cast r168 r169 into r170 as [u128; 2u32];\n ternary r126 r129[0u32] r170[0u32] into r171;\n ternary r126 r129[1u32] r170[1u32] into r172;\n cast r171 r172 into r173 as [u128; 2u32];\n ternary r122 r125[0u32] r173[0u32] into r174;\n ternary r122 r125[1u32] r173[1u32] into r175;\n cast r174 r175 into r176 as [u128; 2u32];\n ternary r118 r121[0u32] r176[0u32] into r177;\n ternary r118 r121[1u32] r176[1u32] into r178;\n cast r177 r178 into r179 as [u128; 2u32];\n ternary r114 r117[0u32] r179[0u32] into r180;\n ternary r114 r117[1u32] r179[1u32] into r181;\n cast r180 r181 into r182 as [u128; 2u32];\n ternary r110 r113[0u32] r182[0u32] into r183;\n ternary r110 r113[1u32] r182[1u32] into r184;\n cast r183 r184 into r185 as [u128; 2u32];\n ternary r106 r109[0u32] r185[0u32] into r186;\n ternary r106 r109[1u32] r185[1u32] into r187;\n cast r186 r187 into r188 as [u128; 2u32];\n ternary r102 r105[0u32] r188[0u32] into r189;\n ternary r102 r105[1u32] r188[1u32] into r190;\n cast r189 r190 into r191 as [u128; 2u32];\n ternary r98 r101[0u32] r191[0u32] into r192;\n ternary r98 r101[1u32] r191[1u32] into r193;\n cast r192 r193 into r194 as [u128; 2u32];\n ternary r94 r97[0u32] r194[0u32] into r195;\n ternary r94 r97[1u32] r194[1u32] into r196;\n cast r195 r196 into r197 as [u128; 2u32];\n ternary r90 r93[0u32] r197[0u32] into r198;\n ternary r90 r93[1u32] r197[1u32] into r199;\n cast r198 r199 into r200 as [u128; 2u32];\n ternary r86 r89[0u32] r200[0u32] into r201;\n ternary r86 r89[1u32] r200[1u32] into r202;\n cast r201 r202 into r203 as [u128; 2u32];\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] r85[149u32] r85[150u32] r85[151u32] r85[152u32] r85[153u32] r85[154u32] r85[155u32] r85[156u32] r85[157u32] r85[158u32] r85[159u32] r85[160u32] r85[161u32] r85[162u32] r85[163u32] r85[164u32] r85[165u32] r85[166u32] r85[167u32] r85[168u32] r85[169u32] r85[170u32] r85[171u32] r85[172u32] r85[173u32] r85[174u32] r85[175u32] r85[176u32] r85[177u32] r85[178u32] r85[179u32] r85[180u32] r85[181u32] r85[182u32] r85[183u32] r85[184u32] r85[185u32] r85[186u32] r85[187u32] r85[188u32] r85[189u32] r85[190u32] r85[191u32] r85[192u32] r85[193u32] r85[194u32] r85[195u32] r85[196u32] r85[197u32] r85[198u32] r85[199u32] r85[200u32] r85[201u32] r85[202u32] r85[203u32] r85[204u32] r85[205u32] into r204 as [u8; 206u32];\n hash.keccak256.native.raw r204 into r205 as [boolean; 256u32];\n deserialize.bits.raw r205 ([boolean; 256u32]) into r206 ([u128; 2u32]);\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] into r207 as [u8; 149u32];\n hash.keccak256.native.raw r207 into r208 as [boolean; 256u32];\n deserialize.bits.raw r208 ([boolean; 256u32]) into r209 ([u128; 2u32]);\n cast r85[0u32] r85[1u32] r85[2u32] r85[3u32] r85[4u32] r85[5u32] r85[6u32] r85[7u32] r85[8u32] r85[9u32] r85[10u32] r85[11u32] r85[12u32] r85[13u32] r85[14u32] r85[15u32] r85[16u32] r85[17u32] r85[18u32] r85[19u32] r85[20u32] r85[21u32] r85[22u32] r85[23u32] r85[24u32] r85[25u32] r85[26u32] r85[27u32] r85[28u32] r85[29u32] r85[30u32] r85[31u32] r85[32u32] r85[33u32] r85[34u32] r85[35u32] r85[36u32] r85[37u32] r85[38u32] r85[39u32] r85[40u32] r85[41u32] r85[42u32] r85[43u32] r85[44u32] r85[45u32] r85[46u32] r85[47u32] r85[48u32] r85[49u32] r85[50u32] r85[51u32] r85[52u32] r85[53u32] r85[54u32] r85[55u32] r85[56u32] r85[57u32] r85[58u32] r85[59u32] r85[60u32] r85[61u32] r85[62u32] r85[63u32] r85[64u32] r85[65u32] r85[66u32] r85[67u32] r85[68u32] r85[69u32] r85[70u32] r85[71u32] r85[72u32] r85[73u32] r85[74u32] r85[75u32] r85[76u32] r85[77u32] r85[78u32] r85[79u32] r85[80u32] r85[81u32] r85[82u32] r85[83u32] r85[84u32] r85[85u32] r85[86u32] r85[87u32] r85[88u32] r85[89u32] r85[90u32] r85[91u32] r85[92u32] r85[93u32] r85[94u32] r85[95u32] r85[96u32] r85[97u32] r85[98u32] r85[99u32] r85[100u32] r85[101u32] r85[102u32] r85[103u32] r85[104u32] r85[105u32] r85[106u32] r85[107u32] r85[108u32] r85[109u32] r85[110u32] r85[111u32] r85[112u32] r85[113u32] r85[114u32] r85[115u32] r85[116u32] r85[117u32] r85[118u32] r85[119u32] r85[120u32] r85[121u32] r85[122u32] r85[123u32] r85[124u32] r85[125u32] r85[126u32] r85[127u32] r85[128u32] r85[129u32] r85[130u32] r85[131u32] r85[132u32] r85[133u32] r85[134u32] r85[135u32] r85[136u32] r85[137u32] r85[138u32] r85[139u32] r85[140u32] r85[141u32] r85[142u32] r85[143u32] r85[144u32] r85[145u32] r85[146u32] r85[147u32] r85[148u32] r85[149u32] r85[150u32] r85[151u32] r85[152u32] r85[153u32] r85[154u32] r85[155u32] r85[156u32] r85[157u32] r85[158u32] r85[159u32] r85[160u32] r85[161u32] r85[162u32] r85[163u32] r85[164u32] r85[165u32] r85[166u32] into r210 as [u8; 167u32];\n hash.keccak256.native.raw r210 into r211 as [boolean; 256u32];\n deserialize.bits.raw r211 ([boolean; 256u32]) into r212 ([u128; 2u32]);\n ternary r17 r212[0u32] r203[0u32] into r213;\n ternary r17 r212[1u32] r203[1u32] into r214;\n cast r213 r214 into r215 as [u128; 2u32];\n ternary r15 r209[0u32] r215[0u32] into r216;\n ternary r15 r209[1u32] r215[1u32] into r217;\n cast r216 r217 into r218 as [u128; 2u32];\n ternary r13 r206[0u32] r218[0u32] into r219;\n ternary r13 r206[1u32] r218[1u32] into r220;\n cast r219 r220 into r221 as [u128; 2u32];\n assert.eq r221 r3;\n get mailbox[true] into r222;\n await r5;\n serialize.bits.raw r4 (address) into r223 ([boolean; 253u32]);\n cast false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false into r224 as [boolean; 256u32];\n cast r223[0u32] r223[1u32] r223[2u32] r223[3u32] r223[4u32] r223[5u32] r223[6u32] r223[7u32] r223[8u32] r223[9u32] r223[10u32] r223[11u32] r223[12u32] r223[13u32] r223[14u32] r223[15u32] r223[16u32] r223[17u32] r223[18u32] r223[19u32] r223[20u32] r223[21u32] r223[22u32] r223[23u32] r223[24u32] r223[25u32] r223[26u32] r223[27u32] r223[28u32] r223[29u32] r223[30u32] r223[31u32] r223[32u32] r223[33u32] r223[34u32] r223[35u32] r223[36u32] r223[37u32] r223[38u32] r223[39u32] r223[40u32] r223[41u32] r223[42u32] r223[43u32] r223[44u32] r223[45u32] r223[46u32] r223[47u32] r223[48u32] r223[49u32] r223[50u32] r223[51u32] r223[52u32] r223[53u32] r223[54u32] r223[55u32] r223[56u32] r223[57u32] r223[58u32] r223[59u32] r223[60u32] r223[61u32] r223[62u32] r223[63u32] r223[64u32] r223[65u32] r223[66u32] r223[67u32] r223[68u32] r223[69u32] r223[70u32] r223[71u32] r223[72u32] r223[73u32] r223[74u32] r223[75u32] r223[76u32] r223[77u32] r223[78u32] r223[79u32] r223[80u32] r223[81u32] r223[82u32] r223[83u32] r223[84u32] r223[85u32] r223[86u32] r223[87u32] r223[88u32] r223[89u32] r223[90u32] r223[91u32] r223[92u32] r223[93u32] r223[94u32] r223[95u32] r223[96u32] r223[97u32] r223[98u32] r223[99u32] r223[100u32] r223[101u32] r223[102u32] r223[103u32] r223[104u32] r223[105u32] r223[106u32] r223[107u32] r223[108u32] r223[109u32] r223[110u32] r223[111u32] r223[112u32] r223[113u32] r223[114u32] r223[115u32] r223[116u32] r223[117u32] r223[118u32] r223[119u32] r223[120u32] r223[121u32] r223[122u32] r223[123u32] r223[124u32] r223[125u32] r223[126u32] r223[127u32] r223[128u32] r223[129u32] r223[130u32] r223[131u32] r223[132u32] r223[133u32] r223[134u32] r223[135u32] r223[136u32] r223[137u32] r223[138u32] r223[139u32] r223[140u32] r223[141u32] r223[142u32] r223[143u32] r223[144u32] r223[145u32] r223[146u32] r223[147u32] r223[148u32] r223[149u32] r223[150u32] r223[151u32] r223[152u32] r223[153u32] r223[154u32] r223[155u32] r223[156u32] r223[157u32] r223[158u32] r223[159u32] r223[160u32] r223[161u32] r223[162u32] r223[163u32] r223[164u32] r223[165u32] r223[166u32] r223[167u32] r223[168u32] r223[169u32] r223[170u32] r223[171u32] r223[172u32] r223[173u32] r223[174u32] r223[175u32] r223[176u32] r223[177u32] r223[178u32] r223[179u32] r223[180u32] r223[181u32] r223[182u32] r223[183u32] r223[184u32] r223[185u32] r223[186u32] r223[187u32] r223[188u32] r223[189u32] r223[190u32] r223[191u32] r223[192u32] r223[193u32] r223[194u32] r223[195u32] r223[196u32] r223[197u32] r223[198u32] r223[199u32] r223[200u32] r223[201u32] r223[202u32] r223[203u32] r223[204u32] r223[205u32] r223[206u32] r223[207u32] r223[208u32] r223[209u32] r223[210u32] r223[211u32] r223[212u32] r223[213u32] r223[214u32] r223[215u32] r223[216u32] r223[217u32] r223[218u32] r223[219u32] r223[220u32] r223[221u32] r223[222u32] r223[223u32] r223[224u32] r223[225u32] r223[226u32] r223[227u32] r223[228u32] r223[229u32] r223[230u32] r223[231u32] r223[232u32] r223[233u32] r223[234u32] r223[235u32] r223[236u32] r223[237u32] r223[238u32] r223[239u32] r223[240u32] r223[241u32] r223[242u32] r223[243u32] r223[244u32] r223[245u32] r223[246u32] r223[247u32] r223[248u32] r223[249u32] r223[250u32] r223[251u32] r223[252u32] r224[253u32] r224[254u32] r224[255u32] into r225 as [boolean; 256u32];\n deserialize.bits.raw r225 ([boolean; 256u32]) into r226 ([u8; 32u32]);\n assert.eq r1.recipient r226;\n assert.eq r1.version 3u8;\n assert.eq r1.destination_domain r222.local_domain;\n cast r3 into r227 as DeliveryKey;\n contains deliveries[r227] into r228;\n not r228 into r229;\n assert.eq r229 true;\n cast r4 block.height into r230 as Delivery;\n set r230 into deliveries[r227];\n set r3 into process_events[r222.process_count];\n set r222.process_count into process_event_index[block.height];\n add r222.process_count 1u32 into r231;\n cast r222.local_domain r222.nonce r231 r222.default_ism r222.default_hook r222.required_hook r222.dispatch_proxy r222.mailbox_owner into r232 as Mailbox;\n set r232 into mailbox[true];\n\nfunction dispatch:\n input r0 as u32.public;\n input r1 as [u8; 32u32].public;\n input r2 as [u128; 16u32].public;\n input r3 as address.public;\n async dispatch r0 r1 r2 r3 self.caller into r4;\n output r4 as mailbox.aleo/dispatch.future;\n\nfinalize dispatch:\n input r0 as u32.public;\n input r1 as [u8; 32u32].public;\n input r2 as [u128; 16u32].public;\n input r3 as address.public;\n input r4 as address.public;\n contains mailbox[true] into r5;\n assert.eq r5 true;\n get mailbox[true] into r6;\n assert.eq r4 r6.dispatch_proxy;\n serialize.bits.raw r3 (address) into r7 ([boolean; 253u32]);\n cast false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false into r8 as [boolean; 256u32];\n cast r7[0u32] r7[1u32] r7[2u32] r7[3u32] r7[4u32] r7[5u32] r7[6u32] r7[7u32] r7[8u32] r7[9u32] r7[10u32] r7[11u32] r7[12u32] r7[13u32] r7[14u32] r7[15u32] r7[16u32] r7[17u32] r7[18u32] r7[19u32] r7[20u32] r7[21u32] r7[22u32] r7[23u32] r7[24u32] r7[25u32] r7[26u32] r7[27u32] r7[28u32] r7[29u32] r7[30u32] r7[31u32] r7[32u32] r7[33u32] r7[34u32] r7[35u32] r7[36u32] r7[37u32] r7[38u32] r7[39u32] r7[40u32] r7[41u32] r7[42u32] r7[43u32] r7[44u32] r7[45u32] r7[46u32] r7[47u32] r7[48u32] r7[49u32] r7[50u32] r7[51u32] r7[52u32] r7[53u32] r7[54u32] r7[55u32] r7[56u32] r7[57u32] r7[58u32] r7[59u32] r7[60u32] r7[61u32] r7[62u32] r7[63u32] r7[64u32] r7[65u32] r7[66u32] r7[67u32] r7[68u32] r7[69u32] r7[70u32] r7[71u32] r7[72u32] r7[73u32] r7[74u32] r7[75u32] r7[76u32] r7[77u32] r7[78u32] r7[79u32] r7[80u32] r7[81u32] r7[82u32] r7[83u32] r7[84u32] r7[85u32] r7[86u32] r7[87u32] r7[88u32] r7[89u32] r7[90u32] r7[91u32] r7[92u32] r7[93u32] r7[94u32] r7[95u32] r7[96u32] r7[97u32] r7[98u32] r7[99u32] r7[100u32] r7[101u32] r7[102u32] r7[103u32] r7[104u32] r7[105u32] r7[106u32] r7[107u32] r7[108u32] r7[109u32] r7[110u32] r7[111u32] r7[112u32] r7[113u32] r7[114u32] r7[115u32] r7[116u32] r7[117u32] r7[118u32] r7[119u32] r7[120u32] r7[121u32] r7[122u32] r7[123u32] r7[124u32] r7[125u32] r7[126u32] r7[127u32] r7[128u32] r7[129u32] r7[130u32] r7[131u32] r7[132u32] r7[133u32] r7[134u32] r7[135u32] r7[136u32] r7[137u32] r7[138u32] r7[139u32] r7[140u32] r7[141u32] r7[142u32] r7[143u32] r7[144u32] r7[145u32] r7[146u32] r7[147u32] r7[148u32] r7[149u32] r7[150u32] r7[151u32] r7[152u32] r7[153u32] r7[154u32] r7[155u32] r7[156u32] r7[157u32] r7[158u32] r7[159u32] r7[160u32] r7[161u32] r7[162u32] r7[163u32] r7[164u32] r7[165u32] r7[166u32] r7[167u32] r7[168u32] r7[169u32] r7[170u32] r7[171u32] r7[172u32] r7[173u32] r7[174u32] r7[175u32] r7[176u32] r7[177u32] r7[178u32] r7[179u32] r7[180u32] r7[181u32] r7[182u32] r7[183u32] r7[184u32] r7[185u32] r7[186u32] r7[187u32] r7[188u32] r7[189u32] r7[190u32] r7[191u32] r7[192u32] r7[193u32] r7[194u32] r7[195u32] r7[196u32] r7[197u32] r7[198u32] r7[199u32] r7[200u32] r7[201u32] r7[202u32] r7[203u32] r7[204u32] r7[205u32] r7[206u32] r7[207u32] r7[208u32] r7[209u32] r7[210u32] r7[211u32] r7[212u32] r7[213u32] r7[214u32] r7[215u32] r7[216u32] r7[217u32] r7[218u32] r7[219u32] r7[220u32] r7[221u32] r7[222u32] r7[223u32] r7[224u32] r7[225u32] r7[226u32] r7[227u32] r7[228u32] r7[229u32] r7[230u32] r7[231u32] r7[232u32] r7[233u32] r7[234u32] r7[235u32] r7[236u32] r7[237u32] r7[238u32] r7[239u32] r7[240u32] r7[241u32] r7[242u32] r7[243u32] r7[244u32] r7[245u32] r7[246u32] r7[247u32] r7[248u32] r7[249u32] r7[250u32] r7[251u32] r7[252u32] r8[253u32] r8[254u32] r8[255u32] into r9 as [boolean; 256u32];\n deserialize.bits.raw r9 ([boolean; 256u32]) into r10 ([u8; 32u32]);\n cast 3u8 r6.nonce r6.local_domain r10 r0 r1 r2 into r11 as Message;\n shr r11.nonce 24u32 into r12;\n cast r12 into r13 as u8;\n shr r11.nonce 16u32 into r14;\n rem r14 256u32 into r15;\n cast r15 into r16 as u8;\n shr r11.nonce 8u32 into r17;\n rem r17 256u32 into r18;\n cast r18 into r19 as u8;\n rem r11.nonce 256u32 into r20;\n cast r20 into r21 as u8;\n cast r13 r16 r19 r21 into r22 as [u8; 4u32];\n shr r11.origin_domain 24u32 into r23;\n cast r23 into r24 as u8;\n shr r11.origin_domain 16u32 into r25;\n rem r25 256u32 into r26;\n cast r26 into r27 as u8;\n shr r11.origin_domain 8u32 into r28;\n rem r28 256u32 into r29;\n cast r29 into r30 as u8;\n rem r11.origin_domain 256u32 into r31;\n cast r31 into r32 as u8;\n cast r24 r27 r30 r32 into r33 as [u8; 4u32];\n shr r11.destination_domain 24u32 into r34;\n cast r34 into r35 as u8;\n shr r11.destination_domain 16u32 into r36;\n rem r36 256u32 into r37;\n cast r37 into r38 as u8;\n shr r11.destination_domain 8u32 into r39;\n rem r39 256u32 into r40;\n cast r40 into r41 as u8;\n rem r11.destination_domain 256u32 into r42;\n cast r42 into r43 as u8;\n cast r35 r38 r41 r43 into r44 as [u8; 4u32];\n serialize.bits.raw r11.body[0u32] (u128) into r45 ([boolean; 128u32]);\n deserialize.bits.raw r45 ([boolean; 128u32]) into r46 ([u8; 16u32]);\n serialize.bits.raw r11.body[1u32] (u128) into r47 ([boolean; 128u32]);\n deserialize.bits.raw r47 ([boolean; 128u32]) into r48 ([u8; 16u32]);\n serialize.bits.raw r11.body[2u32] (u128) into r49 ([boolean; 128u32]);\n deserialize.bits.raw r49 ([boolean; 128u32]) into r50 ([u8; 16u32]);\n serialize.bits.raw r11.body[3u32] (u128) into r51 ([boolean; 128u32]);\n deserialize.bits.raw r51 ([boolean; 128u32]) into r52 ([u8; 16u32]);\n serialize.bits.raw r11.body[4u32] (u128) into r53 ([boolean; 128u32]);\n deserialize.bits.raw r53 ([boolean; 128u32]) into r54 ([u8; 16u32]);\n serialize.bits.raw r11.body[5u32] (u128) into r55 ([boolean; 128u32]);\n deserialize.bits.raw r55 ([boolean; 128u32]) into r56 ([u8; 16u32]);\n serialize.bits.raw r11.body[6u32] (u128) into r57 ([boolean; 128u32]);\n deserialize.bits.raw r57 ([boolean; 128u32]) into r58 ([u8; 16u32]);\n serialize.bits.raw r11.body[7u32] (u128) into r59 ([boolean; 128u32]);\n deserialize.bits.raw r59 ([boolean; 128u32]) into r60 ([u8; 16u32]);\n serialize.bits.raw r11.body[8u32] (u128) into r61 ([boolean; 128u32]);\n deserialize.bits.raw r61 ([boolean; 128u32]) into r62 ([u8; 16u32]);\n serialize.bits.raw r11.body[9u32] (u128) into r63 ([boolean; 128u32]);\n deserialize.bits.raw r63 ([boolean; 128u32]) into r64 ([u8; 16u32]);\n serialize.bits.raw r11.body[10u32] (u128) into r65 ([boolean; 128u32]);\n deserialize.bits.raw r65 ([boolean; 128u32]) into r66 ([u8; 16u32]);\n serialize.bits.raw r11.body[11u32] (u128) into r67 ([boolean; 128u32]);\n deserialize.bits.raw r67 ([boolean; 128u32]) into r68 ([u8; 16u32]);\n serialize.bits.raw r11.body[12u32] (u128) into r69 ([boolean; 128u32]);\n deserialize.bits.raw r69 ([boolean; 128u32]) into r70 ([u8; 16u32]);\n serialize.bits.raw r11.body[13u32] (u128) into r71 ([boolean; 128u32]);\n deserialize.bits.raw r71 ([boolean; 128u32]) into r72 ([u8; 16u32]);\n serialize.bits.raw r11.body[14u32] (u128) into r73 ([boolean; 128u32]);\n deserialize.bits.raw r73 ([boolean; 128u32]) into r74 ([u8; 16u32]);\n serialize.bits.raw r11.body[15u32] (u128) into r75 ([boolean; 128u32]);\n deserialize.bits.raw r75 ([boolean; 128u32]) into r76 ([u8; 16u32]);\n cast r11.version r22[0u32] r22[1u32] r22[2u32] r22[3u32] r33[0u32] r33[1u32] r33[2u32] r33[3u32] r11.sender[0u32] r11.sender[1u32] r11.sender[2u32] r11.sender[3u32] r11.sender[4u32] r11.sender[5u32] r11.sender[6u32] r11.sender[7u32] r11.sender[8u32] r11.sender[9u32] r11.sender[10u32] r11.sender[11u32] r11.sender[12u32] r11.sender[13u32] r11.sender[14u32] r11.sender[15u32] r11.sender[16u32] r11.sender[17u32] r11.sender[18u32] r11.sender[19u32] r11.sender[20u32] r11.sender[21u32] r11.sender[22u32] r11.sender[23u32] r11.sender[24u32] r11.sender[25u32] r11.sender[26u32] r11.sender[27u32] r11.sender[28u32] r11.sender[29u32] r11.sender[30u32] r11.sender[31u32] r44[0u32] r44[1u32] r44[2u32] r44[3u32] r11.recipient[0u32] r11.recipient[1u32] r11.recipient[2u32] r11.recipient[3u32] r11.recipient[4u32] r11.recipient[5u32] r11.recipient[6u32] r11.recipient[7u32] r11.recipient[8u32] r11.recipient[9u32] r11.recipient[10u32] r11.recipient[11u32] r11.recipient[12u32] r11.recipient[13u32] r11.recipient[14u32] r11.recipient[15u32] r11.recipient[16u32] r11.recipient[17u32] r11.recipient[18u32] r11.recipient[19u32] r11.recipient[20u32] r11.recipient[21u32] r11.recipient[22u32] r11.recipient[23u32] r11.recipient[24u32] r11.recipient[25u32] r11.recipient[26u32] r11.recipient[27u32] r11.recipient[28u32] r11.recipient[29u32] r11.recipient[30u32] r11.recipient[31u32] r46[0u32] r46[1u32] r46[2u32] r46[3u32] r46[4u32] r46[5u32] r46[6u32] r46[7u32] r46[8u32] r46[9u32] r46[10u32] r46[11u32] r46[12u32] r46[13u32] r46[14u32] r46[15u32] r48[0u32] r48[1u32] r48[2u32] r48[3u32] r48[4u32] r48[5u32] r48[6u32] r48[7u32] r48[8u32] r48[9u32] r48[10u32] r48[11u32] r48[12u32] r48[13u32] r48[14u32] r48[15u32] r50[0u32] r50[1u32] r50[2u32] r50[3u32] r50[4u32] r50[5u32] r50[6u32] r50[7u32] r50[8u32] r50[9u32] r50[10u32] r50[11u32] r50[12u32] r50[13u32] r50[14u32] r50[15u32] r52[0u32] r52[1u32] r52[2u32] r52[3u32] r52[4u32] r52[5u32] r52[6u32] r52[7u32] r52[8u32] r52[9u32] r52[10u32] r52[11u32] r52[12u32] r52[13u32] r52[14u32] r52[15u32] r54[0u32] r54[1u32] r54[2u32] r54[3u32] r54[4u32] r54[5u32] r54[6u32] r54[7u32] r54[8u32] r54[9u32] r54[10u32] r54[11u32] r54[12u32] r54[13u32] r54[14u32] r54[15u32] r56[0u32] r56[1u32] r56[2u32] r56[3u32] r56[4u32] r56[5u32] r56[6u32] r56[7u32] r56[8u32] r56[9u32] r56[10u32] r56[11u32] r56[12u32] r56[13u32] r56[14u32] r56[15u32] r58[0u32] r58[1u32] r58[2u32] r58[3u32] r58[4u32] r58[5u32] r58[6u32] r58[7u32] r58[8u32] r58[9u32] r58[10u32] r58[11u32] r58[12u32] r58[13u32] r58[14u32] r58[15u32] r60[0u32] r60[1u32] r60[2u32] r60[3u32] r60[4u32] r60[5u32] r60[6u32] r60[7u32] r60[8u32] r60[9u32] r60[10u32] r60[11u32] r60[12u32] r60[13u32] r60[14u32] r60[15u32] r62[0u32] r62[1u32] r62[2u32] r62[3u32] r62[4u32] r62[5u32] r62[6u32] r62[7u32] r62[8u32] r62[9u32] r62[10u32] r62[11u32] r62[12u32] r62[13u32] r62[14u32] r62[15u32] r64[0u32] r64[1u32] r64[2u32] r64[3u32] r64[4u32] r64[5u32] r64[6u32] r64[7u32] r64[8u32] r64[9u32] r64[10u32] r64[11u32] r64[12u32] r64[13u32] r64[14u32] r64[15u32] r66[0u32] r66[1u32] r66[2u32] r66[3u32] r66[4u32] r66[5u32] r66[6u32] r66[7u32] r66[8u32] r66[9u32] r66[10u32] r66[11u32] r66[12u32] r66[13u32] r66[14u32] r66[15u32] r68[0u32] r68[1u32] r68[2u32] r68[3u32] r68[4u32] r68[5u32] r68[6u32] r68[7u32] r68[8u32] r68[9u32] r68[10u32] r68[11u32] r68[12u32] r68[13u32] r68[14u32] r68[15u32] r70[0u32] r70[1u32] r70[2u32] r70[3u32] r70[4u32] r70[5u32] r70[6u32] r70[7u32] r70[8u32] r70[9u32] r70[10u32] r70[11u32] r70[12u32] r70[13u32] r70[14u32] r70[15u32] r72[0u32] r72[1u32] r72[2u32] r72[3u32] r72[4u32] r72[5u32] r72[6u32] r72[7u32] r72[8u32] r72[9u32] r72[10u32] r72[11u32] r72[12u32] r72[13u32] r72[14u32] r72[15u32] r74[0u32] r74[1u32] r74[2u32] r74[3u32] r74[4u32] r74[5u32] r74[6u32] r74[7u32] r74[8u32] r74[9u32] r74[10u32] r74[11u32] r74[12u32] r74[13u32] r74[14u32] r74[15u32] r76[0u32] r76[1u32] r76[2u32] r76[3u32] r76[4u32] r76[5u32] r76[6u32] r76[7u32] r76[8u32] r76[9u32] r76[10u32] r76[11u32] r76[12u32] r76[13u32] r76[14u32] r76[15u32] into r77 as [u8; 333u32];\n hash.keccak256.native.raw r77 into r78 as [boolean; 256u32];\n deserialize.bits.raw r78 ([boolean; 256u32]) into r79 ([u128; 2u32]);\n set r11 into dispatch_events[r6.nonce];\n set r79 into dispatch_id_events[r6.nonce];\n set r6.nonce into dispatch_event_index[block.height];\n add r6.nonce 1u32 into r80;\n cast r6.local_domain r80 r6.process_count r6.default_ism r6.default_hook r6.required_hook r6.dispatch_proxy r6.mailbox_owner into r81 as Mailbox;\n set r81 into mailbox[true];\n\nconstructor:\n assert.eq edition 0u16;\n";
|
|
9
|
+
export declare const token_registry = "import credits.aleo;\nprogram token_registry.aleo;\n\n\nrecord Token:\n owner as address.private;\n amount as u128.private;\n token_id as field.private;\n external_authorization_required as boolean.private;\n authorized_until as u32.private;\n\nstruct TokenMetadata:\n token_id as field;\n name as u128;\n symbol as u128;\n decimals as u8;\n supply as u128;\n max_supply as u128;\n admin as address;\n external_authorization_required as boolean;\n external_authorization_party as address;\n\nstruct TokenOwner:\n account as address;\n token_id as field;\n\nstruct Balance:\n token_id as field;\n account as address;\n balance as u128;\n authorized_until as u32;\n\nstruct Allowance:\n account as address;\n spender as address;\n token_id as field;\n\n\nmapping registered_tokens:\n\tkey as field.public;\n\tvalue as TokenMetadata.public;\n\n\nmapping balances:\n\tkey as field.public;\n\tvalue as Balance.public;\n\n\nmapping authorized_balances:\n\tkey as field.public;\n\tvalue as Balance.public;\n\n\nmapping allowances:\n\tkey as field.public;\n\tvalue as u128.public;\n\n\nmapping roles:\n\tkey as field.public;\n\tvalue as u8.public;\n\n\nfunction transfer_public:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as u128.public;\n cast self.caller r0 into r3 as TokenOwner;\n hash.bhp256 r3 into r4 as field;\n cast r1 r0 into r5 as TokenOwner;\n hash.bhp256 r5 into r6 as field;\n async transfer_public r0 r1 r2 self.caller r4 r6 into r7;\n output r7 as token_registry.aleo/transfer_public.future;\n\nfinalize transfer_public:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as u128.public;\n input r3 as address.public;\n input r4 as field.public;\n input r5 as field.public;\n get authorized_balances[r4] into r6;\n get registered_tokens[r0] into r7;\n lte block.height r6.authorized_until into r8;\n not r7.external_authorization_required into r9;\n or r8 r9 into r10;\n assert.eq r10 true;\n sub r6.balance r2 into r11;\n cast r0 r3 r11 r6.authorized_until into r12 as Balance;\n set r12 into authorized_balances[r4];\n get registered_tokens[r0] into r13;\n ternary r13.external_authorization_required 0u32 4294967295u32 into r14;\n cast r0 r1 0u128 r14 into r15 as Balance;\n get.or_use balances[r5] r15 into r16;\n get.or_use authorized_balances[r5] r15 into r17;\n ternary r13.external_authorization_required r16.token_id r17.token_id into r18;\n ternary r13.external_authorization_required r16.account r17.account into r19;\n ternary r13.external_authorization_required r16.balance r17.balance into r20;\n ternary r13.external_authorization_required r16.authorized_until r17.authorized_until into r21;\n cast r18 r19 r20 r21 into r22 as Balance;\n add r22.balance r2 into r23;\n cast r0 r1 r23 r22.authorized_until into r24 as Balance;\n branch.eq r13.external_authorization_required false to end_then_0_0;\n set r24 into balances[r5];\n branch.eq true true to end_otherwise_0_1;\n position end_then_0_0;\n set r24 into authorized_balances[r5];\n position end_otherwise_0_1;\n\n\n\n\nfunction transfer_public_as_signer:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as u128.public;\n cast self.signer r0 into r3 as TokenOwner;\n hash.bhp256 r3 into r4 as field;\n cast r1 r0 into r5 as TokenOwner;\n hash.bhp256 r5 into r6 as field;\n async transfer_public_as_signer r0 r1 r2 self.signer r4 r6 into r7;\n output r7 as token_registry.aleo/transfer_public_as_signer.future;\n\nfinalize transfer_public_as_signer:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as u128.public;\n input r3 as address.public;\n input r4 as field.public;\n input r5 as field.public;\n get authorized_balances[r4] into r6;\n get registered_tokens[r0] into r7;\n lte block.height r6.authorized_until into r8;\n not r7.external_authorization_required into r9;\n or r8 r9 into r10;\n assert.eq r10 true;\n sub r6.balance r2 into r11;\n cast r0 r3 r11 r6.authorized_until into r12 as Balance;\n set r12 into authorized_balances[r4];\n get registered_tokens[r0] into r13;\n ternary r13.external_authorization_required 0u32 4294967295u32 into r14;\n cast r0 r1 0u128 r14 into r15 as Balance;\n get.or_use balances[r5] r15 into r16;\n get.or_use authorized_balances[r5] r15 into r17;\n ternary r13.external_authorization_required r16.token_id r17.token_id into r18;\n ternary r13.external_authorization_required r16.account r17.account into r19;\n ternary r13.external_authorization_required r16.balance r17.balance into r20;\n ternary r13.external_authorization_required r16.authorized_until r17.authorized_until into r21;\n cast r18 r19 r20 r21 into r22 as Balance;\n add r22.balance r2 into r23;\n cast r0 r1 r23 r22.authorized_until into r24 as Balance;\n branch.eq r13.external_authorization_required false to end_then_0_2;\n set r24 into balances[r5];\n branch.eq true true to end_otherwise_0_3;\n position end_then_0_2;\n set r24 into authorized_balances[r5];\n position end_otherwise_0_3;\n\n\n\n\nfunction transfer_private:\n input r0 as address.private;\n input r1 as u128.private;\n input r2 as Token.record;\n sub r2.amount r1 into r3;\n cast r2.owner r3 r2.token_id r2.external_authorization_required r2.authorized_until into r4 as Token.record;\n ternary r2.external_authorization_required 0u32 4294967295u32 into r5;\n cast r0 r1 r2.token_id r2.external_authorization_required r5 into r6 as Token.record;\n async transfer_private r2.external_authorization_required r2.authorized_until into r7;\n output r4 as Token.record;\n output r6 as Token.record;\n output r7 as token_registry.aleo/transfer_private.future;\n\nfinalize transfer_private:\n input r0 as boolean.public;\n input r1 as u32.public;\n lte block.height r1 into r2;\n not r0 into r3;\n or r2 r3 into r4;\n assert.eq r4 true;\n\n\n\n\nfunction transfer_private_to_public:\n input r0 as address.public;\n input r1 as u128.public;\n input r2 as Token.record;\n sub r2.amount r1 into r3;\n cast r2.owner r3 r2.token_id r2.external_authorization_required r2.authorized_until into r4 as Token.record;\n cast r0 r2.token_id into r5 as TokenOwner;\n hash.bhp256 r5 into r6 as field;\n async transfer_private_to_public r2.token_id r0 r1 r2.authorized_until r2.external_authorization_required r6 into r7;\n output r4 as Token.record;\n output r7 as token_registry.aleo/transfer_private_to_public.future;\n\nfinalize transfer_private_to_public:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as u128.public;\n input r3 as u32.public;\n input r4 as boolean.public;\n input r5 as field.public;\n lte block.height r3 into r6;\n not r4 into r7;\n or r6 r7 into r8;\n assert.eq r8 true;\n get registered_tokens[r0] into r9;\n ternary r9.external_authorization_required 0u32 4294967295u32 into r10;\n cast r0 r1 0u128 r10 into r11 as Balance;\n get.or_use balances[r5] r11 into r12;\n get.or_use authorized_balances[r5] r11 into r13;\n ternary r9.external_authorization_required r12.token_id r13.token_id into r14;\n ternary r9.external_authorization_required r12.account r13.account into r15;\n ternary r9.external_authorization_required r12.balance r13.balance into r16;\n ternary r9.external_authorization_required r12.authorized_until r13.authorized_until into r17;\n cast r14 r15 r16 r17 into r18 as Balance;\n add r18.balance r2 into r19;\n cast r0 r1 r19 r18.authorized_until into r20 as Balance;\n branch.eq r9.external_authorization_required false to end_then_0_4;\n set r20 into balances[r5];\n branch.eq true true to end_otherwise_0_5;\n position end_then_0_4;\n set r20 into authorized_balances[r5];\n position end_otherwise_0_5;\n\n\n\n\nfunction transfer_public_to_private:\n input r0 as field.public;\n input r1 as address.private;\n input r2 as u128.public;\n input r3 as boolean.public;\n ternary r3 0u32 4294967295u32 into r4;\n cast r1 r2 r0 r3 r4 into r5 as Token.record;\n cast self.caller r0 into r6 as TokenOwner;\n hash.bhp256 r6 into r7 as field;\n async transfer_public_to_private r0 r2 self.caller r3 r7 into r8;\n output r5 as Token.record;\n output r8 as token_registry.aleo/transfer_public_to_private.future;\n\nfinalize transfer_public_to_private:\n input r0 as field.public;\n input r1 as u128.public;\n input r2 as address.public;\n input r3 as boolean.public;\n input r4 as field.public;\n get registered_tokens[r0] into r5;\n assert.eq r5.external_authorization_required r3;\n get authorized_balances[r4] into r6;\n get registered_tokens[r0] into r7;\n lte block.height r6.authorized_until into r8;\n not r7.external_authorization_required into r9;\n or r8 r9 into r10;\n assert.eq r10 true;\n sub r6.balance r1 into r11;\n cast r0 r2 r11 r6.authorized_until into r12 as Balance;\n set r12 into authorized_balances[r4];\n\n\n\nfunction join:\n input r0 as Token.record;\n input r1 as Token.record;\n is.eq r0.token_id r1.token_id into r2;\n assert.eq r2 true;\n add r0.amount r1.amount into r3;\n lt r0.authorized_until r1.authorized_until into r4;\n ternary r4 r0.authorized_until r1.authorized_until into r5;\n cast r0.owner r3 r0.token_id r0.external_authorization_required r5 into r6 as Token.record;\n output r6 as Token.record;\n\n\nfunction split:\n input r0 as Token.record;\n input r1 as u128.private;\n gte r0.amount r1 into r2;\n assert.eq r2 true;\n cast r0.owner r1 r0.token_id r0.external_authorization_required r0.authorized_until into r3 as Token.record;\n sub r0.amount r1 into r4;\n cast r0.owner r4 r0.token_id r0.external_authorization_required r0.authorized_until into r5 as Token.record;\n output r3 as Token.record;\n output r5 as Token.record;\n\n\n\nfunction initialize:\n async initialize into r0;\n output r0 as token_registry.aleo/initialize.future;\n\nfinalize initialize:\n contains registered_tokens[3443843282313283355522573239085696902919850365217539366784739393210722344986field] into r0;\n assert.eq r0 false;\n cast 3443843282313283355522573239085696902919850365217539366784739393210722344986field 1095517519u128 1095517519u128 6u8 0u128 10_000_000_000_000_000u128 wrapped_credits.aleo false token_registry.aleo into r1 as TokenMetadata;\n set r1 into registered_tokens[3443843282313283355522573239085696902919850365217539366784739393210722344986field];\n\n\n\n\nfunction register_token:\n input r0 as field.public;\n input r1 as u128.public;\n input r2 as u128.public;\n input r3 as u8.public;\n input r4 as u128.public;\n input r5 as boolean.public;\n input r6 as address.public;\n is.neq r0 3443843282313283355522573239085696902919850365217539366784739393210722344986field into r7;\n assert.eq r7 true;\n cast r0 r1 r2 r3 0u128 r4 self.caller r5 r6 into r8 as TokenMetadata;\n async register_token r8 into r9;\n output r9 as token_registry.aleo/register_token.future;\n\nfinalize register_token:\n input r0 as TokenMetadata.public;\n contains registered_tokens[r0.token_id] into r1;\n assert.eq r1 false;\n set r0 into registered_tokens[r0.token_id];\n\n\n\n\nfunction update_token_management:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as address.public;\n is.neq r0 3443843282313283355522573239085696902919850365217539366784739393210722344986field into r3;\n assert.eq r3 true;\n async update_token_management r0 r1 r2 self.caller into r4;\n output r4 as token_registry.aleo/update_token_management.future;\n\nfinalize update_token_management:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as address.public;\n input r3 as address.public;\n get registered_tokens[r0] into r4;\n assert.eq r3 r4.admin;\n cast r0 r4.name r4.symbol r4.decimals r4.supply r4.max_supply r1 r4.external_authorization_required r2 into r5 as TokenMetadata;\n set r5 into registered_tokens[r0];\n\n\n\n\nfunction set_role:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as u8.public;\n is.neq r0 3443843282313283355522573239085696902919850365217539366784739393210722344986field into r3;\n assert.eq r3 true;\n is.eq r2 1u8 into r4;\n is.eq r2 2u8 into r5;\n or r4 r5 into r6;\n is.eq r2 3u8 into r7;\n or r6 r7 into r8;\n assert.eq r8 true;\n cast r1 r0 into r9 as TokenOwner;\n hash.bhp256 r9 into r10 as field;\n async set_role r0 r2 self.caller r10 into r11;\n output r11 as token_registry.aleo/set_role.future;\n\nfinalize set_role:\n input r0 as field.public;\n input r1 as u8.public;\n input r2 as address.public;\n input r3 as field.public;\n get registered_tokens[r0] into r4;\n assert.eq r2 r4.admin;\n set r1 into roles[r3];\n\n\n\n\nfunction remove_role:\n input r0 as field.public;\n input r1 as address.public;\n is.neq r0 3443843282313283355522573239085696902919850365217539366784739393210722344986field into r2;\n assert.eq r2 true;\n cast r1 r0 into r3 as TokenOwner;\n hash.bhp256 r3 into r4 as field;\n async remove_role r0 self.caller r4 into r5;\n output r5 as token_registry.aleo/remove_role.future;\n\nfinalize remove_role:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as field.public;\n get registered_tokens[r0] into r3;\n assert.eq r1 r3.admin;\n remove roles[r2];\n\nfunction mint_public:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as u128.public;\n input r3 as u32.public;\n cast self.caller r0 into r4 as TokenOwner;\n hash.bhp256 r4 into r5 as field;\n cast r1 r0 into r6 as TokenOwner;\n hash.bhp256 r6 into r7 as field;\n async mint_public r0 r1 r2 r3 self.caller r5 r7 into r8;\n output r8 as token_registry.aleo/mint_public.future;\n\nfinalize mint_public:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as u128.public;\n input r3 as u32.public;\n input r4 as address.public;\n input r5 as field.public;\n input r6 as field.public;\n get registered_tokens[r0] into r7;\n is.eq r4 r7.admin into r8;\n not r8 into r9;\n branch.eq r9 false to end_then_0_6;\n get roles[r5] into r10;\n is.eq r10 1u8 into r11;\n is.eq r10 3u8 into r12;\n or r11 r12 into r13;\n assert.eq r13 true;\n branch.eq true true to end_otherwise_0_7;\n position end_then_0_6;\n position end_otherwise_0_7;\n add r7.supply r2 into r14;\n lte r14 r7.max_supply into r15;\n assert.eq r15 true;\n cast r0 r1 0u128 r3 into r16 as Balance;\n get.or_use balances[r6] r16 into r17;\n get.or_use authorized_balances[r6] r16 into r18;\n ternary r7.external_authorization_required r17.token_id r18.token_id into r19;\n ternary r7.external_authorization_required r17.account r18.account into r20;\n ternary r7.external_authorization_required r17.balance r18.balance into r21;\n ternary r7.external_authorization_required r17.authorized_until r18.authorized_until into r22;\n cast r19 r20 r21 r22 into r23 as Balance;\n add r23.balance r2 into r24;\n cast r0 r1 r24 r23.authorized_until into r25 as Balance;\n branch.eq r7.external_authorization_required false to end_then_0_8;\n set r25 into balances[r6];\n branch.eq true true to end_otherwise_0_9;\n position end_then_0_8;\n set r25 into authorized_balances[r6];\n position end_otherwise_0_9;\n cast r0 r7.name r7.symbol r7.decimals r14 r7.max_supply r7.admin r7.external_authorization_required r7.external_authorization_party into r26 as TokenMetadata;\n set r26 into registered_tokens[r0];\n\n\n\n\nfunction mint_private:\n input r0 as field.public;\n input r1 as address.private;\n input r2 as u128.public;\n input r3 as boolean.public;\n input r4 as u32.public;\n cast r1 r2 r0 r3 r4 into r5 as Token.record;\n cast self.caller r0 into r6 as TokenOwner;\n hash.bhp256 r6 into r7 as field;\n async mint_private r0 r2 r3 r4 self.caller r7 into r8;\n output r5 as Token.record;\n output r8 as token_registry.aleo/mint_private.future;\n\nfinalize mint_private:\n input r0 as field.public;\n input r1 as u128.public;\n input r2 as boolean.public;\n input r3 as u32.public;\n input r4 as address.public;\n input r5 as field.public;\n get registered_tokens[r0] into r6;\n is.eq r4 r6.admin into r7;\n not r7 into r8;\n branch.eq r8 false to end_then_0_10;\n get roles[r5] into r9;\n is.eq r9 1u8 into r10;\n is.eq r9 3u8 into r11;\n or r10 r11 into r12;\n assert.eq r12 true;\n branch.eq true true to end_otherwise_0_11;\n position end_then_0_10;\n position end_otherwise_0_11;\n add r6.supply r1 into r13;\n lte r13 r6.max_supply into r14;\n assert.eq r14 true;\n assert.eq r6.external_authorization_required r2;\n is.eq r3 0u32 into r15;\n not r6.external_authorization_required into r16;\n or r15 r16 into r17;\n assert.eq r17 true;\n cast r0 r6.name r6.symbol r6.decimals r13 r6.max_supply r6.admin r6.external_authorization_required r6.external_authorization_party into r18 as TokenMetadata;\n set r18 into registered_tokens[r0];\n\n\n\n\nfunction burn_public:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as u128.public;\n cast r1 r0 into r3 as TokenOwner;\n hash.bhp256 r3 into r4 as field;\n cast self.caller r0 into r5 as TokenOwner;\n hash.bhp256 r5 into r6 as field;\n async burn_public r3 r2 self.caller r6 r4 into r7;\n output r7 as token_registry.aleo/burn_public.future;\n\nfinalize burn_public:\n input r0 as TokenOwner.public;\n input r1 as u128.public;\n input r2 as address.public;\n input r3 as field.public;\n input r4 as field.public;\n get registered_tokens[r0.token_id] into r5;\n is.neq r2 r5.admin into r6;\n branch.eq r6 false to end_then_0_12;\n get roles[r3] into r7;\n is.eq r7 2u8 into r8;\n is.eq r7 3u8 into r9;\n or r8 r9 into r10;\n assert.eq r10 true;\n branch.eq true true to end_otherwise_0_13;\n position end_then_0_12;\n position end_otherwise_0_13;\n sub r5.supply r1 into r11;\n cast r5.token_id r5.name r5.symbol r5.decimals r11 r5.max_supply r5.admin r5.external_authorization_required r5.external_authorization_party into r12 as TokenMetadata;\n set r12 into registered_tokens[r0.token_id];\n cast r0.token_id r0.account 0u128 0u32 into r13 as Balance;\n get.or_use authorized_balances[r4] r13 into r14;\n gte r14.balance 0u128 into r15;\n branch.eq r15 false to end_then_0_14;\n gt r14.balance r1 into r16;\n branch.eq r16 false to end_then_1_16;\n sub r14.balance r1 into r17;\n cast r0.token_id r0.account r17 r14.authorized_until into r18 as Balance;\n set r18 into authorized_balances[r4];\n branch.eq true true to end_otherwise_1_17;\n position end_then_1_16;\n cast r0.token_id r0.account 0u128 r14.authorized_until into r19 as Balance;\n set r19 into authorized_balances[r4];\n sub r1 r14.balance into r20;\n is.eq r20 0u128 into r21;\n branch.eq r21 false to end_then_2_18;\n branch.eq true true to end_otherwise_2_19;\n position end_then_2_18;\n get balances[r4] into r22;\n sub r22.balance r20 into r23;\n cast r0.token_id r0.account r23 r22.authorized_until into r24 as Balance;\n set r24 into balances[r4];\n position end_otherwise_2_19;\n position end_otherwise_1_17;\n branch.eq true true to end_otherwise_0_15;\n position end_then_0_14;\n get balances[r4] into r25;\n sub r25.balance r1 into r26;\n cast r0.token_id r0.account r26 r25.authorized_until into r27 as Balance;\n set r27 into balances[r4];\n position end_otherwise_0_15;\n\n\n\n\nfunction burn_private:\n input r0 as Token.record;\n input r1 as u128.public;\n sub r0.amount r1 into r2;\n cast r0.owner r2 r0.token_id r0.external_authorization_required r0.authorized_until into r3 as Token.record;\n cast self.caller r0.token_id into r4 as TokenOwner;\n hash.bhp256 r4 into r5 as field;\n async burn_private r0.token_id r1 self.caller r5 into r6;\n output r3 as Token.record;\n output r6 as token_registry.aleo/burn_private.future;\n\nfinalize burn_private:\n input r0 as field.public;\n input r1 as u128.public;\n input r2 as address.public;\n input r3 as field.public;\n get registered_tokens[r0] into r4;\n is.eq r2 r4.admin into r5;\n not r5 into r6;\n branch.eq r6 false to end_then_0_20;\n get roles[r3] into r7;\n is.eq r7 2u8 into r8;\n is.eq r7 3u8 into r9;\n or r8 r9 into r10;\n assert.eq r10 true;\n branch.eq true true to end_otherwise_0_21;\n position end_then_0_20;\n position end_otherwise_0_21;\n sub r4.supply r1 into r11;\n cast r0 r4.name r4.symbol r4.decimals r11 r4.max_supply r4.admin r4.external_authorization_required r4.external_authorization_party into r12 as TokenMetadata;\n set r12 into registered_tokens[r0];\n\n\n\n\nfunction prehook_public:\n input r0 as TokenOwner.public;\n input r1 as u128.public;\n input r2 as u32.public;\n hash.bhp256 r0 into r3 as field;\n async prehook_public r0 r1 r2 self.caller r3 into r4;\n output r4 as token_registry.aleo/prehook_public.future;\n\nfinalize prehook_public:\n input r0 as TokenOwner.public;\n input r1 as u128.public;\n input r2 as u32.public;\n input r3 as address.public;\n input r4 as field.public;\n get registered_tokens[r0.token_id] into r5;\n assert.eq r5.external_authorization_required true;\n is.eq r3 r5.external_authorization_party into r6;\n assert.eq r6 true;\n cast r0.token_id r0.account 0u128 0u32 into r7 as Balance;\n get.or_use balances[r4] r7 into r8;\n get.or_use authorized_balances[r4] r7 into r9;\n lt r9.authorized_until block.height into r10;\n add r8.balance r9.balance into r11;\n ternary r10 r11 r8.balance into r12;\n ternary r10 0u128 r9.balance into r13;\n sub r12 r1 into r14;\n add r13 r1 into r15;\n cast r0.token_id r0.account r15 r2 into r16 as Balance;\n set r16 into authorized_balances[r4];\n cast r0.token_id r0.account r14 r8.authorized_until into r17 as Balance;\n set r17 into balances[r4];\n\n\n\n\nfunction prehook_private:\n input r0 as Token.record;\n input r1 as u128.private;\n input r2 as u32.private;\n sub r0.amount r1 into r3;\n cast r0.owner r3 r0.token_id r0.external_authorization_required r0.authorized_until into r4 as Token.record;\n cast r0.owner r1 r0.token_id r0.external_authorization_required r2 into r5 as Token.record;\n async prehook_private r0.token_id self.caller into r6;\n output r4 as Token.record;\n output r5 as Token.record;\n output r6 as token_registry.aleo/prehook_private.future;\n\nfinalize prehook_private:\n input r0 as field.public;\n input r1 as address.public;\n get registered_tokens[r0] into r2;\n is.eq r1 r2.external_authorization_party into r3;\n assert.eq r3 true;\n\n\n\n\nfunction approve_public:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as u128.public;\n cast self.caller r1 r0 into r3 as Allowance;\n hash.bhp256 r3 into r4 as field;\n async approve_public r2 r4 into r5;\n output r5 as token_registry.aleo/approve_public.future;\n\nfinalize approve_public:\n input r0 as u128.public;\n input r1 as field.public;\n get.or_use allowances[r1] 0u128 into r2;\n add r2 r0 into r3;\n set r3 into allowances[r1];\n\n\n\n\nfunction unapprove_public:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as u128.public;\n cast self.caller r1 r0 into r3 as Allowance;\n hash.bhp256 r3 into r4 as field;\n async unapprove_public r2 r4 into r5;\n output r5 as token_registry.aleo/unapprove_public.future;\n\nfinalize unapprove_public:\n input r0 as u128.public;\n input r1 as field.public;\n get allowances[r1] into r2;\n sub r2 r0 into r3;\n set r3 into allowances[r1];\n\n\n\n\nfunction transfer_from_public:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as address.public;\n input r3 as u128.public;\n cast r1 self.caller r0 into r4 as Allowance;\n hash.bhp256 r4 into r5 as field;\n cast r1 r0 into r6 as TokenOwner;\n hash.bhp256 r6 into r7 as field;\n cast r2 r0 into r8 as TokenOwner;\n hash.bhp256 r8 into r9 as field;\n async transfer_from_public r0 r1 r2 r3 r5 r7 r9 into r10;\n output r10 as token_registry.aleo/transfer_from_public.future;\n\nfinalize transfer_from_public:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as address.public;\n input r3 as u128.public;\n input r4 as field.public;\n input r5 as field.public;\n input r6 as field.public;\n get allowances[r4] into r7;\n sub r7 r3 into r8;\n set r8 into allowances[r4];\n get authorized_balances[r5] into r9;\n get registered_tokens[r0] into r10;\n lte block.height r9.authorized_until into r11;\n not r10.external_authorization_required into r12;\n or r11 r12 into r13;\n assert.eq r13 true;\n sub r9.balance r3 into r14;\n cast r0 r1 r14 r9.authorized_until into r15 as Balance;\n set r15 into authorized_balances[r5];\n get registered_tokens[r0] into r16;\n ternary r16.external_authorization_required 0u32 4294967295u32 into r17;\n cast r0 r2 0u128 r17 into r18 as Balance;\n get.or_use balances[r6] r18 into r19;\n get.or_use authorized_balances[r6] r18 into r20;\n ternary r16.external_authorization_required r19.token_id r20.token_id into r21;\n ternary r16.external_authorization_required r19.account r20.account into r22;\n ternary r16.external_authorization_required r19.balance r20.balance into r23;\n ternary r16.external_authorization_required r19.authorized_until r20.authorized_until into r24;\n cast r21 r22 r23 r24 into r25 as Balance;\n add r25.balance r3 into r26;\n cast r0 r2 r26 r25.authorized_until into r27 as Balance;\n branch.eq r16.external_authorization_required false to end_then_0_22;\n set r27 into balances[r6];\n branch.eq true true to end_otherwise_0_23;\n position end_then_0_22;\n set r27 into authorized_balances[r6];\n position end_otherwise_0_23;\n\n\n\n\nfunction transfer_from_public_to_private:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as address.private;\n input r3 as u128.public;\n input r4 as boolean.public;\n ternary r4 0u32 4294967295u32 into r5;\n cast r2 r3 r0 r4 r5 into r6 as Token.record;\n cast r1 self.caller r0 into r7 as Allowance;\n hash.bhp256 r7 into r8 as field;\n cast r1 r0 into r9 as TokenOwner;\n hash.bhp256 r9 into r10 as field;\n async transfer_from_public_to_private r0 r1 r3 r4 r8 r10 into r11;\n output r6 as Token.record;\n output r11 as token_registry.aleo/transfer_from_public_to_private.future;\n\nfinalize transfer_from_public_to_private:\n input r0 as field.public;\n input r1 as address.public;\n input r2 as u128.public;\n input r3 as boolean.public;\n input r4 as field.public;\n input r5 as field.public;\n get registered_tokens[r0] into r6;\n assert.eq r6.external_authorization_required r3;\n get allowances[r4] into r7;\n sub r7 r2 into r8;\n set r8 into allowances[r4];\n get authorized_balances[r5] into r9;\n get registered_tokens[r0] into r10;\n lte block.height r9.authorized_until into r11;\n not r10.external_authorization_required into r12;\n or r11 r12 into r13;\n assert.eq r13 true;\n sub r9.balance r2 into r14;\n cast r0 r1 r14 r9.authorized_until into r15 as Balance;\n set r15 into authorized_balances[r5];\n\nconstructor:\n assert.eq true true;";
|
|
10
|
+
export declare const validator_announce = "program validator_announce.aleo;\n\nstruct EthAddress:\n bytes as [u8; 20u32];\n\nstruct StorageLocationKey:\n validator as [u8; 20u32];\n index as u8;\n\nstruct ValidatorAnnounce:\n mailbox as [u8; 32u32];\n local_domain as u32;\n\nstruct HashKey:\n hash as [u8; 32u32];\n\nmapping storage_sequences:\n key as EthAddress.public;\n value as u8.public;\n\nmapping storage_locations:\n key as StorageLocationKey.public;\n value as [u8; 480u32].public;\n\nmapping replay_protection:\n key as HashKey.public;\n value as boolean.public;\n\nmapping validator_announce:\n key as boolean.public;\n value as ValidatorAnnounce.public;\n\nfunction init:\n input r0 as address.private;\n input r1 as u32.private;\n serialize.bits.raw r0 (address) into r2 ([boolean; 253u32]);\n cast false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false false into r3 as [boolean; 256u32];\n cast r2[0u32] r2[1u32] r2[2u32] r2[3u32] r2[4u32] r2[5u32] r2[6u32] r2[7u32] r2[8u32] r2[9u32] r2[10u32] r2[11u32] r2[12u32] r2[13u32] r2[14u32] r2[15u32] r2[16u32] r2[17u32] r2[18u32] r2[19u32] r2[20u32] r2[21u32] r2[22u32] r2[23u32] r2[24u32] r2[25u32] r2[26u32] r2[27u32] r2[28u32] r2[29u32] r2[30u32] r2[31u32] r2[32u32] r2[33u32] r2[34u32] r2[35u32] r2[36u32] r2[37u32] r2[38u32] r2[39u32] r2[40u32] r2[41u32] r2[42u32] r2[43u32] r2[44u32] r2[45u32] r2[46u32] r2[47u32] r2[48u32] r2[49u32] r2[50u32] r2[51u32] r2[52u32] r2[53u32] r2[54u32] r2[55u32] r2[56u32] r2[57u32] r2[58u32] r2[59u32] r2[60u32] r2[61u32] r2[62u32] r2[63u32] r2[64u32] r2[65u32] r2[66u32] r2[67u32] r2[68u32] r2[69u32] r2[70u32] r2[71u32] r2[72u32] r2[73u32] r2[74u32] r2[75u32] r2[76u32] r2[77u32] r2[78u32] r2[79u32] r2[80u32] r2[81u32] r2[82u32] r2[83u32] r2[84u32] r2[85u32] r2[86u32] r2[87u32] r2[88u32] r2[89u32] r2[90u32] r2[91u32] r2[92u32] r2[93u32] r2[94u32] r2[95u32] r2[96u32] r2[97u32] r2[98u32] r2[99u32] r2[100u32] r2[101u32] r2[102u32] r2[103u32] r2[104u32] r2[105u32] r2[106u32] r2[107u32] r2[108u32] r2[109u32] r2[110u32] r2[111u32] r2[112u32] r2[113u32] r2[114u32] r2[115u32] r2[116u32] r2[117u32] r2[118u32] r2[119u32] r2[120u32] r2[121u32] r2[122u32] r2[123u32] r2[124u32] r2[125u32] r2[126u32] r2[127u32] r2[128u32] r2[129u32] r2[130u32] r2[131u32] r2[132u32] r2[133u32] r2[134u32] r2[135u32] r2[136u32] r2[137u32] r2[138u32] r2[139u32] r2[140u32] r2[141u32] r2[142u32] r2[143u32] r2[144u32] r2[145u32] r2[146u32] r2[147u32] r2[148u32] r2[149u32] r2[150u32] r2[151u32] r2[152u32] r2[153u32] r2[154u32] r2[155u32] r2[156u32] r2[157u32] r2[158u32] r2[159u32] r2[160u32] r2[161u32] r2[162u32] r2[163u32] r2[164u32] r2[165u32] r2[166u32] r2[167u32] r2[168u32] r2[169u32] r2[170u32] r2[171u32] r2[172u32] r2[173u32] r2[174u32] r2[175u32] r2[176u32] r2[177u32] r2[178u32] r2[179u32] r2[180u32] r2[181u32] r2[182u32] r2[183u32] r2[184u32] r2[185u32] r2[186u32] r2[187u32] r2[188u32] r2[189u32] r2[190u32] r2[191u32] r2[192u32] r2[193u32] r2[194u32] r2[195u32] r2[196u32] r2[197u32] r2[198u32] r2[199u32] r2[200u32] r2[201u32] r2[202u32] r2[203u32] r2[204u32] r2[205u32] r2[206u32] r2[207u32] r2[208u32] r2[209u32] r2[210u32] r2[211u32] r2[212u32] r2[213u32] r2[214u32] r2[215u32] r2[216u32] r2[217u32] r2[218u32] r2[219u32] r2[220u32] r2[221u32] r2[222u32] r2[223u32] r2[224u32] r2[225u32] r2[226u32] r2[227u32] r2[228u32] r2[229u32] r2[230u32] r2[231u32] r2[232u32] r2[233u32] r2[234u32] r2[235u32] r2[236u32] r2[237u32] r2[238u32] r2[239u32] r2[240u32] r2[241u32] r2[242u32] r2[243u32] r2[244u32] r2[245u32] r2[246u32] r2[247u32] r2[248u32] r2[249u32] r2[250u32] r2[251u32] r2[252u32] r3[253u32] r3[254u32] r3[255u32] into r4 as [boolean; 256u32];\n deserialize.bits.raw r4 ([boolean; 256u32]) into r5 ([u8; 32u32]);\n async init r5 r1 into r6;\n output r6 as validator_announce.aleo/init.future;\n\nfinalize init:\n input r0 as [u8; 32u32].public;\n input r1 as u32.public;\n contains validator_announce[true] into r2;\n not r2 into r3;\n assert.eq r3 true;\n cast r0 r1 into r4 as ValidatorAnnounce;\n set r4 into validator_announce[true];\n\nfunction get_address:\n output validator_announce.aleo as address.private;\n\nfunction announce:\n input r0 as [u8; 20u32].private;\n input r1 as [u8; 480u32].private;\n input r2 as [u8; 65u32].private;\n async announce r0 r1 r2 into r3;\n output r3 as validator_announce.aleo/announce.future;\n\nfinalize announce:\n input r0 as [u8; 20u32].public;\n input r1 as [u8; 480u32].public;\n input r2 as [u8; 65u32].public;\n contains validator_announce[true] into r3;\n assert.eq r3 true;\n get validator_announce[true] into r4;\n cast r0[0u32] r0[1u32] r0[2u32] r0[3u32] r0[4u32] r0[5u32] r0[6u32] r0[7u32] r0[8u32] r0[9u32] r0[10u32] r0[11u32] r0[12u32] r0[13u32] r0[14u32] r0[15u32] r0[16u32] r0[17u32] r0[18u32] r0[19u32] r1[0u32] r1[1u32] r1[2u32] r1[3u32] r1[4u32] r1[5u32] r1[6u32] r1[7u32] r1[8u32] r1[9u32] r1[10u32] r1[11u32] r1[12u32] r1[13u32] r1[14u32] r1[15u32] r1[16u32] r1[17u32] r1[18u32] r1[19u32] r1[20u32] r1[21u32] r1[22u32] r1[23u32] r1[24u32] r1[25u32] r1[26u32] r1[27u32] r1[28u32] r1[29u32] r1[30u32] r1[31u32] r1[32u32] r1[33u32] r1[34u32] r1[35u32] r1[36u32] r1[37u32] r1[38u32] r1[39u32] r1[40u32] r1[41u32] r1[42u32] r1[43u32] r1[44u32] r1[45u32] r1[46u32] r1[47u32] r1[48u32] r1[49u32] r1[50u32] r1[51u32] r1[52u32] r1[53u32] r1[54u32] r1[55u32] r1[56u32] r1[57u32] r1[58u32] r1[59u32] r1[60u32] r1[61u32] r1[62u32] r1[63u32] r1[64u32] r1[65u32] r1[66u32] r1[67u32] r1[68u32] r1[69u32] r1[70u32] r1[71u32] r1[72u32] r1[73u32] r1[74u32] r1[75u32] r1[76u32] r1[77u32] r1[78u32] r1[79u32] r1[80u32] r1[81u32] r1[82u32] r1[83u32] r1[84u32] r1[85u32] r1[86u32] r1[87u32] r1[88u32] r1[89u32] r1[90u32] r1[91u32] r1[92u32] r1[93u32] r1[94u32] r1[95u32] r1[96u32] r1[97u32] r1[98u32] r1[99u32] r1[100u32] r1[101u32] r1[102u32] r1[103u32] r1[104u32] r1[105u32] r1[106u32] r1[107u32] r1[108u32] r1[109u32] r1[110u32] r1[111u32] r1[112u32] r1[113u32] r1[114u32] r1[115u32] r1[116u32] r1[117u32] r1[118u32] r1[119u32] r1[120u32] r1[121u32] r1[122u32] r1[123u32] r1[124u32] r1[125u32] r1[126u32] r1[127u32] r1[128u32] r1[129u32] r1[130u32] r1[131u32] r1[132u32] r1[133u32] r1[134u32] r1[135u32] r1[136u32] r1[137u32] r1[138u32] r1[139u32] r1[140u32] r1[141u32] r1[142u32] r1[143u32] r1[144u32] r1[145u32] r1[146u32] r1[147u32] r1[148u32] r1[149u32] r1[150u32] r1[151u32] r1[152u32] r1[153u32] r1[154u32] r1[155u32] r1[156u32] r1[157u32] r1[158u32] r1[159u32] r1[160u32] r1[161u32] r1[162u32] r1[163u32] r1[164u32] r1[165u32] r1[166u32] r1[167u32] r1[168u32] r1[169u32] r1[170u32] r1[171u32] r1[172u32] r1[173u32] r1[174u32] r1[175u32] r1[176u32] r1[177u32] r1[178u32] r1[179u32] r1[180u32] r1[181u32] r1[182u32] r1[183u32] r1[184u32] r1[185u32] r1[186u32] r1[187u32] r1[188u32] r1[189u32] r1[190u32] r1[191u32] r1[192u32] r1[193u32] r1[194u32] r1[195u32] r1[196u32] r1[197u32] r1[198u32] r1[199u32] r1[200u32] r1[201u32] r1[202u32] r1[203u32] r1[204u32] r1[205u32] r1[206u32] r1[207u32] r1[208u32] r1[209u32] r1[210u32] r1[211u32] r1[212u32] r1[213u32] r1[214u32] r1[215u32] r1[216u32] r1[217u32] r1[218u32] r1[219u32] r1[220u32] r1[221u32] r1[222u32] r1[223u32] r1[224u32] r1[225u32] r1[226u32] r1[227u32] r1[228u32] r1[229u32] r1[230u32] r1[231u32] r1[232u32] r1[233u32] r1[234u32] r1[235u32] r1[236u32] r1[237u32] r1[238u32] r1[239u32] r1[240u32] r1[241u32] r1[242u32] r1[243u32] r1[244u32] r1[245u32] r1[246u32] r1[247u32] r1[248u32] r1[249u32] r1[250u32] r1[251u32] r1[252u32] r1[253u32] r1[254u32] r1[255u32] r1[256u32] r1[257u32] r1[258u32] r1[259u32] r1[260u32] r1[261u32] r1[262u32] r1[263u32] r1[264u32] r1[265u32] r1[266u32] r1[267u32] r1[268u32] r1[269u32] r1[270u32] r1[271u32] r1[272u32] r1[273u32] r1[274u32] r1[275u32] r1[276u32] r1[277u32] r1[278u32] r1[279u32] r1[280u32] r1[281u32] r1[282u32] r1[283u32] r1[284u32] r1[285u32] r1[286u32] r1[287u32] r1[288u32] r1[289u32] r1[290u32] r1[291u32] r1[292u32] r1[293u32] r1[294u32] r1[295u32] r1[296u32] r1[297u32] r1[298u32] r1[299u32] r1[300u32] r1[301u32] r1[302u32] r1[303u32] r1[304u32] r1[305u32] r1[306u32] r1[307u32] r1[308u32] r1[309u32] r1[310u32] r1[311u32] r1[312u32] r1[313u32] r1[314u32] r1[315u32] r1[316u32] r1[317u32] r1[318u32] r1[319u32] r1[320u32] r1[321u32] r1[322u32] r1[323u32] r1[324u32] r1[325u32] r1[326u32] r1[327u32] r1[328u32] r1[329u32] r1[330u32] r1[331u32] r1[332u32] r1[333u32] r1[334u32] r1[335u32] r1[336u32] r1[337u32] r1[338u32] r1[339u32] r1[340u32] r1[341u32] r1[342u32] r1[343u32] r1[344u32] r1[345u32] r1[346u32] r1[347u32] r1[348u32] r1[349u32] r1[350u32] r1[351u32] r1[352u32] r1[353u32] r1[354u32] r1[355u32] r1[356u32] r1[357u32] r1[358u32] r1[359u32] r1[360u32] r1[361u32] r1[362u32] r1[363u32] r1[364u32] r1[365u32] r1[366u32] r1[367u32] r1[368u32] r1[369u32] r1[370u32] r1[371u32] r1[372u32] r1[373u32] r1[374u32] r1[375u32] r1[376u32] r1[377u32] r1[378u32] r1[379u32] r1[380u32] r1[381u32] r1[382u32] r1[383u32] r1[384u32] r1[385u32] r1[386u32] r1[387u32] r1[388u32] r1[389u32] r1[390u32] r1[391u32] r1[392u32] r1[393u32] r1[394u32] r1[395u32] r1[396u32] r1[397u32] r1[398u32] r1[399u32] r1[400u32] r1[401u32] r1[402u32] r1[403u32] r1[404u32] r1[405u32] r1[406u32] r1[407u32] r1[408u32] r1[409u32] r1[410u32] r1[411u32] r1[412u32] r1[413u32] r1[414u32] r1[415u32] r1[416u32] r1[417u32] r1[418u32] r1[419u32] r1[420u32] r1[421u32] r1[422u32] r1[423u32] r1[424u32] r1[425u32] r1[426u32] r1[427u32] r1[428u32] r1[429u32] r1[430u32] r1[431u32] r1[432u32] r1[433u32] r1[434u32] r1[435u32] r1[436u32] r1[437u32] r1[438u32] r1[439u32] r1[440u32] r1[441u32] r1[442u32] r1[443u32] r1[444u32] r1[445u32] r1[446u32] r1[447u32] r1[448u32] r1[449u32] r1[450u32] r1[451u32] r1[452u32] r1[453u32] r1[454u32] r1[455u32] r1[456u32] r1[457u32] r1[458u32] r1[459u32] r1[460u32] r1[461u32] r1[462u32] r1[463u32] r1[464u32] r1[465u32] r1[466u32] r1[467u32] r1[468u32] r1[469u32] r1[470u32] r1[471u32] r1[472u32] r1[473u32] r1[474u32] r1[475u32] r1[476u32] r1[477u32] r1[478u32] r1[479u32] into r5 as [u8; 500u32];\n hash.keccak256.native.raw r5 into r6 as [boolean; 256u32];\n deserialize.bits.raw r6 ([boolean; 256u32]) into r7 ([u8; 32u32]);\n cast r7 into r8 as HashKey;\n contains replay_protection[r8] into r9;\n not r9 into r10;\n assert.eq r10 true;\n cast r0 into r11 as EthAddress;\n get.or_use storage_sequences[r11] 0u8 into r12;\n shr r4.local_domain 24u32 into r13;\n cast r13 into r14 as u8;\n shr r4.local_domain 16u32 into r15;\n rem r15 256u32 into r16;\n cast r16 into r17 as u8;\n shr r4.local_domain 8u32 into r18;\n rem r18 256u32 into r19;\n cast r19 into r20 as u8;\n rem r4.local_domain 256u32 into r21;\n cast r21 into r22 as u8;\n cast r14 r17 r20 r22 r4.mailbox[0u32] r4.mailbox[1u32] r4.mailbox[2u32] r4.mailbox[3u32] r4.mailbox[4u32] r4.mailbox[5u32] r4.mailbox[6u32] r4.mailbox[7u32] r4.mailbox[8u32] r4.mailbox[9u32] r4.mailbox[10u32] r4.mailbox[11u32] r4.mailbox[12u32] r4.mailbox[13u32] r4.mailbox[14u32] r4.mailbox[15u32] r4.mailbox[16u32] r4.mailbox[17u32] r4.mailbox[18u32] r4.mailbox[19u32] r4.mailbox[20u32] r4.mailbox[21u32] r4.mailbox[22u32] r4.mailbox[23u32] r4.mailbox[24u32] r4.mailbox[25u32] r4.mailbox[26u32] r4.mailbox[27u32] r4.mailbox[28u32] r4.mailbox[29u32] r4.mailbox[30u32] r4.mailbox[31u32] 72u8 89u8 80u8 69u8 82u8 76u8 65u8 78u8 69u8 95u8 65u8 78u8 78u8 79u8 85u8 78u8 67u8 69u8 77u8 69u8 78u8 84u8 into r23 as [u8; 58u32];\n hash.keccak256.native.raw r23 into r24 as [boolean; 256u32];\n deserialize.bits.raw r24 ([boolean; 256u32]) into r25 ([u8; 32u32]);\n cast r25[0u32] r25[1u32] r25[2u32] r25[3u32] r25[4u32] r25[5u32] r25[6u32] r25[7u32] r25[8u32] r25[9u32] r25[10u32] r25[11u32] r25[12u32] r25[13u32] r25[14u32] r25[15u32] r25[16u32] r25[17u32] r25[18u32] r25[19u32] r25[20u32] r25[21u32] r25[22u32] r25[23u32] r25[24u32] r25[25u32] r25[26u32] r25[27u32] r25[28u32] r25[29u32] r25[30u32] r25[31u32] r1[0u32] r1[1u32] r1[2u32] r1[3u32] r1[4u32] r1[5u32] r1[6u32] r1[7u32] r1[8u32] r1[9u32] r1[10u32] r1[11u32] r1[12u32] r1[13u32] r1[14u32] r1[15u32] r1[16u32] r1[17u32] r1[18u32] r1[19u32] r1[20u32] r1[21u32] r1[22u32] r1[23u32] r1[24u32] r1[25u32] r1[26u32] r1[27u32] r1[28u32] r1[29u32] r1[30u32] r1[31u32] r1[32u32] r1[33u32] r1[34u32] r1[35u32] r1[36u32] r1[37u32] r1[38u32] r1[39u32] r1[40u32] r1[41u32] r1[42u32] r1[43u32] r1[44u32] r1[45u32] r1[46u32] r1[47u32] r1[48u32] r1[49u32] r1[50u32] r1[51u32] r1[52u32] r1[53u32] r1[54u32] r1[55u32] r1[56u32] r1[57u32] r1[58u32] r1[59u32] r1[60u32] r1[61u32] r1[62u32] r1[63u32] r1[64u32] r1[65u32] r1[66u32] r1[67u32] r1[68u32] r1[69u32] r1[70u32] r1[71u32] r1[72u32] r1[73u32] r1[74u32] r1[75u32] r1[76u32] r1[77u32] r1[78u32] r1[79u32] r1[80u32] r1[81u32] r1[82u32] r1[83u32] r1[84u32] r1[85u32] r1[86u32] r1[87u32] r1[88u32] r1[89u32] r1[90u32] r1[91u32] r1[92u32] r1[93u32] r1[94u32] r1[95u32] r1[96u32] r1[97u32] r1[98u32] r1[99u32] r1[100u32] r1[101u32] r1[102u32] r1[103u32] r1[104u32] r1[105u32] r1[106u32] r1[107u32] r1[108u32] r1[109u32] r1[110u32] r1[111u32] r1[112u32] r1[113u32] r1[114u32] r1[115u32] r1[116u32] r1[117u32] r1[118u32] r1[119u32] r1[120u32] r1[121u32] r1[122u32] r1[123u32] r1[124u32] r1[125u32] r1[126u32] r1[127u32] r1[128u32] r1[129u32] r1[130u32] r1[131u32] r1[132u32] r1[133u32] r1[134u32] r1[135u32] r1[136u32] r1[137u32] r1[138u32] r1[139u32] r1[140u32] r1[141u32] r1[142u32] r1[143u32] r1[144u32] r1[145u32] r1[146u32] r1[147u32] r1[148u32] r1[149u32] r1[150u32] r1[151u32] r1[152u32] r1[153u32] r1[154u32] r1[155u32] r1[156u32] r1[157u32] r1[158u32] r1[159u32] r1[160u32] r1[161u32] r1[162u32] r1[163u32] r1[164u32] r1[165u32] r1[166u32] r1[167u32] r1[168u32] r1[169u32] r1[170u32] r1[171u32] r1[172u32] r1[173u32] r1[174u32] r1[175u32] r1[176u32] r1[177u32] r1[178u32] r1[179u32] r1[180u32] r1[181u32] r1[182u32] r1[183u32] r1[184u32] r1[185u32] r1[186u32] r1[187u32] r1[188u32] r1[189u32] r1[190u32] r1[191u32] r1[192u32] r1[193u32] r1[194u32] r1[195u32] r1[196u32] r1[197u32] r1[198u32] r1[199u32] r1[200u32] r1[201u32] r1[202u32] r1[203u32] r1[204u32] r1[205u32] r1[206u32] r1[207u32] r1[208u32] r1[209u32] r1[210u32] r1[211u32] r1[212u32] r1[213u32] r1[214u32] r1[215u32] r1[216u32] r1[217u32] r1[218u32] r1[219u32] r1[220u32] r1[221u32] r1[222u32] r1[223u32] r1[224u32] r1[225u32] r1[226u32] r1[227u32] r1[228u32] r1[229u32] r1[230u32] r1[231u32] r1[232u32] r1[233u32] r1[234u32] r1[235u32] r1[236u32] r1[237u32] r1[238u32] r1[239u32] r1[240u32] r1[241u32] r1[242u32] r1[243u32] r1[244u32] r1[245u32] r1[246u32] r1[247u32] r1[248u32] r1[249u32] r1[250u32] r1[251u32] r1[252u32] r1[253u32] r1[254u32] r1[255u32] r1[256u32] r1[257u32] r1[258u32] r1[259u32] r1[260u32] r1[261u32] r1[262u32] r1[263u32] r1[264u32] r1[265u32] r1[266u32] r1[267u32] r1[268u32] r1[269u32] r1[270u32] r1[271u32] r1[272u32] r1[273u32] r1[274u32] r1[275u32] r1[276u32] r1[277u32] r1[278u32] r1[279u32] r1[280u32] r1[281u32] r1[282u32] r1[283u32] r1[284u32] r1[285u32] r1[286u32] r1[287u32] r1[288u32] r1[289u32] r1[290u32] r1[291u32] r1[292u32] r1[293u32] r1[294u32] r1[295u32] r1[296u32] r1[297u32] r1[298u32] r1[299u32] r1[300u32] r1[301u32] r1[302u32] r1[303u32] r1[304u32] r1[305u32] r1[306u32] r1[307u32] r1[308u32] r1[309u32] r1[310u32] r1[311u32] r1[312u32] r1[313u32] r1[314u32] r1[315u32] r1[316u32] r1[317u32] r1[318u32] r1[319u32] r1[320u32] r1[321u32] r1[322u32] r1[323u32] r1[324u32] r1[325u32] r1[326u32] r1[327u32] r1[328u32] r1[329u32] r1[330u32] r1[331u32] r1[332u32] r1[333u32] r1[334u32] r1[335u32] r1[336u32] r1[337u32] r1[338u32] r1[339u32] r1[340u32] r1[341u32] r1[342u32] r1[343u32] r1[344u32] r1[345u32] r1[346u32] r1[347u32] r1[348u32] r1[349u32] r1[350u32] r1[351u32] r1[352u32] r1[353u32] r1[354u32] r1[355u32] r1[356u32] r1[357u32] r1[358u32] r1[359u32] r1[360u32] r1[361u32] r1[362u32] r1[363u32] r1[364u32] r1[365u32] r1[366u32] r1[367u32] r1[368u32] r1[369u32] r1[370u32] r1[371u32] r1[372u32] r1[373u32] r1[374u32] r1[375u32] r1[376u32] r1[377u32] r1[378u32] r1[379u32] r1[380u32] r1[381u32] r1[382u32] r1[383u32] r1[384u32] r1[385u32] r1[386u32] r1[387u32] r1[388u32] r1[389u32] r1[390u32] r1[391u32] r1[392u32] r1[393u32] r1[394u32] r1[395u32] r1[396u32] r1[397u32] r1[398u32] r1[399u32] r1[400u32] r1[401u32] r1[402u32] r1[403u32] r1[404u32] r1[405u32] r1[406u32] r1[407u32] r1[408u32] r1[409u32] r1[410u32] r1[411u32] r1[412u32] r1[413u32] r1[414u32] r1[415u32] r1[416u32] r1[417u32] r1[418u32] r1[419u32] r1[420u32] r1[421u32] r1[422u32] r1[423u32] r1[424u32] r1[425u32] r1[426u32] r1[427u32] r1[428u32] r1[429u32] r1[430u32] r1[431u32] r1[432u32] r1[433u32] r1[434u32] r1[435u32] r1[436u32] r1[437u32] r1[438u32] r1[439u32] r1[440u32] r1[441u32] r1[442u32] r1[443u32] r1[444u32] r1[445u32] r1[446u32] r1[447u32] r1[448u32] r1[449u32] r1[450u32] r1[451u32] r1[452u32] r1[453u32] r1[454u32] r1[455u32] r1[456u32] r1[457u32] r1[458u32] r1[459u32] r1[460u32] r1[461u32] r1[462u32] r1[463u32] r1[464u32] r1[465u32] r1[466u32] r1[467u32] r1[468u32] r1[469u32] r1[470u32] r1[471u32] r1[472u32] r1[473u32] r1[474u32] r1[475u32] r1[476u32] r1[477u32] r1[478u32] r1[479u32] into r26 as [u8; 512u32];\n hash.keccak256.native.raw r26 into r27 as [boolean; 256u32];\n deserialize.bits.raw r27 ([boolean; 256u32]) into r28 ([u8; 32u32]);\n cast 25u8 69u8 116u8 104u8 101u8 114u8 101u8 117u8 109u8 32u8 83u8 105u8 103u8 110u8 101u8 100u8 32u8 77u8 101u8 115u8 115u8 97u8 103u8 101u8 58u8 10u8 51u8 50u8 r28[0u32] r28[1u32] r28[2u32] r28[3u32] r28[4u32] r28[5u32] r28[6u32] r28[7u32] r28[8u32] r28[9u32] r28[10u32] r28[11u32] r28[12u32] r28[13u32] r28[14u32] r28[15u32] r28[16u32] r28[17u32] r28[18u32] r28[19u32] r28[20u32] r28[21u32] r28[22u32] r28[23u32] r28[24u32] r28[25u32] r28[26u32] r28[27u32] r28[28u32] r28[29u32] r28[30u32] r28[31u32] into r29 as [u8; 60u32];\n hash.keccak256.native.raw r29 into r30 as [boolean; 256u32];\n deserialize.bits.raw r30 ([boolean; 256u32]) into r31 ([u8; 32u32]);\n ecdsa.verify.digest.eth r2 r0 r31 into r32;\n assert.eq r32 true;\n cast r0 r12 into r33 as StorageLocationKey;\n add r12 1u8 into r34;\n set true into replay_protection[r8];\n set r1 into storage_locations[r33];\n set r34 into storage_sequences[r11];\n\nconstructor:\n assert.eq edition 0u16;\n";
|
|
11
|
+
export type AleoProgram = 'credits' | 'dispatch_proxy' | 'hook_manager' | 'hyp_collateral' | 'hyp_native' | 'hyp_synthetic' | 'ism_manager' | 'mailbox' | 'token_registry' | 'validator_announce';
|
|
12
|
+
export declare const programRegistry: Record<AleoProgram, string>;
|
|
13
|
+
//# sourceMappingURL=artifacts.d.ts.map
|