如何通过合约调用nft mint?
How to call the nft mint by the contract?
我想调用 mint 函数:
#[payable]
pub fn buy_nft(&mut self, token_id: String) {
self.tokens.mint(
token_id,
new_owner_id,
Some(token_metadata),
)
}
但是前任需要owner_id,我的owner_id是部署合约的合约id
Link
assert_eq!(env::predecessor_account_id(), self.owner_id, "Unauthorized");
当我通过 say charlie 调用这个函数时,它给出了 Uauthorized 错误:
call!(
charlie,
contract.buy_nft("123".to_owned()),
deposit = to_yocto("10")
).assert_success();
错误:
Smart contract panicked: panicked at 'assertion failed: `(left == right)`
left: `"charlie"`,
right: `"contractname"`: Unauthorized'
如何通过 charlie 按合同调用 self.token_mint?
目前的答案是从标准实现中复制 mint
函数并根据需要进行自定义。
更好的界面会在以后的更新中出现。
我想调用 mint 函数:
#[payable]
pub fn buy_nft(&mut self, token_id: String) {
self.tokens.mint(
token_id,
new_owner_id,
Some(token_metadata),
)
}
但是前任需要owner_id,我的owner_id是部署合约的合约id
Link
assert_eq!(env::predecessor_account_id(), self.owner_id, "Unauthorized");
当我通过 say charlie 调用这个函数时,它给出了 Uauthorized 错误:
call!(
charlie,
contract.buy_nft("123".to_owned()),
deposit = to_yocto("10")
).assert_success();
错误:
Smart contract panicked: panicked at 'assertion failed: `(left == right)`
left: `"charlie"`,
right: `"contractname"`: Unauthorized'
如何通过 charlie 按合同调用 self.token_mint?
目前的答案是从标准实现中复制 mint
函数并根据需要进行自定义。
更好的界面会在以后的更新中出现。