oracle_queue
Module0x8bbb…f223
- Move path
- 0xfd2e…df8b::oracle_queue
- Functions
- 2916 public, 2 entry
- Structs
- 1
- Friend modules
- aggregator_add_job_actionaggregator_escrow_deposit_actionaggregator_escrow_withdraw_actionaggregator_init_actionaggregator_open_interval_actionaggregator_remove_job_actionaggregator_save_result_actionaggregator_set_configs_actioncrank_push_actioncreate_feed_actioncreate_oracle_actionjob_init_actionoracle_escrow_withdraw_actionoracle_heartbeat_actionoracle_init_actionoracle_queue_init_actionoracle_queue_permission_init_actionoracle_queue_permission_set_actionoracle_queue_set_configs_actionoracle_set_configs_action
oracle_queue
- aggregator_add_job_action3
- aggregator_escrow_deposit_action3
- aggregator_escrow_withdraw_action3
- aggregator_fast_save_result_action2
- aggregator_init_action3
- aggregator_lock_action3
- aggregator_open_interval_action3
- aggregator_remove_job_action3
- aggregator_save_result_action4
- aggregator_set_authority_action3
- aggregator_set_configs_action3
- aggregator_utils16
- crank_push_action3
- create_and_add_job_action3
- create_feed_action1
- create_oracle_action1
- events16
- job_init_action1
- node10
- node_heartbeat_action2
- node_init_action3
- oracle26
- oracle_escrow_withdraw_action3
- oracle_heartbeat_action6
- oracle_init_action3
- oracle_queue29
- oracle_queue_init_action3
- oracle_queue_permission_init_action3
- oracle_queue_permission_set_action3
- oracle_queue_set_configs_action3
- oracle_set_configs_action3
- oracle_token_withdraw_action3
- permission11
- quote_fail_action3
- quote_force_override_action1
- quote_init_action4
- quote_update_action4
- quote_utils2
- quote_verify_action3
- service_queue35
- service_queue_add_mr_enclave_action3
- service_queue_init_action3
- service_queue_permission_init_action3
- service_queue_permission_set_action3
- service_queue_remove_mr_enclave_action3
- service_queue_send_request_action3
- service_queue_set_configs_action3
- switchboard2
Bytecode674 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v6
module fd2e0f4383df3ec9106326dcd9a20510cdce72146754296deed15403fcd3df8b.oracle_queue {
use 0000000000000000000000000000000000000000000000000000000000000002::bag;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::table;
use 0000000000000000000000000000000000000000000000000000000000000002::table_vec;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use fd2e0f4383df3ec9106326dcd9a20510cdce72146754296deed15403fcd3df8b::permission;
use fd2e0f4383df3ec9106326dcd9a20510cdce72146754296deed15403fcd3df8b::switchboard;
use 08d79f4d920b03d88faca1e421af023a87fbb1e4a6fd200248e6e9998d09e470::errors;
use 08d79f4d920b03d88faca1e421af023a87fbb1e4a6fd200248e6e9998d09e470::utils;
struct OracleQueue<phantom Ty0> has key {
id: UID,
name: vector<u8>,
authority: address,
reward: u64,
unpermissioned_feeds_enabled: bool,
oracle_timeout: u64,
lock_lease_funding: bool,
max_size: u64,
created_at: u64,
curr_idx: u64,
gc_idx: u64,
oracle_idx: u64,
verification_queue_addr: address,
allow_service_queue_heartbeats: bool,
last_hb: u64,
data: TableVec<address>,
crank_feeds: Bag,
heartbeats: Table<address, u64>,
permissions: Table<address, Permission>,
version: u64
}
public(friend) set_configs<Ty0>(Arg0: &mut OracleQueue<Ty0>, Arg1: address, Arg2: vector<u8>, Arg3: u64, Arg4: u64, Arg5: bool, Arg6: bool, Arg7: u64, Arg8: address, Arg9: bool) {
B0:
0MoveLoc[6](Arg6: bool)
1CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
2MutBorrowFieldGeneric[0](OracleQueue.lock_lease_funding: bool)
3WriteRef
4MoveLoc[7](Arg7: u64)
5CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
6MutBorrowFieldGeneric[1](OracleQueue.max_size: u64)
7WriteRef
8MoveLoc[2](Arg2: vector<u8>)
9CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
10MutBorrowFieldGeneric[2](OracleQueue.name: vector<u8>)
11WriteRef
12MoveLoc[5](Arg5: bool)
13CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
14MutBorrowFieldGeneric[3](OracleQueue.unpermissioned_feeds_enabled: bool)
15WriteRef
16MoveLoc[1](Arg1: address)
17CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
18MutBorrowFieldGeneric[4](OracleQueue.authority: address)
19WriteRef
20MoveLoc[3](Arg3: u64)
21CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
22MutBorrowFieldGeneric[5](OracleQueue.oracle_timeout: u64)
23WriteRef
24MoveLoc[4](Arg4: u64)
25CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
26MutBorrowFieldGeneric[6](OracleQueue.reward: u64)
27WriteRef
28MoveLoc[8](Arg8: address)
29CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
30MutBorrowFieldGeneric[7](OracleQueue.verification_queue_addr: address)
31WriteRef
32MoveLoc[9](Arg9: bool)
33MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
34MutBorrowFieldGeneric[8](OracleQueue.allow_service_queue_heartbeats: bool)
35WriteRef
36Ret
}
public has_authority<Ty0>(Arg0: &OracleQueue<Ty0>, Arg1: &TxContext): bool {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[4](OracleQueue.authority: address)
2ReadRef
3MoveLoc[1](Arg1: &TxContext)
4Call tx_context::sender(&TxContext): address
5Eq
6Ret
}
public reward<Ty0>(Arg0: &OracleQueue<Ty0>): u64 {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[6](OracleQueue.reward: u64)
2ReadRef
3Ret
}
public oracle_idx<Ty0>(Arg0: &OracleQueue<Ty0>): u64 {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[9](OracleQueue.oracle_idx: u64)
2ReadRef
3Ret
}
public lock_lease_funding<Ty0>(Arg0: &OracleQueue<Ty0>): bool {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[0](OracleQueue.lock_lease_funding: bool)
2ReadRef
3Ret
}
public authority<Ty0>(Arg0: &OracleQueue<Ty0>): address {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[4](OracleQueue.authority: address)
2ReadRef
3Ret
}
public max_reward<Ty0>(Arg0: &OracleQueue<Ty0>, Arg1: u64): u64 {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[6](OracleQueue.reward: u64)
2ReadRef
3MoveLoc[1](Arg1: u64)
4LdU64(1)
5Add
6Mul
7Ret
}
public unpermissioned_feeds_enabled<Ty0>(Arg0: &OracleQueue<Ty0>): bool {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[3](OracleQueue.unpermissioned_feeds_enabled: bool)
2ReadRef
3Ret
}
public data_len<Ty0>(Arg0: &OracleQueue<Ty0>): u64 {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[10](OracleQueue.data: TableVec<address>)
2Call table_vec::length<address>(&TableVec<address>): u64
3Ret
}
public oracle_queue_address<Ty0>(Arg0: &OracleQueue<Ty0>): address {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[11](OracleQueue.id: UID)
2Call object::uid_to_address(&UID): address
3Ret
}
public verification_queue_addr<Ty0>(Arg0: &OracleQueue<Ty0>): address {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[7](OracleQueue.verification_queue_addr: address)
2ReadRef
3Ret
}
public allow_service_queue_heartbeats<Ty0>(Arg0: &OracleQueue<Ty0>): bool {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[8](OracleQueue.allow_service_queue_heartbeats: bool)
2ReadRef
3Ret
}
public oracle_timeout<Ty0>(Arg0: &OracleQueue<Ty0>): u64 {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[5](OracleQueue.oracle_timeout: u64)
2ReadRef
3Ret
}
public(friend) oracle_queue_create<Ty0>(Arg0: address, Arg1: vector<u8>, Arg2: u64, Arg3: u64, Arg4: bool, Arg5: bool, Arg6: u64, Arg7: u64, Arg8: address, Arg9: bool, Arg10: &mut TxContext): OracleQueue<Ty0> {
L11: loc0: UID
L12: loc1: bool
L13: loc2: u64
L14: loc3: address
L15: loc4: bool
L16: loc5: TableVec<address>
L17: loc6: Bag
L18: loc7: Table<address, Permission>
L19: loc8: Table<address, u64>
L20: loc9: vector<u8>
L21: loc10: u64
L22: loc11: bool
L23: loc12: u64
L24: loc13: u64
L25: loc14: address
L26: loc15: u64
B0:
0CopyLoc[10](Arg10: &mut TxContext)
1Call object::new(&mut TxContext): UID
2StLoc[11](loc0: UID)
3MoveLoc[1](Arg1: vector<u8>)
4StLoc[20](loc9: vector<u8>)
5MoveLoc[5](Arg5: bool)
6StLoc[22](loc11: bool)
7MoveLoc[6](Arg6: u64)
8StLoc[23](loc12: u64)
9MoveLoc[7](Arg7: u64)
10StLoc[24](loc13: u64)
11MoveLoc[0](Arg0: address)
12StLoc[25](loc14: address)
13MoveLoc[3](Arg3: u64)
14StLoc[26](loc15: u64)
15MoveLoc[4](Arg4: bool)
16StLoc[12](loc1: bool)
17MoveLoc[2](Arg2: u64)
18StLoc[13](loc2: u64)
19MoveLoc[8](Arg8: address)
20StLoc[14](loc3: address)
21MoveLoc[9](Arg9: bool)
22StLoc[15](loc4: bool)
23CopyLoc[10](Arg10: &mut TxContext)
24Call table_vec::empty<address>(&mut TxContext): TableVec<address>
25StLoc[16](loc5: TableVec<address>)
26CopyLoc[10](Arg10: &mut TxContext)
27Call bag::new(&mut TxContext): Bag
28StLoc[17](loc6: Bag)
29CopyLoc[10](Arg10: &mut TxContext)
30Call table::new<address, Permission>(&mut TxContext): Table<address, Permission>
31StLoc[18](loc7: Table<address, Permission>)
32MoveLoc[10](Arg10: &mut TxContext)
33Call table::new<address, u64>(&mut TxContext): Table<address, u64>
34StLoc[19](loc8: Table<address, u64>)
35Call switchboard::version(): u64
36StLoc[21](loc10: u64)
37MoveLoc[11](loc0: UID)
38MoveLoc[20](loc9: vector<u8>)
39MoveLoc[25](loc14: address)
40MoveLoc[26](loc15: u64)
41MoveLoc[12](loc1: bool)
42MoveLoc[13](loc2: u64)
43MoveLoc[22](loc11: bool)
44MoveLoc[23](loc12: u64)
45MoveLoc[24](loc13: u64)
46LdU64(0)
47LdU64(0)
48LdU64(0)
49MoveLoc[14](loc3: address)
50MoveLoc[15](loc4: bool)
51LdU64(0)
52MoveLoc[16](loc5: TableVec<address>)
53MoveLoc[17](loc6: Bag)
54MoveLoc[19](loc8: Table<address, u64>)
55MoveLoc[18](loc7: Table<address, Permission>)
56MoveLoc[21](loc10: u64)
57PackGeneric[0](OracleQueue<Ty0>)
58Ret
}
B0:
0MoveLoc[0](Arg0: OracleQueue<Ty0>)
1Call transfer::share_object<OracleQueue<Ty0>>(OracleQueue<Ty0>)
2Ret
}
public(friend) next_garbage_collection_oracle<Ty0>(Arg0: &mut OracleQueue<Ty0>): address * u64 {
L1: loc0: address
L2: loc1: u64
B0:
0CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[12](OracleQueue.version: u64)
2ReadRef
3Call switchboard::version(): u64
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
8Pop
9Call errors::InvalidVersion(): u64
10Abort
B3:
11CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
12ImmBorrowFieldGeneric[10](OracleQueue.data: TableVec<address>)
13Call table_vec::length<address>(&TableVec<address>): u64
14LdU64(1)
15Le
16BrFalse(22)
B4:
17MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
18Pop
19LdConst[0](address: 0x00..)
20LdU64(0)
21Ret
B5:
22CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
23ImmBorrowFieldGeneric[10](OracleQueue.data: TableVec<address>)
24CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
25ImmBorrowFieldGeneric[13](OracleQueue.gc_idx: u64)
26ReadRef
27Call table_vec::borrow<address>(&TableVec<address>, u64): &address
28ReadRef
29StLoc[1](loc0: address)
30CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
31ImmBorrowFieldGeneric[13](OracleQueue.gc_idx: u64)
32ReadRef
33StLoc[2](loc1: u64)
34CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
35ImmBorrowFieldGeneric[13](OracleQueue.gc_idx: u64)
36ReadRef
37LdU64(1)
38Add
39CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
40MutBorrowFieldGeneric[13](OracleQueue.gc_idx: u64)
41WriteRef
42CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
43ImmBorrowFieldGeneric[13](OracleQueue.gc_idx: u64)
44ReadRef
45CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
46ImmBorrowFieldGeneric[10](OracleQueue.data: TableVec<address>)
47Call table_vec::length<address>(&TableVec<address>): u64
48Mod
49MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
50MutBorrowFieldGeneric[13](OracleQueue.gc_idx: u64)
51WriteRef
52MoveLoc[1](loc0: address)
53MoveLoc[2](loc1: u64)
54Ret
}
public(friend) garbage_collect<Ty0>(Arg0: &mut OracleQueue<Ty0>, Arg1: u64) {
L2: loc0: address
L3: loc1: u64
B0:
0CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[12](OracleQueue.version: u64)
2ReadRef
3Call switchboard::version(): u64
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
8Pop
9Call errors::InvalidVersion(): u64
10Abort
B3:
11CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
12ImmBorrowFieldGeneric[10](OracleQueue.data: TableVec<address>)
13CopyLoc[1](Arg1: u64)
14Call table_vec::borrow<address>(&TableVec<address>, u64): &address
15ReadRef
16StLoc[2](loc0: address)
17CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
18MutBorrowFieldGeneric[10](OracleQueue.data: TableVec<address>)
19MoveLoc[1](Arg1: u64)
20Call utils::swap_remove<address>(&mut TableVec<address>, u64)
21CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
22MutBorrowFieldGeneric[14](OracleQueue.heartbeats: Table<address, u64>)
23MoveLoc[2](loc0: address)
24Call table::remove<address, u64>(&mut Table<address, u64>, address): u64
25Pop
26CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
27ImmBorrowFieldGeneric[10](OracleQueue.data: TableVec<address>)
28Call table_vec::length<address>(&TableVec<address>): u64
29StLoc[3](loc1: u64)
30CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
31ImmBorrowFieldGeneric[15](OracleQueue.curr_idx: u64)
32ReadRef
33CopyLoc[3](loc1: u64)
34Mod
35CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
36MutBorrowFieldGeneric[15](OracleQueue.curr_idx: u64)
37WriteRef
38CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
39ImmBorrowFieldGeneric[13](OracleQueue.gc_idx: u64)
40ReadRef
41MoveLoc[3](loc1: u64)
42Mod
43MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
44MutBorrowFieldGeneric[13](OracleQueue.gc_idx: u64)
45WriteRef
46Ret
}
public(friend) push_back<Ty0>(Arg0: &mut OracleQueue<Ty0>, Arg1: address, Arg2: u64) {
B0:
0CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[12](OracleQueue.version: u64)
2ReadRef
3Call switchboard::version(): u64
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
8Pop
9Call errors::InvalidVersion(): u64
10Abort
B3:
11CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
12ImmBorrowFieldGeneric[14](OracleQueue.heartbeats: Table<address, u64>)
13CopyLoc[1](Arg1: address)
14Call table::contains<address, u64>(&Table<address, u64>, address): bool
15Not
16BrFalse(27)
B4:
17CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
18MutBorrowFieldGeneric[10](OracleQueue.data: TableVec<address>)
19CopyLoc[1](Arg1: address)
20Call table_vec::push_back<address>(&mut TableVec<address>, address)
21CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
22MutBorrowFieldGeneric[14](OracleQueue.heartbeats: Table<address, u64>)
23MoveLoc[1](Arg1: address)
24CopyLoc[2](Arg2: u64)
25Call table::add<address, u64>(&mut Table<address, u64>, address, u64)
26Branch(33)
B5:
27CopyLoc[2](Arg2: u64)
28CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
29MutBorrowFieldGeneric[14](OracleQueue.heartbeats: Table<address, u64>)
30MoveLoc[1](Arg1: address)
31Call table::borrow_mut<address, u64>(&mut Table<address, u64>, address): &mut u64
32WriteRef
B6:
33MoveLoc[2](Arg2: u64)
34MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
35MutBorrowFieldGeneric[16](OracleQueue.last_hb: u64)
36WriteRef
37Ret
}
public(friend) increment_oracle_idx<Ty0>(Arg0: &mut OracleQueue<Ty0>) {
B0:
0CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[12](OracleQueue.version: u64)
2ReadRef
3Call switchboard::version(): u64
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
8Pop
9Call errors::InvalidVersion(): u64
10Abort
B3:
11CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
12ImmBorrowFieldGeneric[9](OracleQueue.oracle_idx: u64)
13ReadRef
14LdU64(1)
15Add
16CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
17ImmBorrowFieldGeneric[10](OracleQueue.data: TableVec<address>)
18Call table_vec::length<address>(&TableVec<address>): u64
19Mod
20MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
21MutBorrowFieldGeneric[9](OracleQueue.oracle_idx: u64)
22WriteRef
23Ret
}
public oracle_at_idx<Ty0>(Arg0: &OracleQueue<Ty0>, Arg1: u64): address {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[10](OracleQueue.data: TableVec<address>)
2MoveLoc[1](Arg1: u64)
3Call table_vec::borrow<address>(&TableVec<address>, u64): &address
4ReadRef
5Ret
}
public is_expired<Ty0>(Arg0: &OracleQueue<Ty0>, Arg1: address, Arg2: u64): bool {
B0:
0MoveLoc[2](Arg2: u64)
1CopyLoc[0](Arg0: &OracleQueue<Ty0>)
2ImmBorrowFieldGeneric[14](OracleQueue.heartbeats: Table<address, u64>)
3MoveLoc[1](Arg1: address)
4Call table::borrow<address, u64>(&Table<address, u64>, address): &u64
5ReadRef
6Sub
7MoveLoc[0](Arg0: &OracleQueue<Ty0>)
8ImmBorrowFieldGeneric[5](OracleQueue.oracle_timeout: u64)
9ReadRef
10Gt
11Ret
}
public(friend) add_aggregator_to_crank<Ty0>(Arg0: &mut OracleQueue<Ty0>, Arg1: address) {
B0:
0CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[12](OracleQueue.version: u64)
2ReadRef
3Call switchboard::version(): u64
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
8Pop
9Call errors::InvalidVersion(): u64
10Abort
B3:
11CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
12ImmBorrowFieldGeneric[17](OracleQueue.crank_feeds: Bag)
13CopyLoc[1](Arg1: address)
14Call bag::contains<address>(&Bag, address): bool
15Not
16BrFalse(18)
B4:
17Branch(22)
B5:
18MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
19Pop
20Call errors::InvalidArgument(): u64
21Abort
B6:
22MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
23MutBorrowFieldGeneric[17](OracleQueue.crank_feeds: Bag)
24MoveLoc[1](Arg1: address)
25LdTrue
26Call bag::add<address, bool>(&mut Bag, address, bool)
27Ret
}
public(friend) evict_aggregator<Ty0>(Arg0: &mut OracleQueue<Ty0>, Arg1: address) {
B0:
0CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[12](OracleQueue.version: u64)
2ReadRef
3Call switchboard::version(): u64
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
8Pop
9Call errors::InvalidVersion(): u64
10Abort
B3:
11CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
12ImmBorrowFieldGeneric[17](OracleQueue.crank_feeds: Bag)
13CopyLoc[1](Arg1: address)
14Call bag::contains<address>(&Bag, address): bool
15BrFalse(22)
B4:
16MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
17MutBorrowFieldGeneric[17](OracleQueue.crank_feeds: Bag)
18MoveLoc[1](Arg1: address)
19Call bag::remove<address, bool>(&mut Bag, address): bool
20Pop
21Branch(24)
B5:
22MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
23Pop
B6:
24Ret
}
public configs<Ty0>(Arg0: &OracleQueue<Ty0>): address * u64 * bool {
B0:
0CopyLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[4](OracleQueue.authority: address)
2ReadRef
3CopyLoc[0](Arg0: &OracleQueue<Ty0>)
4ImmBorrowFieldGeneric[6](OracleQueue.reward: u64)
5ReadRef
6MoveLoc[0](Arg0: &OracleQueue<Ty0>)
7ImmBorrowFieldGeneric[3](OracleQueue.unpermissioned_feeds_enabled: bool)
8ReadRef
9Ret
}
public permission<Ty0>(Arg0: &OracleQueue<Ty0>, Arg1: address): &Permission {
B0:
0MoveLoc[0](Arg0: &OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[18](OracleQueue.permissions: Table<address, Permission>)
2MoveLoc[1](Arg1: address)
3Call table::borrow<address, Permission>(&Table<address, Permission>, address): &Permission
4Ret
}
public(friend) permission_mut<Ty0>(Arg0: &mut OracleQueue<Ty0>, Arg1: address): &mut Permission {
B0:
0CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[12](OracleQueue.version: u64)
2ReadRef
3Call switchboard::version(): u64
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
8Pop
9Call errors::InvalidVersion(): u64
10Abort
B3:
11MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
12MutBorrowFieldGeneric[18](OracleQueue.permissions: Table<address, Permission>)
13MoveLoc[1](Arg1: address)
14Call table::borrow_mut<address, Permission>(&mut Table<address, Permission>, address): &mut Permission
15Ret
}
public(friend) permission_create<Ty0>(Arg0: &mut OracleQueue<Ty0>, Arg1: Permission) {
B0:
0CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[12](OracleQueue.version: u64)
2ReadRef
3Call switchboard::version(): u64
4Eq
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
8Pop
9Call errors::InvalidVersion(): u64
10Abort
B3:
11MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
12MutBorrowFieldGeneric[18](OracleQueue.permissions: Table<address, Permission>)
13ImmBorrowLoc[1](Arg1: Permission)
14Call permission::key_from_permission(&Permission): address
15MoveLoc[1](Arg1: Permission)
16Call table::add<address, Permission>(&mut Table<address, Permission>, address, Permission)
17Ret
}
entry migrate<Ty0>(Arg0: &mut OracleQueue<Ty0>, Arg1: &AdminCap) {
B0:
0CopyLoc[0](Arg0: &mut OracleQueue<Ty0>)
1ImmBorrowFieldGeneric[12](OracleQueue.version: u64)
2ReadRef
3Call switchboard::version(): u64
4Lt
5BrFalse(7)
B1:
6Branch(11)
B2:
7MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
8Pop
9Call errors::InvalidPackage(): u64
10Abort
B3:
11Call switchboard::version(): u64
12MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
13MutBorrowFieldGeneric[12](OracleQueue.version: u64)
14WriteRef
15Ret
}
entry disable<Ty0>(Arg0: &mut OracleQueue<Ty0>, Arg1: &AdminCap) {
B0:
0LdU64(0)
1MoveLoc[0](Arg0: &mut OracleQueue<Ty0>)
2MutBorrowFieldGeneric[12](OracleQueue.version: u64)
3WriteRef
4Ret
}
Constants [
0 => address: 0x0000000000000000000000000000000000000000000000000000000000000000
]
}