@deepbook/core::balance_manager bytecode | tide- Move path
- 0x2c8d…4809::balance_manager
- Functions
- 2817 public, 0 entry
- Structs
- 8
balance_manager
The on-chain disassembly. Offsets are bytecode positions within each function.
1// Move bytecode v7
2module 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809.balance_manager {
3use 2c8d603bc51326b8c13cef9dd07031a408a48dddb541963357661df5d3204809::registry;
4use 0000000000000000000000000000000000000000000000000000000000000001::option;
5use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
6use 0000000000000000000000000000000000000000000000000000000000000002::bag;
7
use 0000000000000000000000000000000000000000000000000000000000000002::balance;
8use 0000000000000000000000000000000000000000000000000000000000000002::coin;
9use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
10use 0000000000000000000000000000000000000000000000000000000000000002::event;
11use 0000000000000000000000000000000000000000000000000000000000000002::object;
12use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
13use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
14use 0000000000000000000000000000000000000000000000000000000000000002::vec_set;
16struct BalanceManager has store, key {
20 allow_listed: VecSet<ID>
23struct BalanceManagerEvent has copy, drop {
24 balance_manager_id: ID,
28struct BalanceEvent has copy, drop {
29 balance_manager_id: ID,
35struct BalanceKey<phantom Ty0> has copy, drop, store {
39struct ReferralKey has copy, drop, store {
43struct TradeCap has store, key {
45 balance_manager_id: ID
48struct DepositCap has store, key {
50 balance_manager_id: ID
53struct WithdrawCap has store, key {
55 balance_manager_id: ID
58struct DeepBookReferral has store, key {
63struct DeepBookPoolReferral has store, key {
69struct DeepBookReferralCreatedEvent has copy, drop {
74struct DeepBookReferralSetEvent has copy, drop {
76 balance_manager_id: ID
79struct TradeProof has drop {
80 balance_manager_id: ID,
84public new(Arg0: &mut TxContext): BalanceManager {
870CopyLoc[0](Arg0: &mut TxContext)
881Call object::new(&mut TxContext): UID
903ImmBorrowLoc[1](loc0: UID)
914Call object::uid_to_inner(&UID): ID
925CopyLoc[0](Arg0: &mut TxContext)
947Call tx_context::sender(&TxContext): address
958Pack[1](BalanceManagerEvent)
969Call event::emit<BalanceManagerEvent>(BalanceManagerEvent)
9710MoveLoc[1](loc0: UID)
9811CopyLoc[0](Arg0: &mut TxContext)
10013Call tx_context::sender(&TxContext): address
10114MoveLoc[0](Arg0: &mut TxContext)
10215Call bag::new(&mut TxContext): Bag
10316Call vec_set::empty<ID>(): VecSet<ID>
10417Pack[0](BalanceManager)
108public new_with_owner(Arg0: &mut TxContext, Arg1: address): BalanceManager {
114public new_with_custom_owner(Arg0: address, Arg1: &mut TxContext): BalanceManager {
1170CopyLoc[1](Arg1: &mut TxContext)
1181Call object::new(&mut TxContext): UID
1203ImmBorrowLoc[2](loc0: UID)
1214Call object::uid_to_inner(&UID): ID
1225CopyLoc[0](Arg0: address)
1236Pack[1](BalanceManagerEvent)
1247Call event::emit<BalanceManagerEvent>(BalanceManagerEvent)
1258MoveLoc[2](loc0: UID)
1269MoveLoc[0](Arg0: address)
12710MoveLoc[1](Arg1: &mut TxContext)
12811Call bag::new(&mut TxContext): Bag
12912Call vec_set::empty<ID>(): VecSet<ID>
13013Pack[0](BalanceManager)
134public new_with_custom_owner_and_caps(Arg0: address, Arg1: &mut TxContext): BalanceManager * DepositCap * WithdrawCap * TradeCap {
140public new_with_custom_owner_caps<Ty0: drop>(Arg0: &Registry, Arg1: address, Arg2: &mut TxContext): BalanceManager * DepositCap * WithdrawCap * TradeCap {
146public new_with_custom_owner_caps_v2<Ty0: drop>(Arg0: Ty0, Arg1: &Registry, Arg2: address, Arg3: &mut TxContext): BalanceManager * DepositCap * WithdrawCap * TradeCap {
147L4: loc0: BalanceManager
1520MoveLoc[1](Arg1: &Registry)
1531Call registry::assert_app_is_authorized<Ty0>(&Registry)
1542MoveLoc[2](Arg2: address)
1553CopyLoc[3](Arg3: &mut TxContext)
1564Call new_with_custom_owner(address, &mut TxContext): BalanceManager
1575StLoc[4](loc0: BalanceManager)
1586MutBorrowLoc[4](loc0: BalanceManager)
1597CopyLoc[3](Arg3: &mut TxContext)
1608Call mint_deposit_cap_internal(&mut BalanceManager, &mut TxContext): DepositCap
1619StLoc[5](loc1: DepositCap)
16210MutBorrowLoc[4](loc0: BalanceManager)
16311CopyLoc[3](Arg3: &mut TxContext)
16412Call mint_withdraw_cap_internal(&mut BalanceManager, &mut TxContext): WithdrawCap
16513StLoc[7](loc3: WithdrawCap)
16614MutBorrowLoc[4](loc0: BalanceManager)
16715MoveLoc[3](Arg3: &mut TxContext)
16816Call mint_trade_cap_internal(&mut BalanceManager, &mut TxContext): TradeCap
16917StLoc[6](loc2: TradeCap)
17018MoveLoc[4](loc0: BalanceManager)
17119MoveLoc[5](loc1: DepositCap)
17220MoveLoc[7](loc3: WithdrawCap)
17321MoveLoc[6](loc2: TradeCap)
177public set_referral(Arg0: &mut BalanceManager, Arg1: &DeepBookReferral, Arg2: &TradeCap) {
1790LdU64(13906835003272069119)
183public set_balance_manager_referral(Arg0: &mut BalanceManager, Arg1: &DeepBookPoolReferral, Arg2: &TradeCap) {
1850CopyLoc[0](Arg0: &mut BalanceManager)
1872MoveLoc[2](Arg2: &TradeCap)
1883Call validate_trader(&BalanceManager, &TradeCap)
1894CopyLoc[0](Arg0: &mut BalanceManager)
1905MutBorrowField[0](BalanceManager.id: UID)
1916CopyLoc[1](Arg1: &DeepBookPoolReferral)
1927ImmBorrowField[1](DeepBookPoolReferral.pool_id: ID)
19510Call dynamic_field::remove_opt<ReferralKey, ID>(&mut UID, ReferralKey): Option<ID>
19712CopyLoc[0](Arg0: &mut BalanceManager)
19813MutBorrowField[0](BalanceManager.id: UID)
19914CopyLoc[1](Arg1: &DeepBookPoolReferral)
20015ImmBorrowField[1](DeepBookPoolReferral.pool_id: ID)
20217Pack[4](ReferralKey)
20318CopyLoc[1](Arg1: &DeepBookPoolReferral)
20419ImmBorrowField[2](DeepBookPoolReferral.id: UID)
20520Call object::uid_to_inner(&UID): ID
20621Call dynamic_field::add<ReferralKey, ID>(&mut UID, ReferralKey, ID)
20722MoveLoc[1](Arg1: &DeepBookPoolReferral)
20823ImmBorrowField[2](DeepBookPoolReferral.id: UID)
20924Call object::uid_to_inner(&UID): ID
21025MoveLoc[0](Arg0: &mut BalanceManager)
21126ImmBorrowField[0](BalanceManager.id: UID)
21227Call object::uid_to_inner(&UID): ID
21328Pack[11](DeepBookReferralSetEvent)
21429Call event::emit<DeepBookReferralSetEvent>(DeepBookReferralSetEvent)
218public unset_referral(Arg0: &mut BalanceManager, Arg1: &TradeCap) {
2200LdU64(13906835089171415039)
224public unset_balance_manager_referral(Arg0: &mut BalanceManager, Arg1: ID, Arg2: &TradeCap) {
2260CopyLoc[0](Arg0: &mut BalanceManager)
2282MoveLoc[2](Arg2: &TradeCap)
2293Call validate_trader(&BalanceManager, &TradeCap)
2304CopyLoc[0](Arg0: &mut BalanceManager)
2315MutBorrowField[0](BalanceManager.id: UID)
2348Call dynamic_field::remove_opt<ReferralKey, ID>(&mut UID, ReferralKey): Option<ID>
23610LdConst[8](address: 0x00..)
23711Call object::id_from_address(address): ID
23812MoveLoc[0](Arg0: &mut BalanceManager)
23913ImmBorrowField[0](BalanceManager.id: UID)
24014Call object::uid_to_inner(&UID): ID
24115Pack[11](DeepBookReferralSetEvent)
24216Call event::emit<DeepBookReferralSetEvent>(DeepBookReferralSetEvent)
246public balance<Ty0>(Arg0: &BalanceManager): u64 {
248L2: loc1: BalanceKey<Ty0>
2511PackGeneric[0](BalanceKey<Ty0>)
2522StLoc[2](loc1: BalanceKey<Ty0>)
2533CopyLoc[0](Arg0: &BalanceManager)
2544ImmBorrowField[3](BalanceManager.balances: Bag)
2555CopyLoc[2](loc1: BalanceKey<Ty0>)
2566Call bag::contains<BalanceKey<Ty0>>(&Bag, BalanceKey<Ty0>): bool
2609MoveLoc[0](Arg0: &BalanceManager)
26614MoveLoc[0](Arg0: &BalanceManager)
26715ImmBorrowField[3](BalanceManager.balances: Bag)
26816MoveLoc[2](loc1: BalanceKey<Ty0>)
26917Call bag::borrow<BalanceKey<Ty0>, Balance<Ty0>>(&Bag, BalanceKey<Ty0>): &Balance<Ty0>
27018Call balance::value<Ty0>(&Balance<Ty0>): u64
27320MoveLoc[1](loc0: u64)
277public mint_trade_cap(Arg0: &mut BalanceManager, Arg1: &mut TxContext): TradeCap {
2790CopyLoc[0](Arg0: &mut BalanceManager)
2812CopyLoc[1](Arg1: &mut TxContext)
2834Call validate_owner(&BalanceManager, &TxContext)
2845MoveLoc[0](Arg0: &mut BalanceManager)
2856MoveLoc[1](Arg1: &mut TxContext)
2867Call mint_trade_cap_internal(&mut BalanceManager, &mut TxContext): TradeCap
290public mint_deposit_cap(Arg0: &mut BalanceManager, Arg1: &mut TxContext): DepositCap {
2920CopyLoc[0](Arg0: &mut BalanceManager)
2942CopyLoc[1](Arg1: &mut TxContext)
2964Call validate_owner(&BalanceManager, &TxContext)
2975MoveLoc[0](Arg0: &mut BalanceManager)
2986MoveLoc[1](Arg1: &mut TxContext)
2997Call mint_deposit_cap_internal(&mut BalanceManager, &mut TxContext): DepositCap
303public mint_withdraw_cap(Arg0: &mut BalanceManager, Arg1: &mut TxContext): WithdrawCap {
3050CopyLoc[0](Arg0: &mut BalanceManager)
3072CopyLoc[1](Arg1: &mut TxContext)
3094Call validate_owner(&BalanceManager, &TxContext)
3105MoveLoc[0](Arg0: &mut BalanceManager)
3116MoveLoc[1](Arg1: &mut TxContext)
3127Call mint_withdraw_cap_internal(&mut BalanceManager, &mut TxContext): WithdrawCap
316public revoke_trade_cap(Arg0: &mut BalanceManager, Arg1: &ID, Arg2: &TxContext) {
3180CopyLoc[0](Arg0: &mut BalanceManager)
3202MoveLoc[2](Arg2: &TxContext)
3213Call validate_owner(&BalanceManager, &TxContext)
3224CopyLoc[0](Arg0: &mut BalanceManager)
3235ImmBorrowField[4](BalanceManager.allow_listed: VecSet<ID>)
3246CopyLoc[1](Arg1: &ID)
3257Call vec_set::contains<ID>(&VecSet<ID>, &ID): bool
33010MoveLoc[1](Arg1: &ID)
33212MoveLoc[0](Arg0: &mut BalanceManager)
33716MoveLoc[0](Arg0: &mut BalanceManager)
33817MutBorrowField[4](BalanceManager.allow_listed: VecSet<ID>)
33918MoveLoc[1](Arg1: &ID)
34019Call vec_set::remove<ID>(&mut VecSet<ID>, &ID)
344public generate_proof_as_owner(Arg0: &mut BalanceManager, Arg1: &TxContext): TradeProof {
3460CopyLoc[0](Arg0: &mut BalanceManager)
3482CopyLoc[1](Arg1: &TxContext)
3493Call validate_owner(&BalanceManager, &TxContext)
3504MoveLoc[0](Arg0: &mut BalanceManager)
3526Call object::id<BalanceManager>(&BalanceManager): ID
3537MoveLoc[1](Arg1: &TxContext)
3548Call tx_context::sender(&TxContext): address
359public generate_proof_as_trader(Arg0: &mut BalanceManager, Arg1: &TradeCap, Arg2: &TxContext): TradeProof {
3610CopyLoc[0](Arg0: &mut BalanceManager)
3632MoveLoc[1](Arg1: &TradeCap)
3643Call validate_trader(&BalanceManager, &TradeCap)
3654MoveLoc[0](Arg0: &mut BalanceManager)
3676Call object::id<BalanceManager>(&BalanceManager): ID
3687MoveLoc[2](Arg2: &TxContext)
3698Call tx_context::sender(&TxContext): address
374public deposit<Ty0>(Arg0: &mut BalanceManager, Arg1: Coin<Ty0>, Arg2: &mut TxContext) {
3770CopyLoc[0](Arg0: &mut BalanceManager)
3792Call type_name::with_defining_ids<Ty0>(): TypeName
3803ImmBorrowLoc[1](Arg1: Coin<Ty0>)
3814Call coin::value<Ty0>(&Coin<Ty0>): u64
3836Call emit_balance_event(&BalanceManager, TypeName, u64, bool)
3847CopyLoc[0](Arg0: &mut BalanceManager)
3858MoveLoc[2](Arg2: &mut TxContext)
38710Call generate_proof_as_owner(&mut BalanceManager, &TxContext): TradeProof
38811StLoc[3](loc0: TradeProof)
38912MoveLoc[0](Arg0: &mut BalanceManager)
39013ImmBorrowLoc[3](loc0: TradeProof)
39114MoveLoc[1](Arg1: Coin<Ty0>)
39215Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
39316Call deposit_with_proof<Ty0>(&mut BalanceManager, &TradeProof, Balance<Ty0>)
397public deposit_with_cap<Ty0>(Arg0: &mut BalanceManager, Arg1: &DepositCap, Arg2: Coin<Ty0>, Arg3: &TxContext) {
4000CopyLoc[0](Arg0: &mut BalanceManager)
4022Call type_name::with_defining_ids<Ty0>(): TypeName
4033ImmBorrowLoc[2](Arg2: Coin<Ty0>)
4044Call coin::value<Ty0>(&Coin<Ty0>): u64
4066Call emit_balance_event(&BalanceManager, TypeName, u64, bool)
4077CopyLoc[0](Arg0: &mut BalanceManager)
4099MoveLoc[1](Arg1: &DepositCap)
41010MoveLoc[3](Arg3: &TxContext)
41111Call generate_proof_as_depositor(&BalanceManager, &DepositCap, &TxContext): TradeProof
41212StLoc[4](loc0: TradeProof)
41313MoveLoc[0](Arg0: &mut BalanceManager)
41414ImmBorrowLoc[4](loc0: TradeProof)
41515MoveLoc[2](Arg2: Coin<Ty0>)
41616Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
41717Call deposit_with_proof<Ty0>(&mut BalanceManager, &TradeProof, Balance<Ty0>)
421public withdraw_with_cap<Ty0>(Arg0: &mut BalanceManager, Arg1: &WithdrawCap, Arg2: u64, Arg3: &mut TxContext): Coin<Ty0> {
4250CopyLoc[0](Arg0: &mut BalanceManager)
4272MoveLoc[1](Arg1: &WithdrawCap)
4283CopyLoc[3](Arg3: &mut TxContext)
4305Call generate_proof_as_withdrawer(&BalanceManager, &WithdrawCap, &TxContext): TradeProof
4316StLoc[5](loc1: TradeProof)
4327CopyLoc[0](Arg0: &mut BalanceManager)
4338ImmBorrowLoc[5](loc1: TradeProof)
4349MoveLoc[2](Arg2: u64)
43611Call withdraw_with_proof<Ty0>(&mut BalanceManager, &TradeProof, u64, bool): Balance<Ty0>
43712MoveLoc[3](Arg3: &mut TxContext)
43813Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
43914StLoc[4](loc0: Coin<Ty0>)
44015MoveLoc[0](Arg0: &mut BalanceManager)
44217Call type_name::with_defining_ids<Ty0>(): TypeName
44318ImmBorrowLoc[4](loc0: Coin<Ty0>)
44419Call coin::value<Ty0>(&Coin<Ty0>): u64
44621Call emit_balance_event(&BalanceManager, TypeName, u64, bool)
44722MoveLoc[4](loc0: Coin<Ty0>)
451public withdraw<Ty0>(Arg0: &mut BalanceManager, Arg1: u64, Arg2: &mut TxContext): Coin<Ty0> {
4550CopyLoc[0](Arg0: &mut BalanceManager)
4561CopyLoc[2](Arg2: &mut TxContext)
4583Call generate_proof_as_owner(&mut BalanceManager, &TxContext): TradeProof
4594StLoc[4](loc1: TradeProof)
4605CopyLoc[0](Arg0: &mut BalanceManager)
4616ImmBorrowLoc[4](loc1: TradeProof)
4627MoveLoc[1](Arg1: u64)
4649Call withdraw_with_proof<Ty0>(&mut BalanceManager, &TradeProof, u64, bool): Balance<Ty0>
46510MoveLoc[2](Arg2: &mut TxContext)
46611Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
46712StLoc[3](loc0: Coin<Ty0>)
46813MoveLoc[0](Arg0: &mut BalanceManager)
47015Call type_name::with_defining_ids<Ty0>(): TypeName
47116ImmBorrowLoc[3](loc0: Coin<Ty0>)
47217Call coin::value<Ty0>(&Coin<Ty0>): u64
47419Call emit_balance_event(&BalanceManager, TypeName, u64, bool)
47520MoveLoc[3](loc0: Coin<Ty0>)
479public withdraw_all<Ty0>(Arg0: &mut BalanceManager, Arg1: &mut TxContext): Coin<Ty0> {
4830CopyLoc[0](Arg0: &mut BalanceManager)
4841CopyLoc[1](Arg1: &mut TxContext)
4863Call generate_proof_as_owner(&mut BalanceManager, &TxContext): TradeProof
4874StLoc[3](loc1: TradeProof)
4885CopyLoc[0](Arg0: &mut BalanceManager)
4896ImmBorrowLoc[3](loc1: TradeProof)
4929Call withdraw_with_proof<Ty0>(&mut BalanceManager, &TradeProof, u64, bool): Balance<Ty0>
49310MoveLoc[1](Arg1: &mut TxContext)
49411Call coin::from_balance<Ty0>(Balance<Ty0>, &mut TxContext): Coin<Ty0>
49512StLoc[2](loc0: Coin<Ty0>)
49613MoveLoc[0](Arg0: &mut BalanceManager)
49815Call type_name::with_defining_ids<Ty0>(): TypeName
49916ImmBorrowLoc[2](loc0: Coin<Ty0>)
50017Call coin::value<Ty0>(&Coin<Ty0>): u64
50219Call emit_balance_event(&BalanceManager, TypeName, u64, bool)
50320MoveLoc[2](loc0: Coin<Ty0>)
507public register_manager(Arg0: &BalanceManager, Arg1: &mut Registry) {
513public register_balance_manager(Arg0: &BalanceManager, Arg1: &mut Registry, Arg2: &mut TxContext) {
5170CopyLoc[0](Arg0: &BalanceManager)
5181MoveLoc[2](Arg2: &mut TxContext)
5203Call validate_owner(&BalanceManager, &TxContext)
5214CopyLoc[0](Arg0: &BalanceManager)
5225Call owner(&BalanceManager): address
5236StLoc[4](loc1: address)
5247MoveLoc[0](Arg0: &BalanceManager)
5258Call id(&BalanceManager): ID
52710MoveLoc[1](Arg1: &mut Registry)
52811MoveLoc[4](loc1: address)
52912MoveLoc[3](loc0: ID)
53013Call registry::add_balance_manager(&mut Registry, address, ID)
534public get_referral_id(Arg0: &BalanceManager): Option<ID> {
5360LdU64(13906835909510168575)
540public get_balance_manager_referral_id(Arg0: &BalanceManager, Arg1: ID): Option<ID> {
5452StLoc[2](loc0: ReferralKey)
5463CopyLoc[0](Arg0: &BalanceManager)
5474ImmBorrowField[0](BalanceManager.id: UID)
5485CopyLoc[2](loc0: ReferralKey)
5496Call dynamic_field::exists<ReferralKey>(&UID, ReferralKey): bool
5539MoveLoc[0](Arg0: &BalanceManager)
55511Call option::none<ID>(): Option<ID>
55813MoveLoc[0](Arg0: &BalanceManager)
55914ImmBorrowField[0](BalanceManager.id: UID)
56015MoveLoc[2](loc0: ReferralKey)
56116Call dynamic_field::borrow<ReferralKey, ID>(&UID, ReferralKey): &ID
56318Call option::some<ID>(ID): Option<ID>
567public validate_proof(Arg0: &BalanceManager, Arg1: &TradeProof) {
5690MoveLoc[0](Arg0: &BalanceManager)
5701Call object::id<BalanceManager>(&BalanceManager): ID
5712MoveLoc[1](Arg1: &TradeProof)
5723ImmBorrowField[5](TradeProof.balance_manager_id: ID)
585public owner(Arg0: &BalanceManager): address {
5870MoveLoc[0](Arg0: &BalanceManager)
5881ImmBorrowField[6](BalanceManager.owner: address)
593public id(Arg0: &BalanceManager): ID {
5950MoveLoc[0](Arg0: &BalanceManager)
5961ImmBorrowField[0](BalanceManager.id: UID)
5972Call object::uid_to_inner(&UID): ID
601public referral_owner(Arg0: &DeepBookReferral): address {
6030LdU64(13906836051244089343)
607public balance_manager_referral_owner(Arg0: &DeepBookPoolReferral): address {
6090MoveLoc[0](Arg0: &DeepBookPoolReferral)
6101ImmBorrowField[7](DeepBookPoolReferral.owner: address)
615public balance_manager_referral_pool_id(Arg0: &DeepBookPoolReferral): ID {
6170MoveLoc[0](Arg0: &DeepBookPoolReferral)
6181ImmBorrowField[1](DeepBookPoolReferral.pool_id: ID)
623public(friend) mint_referral(Arg0: ID, Arg1: &mut TxContext): ID {
625L3: loc1: DeepBookPoolReferral
6280CopyLoc[1](Arg1: &mut TxContext)
6291Call object::new(&mut TxContext): UID
6313ImmBorrowLoc[2](loc0: UID)
6324Call object::uid_to_inner(&UID): ID
6346MoveLoc[2](loc0: UID)
6357CopyLoc[1](Arg1: &mut TxContext)
6379Call tx_context::sender(&TxContext): address
63810MoveLoc[0](Arg0: ID)
63911Pack[9](DeepBookPoolReferral)
64012StLoc[3](loc1: DeepBookPoolReferral)
64113CopyLoc[4](loc2: ID)
64214MoveLoc[1](Arg1: &mut TxContext)
64416Call tx_context::sender(&TxContext): address
64517Pack[10](DeepBookReferralCreatedEvent)
64618Call event::emit<DeepBookReferralCreatedEvent>(DeepBookReferralCreatedEvent)
64719MoveLoc[3](loc1: DeepBookPoolReferral)
64820Call transfer::share_object<DeepBookPoolReferral>(DeepBookPoolReferral)
64921MoveLoc[4](loc2: ID)
653public(friend) assert_referral_owner(Arg0: &DeepBookPoolReferral, Arg1: &TxContext) {
6550MoveLoc[1](Arg1: &TxContext)
6561Call tx_context::sender(&TxContext): address
6572MoveLoc[0](Arg0: &DeepBookPoolReferral)
6583ImmBorrowField[7](DeepBookPoolReferral.owner: address)
671public(friend) deposit_with_proof<Ty0>(Arg0: &mut BalanceManager, Arg1: &TradeProof, Arg2: Balance<Ty0>) {
672L3: loc0: BalanceKey<Ty0>
6740CopyLoc[0](Arg0: &mut BalanceManager)
6762MoveLoc[1](Arg1: &TradeProof)
6773Call validate_proof(&BalanceManager, &TradeProof)
6795PackGeneric[0](BalanceKey<Ty0>)
6806StLoc[3](loc0: BalanceKey<Ty0>)
6817CopyLoc[0](Arg0: &mut BalanceManager)
6828ImmBorrowField[3](BalanceManager.balances: Bag)
6839CopyLoc[3](loc0: BalanceKey<Ty0>)
68410Call bag::contains<BalanceKey<Ty0>>(&Bag, BalanceKey<Ty0>): bool
68712MoveLoc[0](Arg0: &mut BalanceManager)
68813MutBorrowField[3](BalanceManager.balances: Bag)
68914MoveLoc[3](loc0: BalanceKey<Ty0>)
69015Call bag::borrow_mut<BalanceKey<Ty0>, Balance<Ty0>>(&mut Bag, BalanceKey<Ty0>): &mut Balance<Ty0>
69116MoveLoc[2](Arg2: Balance<Ty0>)
69217Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
69620MoveLoc[0](Arg0: &mut BalanceManager)
69721MutBorrowField[3](BalanceManager.balances: Bag)
69822MoveLoc[3](loc0: BalanceKey<Ty0>)
69923MoveLoc[2](Arg2: Balance<Ty0>)
70024Call bag::add<BalanceKey<Ty0>, Balance<Ty0>>(&mut Bag, BalanceKey<Ty0>, Balance<Ty0>)
705public(friend) deposit_permissionless<Ty0>(Arg0: &mut BalanceManager, Arg1: Balance<Ty0>) {
706L2: loc0: BalanceKey<Ty0>
7091PackGeneric[0](BalanceKey<Ty0>)
7102StLoc[2](loc0: BalanceKey<Ty0>)
7113CopyLoc[0](Arg0: &mut BalanceManager)
7124ImmBorrowField[3](BalanceManager.balances: Bag)
7135CopyLoc[2](loc0: BalanceKey<Ty0>)
7146Call bag::contains<BalanceKey<Ty0>>(&Bag, BalanceKey<Ty0>): bool
7178MoveLoc[0](Arg0: &mut BalanceManager)
7189MutBorrowField[3](BalanceManager.balances: Bag)
71910MoveLoc[2](loc0: BalanceKey<Ty0>)
72011Call bag::borrow_mut<BalanceKey<Ty0>, Balance<Ty0>>(&mut Bag, BalanceKey<Ty0>): &mut Balance<Ty0>
72112MoveLoc[1](Arg1: Balance<Ty0>)
72213Call balance::join<Ty0>(&mut Balance<Ty0>, Balance<Ty0>): u64
72616MoveLoc[0](Arg0: &mut BalanceManager)
72717MutBorrowField[3](BalanceManager.balances: Bag)
72818MoveLoc[2](loc0: BalanceKey<Ty0>)
72919MoveLoc[1](Arg1: Balance<Ty0>)
73020Call bag::add<BalanceKey<Ty0>, Balance<Ty0>>(&mut Bag, BalanceKey<Ty0>, Balance<Ty0>)
735public(friend) generate_proof_as_depositor(Arg0: &BalanceManager, Arg1: &DepositCap, Arg2: &TxContext): TradeProof {
7370CopyLoc[0](Arg0: &BalanceManager)
7381MoveLoc[1](Arg1: &DepositCap)
7392Call validate_deposit_cap(&BalanceManager, &DepositCap)
7403MoveLoc[0](Arg0: &BalanceManager)
7414Call object::id<BalanceManager>(&BalanceManager): ID
7425MoveLoc[2](Arg2: &TxContext)
7436Call tx_context::sender(&TxContext): address
748public(friend) generate_proof_as_withdrawer(Arg0: &BalanceManager, Arg1: &WithdrawCap, Arg2: &TxContext): TradeProof {
7500CopyLoc[0](Arg0: &BalanceManager)
7511MoveLoc[1](Arg1: &WithdrawCap)
7522Call validate_withdraw_cap(&BalanceManager, &WithdrawCap)
7533MoveLoc[0](Arg0: &BalanceManager)
7544Call object::id<BalanceManager>(&BalanceManager): ID
7555MoveLoc[2](Arg2: &TxContext)
7566Call tx_context::sender(&TxContext): address
761public(friend) withdraw_with_proof<Ty0>(Arg0: &mut BalanceManager, Arg1: &TradeProof, Arg2: u64, Arg3: bool): Balance<Ty0> {
762L4: loc0: Balance<Ty0>
763L5: loc1: Balance<Ty0>
764L6: loc2: &mut Balance<Ty0>
766L8: loc4: BalanceKey<Ty0>
7680CopyLoc[0](Arg0: &mut BalanceManager)
7702MoveLoc[1](Arg1: &TradeProof)
7713Call validate_proof(&BalanceManager, &TradeProof)
7735PackGeneric[0](BalanceKey<Ty0>)
7746StLoc[8](loc4: BalanceKey<Ty0>)
7757CopyLoc[0](Arg0: &mut BalanceManager)
7768ImmBorrowField[3](BalanceManager.balances: Bag)
7779CopyLoc[8](loc4: BalanceKey<Ty0>)
77810Call bag::contains<BalanceKey<Ty0>>(&Bag, BalanceKey<Ty0>): bool
78213CopyLoc[0](Arg0: &mut BalanceManager)
78314MutBorrowField[3](BalanceManager.balances: Bag)
78415CopyLoc[8](loc4: BalanceKey<Ty0>)
78516Call balance::zero<Ty0>(): Balance<Ty0>
78617Call bag::add<BalanceKey<Ty0>, Balance<Ty0>>(&mut Bag, BalanceKey<Ty0>, Balance<Ty0>)
78818MoveLoc[3](Arg3: bool)
79120MoveLoc[0](Arg0: &mut BalanceManager)
79221MutBorrowField[3](BalanceManager.balances: Bag)
79322MoveLoc[8](loc4: BalanceKey<Ty0>)
79423Call bag::remove<BalanceKey<Ty0>, Balance<Ty0>>(&mut Bag, BalanceKey<Ty0>): Balance<Ty0>
79524StLoc[5](loc1: Balance<Ty0>)
79826CopyLoc[0](Arg0: &mut BalanceManager)
79927MutBorrowField[3](BalanceManager.balances: Bag)
80028CopyLoc[8](loc4: BalanceKey<Ty0>)
80129Call bag::borrow_mut<BalanceKey<Ty0>, Balance<Ty0>>(&mut Bag, BalanceKey<Ty0>): &mut Balance<Ty0>
80230StLoc[6](loc2: &mut Balance<Ty0>)
80331CopyLoc[6](loc2: &mut Balance<Ty0>)
80533Call balance::value<Ty0>(&Balance<Ty0>): u64
80735CopyLoc[7](loc3: u64)
80836CopyLoc[2](Arg2: u64)
81440MoveLoc[0](Arg0: &mut BalanceManager)
81642MoveLoc[6](loc2: &mut Balance<Ty0>)
82146CopyLoc[2](Arg2: u64)
82247MoveLoc[7](loc3: u64)
82650MoveLoc[6](loc2: &mut Balance<Ty0>)
82852MoveLoc[0](Arg0: &mut BalanceManager)
82953MutBorrowField[3](BalanceManager.balances: Bag)
83054MoveLoc[8](loc4: BalanceKey<Ty0>)
83155Call bag::remove<BalanceKey<Ty0>, Balance<Ty0>>(&mut Bag, BalanceKey<Ty0>): Balance<Ty0>
83256StLoc[4](loc0: Balance<Ty0>)
83558MoveLoc[0](Arg0: &mut BalanceManager)
83760MoveLoc[6](loc2: &mut Balance<Ty0>)
83861MoveLoc[2](Arg2: u64)
83962Call balance::split<Ty0>(&mut Balance<Ty0>, u64): Balance<Ty0>
84063StLoc[4](loc0: Balance<Ty0>)
84264MoveLoc[4](loc0: Balance<Ty0>)
84365StLoc[5](loc1: Balance<Ty0>)
84566MoveLoc[5](loc1: Balance<Ty0>)
849public(friend) delete(Arg0: BalanceManager) {
8520MoveLoc[0](Arg0: BalanceManager)
8531Unpack[0](BalanceManager)
8575Call object::delete(UID)
8586MoveLoc[1](loc0: Bag)
8597Call bag::destroy_empty(Bag)
863public(friend) trader(Arg0: &TradeProof): address {
8650MoveLoc[0](Arg0: &TradeProof)
8661ImmBorrowField[8](TradeProof.trader: address)
871public(friend) emit_balance_event(Arg0: &BalanceManager, Arg1: TypeName, Arg2: u64, Arg3: bool) {
8730MoveLoc[0](Arg0: &BalanceManager)
8741Call id(&BalanceManager): ID
8752MoveLoc[1](Arg1: TypeName)
8763MoveLoc[2](Arg2: u64)
8774MoveLoc[3](Arg3: bool)
8785Pack[2](BalanceEvent)
8796Call event::emit<BalanceEvent>(BalanceEvent)
883mint_trade_cap_internal(Arg0: &mut BalanceManager, Arg1: &mut TxContext): TradeCap {
8860CopyLoc[0](Arg0: &mut BalanceManager)
8871ImmBorrowField[4](BalanceManager.allow_listed: VecSet<ID>)
8882Call vec_set::length<ID>(&VecSet<ID>): u64
8893LdConst[7](u64: 1000)
8957MoveLoc[1](Arg1: &mut TxContext)
8979MoveLoc[0](Arg0: &mut BalanceManager)
90213MoveLoc[1](Arg1: &mut TxContext)
90314Call object::new(&mut TxContext): UID
90516CopyLoc[0](Arg0: &mut BalanceManager)
90617MutBorrowField[4](BalanceManager.allow_listed: VecSet<ID>)
90718ImmBorrowLoc[2](loc0: UID)
90819Call object::uid_to_inner(&UID): ID
90920Call vec_set::insert<ID>(&mut VecSet<ID>, ID)
91021MoveLoc[2](loc0: UID)
91122MoveLoc[0](Arg0: &mut BalanceManager)
91324Call object::id<BalanceManager>(&BalanceManager): ID
918mint_deposit_cap_internal(Arg0: &mut BalanceManager, Arg1: &mut TxContext): DepositCap {
9210CopyLoc[0](Arg0: &mut BalanceManager)
9221ImmBorrowField[4](BalanceManager.allow_listed: VecSet<ID>)
9232Call vec_set::length<ID>(&VecSet<ID>): u64
9243LdConst[7](u64: 1000)
9307MoveLoc[1](Arg1: &mut TxContext)
9329MoveLoc[0](Arg0: &mut BalanceManager)
93713MoveLoc[1](Arg1: &mut TxContext)
93814Call object::new(&mut TxContext): UID
94016CopyLoc[0](Arg0: &mut BalanceManager)
94117MutBorrowField[4](BalanceManager.allow_listed: VecSet<ID>)
94218ImmBorrowLoc[2](loc0: UID)
94319Call object::uid_to_inner(&UID): ID
94420Call vec_set::insert<ID>(&mut VecSet<ID>, ID)
94521MoveLoc[2](loc0: UID)
94622MoveLoc[0](Arg0: &mut BalanceManager)
94824Call object::id<BalanceManager>(&BalanceManager): ID
953mint_withdraw_cap_internal(Arg0: &mut BalanceManager, Arg1: &mut TxContext): WithdrawCap {
9560CopyLoc[0](Arg0: &mut BalanceManager)
9571ImmBorrowField[4](BalanceManager.allow_listed: VecSet<ID>)
9582Call vec_set::length<ID>(&VecSet<ID>): u64
9593LdConst[7](u64: 1000)
9657MoveLoc[1](Arg1: &mut TxContext)
9679MoveLoc[0](Arg0: &mut BalanceManager)
97213MoveLoc[1](Arg1: &mut TxContext)
97314Call object::new(&mut TxContext): UID
97516CopyLoc[0](Arg0: &mut BalanceManager)
97617MutBorrowField[4](BalanceManager.allow_listed: VecSet<ID>)
97718ImmBorrowLoc[2](loc0: UID)
97819Call object::uid_to_inner(&UID): ID
97920Call vec_set::insert<ID>(&mut VecSet<ID>, ID)
98021MoveLoc[2](loc0: UID)
98122MoveLoc[0](Arg0: &mut BalanceManager)
98324Call object::id<BalanceManager>(&BalanceManager): ID
98425Pack[7](WithdrawCap)
988validate_owner(Arg0: &BalanceManager, Arg1: &TxContext) {
9900MoveLoc[1](Arg1: &TxContext)
9911Call tx_context::sender(&TxContext): address
9922MoveLoc[0](Arg0: &BalanceManager)
9933Call owner(&BalanceManager): address
1005validate_trader(Arg0: &BalanceManager, Arg1: &TradeCap) {
10070MoveLoc[0](Arg0: &BalanceManager)
10081ImmBorrowField[4](BalanceManager.allow_listed: VecSet<ID>)
10092MoveLoc[1](Arg1: &TradeCap)
10103Call object::borrow_id<TradeCap>(&TradeCap): &ID
10114Call vec_set::contains<ID>(&VecSet<ID>, &ID): bool
1022validate_deposit_cap(Arg0: &BalanceManager, Arg1: &DepositCap) {
10240MoveLoc[0](Arg0: &BalanceManager)
10251ImmBorrowField[4](BalanceManager.allow_listed: VecSet<ID>)
10262MoveLoc[1](Arg1: &DepositCap)
10273Call object::borrow_id<DepositCap>(&DepositCap): &ID
10284Call vec_set::contains<ID>(&VecSet<ID>, &ID): bool
1039validate_withdraw_cap(Arg0: &BalanceManager, Arg1: &WithdrawCap) {
10410MoveLoc[0](Arg0: &BalanceManager)
10421ImmBorrowField[4](BalanceManager.allow_listed: VecSet<ID>)
10432MoveLoc[1](Arg1: &WithdrawCap)
10443Call object::borrow_id<WithdrawCap>(&WithdrawCap): &ID
10454Call vec_set::contains<ID>(&VecSet<ID>, &ID): bool
1065 8 => address: 0x0000000000000000000000000000000000000000000000000000000000000000