Package 0x894a…0fd9
model
- Move path
- 0x7fd8…1fec::model
- Functions
- 214 public, 4 entry
- Structs
- 5
model
Bytecode808 lines
The on-chain disassembly. Offsets are instruction numbers within each function.
// Move bytecode v7
module 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec.model {
use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::admin;
use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::decimal;
use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::rate;
use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::sdecimal;
use 7fd8aba1652c58b6397c799fd375e748e5053145cb7e126d303e0a1545fd1fec::srate;
struct RebaseFeeModel has key {
id: UID,
base: Rate,
multiplier: Decimal
}
struct RebaseFeeExponentKey has copy, drop, store {
dummy_field: bool
}
struct ReservingFeeModel has key {
id: UID,
multiplier: Decimal
}
struct FundingFeeModel has key {
id: UID,
multiplier: Decimal,
max: Rate
}
struct OiFundingModel has store, key {
id: UID,
multiplier: Decimal,
exponent: Decimal,
max: Rate
}
validate_base(Arg0: u256) {
L1: loc0: bool
B0:
0CopyLoc[0](Arg0: u256)
1LdConst[7](u256: 1000..)
2Ge
3BrFalse(9)
B1:
4MoveLoc[0](Arg0: u256)
5LdConst[8](u256: 1000..)
6Le
7StLoc[1](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[1](loc0: bool)
B3:
11MoveLoc[1](loc0: bool)
12BrFalse(14)
B4:
13Branch(16)
B5:
14LdConst[0](u64: 19001)
15Abort
B6:
16Ret
}
validate_multiplier(Arg0: u256) {
L1: loc0: bool
B0:
0CopyLoc[0](Arg0: u256)
1LdConst[7](u256: 1000..)
2Ge
3BrFalse(9)
B1:
4MoveLoc[0](Arg0: u256)
5LdConst[8](u256: 1000..)
6Le
7StLoc[1](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[1](loc0: bool)
B3:
11MoveLoc[1](loc0: bool)
12BrFalse(14)
B4:
13Branch(16)
B5:
14LdConst[1](u64: 19002)
15Abort
B6:
16Ret
}
validate_funding_multiplier(Arg0: u256) {
L1: loc0: bool
B0:
0CopyLoc[0](Arg0: u256)
1LdConst[9](u256: 1000..)
2Ge
3BrFalse(9)
B1:
4MoveLoc[0](Arg0: u256)
5LdConst[8](u256: 1000..)
6Le
7StLoc[1](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[1](loc0: bool)
B3:
11MoveLoc[1](loc0: bool)
12BrFalse(14)
B4:
13Branch(16)
B5:
14LdConst[1](u64: 19002)
15Abort
B6:
16Ret
}
validate_max_rate(Arg0: u256) {
L1: loc0: bool
B0:
0CopyLoc[0](Arg0: u256)
1LdConst[7](u256: 1000..)
2Ge
3BrFalse(9)
B1:
4MoveLoc[0](Arg0: u256)
5LdConst[6](u256: 1000..)
6Le
7StLoc[1](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[1](loc0: bool)
B3:
11MoveLoc[1](loc0: bool)
12BrFalse(14)
B4:
13Branch(16)
B5:
14LdConst[2](u64: 19003)
15Abort
B6:
16Ret
}
validate_exponent_raw(Arg0: u256) {
L1: loc0: bool
B0:
0CopyLoc[0](Arg0: u256)
1LdConst[4](u256: 1000..)
2Ge
3BrFalse(9)
B1:
4MoveLoc[0](Arg0: u256)
5LdConst[10](u256: 1000..)
6Le
7StLoc[1](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[1](loc0: bool)
B3:
11MoveLoc[1](loc0: bool)
12BrFalse(14)
B4:
13Branch(16)
B5:
14LdConst[3](u64: 19004)
15Abort
B6:
16Ret
}
validate_rebase_exponent_raw(Arg0: u256) {
L1: loc0: bool
B0:
0CopyLoc[0](Arg0: u256)
1LdConst[4](u256: 1000..)
2Ge
3BrFalse(9)
B1:
4MoveLoc[0](Arg0: u256)
5LdConst[11](u256: 3000..)
6Le
7StLoc[1](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[1](loc0: bool)
B3:
11MoveLoc[1](loc0: bool)
12BrFalse(14)
B4:
13Branch(16)
B5:
14LdConst[3](u64: 19004)
15Abort
B6:
16Ret
}
public(friend) create_rebase_fee_model(Arg0: Rate, Arg1: Decimal, Arg2: &mut TxContext): ID {
L3: loc0: UID
L4: loc1: ID
B0:
0CopyLoc[0](Arg0: Rate)
1Call rate::to_raw(Rate): u128
2CastU256
3Call validate_base(u256)
4CopyLoc[1](Arg1: Decimal)
5Call decimal::to_raw(Decimal): u256
6Call validate_multiplier(u256)
7MoveLoc[2](Arg2: &mut TxContext)
8Call object::new(&mut TxContext): UID
9StLoc[3](loc0: UID)
10ImmBorrowLoc[3](loc0: UID)
11Call object::uid_to_inner(&UID): ID
12StLoc[4](loc1: ID)
13MoveLoc[3](loc0: UID)
14MoveLoc[0](Arg0: Rate)
15MoveLoc[1](Arg1: Decimal)
16Pack[0](RebaseFeeModel)
17Call transfer::share_object<RebaseFeeModel>(RebaseFeeModel)
18MoveLoc[4](loc1: ID)
19Ret
}
public(friend) create_reserving_fee_model(Arg0: Decimal, Arg1: &mut TxContext): ID {
L2: loc0: UID
L3: loc1: ID
B0:
0CopyLoc[0](Arg0: Decimal)
1Call decimal::to_raw(Decimal): u256
2Call validate_multiplier(u256)
3MoveLoc[1](Arg1: &mut TxContext)
4Call object::new(&mut TxContext): UID
5StLoc[2](loc0: UID)
6ImmBorrowLoc[2](loc0: UID)
7Call object::uid_to_inner(&UID): ID
8StLoc[3](loc1: ID)
9MoveLoc[2](loc0: UID)
10MoveLoc[0](Arg0: Decimal)
11Pack[2](ReservingFeeModel)
12Call transfer::share_object<ReservingFeeModel>(ReservingFeeModel)
13MoveLoc[3](loc1: ID)
14Ret
}
public(friend) create_funding_fee_model(Arg0: Decimal, Arg1: Rate, Arg2: &mut TxContext): ID {
L3: loc0: UID
L4: loc1: ID
B0:
0CopyLoc[0](Arg0: Decimal)
1Call decimal::to_raw(Decimal): u256
2Call validate_funding_multiplier(u256)
3MoveLoc[2](Arg2: &mut TxContext)
4Call object::new(&mut TxContext): UID
5StLoc[3](loc0: UID)
6ImmBorrowLoc[3](loc0: UID)
7Call object::uid_to_inner(&UID): ID
8StLoc[4](loc1: ID)
9MoveLoc[3](loc0: UID)
10MoveLoc[0](Arg0: Decimal)
11MoveLoc[1](Arg1: Rate)
12Pack[3](FundingFeeModel)
13Call transfer::share_object<FundingFeeModel>(FundingFeeModel)
14MoveLoc[4](loc1: ID)
15Ret
}
public(friend) create_oi_funding_model(Arg0: Decimal, Arg1: Decimal, Arg2: Rate, Arg3: &mut TxContext): OiFundingModel {
B0:
0CopyLoc[0](Arg0: Decimal)
1Call decimal::to_raw(Decimal): u256
2Call validate_funding_multiplier(u256)
3CopyLoc[2](Arg2: Rate)
4Call rate::to_raw(Rate): u128
5CastU256
6Call validate_max_rate(u256)
7CopyLoc[1](Arg1: Decimal)
8Call decimal::to_raw(Decimal): u256
9Call validate_exponent_raw(u256)
10MoveLoc[3](Arg3: &mut TxContext)
11Call object::new(&mut TxContext): UID
12MoveLoc[0](Arg0: Decimal)
13MoveLoc[1](Arg1: Decimal)
14MoveLoc[2](Arg2: Rate)
15Pack[4](OiFundingModel)
16Ret
}
public compute_rebase_fee_rate(Arg0: &RebaseFeeModel, Arg1: bool, Arg2: Rate, Arg3: Rate): Rate {
L4: loc0: bool
L5: loc1: bool
L6: loc2: bool
L7: loc3: Decimal
L8: loc4: Rate
L9: loc5: Decimal
L10: loc6: Rate
L11: loc7: Decimal
L12: loc8: Decimal
L13: loc9: u256
L14: loc10: u64
B0:
0CopyLoc[1](Arg1: bool)
1BrFalse(7)
B1:
2ImmBorrowLoc[2](Arg2: Rate)
3ImmBorrowLoc[3](Arg3: Rate)
4Call rate::le(&Rate, &Rate): bool
5StLoc[6](loc2: bool)
6Branch(9)
B2:
7LdFalse
8StLoc[6](loc2: bool)
B3:
9MoveLoc[6](loc2: bool)
10BrFalse(14)
B4:
11LdTrue
12StLoc[4](loc0: bool)
13Branch(26)
B5:
14MoveLoc[1](Arg1: bool)
15Not
16BrFalse(22)
B6:
17ImmBorrowLoc[2](Arg2: Rate)
18ImmBorrowLoc[3](Arg3: Rate)
19Call rate::ge(&Rate, &Rate): bool
20StLoc[5](loc1: bool)
21Branch(24)
B7:
22LdFalse
23StLoc[5](loc1: bool)
B8:
24MoveLoc[5](loc1: bool)
25StLoc[4](loc0: bool)
B9:
26MoveLoc[4](loc0: bool)
27BrFalse(33)
B10:
28MoveLoc[0](Arg0: &RebaseFeeModel)
29ImmBorrowField[0](RebaseFeeModel.base: Rate)
30ReadRef
31StLoc[8](loc4: Rate)
32Branch(74)
B11:
33MoveLoc[2](Arg2: Rate)
34MoveLoc[3](Arg3: Rate)
35Call rate::diff(Rate, Rate): Rate
36StLoc[10](loc6: Rate)
37CopyLoc[0](Arg0: &RebaseFeeModel)
38Call get_rebase_fee_exponent(&RebaseFeeModel): u256
39StLoc[13](loc9: u256)
40MoveLoc[10](loc6: Rate)
41Call decimal::from_rate(Rate): Decimal
42StLoc[11](loc7: Decimal)
43MoveLoc[13](loc9: u256)
44Call decimal::from_raw(u256): Decimal
45Call decimal::floor_u64(Decimal): u64
46StLoc[14](loc10: u64)
47CopyLoc[14](loc10: u64)
48LdU64(0)
49Eq
50BrFalse(54)
B12:
51Call decimal::one(): Decimal
52StLoc[7](loc3: Decimal)
53Branch(58)
B13:
54MoveLoc[11](loc7: Decimal)
55MoveLoc[14](loc10: u64)
56Call decimal::pow_u64(Decimal, u64): Decimal
57StLoc[7](loc3: Decimal)
B14:
58MoveLoc[7](loc3: Decimal)
59StLoc[12](loc8: Decimal)
60CopyLoc[0](Arg0: &RebaseFeeModel)
61ImmBorrowField[1](RebaseFeeModel.multiplier: Decimal)
62ReadRef
63MoveLoc[12](loc8: Decimal)
64Call decimal::to_rate(Decimal): Rate
65Call decimal::mul_with_rate(Decimal, Rate): Decimal
66StLoc[9](loc5: Decimal)
67MoveLoc[0](Arg0: &RebaseFeeModel)
68ImmBorrowField[0](RebaseFeeModel.base: Rate)
69ReadRef
70MoveLoc[9](loc5: Decimal)
71Call decimal::to_rate(Decimal): Rate
72Call rate::add(Rate, Rate): Rate
73StLoc[8](loc4: Rate)
B15:
74MoveLoc[8](loc4: Rate)
75Ret
}
get_rebase_fee_exponent(Arg0: &RebaseFeeModel): u256 {
L1: loc0: u256
L2: loc1: RebaseFeeExponentKey
B0:
0LdFalse
1Pack[1](RebaseFeeExponentKey)
2StLoc[2](loc1: RebaseFeeExponentKey)
3CopyLoc[0](Arg0: &RebaseFeeModel)
4ImmBorrowField[2](RebaseFeeModel.id: UID)
5CopyLoc[2](loc1: RebaseFeeExponentKey)
6Call dynamic_field::exists_<RebaseFeeExponentKey>(&UID, RebaseFeeExponentKey): bool
7BrFalse(15)
B1:
8MoveLoc[0](Arg0: &RebaseFeeModel)
9ImmBorrowField[2](RebaseFeeModel.id: UID)
10MoveLoc[2](loc1: RebaseFeeExponentKey)
11Call dynamic_field::borrow<RebaseFeeExponentKey, u256>(&UID, RebaseFeeExponentKey): &u256
12ReadRef
13StLoc[1](loc0: u256)
14Branch(19)
B2:
15MoveLoc[0](Arg0: &RebaseFeeModel)
16Pop
17LdConst[4](u256: 1000..)
18StLoc[1](loc0: u256)
B3:
19MoveLoc[1](loc0: u256)
20Ret
}
public compute_reserving_fee_rate(Arg0: &ReservingFeeModel, Arg1: Rate, Arg2: u64): Rate {
B0:
0MoveLoc[0](Arg0: &ReservingFeeModel)
1ImmBorrowField[3](ReservingFeeModel.multiplier: Decimal)
2ReadRef
3MoveLoc[1](Arg1: Rate)
4Call decimal::mul_with_rate(Decimal, Rate): Decimal
5Call decimal::to_rate(Decimal): Rate
6MoveLoc[2](Arg2: u64)
7Call rate::mul_with_u64(Rate, u64): Rate
8LdConst[5](u64: 28800)
9Call rate::div_by_u64(Rate, u64): Rate
10Ret
}
public compute_funding_fee_rate(Arg0: &FundingFeeModel, Arg1: SDecimal, Arg2: u64): SRate {
L3: loc0: Rate
L4: loc1: Rate
B0:
0CopyLoc[0](Arg0: &FundingFeeModel)
1ImmBorrowField[4](FundingFeeModel.multiplier: Decimal)
2ReadRef
3ImmBorrowLoc[1](Arg1: SDecimal)
4Call sdecimal::value(&SDecimal): Decimal
5Call decimal::mul(Decimal, Decimal): Decimal
6Call decimal::to_rate(Decimal): Rate
7StLoc[3](loc0: Rate)
8ImmBorrowLoc[3](loc0: Rate)
9CopyLoc[0](Arg0: &FundingFeeModel)
10ImmBorrowField[5](FundingFeeModel.max: Rate)
11Call rate::gt(&Rate, &Rate): bool
12BrFalse(18)
B1:
13MoveLoc[0](Arg0: &FundingFeeModel)
14ImmBorrowField[5](FundingFeeModel.max: Rate)
15ReadRef
16StLoc[3](loc0: Rate)
17Branch(20)
B2:
18MoveLoc[0](Arg0: &FundingFeeModel)
19Pop
B3:
20MoveLoc[3](loc0: Rate)
21MoveLoc[2](Arg2: u64)
22Call rate::mul_with_u64(Rate, u64): Rate
23LdConst[5](u64: 28800)
24Call rate::div_by_u64(Rate, u64): Rate
25StLoc[4](loc1: Rate)
26ImmBorrowLoc[1](Arg1: SDecimal)
27Call sdecimal::is_positive(&SDecimal): bool
28Not
29MoveLoc[4](loc1: Rate)
30Call srate::from_rate(bool, Rate): SRate
31Ret
}
public compute_oi_funding_rate(Arg0: &OiFundingModel, Arg1: Decimal, Arg2: Decimal, Arg3: u64): SRate {
B0:
0MoveLoc[0](Arg0: &OiFundingModel)
1MoveLoc[1](Arg1: Decimal)
2MoveLoc[2](Arg2: Decimal)
3Call decimal::zero(): Decimal
4Call decimal::zero(): Decimal
5MoveLoc[3](Arg3: u64)
6Call compute_oi_funding_rate_capped(&OiFundingModel, Decimal, Decimal, Decimal, Decimal, u64): SRate
7Ret
}
public(friend) compute_oi_funding_rate_capped(Arg0: &OiFundingModel, Arg1: Decimal, Arg2: Decimal, Arg3: Decimal, Arg4: Decimal, Arg5: u64): SRate {
L6: loc0: bool
L7: loc1: Decimal
L8: loc2: &Decimal
L9: loc3: Decimal
L10: loc4: Decimal
L11: loc5: &Decimal
L12: loc6: Decimal
L13: loc7: SDecimal
L14: loc8: Rate
L15: loc9: Decimal
L16: loc10: Decimal
L17: loc11: Decimal
L18: loc12: Decimal
L19: loc13: Rate
L20: loc14: SDecimal
L21: loc15: bool
L22: loc16: SDecimal
L23: loc17: Decimal
B0:
0ImmBorrowLoc[3](Arg3: Decimal)
1Call decimal::is_zero(&Decimal): bool
2Not
3BrFalse(9)
B1:
4ImmBorrowLoc[4](Arg4: Decimal)
5Call decimal::is_zero(&Decimal): bool
6Not
7StLoc[6](loc0: bool)
8Branch(11)
B2:
9LdFalse
10StLoc[6](loc0: bool)
B3:
11MoveLoc[6](loc0: bool)
12BrFalse(60)
B4:
13MoveLoc[1](Arg1: Decimal)
14MoveLoc[3](Arg3: Decimal)
15Call decimal::div(Decimal, Decimal): Decimal
16StLoc[17](loc11: Decimal)
17ImmBorrowLoc[17](loc11: Decimal)
18StLoc[8](loc2: &Decimal)
19Call decimal::one(): Decimal
20StLoc[7](loc1: Decimal)
21MoveLoc[8](loc2: &Decimal)
22ImmBorrowLoc[7](loc1: Decimal)
23Call decimal::gt(&Decimal, &Decimal): bool
24BrFalse(28)
B5:
25Call decimal::one(): Decimal
26StLoc[9](loc3: Decimal)
27Branch(30)
B6:
28MoveLoc[17](loc11: Decimal)
29StLoc[9](loc3: Decimal)
B7:
30MoveLoc[9](loc3: Decimal)
31StLoc[15](loc9: Decimal)
32MoveLoc[2](Arg2: Decimal)
33MoveLoc[4](Arg4: Decimal)
34Call decimal::div(Decimal, Decimal): Decimal
35StLoc[18](loc12: Decimal)
36ImmBorrowLoc[18](loc12: Decimal)
37StLoc[11](loc5: &Decimal)
38Call decimal::one(): Decimal
39StLoc[10](loc4: Decimal)
40MoveLoc[11](loc5: &Decimal)
41ImmBorrowLoc[10](loc4: Decimal)
42Call decimal::gt(&Decimal, &Decimal): bool
43BrFalse(47)
B8:
44Call decimal::one(): Decimal
45StLoc[12](loc6: Decimal)
46Branch(49)
B9:
47MoveLoc[18](loc12: Decimal)
48StLoc[12](loc6: Decimal)
B10:
49MoveLoc[12](loc6: Decimal)
50StLoc[16](loc10: Decimal)
51LdTrue
52MoveLoc[15](loc9: Decimal)
53Call sdecimal::from_decimal(bool, Decimal): SDecimal
54LdTrue
55MoveLoc[16](loc10: Decimal)
56Call sdecimal::from_decimal(bool, Decimal): SDecimal
57Call sdecimal::sub(SDecimal, SDecimal): SDecimal
58StLoc[13](loc7: SDecimal)
59Branch(83)
B11:
60CopyLoc[1](Arg1: Decimal)
61CopyLoc[2](Arg2: Decimal)
62Call decimal::add(Decimal, Decimal): Decimal
63StLoc[23](loc17: Decimal)
64ImmBorrowLoc[23](loc17: Decimal)
65Call decimal::is_zero(&Decimal): bool
66BrFalse(71)
B12:
67MoveLoc[0](Arg0: &OiFundingModel)
68Pop
69Call srate::zero(): SRate
70Ret
B13:
71LdTrue
72MoveLoc[1](Arg1: Decimal)
73Call sdecimal::from_decimal(bool, Decimal): SDecimal
74LdTrue
75MoveLoc[2](Arg2: Decimal)
76Call sdecimal::from_decimal(bool, Decimal): SDecimal
77Call sdecimal::sub(SDecimal, SDecimal): SDecimal
78LdTrue
79MoveLoc[23](loc17: Decimal)
80Call sdecimal::from_decimal(bool, Decimal): SDecimal
81Call sdecimal::div(SDecimal, SDecimal): SDecimal
82StLoc[13](loc7: SDecimal)
B14:
83MoveLoc[13](loc7: SDecimal)
84StLoc[20](loc14: SDecimal)
85ImmBorrowLoc[20](loc14: SDecimal)
86Call sdecimal::is_zero(&SDecimal): bool
87BrFalse(92)
B15:
88MoveLoc[0](Arg0: &OiFundingModel)
89Pop
90Call srate::zero(): SRate
91Ret
B16:
92ImmBorrowLoc[20](loc14: SDecimal)
93Call sdecimal::is_positive(&SDecimal): bool
94StLoc[21](loc15: bool)
95LdTrue
96ImmBorrowLoc[20](loc14: SDecimal)
97Call sdecimal::value(&SDecimal): Decimal
98Call sdecimal::from_decimal(bool, Decimal): SDecimal
99CopyLoc[0](Arg0: &OiFundingModel)
100ImmBorrowField[6](OiFundingModel.exponent: Decimal)
101ReadRef
102Call decimal::floor_u64(Decimal): u64
103Call sdecimal::pow_u64(SDecimal, u64): SDecimal
104StLoc[22](loc16: SDecimal)
105CopyLoc[0](Arg0: &OiFundingModel)
106ImmBorrowField[7](OiFundingModel.multiplier: Decimal)
107ReadRef
108ImmBorrowLoc[22](loc16: SDecimal)
109Call sdecimal::value(&SDecimal): Decimal
110Call decimal::to_rate(Decimal): Rate
111Call decimal::mul_with_rate(Decimal, Rate): Decimal
112Call decimal::to_rate(Decimal): Rate
113StLoc[14](loc8: Rate)
114ImmBorrowLoc[14](loc8: Rate)
115CopyLoc[0](Arg0: &OiFundingModel)
116ImmBorrowField[8](OiFundingModel.max: Rate)
117Call rate::gt(&Rate, &Rate): bool
118BrFalse(124)
B17:
119MoveLoc[0](Arg0: &OiFundingModel)
120ImmBorrowField[8](OiFundingModel.max: Rate)
121ReadRef
122StLoc[14](loc8: Rate)
123Branch(126)
B18:
124MoveLoc[0](Arg0: &OiFundingModel)
125Pop
B19:
126MoveLoc[14](loc8: Rate)
127MoveLoc[5](Arg5: u64)
128Call rate::mul_with_u64(Rate, u64): Rate
129LdConst[5](u64: 28800)
130Call rate::div_by_u64(Rate, u64): Rate
131StLoc[19](loc13: Rate)
132MoveLoc[21](loc15: bool)
133MoveLoc[19](loc13: Rate)
134Call srate::from_rate(bool, Rate): SRate
135Ret
}
entry update_rebase_fee_model(Arg0: &AdminCap, Arg1: &mut RebaseFeeModel, Arg2: u128, Arg3: u256, Arg4: &mut TxContext) {
B0:
0CopyLoc[2](Arg2: u128)
1CastU256
2Call validate_base(u256)
3CopyLoc[3](Arg3: u256)
4Call validate_multiplier(u256)
5MoveLoc[2](Arg2: u128)
6Call rate::from_raw(u128): Rate
7CopyLoc[1](Arg1: &mut RebaseFeeModel)
8MutBorrowField[0](RebaseFeeModel.base: Rate)
9WriteRef
10MoveLoc[3](Arg3: u256)
11Call decimal::from_raw(u256): Decimal
12MoveLoc[1](Arg1: &mut RebaseFeeModel)
13MutBorrowField[1](RebaseFeeModel.multiplier: Decimal)
14WriteRef
15Ret
}
entry set_rebase_fee_exponent(Arg0: &AdminCap, Arg1: &mut RebaseFeeModel, Arg2: u256, Arg3: &mut TxContext) {
L4: loc0: &mut u256
L5: loc1: RebaseFeeExponentKey
B0:
0CopyLoc[2](Arg2: u256)
1Call validate_rebase_exponent_raw(u256)
2LdFalse
3Pack[1](RebaseFeeExponentKey)
4StLoc[5](loc1: RebaseFeeExponentKey)
5CopyLoc[1](Arg1: &mut RebaseFeeModel)
6ImmBorrowField[2](RebaseFeeModel.id: UID)
7CopyLoc[5](loc1: RebaseFeeExponentKey)
8Call dynamic_field::exists_<RebaseFeeExponentKey>(&UID, RebaseFeeExponentKey): bool
9BrFalse(19)
B1:
10MoveLoc[1](Arg1: &mut RebaseFeeModel)
11MutBorrowField[2](RebaseFeeModel.id: UID)
12MoveLoc[5](loc1: RebaseFeeExponentKey)
13Call dynamic_field::borrow_mut<RebaseFeeExponentKey, u256>(&mut UID, RebaseFeeExponentKey): &mut u256
14StLoc[4](loc0: &mut u256)
15MoveLoc[2](Arg2: u256)
16MoveLoc[4](loc0: &mut u256)
17WriteRef
18Branch(24)
B2:
19MoveLoc[1](Arg1: &mut RebaseFeeModel)
20MutBorrowField[2](RebaseFeeModel.id: UID)
21MoveLoc[5](loc1: RebaseFeeExponentKey)
22MoveLoc[2](Arg2: u256)
23Call dynamic_field::add<RebaseFeeExponentKey, u256>(&mut UID, RebaseFeeExponentKey, u256)
B3:
24Ret
}
entry update_reserving_fee_model(Arg0: &AdminCap, Arg1: &mut ReservingFeeModel, Arg2: u256, Arg3: &mut TxContext) {
B0:
0CopyLoc[2](Arg2: u256)
1Call validate_multiplier(u256)
2MoveLoc[2](Arg2: u256)
3Call decimal::from_raw(u256): Decimal
4MoveLoc[1](Arg1: &mut ReservingFeeModel)
5MutBorrowField[3](ReservingFeeModel.multiplier: Decimal)
6WriteRef
7Ret
}
entry update_funding_fee_model(Arg0: &AdminCap, Arg1: &mut FundingFeeModel, Arg2: u256, Arg3: u128, Arg4: &mut TxContext) {
B0:
0CopyLoc[2](Arg2: u256)
1Call validate_multiplier(u256)
2CopyLoc[3](Arg3: u128)
3CastU256
4Call validate_max_rate(u256)
5MoveLoc[2](Arg2: u256)
6Call decimal::from_raw(u256): Decimal
7CopyLoc[1](Arg1: &mut FundingFeeModel)
8MutBorrowField[4](FundingFeeModel.multiplier: Decimal)
9WriteRef
10MoveLoc[3](Arg3: u128)
11Call rate::from_raw(u128): Rate
12MoveLoc[1](Arg1: &mut FundingFeeModel)
13MutBorrowField[5](FundingFeeModel.max: Rate)
14WriteRef
15Ret
}
public(friend) update_oi_funding_model(Arg0: &mut OiFundingModel, Arg1: u256, Arg2: u256, Arg3: u128) {
B0:
0CopyLoc[1](Arg1: u256)
1Call validate_funding_multiplier(u256)
2CopyLoc[3](Arg3: u128)
3CastU256
4Call validate_max_rate(u256)
5CopyLoc[2](Arg2: u256)
6Call validate_exponent_raw(u256)
7MoveLoc[1](Arg1: u256)
8Call decimal::from_raw(u256): Decimal
9CopyLoc[0](Arg0: &mut OiFundingModel)
10MutBorrowField[7](OiFundingModel.multiplier: Decimal)
11WriteRef
12MoveLoc[2](Arg2: u256)
13Call decimal::from_raw(u256): Decimal
14CopyLoc[0](Arg0: &mut OiFundingModel)
15MutBorrowField[6](OiFundingModel.exponent: Decimal)
16WriteRef
17MoveLoc[3](Arg3: u128)
18Call rate::from_raw(u128): Rate
19MoveLoc[0](Arg0: &mut OiFundingModel)
20MutBorrowField[8](OiFundingModel.max: Rate)
21WriteRef
22Ret
}
Constants [
0 => u64: 19001
1 => u64: 19002
2 => u64: 19003
3 => u64: 19004
4 => u256: 1000000000000000000
5 => u64: 28800
6 => u256: 10000000000000000
7 => u256: 100000000000000
8 => u256: 100000000000000000
9 => u256: 100000000000
10 => u256: 10000000000000000000
11 => u256: 3000000000000000000
]
}