我正在为NFT使用接近合同的标准。在这个示例中,它有nft_mint,它使用令牌所有者id和令牌id来创建令牌。
#[payable]
pub fn nft_mint(
&mut self,
token_id: TokenId,
token_owner_id: ValidAccountId,
token_metadata: TokenMetadata,
) -> Token {
self.tokens.mint(token_id, token_owner_id, Some(token_metadata))
}
}然后,令牌所有者id可以作为另一个帐户的前身进行nft传输。https://github.com/near-examples/NFT/blob/master/nft/src/lib.rs
contract.nft_mint(token_id.clone(), accounts(0), sample_token_metadata());
testing_env!(context
.storage_usage(env::storage_usage())
.attached_deposit(1)
.predecessor_account_id(accounts(0))
.build());
contract.nft_transfer(accounts(1), token_id.clone(), None, None);我想用nft的买入价格进行nft的转换,其中的前身是希望购买nft的用户,而不是令牌所有者,然后将资金转移给令牌所有者。
我怎么能这么做?我是使用转移,还是用nft_mint函数设置价格,并将令牌直接存入买方帐户id?
发布于 2021-08-03 16:46:17
如果我正确地理解了这个问题,您希望将nft_mint与某种应付操作结合起来,这将支付一些"NFT令牌类型“的原始创建者?
您可以在这里查看NFT市场回购:https://github.com/near-apps/nft-market
这个存储库使用一个单独的市场帐户和合同,允许NFT所有者将NFT出售。比你想要的要多一点。
还有一种变体使用“懒散的薄荷”来仅在用户从市场合约中购买NFT时创建NFT:https://github.com/near-apps/gnr8/。
再说一次,这比我想要的要多一点,因为支付和购买是在一个单独的合同中进行的,而NFT的转让和铸币正在NFT合同中发生,这是从市场合约中调用的。
如果您想要添加您自己的应付NFT方法,可以从以下内容开始:https://github.com/near-apps/nft-series/
它允许您定义一个NFT类型,并且可以通过使nft_mint_type方法可支付而不要求该类型的所有者成为minter来向用户收取该类型的1/N。
FYI这些方法是不标准的,但是很有效.
如果你需要对上面的例子有任何帮助的话,可以直接接触不和。
https://stackoverflow.com/questions/68602149
复制相似问题