# REF AMAA review ## suggestions - `assert_owner` 和 `is_owner_or_operators` 可以加入one yocto校验 目前所有的特权方法都会手动`assert_one_yocto`,不如直接加到上面两个方法中。避免忘记。 - `upgrade`方法是不是需要one yocto? - 对外屏蔽 `ActionName` 类似于 `wrap.near|wrap` 这样的action name在我看来更像是一个代码实现上的细节,没有必要对外暴露。暴露后增加了外部用户的理解和使用成本。建议在对外接口上不要直接暴露这个 action name。 比如 `set_permission` 这个方法的参数可以改成 `(contract_id: String, method: String, limit: Limit)`,在代码里自行构建 `ActionName`。这样也可以对传进来的contractId和method进行校验,屏蔽掉不合法的配置。 - `list_permissions` 中分页参数limit的默认值 现在的做法是用permissions的key length作为limit参数的默认值,但是一旦permissions很多,这样很可能会超gas,建议使用一个固定常量作为limit的默认值(比如20),同时调用时检查传入的limit不能超过这个值(防止长度无限制的单页) ## discussion - permission的控制粒度问题 按照目前的设计,对于同一个action_name,所有的caller都共享相同的权限,无法更加细致的对不同caller指定不同的调用权限,感觉有点不太灵活。比如希望让alice和bob都允许调用 `*|foo` 方法,但是alice只能attach 1 yocto NEAR,而bob可以attach 1000 NEAR,这样似乎就没法做到。原因是因为 `*|foo` 这个域下面没有更细粒度的结构了。 目前的做法现有的需求也许是可以满足的,不过考虑到可扩展性的话还是可以考虑更细化一点。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up