The on-chain disassembly. Offsets are bytecode positions within each function.
1// Move bytecode v6
2module fd2e0f4383df3ec9106326dcd9a20510cdce72146754296deed15403fcd3df8b.service_queue {
3use 0000000000000000000000000000000000000000000000000000000000000001::vector;
4use 0000000000000000000000000000000000000000000000000000000000000002::balance;
5use 0000000000000000000000000000000000000000000000000000000000000002::coin;
6use 0000000000000000000000000000000000000000000000000000000000000002::object;
7use 0000000000000000000000000000000000000000000000000000000000000002::table;
8use 0000000000000000000000000000000000000000000000000000000000000002::table_vec;
9use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
10use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
11use fd2e0f4383df3ec9106326dcd9a20510cdce72146754296deed15403fcd3df8b::permission;
12use fd2e0f4383df3ec9106326dcd9a20510cdce72146754296deed15403fcd3df8b::switchboard;
13use 08d79f4d920b03d88faca1e421af023a87fbb1e4a6fd200248e6e9998d09e470::errors;
14use 08d79f4d920b03d88faca1e421af023a87fbb1e4a6fd200248e6e9998d09e470::utils;
15
16struct ServiceQueue<phantom Ty0> has key {
17 id: UID,
18 authority: address,
19 node_timeout: u64,
20 max_size: u64,
21 mr_enclaves: vector<vector<u8>>,
22 max_quote_verification_age: u64,
23 allow_authority_override_after: u64,
24 require_authority_heartbeat_permission: bool,
25 require_usage_permissions: bool,
26 verifier_queue_addr: address,
27 enable_content_hash: bool,
28 reward: u64,
29 curr_idx: u64,
30 gc_idx: u64,
31 node_idx: u64,
32 last_hb: u64,
33 data: TableVec<address>,
34 heartbeats: Table<address, u64>,
35 permissions: Table<address, Permission>,
36 escrows: Table<address, Balance<Ty0>>,
37 version: u64
38}
39
40public(friend) set_configs<Ty0>(Arg0: &mut ServiceQueue<Ty0>, Arg1: address, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: u64, Arg7: bool, Arg8: bool, Arg9: address) {
41B0:
420CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
431ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
442ReadRef
453Call switchboard::version(): u64
464Eq
475BrFalse(7)
48B1:
496Branch(11)
50B2:
517MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
528Pop
539Call errors::InvalidVersion(): u64
5410Abort
55B3:
5611MoveLoc[1](Arg1: address)
5712CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
5813MutBorrowFieldGeneric[1](ServiceQueue.authority: address)
5914WriteRef
6015MoveLoc[2](Arg2: u64)
6116CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
6217MutBorrowFieldGeneric[2](ServiceQueue.reward: u64)
6318WriteRef
6419MoveLoc[3](Arg3: u64)
6520CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
6621MutBorrowFieldGeneric[3](ServiceQueue.node_timeout: u64)
6722WriteRef
6823MoveLoc[4](Arg4: u64)
6924CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
7025MutBorrowFieldGeneric[4](ServiceQueue.max_size: u64)
7126WriteRef
7227MoveLoc[5](Arg5: u64)
7328CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
7429MutBorrowFieldGeneric[5](ServiceQueue.max_quote_verification_age: u64)
7530WriteRef
7631MoveLoc[6](Arg6: u64)
7732CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
7833MutBorrowFieldGeneric[6](ServiceQueue.allow_authority_override_after: u64)
7934WriteRef
8035MoveLoc[7](Arg7: bool)
8136CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
8237MutBorrowFieldGeneric[7](ServiceQueue.require_authority_heartbeat_permission: bool)
8338WriteRef
8439MoveLoc[8](Arg8: bool)
8540CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
8641MutBorrowFieldGeneric[8](ServiceQueue.require_usage_permissions: bool)
8742WriteRef
8843MoveLoc[9](Arg9: address)
8944MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
9045MutBorrowFieldGeneric[9](ServiceQueue.verifier_queue_addr: address)
9146WriteRef
9247Ret
93}
94
95public has_mr_enclave<Ty0>(Arg0: &ServiceQueue<Ty0>, Arg1: vector<u8>): bool {
96L2: loc0: u64
97B0:
980CopyLoc[0](Arg0: &ServiceQueue<Ty0>)
991ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
1002ReadRef
1013Call switchboard::version(): u64
1024Eq
1035BrFalse(7)
104B1:
1056Branch(11)
106B2:
1077MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
1088Pop
1099Call errors::InvalidVersion(): u64
11010Abort
111B3:
11211LdU64(0)
11312StLoc[2](loc0: u64)
114B4:
11513CopyLoc[2](loc0: u64)
11614CopyLoc[0](Arg0: &ServiceQueue<Ty0>)
11715ImmBorrowFieldGeneric[10](ServiceQueue.mr_enclaves: vector<vector<u8>>)
11816VecLen(28)
11917Lt
12018BrFalse(36)
121B5:
12219Branch(20)
123B6:
12420CopyLoc[0](Arg0: &ServiceQueue<Ty0>)
12521ImmBorrowFieldGeneric[10](ServiceQueue.mr_enclaves: vector<vector<u8>>)
12622CopyLoc[2](loc0: u64)
12723VecImmBorrow(28)
12824ImmBorrowLoc[1](Arg1: vector<u8>)
12925Eq
13026BrFalse(31)
131B7:
13227MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
13328Pop
13429LdTrue
13530Ret
136B8:
13731MoveLoc[2](loc0: u64)
13832LdU64(1)
13933Add
14034StLoc[2](loc0: u64)
14135Branch(13)
142B9:
14336MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
14437Pop
14538LdFalse
14639Ret
147}
148
149public(friend) add_mr_enclave<Ty0>(Arg0: &mut ServiceQueue<Ty0>, Arg1: vector<u8>) {
150B0:
1510CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
1521ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
1532ReadRef
1543Call switchboard::version(): u64
1554Eq
1565BrFalse(7)
157B1:
1586Branch(11)
159B2:
1607MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
1618Pop
1629Call errors::InvalidVersion(): u64
16310Abort
164B3:
16511MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
16612MutBorrowFieldGeneric[10](ServiceQueue.mr_enclaves: vector<vector<u8>>)
16713MoveLoc[1](Arg1: vector<u8>)
16814VecPushBack(28)
16915Ret
170}
171
172public(friend) remove_mr_enclave<Ty0>(Arg0: &mut ServiceQueue<Ty0>, Arg1: vector<u8>): bool {
173L2: loc0: u64
174B0:
1750CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
1761ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
1772ReadRef
1783Call switchboard::version(): u64
1794Eq
1805BrFalse(7)
181B1:
1826Branch(11)
183B2:
1847MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
1858Pop
1869Call errors::InvalidVersion(): u64
18710Abort
188B3:
18911LdU64(0)
19012StLoc[2](loc0: u64)
191B4:
19213CopyLoc[2](loc0: u64)
19314CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
19415ImmBorrowFieldGeneric[10](ServiceQueue.mr_enclaves: vector<vector<u8>>)
19516VecLen(28)
19617Lt
19718BrFalse(39)
198B5:
19919Branch(20)
200B6:
20120CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
20221ImmBorrowFieldGeneric[10](ServiceQueue.mr_enclaves: vector<vector<u8>>)
20322CopyLoc[2](loc0: u64)
20423VecImmBorrow(28)
20524ImmBorrowLoc[1](Arg1: vector<u8>)
20625Eq
20726BrFalse(34)
208B7:
20927MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
21028MutBorrowFieldGeneric[10](ServiceQueue.mr_enclaves: vector<vector<u8>>)
21129MoveLoc[2](loc0: u64)
21230Call vector::swap_remove<vector<u8>>(&mut vector<vector<u8>>, u64): vector<u8>
21331Pop
21432LdTrue
21533Ret
216B8:
21734MoveLoc[2](loc0: u64)
21835LdU64(1)
21936Add
22037StLoc[2](loc0: u64)
22138Branch(13)
222B9:
22339MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
22440Pop
22541LdFalse
22642Ret
227}
228
229public last_heartbeat<Ty0>(Arg0: &ServiceQueue<Ty0>): u64 {
230B0:
2310MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
2321ImmBorrowFieldGeneric[11](ServiceQueue.last_hb: u64)
2332ReadRef
2343Ret
235}
236
237public max_quote_verification_age<Ty0>(Arg0: &ServiceQueue<Ty0>): u64 {
238B0:
2390MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
2401ImmBorrowFieldGeneric[5](ServiceQueue.max_quote_verification_age: u64)
2412ReadRef
2423Ret
243}
244
245public allow_authority_override_after<Ty0>(Arg0: &ServiceQueue<Ty0>): u64 {
246B0:
2470MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
2481ImmBorrowFieldGeneric[6](ServiceQueue.allow_authority_override_after: u64)
2492ReadRef
2503Ret
251}
252
253public require_authority_heartbeat_permission<Ty0>(Arg0: &ServiceQueue<Ty0>): bool {
254B0:
2550MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
2561ImmBorrowFieldGeneric[7](ServiceQueue.require_authority_heartbeat_permission: bool)
2572ReadRef
2583Ret
259}
260
261public require_usage_permissions<Ty0>(Arg0: &ServiceQueue<Ty0>): bool {
262B0:
2630MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
2641ImmBorrowFieldGeneric[8](ServiceQueue.require_usage_permissions: bool)
2652ReadRef
2663Ret
267}
268
269public has_authority<Ty0>(Arg0: &ServiceQueue<Ty0>, Arg1: &TxContext): bool {
270B0:
2710MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
2721ImmBorrowFieldGeneric[1](ServiceQueue.authority: address)
2732ReadRef
2743MoveLoc[1](Arg1: &TxContext)
2754Call tx_context::sender(&TxContext): address
2765Eq
2776Ret
278}
279
280public reward<Ty0>(Arg0: &ServiceQueue<Ty0>): u64 {
281B0:
2820MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
2831ImmBorrowFieldGeneric[2](ServiceQueue.reward: u64)
2842ReadRef
2853Ret
286}
287
288public node_idx<Ty0>(Arg0: &ServiceQueue<Ty0>): u64 {
289B0:
2900MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
2911ImmBorrowFieldGeneric[12](ServiceQueue.node_idx: u64)
2922ReadRef
2933Ret
294}
295
296public authority<Ty0>(Arg0: &ServiceQueue<Ty0>): address {
297B0:
2980MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
2991ImmBorrowFieldGeneric[1](ServiceQueue.authority: address)
3002ReadRef
3013Ret
302}
303
304public data_len<Ty0>(Arg0: &ServiceQueue<Ty0>): u64 {
305B0:
3060MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
3071ImmBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
3082Call table_vec::length<address>(&TableVec<address>): u64
3093Ret
310}
311
312public verifier_queue_addr<Ty0>(Arg0: &ServiceQueue<Ty0>): address {
313B0:
3140MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
3151ImmBorrowFieldGeneric[9](ServiceQueue.verifier_queue_addr: address)
3162ReadRef
3173Ret
318}
319
320public service_queue_address<Ty0>(Arg0: &ServiceQueue<Ty0>): address {
321B0:
3220MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
3231ImmBorrowFieldGeneric[14](ServiceQueue.id: UID)
3242Call object::uid_to_address(&UID): address
3253Ret
326}
327
328public has<Ty0>(Arg0: &ServiceQueue<Ty0>, Arg1: address): bool {
329L2: loc0: u64
330B0:
3310LdU64(0)
3321StLoc[2](loc0: u64)
333B1:
3342CopyLoc[2](loc0: u64)
3353CopyLoc[0](Arg0: &ServiceQueue<Ty0>)
3364ImmBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
3375Call table_vec::length<address>(&TableVec<address>): u64
3386Lt
3397BrFalse(25)
340B2:
3418Branch(9)
342B3:
3439CopyLoc[0](Arg0: &ServiceQueue<Ty0>)
34410ImmBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
34511CopyLoc[2](loc0: u64)
34612Call table_vec::borrow<address>(&TableVec<address>, u64): &address
34713ImmBorrowLoc[1](Arg1: address)
34814Eq
34915BrFalse(20)
350B4:
35116MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
35217Pop
35318LdTrue
35419Ret
355B5:
35620MoveLoc[2](loc0: u64)
35721LdU64(1)
35822Add
35923StLoc[2](loc0: u64)
36024Branch(2)
361B6:
36225MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
36326Pop
36427LdFalse
36528Ret
366}
367
368public max_size<Ty0>(Arg0: &ServiceQueue<Ty0>): u64 {
369B0:
3700MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
3711ImmBorrowFieldGeneric[4](ServiceQueue.max_size: u64)
3722ReadRef
3733Ret
374}
375
376public enable_content_hash<Ty0>(Arg0: &ServiceQueue<Ty0>): bool {
377B0:
3780MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
3791ImmBorrowFieldGeneric[15](ServiceQueue.enable_content_hash: bool)
3802ReadRef
3813Ret
382}
383
384public(friend) service_queue_create<Ty0>(Arg0: address, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: bool, Arg7: bool, Arg8: address, Arg9: bool, Arg10: &mut TxContext): ServiceQueue<Ty0> {
385L11: loc0: UID
386L12: loc1: u64
387L13: loc2: address
388L14: loc3: bool
389L15: loc4: TableVec<address>
390L16: loc5: Table<address, u64>
391L17: loc6: Table<address, Permission>
392L18: loc7: address
393L19: loc8: Table<address, Balance<Ty0>>
394L20: loc9: u64
395L21: loc10: address
396L22: loc11: u64
397L23: loc12: u64
398L24: loc13: vector<vector<u8>>
399L25: loc14: u64
400L26: loc15: u64
401L27: loc16: bool
402L28: loc17: bool
403L29: loc18: ServiceQueue<Ty0>
404B0:
4050CopyLoc[10](Arg10: &mut TxContext)
4061Call object::new(&mut TxContext): UID
4072StLoc[11](loc0: UID)
4083MoveLoc[0](Arg0: address)
4094StLoc[18](loc7: address)
4105MoveLoc[2](Arg2: u64)
4116StLoc[22](loc11: u64)
4127MoveLoc[3](Arg3: u64)
4138StLoc[23](loc12: u64)
4149VecPack(28, 0)
41510StLoc[24](loc13: vector<vector<u8>>)
41611MoveLoc[4](Arg4: u64)
41712StLoc[25](loc14: u64)
41813MoveLoc[5](Arg5: u64)
41914StLoc[26](loc15: u64)
42015MoveLoc[6](Arg6: bool)
42116StLoc[27](loc16: bool)
42217MoveLoc[7](Arg7: bool)
42318StLoc[28](loc17: bool)
42419MoveLoc[1](Arg1: u64)
42520StLoc[12](loc1: u64)
42621CopyLoc[8](Arg8: address)
42722StLoc[13](loc2: address)
42823MoveLoc[9](Arg9: bool)
42924StLoc[14](loc3: bool)
43025CopyLoc[10](Arg10: &mut TxContext)
43126Call table_vec::empty<address>(&mut TxContext): TableVec<address>
43227StLoc[15](loc4: TableVec<address>)
43328CopyLoc[10](Arg10: &mut TxContext)
43429Call table::new<address, u64>(&mut TxContext): Table<address, u64>
43530StLoc[16](loc5: Table<address, u64>)
43631CopyLoc[10](Arg10: &mut TxContext)
43732Call table::new<address, Permission>(&mut TxContext): Table<address, Permission>
43833StLoc[17](loc6: Table<address, Permission>)
43934CopyLoc[10](Arg10: &mut TxContext)
44035Call table::new<address, Balance<Ty0>>(&mut TxContext): Table<address, Balance<Ty0>>
44136StLoc[19](loc8: Table<address, Balance<Ty0>>)
44237Call switchboard::version(): u64
44338StLoc[20](loc9: u64)
44439MoveLoc[11](loc0: UID)
44540MoveLoc[18](loc7: address)
44641MoveLoc[22](loc11: u64)
44742MoveLoc[23](loc12: u64)
44843MoveLoc[24](loc13: vector<vector<u8>>)
44944MoveLoc[25](loc14: u64)
45045MoveLoc[26](loc15: u64)
45146MoveLoc[27](loc16: bool)
45247MoveLoc[28](loc17: bool)
45348MoveLoc[13](loc2: address)
45449MoveLoc[14](loc3: bool)
45550MoveLoc[12](loc1: u64)
45651LdU64(0)
45752LdU64(0)
45853LdU64(0)
45954LdU64(0)
46055MoveLoc[15](loc4: TableVec<address>)
46156MoveLoc[16](loc5: Table<address, u64>)
46257MoveLoc[17](loc6: Table<address, Permission>)
46358MoveLoc[19](loc8: Table<address, Balance<Ty0>>)
46459MoveLoc[20](loc9: u64)
46560PackGeneric[0](ServiceQueue<Ty0>)
46661StLoc[29](loc18: ServiceQueue<Ty0>)
46762CopyLoc[8](Arg8: address)
46863LdConst[0](address: 0x00..)
46964Eq
47065BrFalse(71)
471B1:
47266MoveLoc[10](Arg10: &mut TxContext)
47367FreezeRef
47468Call tx_context::sender(&TxContext): address
47569StLoc[21](loc10: address)
47670Branch(75)
477B2:
47871MoveLoc[10](Arg10: &mut TxContext)
47972Pop
48073MoveLoc[8](Arg8: address)
48174StLoc[21](loc10: address)
482B3:
48375MoveLoc[21](loc10: address)
48476MutBorrowLoc[29](loc18: ServiceQueue<Ty0>)
48577MutBorrowFieldGeneric[9](ServiceQueue.verifier_queue_addr: address)
48678WriteRef
48779MoveLoc[29](loc18: ServiceQueue<Ty0>)
48880Ret
489}
490
491public(friend) next<Ty0>(Arg0: &mut ServiceQueue<Ty0>): bool * address {
492L1: loc0: u64
493B0:
4940CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
4951ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
4962ReadRef
4973Call switchboard::version(): u64
4984Eq
4995BrFalse(7)
500B1:
5016Branch(11)
502B2:
5037MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
5048Pop
5059Call errors::InvalidVersion(): u64
50610Abort
507B3:
50811CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
50912ImmBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
51013Call table_vec::length<address>(&TableVec<address>): u64
51114LdU64(0)
51215Eq
51316BrFalse(22)
514B4:
51517MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
51618Pop
51719LdFalse
51820LdConst[0](address: 0x00..)
51921Ret
520B5:
52122CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
52223ImmBorrowFieldGeneric[16](ServiceQueue.curr_idx: u64)
52324ReadRef
52425StLoc[1](loc0: u64)
52526CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
52627ImmBorrowFieldGeneric[16](ServiceQueue.curr_idx: u64)
52728ReadRef
52829LdU64(1)
52930Add
53031CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
53132MutBorrowFieldGeneric[16](ServiceQueue.curr_idx: u64)
53233WriteRef
53334CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
53435ImmBorrowFieldGeneric[16](ServiceQueue.curr_idx: u64)
53536ReadRef
53637CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
53738ImmBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
53839Call table_vec::length<address>(&TableVec<address>): u64
53940Mod
54041CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
54142MutBorrowFieldGeneric[16](ServiceQueue.curr_idx: u64)
54243WriteRef
54344LdTrue
54445MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
54546ImmBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
54647MoveLoc[1](loc0: u64)
54748Call table_vec::borrow<address>(&TableVec<address>, u64): &address
54849ReadRef
54950Ret
550}
551
552public(friend) share_service_queue<Ty0>(Arg0: ServiceQueue<Ty0>) {
553B0:
5540MoveLoc[0](Arg0: ServiceQueue<Ty0>)
5551Call transfer::share_object<ServiceQueue<Ty0>>(ServiceQueue<Ty0>)
5562Ret
557}
558
559public(friend) next_garbage_collection_node<Ty0>(Arg0: &mut ServiceQueue<Ty0>): address * u64 {
560L1: loc0: address
561L2: loc1: u64
562B0:
5630CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
5641ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
5652ReadRef
5663Call switchboard::version(): u64
5674Eq
5685BrFalse(7)
569B1:
5706Branch(11)
571B2:
5727MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
5738Pop
5749Call errors::InvalidVersion(): u64
57510Abort
576B3:
57711CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
57812ImmBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
57913Call table_vec::length<address>(&TableVec<address>): u64
58014LdU64(1)
58115Le
58216BrFalse(22)
583B4:
58417MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
58518Pop
58619LdConst[0](address: 0x00..)
58720LdU64(0)
58821Ret
589B5:
59022CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
59123ImmBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
59224CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
59325ImmBorrowFieldGeneric[17](ServiceQueue.gc_idx: u64)
59426ReadRef
59527Call table_vec::borrow<address>(&TableVec<address>, u64): &address
59628ReadRef
59729StLoc[1](loc0: address)
59830CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
59931ImmBorrowFieldGeneric[17](ServiceQueue.gc_idx: u64)
60032ReadRef
60133StLoc[2](loc1: u64)
60234CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
60335ImmBorrowFieldGeneric[17](ServiceQueue.gc_idx: u64)
60436ReadRef
60537LdU64(1)
60638Add
60739CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
60840MutBorrowFieldGeneric[17](ServiceQueue.gc_idx: u64)
60941WriteRef
61042CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
61143ImmBorrowFieldGeneric[17](ServiceQueue.gc_idx: u64)
61244ReadRef
61345CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
61446ImmBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
61547Call table_vec::length<address>(&TableVec<address>): u64
61648Mod
61749MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
61850MutBorrowFieldGeneric[17](ServiceQueue.gc_idx: u64)
61951WriteRef
62052MoveLoc[1](loc0: address)
62153MoveLoc[2](loc1: u64)
62254Ret
623}
624
625public(friend) garbage_collect<Ty0>(Arg0: &mut ServiceQueue<Ty0>, Arg1: u64) {
626L2: loc0: u64
627B0:
6280CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
6291ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
6302ReadRef
6313Call switchboard::version(): u64
6324Eq
6335BrFalse(7)
634B1:
6356Branch(11)
636B2:
6377MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
6388Pop
6399Call errors::InvalidVersion(): u64
64010Abort
641B3:
64211CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
64312MutBorrowFieldGeneric[18](ServiceQueue.heartbeats: Table<address, u64>)
64413CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
64514ImmBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
64615CopyLoc[1](Arg1: u64)
64716Call table_vec::borrow<address>(&TableVec<address>, u64): &address
64817ReadRef
64918Call table::remove<address, u64>(&mut Table<address, u64>, address): u64
65019Pop
65120CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
65221MutBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
65322MoveLoc[1](Arg1: u64)
65423Call utils::swap_remove<address>(&mut TableVec<address>, u64)
65524CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
65625ImmBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
65726Call table_vec::length<address>(&TableVec<address>): u64
65827StLoc[2](loc0: u64)
65928CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
66029ImmBorrowFieldGeneric[16](ServiceQueue.curr_idx: u64)
66130ReadRef
66231CopyLoc[2](loc0: u64)
66332Mod
66433CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
66534MutBorrowFieldGeneric[16](ServiceQueue.curr_idx: u64)
66635WriteRef
66736CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
66837ImmBorrowFieldGeneric[17](ServiceQueue.gc_idx: u64)
66938ReadRef
67039MoveLoc[2](loc0: u64)
67140Mod
67241MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
67342MutBorrowFieldGeneric[17](ServiceQueue.gc_idx: u64)
67443WriteRef
67544Ret
676}
677
678public(friend) push_back<Ty0>(Arg0: &mut ServiceQueue<Ty0>, Arg1: address, Arg2: u64) {
679L3: loc0: &mut u64
680B0:
6810CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
6821ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
6832ReadRef
6843Call switchboard::version(): u64
6854Eq
6865BrFalse(7)
687B1:
6886Branch(11)
689B2:
6907MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
6918Pop
6929Call errors::InvalidVersion(): u64
69310Abort
694B3:
69511CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
69612ImmBorrowFieldGeneric[18](ServiceQueue.heartbeats: Table<address, u64>)
69713CopyLoc[1](Arg1: address)
69814Call table::contains<address, u64>(&Table<address, u64>, address): bool
69915BrFalse(29)
700B4:
70116CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
70217MutBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
70318CopyLoc[1](Arg1: address)
70419Call table_vec::push_back<address>(&mut TableVec<address>, address)
70520CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
70621MutBorrowFieldGeneric[18](ServiceQueue.heartbeats: Table<address, u64>)
70722MoveLoc[1](Arg1: address)
70823Call table::borrow_mut<address, u64>(&mut Table<address, u64>, address): &mut u64
70924StLoc[3](loc0: &mut u64)
71025CopyLoc[2](Arg2: u64)
71126MoveLoc[3](loc0: &mut u64)
71227WriteRef
71328Branch(34)
714B5:
71529CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
71630MutBorrowFieldGeneric[18](ServiceQueue.heartbeats: Table<address, u64>)
71731MoveLoc[1](Arg1: address)
71832CopyLoc[2](Arg2: u64)
71933Call table::add<address, u64>(&mut Table<address, u64>, address, u64)
720B6:
72134MoveLoc[2](Arg2: u64)
72235MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
72336MutBorrowFieldGeneric[11](ServiceQueue.last_hb: u64)
72437WriteRef
72538Ret
726}
727
728public(friend) increment_node_idx<Ty0>(Arg0: &mut ServiceQueue<Ty0>) {
729B0:
7300CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
7311ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
7322ReadRef
7333Call switchboard::version(): u64
7344Eq
7355BrFalse(7)
736B1:
7376Branch(11)
738B2:
7397MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
7408Pop
7419Call errors::InvalidVersion(): u64
74210Abort
743B3:
74411CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
74512ImmBorrowFieldGeneric[12](ServiceQueue.node_idx: u64)
74613ReadRef
74714LdU64(1)
74815Add
74916CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
75017ImmBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
75118Call table_vec::length<address>(&TableVec<address>): u64
75219Mod
75320MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
75421MutBorrowFieldGeneric[12](ServiceQueue.node_idx: u64)
75522WriteRef
75623Ret
757}
758
759public node_at_idx<Ty0>(Arg0: &ServiceQueue<Ty0>, Arg1: u64): address {
760B0:
7610MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
7621ImmBorrowFieldGeneric[13](ServiceQueue.data: TableVec<address>)
7632MoveLoc[1](Arg1: u64)
7643Call table_vec::borrow<address>(&TableVec<address>, u64): &address
7654ReadRef
7665Ret
767}
768
769public is_expired<Ty0>(Arg0: &ServiceQueue<Ty0>, Arg1: address, Arg2: u64): bool {
770B0:
7710MoveLoc[2](Arg2: u64)
7721CopyLoc[0](Arg0: &ServiceQueue<Ty0>)
7732ImmBorrowFieldGeneric[18](ServiceQueue.heartbeats: Table<address, u64>)
7743MoveLoc[1](Arg1: address)
7754Call table::borrow<address, u64>(&Table<address, u64>, address): &u64
7765ReadRef
7776Sub
7787MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
7798ImmBorrowFieldGeneric[3](ServiceQueue.node_timeout: u64)
7809ReadRef
78110Gt
78211Ret
783}
784
785public(friend) escrow_deposit<Ty0>(Arg0: &mut ServiceQueue<Ty0>, Arg1: address, Arg2: Coin<Ty0>) {
786L3: loc0: Balance<Ty0>
787B0:
7880CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
7891ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
7902ReadRef
7913Call switchboard::version(): u64
7924Eq
7935BrFalse(7)
794B1:
7956Branch(11)
796B2:
7977MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
7988Pop
7999Call errors::InvalidVersion(): u64
80010Abort
801B3:
80211CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
80312ImmBorrowFieldGeneric[19](ServiceQueue.escrows: Table<address, Balance<Ty0>>)
80413CopyLoc[1](Arg1: address)
80514Call table::contains<address, Balance<Ty0>>(&Table<address, Balance<Ty0>>, address): bool
80615Not
80716BrFalse(28)
808B4:
80917Call balance::zero<Ty0>(): Balance<Ty0>
81018StLoc[3](loc0: Balance<Ty0>)
81119MutBorrowLoc[3](loc0: Balance<Ty0>)
81220MoveLoc[2](Arg2: Coin<Ty0>)
81321Call coin::put<Ty0>(&mut Balance<Ty0>, Coin<Ty0>)
81422MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
81523MutBorrowFieldGeneric[19](ServiceQueue.escrows: Table<address, Balance<Ty0>>)
81624MoveLoc[1](Arg1: address)
81725MoveLoc[3](loc0: Balance<Ty0>)
81826Call table::add<address, Balance<Ty0>>(&mut Table<address, Balance<Ty0>>, address, Balance<Ty0>)
81927Branch(34)
820B5:
82128MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
82229MutBorrowFieldGeneric[19](ServiceQueue.escrows: Table<address, Balance<Ty0>>)
82330MoveLoc[1](Arg1: address)
82431Call table::borrow_mut<address, Balance<Ty0>>(&mut Table<address, Balance<Ty0>>, address): &mut Balance<Ty0>
82532MoveLoc[2](Arg2: Coin<Ty0>)
82633Call coin::put<Ty0>(&mut Balance<Ty0>, Coin<Ty0>)
827B6:
82834Ret
829}
830
831public(friend) escrow_withdraw<Ty0>(Arg0: &mut ServiceQueue<Ty0>, Arg1: address, Arg2: u64, Arg3: &mut TxContext): Coin<Ty0> {
832B0:
8330CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
8341ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
8352ReadRef
8363Call switchboard::version(): u64
8374Eq
8385BrFalse(7)
839B1:
8406Branch(13)
841B2:
8427MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
8438Pop
8449MoveLoc[3](Arg3: &mut TxContext)
84510Pop
84611Call errors::InvalidVersion(): u64
84712Abort
848B3:
84913MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
85014MutBorrowFieldGeneric[19](ServiceQueue.escrows: Table<address, Balance<Ty0>>)
85115MoveLoc[1](Arg1: address)
85216Call table::borrow_mut<address, Balance<Ty0>>(&mut Table<address, Balance<Ty0>>, address): &mut Balance<Ty0>
85317MoveLoc[2](Arg2: u64)
85418MoveLoc[3](Arg3: &mut TxContext)
85519Call coin::take<Ty0>(&mut Balance<Ty0>, u64, &mut TxContext): Coin<Ty0>
85620Ret
857}
858
859public escrow_balance<Ty0>(Arg0: &ServiceQueue<Ty0>, Arg1: address): u64 {
860L2: loc0: u64
861B0:
8620CopyLoc[0](Arg0: &ServiceQueue<Ty0>)
8631ImmBorrowFieldGeneric[19](ServiceQueue.escrows: Table<address, Balance<Ty0>>)
8642CopyLoc[1](Arg1: address)
8653Call table::contains<address, Balance<Ty0>>(&Table<address, Balance<Ty0>>, address): bool
8664Not
8675BrFalse(11)
868B1:
8696MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
8707Pop
8718LdU64(0)
8729StLoc[2](loc0: u64)
87310Branch(17)
874B2:
87511MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
87612ImmBorrowFieldGeneric[19](ServiceQueue.escrows: Table<address, Balance<Ty0>>)
87713MoveLoc[1](Arg1: address)
87814Call table::borrow<address, Balance<Ty0>>(&Table<address, Balance<Ty0>>, address): &Balance<Ty0>
87915Call balance::value<Ty0>(&Balance<Ty0>): u64
88016StLoc[2](loc0: u64)
881B3:
88217MoveLoc[2](loc0: u64)
88318Ret
884}
885
886public permission<Ty0>(Arg0: &ServiceQueue<Ty0>, Arg1: address): &Permission {
887B0:
8880MoveLoc[0](Arg0: &ServiceQueue<Ty0>)
8891ImmBorrowFieldGeneric[20](ServiceQueue.permissions: Table<address, Permission>)
8902MoveLoc[1](Arg1: address)
8913Call table::borrow<address, Permission>(&Table<address, Permission>, address): &Permission
8924Ret
893}
894
895public(friend) permission_mut<Ty0>(Arg0: &mut ServiceQueue<Ty0>, Arg1: address): &mut Permission {
896B0:
8970CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
8981ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
8992ReadRef
9003Call switchboard::version(): u64
9014Eq
9025BrFalse(7)
903B1:
9046Branch(11)
905B2:
9067MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
9078Pop
9089Call errors::InvalidVersion(): u64
90910Abort
910B3:
91111MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
91212MutBorrowFieldGeneric[20](ServiceQueue.permissions: Table<address, Permission>)
91313MoveLoc[1](Arg1: address)
91414Call table::borrow_mut<address, Permission>(&mut Table<address, Permission>, address): &mut Permission
91515Ret
916}
917
918public(friend) permission_create<Ty0>(Arg0: &mut ServiceQueue<Ty0>, Arg1: Permission) {
919B0:
9200CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
9211ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
9222ReadRef
9233Call switchboard::version(): u64
9244Eq
9255BrFalse(7)
926B1:
9276Branch(11)
928B2:
9297MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
9308Pop
9319Call errors::InvalidVersion(): u64
93210Abort
933B3:
93411MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
93512MutBorrowFieldGeneric[20](ServiceQueue.permissions: Table<address, Permission>)
93613ImmBorrowLoc[1](Arg1: Permission)
93714Call permission::key_from_permission(&Permission): address
93815MoveLoc[1](Arg1: Permission)
93916Call table::add<address, Permission>(&mut Table<address, Permission>, address, Permission)
94017Ret
941}
942
943entry migrate<Ty0>(Arg0: &mut ServiceQueue<Ty0>, Arg1: &AdminCap) {
944B0:
9450CopyLoc[0](Arg0: &mut ServiceQueue<Ty0>)
9461ImmBorrowFieldGeneric[0](ServiceQueue.version: u64)
9472ReadRef
9483Call switchboard::version(): u64
9494Lt
9505BrFalse(7)
951B1:
9526Branch(11)
953B2:
9547MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
9558Pop
9569Call errors::InvalidPackage(): u64
95710Abort
958B3:
95911Call switchboard::version(): u64
96012MoveLoc[0](Arg0: &mut ServiceQueue<Ty0>)
96113MutBorrowFieldGeneric[0](ServiceQueue.version: u64)
96214WriteRef
96315Ret
964}
965
966Constants [
967 0 => address: 0x0000000000000000000000000000000000000000000000000000000000000000
968]
969}
970