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

Move path
0x0000…0002::transfer
Functions
1611 public, 0 entry
Structs
1
Friend modules
None
transfer

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
}
 
public share_object<Ty0: key>(Arg0: Ty0) {
B0:
0MoveLoc[0](Arg0: Ty0)
1Call share_object_impl<Ty0>(Ty0)
2Ret
}
 
public public_share_object<Ty0: store + key>(Arg0: Ty0) {
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) share_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
]
}