@gnosis-guild/zodiac 4.2.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/README.md +107 -4
  2. package/dist/cjs/abis/bridge/1.0.0.js +385 -0
  3. package/dist/cjs/abis/circulatingSupplyERC20/1.0.0.js +248 -0
  4. package/dist/cjs/abis/circulatingSupplyERC20/1.1.0.js +248 -0
  5. package/dist/cjs/abis/circulatingSupplyERC20/1.2.0.js +248 -0
  6. package/dist/cjs/abis/circulatingSupplyERC721/1.1.0.js +248 -0
  7. package/dist/cjs/abis/circulatingSupplyERC721/1.2.0.js +248 -0
  8. package/dist/cjs/abis/connext/1.0.0.js +496 -0
  9. package/dist/cjs/abis/delay/1.0.0.js +731 -0
  10. package/dist/cjs/abis/delay/1.0.1.js +731 -0
  11. package/dist/cjs/abis/delay/1.1.0.js +941 -0
  12. package/dist/cjs/abis/delay/1.1.1.js +941 -0
  13. package/dist/cjs/abis/erc20Votes/1.0.0.js +800 -0
  14. package/dist/cjs/abis/erc721Votes/1.0.0.js +795 -0
  15. package/dist/cjs/abis/exit/1.0.0.js +403 -0
  16. package/dist/cjs/abis/exit/1.1.0.js +422 -0
  17. package/dist/cjs/abis/exit/1.2.0.js +422 -0
  18. package/dist/cjs/abis/exitERC721/1.1.0.js +422 -0
  19. package/dist/cjs/abis/exitERC721/1.2.0.js +422 -0
  20. package/dist/cjs/abis/factory/1.0.0.js +53 -0
  21. package/dist/cjs/abis/factory/1.1.0.js +80 -0
  22. package/dist/cjs/abis/factory/1.2.0.js +91 -0
  23. package/dist/cjs/abis/index.js +101 -0
  24. package/dist/cjs/abis/metaGuard/1.0.0.js +474 -0
  25. package/dist/cjs/abis/multisendEncoder/1.0.0.js +64 -0
  26. package/dist/cjs/abis/ozGovernor/1.0.0.js +1066 -0
  27. package/dist/cjs/abis/realityERC20/2.0.0.js +874 -0
  28. package/dist/cjs/abis/realityETH/2.0.0.js +874 -0
  29. package/dist/cjs/abis/roles/1.0.0.js +993 -0
  30. package/dist/cjs/abis/roles/1.1.0.js +993 -0
  31. package/dist/cjs/abis/roles/2.1.0.js +1411 -0
  32. package/dist/cjs/abis/roles/2.1.1.js +1411 -0
  33. package/dist/cjs/abis/scopeGuard/1.0.0.js +595 -0
  34. package/dist/cjs/contracts.js +145 -0
  35. package/dist/cjs/explorer.js +264 -0
  36. package/dist/cjs/extract.js +117 -0
  37. package/dist/cjs/index.js +16 -0
  38. package/dist/cjs/mastercopies.js +34 -0
  39. package/dist/cjs/networks.js +233 -0
  40. package/dist/cjs/package.json +1 -0
  41. package/dist/cjs/rpc.js +36 -0
  42. package/dist/cjs/singleton.js +42 -0
  43. package/dist/cjs/types.js +7 -0
  44. package/dist/cjs/ui.js +64 -0
  45. package/dist/cjs/zodiacModule.js +61 -0
  46. package/dist/esm/abis/bridge/1.0.0.d.ts +297 -0
  47. package/dist/esm/abis/bridge/1.0.0.js +382 -0
  48. package/dist/esm/abis/circulatingSupplyERC20/1.0.0.d.ts +188 -0
  49. package/dist/esm/abis/circulatingSupplyERC20/1.0.0.js +245 -0
  50. package/dist/esm/abis/circulatingSupplyERC20/1.1.0.d.ts +188 -0
  51. package/dist/esm/abis/circulatingSupplyERC20/1.1.0.js +245 -0
  52. package/dist/esm/abis/circulatingSupplyERC20/1.2.0.d.ts +188 -0
  53. package/dist/esm/abis/circulatingSupplyERC20/1.2.0.js +245 -0
  54. package/dist/esm/abis/circulatingSupplyERC721/1.1.0.d.ts +188 -0
  55. package/dist/esm/abis/circulatingSupplyERC721/1.1.0.js +245 -0
  56. package/dist/esm/abis/circulatingSupplyERC721/1.2.0.d.ts +188 -0
  57. package/dist/esm/abis/circulatingSupplyERC721/1.2.0.js +245 -0
  58. package/dist/esm/abis/connext/1.0.0.d.ts +383 -0
  59. package/dist/esm/abis/connext/1.0.0.js +493 -0
  60. package/dist/esm/abis/delay/1.0.0.d.ts +562 -0
  61. package/dist/esm/abis/delay/1.0.0.js +728 -0
  62. package/dist/esm/abis/delay/1.0.1.d.ts +562 -0
  63. package/dist/esm/abis/delay/1.0.1.js +728 -0
  64. package/dist/esm/abis/delay/1.1.0.d.ts +720 -0
  65. package/dist/esm/abis/delay/1.1.0.js +938 -0
  66. package/dist/esm/abis/delay/1.1.1.d.ts +720 -0
  67. package/dist/esm/abis/delay/1.1.1.js +938 -0
  68. package/dist/esm/abis/erc20Votes/1.0.0.d.ts +613 -0
  69. package/dist/esm/abis/erc20Votes/1.0.0.js +797 -0
  70. package/dist/esm/abis/erc721Votes/1.0.0.d.ts +610 -0
  71. package/dist/esm/abis/erc721Votes/1.0.0.js +792 -0
  72. package/dist/esm/abis/exit/1.0.0.d.ts +309 -0
  73. package/dist/esm/abis/exit/1.0.0.js +400 -0
  74. package/dist/esm/abis/exit/1.1.0.d.ts +323 -0
  75. package/dist/esm/abis/exit/1.1.0.js +419 -0
  76. package/dist/esm/abis/exit/1.2.0.d.ts +323 -0
  77. package/dist/esm/abis/exit/1.2.0.js +419 -0
  78. package/dist/esm/abis/exitERC721/1.1.0.d.ts +323 -0
  79. package/dist/esm/abis/exitERC721/1.1.0.js +419 -0
  80. package/dist/esm/abis/exitERC721/1.2.0.d.ts +323 -0
  81. package/dist/esm/abis/exitERC721/1.2.0.js +419 -0
  82. package/dist/esm/abis/factory/1.0.0.d.ts +38 -0
  83. package/dist/esm/abis/factory/1.0.0.js +50 -0
  84. package/dist/esm/abis/factory/1.1.0.d.ts +58 -0
  85. package/dist/esm/abis/factory/1.1.0.js +77 -0
  86. package/dist/esm/abis/factory/1.2.0.d.ts +66 -0
  87. package/dist/esm/abis/factory/1.2.0.js +88 -0
  88. package/dist/esm/abis/index.d.ts +13970 -0
  89. package/dist/esm/abis/index.js +98 -0
  90. package/dist/esm/abis/metaGuard/1.0.0.d.ts +363 -0
  91. package/dist/esm/abis/metaGuard/1.0.0.js +471 -0
  92. package/dist/esm/abis/multisendEncoder/1.0.0.d.ts +47 -0
  93. package/dist/esm/abis/multisendEncoder/1.0.0.js +61 -0
  94. package/dist/esm/abis/ozGovernor/1.0.0.d.ts +821 -0
  95. package/dist/esm/abis/ozGovernor/1.0.0.js +1063 -0
  96. package/dist/esm/abis/realityERC20/2.0.0.d.ts +674 -0
  97. package/dist/esm/abis/realityERC20/2.0.0.js +871 -0
  98. package/dist/esm/abis/realityETH/2.0.0.d.ts +674 -0
  99. package/dist/esm/abis/realityETH/2.0.0.js +871 -0
  100. package/dist/esm/abis/roles/1.0.0.d.ts +770 -0
  101. package/dist/esm/abis/roles/1.0.0.js +990 -0
  102. package/dist/esm/abis/roles/1.1.0.d.ts +770 -0
  103. package/dist/esm/abis/roles/1.1.0.js +990 -0
  104. package/dist/esm/abis/roles/2.1.0.d.ts +1094 -0
  105. package/dist/esm/abis/roles/2.1.0.js +1408 -0
  106. package/dist/esm/abis/roles/2.1.1.d.ts +1094 -0
  107. package/dist/esm/abis/roles/2.1.1.js +1408 -0
  108. package/dist/esm/abis/scopeGuard/1.0.0.d.ts +457 -0
  109. package/dist/esm/abis/scopeGuard/1.0.0.js +592 -0
  110. package/dist/esm/contracts.d.ts +66 -0
  111. package/dist/esm/contracts.js +142 -0
  112. package/dist/esm/explorer.d.ts +81 -0
  113. package/dist/esm/explorer.js +256 -0
  114. package/dist/esm/extract.d.ts +15 -0
  115. package/dist/esm/extract.js +114 -0
  116. package/dist/esm/index.d.ts +3 -0
  117. package/dist/esm/index.js +3 -0
  118. package/dist/esm/mastercopies.d.ts +21 -0
  119. package/dist/esm/mastercopies.js +27 -0
  120. package/dist/esm/networks.d.ts +37 -0
  121. package/dist/esm/networks.js +229 -0
  122. package/dist/esm/package.json +1 -0
  123. package/dist/esm/rpc.d.ts +6 -0
  124. package/dist/esm/rpc.js +33 -0
  125. package/dist/esm/singleton.d.ts +24 -0
  126. package/dist/esm/singleton.js +38 -0
  127. package/dist/esm/types.d.ts +43 -0
  128. package/dist/esm/types.js +6 -0
  129. package/dist/esm/ui.d.ts +16 -0
  130. package/dist/esm/ui.js +53 -0
  131. package/dist/esm/zodiacModule.d.ts +4 -0
  132. package/dist/esm/zodiacModule.js +56 -0
  133. package/package.json +29 -74
  134. package/contracts/core/GuardableModifier.sol +0 -96
  135. package/contracts/core/GuardableModule.sol +0 -95
  136. package/contracts/core/Modifier.sol +0 -204
  137. package/contracts/core/Module.sol +0 -73
  138. package/contracts/factory/FactoryFriendly.sol +0 -10
  139. package/contracts/factory/ModuleProxyFactory.sol +0 -51
  140. package/contracts/guard/BaseGuard.sol +0 -36
  141. package/contracts/guard/Guardable.sol +0 -32
  142. package/contracts/interfaces/IAvatar.sol +0 -71
  143. package/contracts/interfaces/IGuard.sol +0 -22
  144. package/contracts/signature/ExecutionTracker.sol +0 -17
  145. package/contracts/signature/IERC1271.sol +0 -19
  146. package/contracts/signature/SignatureChecker.sol +0 -154
  147. package/contracts/test/TestAvatar.sol +0 -64
  148. package/contracts/test/TestGuard.sol +0 -82
  149. package/contracts/test/TestGuardableModifier.sol +0 -82
  150. package/contracts/test/TestModifier.sol +0 -88
  151. package/contracts/test/TestModule.sol +0 -66
  152. package/contracts/test/TestSignature.sol +0 -71
  153. package/dist/index.d.mts +0 -16332
  154. package/dist/index.d.ts +0 -16332
  155. package/dist/index.js +0 -24880
  156. package/dist/index.js.map +0 -1
  157. package/dist/index.mjs +0 -24845
  158. package/dist/index.mjs.map +0 -1
