Search by name, SuiNS, address, digest, object ID, coin type or checkpoint.

API

position

Module0x67b3…928a
Move path
0x3492…c267::position
Functions
198 public, 0 entry
Structs
3
Friend modules
pool
position

Bytecode767 lines

The on-chain disassembly. Offsets are bytecode positions within each function.

// Move bytecode v6
module 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267.position {
use 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::constants;
use 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::errors;
use 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::i128H;
use 3492c874c1e3b3e2984e8c41b589e642d4d0a5d6459e5a9cfc2d52fd7c89c267::utils;
use 03637b7b60978ef4389124f7683456f0050ab015a0590d52b6e6cadb342af34a::full_math_u128;
use 03637b7b60978ef4389124f7683456f0050ab015a0590d52b6e6cadb342af34a::math_u128;
use 03637b7b60978ef4389124f7683456f0050ab015a0590d52b6e6cadb342af34a::math_u64;
use 714a63a0dba6da4f017b42d5d0fb78867f18bcde904868e51d951a5a6f5b7f57::i128;
use 714a63a0dba6da4f017b42d5d0fb78867f18bcde904868e51d951a5a6f5b7f57::i32;
use 0000000000000000000000000000000000000000000000000000000000000001::string;
use 0000000000000000000000000000000000000000000000000000000000000002::display;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::package;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
 
struct POSITION has drop {
dummy_field: bool
}
 
struct Position has store, key {
id: UID,
pool_id: ID,
lower_tick: I32,
upper_tick: I32,
fee_rate: u64,
liquidity: u128,
fee_growth_coin_a: u128,
fee_growth_coin_b: u128,
token_a_fee: u64,
token_b_fee: u64,
name: String,
coin_type_a: String,
coin_type_b: String,
description: String,
image_url: String,
position_index: u128,
reward_infos: vector<PositionRewardInfo>
}
 
struct PositionRewardInfo has copy, drop, store {
reward_growth_inside_last: u128,
coins_owed_reward: u64
}
 
init(Arg0: POSITION, Arg1: &mut TxContext) {
L2: loc0: Display<Position>
L3: loc1: vector<String>
L4: loc2: Publisher
L5: loc3: vector<String>
B0:
0VecPack(16, 0)
1StLoc[3](loc1: vector<String>)
2MutBorrowLoc[3](loc1: vector<String>)
3LdConst[0](vector<u8>: "nam..)
4Call string::utf8(vector<u8>): String
5VecPushBack(16)
6MutBorrowLoc[3](loc1: vector<String>)
7LdConst[1](vector<u8>: "id"..)
8Call string::utf8(vector<u8>): String
9VecPushBack(16)
10MutBorrowLoc[3](loc1: vector<String>)
11LdConst[2](vector<u8>: "poo..)
12Call string::utf8(vector<u8>): String
13VecPushBack(16)
14MutBorrowLoc[3](loc1: vector<String>)
15LdConst[3](vector<u8>: "coi..)
16Call string::utf8(vector<u8>): String
17VecPushBack(16)
18MutBorrowLoc[3](loc1: vector<String>)
19LdConst[4](vector<u8>: "coi..)
20Call string::utf8(vector<u8>): String
21VecPushBack(16)
22MutBorrowLoc[3](loc1: vector<String>)
23LdConst[5](vector<u8>: "lin..)
24Call string::utf8(vector<u8>): String
25VecPushBack(16)
26MutBorrowLoc[3](loc1: vector<String>)
27LdConst[6](vector<u8>: "ima..)
28Call string::utf8(vector<u8>): String
29VecPushBack(16)
30MutBorrowLoc[3](loc1: vector<String>)
31LdConst[7](vector<u8>: "des..)
32Call string::utf8(vector<u8>): String
33VecPushBack(16)
34MutBorrowLoc[3](loc1: vector<String>)
35LdConst[8](vector<u8>: "pro..)
36Call string::utf8(vector<u8>): String
37VecPushBack(16)
38MutBorrowLoc[3](loc1: vector<String>)
39LdConst[9](vector<u8>: "cre..)
40Call string::utf8(vector<u8>): String
41VecPushBack(16)
42VecPack(16, 0)
43StLoc[5](loc3: vector<String>)
44MutBorrowLoc[5](loc3: vector<String>)
45LdConst[10](vector<u8>: "{na..)
46Call string::utf8(vector<u8>): String
47VecPushBack(16)
48MutBorrowLoc[5](loc3: vector<String>)
49LdConst[11](vector<u8>: "{id..)
50Call string::utf8(vector<u8>): String
51VecPushBack(16)
52MutBorrowLoc[5](loc3: vector<String>)
53LdConst[12](vector<u8>: "{po..)
54Call string::utf8(vector<u8>): String
55VecPushBack(16)
56MutBorrowLoc[5](loc3: vector<String>)
57LdConst[13](vector<u8>: "{co..)
58Call string::utf8(vector<u8>): String
59VecPushBack(16)
60MutBorrowLoc[5](loc3: vector<String>)
61LdConst[14](vector<u8>: "{co..)
62Call string::utf8(vector<u8>): String
63VecPushBack(16)
64MutBorrowLoc[5](loc3: vector<String>)
65LdConst[15](vector<u8>: "htt..)
66Call string::utf8(vector<u8>): String
67VecPushBack(16)
68MutBorrowLoc[5](loc3: vector<String>)
69LdConst[16](vector<u8>: "{im..)
70Call string::utf8(vector<u8>): String
71VecPushBack(16)
72MutBorrowLoc[5](loc3: vector<String>)
73LdConst[17](vector<u8>: "{de..)
74Call string::utf8(vector<u8>): String
75VecPushBack(16)
76MutBorrowLoc[5](loc3: vector<String>)
77LdConst[18](vector<u8>: "htt..)
78Call string::utf8(vector<u8>): String
79VecPushBack(16)
80MutBorrowLoc[5](loc3: vector<String>)
81LdConst[19](vector<u8>: "Blu..)
82Call string::utf8(vector<u8>): String
83VecPushBack(16)
84MoveLoc[0](Arg0: POSITION)
85CopyLoc[1](Arg1: &mut TxContext)
86Call package::claim<POSITION>(POSITION, &mut TxContext): Publisher
87StLoc[4](loc2: Publisher)
88ImmBorrowLoc[4](loc2: Publisher)
89MoveLoc[3](loc1: vector<String>)
90MoveLoc[5](loc3: vector<String>)
91CopyLoc[1](Arg1: &mut TxContext)
92Call display::new_with_fields<Position>(&Publisher, vector<String>, vector<String>, &mut TxContext): Display<Position>
93StLoc[2](loc0: Display<Position>)
94MutBorrowLoc[2](loc0: Display<Position>)
95Call display::update_version<Position>(&mut Display<Position>)
96MoveLoc[4](loc2: Publisher)
97CopyLoc[1](Arg1: &mut TxContext)
98FreezeRef
99Call tx_context::sender(&TxContext): address
100Call transfer::public_transfer<Publisher>(Publisher, address)
101MoveLoc[2](loc0: Display<Position>)
102MoveLoc[1](Arg1: &mut TxContext)
103FreezeRef
104Call tx_context::sender(&TxContext): address
105Call transfer::public_transfer<Display<Position>>(Display<Position>, address)
106Ret
}
 
public lower_tick(Arg0: &Position): I32 {
B0:
0MoveLoc[0](Arg0: &Position)
1ImmBorrowField[0](Position.lower_tick: I32)
2ReadRef
3Ret
}
 
public upper_tick(Arg0: &Position): I32 {
B0:
0MoveLoc[0](Arg0: &Position)
1ImmBorrowField[1](Position.upper_tick: I32)
2ReadRef
3Ret
}
 
public liquidity(Arg0: &Position): u128 {
B0:
0MoveLoc[0](Arg0: &Position)
1ImmBorrowField[2](Position.liquidity: u128)
2ReadRef
3Ret
}
 
public pool_id(Arg0: &Position): ID {
B0:
0MoveLoc[0](Arg0: &Position)
1ImmBorrowField[3](Position.pool_id: ID)
2ReadRef
3Ret
}
 
public get_accrued_fee(Arg0: &Position): u64 * u64 {
B0:
0CopyLoc[0](Arg0: &Position)
1ImmBorrowField[4](Position.token_a_fee: u64)
2ReadRef
3MoveLoc[0](Arg0: &Position)
4ImmBorrowField[5](Position.token_b_fee: u64)
5ReadRef
6Ret
}
 
public coins_owed_reward(Arg0: &Position, Arg1: u64): u64 {
L2: loc0: u64
B0:
0CopyLoc[1](Arg1: u64)
1CopyLoc[0](Arg0: &Position)
2ImmBorrowField[6](Position.reward_infos: vector<PositionRewardInfo>)
3VecLen(32)
4Ge
5BrFalse(11)
B1:
6MoveLoc[0](Arg0: &Position)
7Pop
8LdU64(0)
9StLoc[2](loc0: u64)
10Branch(18)
B2:
11MoveLoc[0](Arg0: &Position)
12ImmBorrowField[6](Position.reward_infos: vector<PositionRewardInfo>)
13MoveLoc[1](Arg1: u64)
14VecImmBorrow(32)
15ImmBorrowField[7](PositionRewardInfo.coins_owed_reward: u64)
16ReadRef
17StLoc[2](loc0: u64)
B3:
18MoveLoc[2](loc0: u64)
19Ret
}
 
public is_empty(Arg0: &Position): bool {
L1: loc0: bool
L2: loc1: u64
L3: loc2: bool
L4: loc3: bool
B0:
0LdTrue
1StLoc[3](loc2: bool)
2LdU64(0)
3StLoc[2](loc1: u64)
B1:
4CopyLoc[2](loc1: u64)
5CopyLoc[0](Arg0: &Position)
6ImmBorrowField[6](Position.reward_infos: vector<PositionRewardInfo>)
7VecLen(32)
8Lt
9BrFalse(28)
B2:
10Branch(11)
B3:
11CopyLoc[0](Arg0: &Position)
12ImmBorrowField[6](Position.reward_infos: vector<PositionRewardInfo>)
13CopyLoc[2](loc1: u64)
14VecImmBorrow(32)
15ImmBorrowField[7](PositionRewardInfo.coins_owed_reward: u64)
16ReadRef
17LdU64(0)
18Neq
19BrFalse(23)
B4:
20LdFalse
21StLoc[3](loc2: bool)
22Branch(28)
B5:
23MoveLoc[2](loc1: u64)
24LdU64(1)
25Add
26StLoc[2](loc1: u64)
27Branch(4)
B6:
28MoveLoc[0](Arg0: &Position)
29ImmBorrowField[2](Position.liquidity: u128)
30ReadRef
31LdU128(0)
32Eq
33StLoc[4](loc3: bool)
34MoveLoc[3](loc2: bool)
35BrFalse(39)
B7:
36MoveLoc[4](loc3: bool)
37StLoc[1](loc0: bool)
38Branch(41)
B8:
39LdFalse
40StLoc[1](loc0: bool)
B9:
41MoveLoc[1](loc0: bool)
42Ret
}
 
public reward_infos_length(Arg0: &Position): u64 {
B0:
0MoveLoc[0](Arg0: &Position)
1ImmBorrowField[6](Position.reward_infos: vector<PositionRewardInfo>)
2VecLen(32)
3Ret
}
 
public(friend) new(Arg0: ID, Arg1: String, Arg2: String, Arg3: String, Arg4: String, Arg5: u128, Arg6: I32, Arg7: I32, Arg8: u64, Arg9: &mut TxContext): Position {
L10: loc0: UID
L11: loc1: String
L12: loc2: String
L13: loc3: String
L14: loc4: String
L15: loc5: String
L16: loc6: u128
L17: loc7: vector<PositionRewardInfo>
L18: loc8: ID
L19: loc9: I32
L20: loc10: I32
L21: loc11: u64
B0:
0MoveLoc[9](Arg9: &mut TxContext)
1Call object::new(&mut TxContext): UID
2StLoc[10](loc0: UID)
3MoveLoc[0](Arg0: ID)
4StLoc[18](loc8: ID)
5MoveLoc[6](Arg6: I32)
6StLoc[19](loc9: I32)
7MoveLoc[7](Arg7: I32)
8StLoc[20](loc10: I32)
9MoveLoc[8](Arg8: u64)
10StLoc[21](loc11: u64)
11CopyLoc[1](Arg1: String)
12Call create_position_name(String): String
13StLoc[11](loc1: String)
14MoveLoc[2](Arg2: String)
15StLoc[12](loc2: String)
16MoveLoc[3](Arg3: String)
17StLoc[13](loc3: String)
18MoveLoc[4](Arg4: String)
19StLoc[14](loc4: String)
20MoveLoc[1](Arg1: String)
21Call create_position_description(String): String
22StLoc[15](loc5: String)
23MoveLoc[5](Arg5: u128)
24StLoc[16](loc6: u128)
25VecPack(32, 0)
26StLoc[17](loc7: vector<PositionRewardInfo>)
27MoveLoc[10](loc0: UID)
28MoveLoc[18](loc8: ID)
29MoveLoc[19](loc9: I32)
30MoveLoc[20](loc10: I32)
31MoveLoc[21](loc11: u64)
32LdU128(0)
33LdU128(0)
34LdU128(0)
35LdU64(0)
36LdU64(0)
37MoveLoc[11](loc1: String)
38MoveLoc[13](loc3: String)
39MoveLoc[14](loc4: String)
40MoveLoc[15](loc5: String)
41MoveLoc[12](loc2: String)
42MoveLoc[16](loc6: u128)
43MoveLoc[17](loc7: vector<PositionRewardInfo>)
44Pack[1](Position)
45Ret
}
 
public(friend) del(Arg0: Position): ID * ID * I32 * I32 {
L1: loc0: I32
L2: loc1: ID
L3: loc2: ID
L4: loc3: I32
B0:
0ImmBorrowLoc[0](Arg0: Position)
1Call object::id<Position>(&Position): ID
2StLoc[3](loc2: ID)
3MoveLoc[0](Arg0: Position)
4Unpack[1](Position)
5Pop
6Pop
7Pop
8Pop
9Pop
10Pop
11Pop
12Pop
13Pop
14Pop
15Pop
16Pop
17Pop
18StLoc[4](loc3: I32)
19StLoc[1](loc0: I32)
20StLoc[2](loc1: ID)
21Call object::delete(UID)
22MoveLoc[3](loc2: ID)
23MoveLoc[2](loc1: ID)
24MoveLoc[1](loc0: I32)
25MoveLoc[4](loc3: I32)
26Ret
}
 
public(friend) set_fee_amounts(Arg0: &mut Position, Arg1: u64, Arg2: u64) {
B0:
0MoveLoc[1](Arg1: u64)
1CopyLoc[0](Arg0: &mut Position)
2MutBorrowField[4](Position.token_a_fee: u64)
3WriteRef
4MoveLoc[2](Arg2: u64)
5MoveLoc[0](Arg0: &mut Position)
6MutBorrowField[5](Position.token_b_fee: u64)
7WriteRef
8Ret
}
 
public(friend) decrease_reward_amount(Arg0: &mut Position, Arg1: u64, Arg2: u64) {
L3: loc0: &mut PositionRewardInfo
B0:
0MoveLoc[0](Arg0: &mut Position)
1MoveLoc[1](Arg1: u64)
2Call get_mutable_reward_info(&mut Position, u64): &mut PositionRewardInfo
3StLoc[3](loc0: &mut PositionRewardInfo)
4CopyLoc[3](loc0: &mut PositionRewardInfo)
5ImmBorrowField[7](PositionRewardInfo.coins_owed_reward: u64)
6ReadRef
7MoveLoc[2](Arg2: u64)
8Sub
9MoveLoc[3](loc0: &mut PositionRewardInfo)
10MutBorrowField[7](PositionRewardInfo.coins_owed_reward: u64)
11WriteRef
12Ret
}
 
public(friend) update(Arg0: &mut Position, Arg1: I128, Arg2: u128, Arg3: u128, Arg4: vector<u128>) {
L5: loc0: u128
L6: loc1: bool
L7: loc2: bool
L8: loc3: u128
L9: loc4: u128
L10: loc5: u128
B0:
0CopyLoc[1](Arg1: I128)
1Call i128::zero(): I128
2Call i128H::eq(I128, I128): bool
3BrFalse(20)
B1:
4CopyLoc[0](Arg0: &mut Position)
5ImmBorrowField[2](Position.liquidity: u128)
6ReadRef
7LdU128(0)
8Gt
9BrFalse(11)
B2:
10Branch(15)
B3:
11MoveLoc[0](Arg0: &mut Position)
12Pop
13Call errors::insufficient_liquidity(): u64
14Abort
B4:
15CopyLoc[0](Arg0: &mut Position)
16ImmBorrowField[2](Position.liquidity: u128)
17ReadRef
18StLoc[5](loc0: u128)
19Branch(26)
B5:
20CopyLoc[0](Arg0: &mut Position)
21ImmBorrowField[2](Position.liquidity: u128)
22ReadRef
23MoveLoc[1](Arg1: I128)
24Call utils::add_delta(u128, I128): u128
25StLoc[5](loc0: u128)
B6:
26MoveLoc[5](loc0: u128)
27StLoc[8](loc3: u128)
28CopyLoc[2](Arg2: u128)
29CopyLoc[0](Arg0: &mut Position)
30ImmBorrowField[8](Position.fee_growth_coin_a: u128)
31ReadRef
32Call math_u128::wrapping_sub(u128, u128): u128
33CopyLoc[0](Arg0: &mut Position)
34ImmBorrowField[2](Position.liquidity: u128)
35ReadRef
36Call constants::q64(): u128
37Call full_math_u128::mul_div_floor(u128, u128, u128): u128
38StLoc[9](loc4: u128)
39CopyLoc[3](Arg3: u128)
40CopyLoc[0](Arg0: &mut Position)
41ImmBorrowField[9](Position.fee_growth_coin_b: u128)
42ReadRef
43Call math_u128::wrapping_sub(u128, u128): u128
44CopyLoc[0](Arg0: &mut Position)
45ImmBorrowField[2](Position.liquidity: u128)
46ReadRef
47Call constants::q64(): u128
48Call full_math_u128::mul_div_floor(u128, u128, u128): u128
49StLoc[10](loc5: u128)
50CopyLoc[9](loc4: u128)
51Call constants::max_u64(): u64
52CastU128
53Le
54BrFalse(61)
B7:
55CopyLoc[10](loc5: u128)
56Call constants::max_u64(): u64
57CastU128
58Le
59StLoc[6](loc1: bool)
60Branch(63)
B8:
61LdFalse
62StLoc[6](loc1: bool)
B9:
63MoveLoc[6](loc1: bool)
64BrFalse(66)
B10:
65Branch(70)
B11:
66MoveLoc[0](Arg0: &mut Position)
67Pop
68Call errors::invalid_fee_growth(): u64
69Abort
B12:
70CopyLoc[0](Arg0: &mut Position)
71ImmBorrowField[4](Position.token_a_fee: u64)
72ReadRef
73CopyLoc[9](loc4: u128)
74CastU64
75Call math_u64::add_check(u64, u64): bool
76BrFalse(85)
B13:
77CopyLoc[0](Arg0: &mut Position)
78ImmBorrowField[5](Position.token_b_fee: u64)
79ReadRef
80CopyLoc[10](loc5: u128)
81CastU64
82Call math_u64::add_check(u64, u64): bool
83StLoc[7](loc2: bool)
84Branch(87)
B14:
85LdFalse
86StLoc[7](loc2: bool)
B15:
87MoveLoc[7](loc2: bool)
88BrFalse(90)
B16:
89Branch(94)
B17:
90MoveLoc[0](Arg0: &mut Position)
91Pop
92Call errors::add_check_failed(): u64
93Abort
B18:
94CopyLoc[0](Arg0: &mut Position)
95MoveLoc[4](Arg4: vector<u128>)
96Call update_reward_infos(&mut Position, vector<u128>)
97MoveLoc[8](loc3: u128)
98CopyLoc[0](Arg0: &mut Position)
99MutBorrowField[2](Position.liquidity: u128)
100WriteRef
101MoveLoc[2](Arg2: u128)
102CopyLoc[0](Arg0: &mut Position)
103MutBorrowField[8](Position.fee_growth_coin_a: u128)
104WriteRef
105MoveLoc[3](Arg3: u128)
106CopyLoc[0](Arg0: &mut Position)
107MutBorrowField[9](Position.fee_growth_coin_b: u128)
108WriteRef
109CopyLoc[0](Arg0: &mut Position)
110ImmBorrowField[4](Position.token_a_fee: u64)
111ReadRef
112MoveLoc[9](loc4: u128)
113CastU64
114Add
115CopyLoc[0](Arg0: &mut Position)
116MutBorrowField[4](Position.token_a_fee: u64)
117WriteRef
118CopyLoc[0](Arg0: &mut Position)
119ImmBorrowField[5](Position.token_b_fee: u64)
120ReadRef
121MoveLoc[10](loc5: u128)
122CastU64
123Add
124MoveLoc[0](Arg0: &mut Position)
125MutBorrowField[5](Position.token_b_fee: u64)
126WriteRef
127Ret
}
 
public(friend) add_reward_info(Arg0: &mut Position) {
B0:
0MoveLoc[0](Arg0: &mut Position)
1MutBorrowField[6](Position.reward_infos: vector<PositionRewardInfo>)
2LdU128(0)
3LdU64(0)
4Pack[2](PositionRewardInfo)
5VecPushBack(32)
6Ret
}
 
create_position_name(Arg0: String): String {
L1: loc0: String
B0:
0LdConst[20](vector<u8>: "Blu..)
1Call string::utf8(vector<u8>): String
2StLoc[1](loc0: String)
3MutBorrowLoc[1](loc0: String)
4MoveLoc[0](Arg0: String)
5Call string::append(&mut String, String)
6MoveLoc[1](loc0: String)
7Ret
}
 
create_position_description(Arg0: String): String {
L1: loc0: String
B0:
0LdConst[21](vector<u8>: "Thi..)
1Call string::utf8(vector<u8>): String
2StLoc[1](loc0: String)
3MutBorrowLoc[1](loc0: String)
4MoveLoc[0](Arg0: String)
5Call string::append(&mut String, String)
6MutBorrowLoc[1](loc0: String)
7LdConst[22](vector<u8>: " po..)
8Call string::utf8(vector<u8>): String
9Call string::append(&mut String, String)
10MoveLoc[1](loc0: String)
11Ret
}
 
update_reward_infos(Arg0: &mut Position, Arg1: vector<u128>) {
L2: loc0: bool
L3: loc1: u64
L4: loc2: u128
L5: loc3: u128
L6: loc4: &mut PositionRewardInfo
L7: loc5: u128
B0:
0LdU64(0)
1StLoc[3](loc1: u64)
2CopyLoc[0](Arg0: &mut Position)
3ImmBorrowField[2](Position.liquidity: u128)
4ReadRef
5StLoc[5](loc3: u128)
B1:
6CopyLoc[3](loc1: u64)
7ImmBorrowLoc[1](Arg1: vector<u128>)
8VecLen(4)
9Lt
10BrFalse(72)
B2:
11Branch(12)
B3:
12ImmBorrowLoc[1](Arg1: vector<u128>)
13CopyLoc[3](loc1: u64)
14VecImmBorrow(4)
15ReadRef
16StLoc[7](loc5: u128)
17CopyLoc[0](Arg0: &mut Position)
18CopyLoc[3](loc1: u64)
19Call get_mutable_reward_info(&mut Position, u64): &mut PositionRewardInfo
20StLoc[6](loc4: &mut PositionRewardInfo)
21CopyLoc[7](loc5: u128)
22CopyLoc[6](loc4: &mut PositionRewardInfo)
23ImmBorrowField[10](PositionRewardInfo.reward_growth_inside_last: u128)
24ReadRef
25Call math_u128::wrapping_sub(u128, u128): u128
26CopyLoc[5](loc3: u128)
27Call constants::q64(): u128
28Call full_math_u128::mul_div_floor(u128, u128, u128): u128
29StLoc[4](loc2: u128)
30CopyLoc[4](loc2: u128)
31Call constants::max_u64(): u64
32CastU128
33Le
34BrFalse(43)
B4:
35CopyLoc[6](loc4: &mut PositionRewardInfo)
36ImmBorrowField[7](PositionRewardInfo.coins_owed_reward: u64)
37ReadRef
38CopyLoc[4](loc2: u128)
39CastU64
40Call math_u64::add_check(u64, u64): bool
41StLoc[2](loc0: bool)
42Branch(45)
B5:
43LdFalse
44StLoc[2](loc0: bool)
B6:
45MoveLoc[2](loc0: bool)
46BrFalse(48)
B7:
47Branch(54)
B8:
48MoveLoc[0](Arg0: &mut Position)
49Pop
50MoveLoc[6](loc4: &mut PositionRewardInfo)
51Pop
52Call errors::update_rewards_info_check_failed(): u64
53Abort
B9:
54MoveLoc[7](loc5: u128)
55CopyLoc[6](loc4: &mut PositionRewardInfo)
56MutBorrowField[10](PositionRewardInfo.reward_growth_inside_last: u128)
57WriteRef
58CopyLoc[6](loc4: &mut PositionRewardInfo)
59ImmBorrowField[7](PositionRewardInfo.coins_owed_reward: u64)
60ReadRef
61MoveLoc[4](loc2: u128)
62CastU64
63Add
64MoveLoc[6](loc4: &mut PositionRewardInfo)
65MutBorrowField[7](PositionRewardInfo.coins_owed_reward: u64)
66WriteRef
67MoveLoc[3](loc1: u64)
68LdU64(1)
69Add
70StLoc[3](loc1: u64)
71Branch(6)
B10:
72MoveLoc[0](Arg0: &mut Position)
73Pop
74Ret
}
 
get_mutable_reward_info(Arg0: &mut Position, Arg1: u64): &mut PositionRewardInfo {
B0:
0CopyLoc[1](Arg1: u64)
1CopyLoc[0](Arg0: &mut Position)
2ImmBorrowField[6](Position.reward_infos: vector<PositionRewardInfo>)
3VecLen(32)
4Ge
5BrFalse(8)
B1:
6CopyLoc[0](Arg0: &mut Position)
7Call add_reward_info(&mut Position)
B2:
8MoveLoc[0](Arg0: &mut Position)
9MutBorrowField[6](Position.reward_infos: vector<PositionRewardInfo>)
10MoveLoc[1](Arg1: u64)
11VecMutBorrow(32)
12Ret
}
 
Constants [
0 => vector<u8>: "name" // interpreted as UTF8 string
1 => vector<u8>: "id" // interpreted as UTF8 string
2 => vector<u8>: "pool" // interpreted as UTF8 string
3 => vector<u8>: "coin_a" // interpreted as UTF8 string
4 => vector<u8>: "coin_b" // interpreted as UTF8 string
5 => vector<u8>: "link" // interpreted as UTF8 string
6 => vector<u8>: "image_url" // interpreted as UTF8 string
7 => vector<u8>: "description" // interpreted as UTF8 string
8 => vector<u8>: "project_url" // interpreted as UTF8 string
9 => vector<u8>: "creator" // interpreted as UTF8 string
10 => vector<u8>: "{name}" // interpreted as UTF8 string
11 => vector<u8>: "{id}" // interpreted as UTF8 string
12 => vector<u8>: "{pool_id}" // interpreted as UTF8 string
13 => vector<u8>: "{coin_type_a}" // interpreted as UTF8 string
14 => vector<u8>: "{coin_type_b}" // interpreted as UTF8 string
15 => vector<u8>: "https://trade.bluefin.io/spot-nft/id={id}" // interpreted as UTF8 string
16 => vector<u8>: "{image_url}" // interpreted as UTF8 string
17 => vector<u8>: "{description}" // interpreted as UTF8 string
18 => vector<u8>: "https://trade.bluefin.io" // interpreted as UTF8 string
19 => vector<u8>: "Bluefin" // interpreted as UTF8 string
20 => vector<u8>: "Bluefin Position, " // interpreted as UTF8 string
21 => vector<u8>: "This NFT represents a liquidity position of a Bluefin " // interpreted as UTF8 string
22 => vector<u8>: " pool. The owner of this NFT can modify or redeem the position" // interpreted as UTF8 string
]
}