enforce-guard 在 Zelcore 和 XWallet 中失败
enforce-guard fails in Zelcore and XWallet
每当我从 X-wallet 或 Zelcore 调用具有 (enforce-guard some-guard)
的函数时,它总是失败并显示错误 Keyset failure (keys-all)
我在 Chainweaver 中执行此操作没有任何问题
如何解决这个问题
如果您还根据请求提供功能,这就是一个问题。
要解决此问题,您还需要将 enforce-guard
放入功能中。
所以你需要做一些像
(defcap VERIFY_GUARD (some-guard:guard)
(enforce-guard some-guard)
)
无论你在哪里调用 enforce-guard
,你都需要做
(with-capability (VERIFY_GAURD some-guard)
; Guarded code here
)
为什么会这样?
Chainweaver 允许您 select 不受限制的签名密钥,它为 enforce-guard
提供了一个 key/guard 来使用。
但是 X-Wallet 和 Zelcore 不会在请求中提供此功能(否则会提供)。
无论如何,将 enforce-guard
添加到功能中并在您希望守卫通过的地方使用 require-capability
可能是更好的做法。
每当我从 X-wallet 或 Zelcore 调用具有 (enforce-guard some-guard)
的函数时,它总是失败并显示错误 Keyset failure (keys-all)
我在 Chainweaver 中执行此操作没有任何问题
如何解决这个问题
如果您还根据请求提供功能,这就是一个问题。
要解决此问题,您还需要将 enforce-guard
放入功能中。
所以你需要做一些像
(defcap VERIFY_GUARD (some-guard:guard)
(enforce-guard some-guard)
)
无论你在哪里调用 enforce-guard
,你都需要做
(with-capability (VERIFY_GAURD some-guard)
; Guarded code here
)
为什么会这样?
Chainweaver 允许您 select 不受限制的签名密钥,它为 enforce-guard
提供了一个 key/guard 来使用。
但是 X-Wallet 和 Zelcore 不会在请求中提供此功能(否则会提供)。
无论如何,将 enforce-guard
添加到功能中并在您希望守卫通过的地方使用 require-capability
可能是更好的做法。