Gnosis-Safe
如何實現 EIP-2930 訪問列表?
更新
所以是的,你必須使用https://github.com/folia-app/eip-2929實現,但是在訪問列表中放什麼?
Tx 中涉及的所有地址 + Gnosis 安全單例地址(在安全創建時已知)。
就我而言:
- 我呼叫 SC 方法的地址 (
owner
)- Gnosis 安全公共地址
- Gnosis 安全單例地址
根據
storageKeys
我確實提出0x0000000000000000000000000000000000000000000000000000000000000000
了 1. 和 2. 不太清楚為什麼。const tx = await contract.connect(signer).withdraw({ gasLimit: 50_000, type: 1, accessList: [ { address: "0x0000_OWNER_ADDRESS", storageKeys: [ "0x0000000000000000000000000000000000000000000000000000000000000000", ], }, { address: "0x0000_SAFE_ADDRESS", storageKeys: [ "0x0000000000000000000000000000000000000000000000000000000000000000", ], }, { address: "0x0000_SAFE_SINGLETON_ADDRESS", storageKeys: [], }, ], });
注意:不要忘記
type: 1
。超頻。那是有壓力的。
希望這可以幫助 !
原來的
由於柏林昇級 EIP-2929,我無法退出契約到 gnosis safe。
簡而言之,契約內部 Tx 似乎不能再花費超過 2300 的 gas。
這與 Gnosis 安全合約不兼容: https ://help.gnosis-safe.io/en/articles/5249851-why-can-ti-transfer-eth-from-a-contract-into-a-safe
但正如文章中強調的那樣,使用 EIP-2930 訪問列表似乎可以解決這個缺點。
我需要幫助來實施解決方案(ethers.js)。我不知道哪些地址要“列入白名單”,什麼是儲存密鑰?甚至使用哪個節點提供程序?Infura 或 Alchemix 是否支持 EIP-2930?等等。
任何幫助深表感謝。
您可以在此處找到帶有 gnosis safe 和 ethers.js 的範例:https ://github.com/folia-app/eip-2929/blob/master/index.js
您需要在訪問列表中包含兩項:
- 儲存槽為 0 的 Gnosis Safe 代理地址,儲存執行合約的地址
- Gnosis Safe 實現合約地址