在进行towallet的操作过程中, 关于授权检查这一环节,是决定交易是否能够顺利实现最终落地的关键所在, 很多开发人员都已经在这个具体的位置之上出现过失误的状况。
这里的重点就是去验证一下, 那个要进行操作的人, 到底有没有权力和资格对目标钱包做出相关的举动。系统内部会进行检查, 看看授权签名这块的东西是不是属于有效状态, 再看看它划定的范围是不是能够把现在的这个操作给全部覆盖到。
如果发现这个签名已经过期了, 或者是那个关联的地址根本就对不上号的话, 整个交易就会被非常直接地拒绝掉。
在咱们实际干活的时候, 很容易碰见两个让人头疼的大坑, 那就是授权主体混淆, 还有那个回调地址写错了。
从合约的层面去看, 没有把 owner 和 operator 这两样东西给分清楚, 然后在前端开发里, 又把 callback 指向了测试网, 这样一来, 主网的授权就肯定是没办法成功通过的, 永远也过不了关。
我的实际做法是, 在每一次正式调用的时候, 都会先跑一遍dry-run校验, 以此来把授权链路之中所涉及到的每一个节点都逐一地检查一遍, 这样做的好处在于, 能够节省掉大量的时间, 避免了因为上线以后才发现报错而需要耗费时间去处理麻烦的情况。
你的那个钱包授权检查的操作, 是靠着人的手去一步一步执行的, 还是已经接上了自动化的生产流水线来进行的呢?
