@aftermath/router::router bytecode | tide- Move path
- 0xe509…4373::router
- Functions
- 229 public, 0 entry
- Structs
- 4
- Friend modules
- None
router
The on-chain disassembly. Offsets are bytecode positions within each function.
1// Move bytecode v6
2module e5099fcd45747074d0ef5eabce07a9bd1c3b0c1862435bf2a09c3a81e0604373.router {
3use e5099fcd45747074d0ef5eabce07a9bd1c3b0c1862435bf2a09c3a81e0604373::admin;
4use e5099fcd45747074d0ef5eabce07a9bd1c3b0c1862435bf2a09c3a81e0604373::events;
5use e5099fcd45747074d0ef5eabce07a9bd1c3b0c1862435bf2a09c3a81e0604373::protocol_fee;
6use e5099fcd45747074d0ef5eabce07a9bd1c3b0c1862435bf2a09c3a81e0604373::treasury;
7
use 0000000000000000000000000000000000000000000000000000000000000001::ascii;
8use 0000000000000000000000000000000000000000000000000000000000000001::option;
9use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
10use 0000000000000000000000000000000000000000000000000000000000000001::u64;
11use 0000000000000000000000000000000000000000000000000000000000000002::balance;
12use 0000000000000000000000000000000000000000000000000000000000000002::coin;
13use 0000000000000000000000000000000000000000000000000000000000000002::object;
14use 0000000000000000000000000000000000000000000000000000000000000002::package;
15use 0000000000000000000000000000000000000000000000000000000000000002::sui;
16use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
17use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
19struct ROUTER has drop {
23struct SwapMetadata has copy, drop {
28struct IntegratorFeeConfig has copy, drop {
30 fee_percent_base_18: u64
33struct RouterSwapCapExtended<Ty0, Ty1> {
39 expected_amount_out: u64,
41 protocol_fee_recipient: address,
42 integrator_fee_config: IntegratorFeeConfig,
43 take_fees_on_coin_in: bool
46struct WrapperDataV1<phantom Ty0> {
47 balance_in: Balance<Ty0>,
48 first_swap: SwapMetadata,
49 previous_swap: SwapMetadata,
50 final_swap: SwapMetadata
53struct RouterSwapCap<phantom Ty0> {
56 first_swap: SwapMetadata,
57 previous_swap: SwapMetadata,
58 final_swap: SwapMetadata,
59 integrator_fee_config: IntegratorFeeConfig,
60 take_fees_on_coin_out: bool,
61 referrer: Option<address>
64init(Arg0: ROUTER, Arg1: &mut TxContext) {
680CopyLoc[1](Arg1: &mut TxContext)
702Call tx_context::sender(&TxContext): address
713StLoc[3](loc1: address)
724CopyLoc[1](Arg1: &mut TxContext)
735Call admin::create_admin_cap(&mut TxContext): AdminCap
746CopyLoc[3](loc1: address)
757Call transfer::public_transfer<AdminCap>(AdminCap, address)
768ImmBorrowLoc[0](Arg0: ROUTER)
779CopyLoc[1](Arg1: &mut TxContext)
7810Call protocol_fee::create_config<ROUTER>(&ROUTER, &mut TxContext): ProtocolFeeConfig * ChangeFeeCap
7911StLoc[2](loc0: ChangeFeeCap)
8012Call transfer::public_share_object<ProtocolFeeConfig>(ProtocolFeeConfig)
8113MoveLoc[2](loc0: ChangeFeeCap)
8214CopyLoc[3](loc1: address)
8315Call transfer::public_transfer<ChangeFeeCap>(ChangeFeeCap, address)
8416CopyLoc[1](Arg1: &mut TxContext)
8517Call treasury::create_treasury(&mut TxContext): Treasury
8618Call transfer::public_share_object<Treasury>(Treasury)
8719MoveLoc[0](Arg0: ROUTER)
8820MoveLoc[1](Arg1: &mut TxContext)
8921Call package::claim<ROUTER>(ROUTER, &mut TxContext): Publisher
9022MoveLoc[3](loc1: address)
9123Call transfer::public_transfer<Publisher>(Publisher, address)
95public begin_router_tx_r1_w1<Ty0, Ty1>(Arg0: Coin<Ty0>, Arg1: u64, Arg2: u64, Arg3: &ProtocolFeeConfig, Arg4: &Treasury, Arg5: address, Arg6: u64, Arg7: &mut TxContext): RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>> {
980ImmBorrowLoc[0](Arg0: Coin<Ty0>)
991Call coin::value<Ty0>(&Coin<Ty0>): u64
1013MoveLoc[0](Arg0: Coin<Ty0>)
1024MoveLoc[8](loc0: u64)
1035MoveLoc[1](Arg1: u64)
1046MoveLoc[2](Arg2: u64)
1057MoveLoc[3](Arg3: &ProtocolFeeConfig)
1068MoveLoc[4](Arg4: &Treasury)
1079MoveLoc[5](Arg5: address)
10810MoveLoc[6](Arg6: u64)
10911MoveLoc[7](Arg7: &mut TxContext)
11012Call begin_router_tx_r1_w1_varied_in<Ty0, Ty1>(Coin<Ty0>, u64, u64, u64, &ProtocolFeeConfig, &Treasury, address, u64, &mut TxContext): RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>>
114public begin_router_tx_r1_w1_varied_in<Ty0, Ty1>(Arg0: Coin<Ty0>, Arg1: u64, Arg2: u64, Arg3: u64, Arg4: &ProtocolFeeConfig, Arg5: &Treasury, Arg6: address, Arg7: u64, Arg8: &mut TxContext): RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>> {
116L10: loc1: IntegratorFeeConfig
117L11: loc2: Balance<Ty0>
120L14: loc5: IntegratorFeeConfig
1240MoveLoc[0](Arg0: Coin<Ty0>)
1251Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
1262StLoc[11](loc2: Balance<Ty0>)
1273ImmBorrowLoc[11](loc2: Balance<Ty0>)
1284Call balance::value<Ty0>(&Balance<Ty0>): u64
1306CopyLoc[15](loc6: u64)
1317CopyLoc[1](Arg1: u64)
13510MoveLoc[2](Arg2: u64)
13712CopyLoc[15](loc6: u64)
14015MoveLoc[1](Arg1: u64)
14620CopyLoc[15](loc6: u64)
14721Call assert_route_starts_with_non_zero_value(u64)
14822CopyLoc[6](Arg6: address)
14923LdConst[7](address: 0x00..)
15326CopyLoc[7](Arg7: u64)
15629StLoc[9](loc0: bool)
16032StLoc[9](loc0: bool)
16233MoveLoc[9](loc0: bool)
16535MoveLoc[15](loc6: u64)
16636MoveLoc[7](Arg7: u64)
16737Call protocol_fee::take_percent_base_18(u64, u64): u64
16838StLoc[13](loc4: u64)
16939MutBorrowLoc[11](loc2: Balance<Ty0>)
17040MoveLoc[13](loc4: u64)
17141CopyLoc[8](Arg8: &mut TxContext)
17242Call coin::take<Ty0>(&mut Balance<Ty0>, u64, &mut TxContext): Coin<Ty0>
17343StLoc[12](loc3: Coin<Ty0>)
17444CopyLoc[4](Arg4: &ProtocolFeeConfig)
17545MoveLoc[5](Arg5: &Treasury)
17646MoveLoc[12](loc3: Coin<Ty0>)
17747MoveLoc[6](Arg6: address)
17848MoveLoc[8](Arg8: &mut TxContext)
17949Call collect_integrator_fee<Ty0>(&ProtocolFeeConfig, &Treasury, Coin<Ty0>, address, &mut TxContext): IntegratorFeeConfig
18050StLoc[10](loc1: IntegratorFeeConfig)
18352MoveLoc[5](Arg5: &Treasury)
18554MoveLoc[8](Arg8: &mut TxContext)
18756LdConst[7](address: 0x00..)
18958Pack[2](IntegratorFeeConfig)
19059StLoc[10](loc1: IntegratorFeeConfig)
19260MoveLoc[10](loc1: IntegratorFeeConfig)
19361StLoc[14](loc5: IntegratorFeeConfig)
19462ImmBorrowLoc[11](loc2: Balance<Ty0>)
19563Call balance::value<Ty0>(&Balance<Ty0>): u64
19664StLoc[16](loc7: u64)
19765MoveLoc[2](Arg2: u64)
19866MoveLoc[3](Arg3: u64)
19967MoveLoc[4](Arg4: &ProtocolFeeConfig)
20068Call protocol_fee::dev_wallet(&ProtocolFeeConfig): address
20169MoveLoc[14](loc5: IntegratorFeeConfig)
20371Pack[4](RouterDataV1)
20472MoveLoc[11](loc2: Balance<Ty0>)
20573Call type_to_bytes<Ty0>(): vector<u8>
20674MoveLoc[16](loc7: u64)
20775Pack[1](SwapMetadata)
20876LdConst[9](vector<u8>: "" /..)
21078Pack[1](SwapMetadata)
21179Call type_to_bytes<Ty1>(): vector<u8>
21381Pack[1](SwapMetadata)
21482PackGeneric[0](WrapperDataV1<Ty0>)
21583PackGeneric[1](RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>>)
219public begin_router_tx_sui_r1_w1<Ty0, Ty1>(Arg0: Coin<Ty0>, Arg1: u64, Arg2: u64, Arg3: &ProtocolFeeConfig, Arg4: &Treasury, Arg5: address, Arg6: Coin<SUI>, Arg7: u64, Arg8: &mut TxContext): RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>> {
220L9: loc0: Balance<Ty0>
221L10: loc1: IntegratorFeeConfig
2240MoveLoc[0](Arg0: Coin<Ty0>)
2251Call coin::into_balance<Ty0>(Coin<Ty0>): Balance<Ty0>
2262StLoc[9](loc0: Balance<Ty0>)
2273ImmBorrowLoc[9](loc0: Balance<Ty0>)
2284Call balance::value<Ty0>(&Balance<Ty0>): u64
2306CopyLoc[11](loc2: u64)
2317Call assert_route_starts_with_non_zero_value(u64)
2328ImmBorrowLoc[6](Arg6: Coin<SUI>)
2339Call coin::value<SUI>(&Coin<SUI>): u64
23410MoveLoc[7](Arg7: u64)
24014MoveLoc[4](Arg4: &Treasury)
24216MoveLoc[3](Arg3: &ProtocolFeeConfig)
24418MoveLoc[8](Arg8: &mut TxContext)
24922CopyLoc[3](Arg3: &ProtocolFeeConfig)
25023MoveLoc[4](Arg4: &Treasury)
25124MoveLoc[6](Arg6: Coin<SUI>)
25225MoveLoc[5](Arg5: address)
25326MoveLoc[8](Arg8: &mut TxContext)
25427Call collect_integrator_fee<SUI>(&ProtocolFeeConfig, &Treasury, Coin<SUI>, address, &mut TxContext): IntegratorFeeConfig
25528StLoc[10](loc1: IntegratorFeeConfig)
25629MoveLoc[1](Arg1: u64)
25730MoveLoc[2](Arg2: u64)
25831MoveLoc[3](Arg3: &ProtocolFeeConfig)
25932Call protocol_fee::dev_wallet(&ProtocolFeeConfig): address
26033MoveLoc[10](loc1: IntegratorFeeConfig)
26235Pack[4](RouterDataV1)
26336MoveLoc[9](loc0: Balance<Ty0>)
26437Call type_to_bytes<Ty0>(): vector<u8>
26538MoveLoc[11](loc2: u64)
26639Pack[1](SwapMetadata)
26740LdConst[9](vector<u8>: "" /..)
26942Pack[1](SwapMetadata)
27043Call type_to_bytes<Ty1>(): vector<u8>
27245Pack[1](SwapMetadata)
27346PackGeneric[0](WrapperDataV1<Ty0>)
27447PackGeneric[1](RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>>)
278public initiate_path_w1<Ty0, Ty1>(Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>, Arg1: u64): Balance<Ty1> {
2800CopyLoc[0](Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
2822Call assert_previous_swap_was_valid<Ty0, Ty1>(&RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
2833CopyLoc[0](Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
2844Call update_final_swap_metadata<Ty0, Ty1>(&mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
2855CopyLoc[0](Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
2866Call type_to_bytes<Ty1>(): vector<u8>
2877CopyLoc[1](Arg1: u64)
2888Call update_previous_swap_metadata<Ty0, Ty1>(&mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>, vector<u8>, u64)
2899MoveLoc[0](Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
29010MutBorrowFieldGeneric[0](RouterSwapCapExtended.wrapper_data: WrapperDataV1<Ty1>)
29111MutBorrowFieldGeneric[1](WrapperDataV1.balance_in: Balance<Ty1>)
29212MoveLoc[1](Arg1: u64)
29313Call balance::split<Ty1>(&mut Balance<Ty1>, u64): Balance<Ty1>
297public initiate_path_by_percent_w1<Ty0, Ty1>(Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>, Arg1: u64): Balance<Ty1> {
301L5: loc3: &WrapperDataV1<Ty1>
3030CopyLoc[0](Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
3041ImmBorrowFieldGeneric[0](RouterSwapCapExtended.wrapper_data: WrapperDataV1<Ty1>)
3052StLoc[5](loc3: &WrapperDataV1<Ty1>)
3063CopyLoc[5](loc3: &WrapperDataV1<Ty1>)
3074ImmBorrowFieldGeneric[1](WrapperDataV1.balance_in: Balance<Ty1>)
3085Call balance::value<Ty1>(&Balance<Ty1>): u64
3107CopyLoc[1](Arg1: u64)
31511MoveLoc[5](loc3: &WrapperDataV1<Ty1>)
31713MoveLoc[4](loc2: u64)
32116MoveLoc[5](loc3: &WrapperDataV1<Ty1>)
32217ImmBorrowFieldGeneric[2](WrapperDataV1.first_swap: SwapMetadata)
32318ImmBorrowField[3](SwapMetadata.amount: u64)
32520MoveLoc[1](Arg1: u64)
32621Call calculate_percentage(u64, u64): u64
32923MoveLoc[2](loc0: u64)
33125MoveLoc[0](Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
33226MoveLoc[3](loc1: u64)
33327Call initiate_path_w1<Ty0, Ty1>(&mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>, u64): Balance<Ty1>
337public update_path_metadata_w1<Ty0, Ty1, Ty2>(Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>, Arg1: &UID, Arg2: u64) {
3390MoveLoc[1](Arg1: &UID)
3401Call assert_admin_has_authorized_package(&UID)
3412MoveLoc[0](Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
3423Call type_to_bytes<Ty2>(): vector<u8>
3434MoveLoc[2](Arg2: u64)
3445Call update_previous_swap_metadata<Ty0, Ty1>(&mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>, vector<u8>, u64)
348public end_router_tx_r1_w1<Ty0, Ty1>(Arg0: RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>>, Arg1: &mut Balance<Ty1>, Arg2: &mut TxContext) {
349L3: loc0: Balance<Ty0>
353L7: loc4: SwapMetadata
354L8: loc5: SwapMetadata
355L9: loc6: IntegratorFeeConfig
3630ImmBorrowLoc[0](Arg0: RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>>)
3641Call assert_previous_swap_was_valid<RouterDataV1, Ty0>(&RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>>)
3652MutBorrowLoc[0](Arg0: RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>>)
3663Call update_final_swap_metadata<RouterDataV1, Ty0>(&mut RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>>)
3674CopyLoc[1](Arg1: &mut Balance<Ty1>)
3696Call balance::value<Ty1>(&Balance<Ty1>): u64
3718ImmBorrowLoc[0](Arg0: RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>>)
3729ImmBorrowFieldGeneric[3](RouterSwapCapExtended.wrapper_data: WrapperDataV1<Ty0>)
37310ImmBorrowFieldGeneric[4](WrapperDataV1.final_swap: SwapMetadata)
37411ImmBorrowField[3](SwapMetadata.amount: u64)
37613CopyLoc[4](loc1: u64)
37714Call assert_correct_amount_out(u64, u64)
37815MoveLoc[0](Arg0: RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>>)
37916UnpackGeneric[1](RouterSwapCapExtended<RouterDataV1, WrapperDataV1<Ty0>>)
38017UnpackGeneric[0](WrapperDataV1<Ty0>)
38118StLoc[7](loc4: SwapMetadata)
38320StLoc[8](loc5: SwapMetadata)
38421StLoc[3](loc0: Balance<Ty0>)
38522Unpack[4](RouterDataV1)
38623StLoc[15](loc12: bool)
38724StLoc[9](loc6: IntegratorFeeConfig)
38825StLoc[11](loc8: address)
38926StLoc[12](loc9: u64)
39128MoveLoc[3](loc0: Balance<Ty0>)
39229Call balance::destroy_zero<Ty0>(Balance<Ty0>)
39330CopyLoc[4](loc1: u64)
39431CopyLoc[5](loc2: u64)
39834CopyLoc[4](loc1: u64)
39935MoveLoc[5](loc2: u64)
40137StLoc[13](loc10: u64)
40238CopyLoc[13](loc10: u64)
40339MoveLoc[13](loc10: u64)
40743MoveLoc[4](loc1: u64)
41046Call u64::min(u64, u64): u64
41147StLoc[13](loc10: u64)
41248CopyLoc[1](Arg1: &mut Balance<Ty1>)
41349CopyLoc[13](loc10: u64)
41450CopyLoc[2](Arg2: &mut TxContext)
41551Call coin::take<Ty1>(&mut Balance<Ty1>, u64, &mut TxContext): Coin<Ty1>
41652StLoc[14](loc11: Coin<Ty1>)
41753ImmBorrowLoc[9](loc6: IntegratorFeeConfig)
41854ImmBorrowField[5](IntegratorFeeConfig.recipient: address)
42056LdConst[7](address: 0x00..)
42459MoveLoc[14](loc11: Coin<Ty1>)
42560MoveLoc[11](loc8: address)
42661Call transfer::public_transfer<Coin<Ty1>>(Coin<Ty1>, address)
43165MutBorrowLoc[14](loc11: Coin<Ty1>)
43266MoveLoc[13](loc10: u64)
43569CopyLoc[2](Arg2: &mut TxContext)
43670Call coin::split<Ty1>(&mut Coin<Ty1>, u64, &mut TxContext): Coin<Ty1>
43771ImmBorrowLoc[9](loc6: IntegratorFeeConfig)
43872ImmBorrowField[5](IntegratorFeeConfig.recipient: address)
44074Call transfer::public_transfer<Coin<Ty1>>(Coin<Ty1>, address)
44175ImmBorrowLoc[14](loc11: Coin<Ty1>)
44276Call coin::value<Ty1>(&Coin<Ty1>): u64
44478MoveLoc[14](loc11: Coin<Ty1>)
44579MoveLoc[11](loc8: address)
44680Call transfer::public_transfer<Coin<Ty1>>(Coin<Ty1>, address)
45184CopyLoc[5](loc2: u64)
45386MoveLoc[12](loc9: u64)
45689LdU128(1000000000000000000)
45992StLoc[10](loc7: u64)
46093MoveLoc[4](loc1: u64)
46194MoveLoc[5](loc2: u64)
46295MoveLoc[10](loc7: u64)
46799Call assert_acceptable_slippage_on_amount_out()
469100ImmBorrowLoc[8](loc5: SwapMetadata)
470101ImmBorrowField[6](SwapMetadata.type: vector<u8>)
472103ImmBorrowLoc[8](loc5: SwapMetadata)
473104ImmBorrowField[3](SwapMetadata.amount: u64)
475106ImmBorrowLoc[9](loc6: IntegratorFeeConfig)
476107ImmBorrowField[7](IntegratorFeeConfig.fee_percent_base_18: u64)
478109MoveLoc[15](loc12: bool)
479110ImmBorrowLoc[7](loc4: SwapMetadata)
480111ImmBorrowField[6](SwapMetadata.type: vector<u8>)
482113MoveLoc[1](Arg1: &mut Balance<Ty1>)
484115Call balance::value<Ty1>(&Balance<Ty1>): u64
485116MoveLoc[6](loc3: u64)
486117ImmBorrowLoc[9](loc6: IntegratorFeeConfig)
487118ImmBorrowField[5](IntegratorFeeConfig.recipient: address)
489120MoveLoc[2](Arg2: &mut TxContext)
491122Call events::emit_swap_completed_event(vector<u8>, u64, u64, bool, vector<u8>, u64, u64, address, &TxContext)
495assert_acceptable_slippage_on_amount_out() {
501update_previous_swap_metadata<Ty0, Ty1>(Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>, Arg1: vector<u8>, Arg2: u64) {
5030MoveLoc[1](Arg1: vector<u8>)
5041MoveLoc[2](Arg2: u64)
5052Pack[1](SwapMetadata)
5063MoveLoc[0](Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
5074MutBorrowFieldGeneric[0](RouterSwapCapExtended.wrapper_data: WrapperDataV1<Ty1>)
5085MutBorrowFieldGeneric[5](WrapperDataV1.previous_swap: SwapMetadata)
513update_final_swap_metadata<Ty0, Ty1>(Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>) {
5160CopyLoc[0](Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
5171ImmBorrowFieldGeneric[0](RouterSwapCapExtended.wrapper_data: WrapperDataV1<Ty1>)
5182ImmBorrowFieldGeneric[5](WrapperDataV1.previous_swap: SwapMetadata)
5193ImmBorrowField[3](SwapMetadata.amount: u64)
5226CopyLoc[0](Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
5237ImmBorrowFieldGeneric[0](RouterSwapCapExtended.wrapper_data: WrapperDataV1<Ty1>)
5248ImmBorrowFieldGeneric[6](WrapperDataV1.final_swap: SwapMetadata)
5259ImmBorrowField[3](SwapMetadata.amount: u64)
52711MoveLoc[1](loc0: u64)
52913MoveLoc[0](Arg0: &mut RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
53014MutBorrowFieldGeneric[0](RouterSwapCapExtended.wrapper_data: WrapperDataV1<Ty1>)
53115MutBorrowFieldGeneric[6](WrapperDataV1.final_swap: SwapMetadata)
53216MutBorrowField[3](SwapMetadata.amount: u64)
537type_to_bytes<Ty0>(): vector<u8> {
5400Call type_name::with_defining_ids<Ty0>(): TypeName
5411StLoc[0](loc0: TypeName)
5422ImmBorrowLoc[0](loc0: TypeName)
5433Call type_name::as_string(&TypeName): &String
5444Call ascii::as_bytes(&String): &vector<u8>
549calculate_percentage(Arg0: u64, Arg1: u64): u64 {
5510MoveLoc[0](Arg0: u64)
5532MoveLoc[1](Arg1: u64)
5565LdConst[8](u64: 1000..)
563collect_integrator_fee<Ty0>(Arg0: &ProtocolFeeConfig, Arg1: &Treasury, Arg2: Coin<Ty0>, Arg3: address, Arg4: &mut TxContext): IntegratorFeeConfig {
5660MoveLoc[0](Arg0: &ProtocolFeeConfig)
5671MoveLoc[1](Arg1: &Treasury)
5682MutBorrowLoc[2](Arg2: Coin<Ty0>)
5693MoveLoc[4](Arg4: &mut TxContext)
5704Call protocol_fee::distribute_protocol_fees<Ty0>(&ProtocolFeeConfig, &Treasury, &mut Coin<Ty0>, &mut TxContext)
5715ImmBorrowLoc[2](Arg2: Coin<Ty0>)
5726Call coin::value<Ty0>(&Coin<Ty0>): u64
5748MoveLoc[2](Arg2: Coin<Ty0>)
5759CopyLoc[3](Arg3: address)
57610Call transfer::public_transfer<Coin<Ty0>>(Coin<Ty0>, address)
57711MoveLoc[3](Arg3: address)
57812MoveLoc[5](loc0: u64)
57913Pack[2](IntegratorFeeConfig)
583public assert_expected_balance_in_w1<Ty0, Ty1, Ty2>(Arg0: &RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>, Arg1: &Balance<Ty2>) {
5860CopyLoc[0](Arg0: &RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
5871ImmBorrowFieldGeneric[0](RouterSwapCapExtended.wrapper_data: WrapperDataV1<Ty1>)
5882ImmBorrowFieldGeneric[5](WrapperDataV1.previous_swap: SwapMetadata)
5893ImmBorrowField[6](SwapMetadata.type: vector<u8>)
5915Call type_to_bytes<Ty2>(): vector<u8>
5958MoveLoc[0](Arg0: &RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
5969ImmBorrowFieldGeneric[0](RouterSwapCapExtended.wrapper_data: WrapperDataV1<Ty1>)
59710ImmBorrowFieldGeneric[5](WrapperDataV1.previous_swap: SwapMetadata)
59811ImmBorrowField[3](SwapMetadata.amount: u64)
60013MoveLoc[1](Arg1: &Balance<Ty2>)
60114Call balance::value<Ty2>(&Balance<Ty2>): u64
60316StLoc[2](loc0: bool)
60618MoveLoc[0](Arg0: &RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
60820MoveLoc[1](Arg1: &Balance<Ty2>)
61123StLoc[2](loc0: bool)
61324MoveLoc[2](loc0: bool)
624assert_admin_has_authorized_package(Arg0: &UID) {
6260MoveLoc[0](Arg0: &UID)
6271Call admin::has_authorized(&UID): bool
638assert_route_starts_with_non_zero_value(Arg0: u64) {
6400MoveLoc[0](Arg0: u64)
653assert_correct_amount_out(Arg0: u64, Arg1: u64) {
6550MoveLoc[0](Arg0: u64)
6561MoveLoc[1](Arg1: u64)
668assert_previous_swap_was_valid<Ty0, Ty1>(Arg0: &RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>) {
670L2: loc1: &WrapperDataV1<Ty1>
6720MoveLoc[0](Arg0: &RouterSwapCapExtended<Ty0, WrapperDataV1<Ty1>>)
6731ImmBorrowFieldGeneric[0](RouterSwapCapExtended.wrapper_data: WrapperDataV1<Ty1>)
6742StLoc[2](loc1: &WrapperDataV1<Ty1>)
6753CopyLoc[2](loc1: &WrapperDataV1<Ty1>)
6764ImmBorrowFieldGeneric[5](WrapperDataV1.previous_swap: SwapMetadata)
6775ImmBorrowField[6](SwapMetadata.type: vector<u8>)
6797CopyLoc[2](loc1: &WrapperDataV1<Ty1>)
6808ImmBorrowFieldGeneric[6](WrapperDataV1.final_swap: SwapMetadata)
6819ImmBorrowField[6](SwapMetadata.type: vector<u8>)
68613MoveLoc[2](loc1: &WrapperDataV1<Ty1>)
68916StLoc[1](loc0: bool)
69218MoveLoc[2](loc1: &WrapperDataV1<Ty1>)
69319ImmBorrowFieldGeneric[5](WrapperDataV1.previous_swap: SwapMetadata)
69420ImmBorrowField[3](SwapMetadata.amount: u64)
69824StLoc[1](loc0: bool)
70025MoveLoc[1](loc0: bool)
711public assert_expected_coin_in<Ty0, Ty1>(Arg0: &RouterSwapCap<Ty0>, Arg1: &Coin<Ty1>) {
717public update_path_metadata<Ty0, Ty1>(Arg0: &mut RouterSwapCap<Ty0>, Arg1: &UID, Arg2: u64) {
723public initiate_path<Ty0>(Arg0: &mut RouterSwapCap<Ty0>, Arg1: u64, Arg2: &mut TxContext): Coin<Ty0> {
729public initiate_path_by_percent<Ty0>(Arg0: &mut RouterSwapCap<Ty0>, Arg1: u64, Arg2: &mut TxContext): Coin<Ty0> {
735public begin_router_tx<Ty0, Ty1>(Arg0: Coin<Ty0>, Arg1: u64, Arg2: Option<address>, Arg3: Option<u64>, Arg4: Option<address>): RouterSwapCap<Ty0> {
741public begin_router_tx_and_collect_fees<Ty0, Ty1>(Arg0: Coin<Ty0>, Arg1: u64, Arg2: &ProtocolFeeConfig, Arg3: &Treasury, Arg4: Option<address>, Arg5: Option<u64>, Arg6: Option<address>, Arg7: &mut TxContext): RouterSwapCap<Ty0> {
747public begin_router_tx_and_collect_sui_fee<Ty0, Ty1>(Arg0: Coin<Ty0>, Arg1: u64, Arg2: &ProtocolFeeConfig, Arg3: &Treasury, Arg4: address, Arg5: Coin<SUI>, Arg6: u64, Arg7: Option<address>, Arg8: &mut TxContext): RouterSwapCap<Ty0> {
753public end_router_tx_and_pay_fees<Ty0, Ty1>(Arg0: RouterSwapCap<Ty0>, Arg1: &mut Coin<Ty1>, Arg2: &ProtocolFeeConfig, Arg3: &Treasury, Arg4: &mut TxContext) {
759public end_router_tx<Ty0, Ty1>(Arg0: RouterSwapCap<Ty0>, Arg1: &mut Coin<Ty1>, Arg2: &mut TxContext) {
773 7 => address: 0x0000000000000000000000000000000000000000000000000000000000000000
774 8 => u64: 1000000000000000000
775 9 => vector<u8>: "" // interpreted as UTF8 string