我正在尝试处理示例https://docs.wavesplatform.com/en/smart-contracts/ride4dapps/examples.html,并对其进行了一些更改,以将其扩展到任何类型的资产。目前还不清楚返回给函数的是哪种类型的数据,以及如何将其带到字符串中,以便稍后可以将其写入状态。
let payment = match(i.payment) { #even none or exact amount of the attached payment(InvokeScriptTransaction).
case p : AttachedPayment => p
case _ => throw("You have to provide a payment to deposit")
}
let assetId = toBase58String(payment.assetId)发布于 2019-04-06 02:24:30
如果你尝试编译你的代码,你会看到如下所示的错误
Compilation failed: Non-matching types: expected: ByteVector, actual: UNION(ByteVector|Unit) in 2176-2207每次当变量的值不明确时,必须使用extract函数来提取值。在这种情况下,您可以获得Unit (表示Waves assetId)或byteVector (其他资产的assetId),因此您必须提取。下面的代码将适用于您的情况:
let assetId = toBase58String(extract(payment.assetId))https://stackoverflow.com/questions/55533749
复制相似问题