【问题标题】:NFT transfer with priceNFT 有价转账
【发布时间】:2021-10-06 15:49:28
【问题描述】:

我正在为 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 的用户,而不是代币所有者,然后将钱转移给代币所有者。
我怎样才能做到这一点?我会使用internal_transfer 还是在nft_mint 函数中设置价格,并将代币直接铸造到买家账户ID?

【问题讨论】:

    标签: nearprotocol


    【解决方案1】:

    如果我正确理解了这个问题,您希望将nft_mint 与某种支付行动结合起来,以支付某些“NFT 代币类型”的原始创建者?

    您可以在此处查看 NFT Market 回购:https://github.com/near-apps/nft-market

    此存储库使用单独的市场帐户和合同来允许 NFT 所有者出售 NFT。比我想的要多一点。

    还有一种变体使用“惰性铸币”来仅在用户从市场合约购买 NFT 时铸币:https://github.com/near-apps/gnr8/

    同样,它比我认为的要多一点,因为付款和购买是在单独的合约中进行的,而 NFT 转移和铸造是在 NFT 合约中进行的,该合约是从市场合约中调用的。

    如果您正在寻找一些东西来添加您自己的应付 NFT 方法,您可以从以下开始: https://github.com/near-apps/nft-series/

    这允许您定义 NFT 类型,并且您可以通过支付 nft_mint_type 方法向用户收取该类型的铸币 1/N 费用,而不要求该类型的所有者是铸币者。

    仅供参考这些方法是非标准的,但有效。

    如果您需要上述示例的任何帮助,请随时直接在 Discord 上联系。

    【讨论】:

      猜你喜欢
      • 2022-08-12
      • 2021-12-25
      • 2022-07-04
      • 2023-01-25
      • 2021-12-28
      • 2023-03-26
      • 1970-01-01
      • 2022-08-12
      • 2022-11-01
      相关资源
      最近更新 更多