如何将EGLD值发送到智能合约端点



我有一个智能合约方法,看起来像这样:

#[payable("EGLD")]
#[endpoint(myEndpoint)]
fn my_endpoint(&self, #[payment_amount] payment: BigUint, some_value: u64) { ... }

我称之为交易中的5 EGLD值和tx数据

myEndpoint@05@aa

但是tx结果返回我CCD_ 2。

我做错了什么?

EGLD中的支付参数是根据您在事务中已经指定的调用值自动填充的,因此您不需要将它们作为参数传递。

因此,在这种情况下,您的呼叫数据将是myEndpoint@aa,没有支付参数。

附带说明一下,如果这是一个接受EGLD以外的另一个令牌的端点,则必须在数据字段中指定令牌和数量,如:ESDTNFTTransfer@TokenIdentifier_in_hex@TokenNonce_in_hex@TokenValue_in_hex@Contract_address_in_hex@myEndpoint_in_hex@aa

ESDTNFTTransfer函数发送任何类型的ESDT令牌,包括或不包括nonce。如果令牌没有nonce(可替代(,则可以将00作为nonce传递,也可以将nonce空间留空,如@TokenName_in_hex@@TokenValue_in_hex。请注意,为了使用此函数,您必须将目标设置为自己来组成事务。目的地的实际地址将代替Contract_address_in_hex包含在数据字段中,使其成为ESDTNFTTransfer函数的参数。

例如,如果端点接受了两个令牌,那么您可以使用MultiESDTNFTTransfer@Contract_address_in_hex@02@Token1Identifier_in_hex@Token1Nonce_in_hex@Token1Value_in_hex@Token2Identifier_in_hex@Token2Nonce_in_hex@Token2Value_in_hex@myEndpoint_in_hex

是的,您可以随时查看ESDT代币/NFT代币上的Elrond文档以了解更多详细信息。

相关内容

  • 没有找到相关文章

最新更新