大家在使用比特派去调用智能合约的时候, 有好多人往往就在“显示”这个环节卡住了不动, 明明那个交互的逻辑代码是按照正确的方式来写好的, 但在界面的上面, 却是看不了到了那个希望的得到的那种结果。
这最主要的根本原因, 是因为ABI和函数签名二者之间, 没有形成完全一致的对应关系。
你在合约端进行部署操作的时候, 所使用的函数, 其参数类型顺序, 即使是仅仅发生了一位数的偏差, 比特派前端在进行渲染处理的时候, 就会直接把这些数据给吞掉, 从而导致那个具体的方法无法被识别显示出来, 最后的结果就是在用户看到的页面上, 什么内容都不会出现。
这情况并不是钱包本身出现了差错, 而是因为输入到系统中的数据, 本身就是不符合正确标准的要求的, 也就是喂进去的数据不对头。
还有一个大家经常掉进去的高频陷阱是关于事件监听粒度的问题。如果你的合约在一次交易执行的过程中触发了多个事件, 但是你的前端代码只订阅了其中的某一个特定的事件, 那么在交互动作执行完毕之后, 应用程序的界面状态就会像是被卡住了一样,给用户的感觉是系统没有做出任何响应表现。
如果你能把智能合约发出事件的具体先后顺序, 和前端接收和处理事件回调函数的对应关系做到严丝合缝的一一对齐, 那么在绝大多数的情况下都能解决这个问题。
在完成调试之后, 通常建议大家把ABI文件另存一份放在本地磁盘上面, 这样做的目的就是为了在下次遇到需要对照和排查故障的时候, 能够方便快捷地找到这个文件作为参考依据。