Sui Framework
transfer
- Move path
- 0x0000…0002::transfer
- Functions
- 1611 public, 0 entry
- Structs
- 1
- Friend modules
- None
transfer
- accumulator18
- accumulator_metadata2
- accumulator_settlement8
- address10
- address_alias5
- allowance40
- authenticator_state13
- bag10
- balance18
- bcs30
- bls1238143
- borrow4
- clock3
- coin54
- coin_registry43
- config11
- deny_list21
- derived_object3
- display14
- display_registry18
- dynamic_field19
- dynamic_object_field15
- ecdsa_k13
- ecdsa_r12
- ecvrf1
- ed255191
- event3
- forwarding_address1
- funds_accumulator12
- groth1610
- group_ops23
- hash2
- hex3
- hmac1
- kiosk41
- kiosk_extension14
- linked_table19
- math7
- nitro_attestation11
- object32
- object_bag11
- object_table10
- package26
- party5
- pay8
- poseidon2
- priority_queue8
- protocol_config1
- prover0
- random20
- rangeproofs3
- ristretto25518
- scratch18
- sui2
- table10
- table_vec12
- token45
- transfer16
- transfer_policy18
- tx_context19
- types1
- url4
- vdf4
- vec_map20
- vec_set11
- versioned7
- zklogin_verified_id9
- zklogin_verified_issuer6
Bytecode172 lines
The on-chain disassembly. Offsets are instruction numbers within each function.
// Move bytecode v7
module 2.transfer {
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::party;
struct Receiving<phantom Ty0: key> has drop {
id: ID,
version: u64
}
public transfer<Ty0: key>(Arg0: Ty0, Arg1: address) {
B0:
0MoveLoc[0](Arg0: Ty0)
1MoveLoc[1](Arg1: address)
2Call transfer_impl<Ty0>(Ty0, address)
3Ret
}
public public_transfer<Ty0: store + key>(Arg0: Ty0, Arg1: address) {
B0:
0MoveLoc[0](Arg0: Ty0)
1MoveLoc[1](Arg1: address)
2Call transfer_impl<Ty0>(Ty0, address)
3Ret
}
public party_transfer<Ty0: key>(Arg0: Ty0, Arg1: Party) {
L2: loc0: vector<address>
L3: loc1: u64
L4: loc2: vector<u64>
B0:
0ImmBorrowLoc[1](Arg1: Party)
1Call party::is_single_owner(&Party): bool
2BrFalse(4)
B1:
3Branch(6)
B2:
4LdU64(13836747240150269959)
5Abort
B3:
6MoveLoc[1](Arg1: Party)
7Call party::into_native(Party): u64 * vector<address> * vector<u64>
8StLoc[4](loc2: vector<u64>)
9StLoc[2](loc0: vector<address>)
10StLoc[3](loc1: u64)
11MoveLoc[0](Arg0: Ty0)
12MoveLoc[3](loc1: u64)
13MoveLoc[2](loc0: vector<address>)
14MoveLoc[4](loc2: vector<u64>)
15Call party_transfer_impl<Ty0>(Ty0, u64, vector<address>, vector<u64>)
16Ret
}
public public_party_transfer<Ty0: store + key>(Arg0: Ty0, Arg1: Party) {
L2: loc0: vector<address>
L3: loc1: u64
L4: loc2: vector<u64>
B0:
0ImmBorrowLoc[1](Arg1: Party)
1Call party::is_single_owner(&Party): bool
2BrFalse(4)
B1:
3Branch(6)
B2:
4LdU64(13836747300279812103)
5Abort
B3:
6MoveLoc[1](Arg1: Party)
7Call party::into_native(Party): u64 * vector<address> * vector<u64>
8StLoc[4](loc2: vector<u64>)
9StLoc[2](loc0: vector<address>)
10StLoc[3](loc1: u64)
11MoveLoc[0](Arg0: Ty0)
12MoveLoc[3](loc1: u64)
13MoveLoc[2](loc0: vector<address>)
14MoveLoc[4](loc2: vector<u64>)
15Call party_transfer_impl<Ty0>(Ty0, u64, vector<address>, vector<u64>)
16Ret
}
public freeze_object<Ty0: key>(Arg0: Ty0) {
B0:
0MoveLoc[0](Arg0: Ty0)
1Call freeze_object_impl<Ty0>(Ty0)
2Ret
}
public public_freeze_object<Ty0: store + key>(Arg0: Ty0) {
B0:
0MoveLoc[0](Arg0: Ty0)
1Call freeze_object_impl<Ty0>(Ty0)
2Ret
}
B0:
0MoveLoc[0](Arg0: Ty0)
1Call share_object_impl<Ty0>(Ty0)
2Ret
}
B0:
0MoveLoc[0](Arg0: Ty0)
1Call share_object_impl<Ty0>(Ty0)
2Ret
}
public receive<Ty0: key>(Arg0: &mut UID, Arg1: Receiving<Ty0>): Ty0 {
L2: loc0: ID
L3: loc1: u64
B0:
0MoveLoc[1](Arg1: Receiving<Ty0>)
1UnpackGeneric[0](Receiving<Ty0>)
2StLoc[3](loc1: u64)
3StLoc[2](loc0: ID)
4MoveLoc[0](Arg0: &mut UID)
5FreezeRef
6Call object::uid_to_address(&UID): address
7MoveLoc[2](loc0: ID)
8MoveLoc[3](loc1: u64)
9Call receive_impl<Ty0>(address, ID, u64): Ty0
10Ret
}
public public_receive<Ty0: store + key>(Arg0: &mut UID, Arg1: Receiving<Ty0>): Ty0 {
L2: loc0: ID
L3: loc1: u64
B0:
0MoveLoc[1](Arg1: Receiving<Ty0>)
1UnpackGeneric[0](Receiving<Ty0>)
2StLoc[3](loc1: u64)
3StLoc[2](loc0: ID)
4MoveLoc[0](Arg0: &mut UID)
5FreezeRef
6Call object::uid_to_address(&UID): address
7MoveLoc[2](loc0: ID)
8MoveLoc[3](loc1: u64)
9Call receive_impl<Ty0>(address, ID, u64): Ty0
10Ret
}
public receiving_object_id<Ty0: key>(Arg0: &Receiving<Ty0>): ID {
B0:
0MoveLoc[0](Arg0: &Receiving<Ty0>)
1ImmBorrowFieldGeneric[0](Receiving.id: ID)
2ReadRef
3Ret
}
native public(friend) freeze_object_impl<Ty0: key>(Arg0: Ty0);
native public(friend) party_transfer_impl<Ty0: key>(Arg0: Ty0, Arg1: u64, Arg2: vector<address>, Arg3: vector<u64>);
native public(friend) transfer_impl<Ty0: key>(Arg0: Ty0, Arg1: address);
native receive_impl<Ty0: key>(Arg0: address, Arg1: ID, Arg2: u64): Ty0;
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => u64: 3
4 => u64: 4
5 => u64: 5
6 => vector<u8>: "EInvalidPartyPermissions" // interpreted as UTF8 string
7 => vector<u8>: "Party transfer is currently limited to one party." // interpreted as UTF8 string
]
}