2

有没有办法查询给定的 NEAR 合约提供了哪些方法?(例如,这样就可以自动发现某些标准接口。)或者您是否必须在与合约交互之前已经知道方法签名?

4

3 回答 3

1

还没有。目前所有的合约方法都有相同的签名。() -> ()没有参数,也没有返回任何内容。每个方法都有一个包装函数,用于反序列化来自主机的输入字节;调用方法;并序列化返回值并将字节传回主机。

这是用input和完成的value_return。见input.

有计划将二进制文件中方法的实际签名包含在一个特殊部分中,这将解决这个问题。

于 2021-01-06T21:08:47.697 回答
0

目前,没有。

您需要知道哪些合约方法可用,以便与部署在 NEAR 上的智能合约进行交互。希望在不久的将来能够添加查询可用方法的功能。

于 2021-01-06T21:05:56.967 回答
0

我想您可以在自己的合同中包含一个方法,该方法以某种有用的格式返回其他方法签名:json 或其他

您可能必须通过编写一些使用此方法来练习所有其他方法的单元测试来确保它保持最新状态

我想这个接口(方法和单元测试)可以在短期内标准化为 NEP,直到我们的接口变得可发现。任何遵守此 NEP 的合同都必须包含此“经过测试的反射方法”或“文档方法”或任何其名称

于 2021-01-07T08:23:24.413 回答