I’m referring to the warning here: Operations | SmartPy
Which says that operations are done after the entrypoint is completed.
So in my flow:
- The contract buys the NFT
- The contract sends it from itself to
sp.sender
.
I’m not sure who has the NFT at the beginning of 2) It should be the contract as it buying the NFT.
Also, how would I construct t.transfer_params?
I wrote that:
nftContract = sp.contract(t.transfer_params, nftAddress, entrypoint="transfer")
nftContract.transfer([
sp.record(
from_ = sp.self_address(),
txs=[sp.record(token_id=nftId, amount=1, to_=sp.sender)]
),
])
Where nftId and nftAddress are params passed to my entrypoint. Based on what you shared here: Transfering FA2 between two users - #2 by Jordan
But I get the following error:
(nftContract : sp.option(sp.contract(sp.list(sp.record(from_ = sp.address, txs = sp.list(sp.record(amount = sp.nat, to_ = sp.address, token_id = sp.nat).layout(("to_", ("token_id", "amount"))))).layout(("from_", "txs")))))) has no field \'transfer\' of type sp.unknown
Expected type \'TRecord++(transfer = sp.unknown)\', but got \'sp.option(sp.contract(sp.list(sp.record(from_ = sp.address, txs = sp.list(sp.record(amount = sp.nat, to_ = sp.address, token_id = sp.nat).layout(("to_", ("token_id", "amount"))))).layout(("from_", "txs")))))\'.
(__main__, line 65)
I believe the import from the library is not working
Thanks!