package/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # Zodiac: The expansion pack for DAOs
2
2
 
3
3
  [![Build Status](https://github.com/gnosisguild/zodiac/workflows/zodiac/badge.svg?branch=master)](https://github.com/gnosisguild/zodiac/actions?branch=master)
4
- [![Coverage Status](https://coveralls.io/repos/github/gnosis/zodiac/badge.svg?branch=master)](https://coveralls.io/github/gnosisguild/zodiac?branch=master)
5
4
  [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://github.com/gnosisguild/CODE_OF_CONDUCT)
6
5
 
7
6
  A composable design philosophy for DAOs, [Zodiac](https://gnosisguild.mirror.xyz/OuhG5s2X5uSVBx1EK4tKPhnUc91Wh9YM0fwSnC8UNcg) is a collection of tools built according to an open standard.
@@ -30,6 +29,10 @@ The Zodiac open standard consists of Avatars, Modules, Modifiers, and Guards arc
30
29
 
31
30
  ## Overview
32
31
 
32
+ This repository contains the Zodiac mastercopy tooling: a CLI and TypeScript SDK to extract deployed mastercopies (sources, ABI and bytecode) from block explorers into a versioned `mastercopies/` folder, plus a registry of known Zodiac contracts and their canonical addresses.
33
+
34
+ The Zodiac core contracts (`Module.sol`, `Modifier.sol`, `BaseGuard.sol`, `ModuleProxyFactory.sol`, etc.), along with their tests and audits, live in [zodiac-core](https://github.com/gnosisguild/zodiac-core). If you are building a module, modifier, or guard, use the `@gnosis-guild/zodiac-core` package.
35
+
33
36
  ### Installation
34
37
 
35
38
  ```bash
@@ -38,12 +41,12 @@ yarn add @gnosis-guild/zodiac
38
41
 
39
42
  ### Usage
40
43
 
41
- Once installed, you can use the contracts in the library by importing them to your contract:
44
+ To build your own contract based on the Zodiac core contracts, install [zodiac-core](https://github.com/gnosisguild/zodiac-core) and import from it:
42
45
 
43
46
  ```solidity
44
47
  pragma solidity ^0.8.6;
45
48
 
46
- import "@gnosis-guild/zodiac/contracts/core/Module.sol";
49
+ import "@gnosis-guild/zodiac-core/contracts/core/Module.sol";
47
50
 
48
51
  contract MyModule is Module {
49
52
  /// insert your code here
@@ -51,11 +54,111 @@ contract MyModule is Module {
51
54
 
52
55
  ```
53
56
 
57
+ ### Mastercopies
58
+
59
+ The npm package publishes a small TypeScript SDK: the known-contract registry,
60
+ canonical mastercopy addresses, the supported-network list, and per-version
61
+ ABIs. The versioned `mastercopies/` folder (the extracted source, ABI and
62
+ bytecode artifacts) is repo-maintenance data and is **not** published to npm —
63
+ neither are the maintenance `commands/`.
64
+
65
+ ```ts
66
+ import { Contract } from "ethers";
67
+ import {
68
+ getZodiacModuleAbi, // helper to get a specific ABI by name and version
69
+ getZodiacModuleAddress, // helper to get a specific mastercopy address by name and version
70
+ sanityCheckZodiacModuleAddress, // throw when an address is unknown or known faulty
71
+ KnownContracts, // enum of known Zodiac contract names
72
+ CanonicalAddresses, // canonical mastercopy addresses, by name@version
73
+ SupportedNetworks, // chain name -> chainId
74
+ } from "@gnosis-guild/zodiac";
75
+
76
+ // To interact with a specific version of a Zodiac module:
77
+ const delayModule = new Contract(
78
+ getZodiacModuleAddress(KnownContracts.DELAY, "1.1.1"),
79
+ getZodiacModuleAbi(KnownContracts.DELAY, "1.1.1"),
80
+ provider
81
+ );
82
+ ```
83
+
84
+ The package also re-exports the modern encoding and prediction helpers from
85
+ [`@gnosis-guild/zodiac-core`](https://github.com/gnosisguild/zodiac-core). These
86
+ functions are the recommended way to handle deployments in the v5 paradigm,
87
+ replacing the legacy `deployAndSetUpModule` helper:
88
+
89
+ - `encodeDeployProxy`: generate payload for the Zodiac factory.
90
+ - `predictProxyAddress`: predict the address of a proxy before deployment.
91
+ - `encodeDeploySingleton`: generate payload for singleton factories.
92
+ - `predictSingletonAddress`: predict the address of a singleton.
93
+
94
+ #### Maintenance CLI
95
+
96
+ The `mastercopies/` artifacts are produced and managed with a CLI that runs the
97
+ TypeScript source locally via `tsx` (no build needed). Every command is driven
98
+ by the known-contract registry — you pass a name/version, not an address, and
99
+ unknown names/versions error out.
100
+
101
+ ```bash
102
+ yarn extract [name] [version] [network] [--force] # explorer -> mastercopies/
103
+ yarn deploy <name> [version] # deploy missing artifacts on each network
104
+ yarn deploy:list <name> [version] # report per-network deployment status
105
+ yarn verify <name> [version] # verify deployed artifacts on each explorer
106
+ yarn verify:list <name> [version] # report per-network verification status
107
+ ```
108
+
109
+ **`extract`** captures mastercopy artifacts into `mastercopies/`:
110
+
111
+ ```bash
112
+ yarn extract [name] [version] [network] [--force]
113
+ # (no args) every known contract + version
114
+ # <name> every version of that contract
115
+ # <name> <ver> just that one
116
+ ```
117
+
118
+ Existing folders are skipped unless `--force` is passed, which removes and
119
+ regenerates them. Source is read from `[network]` or, by default, the default
120
+ explorer set. It works entirely through the explorer: it fetches the verified
121
+ source and recovers the exact init code and salt from the deployment
122
+ transaction, so a contract can later reproduce at the same address on every
123
+ chain. Linked libraries are discovered from the compiler input and extracted
124
+ recursively. One folder is written per asset (the main contract and each linked
125
+ library):
126
+
127
+ ```
128
+ mastercopies/<module>/<version>/<asset>/abi.json
129
+ mastercopies/<module>/<version>/<asset>/sourcecode.json # standard-JSON compiler input
130
+ mastercopies/<module>/<version>/<asset>/bytecode.json # address, factory, salt, creationBytecode
131
+ ```
132
+
133
+ **`deploy`** redeploys those artifacts to their canonical addresses on each
134
+ configured network (via the ERC-2470 / Nick CREATE2 singleton factories),
135
+ skipping any that already exist; **`verify`** submits the bundled source to each
136
+ configured Etherscan V2 explorer. The `list` subcommands report status without
137
+ making changes.
138
+
139
+ #### Environment
140
+
141
+ Configure these in your env — see `.env.sample`:
142
+
143
+ - `ETHERSCAN_API_KEY` — Etherscan V2 key (works across all supported chains).
144
+ Override per network with `ETHERSCAN_API_KEY_<NETWORK>`. Used by `extract` and
145
+ `verify`.
146
+ - `ALCHEMY_KEY` / `INFURA_KEY` — used to build RPC endpoints.
147
+ - `MNEMONIC` — signer used by `deploy` (local signing, the default).
148
+ - `DEPLOY_VIA_FRAME` — set to a truthy value (`1`/`true`/`yes`/`on`) to sign
149
+ `deploy` transactions through a locally running [Frame](https://frame.sh)
150
+ wallet instead of `MNEMONIC` (e.g. to use a hardware wallet). When enabled,
151
+ Frame must be running and `MNEMONIC` is ignored.
152
+
153
+ > The legacy bundled-ABI SDK (`MasterCopyInitData`, `ContractFactories`,
154
+ > `deployAndSetUpModule`, …) was removed in v5; the known-contracts and
155
+ > canonical-address registry (`KnownContracts`, `CanonicalAddresses`) is kept.
156
+
54
157
  ### Zodiac compliant tools
55
158
 
56
159
  #### Avatars
57
160
 
58
- - **[Safe](https://safe.global)**: The most trusted platform for managing digital assets on Ethereum. Zodiac embraces Safe as a powerful, extensible and programmable account standard. Safe is the reference implementation of the [IAvatar.sol](contracts/interfaces/IAvatar.sol) interface specified in this library. However, all Zodiac tools are framework agnostic, and they can be plugged into any programmable account that implements the IAvatar interface.
161
+ - **[Safe](https://safe.global)**: The most trusted platform for managing digital assets on Ethereum. Zodiac embraces Safe as a powerful, extensible and programmable account standard. Safe is the reference implementation of the [IAvatar.sol](https://github.com/gnosisguild/zodiac-core/blob/main/contracts/interfaces/IAvatar.sol) interface specified in this library. However, all Zodiac tools are framework agnostic, and they can be plugged into any programmable account that implements the IAvatar interface.
59
162
 
60
163
  #### Modules
61
164
 
@@ -0,0 +1,385 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bridge_1_0_0_ABI = void 0;
4
+ exports.bridge_1_0_0_ABI = [
5
+ {
6
+ "inputs": [
7
+ {
8
+ "internalType": "address",
9
+ "name": "_owner",
10
+ "type": "address"
11
+ },
12
+ {
13
+ "internalType": "address",
14
+ "name": "_avatar",
15
+ "type": "address"
16
+ },
17
+ {
18
+ "internalType": "address",
19
+ "name": "_target",
20
+ "type": "address"
21
+ },
22
+ {
23
+ "internalType": "contract IAMB",
24
+ "name": "_amb",
25
+ "type": "address"
26
+ },
27
+ {
28
+ "internalType": "address",
29
+ "name": "_controller",
30
+ "type": "address"
31
+ },
32
+ {
33
+ "internalType": "bytes32",
34
+ "name": "_chainId",
35
+ "type": "bytes32"
36
+ }
37
+ ],
38
+ "stateMutability": "nonpayable",
39
+ "type": "constructor"
40
+ },
41
+ {
42
+ "anonymous": false,
43
+ "inputs": [
44
+ {
45
+ "indexed": true,
46
+ "internalType": "address",
47
+ "name": "initiator",
48
+ "type": "address"
49
+ },
50
+ {
51
+ "indexed": true,
52
+ "internalType": "address",
53
+ "name": "owner",
54
+ "type": "address"
55
+ },
56
+ {
57
+ "indexed": true,
58
+ "internalType": "address",
59
+ "name": "avatar",
60
+ "type": "address"
61
+ },
62
+ {
63
+ "indexed": false,
64
+ "internalType": "address",
65
+ "name": "target",
66
+ "type": "address"
67
+ }
68
+ ],
69
+ "name": "AmbModuleSetup",
70
+ "type": "event"
71
+ },
72
+ {
73
+ "anonymous": false,
74
+ "inputs": [
75
+ {
76
+ "indexed": true,
77
+ "internalType": "address",
78
+ "name": "previousAvatar",
79
+ "type": "address"
80
+ },
81
+ {
82
+ "indexed": true,
83
+ "internalType": "address",
84
+ "name": "newAvatar",
85
+ "type": "address"
86
+ }
87
+ ],
88
+ "name": "AvatarSet",
89
+ "type": "event"
90
+ },
91
+ {
92
+ "anonymous": false,
93
+ "inputs": [
94
+ {
95
+ "indexed": false,
96
+ "internalType": "address",
97
+ "name": "guard",
98
+ "type": "address"
99
+ }
100
+ ],
101
+ "name": "ChangedGuard",
102
+ "type": "event"
103
+ },
104
+ {
105
+ "anonymous": false,
106
+ "inputs": [
107
+ {
108
+ "indexed": true,
109
+ "internalType": "address",
110
+ "name": "previousOwner",
111
+ "type": "address"
112
+ },
113
+ {
114
+ "indexed": true,
115
+ "internalType": "address",
116
+ "name": "newOwner",
117
+ "type": "address"
118
+ }
119
+ ],
120
+ "name": "OwnershipTransferred",
121
+ "type": "event"
122
+ },
123
+ {
124
+ "anonymous": false,
125
+ "inputs": [
126
+ {
127
+ "indexed": true,
128
+ "internalType": "address",
129
+ "name": "previousTarget",
130
+ "type": "address"
131
+ },
132
+ {
133
+ "indexed": true,
134
+ "internalType": "address",
135
+ "name": "newTarget",
136
+ "type": "address"
137
+ }
138
+ ],
139
+ "name": "TargetSet",
140
+ "type": "event"
141
+ },
142
+ {
143
+ "inputs": [],
144
+ "name": "amb",
145
+ "outputs": [
146
+ {
147
+ "internalType": "contract IAMB",
148
+ "name": "",
149
+ "type": "address"
150
+ }
151
+ ],
152
+ "stateMutability": "view",
153
+ "type": "function"
154
+ },
155
+ {
156
+ "inputs": [],
157
+ "name": "avatar",
158
+ "outputs": [
159
+ {
160
+ "internalType": "address",
161
+ "name": "",
162
+ "type": "address"
163
+ }
164
+ ],
165
+ "stateMutability": "view",
166
+ "type": "function"
167
+ },
168
+ {
169
+ "inputs": [],
170
+ "name": "chainId",
171
+ "outputs": [
172
+ {
173
+ "internalType": "bytes32",
174
+ "name": "",
175
+ "type": "bytes32"
176
+ }
177
+ ],
178
+ "stateMutability": "view",
179
+ "type": "function"
180
+ },
181
+ {
182
+ "inputs": [],
183
+ "name": "controller",
184
+ "outputs": [
185
+ {
186
+ "internalType": "address",
187
+ "name": "",
188
+ "type": "address"
189
+ }
190
+ ],
191
+ "stateMutability": "view",
192
+ "type": "function"
193
+ },
194
+ {
195
+ "inputs": [
196
+ {
197
+ "internalType": "address",
198
+ "name": "to",
199
+ "type": "address"
200
+ },
201
+ {
202
+ "internalType": "uint256",
203
+ "name": "value",
204
+ "type": "uint256"
205
+ },
206
+ {
207
+ "internalType": "bytes",
208
+ "name": "data",
209
+ "type": "bytes"
210
+ },
211
+ {
212
+ "internalType": "enum Enum.Operation",
213
+ "name": "operation",
214
+ "type": "uint8"
215
+ }
216
+ ],
217
+ "name": "executeTransaction",
218
+ "outputs": [],
219
+ "stateMutability": "nonpayable",
220
+ "type": "function"
221
+ },
222
+ {
223
+ "inputs": [],
224
+ "name": "getGuard",
225
+ "outputs": [
226
+ {
227
+ "internalType": "address",
228
+ "name": "_guard",
229
+ "type": "address"
230
+ }
231
+ ],
232
+ "stateMutability": "view",
233
+ "type": "function"
234
+ },
235
+ {
236
+ "inputs": [],
237
+ "name": "guard",
238
+ "outputs": [
239
+ {
240
+ "internalType": "address",
241
+ "name": "",
242
+ "type": "address"
243
+ }
244
+ ],
245
+ "stateMutability": "view",
246
+ "type": "function"
247
+ },
248
+ {
249
+ "inputs": [],
250
+ "name": "owner",
251
+ "outputs": [
252
+ {
253
+ "internalType": "address",
254
+ "name": "",
255
+ "type": "address"
256
+ }
257
+ ],
258
+ "stateMutability": "view",
259
+ "type": "function"
260
+ },
261
+ {
262
+ "inputs": [],
263
+ "name": "renounceOwnership",
264
+ "outputs": [],
265
+ "stateMutability": "nonpayable",
266
+ "type": "function"
267
+ },
268
+ {
269
+ "inputs": [
270
+ {
271
+ "internalType": "address",
272
+ "name": "_amb",
273
+ "type": "address"
274
+ }
275
+ ],
276
+ "name": "setAmb",
277
+ "outputs": [],
278
+ "stateMutability": "nonpayable",
279
+ "type": "function"
280
+ },
281
+ {
282
+ "inputs": [
283
+ {
284
+ "internalType": "address",
285
+ "name": "_avatar",
286
+ "type": "address"
287
+ }
288
+ ],
289
+ "name": "setAvatar",
290
+ "outputs": [],
291
+ "stateMutability": "nonpayable",
292
+ "type": "function"
293
+ },
294
+ {
295
+ "inputs": [
296
+ {
297
+ "internalType": "bytes32",
298
+ "name": "_chainId",
299
+ "type": "bytes32"
300
+ }
301
+ ],
302
+ "name": "setChainId",
303
+ "outputs": [],
304
+ "stateMutability": "nonpayable",
305
+ "type": "function"
306
+ },
307
+ {
308
+ "inputs": [
309
+ {
310
+ "internalType": "address",
311
+ "name": "_controller",
312
+ "type": "address"
313
+ }
314
+ ],
315
+ "name": "setController",
316
+ "outputs": [],
317
+ "stateMutability": "nonpayable",
318
+ "type": "function"
319
+ },
320
+ {
321
+ "inputs": [
322
+ {
323
+ "internalType": "address",
324
+ "name": "_guard",
325
+ "type": "address"
326
+ }
327
+ ],
328
+ "name": "setGuard",
329
+ "outputs": [],
330
+ "stateMutability": "nonpayable",
331
+ "type": "function"
332
+ },
333
+ {
334
+ "inputs": [
335
+ {
336
+ "internalType": "address",
337
+ "name": "_target",
338
+ "type": "address"
339
+ }
340
+ ],
341
+ "name": "setTarget",
342
+ "outputs": [],
343
+ "stateMutability": "nonpayable",
344
+ "type": "function"
345
+ },
346
+ {
347
+ "inputs": [
348
+ {
349
+ "internalType": "bytes",
350
+ "name": "initParams",
351
+ "type": "bytes"
352
+ }
353
+ ],
354
+ "name": "setUp",
355
+ "outputs": [],
356
+ "stateMutability": "nonpayable",
357
+ "type": "function"
358
+ },
359
+ {
360
+ "inputs": [],
361
+ "name": "target",
362
+ "outputs": [
363
+ {
364
+ "internalType": "address",
365
+ "name": "",
366
+ "type": "address"
367
+ }
368
+ ],
369
+ "stateMutability": "view",
370
+ "type": "function"
371
+ },
372
+ {
373
+ "inputs": [
374
+ {
375
+ "internalType": "address",
376
+ "name": "newOwner",
377
+ "type": "address"
378
+ }
379
+ ],
380
+ "name": "transferOwnership",
381
+ "outputs": [],
382
+ "stateMutability": "nonpayable",
383
+ "type": "function"
384
+ }
385
+ ];