有价NFT转账
NFT transfer with price
我正在为 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))
}
}
然后token owner id可以作为preceder进行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?
如果我对问题的理解正确,您想将 nft_mint
与某种支付行为结合起来,支付给某些“NFT 令牌类型”的原始创建者吗?
您可以在此处查看 NFT 市场回购: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 上联系我们。
我正在为 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))
}
}
然后token owner id可以作为preceder进行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?
如果我对问题的理解正确,您想将 nft_mint
与某种支付行为结合起来,支付给某些“NFT 令牌类型”的原始创建者吗?
您可以在此处查看 NFT 市场回购: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 上联系我们。