【发布时间】:2021-04-12 14:10:12
【问题描述】:
有没有办法查询给定的 NEAR 合约提供了哪些方法? (例如,这样就可以自动发现某些标准接口。)或者您是否必须在与合约交互之前已经知道方法签名?
【问题讨论】:
标签: method-signature nearprotocol autodiscovery
有没有办法查询给定的 NEAR 合约提供了哪些方法? (例如,这样就可以自动发现某些标准接口。)或者您是否必须在与合约交互之前已经知道方法签名?
【问题讨论】:
标签: method-signature nearprotocol autodiscovery
还没有。目前所有的合约方法都有相同的签名。 () -> () 没有参数,也没有返回任何内容。每个方法都有一个包装函数,用于反序列化来自主机的输入字节;调用方法;并序列化返回值并将字节传回主机。
这是通过input 和value_return 完成的。见input.。
计划将二进制文件中方法的实际签名包含在一个特殊部分中,这将解决这个问题。
【讨论】:
目前没有。
您需要知道哪些合约方法可用才能与部署在 NEAR 上的智能合约进行交互。希望在不久的将来能够添加查询可用方法的功能。
【讨论】:
我想你可以在自己的合约中包含一个方法,以某种有用的格式返回其他方法签名:json 或其他
您可能必须编写一些单元测试来使用此方法来锻炼所有其他方法,以确保它保持最新
我想这个接口(方法和单元测试)可以在短期内标准化为 NEP,直到我们的接口变得可发现。任何遵守此 NEP 的合同都必须包含此“经过测试的反射方法”或“文档方法”或其他任何名称
【讨论】: