#pragma version 6 intcblock 0 1 2 127 133 100000 128 255 bytecblock 0x 0x636f72656964 0x436861696e 0x6e6174697665 0x7075626c6973684d657373616765 0x6e6f70 0x766572696679564141 0x0008 0x76616c6964557064617465417070726f766548617368 0x414c474f 0x636f726541646472 txn ApplicationID intc_0 // 0 == bnz main_l80 txn OnCompletion pushint 4 // UpdateApplication == bnz main_l79 txn OnCompletion pushint 5 // DeleteApplication == bnz main_l78 txn OnCompletion intc_1 // OptIn == bnz main_l77 txn OnCompletion intc_0 // NoOp == bnz main_l6 err main_l6: txna ApplicationArgs 0 bytec 5 // "nop" == bnz main_l76 txna ApplicationArgs 0 pushbytes 0x72656365697665417474657374 // "receiveAttest" == bnz main_l69 txna ApplicationArgs 0 pushbytes 0x617474657374546f6b656e // "attestToken" == bnz main_l57 txna ApplicationArgs 0 pushbytes 0x636f6d706c6574655472616e73666572 // "completeTransfer" == bnz main_l41 txna ApplicationArgs 0 pushbytes 0x73656e645472616e73666572 // "sendTransfer" == bnz main_l21 txna ApplicationArgs 0 pushbytes 0x6f7074696e // "optin" == bnz main_l20 txna ApplicationArgs 0 pushbytes 0x676f7665726e616e6365 // "governance" == bnz main_l14 err main_l14: callsub checkForDuplicate_21 callsub governanceSet_7 store 70 txna ApplicationArgs 1 extract 1 4 btoi load 70 == pushint 232 // 232 && assert txna ApplicationArgs 1 extract 5 1 btoi pushint 66 // 66 * pushint 14 // 14 + store 65 txn GroupIndex intc_1 // 1 - store 71 load 71 gtxns TypeEnum pushint 6 // appl == load 71 gtxns ApplicationID bytec_1 // "coreid" app_global_get == && load 71 gtxnsa ApplicationArgs 0 bytec 6 // "verifyVAA" == && load 71 gtxns Sender txn Sender == && load 71 gtxnsa ApplicationArgs 1 txna ApplicationArgs 1 == && load 71 gtxnsa Accounts 0 txna Accounts 0 == && load 71 gtxnsa Accounts 1 txna Accounts 1 == && load 71 gtxnsa Accounts 2 txna Accounts 2 == && txna ApplicationArgs 1 load 65 intc_2 // 2 extract3 pushbytes 0x0001 // 0x0001 == && txna ApplicationArgs 1 load 65 intc_2 // 2 + pushint 32 // 32 extract3 pushint 31 // 31 bzero pushbytes 0x04 // 0x04 concat == && pushint 239 // 239 && assert load 71 gtxns RekeyTo global ZeroAddress == load 71 gtxns CloseRemainderTo global ZeroAddress == && load 71 gtxns AssetCloseTo global ZeroAddress == && pushint 89 // 89 && assert txn RekeyTo global ZeroAddress == txn CloseRemainderTo global ZeroAddress == && txn AssetCloseTo global ZeroAddress == && pushint 89 // 89 && assert txna ApplicationArgs 1 load 65 pushint 43 // 43 + pushint 32 // 32 extract3 pushint 21 // 21 bzero pushbytes 0x546f6b656e427269646765 // 0x546f6b656e427269646765 concat == pushint 263 // 263 && assert txna ApplicationArgs 1 load 65 pushint 75 // 75 + intc_1 // 1 extract3 btoi store 66 load 65 pushint 76 // 76 + store 65 load 66 intc_1 // 1 == bnz main_l19 load 66 intc_2 // 2 == bnz main_l17 err main_l17: txna ApplicationArgs 1 load 65 intc_2 // 2 extract3 bytec 7 // 0x0008 == pushint 282 // 282 && assert bytec 8 // "validUpdateApproveHash" txna ApplicationArgs 1 load 65 intc_2 // 2 + pushint 32 // 32 extract3 app_global_put main_l18: intc_1 // 1 return main_l19: txna ApplicationArgs 1 load 65 intc_2 // 2 extract3 btoi store 67 load 67 intc_0 // 0 == load 67 pushint 8 // 8 == || pushint 271 // 271 && assert txna ApplicationArgs 1 load 65 intc_2 // 2 + intc_2 // 2 extract3 store 68 txna ApplicationArgs 1 load 65 pushint 4 // 4 + pushint 32 // 32 extract3 store 69 bytec_2 // "Chain" load 68 concat app_global_get intc_0 // 0 == pushint 277 // 277 && assert bytec_2 // "Chain" load 68 concat load 69 app_global_put b main_l18 main_l20: txna Accounts 1 txna ApplicationArgs 1 btoi bytec_3 // "native" callsub getsigaddress_15 == pushint 800 // 800 && assert txn RekeyTo global ZeroAddress == txn CloseRemainderTo global ZeroAddress == && txn AssetCloseTo global ZeroAddress == && pushint 89 // 89 && assert itxn_begin txna Accounts 1 itxn_field Sender pushint 4 // axfer itxn_field TypeEnum txna ApplicationArgs 1 btoi itxn_field XferAsset intc_0 // 0 itxn_field AssetAmount txna Accounts 1 itxn_field AssetReceiver intc_0 // 0 itxn_field Fee itxn_submit intc_1 // 1 return main_l21: callsub getMessageFee_8 store 23 pushint 32 // 32 bzero store 62 txna ApplicationArgs 1 btoi store 55 txna ApplicationArgs 5 btoi store 64 intc_2 // 2 callsub checkFeePmt_10 txn GroupIndex intc_1 // 1 - store 22 load 55 intc_0 // 0 == bnz main_l40 load 22 gtxns TypeEnum pushint 4 // axfer == load 22 gtxns Sender txn Sender == && load 22 gtxns XferAsset load 55 == && load 22 gtxns AssetReceiver txna Accounts 2 == && pushint 693 // 693 && assert load 22 gtxns RekeyTo global ZeroAddress == load 22 gtxns CloseRemainderTo global ZeroAddress == && load 22 gtxns AssetCloseTo global ZeroAddress == && pushint 89 // 89 && assert load 22 gtxns AssetAmount store 56 load 64 load 56 <= pushint 706 // 706 && assert load 56 load 64 - store 56 load 55 callsub extractdecimal_20 btoi callsub getFactor_14 store 63 load 63 intc_1 // 1 != bnz main_l39 main_l23: load 56 intc_0 // 0 > load 64 intc_0 // 0 >= && pushint 722 // 722 && assert load 55 intc_0 // 0 != bnz main_l38 bytec_0 // "" store 59 main_l25: load 59 global CurrentApplicationAddress == bnz main_l37 txna Accounts 2 load 55 bytec_3 // "native" callsub getsigaddress_15 == pushint 746 // 746 && assert bytec 7 // 0x0008 store 61 txna ApplicationArgs 1 store 60 main_l27: load 60 len pushint 32 // 32 <= load 61 len intc_2 // 2 == && txna ApplicationArgs 3 len pushint 32 // 32 <= && pushint 753 // 753 && assert txn NumAppArgs pushint 6 // 6 == bnz main_l36 pushbytes 0x03 // 0x03 main_l29: load 62 extract 0 24 concat load 56 itob concat load 62 intc_0 // 0 pushint 32 // 32 load 60 len - extract3 concat load 60 concat load 61 concat load 62 intc_0 // 0 pushint 32 // 32 txna ApplicationArgs 3 len - extract3 concat txna ApplicationArgs 3 concat txna ApplicationArgs 4 extract 6 2 concat load 62 extract 0 24 concat load 64 itob concat txn NumAppArgs pushint 7 // 7 == bnz main_l35 bytec_0 // "" main_l31: concat store 57 txn NumAppArgs pushint 7 // 7 == bnz main_l34 load 57 len intc 4 // 133 == pushint 779 // 779 && assert main_l33: itxn_begin callsub sendMfee_11 pushint 6 // appl itxn_field TypeEnum bytec_1 // "coreid" app_global_get itxn_field ApplicationID bytec 4 // "publishMessage" itxn_field ApplicationArgs load 57 itxn_field ApplicationArgs intc_0 // 0 itob itxn_field ApplicationArgs txna Accounts 1 itxn_field Accounts bytec 4 // "publishMessage" itxn_field Note intc_0 // 0 itxn_field Fee itxn_submit intc_1 // 1 return main_l34: load 57 len intc 4 // 133 txna ApplicationArgs 6 len + == pushint 778 // 778 && assert b main_l33 main_l35: txna ApplicationArgs 6 b main_l31 main_l36: pushbytes 0x01 // 0x01 b main_l29 main_l37: intc_2 // 2 intc_0 // 0 pushint 8 // 8 callsub read_4 store 58 txna ApplicationArgs 1 load 58 == pushint 735 // 735 && assert intc_2 // 2 pushint 60 // 60 pushint 92 // 92 callsub read_4 store 60 intc_2 // 2 pushint 92 // 92 pushint 94 // 94 callsub read_4 store 61 txna Accounts 2 load 61 btoi load 60 callsub getsigaddress_15 == pushint 742 // 742 && assert b main_l27 main_l38: load 55 callsub extractcreator_18 callsub authaddr_16 store 59 b main_l25 main_l39: load 56 load 63 / store 56 load 64 load 63 / store 64 b main_l23 main_l40: load 22 gtxns TypeEnum intc_1 // pay == load 22 gtxns Sender txn Sender == && load 22 gtxns Receiver txna Accounts 2 == && pushint 678 // 678 && assert load 22 gtxns RekeyTo global ZeroAddress == load 22 gtxns CloseRemainderTo global ZeroAddress == && load 22 gtxns AssetCloseTo global ZeroAddress == && pushint 89 // 89 && assert load 22 gtxns Amount store 56 load 64 load 56 < pushint 688 // 688 && assert load 56 load 64 - store 56 b main_l23 main_l41: callsub checkForDuplicate_21 pushint 32 // 32 bzero store 53 txn GroupIndex intc_1 // 1 - store 22 load 22 gtxns TypeEnum pushint 6 // appl == load 22 gtxns ApplicationID bytec_1 // "coreid" app_global_get == && load 22 gtxnsa ApplicationArgs 0 bytec 6 // "verifyVAA" == && load 22 gtxns Sender txn Sender == && load 22 gtxnsa ApplicationArgs 1 txna ApplicationArgs 1 == && load 22 gtxnsa Accounts 0 txna Accounts 0 == && load 22 gtxnsa Accounts 1 txna Accounts 1 == && load 22 gtxnsa Accounts 2 txna Accounts 2 == && pushint 464 // 464 && assert load 22 gtxns RekeyTo global ZeroAddress == load 22 gtxns CloseRemainderTo global ZeroAddress == && load 22 gtxns AssetCloseTo global ZeroAddress == && pushint 89 // 89 && assert txn RekeyTo global ZeroAddress == txn CloseRemainderTo global ZeroAddress == && txn AssetCloseTo global ZeroAddress == && pushint 89 // 89 && assert txna ApplicationArgs 1 extract 5 1 btoi pushint 66 // 66 * pushint 6 // 6 + pushint 8 // 8 + store 42 txna ApplicationArgs 1 load 42 intc_2 // 2 extract3 btoi store 43 txna ApplicationArgs 1 load 42 intc_2 // 2 + pushint 32 // 32 extract3 store 44 load 43 pushint 8 // 8 == bnz main_l56 bytec_2 // "Chain" txna ApplicationArgs 1 load 42 intc_2 // 2 extract3 concat app_global_get load 44 == pushint 491 // 491 && assert main_l43: load 42 pushint 43 // 43 + store 42 txna ApplicationArgs 1 load 42 intc_1 // 1 extract3 btoi store 54 load 54 intc_1 // 1 == load 54 pushint 3 // 3 == || pushint 498 // 498 && assert txna ApplicationArgs 1 load 42 intc_1 // 1 + pushint 24 // 24 extract3 load 53 extract 0 24 == pushint 500 // 500 && assert txna ApplicationArgs 1 load 42 pushint 25 // 25 + pushint 8 // 8 extract3 btoi store 45 txna ApplicationArgs 1 load 42 pushint 33 // 33 + pushint 32 // 32 extract3 store 46 txna ApplicationArgs 1 load 42 pushint 65 // 65 + intc_2 // 2 extract3 btoi store 47 txna ApplicationArgs 1 load 42 pushint 67 // 67 + pushint 32 // 32 extract3 store 48 txna ApplicationArgs 1 load 42 pushint 99 // 99 + intc_2 // 2 extract3 btoi store 49 txna ApplicationArgs 1 load 42 pushint 101 // 101 + pushint 24 // 24 extract3 load 53 extract 0 24 == pushint 508 // 508 && assert txna ApplicationArgs 1 load 42 pushint 125 // 125 + pushint 8 // 8 extract3 btoi store 50 load 49 pushint 8 // 8 == pushint 512 // 512 && assert load 50 load 45 <= pushint 514 // 514 && assert load 54 pushint 3 // 3 == bnz main_l55 main_l44: load 47 pushint 8 // 8 == bnz main_l49 pushint 3 // 3 intc_0 // 0 pushint 8 // 8 callsub read_4 btoi store 51 load 51 intc_0 // 0 != txna Accounts 3 load 47 load 46 callsub getsigaddress_15 == && pushint 577 // 577 && assert main_l46: itxn_begin txna Accounts 3 itxn_field Sender pushint 4 // axfer itxn_field TypeEnum load 51 itxn_field XferAsset load 45 itxn_field AssetAmount load 48 itxn_field AssetReceiver intc_0 // 0 itxn_field Fee load 50 intc_0 // 0 > bnz main_l48 main_l47: itxn_submit intc_1 // 1 return main_l48: itxn_next txna Accounts 3 itxn_field Sender pushint 4 // axfer itxn_field TypeEnum load 51 itxn_field XferAsset load 50 itxn_field AssetAmount txn Sender itxn_field AssetReceiver intc_0 // 0 itxn_field Fee b main_l47 main_l49: load 46 extract 24 8 btoi store 51 txna Accounts 3 load 51 bytec_3 // "native" callsub getsigaddress_15 == pushint 529 // 529 && assert load 51 intc_0 // 0 == bnz main_l52 load 51 callsub extractdecimal_20 btoi callsub getFactor_14 store 52 load 52 intc_1 // 1 != bz main_l46 load 45 load 52 * store 45 load 50 load 52 * store 50 b main_l46 main_l52: itxn_begin txna Accounts 3 itxn_field Sender intc_1 // pay itxn_field TypeEnum load 48 itxn_field Receiver load 45 itxn_field Amount intc_0 // 0 itxn_field Fee load 50 intc_0 // 0 > bnz main_l54 main_l53: itxn_submit intc_1 // 1 return main_l54: itxn_next txna Accounts 3 itxn_field Sender intc_1 // pay itxn_field TypeEnum txn Sender itxn_field Receiver load 50 itxn_field Amount intc_0 // 0 itxn_field Fee b main_l53 main_l55: txn GroupIndex intc_1 // 1 + store 22 load 22 gtxns TypeEnum pushint 6 // appl == load 22 gtxnsa ApplicationArgs 0 txna ApplicationArgs 0 == && load 22 gtxnsa ApplicationArgs 1 txna ApplicationArgs 1 == && pushint 518 // 518 && assert callsub getNextAddress_9 load 48 == pushint 523 // 523 && assert b main_l44 main_l56: global CurrentApplicationAddress load 44 == pushint 490 // 490 && assert b main_l43 main_l57: callsub getMessageFee_8 store 23 intc_1 // 1 callsub checkFeePmt_10 txna ApplicationArgs 1 btoi store 39 load 39 intc_0 // 0 != bnz main_l68 intc_0 // 0 main_l59: bnz main_l67 txna Accounts 2 load 39 bytec_3 // "native" callsub getsigaddress_15 == pushint 862 // 862 && assert pushint 32 // 32 bzero store 35 txna ApplicationArgs 1 btoi store 39 load 39 intc_0 // 0 == bnz main_l66 load 39 callsub extractdecimal_20 store 36 load 36 btoi pushint 8 // 8 > bnz main_l65 main_l62: load 39 callsub extractunitname_19 store 37 load 39 callsub extractname_17 store 38 main_l63: pushbytes 0x02 // 0x02 load 35 extract 0 24 concat load 39 itob concat bytec 7 // 0x0008 concat load 36 concat load 37 concat load 35 intc_0 // 0 pushint 32 // 32 load 37 len - extract3 concat load 38 concat load 35 intc_0 // 0 pushint 32 // 32 load 38 len - extract3 concat store 34 main_l64: load 34 len pushint 100 // 100 == pushint 904 // 904 && assert itxn_begin callsub sendMfee_11 pushint 6 // appl itxn_field TypeEnum bytec_1 // "coreid" app_global_get itxn_field ApplicationID bytec 4 // "publishMessage" itxn_field ApplicationArgs load 34 itxn_field ApplicationArgs intc_0 // 0 itob itxn_field ApplicationArgs txna Accounts 1 itxn_field Accounts bytec 4 // "publishMessage" itxn_field Note intc_0 // 0 itxn_field Fee itxn_submit intc_1 // 1 return main_l65: pushbytes 0x08 // 0x08 store 36 b main_l62 main_l66: pushbytes 0x06 // 0x06 store 36 bytec 9 // "ALGO" store 37 bytec 9 // "ALGO" store 38 b main_l63 main_l67: intc_2 // 2 intc_0 // 0 pushint 8 // 8 callsub read_4 store 33 txna ApplicationArgs 1 load 33 == pushint 845 // 845 && assert intc_2 // 2 pushint 60 // 60 pushint 92 // 92 callsub read_4 store 40 intc_2 // 2 pushint 92 // 92 pushint 94 // 94 callsub read_4 btoi store 41 txna Accounts 2 load 41 load 40 callsub getsigaddress_15 == pushint 852 // 852 && assert load 39 callsub extractdecimal_20 btoi pushint 8 // 8 <= pushint 855 // 855 && assert intc_2 // 2 pushint 8 // 8 pushint 108 // 108 callsub read_4 store 34 b main_l64 main_l68: load 39 callsub extractcreator_18 callsub authaddr_16 global CurrentApplicationAddress == b main_l59 main_l69: callsub checkForDuplicate_21 txn GroupIndex pushint 4 // 4 - store 22 load 22 gtxns TypeEnum pushint 6 // appl == load 22 gtxns ApplicationID bytec_1 // "coreid" app_global_get == && load 22 gtxnsa ApplicationArgs 0 bytec 6 // "verifyVAA" == && load 22 gtxns Sender txn Sender == && load 22 gtxnsa ApplicationArgs 1 txna ApplicationArgs 1 == && load 22 gtxnsa Accounts 0 txna Accounts 0 == && load 22 gtxnsa Accounts 1 txna Accounts 1 == && load 22 gtxnsa Accounts 2 txna Accounts 2 == && pushint 310 // 310 && assert load 22 gtxns RekeyTo global ZeroAddress == load 22 gtxns CloseRemainderTo global ZeroAddress == && load 22 gtxns AssetCloseTo global ZeroAddress == && pushint 89 // 89 && assert txn GroupIndex pushint 3 // 3 - store 22 load 22 gtxns TypeEnum intc_1 // pay == load 22 gtxns Amount intc 5 // 100000 >= && load 22 gtxns Sender txn Sender == && load 22 gtxns Receiver txna Accounts 3 == && pushint 328 // 328 && assert load 22 gtxns RekeyTo global ZeroAddress == load 22 gtxns CloseRemainderTo global ZeroAddress == && load 22 gtxns AssetCloseTo global ZeroAddress == && pushint 89 // 89 && assert txn GroupIndex intc_2 // 2 - store 22 load 22 gtxns TypeEnum pushint 6 // appl == load 22 gtxns ApplicationID global CurrentApplicationID == && load 22 gtxnsa ApplicationArgs 0 bytec 5 // "nop" == && load 22 gtxns Sender txn Sender == && pushint 338 // 338 && assert load 22 gtxns RekeyTo global ZeroAddress == load 22 gtxns CloseRemainderTo global ZeroAddress == && load 22 gtxns AssetCloseTo global ZeroAddress == && pushint 89 // 89 && assert txn GroupIndex intc_1 // 1 - store 22 load 22 gtxns TypeEnum pushint 6 // appl == load 22 gtxns ApplicationID global CurrentApplicationID == && load 22 gtxnsa ApplicationArgs 0 bytec 5 // "nop" == && load 22 gtxns Sender txn Sender == && global GroupSize intc_1 // 1 - txn GroupIndex == && pushint 348 // 348 && assert load 22 gtxns RekeyTo global ZeroAddress == load 22 gtxns CloseRemainderTo global ZeroAddress == && load 22 gtxns AssetCloseTo global ZeroAddress == && pushint 89 // 89 && assert txna ApplicationArgs 1 extract 5 1 btoi pushint 66 // 66 * pushint 6 // 6 + pushint 8 // 8 + store 24 txna ApplicationArgs 1 load 24 intc_2 // 2 extract3 btoi store 26 bytec_2 // "Chain" txna ApplicationArgs 1 load 24 intc_2 // 2 extract3 concat app_global_get txna ApplicationArgs 1 load 24 intc_2 // 2 + pushint 32 // 32 extract3 == pushint 362 // 362 && assert load 24 pushint 43 // 43 + store 24 intc_2 // 2 txna ApplicationArgs 1 load 24 intc_1 // 1 extract3 btoi == pushint 367 // 367 && assert txna ApplicationArgs 1 load 24 intc_1 // 1 + pushint 32 // 32 extract3 store 25 txna ApplicationArgs 1 load 24 pushint 33 // 33 + intc_2 // 2 extract3 btoi store 27 txna ApplicationArgs 1 load 24 pushint 35 // 35 + intc_1 // 1 extract3 btoi store 28 txna ApplicationArgs 1 load 24 pushint 36 // 36 + pushint 32 // 32 extract3 store 29 txna ApplicationArgs 1 load 24 pushint 68 // 68 + pushint 32 // 32 extract3 store 30 load 29 callsub trimbytes_13 store 29 load 29 len pushint 7 // 7 > bnz main_l75 main_l70: load 30 callsub trimbytes_13 store 30 load 28 pushint 8 // 8 > bnz main_l74 main_l71: txna Accounts 3 load 27 load 25 callsub getsigaddress_15 == pushint 392 // 392 && assert pushint 3 // 3 intc_0 // 0 pushint 8 // 8 callsub read_4 store 31 txna ApplicationArgs 1 extract 5 1 btoi pushint 66 // 66 * pushint 6 // 6 + store 24 load 31 intc_0 // 0 itob == bnz main_l73 main_l72: txna ApplicationArgs 1 store 32 pushint 3 // 3 pushint 8 // 8 load 32 load 24 load 32 len load 24 - extract3 callsub write_6 pop intc_1 // 1 return main_l73: itxn_begin txna Accounts 3 itxn_field Sender pushint 3 // acfg itxn_field TypeEnum load 30 itxn_field ConfigAssetName load 29 itxn_field ConfigAssetUnitName pushint 18446744073709551614 // 18446744073709551614 itxn_field ConfigAssetTotal load 28 itxn_field ConfigAssetDecimals global CurrentApplicationAddress itxn_field ConfigAssetManager global CurrentApplicationAddress itxn_field ConfigAssetReserve global ZeroAddress itxn_field ConfigAssetFreeze global ZeroAddress itxn_field ConfigAssetClawback intc_0 // 0 itxn_field Fee itxn_submit itxn CreatedAssetID itob store 31 pushint 3 // 3 intc_0 // 0 load 31 callsub write_6 pop pushint 3 // 3 pushbytes 0x6173736574 // "asset" callsub meta_5 b main_l72 main_l74: pushint 8 // 8 store 28 b main_l71 main_l75: load 29 extract 0 7 store 29 b main_l70 main_l76: intc_1 // 1 return main_l77: callsub optin_22 return main_l78: intc_0 // 0 return main_l79: txn Sender global CreatorAddress == return main_l80: bytec_1 // "coreid" txna ApplicationArgs 0 btoi app_global_put bytec 10 // "coreAddr" txna ApplicationArgs 1 app_global_put bytec 8 // "validUpdateApproveHash" bytec_0 // "" app_global_put pushbytes 0x76616c6964557064617465436c65617248617368 // "validUpdateClearHash" pushbytes 0x73be5fd7cd378289177bf4a7ca5433ab30d91b417381bba8bd704aff2dec424f // 0x73be5fd7cd378289177bf4a7ca5433ab30d91b417381bba8bd704aff2dec424f app_global_put intc_1 // 1 return // intkey intkey_0: itob extract 7 1 retsub // zero zero_1: store 17 intc_0 // 0 store 18 zero_1_l1: load 18 pushint 15 // 15 < bz zero_1_l3 load 17 load 18 callsub intkey_0 intc_3 // 127 bzero app_local_put load 18 intc_1 // 1 + store 18 b zero_1_l1 zero_1_l3: retsub // get_byte getbyte_2: store 0 load 0 intc_3 // 127 / callsub intkey_0 app_local_get load 0 intc_3 // 127 % getbyte retsub // set_byte setbyte_3: store 21 store 20 store 19 load 19 load 20 intc_3 // 127 / callsub intkey_0 load 19 load 20 intc_3 // 127 / callsub intkey_0 app_local_get load 20 intc_3 // 127 % load 21 setbyte app_local_put retsub // read read_4: store 3 store 2 store 1 bytec_0 // "" store 5 load 2 intc_3 // 127 / store 4 read_4_l1: load 4 load 3 intc_3 // 127 / <= bz read_4_l9 load 4 load 2 intc_3 // 127 / == bnz read_4_l8 intc_0 // 0 read_4_l4: store 6 load 4 load 3 intc_3 // 127 / == bnz read_4_l7 intc_3 // 127 read_4_l6: store 7 load 5 load 1 load 4 callsub intkey_0 app_local_get load 6 load 7 substring3 concat store 5 load 4 intc_1 // 1 + store 4 b read_4_l1 read_4_l7: load 3 intc_3 // 127 % b read_4_l6 read_4_l8: load 2 intc_3 // 127 % b read_4_l4 read_4_l9: load 5 retsub // meta meta_5: store 8 pushbytes 0x6d657461 // "meta" load 8 app_local_put retsub // write write_6: store 11 store 10 store 9 intc_0 // 0 store 15 load 10 intc_3 // 127 / store 12 write_6_l1: load 12 load 10 load 11 len + intc_3 // 127 / <= bz write_6_l12 load 12 load 10 intc_3 // 127 / == bnz write_6_l11 intc_0 // 0 write_6_l4: store 13 load 12 load 10 load 11 len + intc_3 // 127 / == bnz write_6_l10 intc_3 // 127 write_6_l6: store 14 load 9 load 12 callsub intkey_0 load 14 intc_3 // 127 != load 13 intc_0 // 0 != || bnz write_6_l9 intc_3 // 127 store 16 load 11 load 15 intc_3 // 127 extract3 write_6_l8: app_local_put load 15 load 16 + store 15 load 12 intc_1 // 1 + store 12 b write_6_l1 write_6_l9: load 14 load 13 - store 16 load 9 load 12 callsub intkey_0 app_local_get intc_0 // 0 load 13 substring3 load 11 load 15 load 16 extract3 concat load 9 load 12 callsub intkey_0 app_local_get load 14 intc_3 // 127 substring3 concat b write_6_l8 write_6_l10: load 10 load 11 len + intc_3 // 127 % b write_6_l6 write_6_l11: load 10 intc_3 // 127 % b write_6_l4 write_6_l12: load 15 retsub // governanceSet governanceSet_7: bytec_1 // "coreid" app_global_get pushbytes 0x63757272656e74477561726469616e536574496e646578 // "currentGuardianSetIndex" app_global_get_ex store 73 store 72 load 73 pushint 76 // 76 && assert load 72 retsub // getMessageFee getMessageFee_8: bytec_1 // "coreid" app_global_get pushbytes 0x4d657373616765466565 // "MessageFee" app_global_get_ex store 75 store 74 load 75 pushint 81 // 81 && assert load 74 retsub // getNextAddress getNextAddress_9: txn GroupIndex intc_1 // 1 + gtxns ApplicationID app_params_get AppAddress store 77 store 76 load 77 pushint 86 // 86 && assert load 76 retsub // checkFeePmt checkFeePmt_10: store 78 load 23 intc_0 // 0 > bz checkFeePmt_10_l2 txn GroupIndex load 78 - store 22 load 22 gtxns TypeEnum intc_1 // pay == load 22 gtxns Sender txn Sender == && load 22 gtxns Receiver global CurrentApplicationAddress == && load 22 gtxns Amount load 23 >= && pushint 100 // 100 && assert load 22 gtxns RekeyTo global ZeroAddress == load 22 gtxns CloseRemainderTo global ZeroAddress == && load 22 gtxns AssetCloseTo global ZeroAddress == && pushint 89 // 89 && assert checkFeePmt_10_l2: retsub // sendMfee sendMfee_11: load 23 intc_0 // 0 > bz sendMfee_11_l2 intc_1 // pay itxn_field TypeEnum bytec 10 // "coreAddr" app_global_get itxn_field Receiver load 23 itxn_field Amount intc_0 // 0 itxn_field Fee itxn_next sendMfee_11_l2: retsub // encode_uvarint encodeuvarint_12: store 87 store 86 load 87 load 86 intc 6 // 128 >= bnz encodeuvarint_12_l2 load 86 intc 7 // 255 & itob extract 7 1 b encodeuvarint_12_l3 encodeuvarint_12_l2: load 86 pushint 7 // 7 shr load 86 intc 7 // 255 & intc 6 // 128 | itob extract 7 1 load 86 load 87 uncover 3 uncover 3 callsub encodeuvarint_12 cover 2 store 87 store 86 encodeuvarint_12_l3: concat retsub // trim_bytes trimbytes_13: store 82 load 82 len store 79 intc_1 // 1 bzero store 81 intc_0 // 0 store 80 trimbytes_13_l1: load 80 load 79 < bz trimbytes_13_l5 load 82 load 80 intc_1 // 1 extract3 load 81 == bnz trimbytes_13_l4 trimbytes_13_l3: load 80 intc_1 // 1 + store 80 b trimbytes_13_l1 trimbytes_13_l4: load 82 intc_0 // 0 load 80 extract3 store 82 load 79 store 80 b trimbytes_13_l3 trimbytes_13_l5: load 82 retsub // getFactor getFactor_14: store 83 load 83 pushint 9 // 9 == bnz getFactor_14_l20 load 83 pushint 10 // 10 == bnz getFactor_14_l19 load 83 pushint 11 // 11 == bnz getFactor_14_l18 load 83 pushint 12 // 12 == bnz getFactor_14_l17 load 83 pushint 13 // 13 == bnz getFactor_14_l16 load 83 pushint 14 // 14 == bnz getFactor_14_l15 load 83 pushint 15 // 15 == bnz getFactor_14_l14 load 83 pushint 16 // 16 == bnz getFactor_14_l13 load 83 pushint 16 // 16 > bnz getFactor_14_l12 load 83 pushint 9 // 9 < bnz getFactor_14_l11 err getFactor_14_l11: intc_1 // 1 b getFactor_14_l21 getFactor_14_l12: intc_0 // 0 return intc_1 // 1 getFactor_14_l13: pushint 100000000 // 100000000 b getFactor_14_l21 getFactor_14_l14: pushint 10000000 // 10000000 b getFactor_14_l21 getFactor_14_l15: pushint 1000000 // 1000000 b getFactor_14_l21 getFactor_14_l16: intc 5 // 100000 b getFactor_14_l21 getFactor_14_l17: pushint 10000 // 10000 b getFactor_14_l21 getFactor_14_l18: pushint 1000 // 1000 b getFactor_14_l21 getFactor_14_l19: pushint 100 // 100 b getFactor_14_l21 getFactor_14_l20: pushint 10 // 10 getFactor_14_l21: retsub // get_sig_address getsigaddress_15: store 85 store 84 pushbytes 0x50726f6772616d // "Program" pushbytes 0x0620010181 // 0x0620010181 concat load 84 bytec_0 // "" callsub encodeuvarint_12 concat pushbytes 0x4880 // 0x4880 concat load 85 len bytec_0 // "" callsub encodeuvarint_12 concat load 85 concat pushbytes 0x483110810612443119221244311881 // 0x483110810612443119221244311881 concat global CurrentApplicationID bytec_0 // "" callsub encodeuvarint_12 concat pushbytes 0x1244312080 // 0x1244312080 concat global CurrentApplicationAddress len bytec_0 // "" callsub encodeuvarint_12 concat global CurrentApplicationAddress concat pushbytes 0x124431018100124431093203124431153203124422 // 0x124431018100124431093203124431153203124422 concat sha512_256 retsub // auth_addr authaddr_16: acct_params_get AcctAuthAddr store 89 store 88 load 89 bnz authaddr_16_l2 bytec_0 // "" b authaddr_16_l3 authaddr_16_l2: load 88 authaddr_16_l3: retsub // extract_name extractname_17: asset_params_get AssetName store 91 store 90 load 91 bnz extractname_17_l2 bytec_0 // "" b extractname_17_l3 extractname_17_l2: load 90 extractname_17_l3: retsub // extract_creator extractcreator_18: asset_params_get AssetCreator store 93 store 92 load 93 bnz extractcreator_18_l2 bytec_0 // "" b extractcreator_18_l3 extractcreator_18_l2: load 92 extractcreator_18_l3: retsub // extract_unit_name extractunitname_19: asset_params_get AssetUnitName store 95 store 94 load 95 bnz extractunitname_19_l2 bytec_0 // "" b extractunitname_19_l3 extractunitname_19_l2: load 94 extractunitname_19_l3: retsub // extract_decimal extractdecimal_20: asset_params_get AssetDecimals store 97 store 96 load 97 bnz extractdecimal_20_l2 pushbytes 0x00 // 0x00 b extractdecimal_20_l3 extractdecimal_20_l2: load 96 itob extract 7 1 extractdecimal_20_l3: retsub // checkForDuplicate checkForDuplicate_21: txna ApplicationArgs 1 extract 0 1 btoi intc_1 // 1 == pushint 933 // 933 && assert txna ApplicationArgs 1 extract 5 1 btoi pushint 66 // 66 * pushint 14 // 14 + store 98 txna ApplicationArgs 1 load 98 pushint 34 // 34 extract3 store 99 txna ApplicationArgs 1 load 98 pushint 34 // 34 + pushint 8 // 8 extract3 btoi store 100 load 100 pushint 15240 // 15240 / store 102 txna Accounts 1 load 102 load 99 callsub getsigaddress_15 == pushint 943 // 943 && assert load 100 pushint 8 // 8 / pushint 1905 // 1905 % store 102 intc_1 // 1 load 102 callsub getbyte_2 store 101 load 101 load 100 pushint 8 // 8 % getbit intc_0 // 0 == pushint 950 // 950 && assert intc_1 // 1 load 102 load 101 load 100 pushint 8 // 8 % intc_1 // 1 setbit callsub setbyte_3 retsub // optin optin_22: gtxn 0 TypeEnum intc_1 // pay == gtxn 0 Amount pushint 1002000 // 1002000 == && gtxn 1 TypeEnum pushint 6 // appl == && gtxn 1 OnCompletion intc_1 // OptIn == && pushint 1008 // 1008 && assert intc_0 // 0 callsub zero_1 intc_1 // 1 retsub