transfer_token
Module0x34a2…c82c
- Move path
- 0xbc3d…e5f9::transfer_token
- Functions
- 55 public, 1 entry
- Structs
- 2
- Friend modules
- None
transfer_token
- access_policy19
- attributes18
- collection19
- composable_nft28
- composable_svg27
- composable_url10
- creators16
- display_info14
- frozen_pub1
- mint_cap15
- mint_event3
- mint_pass12
- mint_supply19
- nft18
- nft_bag28
- nft_protocol5
- p2p_list8
- p2p_list_domain13
- plugins14
- royalty29
- royalty_strategy_bps23
- session_token8
- supply27
- svg13
- symbol10
- tags11
- transfer_allowlist6
- transfer_allowlist_domain13
- transfer_token5
- url7
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
}
}