@aftermath/afterburner-vaults::vault bytecode | tide- Move path
- 0x79ee…5b7a::vault
- Functions
- 6042 public, 1 entry
- Structs
- 4
vault
The on-chain disassembly. Offsets are bytecode positions within each function.
1// Move bytecode v7
2module 79ee374b9e3c60c00a19fdbeaea25731bbea8f2cab9bb61bb712543e0ba55b7a.vault {
3use 79ee374b9e3c60c00a19fdbeaea25731bbea8f2cab9bb61bb712543e0ba55b7a::authority;
4use 79ee374b9e3c60c00a19fdbeaea25731bbea8f2cab9bb61bb712543e0ba55b7a::events;
5use 79ee374b9e3c60c00a19fdbeaea25731bbea8f2cab9bb61bb712543e0ba55b7a::utils;
6use 79ee374b9e3c60c00a19fdbeaea25731bbea8f2cab9bb61bb712543e0ba55b7a::version;
7use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
8use 0000000000000000000000000000000000000000000000000000000000000001::u64;
9use 0000000000000000000000000000000000000000000000000000000000000001::vector;
10use 0000000000000000000000000000000000000000000000000000000000000002::balance;
11use 0000000000000000000000000000000000000000000000000000000000000002::clock;
12use 0000000000000000000000000000000000000000000000000000000000000002::coin;
13use 0000000000000000000000000000000000000000000000000000000000000002::dynamic_field;
14use 0000000000000000000000000000000000000000000000000000000000000002::object;
15use 0000000000000000000000000000000000000000000000000000000000000002::package;
16use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
17use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
18use 0000000000000000000000000000000000000000000000000000000000000002::vec_set;
20struct VAULT has drop {
24struct Vault<phantom Ty0> has key {
26 type_names: vector<TypeName>,
27 total_staked_amount: u64,
28 total_multiplier_staked_amount: u64,
29 total_rewards_emitted: vector<u64>,
30 total_rewards_remaining: vector<u64>,
31 total_rewards_accumulated_per_share: vector<u128>,
32 emission_rates: vector<u64>,
33 emission_frequencies_ms: vector<u64>,
34 emission_start_timestamps_ms: vector<u64>,
35 emission_end_timestamps_ms: vector<u64>,
36 last_reward_timestamps_ms: vector<u64>,
37 supported_lock_enforcements: vector<LockEnforcement>,
38 min_lock_duration_ms: u64,
39 max_lock_duration_ms: u64,
40 max_lock_multiplier: u64,
44struct OneTime<phantom Ty0, phantom Ty1> has store, key {
46 cap: AuthorityCap<Ty0>
49enum LockEnforcement has copy, drop, store {
54public minimal_claim(): u64 {
60init(Arg0: VAULT, Arg1: &mut TxContext) {
620ImmBorrowLoc[0](Arg0: VAULT)
631CopyLoc[1](Arg1: &mut TxContext)
642Call authority::create_package_admin_cap_and_keep<VAULT>(&VAULT, &mut TxContext)
653ImmBorrowLoc[0](Arg0: VAULT)
664CopyLoc[1](Arg1: &mut TxContext)
675Call version::create_version<VAULT>(&VAULT, &mut TxContext)
686MoveLoc[0](Arg0: VAULT)
697MoveLoc[1](Arg1: &mut TxContext)
708Call package::claim_and_keep<VAULT>(VAULT, &mut TxContext)
74public(friend) from_u8(Arg0: u8): LockEnforcement {
792ImmBorrowLoc[1](loc0: u8)
9010PackVariant(VariantHandleIndex(0))
94public(friend) to_u8(Arg0: LockEnforcement): u8 {
95L1: loc0: &LockEnforcement
96L2: loc1: LockEnforcement
980MoveLoc[0](Arg0: LockEnforcement)
991StLoc[2](loc1: LockEnforcement)
1002ImmBorrowLoc[2](loc1: LockEnforcement)
1013StLoc[1](loc0: &LockEnforcement)
1024CopyLoc[1](loc0: &LockEnforcement)
1035VariantSwitch(VariantJumpTableIndex(0))
1056MoveLoc[1](loc0: &LockEnforcement)
11010MoveLoc[1](loc0: &LockEnforcement)
11111UnpackVariantImmRef(VariantHandleIndex(0))
11212MoveLoc[2](loc1: LockEnforcement)
11313UnpackVariant(VariantHandleIndex(0))
117[0]: variant_switch LockEnforcement {
123public is_strict(Arg0: LockEnforcement): bool {
1250MoveLoc[0](Arg0: LockEnforcement)
1261PackVariant(VariantHandleIndex(0))
131public is_relaxed(Arg0: LockEnforcement): bool {
1330MoveLoc[0](Arg0: LockEnforcement)
1341PackVariant(VariantHandleIndex(1))
139public new<Ty0>(Arg0: &Version, Arg1: vector<u8>, Arg2: u64, Arg3: u64, Arg4: u64, Arg5: u64, Arg6: &mut TxContext): Vault<Ty0> * AuthorityCap<VAULT<ADMIN>> {
141L8: loc1: LockEnforcement
142L9: loc2: &mut vector<LockEnforcement>
145L12: loc5: vector<LockEnforcement>
147L14: loc7: vector<LockEnforcement>
150L17: loc10: Vault<Ty0>
151L18: loc11: AuthorityCap<VAULT<ADMIN>>
1530MoveLoc[0](Arg0: &Version)
1541Call version::assert_correct_package(&Version)
1552CopyLoc[2](Arg2: u64)
1563CopyLoc[3](Arg3: u64)
1627MoveLoc[6](Arg6: &mut TxContext)
16711Call utils::lock_multiplier_lower_bound(): u64
16812CopyLoc[4](Arg4: u64)
17416MoveLoc[6](Arg6: &mut TxContext)
17920CopyLoc[4](Arg4: u64)
18021LdConst[10](u64: 2000..)
18625MoveLoc[6](Arg6: &mut TxContext)
19230ImmBorrowLoc[1](Arg1: vector<u8>)
19935MoveLoc[6](Arg6: &mut TxContext)
20439CopyLoc[1](Arg1: vector<u8>)
20540Call vec_set::from_keys<u8>(vector<u8>): VecSet<u8>
20641Call vec_set::into_keys<u8>(VecSet<u8>): vector<u8>
20742StLoc[15](loc8: vector<u8>)
20944StLoc[12](loc5: vector<LockEnforcement>)
21045MoveLoc[15](loc8: vector<u8>)
21146StLoc[16](loc9: vector<u8>)
21247MutBorrowLoc[16](loc9: vector<u8>)
21348Call vector::reverse<u8>(&mut vector<u8>)
21449ImmBorrowLoc[16](loc9: vector<u8>)
21853StLoc[11](loc4: u64)
21954MoveLoc[7](loc0: u64)
22055StLoc[13](loc6: u64)
22256CopyLoc[11](loc4: u64)
22357CopyLoc[13](loc6: u64)
22760CopyLoc[11](loc4: u64)
22962MutBorrowLoc[16](loc9: vector<u8>)
23265MutBorrowLoc[12](loc5: vector<LockEnforcement>)
23366StLoc[9](loc2: &mut vector<LockEnforcement>)
23467MoveLoc[10](loc3: u8)
23568Call from_u8(u8): LockEnforcement
23669StLoc[8](loc1: LockEnforcement)
23770MoveLoc[9](loc2: &mut vector<LockEnforcement>)
23871MoveLoc[8](loc1: LockEnforcement)
24073MoveLoc[11](loc4: u64)
24376StLoc[11](loc4: u64)
24678MoveLoc[16](loc9: vector<u8>)
24880MoveLoc[12](loc5: vector<LockEnforcement>)
24981StLoc[14](loc7: vector<LockEnforcement>)
25082CopyLoc[6](Arg6: &mut TxContext)
25183Call object::new(&mut TxContext): UID
25587LdConst[11](vector<u64>: 00)
25688LdConst[11](vector<u64>: 00)
25789LdConst[12](vector<u128>: 00)
25890LdConst[11](vector<u64>: 00)
25991LdConst[11](vector<u64>: 00)
26092LdConst[11](vector<u64>: 00)
26193LdConst[11](vector<u64>: 00)
26294LdConst[11](vector<u64>: 00)
26395MoveLoc[14](loc7: vector<LockEnforcement>)
26496CopyLoc[2](Arg2: u64)
26597CopyLoc[3](Arg3: u64)
26698CopyLoc[4](Arg4: u64)
26799CopyLoc[5](Arg5: u64)
268100PackGeneric[0](Vault<Ty0>)
269101StLoc[17](loc10: Vault<Ty0>)
270102ImmBorrowLoc[17](loc10: Vault<Ty0>)
271103ImmBorrowFieldGeneric[0](Vault.id: UID)
272104Call object::uid_to_inner(&UID): ID
273105MoveLoc[6](Arg6: &mut TxContext)
274106Call authority::create_vault_admin_cap(ID, &mut TxContext): AuthorityCap<VAULT<ADMIN>>
275107StLoc[18](loc11: AuthorityCap<VAULT<ADMIN>>)
276108ImmBorrowLoc[17](loc10: Vault<Ty0>)
277109ImmBorrowFieldGeneric[0](Vault.id: UID)
278110Call object::uid_to_inner(&UID): ID
279111MoveLoc[1](Arg1: vector<u8>)
280112MoveLoc[2](Arg2: u64)
281113MoveLoc[3](Arg3: u64)
282114MoveLoc[4](Arg4: u64)
283115MoveLoc[5](Arg5: u64)
284116Call events::emit_created_vault_event<Ty0>(ID, vector<u8>, u64, u64, u64, u64)
285117MoveLoc[17](loc10: Vault<Ty0>)
286118MoveLoc[18](loc11: AuthorityCap<VAULT<ADMIN>>)
290public share<Ty0>(Arg0: Vault<Ty0>) {
2920MoveLoc[0](Arg0: Vault<Ty0>)
2931Call transfer::share_object<Vault<Ty0>>(Vault<Ty0>)
297public size<Ty0>(Arg0: &Vault<Ty0>): u64 {
2990MoveLoc[0](Arg0: &Vault<Ty0>)
3001ImmBorrowFieldGeneric[1](Vault.type_names: vector<TypeName>)
305public type_names<Ty0>(Arg0: &Vault<Ty0>): vector<TypeName> {
3070MoveLoc[0](Arg0: &Vault<Ty0>)
3081ImmBorrowFieldGeneric[1](Vault.type_names: vector<TypeName>)
313public contains<Ty0, Ty1>(Arg0: &Vault<Ty0>): bool {
3150MoveLoc[0](Arg0: &Vault<Ty0>)
3161Call type_name::get<Ty1>(): TypeName
3172Call contains_type_name<Ty0>(&Vault<Ty0>, TypeName): bool
321public contains_type_name<Ty0>(Arg0: &Vault<Ty0>, Arg1: TypeName): bool {
3230MoveLoc[0](Arg0: &Vault<Ty0>)
3241ImmBorrowFieldGeneric[1](Vault.type_names: vector<TypeName>)
3252ImmBorrowLoc[1](Arg1: TypeName)
3263Call vector::index_of<TypeName>(&vector<TypeName>, &TypeName): bool * u64
331public type_to_index<Ty0, Ty1>(Arg0: &Vault<Ty0>): u64 {
3330MoveLoc[0](Arg0: &Vault<Ty0>)
3341Call type_name::get<Ty1>(): TypeName
3352Call type_name_to_index<Ty0>(&Vault<Ty0>, TypeName): u64
339public type_name_to_index<Ty0>(Arg0: &Vault<Ty0>, Arg1: TypeName): u64 {
3420MoveLoc[0](Arg0: &Vault<Ty0>)
3431ImmBorrowFieldGeneric[1](Vault.type_names: vector<TypeName>)
3442ImmBorrowLoc[1](Arg1: TypeName)
3453Call vector::index_of<TypeName>(&vector<TypeName>, &TypeName): bool * u64
3549MoveLoc[2](loc0: u64)
358public total_rewards_emitted<Ty0>(Arg0: &Vault<Ty0>): vector<u64> {
3600MoveLoc[0](Arg0: &Vault<Ty0>)
3611ImmBorrowFieldGeneric[2](Vault.total_rewards_emitted: vector<u64>)
366public total_rewards_remaining<Ty0>(Arg0: &Vault<Ty0>): vector<u64> {
3680MoveLoc[0](Arg0: &Vault<Ty0>)
3691ImmBorrowFieldGeneric[3](Vault.total_rewards_remaining: vector<u64>)
374public total_rewards_accumulated_per_share<Ty0>(Arg0: &Vault<Ty0>): vector<u128> {
3760MoveLoc[0](Arg0: &Vault<Ty0>)
3771ImmBorrowFieldGeneric[4](Vault.total_rewards_accumulated_per_share: vector<u128>)
382public total_staked_amount<Ty0>(Arg0: &Vault<Ty0>): u64 {
3840MoveLoc[0](Arg0: &Vault<Ty0>)
3851ImmBorrowFieldGeneric[5](Vault.total_staked_amount: u64)
390public total_multiplier_staked_amount<Ty0>(Arg0: &Vault<Ty0>): u64 {
3920MoveLoc[0](Arg0: &Vault<Ty0>)
3931ImmBorrowFieldGeneric[6](Vault.total_multiplier_staked_amount: u64)
398public emission_frequencies_ms<Ty0>(Arg0: &Vault<Ty0>): vector<u64> {
4000MoveLoc[0](Arg0: &Vault<Ty0>)
4011ImmBorrowFieldGeneric[7](Vault.emission_frequencies_ms: vector<u64>)
406public emission_rates<Ty0>(Arg0: &Vault<Ty0>): vector<u64> {
4080MoveLoc[0](Arg0: &Vault<Ty0>)
4091ImmBorrowFieldGeneric[8](Vault.emission_rates: vector<u64>)
414public emission_start_timestamps_ms<Ty0>(Arg0: &Vault<Ty0>): vector<u64> {
4160MoveLoc[0](Arg0: &Vault<Ty0>)
4171ImmBorrowFieldGeneric[9](Vault.emission_start_timestamps_ms: vector<u64>)
422public emission_end_timestamp_ms<Ty0>(Arg0: &Vault<Ty0>): u64 {
4240MoveLoc[0](Arg0: &Vault<Ty0>)
4251ImmBorrowFieldGeneric[10](Vault.emission_end_timestamps_ms: vector<u64>)
4262Call utils::max(&vector<u64>): u64
430public last_reward_timestamps_ms<Ty0>(Arg0: &Vault<Ty0>): vector<u64> {
4320MoveLoc[0](Arg0: &Vault<Ty0>)
4331ImmBorrowFieldGeneric[11](Vault.last_reward_timestamps_ms: vector<u64>)
438public supported_lock_enforcements<Ty0>(Arg0: &Vault<Ty0>): vector<LockEnforcement> {
4400MoveLoc[0](Arg0: &Vault<Ty0>)
4411ImmBorrowFieldGeneric[12](Vault.supported_lock_enforcements: vector<LockEnforcement>)
446public supports<Ty0>(Arg0: &Vault<Ty0>, Arg1: LockEnforcement): bool {
4480MoveLoc[0](Arg0: &Vault<Ty0>)
4491ImmBorrowFieldGeneric[12](Vault.supported_lock_enforcements: vector<LockEnforcement>)
4502ImmBorrowLoc[1](Arg1: LockEnforcement)
4513Call vector::contains<LockEnforcement>(&vector<LockEnforcement>, &LockEnforcement): bool
455public min_lock_duration_ms<Ty0>(Arg0: &Vault<Ty0>): u64 {
4570MoveLoc[0](Arg0: &Vault<Ty0>)
4581ImmBorrowFieldGeneric[13](Vault.min_lock_duration_ms: u64)
463public max_lock_duration_ms<Ty0>(Arg0: &Vault<Ty0>): u64 {
4650MoveLoc[0](Arg0: &Vault<Ty0>)
4661ImmBorrowFieldGeneric[14](Vault.max_lock_duration_ms: u64)
471public max_lock_multiplier<Ty0>(Arg0: &Vault<Ty0>): u64 {
4730MoveLoc[0](Arg0: &Vault<Ty0>)
4741ImmBorrowFieldGeneric[15](Vault.max_lock_multiplier: u64)
479public calc_lock_multiplier<Ty0>(Arg0: &Vault<Ty0>, Arg1: u64): u64 {
4810MoveLoc[1](Arg1: u64)
4821CopyLoc[0](Arg0: &Vault<Ty0>)
4832ImmBorrowFieldGeneric[13](Vault.min_lock_duration_ms: u64)
4854CopyLoc[0](Arg0: &Vault<Ty0>)
4865ImmBorrowFieldGeneric[14](Vault.max_lock_duration_ms: u64)
4887MoveLoc[0](Arg0: &Vault<Ty0>)
4898ImmBorrowFieldGeneric[15](Vault.max_lock_multiplier: u64)
49110Call utils::calc_lock_multiplier(u64, u64, u64, u64): u64
495public min_stake_amount<Ty0>(Arg0: &Vault<Ty0>): u64 {
4970MoveLoc[0](Arg0: &Vault<Ty0>)
4981ImmBorrowFieldGeneric[16](Vault.min_stake_amount: u64)
503public calc_rewards_debt<Ty0>(Arg0: &Vault<Ty0>, Arg1: u64): vector<u64> {
5090LdConst[11](vector<u64>: 00)
5101StLoc[5](loc3: vector<u64>)
5112CopyLoc[0](Arg0: &Vault<Ty0>)
5123Call size<Ty0>(&Vault<Ty0>): u64
5177CopyLoc[2](loc0: u64)
5188CopyLoc[3](loc1: u64)
52412CopyLoc[0](Arg0: &Vault<Ty0>)
52513ImmBorrowFieldGeneric[4](Vault.total_rewards_accumulated_per_share: vector<u128>)
52614CopyLoc[2](loc0: u64)
52917CopyLoc[1](Arg1: u64)
53018Call utils::multiply_u128(u128, u64): u128
53119Call utils::total_rewards_accumulated_per_share_scaling_factor(): u64
53220Call utils::divide(u128, u64): u64
53422MutBorrowLoc[5](loc3: vector<u64>)
53523MoveLoc[4](loc2: u64)
53725MoveLoc[2](loc0: u64)
54330MoveLoc[0](Arg0: &Vault<Ty0>)
54532MoveLoc[5](loc3: vector<u64>)
549public emit_rewards<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &Version, Arg2: &Clock) {
5540MoveLoc[1](Arg1: &Version)
5551Call version::assert_correct_package(&Version)
5562CopyLoc[0](Arg0: &mut Vault<Ty0>)
5573ImmBorrowFieldGeneric[5](Vault.total_staked_amount: u64)
5638MoveLoc[0](Arg0: &mut Vault<Ty0>)
56510MoveLoc[2](Arg2: &Clock)
56913MoveLoc[2](Arg2: &Clock)
57014Call clock::timestamp_ms(&Clock): u64
57216CopyLoc[0](Arg0: &mut Vault<Ty0>)
57418Call size<Ty0>(&Vault<Ty0>): u64
57922CopyLoc[4](loc1: u64)
58023CopyLoc[5](loc2: u64)
58426CopyLoc[0](Arg0: &mut Vault<Ty0>)
58527CopyLoc[4](loc1: u64)
58628CopyLoc[3](loc0: u64)
58729Call emit_reward<Ty0>(&mut Vault<Ty0>, u64, u64)
58830MoveLoc[4](loc1: u64)
59435MoveLoc[0](Arg0: &mut Vault<Ty0>)
599public(friend) reemit_rewards<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: u64, Arg2: u64) {
6010MoveLoc[0](Arg0: &mut Vault<Ty0>)
6021MoveLoc[1](Arg1: u64)
6032MoveLoc[2](Arg2: u64)
6043Call increase_total_rewards_accumulated_per_share<Ty0>(&mut Vault<Ty0>, u64, u64)
608public(friend) increase_total_staked_amount<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: u64) {
6100CopyLoc[0](Arg0: &mut Vault<Ty0>)
6111ImmBorrowFieldGeneric[5](Vault.total_staked_amount: u64)
6133MoveLoc[1](Arg1: u64)
6155MoveLoc[0](Arg0: &mut Vault<Ty0>)
6166MutBorrowFieldGeneric[5](Vault.total_staked_amount: u64)
621public(friend) increase_total_multiplier_staked_amount<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: u64) {
6230CopyLoc[0](Arg0: &mut Vault<Ty0>)
6241ImmBorrowFieldGeneric[6](Vault.total_multiplier_staked_amount: u64)
6263MoveLoc[1](Arg1: u64)
6285MoveLoc[0](Arg0: &mut Vault<Ty0>)
6296MutBorrowFieldGeneric[6](Vault.total_multiplier_staked_amount: u64)
634public(friend) decrease_total_staked_amount<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: u64) {
6360CopyLoc[0](Arg0: &mut Vault<Ty0>)
6371ImmBorrowFieldGeneric[5](Vault.total_staked_amount: u64)
6393CopyLoc[1](Arg1: u64)
6457MoveLoc[0](Arg0: &mut Vault<Ty0>)
65011CopyLoc[0](Arg0: &mut Vault<Ty0>)
65112ImmBorrowFieldGeneric[5](Vault.total_staked_amount: u64)
65314MoveLoc[1](Arg1: u64)
65516MoveLoc[0](Arg0: &mut Vault<Ty0>)
65617MutBorrowFieldGeneric[5](Vault.total_staked_amount: u64)
661public(friend) decrease_total_multiplier_staked_amount<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: u64) {
6630CopyLoc[0](Arg0: &mut Vault<Ty0>)
6641ImmBorrowFieldGeneric[6](Vault.total_multiplier_staked_amount: u64)
6663CopyLoc[1](Arg1: u64)
6727MoveLoc[0](Arg0: &mut Vault<Ty0>)
67711CopyLoc[0](Arg0: &mut Vault<Ty0>)
67812ImmBorrowFieldGeneric[6](Vault.total_multiplier_staked_amount: u64)
68014MoveLoc[1](Arg1: u64)
68216MoveLoc[0](Arg0: &mut Vault<Ty0>)
68317MutBorrowFieldGeneric[6](Vault.total_multiplier_staked_amount: u64)
688public(friend) claim_rewards<Ty0, Ty1>(Arg0: &mut Vault<Ty0>, Arg1: u64, Arg2: &mut TxContext): Coin<Ty1> {
6910CopyLoc[1](Arg1: u64)
6985MoveLoc[0](Arg0: &mut Vault<Ty0>)
7007MoveLoc[2](Arg2: &mut TxContext)
70511Call type_name::get<Ty1>(): TypeName
70612StLoc[3](loc0: TypeName)
70713MoveLoc[0](Arg0: &mut Vault<Ty0>)
70814MutBorrowFieldGeneric[0](Vault.id: UID)
70915MoveLoc[3](loc0: TypeName)
71016Call dynamic_field::borrow_mut<TypeName, Balance<Ty1>>(&mut UID, TypeName): &mut Balance<Ty1>
71117MoveLoc[1](Arg1: u64)
71218Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
71319MoveLoc[2](Arg2: &mut TxContext)
71420Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
718public(friend) adjust_emission_start_timestamps_ms<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: &Clock) {
7230CopyLoc[0](Arg0: &mut Vault<Ty0>)
7241ImmBorrowFieldGeneric[5](Vault.total_staked_amount: u64)
7306MoveLoc[0](Arg0: &mut Vault<Ty0>)
7328MoveLoc[1](Arg1: &Clock)
73611MoveLoc[1](Arg1: &Clock)
73712Call clock::timestamp_ms(&Clock): u64
73914CopyLoc[0](Arg0: &mut Vault<Ty0>)
74116Call size<Ty0>(&Vault<Ty0>): u64
74620CopyLoc[3](loc1: u64)
74721CopyLoc[4](loc2: u64)
75124CopyLoc[0](Arg0: &mut Vault<Ty0>)
75225ImmBorrowFieldGeneric[9](Vault.emission_start_timestamps_ms: vector<u64>)
75326CopyLoc[3](loc1: u64)
75629CopyLoc[2](loc0: u64)
76233CopyLoc[2](loc0: u64)
76334CopyLoc[0](Arg0: &mut Vault<Ty0>)
76435MutBorrowFieldGeneric[9](Vault.emission_start_timestamps_ms: vector<u64>)
76536CopyLoc[3](loc1: u64)
76839CopyLoc[2](loc0: u64)
76940CopyLoc[0](Arg0: &mut Vault<Ty0>)
77041MutBorrowFieldGeneric[11](Vault.last_reward_timestamps_ms: vector<u64>)
77142CopyLoc[3](loc1: u64)
77445CopyLoc[0](Arg0: &mut Vault<Ty0>)
77647CopyLoc[3](loc1: u64)
77748Call calc_emission_end_timestamp_ms<Ty0>(&Vault<Ty0>, u64): u64
77849CopyLoc[0](Arg0: &mut Vault<Ty0>)
77950MutBorrowFieldGeneric[10](Vault.emission_end_timestamps_ms: vector<u64>)
78051CopyLoc[3](loc1: u64)
78454MoveLoc[3](loc1: u64)
79059MoveLoc[0](Arg0: &mut Vault<Ty0>)
795entry set_total_multiplier_stake_amount<Ty0>(Arg0: &AuthorityCap<PACKAGE<ADMIN>>, Arg1: &mut Vault<Ty0>, Arg2: &Version, Arg3: u64) {
7970MoveLoc[2](Arg2: &Version)
7981Call version::assert_correct_package(&Version)
7992MoveLoc[3](Arg3: u64)
8003MoveLoc[1](Arg1: &mut Vault<Ty0>)
8014MutBorrowFieldGeneric[6](Vault.total_multiplier_staked_amount: u64)
806public initialize_reward<Ty0, Ty1>(Arg0: &AuthorityCap<VAULT<ADMIN>>, Arg1: &mut Vault<Ty0>, Arg2: &Version, Arg3: &Clock, Arg4: Coin<Ty1>, Arg5: u64, Arg6: u64, Arg7: u64) {
8080MoveLoc[2](Arg2: &Version)
8091Call version::assert_correct_package(&Version)
8102MoveLoc[0](Arg0: &AuthorityCap<VAULT<ADMIN>>)
8113CopyLoc[1](Arg1: &mut Vault<Ty0>)
8124ImmBorrowFieldGeneric[0](Vault.id: UID)
8135Call object::uid_to_inner(&UID): ID
8146Call authority::assert_has_authority_over<VAULT<ADMIN>>(&AuthorityCap<VAULT<ADMIN>>, ID)
8157MoveLoc[1](Arg1: &mut Vault<Ty0>)
8168MoveLoc[3](Arg3: &Clock)
8179MoveLoc[4](Arg4: Coin<Ty1>)
81810MoveLoc[5](Arg5: u64)
81911MoveLoc[6](Arg6: u64)
82012MoveLoc[7](Arg7: u64)
82113Call initialize_reward_<Ty0, Ty1>(&mut Vault<Ty0>, &Clock, Coin<Ty1>, u64, u64, u64)
825public add_reward<Ty0, Ty1>(Arg0: &AuthorityCap<VAULT<ADMIN>>, Arg1: &mut Vault<Ty0>, Arg2: &Version, Arg3: Coin<Ty1>) {
8270MoveLoc[2](Arg2: &Version)
8281Call version::assert_correct_package(&Version)
8292MoveLoc[0](Arg0: &AuthorityCap<VAULT<ADMIN>>)
8303CopyLoc[1](Arg1: &mut Vault<Ty0>)
8314ImmBorrowFieldGeneric[0](Vault.id: UID)
8325Call object::uid_to_inner(&UID): ID
8336Call authority::assert_has_authority_over<VAULT<ADMIN>>(&AuthorityCap<VAULT<ADMIN>>, ID)
8347MoveLoc[1](Arg1: &mut Vault<Ty0>)
8358MoveLoc[3](Arg3: Coin<Ty1>)
8369Call add_reward_<Ty0, Ty1>(&mut Vault<Ty0>, Coin<Ty1>)
840public remove_reward<Ty0, Ty1>(Arg0: &AuthorityCap<VAULT<ADMIN>>, Arg1: &mut Vault<Ty0>, Arg2: &Version, Arg3: u64, Arg4: &mut TxContext) {
8420MoveLoc[2](Arg2: &Version)
8431Call version::assert_correct_package(&Version)
8442MoveLoc[0](Arg0: &AuthorityCap<VAULT<ADMIN>>)
8453CopyLoc[1](Arg1: &mut Vault<Ty0>)
8464ImmBorrowFieldGeneric[0](Vault.id: UID)
8475Call object::uid_to_inner(&UID): ID
8486Call authority::assert_has_authority_over<VAULT<ADMIN>>(&AuthorityCap<VAULT<ADMIN>>, ID)
8497MoveLoc[1](Arg1: &mut Vault<Ty0>)
8508MoveLoc[3](Arg3: u64)
8519CopyLoc[4](Arg4: &mut TxContext)
85210Call remove_reward_<Ty0, Ty1>(&mut Vault<Ty0>, u64, &mut TxContext): Coin<Ty1>
85311MoveLoc[4](Arg4: &mut TxContext)
85513Call tx_context::sender(&TxContext): address
85614Call transfer::public_transfer<Coin<Ty1>>(Coin<Ty1>, address)
860public update_emission_schedule<Ty0, Ty1>(Arg0: &AuthorityCap<VAULT<ADMIN>>, Arg1: &mut Vault<Ty0>, Arg2: &Version, Arg3: &Clock, Arg4: u64, Arg5: u64) {
8620CopyLoc[2](Arg2: &Version)
8631Call version::assert_correct_package(&Version)
8642MoveLoc[0](Arg0: &AuthorityCap<VAULT<ADMIN>>)
8653CopyLoc[1](Arg1: &mut Vault<Ty0>)
8664ImmBorrowFieldGeneric[0](Vault.id: UID)
8675Call object::uid_to_inner(&UID): ID
8686Call authority::assert_has_authority_over<VAULT<ADMIN>>(&AuthorityCap<VAULT<ADMIN>>, ID)
8697MoveLoc[1](Arg1: &mut Vault<Ty0>)
8708MoveLoc[2](Arg2: &Version)
8719MoveLoc[3](Arg3: &Clock)
87210MoveLoc[4](Arg4: u64)
87311MoveLoc[5](Arg5: u64)
87412Call update_emission_schedule_<Ty0, Ty1>(&mut Vault<Ty0>, &Version, &Clock, u64, u64)
878public set_min_lock_duration_ms<Ty0>(Arg0: &AuthorityCap<VAULT<ADMIN>>, Arg1: &mut Vault<Ty0>, Arg2: &Version, Arg3: u64) {
8800MoveLoc[2](Arg2: &Version)
8811Call version::assert_correct_package(&Version)
8822MoveLoc[0](Arg0: &AuthorityCap<VAULT<ADMIN>>)
8833CopyLoc[1](Arg1: &mut Vault<Ty0>)
8844ImmBorrowFieldGeneric[0](Vault.id: UID)
8855Call object::uid_to_inner(&UID): ID
8866Call authority::assert_has_authority_over<VAULT<ADMIN>>(&AuthorityCap<VAULT<ADMIN>>, ID)
8877CopyLoc[3](Arg3: u64)
8888CopyLoc[1](Arg1: &mut Vault<Ty0>)
8899ImmBorrowFieldGeneric[14](Vault.max_lock_duration_ms: u64)
89614MoveLoc[1](Arg1: &mut Vault<Ty0>)
90118MoveLoc[3](Arg3: u64)
90219MoveLoc[1](Arg1: &mut Vault<Ty0>)
90320MutBorrowFieldGeneric[13](Vault.min_lock_duration_ms: u64)
908public set_max_lock_duration_ms<Ty0>(Arg0: &AuthorityCap<VAULT<ADMIN>>, Arg1: &mut Vault<Ty0>, Arg2: &Version, Arg3: u64) {
9100MoveLoc[2](Arg2: &Version)
9111Call version::assert_correct_package(&Version)
9122MoveLoc[0](Arg0: &AuthorityCap<VAULT<ADMIN>>)
9133CopyLoc[1](Arg1: &mut Vault<Ty0>)
9144ImmBorrowFieldGeneric[0](Vault.id: UID)
9155Call object::uid_to_inner(&UID): ID
9166Call authority::assert_has_authority_over<VAULT<ADMIN>>(&AuthorityCap<VAULT<ADMIN>>, ID)
9177CopyLoc[1](Arg1: &mut Vault<Ty0>)
9188ImmBorrowFieldGeneric[13](Vault.min_lock_duration_ms: u64)
92010CopyLoc[3](Arg3: u64)
92614MoveLoc[1](Arg1: &mut Vault<Ty0>)
93118MoveLoc[3](Arg3: u64)
93219MoveLoc[1](Arg1: &mut Vault<Ty0>)
93320MutBorrowFieldGeneric[14](Vault.max_lock_duration_ms: u64)
938public set_min_stake_amount<Ty0>(Arg0: &AuthorityCap<VAULT<ADMIN>>, Arg1: &mut Vault<Ty0>, Arg2: &Version, Arg3: u64) {
9400MoveLoc[2](Arg2: &Version)
9411Call version::assert_correct_package(&Version)
9422MoveLoc[0](Arg0: &AuthorityCap<VAULT<ADMIN>>)
9433CopyLoc[1](Arg1: &mut Vault<Ty0>)
9444ImmBorrowFieldGeneric[0](Vault.id: UID)
9455Call object::uid_to_inner(&UID): ID
9466Call authority::assert_has_authority_over<VAULT<ADMIN>>(&AuthorityCap<VAULT<ADMIN>>, ID)
9477MoveLoc[3](Arg3: u64)
9488MoveLoc[1](Arg1: &mut Vault<Ty0>)
9499MutBorrowFieldGeneric[16](Vault.min_stake_amount: u64)
954public grant_one_time_admin_cap<Ty0>(Arg0: &AuthorityCap<VAULT<ADMIN>>, Arg1: &Version, Arg2: address, Arg3: &mut TxContext) {
9560MoveLoc[1](Arg1: &Version)
9571Call version::assert_correct_package(&Version)
9582CopyLoc[3](Arg3: &mut TxContext)
9593Call object::new(&mut TxContext): UID
9604MoveLoc[0](Arg0: &AuthorityCap<VAULT<ADMIN>>)
9615Call authority::vault_id<VAULT<ADMIN>>(&AuthorityCap<VAULT<ADMIN>>): ID
9626MoveLoc[3](Arg3: &mut TxContext)
9637Call authority::create_vault_admin_cap(ID, &mut TxContext): AuthorityCap<VAULT<ADMIN>>
9648PackGeneric[1](OneTime<VAULT<ADMIN>, Ty0>)
9659MoveLoc[2](Arg2: address)
96610Call transfer::transfer<OneTime<VAULT<ADMIN>, Ty0>>(OneTime<VAULT<ADMIN>, Ty0>, address)
970public destroy_one_time_admin_cap<Ty0>(Arg0: OneTime<VAULT<ADMIN>, Ty0>) {
971L1: loc0: AuthorityCap<VAULT<ADMIN>>
9730MoveLoc[0](Arg0: OneTime<VAULT<ADMIN>, Ty0>)
9741UnpackGeneric[1](OneTime<VAULT<ADMIN>, Ty0>)
9752StLoc[1](loc0: AuthorityCap<VAULT<ADMIN>>)
9763Call object::delete(UID)
9774MoveLoc[1](loc0: AuthorityCap<VAULT<ADMIN>>)
9785Call authority::destroy_vault_admin_cap(AuthorityCap<VAULT<ADMIN>>)
982public initialize_reward_and_consume_admin_cap<Ty0, Ty1>(Arg0: OneTime<VAULT<ADMIN>, Ty1>, Arg1: &mut Vault<Ty0>, Arg2: &Version, Arg3: &Clock, Arg4: Coin<Ty1>, Arg5: u64, Arg6: u64, Arg7: u64) {
9840MoveLoc[2](Arg2: &Version)
9851Call version::assert_correct_package(&Version)
9862ImmBorrowLoc[0](Arg0: OneTime<VAULT<ADMIN>, Ty1>)
9873ImmBorrowFieldGeneric[17](OneTime.cap: AuthorityCap<VAULT<ADMIN>>)
9884CopyLoc[1](Arg1: &mut Vault<Ty0>)
9895ImmBorrowFieldGeneric[0](Vault.id: UID)
9906Call object::uid_to_inner(&UID): ID
9917Call authority::assert_has_authority_over<VAULT<ADMIN>>(&AuthorityCap<VAULT<ADMIN>>, ID)
9928MoveLoc[1](Arg1: &mut Vault<Ty0>)
9939MoveLoc[3](Arg3: &Clock)
99410MoveLoc[4](Arg4: Coin<Ty1>)
99511MoveLoc[5](Arg5: u64)
99612MoveLoc[6](Arg6: u64)
99713MoveLoc[7](Arg7: u64)
99814Call initialize_reward_<Ty0, Ty1>(&mut Vault<Ty0>, &Clock, Coin<Ty1>, u64, u64, u64)
99915MoveLoc[0](Arg0: OneTime<VAULT<ADMIN>, Ty1>)
100016Call destroy_one_time_admin_cap<Ty1>(OneTime<VAULT<ADMIN>, Ty1>)
1004public add_reward_and_consume_admin_cap<Ty0, Ty1>(Arg0: OneTime<VAULT<ADMIN>, Ty1>, Arg1: &mut Vault<Ty0>, Arg2: &Version, Arg3: Coin<Ty1>) {
10060MoveLoc[2](Arg2: &Version)
10071Call version::assert_correct_package(&Version)
10082ImmBorrowLoc[0](Arg0: OneTime<VAULT<ADMIN>, Ty1>)
10093ImmBorrowFieldGeneric[17](OneTime.cap: AuthorityCap<VAULT<ADMIN>>)
10104CopyLoc[1](Arg1: &mut Vault<Ty0>)
10115ImmBorrowFieldGeneric[0](Vault.id: UID)
10126Call object::uid_to_inner(&UID): ID
10137Call authority::assert_has_authority_over<VAULT<ADMIN>>(&AuthorityCap<VAULT<ADMIN>>, ID)
10148MoveLoc[1](Arg1: &mut Vault<Ty0>)
10159MoveLoc[3](Arg3: Coin<Ty1>)
101610Call add_reward_<Ty0, Ty1>(&mut Vault<Ty0>, Coin<Ty1>)
101711MoveLoc[0](Arg0: OneTime<VAULT<ADMIN>, Ty1>)
101812Call destroy_one_time_admin_cap<Ty1>(OneTime<VAULT<ADMIN>, Ty1>)
1022public update_emission_schedule_and_consume_admin_cap<Ty0, Ty1>(Arg0: OneTime<VAULT<ADMIN>, Ty1>, Arg1: &mut Vault<Ty0>, Arg2: &Version, Arg3: &Clock, Arg4: u64, Arg5: u64) {
10240CopyLoc[2](Arg2: &Version)
10251Call version::assert_correct_package(&Version)
10262ImmBorrowLoc[0](Arg0: OneTime<VAULT<ADMIN>, Ty1>)
10273ImmBorrowFieldGeneric[17](OneTime.cap: AuthorityCap<VAULT<ADMIN>>)
10284CopyLoc[1](Arg1: &mut Vault<Ty0>)
10295ImmBorrowFieldGeneric[0](Vault.id: UID)
10306Call object::uid_to_inner(&UID): ID
10317Call authority::assert_has_authority_over<VAULT<ADMIN>>(&AuthorityCap<VAULT<ADMIN>>, ID)
10328MoveLoc[1](Arg1: &mut Vault<Ty0>)
10339MoveLoc[2](Arg2: &Version)
103410MoveLoc[3](Arg3: &Clock)
103511MoveLoc[4](Arg4: u64)
103612MoveLoc[5](Arg5: u64)
103713Call update_emission_schedule_<Ty0, Ty1>(&mut Vault<Ty0>, &Version, &Clock, u64, u64)
103814MoveLoc[0](Arg0: OneTime<VAULT<ADMIN>, Ty1>)
103915Call destroy_one_time_admin_cap<Ty1>(OneTime<VAULT<ADMIN>, Ty1>)
1043calc_emission_end_timestamp_ms<Ty0>(Arg0: &Vault<Ty0>, Arg1: u64): u64 {
10460CopyLoc[0](Arg0: &Vault<Ty0>)
10471ImmBorrowFieldGeneric[3](Vault.total_rewards_remaining: vector<u64>)
10482CopyLoc[1](Arg1: u64)
10515CopyLoc[0](Arg0: &Vault<Ty0>)
10526ImmBorrowFieldGeneric[8](Vault.emission_rates: vector<u64>)
10537CopyLoc[1](Arg1: u64)
105610Call utils::calc_remaining_number_of_emissions(u64, u64): u64
105711CopyLoc[0](Arg0: &Vault<Ty0>)
105812ImmBorrowFieldGeneric[7](Vault.emission_frequencies_ms: vector<u64>)
105913CopyLoc[1](Arg1: u64)
106317StLoc[2](loc0: u64)
106418MoveLoc[0](Arg0: &Vault<Ty0>)
106519ImmBorrowFieldGeneric[11](Vault.last_reward_timestamps_ms: vector<u64>)
106620MoveLoc[1](Arg1: u64)
106923MoveLoc[2](loc0: u64)
1074emit_reward<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: u64, Arg2: u64) {
10830CopyLoc[0](Arg0: &mut Vault<Ty0>)
10841ImmBorrowFieldGeneric[11](Vault.last_reward_timestamps_ms: vector<u64>)
10852CopyLoc[1](Arg1: u64)
10896CopyLoc[0](Arg0: &mut Vault<Ty0>)
10907ImmBorrowFieldGeneric[3](Vault.total_rewards_remaining: vector<u64>)
10918CopyLoc[1](Arg1: u64)
109411StLoc[9](loc6: u64)
109512CopyLoc[9](loc6: u64)
110117StLoc[3](loc0: bool)
110419CopyLoc[2](Arg2: u64)
110520CopyLoc[6](loc3: u64)
110621CopyLoc[0](Arg0: &mut Vault<Ty0>)
110722ImmBorrowFieldGeneric[7](Vault.emission_frequencies_ms: vector<u64>)
110823CopyLoc[1](Arg1: u64)
111328StLoc[3](loc0: bool)
111529MoveLoc[3](loc0: bool)
111831MoveLoc[0](Arg0: &mut Vault<Ty0>)
112234CopyLoc[0](Arg0: &mut Vault<Ty0>)
112335ImmBorrowFieldGeneric[7](Vault.emission_frequencies_ms: vector<u64>)
112436CopyLoc[1](Arg1: u64)
112739StLoc[5](loc2: u64)
112840CopyLoc[0](Arg0: &mut Vault<Ty0>)
112941ImmBorrowFieldGeneric[10](Vault.emission_end_timestamps_ms: vector<u64>)
113042CopyLoc[1](Arg1: u64)
113345StLoc[4](loc1: u64)
113446CopyLoc[6](loc3: u64)
113547MoveLoc[2](Arg2: u64)
113648MoveLoc[4](loc1: u64)
113749CopyLoc[5](loc2: u64)
113850Call utils::calc_number_of_emissions_from_time_tn_to_tm(u64, u64, u64, u64): u64
113951StLoc[7](loc4: u64)
114052CopyLoc[7](loc4: u64)
114153CopyLoc[0](Arg0: &mut Vault<Ty0>)
114254ImmBorrowFieldGeneric[8](Vault.emission_rates: vector<u64>)
114355CopyLoc[1](Arg1: u64)
114759CopyLoc[9](loc6: u64)
114860Call u64::min(u64, u64): u64
114961StLoc[8](loc5: u64)
115062CopyLoc[8](loc5: u64)
115566MoveLoc[0](Arg0: &mut Vault<Ty0>)
115969CopyLoc[0](Arg0: &mut Vault<Ty0>)
116070ImmBorrowFieldGeneric[2](Vault.total_rewards_emitted: vector<u64>)
116171CopyLoc[1](Arg1: u64)
116474CopyLoc[8](loc5: u64)
116676CopyLoc[0](Arg0: &mut Vault<Ty0>)
116777MutBorrowFieldGeneric[2](Vault.total_rewards_emitted: vector<u64>)
116878CopyLoc[1](Arg1: u64)
117181MoveLoc[9](loc6: u64)
117282CopyLoc[8](loc5: u64)
117484CopyLoc[0](Arg0: &mut Vault<Ty0>)
117585MutBorrowFieldGeneric[3](Vault.total_rewards_remaining: vector<u64>)
117686CopyLoc[1](Arg1: u64)
117989CopyLoc[0](Arg0: &mut Vault<Ty0>)
118090MoveLoc[8](loc5: u64)
118191CopyLoc[1](Arg1: u64)
118292Call increase_total_rewards_accumulated_per_share<Ty0>(&mut Vault<Ty0>, u64, u64)
118393MoveLoc[6](loc3: u64)
118494MoveLoc[7](loc4: u64)
118595MoveLoc[5](loc2: u64)
118898MoveLoc[0](Arg0: &mut Vault<Ty0>)
118999MutBorrowFieldGeneric[11](Vault.last_reward_timestamps_ms: vector<u64>)
1190100MoveLoc[1](Arg1: u64)
1196increase_total_rewards_accumulated_per_share<Ty0>(Arg0: &mut Vault<Ty0>, Arg1: u64, Arg2: u64) {
12010CopyLoc[0](Arg0: &mut Vault<Ty0>)
12021ImmBorrowFieldGeneric[4](Vault.total_rewards_accumulated_per_share: vector<u128>)
12032CopyLoc[2](Arg2: u64)
12065StLoc[4](loc1: u128)
12076CopyLoc[0](Arg0: &mut Vault<Ty0>)
12087ImmBorrowFieldGeneric[5](Vault.total_staked_amount: u64)
12109CopyLoc[0](Arg0: &mut Vault<Ty0>)
121110ImmBorrowFieldGeneric[6](Vault.total_multiplier_staked_amount: u64)
121413StLoc[5](loc2: u64)
121514MoveLoc[1](Arg1: u64)
121615Call utils::total_rewards_accumulated_per_share_scaling_factor(): u64
121716Call utils::multiply(u64, u64): u128
121817MoveLoc[5](loc2: u64)
121918Call utils::divide_into_u128(u128, u64): u128
122019StLoc[3](loc0: u128)
122120CopyLoc[3](loc0: u128)
122624MoveLoc[0](Arg0: &mut Vault<Ty0>)
123027MoveLoc[4](loc1: u128)
123128MoveLoc[3](loc0: u128)
123330MoveLoc[0](Arg0: &mut Vault<Ty0>)
123431MutBorrowFieldGeneric[4](Vault.total_rewards_accumulated_per_share: vector<u128>)
123532MoveLoc[2](Arg2: u64)
1241initialize_reward_<Ty0, Ty1>(Arg0: &mut Vault<Ty0>, Arg1: &Clock, Arg2: Coin<Ty1>, Arg3: u64, Arg4: u64, Arg5: u64) {
12470ImmBorrowLoc[2](Arg2: Coin<Ty1>)
12481Call coin::value<Ty1>(&Coin<Ty1>): u64
12556MoveLoc[0](Arg0: &mut Vault<Ty0>)
12578MoveLoc[1](Arg1: &Clock)
126212CopyLoc[0](Arg0: &mut Vault<Ty0>)
126414Call contains<Ty0, Ty1>(&Vault<Ty0>): bool
127018MoveLoc[0](Arg0: &mut Vault<Ty0>)
127220MoveLoc[1](Arg1: &Clock)
127724Call type_name::get<Ty1>(): TypeName
127825StLoc[9](loc3: TypeName)
127926CopyLoc[0](Arg0: &mut Vault<Ty0>)
128027MutBorrowFieldGeneric[1](Vault.type_names: vector<TypeName>)
128128CopyLoc[9](loc3: TypeName)
128330ImmBorrowLoc[2](Arg2: Coin<Ty1>)
128431Call coin::value<Ty1>(&Coin<Ty1>): u64
128532StLoc[8](loc2: u64)
128633CopyLoc[0](Arg0: &mut Vault<Ty0>)
128734MutBorrowFieldGeneric[4](Vault.total_rewards_accumulated_per_share: vector<u128>)
129037CopyLoc[0](Arg0: &mut Vault<Ty0>)
129138MutBorrowFieldGeneric[0](Vault.id: UID)
129239MoveLoc[9](loc3: TypeName)
129340MoveLoc[2](Arg2: Coin<Ty1>)
129441Call coin::into_balance<Ty1>(Coin<Ty1>): Balance<Ty1>
129542Call dynamic_field::add<TypeName, Balance<Ty1>>(&mut UID, TypeName, Balance<Ty1>)
129643CopyLoc[0](Arg0: &mut Vault<Ty0>)
129744MutBorrowFieldGeneric[3](Vault.total_rewards_remaining: vector<u64>)
129845CopyLoc[8](loc2: u64)
130047CopyLoc[0](Arg0: &mut Vault<Ty0>)
130148MutBorrowFieldGeneric[2](Vault.total_rewards_emitted: vector<u64>)
130451MoveLoc[1](Arg1: &Clock)
130552Call clock::timestamp_ms(&Clock): u64
130653MoveLoc[5](Arg5: u64)
130855StLoc[7](loc1: u64)
130956CopyLoc[0](Arg0: &mut Vault<Ty0>)
131057MutBorrowFieldGeneric[9](Vault.emission_start_timestamps_ms: vector<u64>)
131158CopyLoc[7](loc1: u64)
131360CopyLoc[0](Arg0: &mut Vault<Ty0>)
131461MutBorrowFieldGeneric[11](Vault.last_reward_timestamps_ms: vector<u64>)
131562CopyLoc[7](loc1: u64)
131764CopyLoc[0](Arg0: &mut Vault<Ty0>)
131865MutBorrowFieldGeneric[7](Vault.emission_frequencies_ms: vector<u64>)
131966MoveLoc[3](Arg3: u64)
132168CopyLoc[0](Arg0: &mut Vault<Ty0>)
132269MutBorrowFieldGeneric[8](Vault.emission_rates: vector<u64>)
132370CopyLoc[4](Arg4: u64)
132572CopyLoc[0](Arg0: &mut Vault<Ty0>)
132774CopyLoc[0](Arg0: &mut Vault<Ty0>)
132976Call size<Ty0>(&Vault<Ty0>): u64
133279Call calc_emission_end_timestamp_ms<Ty0>(&Vault<Ty0>, u64): u64
133380StLoc[6](loc0: u64)
133481CopyLoc[0](Arg0: &mut Vault<Ty0>)
133582MutBorrowFieldGeneric[10](Vault.emission_end_timestamps_ms: vector<u64>)
133683MoveLoc[6](loc0: u64)
133885MoveLoc[0](Arg0: &mut Vault<Ty0>)
134087Call object::id<Vault<Ty0>>(&Vault<Ty0>): ID
134188MoveLoc[8](loc2: u64)
134289MoveLoc[4](Arg4: u64)
134390MoveLoc[7](loc1: u64)
134491Call events::emit_initialized_reward_event<Ty1>(ID, u64, u64, u64)
1348add_reward_<Ty0, Ty1>(Arg0: &mut Vault<Ty0>, Arg1: Coin<Ty1>) {
13540ImmBorrowLoc[1](Arg1: Coin<Ty1>)
13551Call coin::value<Ty1>(&Coin<Ty1>): u64
13626MoveLoc[0](Arg0: &mut Vault<Ty0>)
136710Call type_name::get<Ty1>(): TypeName
136811StLoc[5](loc3: TypeName)
136912CopyLoc[0](Arg0: &mut Vault<Ty0>)
137114CopyLoc[5](loc3: TypeName)
137215Call contains_type_name<Ty0>(&Vault<Ty0>, TypeName): bool
137718MoveLoc[0](Arg0: &mut Vault<Ty0>)
138222CopyLoc[0](Arg0: &mut Vault<Ty0>)
138424CopyLoc[5](loc3: TypeName)
138525Call type_name_to_index<Ty0>(&Vault<Ty0>, TypeName): u64
138626StLoc[3](loc1: u64)
138727ImmBorrowLoc[1](Arg1: Coin<Ty1>)
138828Call coin::value<Ty1>(&Coin<Ty1>): u64
138929StLoc[2](loc0: u64)
139030CopyLoc[0](Arg0: &mut Vault<Ty0>)
139131ImmBorrowFieldGeneric[3](Vault.total_rewards_remaining: vector<u64>)
139232CopyLoc[3](loc1: u64)
139535CopyLoc[2](loc0: u64)
139737StLoc[4](loc2: u64)
139838CopyLoc[0](Arg0: &mut Vault<Ty0>)
139939MutBorrowFieldGeneric[0](Vault.id: UID)
140040MoveLoc[5](loc3: TypeName)
140141Call dynamic_field::borrow_mut<TypeName, Balance<Ty1>>(&mut UID, TypeName): &mut Balance<Ty1>
140242MoveLoc[1](Arg1: Coin<Ty1>)
140343Call coin::into_balance<Ty1>(Coin<Ty1>): Balance<Ty1>
140444Call balance::join<Ty1>(&mut Balance<Ty1>, Balance<Ty1>): u64
140646MoveLoc[4](loc2: u64)
140747CopyLoc[0](Arg0: &mut Vault<Ty0>)
140848MutBorrowFieldGeneric[3](Vault.total_rewards_remaining: vector<u64>)
140949CopyLoc[3](loc1: u64)
141252CopyLoc[0](Arg0: &mut Vault<Ty0>)
141454CopyLoc[3](loc1: u64)
141555Call calc_emission_end_timestamp_ms<Ty0>(&Vault<Ty0>, u64): u64
141656CopyLoc[0](Arg0: &mut Vault<Ty0>)
141757MutBorrowFieldGeneric[10](Vault.emission_end_timestamps_ms: vector<u64>)
141858MoveLoc[3](loc1: u64)
142161MoveLoc[0](Arg0: &mut Vault<Ty0>)
142262ImmBorrowFieldGeneric[0](Vault.id: UID)
142363Call object::uid_to_inner(&UID): ID
142464MoveLoc[2](loc0: u64)
142565Call events::emit_added_reward_event<Ty1>(ID, u64)
1429remove_reward_<Ty0, Ty1>(Arg0: &mut Vault<Ty0>, Arg1: u64, Arg2: &mut TxContext): Coin<Ty1> {
14340Call type_name::get<Ty1>(): TypeName
14351StLoc[5](loc2: TypeName)
14362CopyLoc[0](Arg0: &mut Vault<Ty0>)
14384CopyLoc[5](loc2: TypeName)
14395Call contains_type_name<Ty0>(&Vault<Ty0>, TypeName): bool
14448MoveLoc[0](Arg0: &mut Vault<Ty0>)
144610MoveLoc[2](Arg2: &mut TxContext)
145114CopyLoc[0](Arg0: &mut Vault<Ty0>)
145316Call type_to_index<Ty0, Ty1>(&Vault<Ty0>): u64
145417StLoc[3](loc0: u64)
145518CopyLoc[0](Arg0: &mut Vault<Ty0>)
145619ImmBorrowFieldGeneric[3](Vault.total_rewards_remaining: vector<u64>)
145720CopyLoc[3](loc0: u64)
146023StLoc[4](loc1: u64)
146124CopyLoc[4](loc1: u64)
146225CopyLoc[1](Arg1: u64)
146829MoveLoc[0](Arg0: &mut Vault<Ty0>)
147031MoveLoc[2](Arg2: &mut TxContext)
147535MoveLoc[4](loc1: u64)
147636CopyLoc[1](Arg1: u64)
147838CopyLoc[0](Arg0: &mut Vault<Ty0>)
147939MutBorrowFieldGeneric[3](Vault.total_rewards_remaining: vector<u64>)
148040CopyLoc[3](loc0: u64)
148343CopyLoc[0](Arg0: &mut Vault<Ty0>)
148545CopyLoc[3](loc0: u64)
148646Call calc_emission_end_timestamp_ms<Ty0>(&Vault<Ty0>, u64): u64
148747CopyLoc[0](Arg0: &mut Vault<Ty0>)
148848MutBorrowFieldGeneric[10](Vault.emission_end_timestamps_ms: vector<u64>)
148949MoveLoc[3](loc0: u64)
149252MoveLoc[0](Arg0: &mut Vault<Ty0>)
149353MutBorrowFieldGeneric[0](Vault.id: UID)
149454MoveLoc[5](loc2: TypeName)
149555Call dynamic_field::borrow_mut<TypeName, Balance<Ty1>>(&mut UID, TypeName): &mut Balance<Ty1>
149656MoveLoc[1](Arg1: u64)
149757Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
149858MoveLoc[2](Arg2: &mut TxContext)
149959Call coin::from_balance<Ty1>(Balance<Ty1>, &mut TxContext): Coin<Ty1>
1503update_emission_schedule_<Ty0, Ty1>(Arg0: &mut Vault<Ty0>, Arg1: &Version, Arg2: &Clock, Arg3: u64, Arg4: u64) {
15060CopyLoc[0](Arg0: &mut Vault<Ty0>)
15082Call contains<Ty0, Ty1>(&Vault<Ty0>): bool
15135MoveLoc[1](Arg1: &Version)
15157MoveLoc[0](Arg0: &mut Vault<Ty0>)
15179MoveLoc[2](Arg2: &Clock)
152213CopyLoc[0](Arg0: &mut Vault<Ty0>)
152314MoveLoc[1](Arg1: &Version)
152415MoveLoc[2](Arg2: &Clock)
152516Call emit_rewards<Ty0>(&mut Vault<Ty0>, &Version, &Clock)
152617CopyLoc[0](Arg0: &mut Vault<Ty0>)
152819Call type_to_index<Ty0, Ty1>(&Vault<Ty0>): u64
152920StLoc[5](loc0: u64)
153021CopyLoc[3](Arg3: u64)
153122CopyLoc[0](Arg0: &mut Vault<Ty0>)
153223MutBorrowFieldGeneric[7](Vault.emission_frequencies_ms: vector<u64>)
153324CopyLoc[5](loc0: u64)
153627CopyLoc[4](Arg4: u64)
153728CopyLoc[0](Arg0: &mut Vault<Ty0>)
153829MutBorrowFieldGeneric[8](Vault.emission_rates: vector<u64>)
153930CopyLoc[5](loc0: u64)
154233CopyLoc[0](Arg0: &mut Vault<Ty0>)
154435CopyLoc[5](loc0: u64)
154536Call calc_emission_end_timestamp_ms<Ty0>(&Vault<Ty0>, u64): u64
154637CopyLoc[0](Arg0: &mut Vault<Ty0>)
154738MutBorrowFieldGeneric[10](Vault.emission_end_timestamps_ms: vector<u64>)
154839MoveLoc[5](loc0: u64)
155142MoveLoc[0](Arg0: &mut Vault<Ty0>)
155243ImmBorrowFieldGeneric[0](Vault.id: UID)
155344Call object::uid_to_inner(&UID): ID
155445MoveLoc[3](Arg3: u64)
155546MoveLoc[4](Arg4: u64)
155647Call events::emit_updated_emission_schedule_event<Ty1>(ID, u64, u64)
1571 10 => u64: 2000000000000000000
1572 11 => vector<u64>: 00
1573 12 => vector<u128>: 00