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

API

transfer_token

Module0x34a2…c82c
Move path
0xbc3d…e5f9::transfer_token
Functions
55 public, 1 entry
Structs
2
Friend modules
None
transfer_token

Bytecode86 lines

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

// Move bytecode v6
module bc3df36be17f27ac98e3c839b2589db8475fa07b20657b08e8891e3aaf5ee5f9.transfer_token {
use 16c5f17f2d55584a6e6daa442ccf83b4530d10546a8e7dedda9ba324e012fc40::witness;
use e2c7a6843cb13d9549a9d2dc1c266b572ead0b4b9f090e7c3c46de2714102b43::request;
use 0000000000000000000000000000000000000000000000000000000000000002::object;
use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
 
struct TransferToken<phantom Ty0> has key {
id: UID,
receiver: address
}
 
struct TransferTokenRule has drop {
dummy_field: bool
}
 
public new<Ty0>(Arg0: Witness<Ty0>, Arg1: address, Arg2: &mut TxContext): TransferToken<Ty0> {
B0:
0MoveLoc[2](Arg2: &mut TxContext)
1Call object::new(&mut TxContext): UID
2MoveLoc[1](Arg1: address)
3PackGeneric[0](TransferToken<Ty0>)
4Ret
}
 
public create_and_transfer<Ty0>(Arg0: Witness<Ty0>, Arg1: address, Arg2: address, Arg3: &mut TxContext): ID {
L4: loc0: TransferToken<Ty0>
L5: loc1: ID
B0:
0MoveLoc[0](Arg0: Witness<Ty0>)
1MoveLoc[1](Arg1: address)
2MoveLoc[3](Arg3: &mut TxContext)
3Call new<Ty0>(Witness<Ty0>, address, &mut TxContext): TransferToken<Ty0>
4StLoc[4](loc0: TransferToken<Ty0>)
5ImmBorrowLoc[4](loc0: TransferToken<Ty0>)
6Call object::id<TransferToken<Ty0>>(&TransferToken<Ty0>): ID
7StLoc[5](loc1: ID)
8MoveLoc[4](loc0: TransferToken<Ty0>)
9MoveLoc[2](Arg2: address)
10Call transfer::transfer<TransferToken<Ty0>>(TransferToken<Ty0>, address)
11MoveLoc[5](loc1: ID)
12Ret
}
 
entry public enforce<Ty0, Ty1>(Arg0: &mut Policy<WithNft<Ty0, Ty1>>, Arg1: &PolicyCap) {
B0:
0MoveLoc[0](Arg0: &mut Policy<WithNft<Ty0, Ty1>>)
1MoveLoc[1](Arg1: &PolicyCap)
2Call request::enforce_rule_no_state<WithNft<Ty0, Ty1>, TransferTokenRule>(&mut Policy<WithNft<Ty0, Ty1>>, &PolicyCap)
3Ret
}
 
public drop<Ty0, Ty1>(Arg0: &mut Policy<WithNft<Ty0, Ty1>>, Arg1: &PolicyCap) {
B0:
0MoveLoc[0](Arg0: &mut Policy<WithNft<Ty0, Ty1>>)
1MoveLoc[1](Arg1: &PolicyCap)
2Call request::drop_rule_no_state<WithNft<Ty0, Ty1>, TransferTokenRule>(&mut Policy<WithNft<Ty0, Ty1>>, &PolicyCap)
3Ret
}
 
public confirm<Ty0: store + key, Ty1>(Arg0: Ty0, Arg1: TransferToken<Ty0>, Arg2: &mut RequestBody<WithNft<Ty0, Ty1>>) {
L3: loc0: TransferTokenRule
L4: loc1: &mut RequestBody<WithNft<Ty0, Ty1>>
L5: loc2: address
B0:
0MoveLoc[1](Arg1: TransferToken<Ty0>)
1UnpackGeneric[0](TransferToken<Ty0>)
2StLoc[5](loc2: address)
3Call object::delete(UID)
4MoveLoc[0](Arg0: Ty0)
5MoveLoc[5](loc2: address)
6Call transfer::public_transfer<Ty0>(Ty0, address)
7MoveLoc[2](Arg2: &mut RequestBody<WithNft<Ty0, Ty1>>)
8StLoc[4](loc1: &mut RequestBody<WithNft<Ty0, Ty1>>)
9LdFalse
10Pack[1](TransferTokenRule)
11StLoc[3](loc0: TransferTokenRule)
12MoveLoc[4](loc1: &mut RequestBody<WithNft<Ty0, Ty1>>)
13ImmBorrowLoc[3](loc0: TransferTokenRule)
14Call request::add_receipt<WithNft<Ty0, Ty1>, TransferTokenRule>(&mut RequestBody<WithNft<Ty0, Ty1>>, &TransferTokenRule)
15Ret
}
 
}