在上部署了一个NFT智能契约之后,我尝试使用issueToken代码片段:
erdpy --verbose contract call ${ADDRESS} --recall-nonce --pem=${ALICE} --gas-limit=${GAS_LIMIT} \
--function="issueToken" \
--value ${MINT_COST} \
--arguments ${ISSUE_TOKEN_ARGUMENTS} \
--proxy=${PROXY} --chain=${CHAINID} --send \
--outfile="${MY_LOGS}/issueToken.json"
}但是我得到了错误“无效令牌索引”。
发布于 2022-10-12 11:38:39
由于令牌问题是由您正在调用的智能契约(因为您正在调用该契约的issueToken端点)管理的,最有可能的原因是您没有将正确的参数传递给issueToken端点。
您必须首先知道契约对该端点期望哪些参数,然后根据预期的格式传递它们编码的十六进制。
对于特定情况,如果端点签名如下所示:
#[only_owner]
#[payable("EGLD")]
#[endpoint(issueToken)]
fn issue_token(
&self,
#[payment] issue_cost: BigUint,
token_name: ManagedBuffer,
token_ticker: ManagedBuffer,
) -> SCResult<AsyncCall>那么$ISSUE_TOKEN_ARGUMENTS应该包含如下内容:
ISSUE_TOKEN_ARGUMENTS="str:MyTokenName str:MYTKNTICKER"发布于 2022-10-12 12:33:03
以下是issueToken端点
#[only_owner]
#[payable("EGLD")]
#[endpoint(issueToken)]
fn issue_token(
&self,
#[payment] issue_cost: BigUint,
token_name: ManagedBuffer,
token_ticker: ManagedBuffer,
) -> SCResult<AsyncCall> {
require!(self.nft_token_id().is_empty(), "Token already issued");
Ok(self
.send()
.esdt_system_sc_proxy()
.issue_non_fungible(
issue_cost,
&token_name,
&token_ticker,
NonFungibleTokenProperties {
can_freeze: true,
can_wipe: true,
can_pause: true,
can_change_owner: false,
can_upgrade: false,
can_add_special_roles: true,
},
)
.async_call()
.with_callback(self.callbacks().issue_callback()))
}https://stackoverflow.com/questions/74027415
复制相似问题