1+ #pragma version 10
2+ intcblock 0 1
3+ bytecblock 0x
4+
5+ // This TEAL was generated by TEALScript v0.106.0
6+ // https://github.com/algorandfoundation/TEALScript
7+
8+ // This contract is compliant with and/or implements the following ARCs: [ ARC4 ]
9+
10+ // The following ten lines of TEAL handle initial program flow
11+ // This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed
12+ // Here, action refers to the OnComplete in combination with whether the app is being created or called
13+ // Every possible action for this contract is represented in the switch statement
14+ // If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err"
15+ txn ApplicationID
16+ !
17+ pushint 6
18+ *
19+ txn OnCompletion
20+ +
21+ switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED
22+
23+ *NOT_IMPLEMENTED:
24+ // The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?
25+ err
26+
27+ // nestedArrayAlongsideBoolean()(byte[4][],uint64,uint64,uint64,bool)
28+ *abi_route_nestedArrayAlongsideBoolean:
29+ // The ABI return prefix
30+ pushbytes 0x151f7c75
31+
32+ // execute nestedArrayAlongsideBoolean()(byte[4][],uint64,uint64,uint64,bool)
33+ callsub nestedArrayAlongsideBoolean
34+ concat
35+ log
36+ intc 1 // 1
37+ return
38+
39+ // nestedArrayAlongsideBoolean(): T10
40+ nestedArrayAlongsideBoolean:
41+ proto 0 1
42+
43+ // Push empty bytes after the frame pointer to reserve space for local variables
44+ bytec 0 // 0x
45+
46+ // tests/contracts/abi.algo.ts:1703
47+ // o: T10 = {
48+ // bytes4Array: ['abcd' as bytes<4>, 'efgh' as bytes<4>],
49+ // u64a: 1,
50+ // u64b: 2,
51+ // u64c: 3,
52+ // boolValue: false,
53+ // }
54+ bytec 0 // initial head
55+ bytec 0 // initial tail
56+ pushbytes 0x001a // initial head offset
57+ pushbytes 0x00026162636465666768
58+ callsub *process_dynamic_tuple_element
59+ pushbytes 0x0000000000000001
60+ callsub *process_static_tuple_element
61+ pushbytes 0x0000000000000002
62+ callsub *process_static_tuple_element
63+ pushbytes 0x0000000000000003
64+ callsub *process_static_tuple_element
65+ pushbytes 0x00
66+ intc 0 // 0
67+ dup
68+ setbit
69+ callsub *process_static_tuple_element
70+ concat
71+ pop // pop head offset
72+ concat // concat head and tail
73+ frame_bury 0 // o: T10
74+
75+ // tests/contracts/abi.algo.ts:1711
76+ // return o;
77+ frame_dig 0 // o: T10
78+
79+ // set the subroutine return value
80+ frame_bury 0
81+ retsub
82+
83+ *abi_route_createApplication:
84+ intc 1 // 1
85+ return
86+
87+ *create_NoOp:
88+ pushbytes 0xb8447b36 // method "createApplication()void"
89+ txna ApplicationArgs 0
90+ match *abi_route_createApplication
91+
92+ // this contract does not implement the given ABI method for create NoOp
93+ err
94+
95+ *call_NoOp:
96+ pushbytes 0xc49cb9a7 // method "nestedArrayAlongsideBoolean()(byte[4][],uint64,uint64,uint64,bool)"
97+ txna ApplicationArgs 0
98+ match *abi_route_nestedArrayAlongsideBoolean
99+
100+ // this contract does not implement the given ABI method for call NoOp
101+ err
102+
103+ *process_static_tuple_element:
104+ proto 4 3
105+ frame_dig -4 // tuple head
106+ frame_dig -1 // element
107+ concat
108+ frame_dig -3 // tuple tail
109+ frame_dig -2 // head offset
110+ retsub
111+
112+ *process_dynamic_tuple_element:
113+ proto 4 3
114+ frame_dig -4 // tuple head
115+ frame_dig -2 // head offset
116+ concat
117+ frame_bury -4 // tuple head
118+ frame_dig -1 // element
119+ dup
120+ len
121+ frame_dig -2 // head offset
122+ btoi
123+ +
124+ itob
125+ extract 6 2
126+ frame_bury -2 // head offset
127+ frame_dig -3 // tuple tail
128+ swap
129+ concat
130+ frame_bury -3 // tuple tail
131+ frame_dig -4 // tuple head
132+ frame_dig -3 // tuple tail
133+ frame_dig -2 // head offset
134+ retsub
0 commit comments