olas-operate-middleware 0.14.1__py3-none-any.whl → 0.14.3__py3-none-any.whl

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.

Potentially problematic release.


This version of olas-operate-middleware might be problematic. Click here for more details.

@@ -1,811 +0,0 @@
1
- {
2
- "abi": [
3
- {
4
- "type": "constructor",
5
- "inputs": [
6
- {
7
- "name": "_multiSend",
8
- "type": "address",
9
- "internalType": "address"
10
- },
11
- {
12
- "name": "_serviceRegistry",
13
- "type": "address",
14
- "internalType": "address"
15
- }
16
- ],
17
- "stateMutability": "nonpayable"
18
- },
19
- {
20
- "type": "function",
21
- "name": "DEFAULT_DATA_LENGTH",
22
- "inputs": [],
23
- "outputs": [
24
- {
25
- "name": "",
26
- "type": "uint256",
27
- "internalType": "uint256"
28
- }
29
- ],
30
- "stateMutability": "view"
31
- },
32
- {
33
- "type": "function",
34
- "name": "RECOVER_THRESHOLD",
35
- "inputs": [],
36
- "outputs": [
37
- {
38
- "name": "",
39
- "type": "uint256",
40
- "internalType": "uint256"
41
- }
42
- ],
43
- "stateMutability": "view"
44
- },
45
- {
46
- "type": "function",
47
- "name": "create",
48
- "inputs": [
49
- {
50
- "name": "multisigOwners",
51
- "type": "address[]",
52
- "internalType": "address[]"
53
- },
54
- {
55
- "name": "threshold",
56
- "type": "uint256",
57
- "internalType": "uint256"
58
- },
59
- {
60
- "name": "data",
61
- "type": "bytes",
62
- "internalType": "bytes"
63
- }
64
- ],
65
- "outputs": [
66
- {
67
- "name": "multisig",
68
- "type": "address",
69
- "internalType": "address"
70
- }
71
- ],
72
- "stateMutability": "nonpayable"
73
- },
74
- {
75
- "type": "function",
76
- "name": "enableModule",
77
- "inputs": [],
78
- "outputs": [],
79
- "stateMutability": "nonpayable"
80
- },
81
- {
82
- "type": "function",
83
- "name": "multiSend",
84
- "inputs": [],
85
- "outputs": [
86
- {
87
- "name": "",
88
- "type": "address",
89
- "internalType": "address"
90
- }
91
- ],
92
- "stateMutability": "view"
93
- },
94
- {
95
- "type": "function",
96
- "name": "recoverAccess",
97
- "inputs": [
98
- {
99
- "name": "serviceId",
100
- "type": "uint256",
101
- "internalType": "uint256"
102
- }
103
- ],
104
- "outputs": [],
105
- "stateMutability": "nonpayable"
106
- },
107
- {
108
- "type": "function",
109
- "name": "serviceRegistry",
110
- "inputs": [],
111
- "outputs": [
112
- {
113
- "name": "",
114
- "type": "address",
115
- "internalType": "address"
116
- }
117
- ],
118
- "stateMutability": "view"
119
- },
120
- {
121
- "type": "event",
122
- "name": "AccessRecovered",
123
- "inputs": [
124
- {
125
- "name": "serviceOwner",
126
- "type": "address",
127
- "indexed": true,
128
- "internalType": "address"
129
- },
130
- {
131
- "name": "serviceId",
132
- "type": "uint256",
133
- "indexed": true,
134
- "internalType": "uint256"
135
- }
136
- ],
137
- "anonymous": false
138
- },
139
- {
140
- "type": "event",
141
- "name": "EnabledModule",
142
- "inputs": [
143
- {
144
- "name": "module",
145
- "type": "address",
146
- "indexed": true,
147
- "internalType": "address"
148
- }
149
- ],
150
- "anonymous": false
151
- },
152
- {
153
- "type": "event",
154
- "name": "ServiceRedeployed",
155
- "inputs": [
156
- {
157
- "name": "serviceOwner",
158
- "type": "address",
159
- "indexed": true,
160
- "internalType": "address"
161
- },
162
- {
163
- "name": "serviceId",
164
- "type": "uint256",
165
- "indexed": true,
166
- "internalType": "uint256"
167
- },
168
- {
169
- "name": "owners",
170
- "type": "address[]",
171
- "indexed": false,
172
- "internalType": "address[]"
173
- },
174
- {
175
- "name": "threshold",
176
- "type": "uint256",
177
- "indexed": false,
178
- "internalType": "uint256"
179
- }
180
- ],
181
- "anonymous": false
182
- },
183
- {
184
- "type": "error",
185
- "name": "DelegatecallOnly",
186
- "inputs": []
187
- },
188
- {
189
- "type": "error",
190
- "name": "DuplicateModule",
191
- "inputs": []
192
- },
193
- {
194
- "type": "error",
195
- "name": "EmptyModulesOnly",
196
- "inputs": []
197
- },
198
- {
199
- "type": "error",
200
- "name": "IncorrectDataLength",
201
- "inputs": [
202
- {
203
- "name": "expected",
204
- "type": "uint256",
205
- "internalType": "uint256"
206
- },
207
- {
208
- "name": "provided",
209
- "type": "uint256",
210
- "internalType": "uint256"
211
- }
212
- ]
213
- },
214
- {
215
- "type": "error",
216
- "name": "OwnerOnly",
217
- "inputs": [
218
- {
219
- "name": "sender",
220
- "type": "address",
221
- "internalType": "address"
222
- },
223
- {
224
- "name": "owner",
225
- "type": "address",
226
- "internalType": "address"
227
- }
228
- ]
229
- },
230
- {
231
- "type": "error",
232
- "name": "ReentrancyGuard",
233
- "inputs": []
234
- },
235
- {
236
- "type": "error",
237
- "name": "RegistryOnly",
238
- "inputs": [
239
- {
240
- "name": "sender",
241
- "type": "address",
242
- "internalType": "address"
243
- },
244
- {
245
- "name": "registry",
246
- "type": "address",
247
- "internalType": "address"
248
- }
249
- ]
250
- },
251
- {
252
- "type": "error",
253
- "name": "WrongNumOwners",
254
- "inputs": [
255
- {
256
- "name": "expected",
257
- "type": "uint256",
258
- "internalType": "uint256"
259
- },
260
- {
261
- "name": "provided",
262
- "type": "uint256",
263
- "internalType": "uint256"
264
- }
265
- ]
266
- },
267
- {
268
- "type": "error",
269
- "name": "WrongOwner",
270
- "inputs": [
271
- {
272
- "name": "provided",
273
- "type": "address",
274
- "internalType": "address"
275
- }
276
- ]
277
- },
278
- {
279
- "type": "error",
280
- "name": "WrongServiceState",
281
- "inputs": [
282
- {
283
- "name": "state",
284
- "type": "uint8",
285
- "internalType": "uint8"
286
- },
287
- {
288
- "name": "serviceId",
289
- "type": "uint256",
290
- "internalType": "uint256"
291
- }
292
- ]
293
- },
294
- {
295
- "type": "error",
296
- "name": "WrongThreshold",
297
- "inputs": [
298
- {
299
- "name": "expected",
300
- "type": "uint256",
301
- "internalType": "uint256"
302
- },
303
- {
304
- "name": "provided",
305
- "type": "uint256",
306
- "internalType": "uint256"
307
- }
308
- ]
309
- },
310
- {
311
- "type": "error",
312
- "name": "ZeroAddress",
313
- "inputs": []
314
- },
315
- {
316
- "type": "error",
317
- "name": "ZeroNonceOnly",
318
- "inputs": []
319
- }
320
- ],
321
- "bytecode": "0x60e06040526001600955348015610014575f5ffd5b506040516117ef3803806117ef833981016040819052610033916100a4565b6001600160a01b038216158061005057506001600160a01b038116155b1561006e5760405163d92e233d60e01b815260040160405180910390fd5b306080526001600160a01b0391821660a0521660c0526100d5565b80516001600160a01b038116811461009f575f5ffd5b919050565b5f5f604083850312156100b5575f5ffd5b6100be83610089565b91506100cc60208401610089565b90509250929050565b60805160a05160c0516116a561014a5f395f818160bb0152818161034f0152818161042301528181610861015281816108a30152818161093d015281816109c90152610aad01525f818160fa015281816107810152610e7901525f8181610141015281816101ff015261028101526116a55ff3fe608060405234801561000f575f5ffd5b506004361061007a575f3560e01c8063cbcf252a11610058578063cbcf252a146100b6578063e49cda08146100f5578063f02fb7741461011c578063f398dba814610124575f5ffd5b8063242929621461007e57806363745087146100885780639d619683146100a3575b5f5ffd5b610086610137565b005b610090600181565b6040519081526020015b60405180910390f35b6100866100b13660046110e7565b61030e565b6100dd7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161009a565b6100dd7f000000000000000000000000000000000000000000000000000000000000000081565b610090602081565b6100dd6101323660046111e9565b61082c565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036101805760405163f56b123b60e01b815260040160405180910390fd5b600554156101a157604051637ee422c560e01b815260040160405180910390fd5b60015f81905260208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f546001600160a01b0316146101f557604051630187398b60e11b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081165f90815260016020526040902054161561024d57604051633b3a461d60e21b815260040160405180910390fd5b600160208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f80546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081165f81815260408082208054949095167fffffffffffffffffffffffff000000000000000000000000000000000000000094851617909455948552835490911681179092555190917fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844091a2565b60016009541115610332576040516345f5ce8b60e11b815260040160405180910390fd5b60026009556040516331a9108f60e11b8152600481018290525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa15801561039c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c091906112bb565b9050336001600160a01b038216146104015760405163521eb56d60e11b81523360048201526001600160a01b03821660248201526044015b60405180910390fd5b604051630846d5ff60e31b8152600481018390525f9081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634236aff89060240160e060405180830381865afa158015610468573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048c91906112f5565b965050505050925050600160058111156104a8576104a861138c565b8160058111156104ba576104ba61138c565b146104f7578060058111156104d1576104d161138c565b60405163549292e760e01b815260ff9091166004820152602481018590526044016103f8565b6001600160a01b03821661051e5760405163d92e233d60e01b815260040160405180910390fd5b5f826001600160a01b031663a0e67e2b6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561055a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610581919081019061140e565b80519091506060805f5b610596600185611448565b81101561065f5760018582815181106105b1576105b161146d565b60209081029190910101516040516001600160a01b039283166024820152911660448201526001606482015260840160408051601f19818403018152918152602080830180516001600160e01b031663f8dc5dd960e01b179052825191519295508492610627925f928c928492918a9101611498565b60408051601f198184030181529082905261064592916020016114f7565b60408051601f19818403018152919052915060010161058b565b5060018461066d8286611448565b8151811061067d5761067d61146d565b60209081029190910101516040516001600160a01b0392831660248201529116604482015233606482015260840160408051601f19818403018152918152602080830180516001600160e01b031663e318b52b60e01b1790528251915192945083926106f2925f928b92849291899101611498565b60408051601f198184030181529082905261071092916020016114f7565b6040516020818303038152906040529050806040516024016107329190611539565b60408051601f198184030181529181526020820180516001600160e01b03166346c07f8560e11b1790525163468721a760e01b81529092506001600160a01b0387169063468721a7906107b0907f0000000000000000000000000000000000000000000000000000000000000000905f90879060019060040161154b565b6020604051808303815f875af11580156107cc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f0919061159f565b50604051889033907fb5107ff9d13ac6cf43e8c27ad100b95516dc653454fe527b8a3dc5e202aa590d905f90a350506001600955505050505050565b5f60016009541115610851576040516345f5ce8b60e11b815260040160405180910390fd5b6002600955336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108d057604051631db36e8b60e31b81523360048201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660248201526044016103f8565b8151602081146108fd57604051631a64813d60e11b815260206004820152602481018290526044016103f8565b5f855190506060805f8680602001905181019061091a91906115be565b6040516331a9108f60e11b8152600481018290529091505f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610982573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a691906112bb565b604051630846d5ff60e31b8152600481018490529091505f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634236aff89060240160e060405180830381865afa158015610a0e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a3291906112f5565b50939c505063ffffffff169350506001600160a01b038a169150610a6b90505760405163d92e233d60e01b815260040160405180910390fd5b898114610a9557604051635372461560e01b815260048101829052602481018b90526044016103f8565b604051634d486f8560e01b8152600481018490525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690634d486f85906024015f60405180830381865afa158015610af9573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b2091908101906115d5565b91505080518714610b5157805160405163f720290d60e01b81526004810191909152602481018890526044016103f8565b5f5b87811015610bf157818181518110610b6d57610b6d61146d565b60200260200101516001600160a01b03168d8281518110610b9057610b9061146d565b60200260200101516001600160a01b031614610be9578c8181518110610bb857610bb861146d565b60200260200101516040516374dba67360e01b81526004016103f891906001600160a01b0391909116815260200190565b600101610b53565b505f896001600160a01b031663a0e67e2b6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610c2e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610c55919081019061140e565b905080516001148015610c925750836001600160a01b0316815f81518110610c7f57610c7f61146d565b60200260200101516001600160a01b0316145b15610eea575f5b88811015610d60578d8181518110610cb357610cb361146d565b60209081029190910101516040516001600160a01b03909116602482015260016044820152606401604051602081830303815290604052630d582f1360e01b6020820180516001600160e01b0383818316178352505050509750865f8c5f8b518c604051602001610d28959493929190611498565b60408051601f1981840301815290829052610d4692916020016114f7565b60408051601f198184030181529190529650600101610c99565b508c5f81518110610d7357610d7361146d565b60209081029190910101516040516001600160a01b0391821660248201529085166044820152606481018d905260840160408051601f19818403018152918152602080830180516001600160e01b031663f8dc5dd960e01b179052825191519299508892610dea925f928f928492918e9101611498565b60408051601f1981840301815290829052610e0892916020016114f7565b604051602081830303815290604052955085604051602401610e2a9190611539565b60408051601f198184030181529181526020820180516001600160e01b03166346c07f8560e11b1790525163468721a760e01b81529097506001600160a01b038b169063468721a790610ea8907f0000000000000000000000000000000000000000000000000000000000000000905f908c9060019060040161154b565b6020604051808303815f875af1158015610ec4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ee8919061159f565b505b896001600160a01b031663a0e67e2b6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610f25573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f4c919081019061140e565b9050896001600160a01b031663e75235b86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fae91906115be565b9250828c14610fda57604051635372461560e01b815260048101849052602481018d90526044016103f8565b8051881461100857805160405163f720290d60e01b81526004810191909152602481018990526044016103f8565b5f5b8881101561108c5781600161101f838c611448565b6110299190611448565b815181106110395761103961146d565b60200260200101516001600160a01b03168e828151811061105c5761105c61146d565b60200260200101516001600160a01b031614611084578d8181518110610bb857610bb861146d565b60010161100a565b5084846001600160a01b03167f5795fc55b414d902f8e0e955ef070f406b0d406db8ec24fe9bb833c7a478b64a8f8f6040516110c992919061161a565b60405180910390a35050600160095550959998505050505050505050565b5f602082840312156110f7575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561113b5761113b6110fe565b604052919050565b5f67ffffffffffffffff82111561115c5761115c6110fe565b5060051b60200190565b6001600160a01b038116811461117a575f5ffd5b50565b5f82601f83011261118c575f5ffd5b813567ffffffffffffffff8111156111a6576111a66110fe565b6111b9601f8201601f1916602001611112565b8181528460208386010111156111cd575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f606084860312156111fb575f5ffd5b833567ffffffffffffffff811115611211575f5ffd5b8401601f81018613611221575f5ffd5b803561123461122f82611143565b611112565b8082825260208201915060208360051b850101925088831115611255575f5ffd5b6020840193505b8284101561128057833561126f81611166565b82526020938401939091019061125c565b955050505060208401359150604084013567ffffffffffffffff8111156112a5575f5ffd5b6112b18682870161117d565b9150509250925092565b5f602082840312156112cb575f5ffd5b81516112d681611166565b9392505050565b805163ffffffff811681146112f0575f5ffd5b919050565b5f5f5f5f5f5f5f60e0888a03121561130b575f5ffd5b87516bffffffffffffffffffffffff81168114611326575f5ffd5b602089015190975061133781611166565b6040890151909650945061134d606089016112dd565b935061135b608089016112dd565b925061136960a089016112dd565b915060c08801516006811061137c575f5ffd5b8091505092959891949750929550565b634e487b7160e01b5f52602160045260245ffd5b5f82601f8301126113af575f5ffd5b81516113bd61122f82611143565b8082825260208201915060208360051b8601019250858311156113de575f5ffd5b602085015b838110156114045780516113f681611166565b8352602092830192016113e3565b5095945050505050565b5f6020828403121561141e575f5ffd5b815167ffffffffffffffff811115611434575f5ffd5b611440848285016113a0565b949350505050565b8181038181111561146757634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52603260045260245ffd5b5f81518060208401855e5f93019283525090919050565b5f600287106114b557634e487b7160e01b5f52602160045260245ffd5b8660f81b82526bffffffffffffffffffffffff198660601b1660018301528460158301528360358301526114ec6055830184611481565b979650505050505050565b5f6114406115058386611481565b84611481565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6112d6602083018461150b565b6001600160a01b0385168152836020820152608060408201525f611572608083018561150b565b90506002831061159057634e487b7160e01b5f52602160045260245ffd5b82606083015295945050505050565b5f602082840312156115af575f5ffd5b815180151581146112d6575f5ffd5b5f602082840312156115ce575f5ffd5b5051919050565b5f5f604083850312156115e6575f5ffd5b8251602084015190925067ffffffffffffffff811115611604575f5ffd5b611610858286016113a0565b9150509250929050565b604080825283519082018190525f9060208501906060840190835b8181101561165c5783516001600160a01b0316835260209384019390920191600101611635565b505060209390930193909352509291505056fea26469706673582212208d9f5b58c915ac9e6cffc7f49ab633eb5742c62ea252885584e6abdee0068a1864736f6c634300081e0033",
322
- "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061007a575f3560e01c8063cbcf252a11610058578063cbcf252a146100b6578063e49cda08146100f5578063f02fb7741461011c578063f398dba814610124575f5ffd5b8063242929621461007e57806363745087146100885780639d619683146100a3575b5f5ffd5b610086610137565b005b610090600181565b6040519081526020015b60405180910390f35b6100866100b13660046110e7565b61030e565b6100dd7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161009a565b6100dd7f000000000000000000000000000000000000000000000000000000000000000081565b610090602081565b6100dd6101323660046111e9565b61082c565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036101805760405163f56b123b60e01b815260040160405180910390fd5b600554156101a157604051637ee422c560e01b815260040160405180910390fd5b60015f81905260208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f546001600160a01b0316146101f557604051630187398b60e11b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081165f90815260016020526040902054161561024d57604051633b3a461d60e21b815260040160405180910390fd5b600160208190527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f80546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081165f81815260408082208054949095167fffffffffffffffffffffffff000000000000000000000000000000000000000094851617909455948552835490911681179092555190917fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844091a2565b60016009541115610332576040516345f5ce8b60e11b815260040160405180910390fd5b60026009556040516331a9108f60e11b8152600481018290525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636352211e90602401602060405180830381865afa15801561039c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c091906112bb565b9050336001600160a01b038216146104015760405163521eb56d60e11b81523360048201526001600160a01b03821660248201526044015b60405180910390fd5b604051630846d5ff60e31b8152600481018390525f9081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634236aff89060240160e060405180830381865afa158015610468573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048c91906112f5565b965050505050925050600160058111156104a8576104a861138c565b8160058111156104ba576104ba61138c565b146104f7578060058111156104d1576104d161138c565b60405163549292e760e01b815260ff9091166004820152602481018590526044016103f8565b6001600160a01b03821661051e5760405163d92e233d60e01b815260040160405180910390fd5b5f826001600160a01b031663a0e67e2b6040518163ffffffff1660e01b81526004015f60405180830381865afa15801561055a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610581919081019061140e565b80519091506060805f5b610596600185611448565b81101561065f5760018582815181106105b1576105b161146d565b60209081029190910101516040516001600160a01b039283166024820152911660448201526001606482015260840160408051601f19818403018152918152602080830180516001600160e01b031663f8dc5dd960e01b179052825191519295508492610627925f928c928492918a9101611498565b60408051601f198184030181529082905261064592916020016114f7565b60408051601f19818403018152919052915060010161058b565b5060018461066d8286611448565b8151811061067d5761067d61146d565b60209081029190910101516040516001600160a01b0392831660248201529116604482015233606482015260840160408051601f19818403018152918152602080830180516001600160e01b031663e318b52b60e01b1790528251915192945083926106f2925f928b92849291899101611498565b60408051601f198184030181529082905261071092916020016114f7565b6040516020818303038152906040529050806040516024016107329190611539565b60408051601f198184030181529181526020820180516001600160e01b03166346c07f8560e11b1790525163468721a760e01b81529092506001600160a01b0387169063468721a7906107b0907f0000000000000000000000000000000000000000000000000000000000000000905f90879060019060040161154b565b6020604051808303815f875af11580156107cc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107f0919061159f565b50604051889033907fb5107ff9d13ac6cf43e8c27ad100b95516dc653454fe527b8a3dc5e202aa590d905f90a350506001600955505050505050565b5f60016009541115610851576040516345f5ce8b60e11b815260040160405180910390fd5b6002600955336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108d057604051631db36e8b60e31b81523360048201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660248201526044016103f8565b8151602081146108fd57604051631a64813d60e11b815260206004820152602481018290526044016103f8565b5f855190506060805f8680602001905181019061091a91906115be565b6040516331a9108f60e11b8152600481018290529091505f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636352211e90602401602060405180830381865afa158015610982573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a691906112bb565b604051630846d5ff60e31b8152600481018490529091505f906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634236aff89060240160e060405180830381865afa158015610a0e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a3291906112f5565b50939c505063ffffffff169350506001600160a01b038a169150610a6b90505760405163d92e233d60e01b815260040160405180910390fd5b898114610a9557604051635372461560e01b815260048101829052602481018b90526044016103f8565b604051634d486f8560e01b8152600481018490525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690634d486f85906024015f60405180830381865afa158015610af9573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610b2091908101906115d5565b91505080518714610b5157805160405163f720290d60e01b81526004810191909152602481018890526044016103f8565b5f5b87811015610bf157818181518110610b6d57610b6d61146d565b60200260200101516001600160a01b03168d8281518110610b9057610b9061146d565b60200260200101516001600160a01b031614610be9578c8181518110610bb857610bb861146d565b60200260200101516040516374dba67360e01b81526004016103f891906001600160a01b0391909116815260200190565b600101610b53565b505f896001600160a01b031663a0e67e2b6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610c2e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610c55919081019061140e565b905080516001148015610c925750836001600160a01b0316815f81518110610c7f57610c7f61146d565b60200260200101516001600160a01b0316145b15610eea575f5b88811015610d60578d8181518110610cb357610cb361146d565b60209081029190910101516040516001600160a01b03909116602482015260016044820152606401604051602081830303815290604052630d582f1360e01b6020820180516001600160e01b0383818316178352505050509750865f8c5f8b518c604051602001610d28959493929190611498565b60408051601f1981840301815290829052610d4692916020016114f7565b60408051601f198184030181529190529650600101610c99565b508c5f81518110610d7357610d7361146d565b60209081029190910101516040516001600160a01b0391821660248201529085166044820152606481018d905260840160408051601f19818403018152918152602080830180516001600160e01b031663f8dc5dd960e01b179052825191519299508892610dea925f928f928492918e9101611498565b60408051601f1981840301815290829052610e0892916020016114f7565b604051602081830303815290604052955085604051602401610e2a9190611539565b60408051601f198184030181529181526020820180516001600160e01b03166346c07f8560e11b1790525163468721a760e01b81529097506001600160a01b038b169063468721a790610ea8907f0000000000000000000000000000000000000000000000000000000000000000905f908c9060019060040161154b565b6020604051808303815f875af1158015610ec4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ee8919061159f565b505b896001600160a01b031663a0e67e2b6040518163ffffffff1660e01b81526004015f60405180830381865afa158015610f25573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f4c919081019061140e565b9050896001600160a01b031663e75235b86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f8a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fae91906115be565b9250828c14610fda57604051635372461560e01b815260048101849052602481018d90526044016103f8565b8051881461100857805160405163f720290d60e01b81526004810191909152602481018990526044016103f8565b5f5b8881101561108c5781600161101f838c611448565b6110299190611448565b815181106110395761103961146d565b60200260200101516001600160a01b03168e828151811061105c5761105c61146d565b60200260200101516001600160a01b031614611084578d8181518110610bb857610bb861146d565b60010161100a565b5084846001600160a01b03167f5795fc55b414d902f8e0e955ef070f406b0d406db8ec24fe9bb833c7a478b64a8f8f6040516110c992919061161a565b60405180910390a35050600160095550959998505050505050505050565b5f602082840312156110f7575f5ffd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561113b5761113b6110fe565b604052919050565b5f67ffffffffffffffff82111561115c5761115c6110fe565b5060051b60200190565b6001600160a01b038116811461117a575f5ffd5b50565b5f82601f83011261118c575f5ffd5b813567ffffffffffffffff8111156111a6576111a66110fe565b6111b9601f8201601f1916602001611112565b8181528460208386010111156111cd575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f606084860312156111fb575f5ffd5b833567ffffffffffffffff811115611211575f5ffd5b8401601f81018613611221575f5ffd5b803561123461122f82611143565b611112565b8082825260208201915060208360051b850101925088831115611255575f5ffd5b6020840193505b8284101561128057833561126f81611166565b82526020938401939091019061125c565b955050505060208401359150604084013567ffffffffffffffff8111156112a5575f5ffd5b6112b18682870161117d565b9150509250925092565b5f602082840312156112cb575f5ffd5b81516112d681611166565b9392505050565b805163ffffffff811681146112f0575f5ffd5b919050565b5f5f5f5f5f5f5f60e0888a03121561130b575f5ffd5b87516bffffffffffffffffffffffff81168114611326575f5ffd5b602089015190975061133781611166565b6040890151909650945061134d606089016112dd565b935061135b608089016112dd565b925061136960a089016112dd565b915060c08801516006811061137c575f5ffd5b8091505092959891949750929550565b634e487b7160e01b5f52602160045260245ffd5b5f82601f8301126113af575f5ffd5b81516113bd61122f82611143565b8082825260208201915060208360051b8601019250858311156113de575f5ffd5b602085015b838110156114045780516113f681611166565b8352602092830192016113e3565b5095945050505050565b5f6020828403121561141e575f5ffd5b815167ffffffffffffffff811115611434575f5ffd5b611440848285016113a0565b949350505050565b8181038181111561146757634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52603260045260245ffd5b5f81518060208401855e5f93019283525090919050565b5f600287106114b557634e487b7160e01b5f52602160045260245ffd5b8660f81b82526bffffffffffffffffffffffff198660601b1660018301528460158301528360358301526114ec6055830184611481565b979650505050505050565b5f6114406115058386611481565b84611481565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6112d6602083018461150b565b6001600160a01b0385168152836020820152608060408201525f611572608083018561150b565b90506002831061159057634e487b7160e01b5f52602160045260245ffd5b82606083015295945050505050565b5f602082840312156115af575f5ffd5b815180151581146112d6575f5ffd5b5f602082840312156115ce575f5ffd5b5051919050565b5f5f604083850312156115e6575f5ffd5b8251602084015190925067ffffffffffffffff811115611604575f5ffd5b611610858286016113a0565b9150509250929050565b604080825283519082018190525f9060208501906060840190835b8181101561165c5783516001600160a01b0316835260209384019390920191600101611635565b505060209390930193909352509291505056fea26469706673582212208d9f5b58c915ac9e6cffc7f49ab633eb5742c62ea252885584e6abdee0068a1864736f6c634300081e0033",
323
- "linkReferences": {},
324
- "immutableReferences": {
325
- "10591": [
326
- {
327
- "start": 321,
328
- "length": 32
329
- },
330
- {
331
- "start": 511,
332
- "length": 32
333
- },
334
- {
335
- "start": 641,
336
- "length": 32
337
- }
338
- ],
339
- "10593": [
340
- {
341
- "start": 250,
342
- "length": 32
343
- },
344
- {
345
- "start": 1921,
346
- "length": 32
347
- },
348
- {
349
- "start": 3705,
350
- "length": 32
351
- }
352
- ],
353
- "10595": [
354
- {
355
- "start": 187,
356
- "length": 32
357
- },
358
- {
359
- "start": 847,
360
- "length": 32
361
- },
362
- {
363
- "start": 1059,
364
- "length": 32
365
- },
366
- {
367
- "start": 2145,
368
- "length": 32
369
- },
370
- {
371
- "start": 2211,
372
- "length": 32
373
- },
374
- {
375
- "start": 2365,
376
- "length": 32
377
- },
378
- {
379
- "start": 2505,
380
- "length": 32
381
- },
382
- {
383
- "start": 2733,
384
- "length": 32
385
- }
386
- ]
387
- },
388
- "methodIdentifiers": {
389
- "DEFAULT_DATA_LENGTH()": "f02fb774",
390
- "RECOVER_THRESHOLD()": "63745087",
391
- "create(address[],uint256,bytes)": "f398dba8",
392
- "enableModule()": "24292962",
393
- "multiSend()": "e49cda08",
394
- "recoverAccess(uint256)": "9d619683",
395
- "serviceRegistry()": "cbcf252a"
396
- },
397
- "rawMetadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_multiSend\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_serviceRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"DelegatecallOnly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DuplicateModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyModulesOnly\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"provided\",\"type\":\"uint256\"}],\"name\":\"IncorrectDataLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnerOnly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuard\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"RegistryOnly\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"provided\",\"type\":\"uint256\"}],\"name\":\"WrongNumOwners\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provided\",\"type\":\"address\"}],\"name\":\"WrongOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"serviceId\",\"type\":\"uint256\"}],\"name\":\"WrongServiceState\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"provided\",\"type\":\"uint256\"}],\"name\":\"WrongThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroNonceOnly\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"serviceId\",\"type\":\"uint256\"}],\"name\":\"AccessRecovered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"module\",\"type\":\"address\"}],\"name\":\"EnabledModule\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"serviceOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"serviceId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"owners\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"name\":\"ServiceRedeployed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_DATA_LENGTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECOVER_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"multisigOwners\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"multisig\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"multiSend\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"serviceId\",\"type\":\"uint256\"}],\"name\":\"recoverAccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"serviceRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Aleksandr Kuperman - <aleksandr.kuperman@valory.xyz>Andrey Lebedev - <andrey.lebedev@valory.xyz>Mariapia Moscatiello - <mariapia.moscatiello@valory.xyz>\",\"errors\":{\"DelegatecallOnly()\":[{\"details\":\"Must be `DELEGATECALL` only.\"}],\"DuplicateModule()\":[{\"details\":\"Modules must not be duplicated.\"}],\"EmptyModulesOnly()\":[{\"details\":\"Modules must not be initialized.\"}],\"IncorrectDataLength(uint256,uint256)\":[{\"details\":\"Provided incorrect data length.\",\"params\":{\"expected\":\"Expected minimum data length.\",\"provided\":\"Provided data length.\"}}],\"OwnerOnly(address,address)\":[{\"details\":\"Only `owner` has a privilege, but the `sender` was provided.\",\"params\":{\"owner\":\"Required sender address as an owner.\",\"sender\":\"Sender address.\"}}],\"ReentrancyGuard()\":[{\"details\":\"Caught reentrancy violation.\"}],\"RegistryOnly(address,address)\":[{\"details\":\"Only `registry` has a privilege, but the `sender` was provided.\",\"params\":{\"registry\":\"Required sender address as a registry.\",\"sender\":\"Sender address.\"}}],\"WrongNumOwners(uint256,uint256)\":[{\"details\":\"Provided incorrect number of owners.\",\"params\":{\"expected\":\"Expected number of owners.\",\"provided\":\"Provided number of owners.\"}}],\"WrongOwner(address)\":[{\"details\":\"Provided incorrect multisig owner.\",\"params\":{\"provided\":\"Provided owner address.\"}}],\"WrongServiceState(uint8,uint256)\":[{\"details\":\"Wrong state of a service.\",\"params\":{\"serviceId\":\"Service Id.\",\"state\":\"Service state.\"}}],\"WrongThreshold(uint256,uint256)\":[{\"details\":\"Provided incorrect multisig threshold.\",\"params\":{\"expected\":\"Expected threshold.\",\"provided\":\"Provided threshold.\"}}],\"ZeroAddress()\":[{\"details\":\"Provided zero address.\"}],\"ZeroNonceOnly()\":[{\"details\":\"Nonce must be zero.\"}]},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"RecoveryModule constructor.\",\"params\":{\"_multiSend\":\"Multisend contract address.\",\"_serviceRegistry\":\"Service Registry contract address.\"}},\"create(address[],uint256,bytes)\":{\"details\":\"Updates and/or verifies the existent gnosis safe multisig for changed owners and threshold.\",\"params\":{\"data\":\"Packed data containing multisig service Id.\",\"multisigOwners\":\"Set of updated multisig owners to verify against.\",\"threshold\":\"Updated number for multisig transaction confirmations.\"},\"returns\":{\"multisig\":\"Multisig address.\"}},\"enableModule()\":{\"details\":\"Enables self address as a multisig module.\"},\"recoverAccess(uint256)\":{\"details\":\"Recovers service multisig access for a specified service Id.\",\"params\":{\"serviceId\":\"Service Id.\"}}},\"title\":\"RecoveryModule - Smart contract for Safe recovery module for scenarios when the access is lost\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"create(address[],uint256,bytes)\":{\"notice\":\"This function operates with existent multisig proxy that is requested to be updated in terms of the set of owners' addresses and the threshold. There are two scenarios possible: 1. The multisig proxy is already updated before reaching this function. Then the multisig address must be passed as a payload such that its owners and threshold are verified against those specified in the argument list. 2. The multisig proxy is not yet updated. Then the service Id must be passed in a packed bytes of data in order to update multisig owners to match service agent instances. The updated multisig proxy is then going to be verified with the provided set of owners' addresses and the threshold. Note that owners' addresses in the multisig are stored in reverse order compared to how they were added: https://etherscan.io/address/0xd9db270c1b5e3bd161e8c8503c55ceabee709552#code#F6#L56\"},\"enableModule()\":{\"notice\":\"This function must only be called via `DELEGATECALL` when a Safe contract is created. For enabling module after multisig is created use direct native Safe enableModule() function call.\"},\"recoverAccess(uint256)\":{\"notice\":\"Only service owner is entitled to recover and become the ultimate multisig owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/multisigs/RecoveryModule.sol\":\"RecoveryModule\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":750},\"remappings\":[\":@gnosis.pm/=node_modules/@gnosis.pm/\",\":ds-test/=lib/solmate/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"contracts/multisigs/RecoveryModule.sol\":{\"keccak256\":\"0x588aa4a836dc6168a1a7b84f790275920d326c54627e9a5754a14018845c40e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e3d3f0fb791b08c830d87c5b4c75c00fc72389b788c1bf7362973fd313fd476\",\"dweb:/ipfs/Qmee3fmPpuBE4e45fNV8w6UrSJZZUccDurynv6cecoSwBf\"]},\"node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol\":{\"keccak256\":\"0xecfd0d8a43d859ef1fb8161cb21ce5d38461603383378a5b1c4c7d5d4a3bfbf3\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://4248ba92a7d4b9c24344944427b7a2f092f2328d57d39317f4a9f178f503beb5\",\"dweb:/ipfs/QmUFuLoQRjZdx7fsDEprFstuDjLQ7em3syagHA8b8AD2Sa\"]}},\"version\":1}",
398
- "metadata": {
399
- "compiler": {
400
- "version": "0.8.30+commit.73712a01"
401
- },
402
- "language": "Solidity",
403
- "output": {
404
- "abi": [
405
- {
406
- "inputs": [
407
- {
408
- "internalType": "address",
409
- "name": "_multiSend",
410
- "type": "address"
411
- },
412
- {
413
- "internalType": "address",
414
- "name": "_serviceRegistry",
415
- "type": "address"
416
- }
417
- ],
418
- "stateMutability": "nonpayable",
419
- "type": "constructor"
420
- },
421
- {
422
- "inputs": [],
423
- "type": "error",
424
- "name": "DelegatecallOnly"
425
- },
426
- {
427
- "inputs": [],
428
- "type": "error",
429
- "name": "DuplicateModule"
430
- },
431
- {
432
- "inputs": [],
433
- "type": "error",
434
- "name": "EmptyModulesOnly"
435
- },
436
- {
437
- "inputs": [
438
- {
439
- "internalType": "uint256",
440
- "name": "expected",
441
- "type": "uint256"
442
- },
443
- {
444
- "internalType": "uint256",
445
- "name": "provided",
446
- "type": "uint256"
447
- }
448
- ],
449
- "type": "error",
450
- "name": "IncorrectDataLength"
451
- },
452
- {
453
- "inputs": [
454
- {
455
- "internalType": "address",
456
- "name": "sender",
457
- "type": "address"
458
- },
459
- {
460
- "internalType": "address",
461
- "name": "owner",
462
- "type": "address"
463
- }
464
- ],
465
- "type": "error",
466
- "name": "OwnerOnly"
467
- },
468
- {
469
- "inputs": [],
470
- "type": "error",
471
- "name": "ReentrancyGuard"
472
- },
473
- {
474
- "inputs": [
475
- {
476
- "internalType": "address",
477
- "name": "sender",
478
- "type": "address"
479
- },
480
- {
481
- "internalType": "address",
482
- "name": "registry",
483
- "type": "address"
484
- }
485
- ],
486
- "type": "error",
487
- "name": "RegistryOnly"
488
- },
489
- {
490
- "inputs": [
491
- {
492
- "internalType": "uint256",
493
- "name": "expected",
494
- "type": "uint256"
495
- },
496
- {
497
- "internalType": "uint256",
498
- "name": "provided",
499
- "type": "uint256"
500
- }
501
- ],
502
- "type": "error",
503
- "name": "WrongNumOwners"
504
- },
505
- {
506
- "inputs": [
507
- {
508
- "internalType": "address",
509
- "name": "provided",
510
- "type": "address"
511
- }
512
- ],
513
- "type": "error",
514
- "name": "WrongOwner"
515
- },
516
- {
517
- "inputs": [
518
- {
519
- "internalType": "uint8",
520
- "name": "state",
521
- "type": "uint8"
522
- },
523
- {
524
- "internalType": "uint256",
525
- "name": "serviceId",
526
- "type": "uint256"
527
- }
528
- ],
529
- "type": "error",
530
- "name": "WrongServiceState"
531
- },
532
- {
533
- "inputs": [
534
- {
535
- "internalType": "uint256",
536
- "name": "expected",
537
- "type": "uint256"
538
- },
539
- {
540
- "internalType": "uint256",
541
- "name": "provided",
542
- "type": "uint256"
543
- }
544
- ],
545
- "type": "error",
546
- "name": "WrongThreshold"
547
- },
548
- {
549
- "inputs": [],
550
- "type": "error",
551
- "name": "ZeroAddress"
552
- },
553
- {
554
- "inputs": [],
555
- "type": "error",
556
- "name": "ZeroNonceOnly"
557
- },
558
- {
559
- "inputs": [
560
- {
561
- "internalType": "address",
562
- "name": "serviceOwner",
563
- "type": "address",
564
- "indexed": true
565
- },
566
- {
567
- "internalType": "uint256",
568
- "name": "serviceId",
569
- "type": "uint256",
570
- "indexed": true
571
- }
572
- ],
573
- "type": "event",
574
- "name": "AccessRecovered",
575
- "anonymous": false
576
- },
577
- {
578
- "inputs": [
579
- {
580
- "internalType": "address",
581
- "name": "module",
582
- "type": "address",
583
- "indexed": true
584
- }
585
- ],
586
- "type": "event",
587
- "name": "EnabledModule",
588
- "anonymous": false
589
- },
590
- {
591
- "inputs": [
592
- {
593
- "internalType": "address",
594
- "name": "serviceOwner",
595
- "type": "address",
596
- "indexed": true
597
- },
598
- {
599
- "internalType": "uint256",
600
- "name": "serviceId",
601
- "type": "uint256",
602
- "indexed": true
603
- },
604
- {
605
- "internalType": "address[]",
606
- "name": "owners",
607
- "type": "address[]",
608
- "indexed": false
609
- },
610
- {
611
- "internalType": "uint256",
612
- "name": "threshold",
613
- "type": "uint256",
614
- "indexed": false
615
- }
616
- ],
617
- "type": "event",
618
- "name": "ServiceRedeployed",
619
- "anonymous": false
620
- },
621
- {
622
- "inputs": [],
623
- "stateMutability": "view",
624
- "type": "function",
625
- "name": "DEFAULT_DATA_LENGTH",
626
- "outputs": [
627
- {
628
- "internalType": "uint256",
629
- "name": "",
630
- "type": "uint256"
631
- }
632
- ]
633
- },
634
- {
635
- "inputs": [],
636
- "stateMutability": "view",
637
- "type": "function",
638
- "name": "RECOVER_THRESHOLD",
639
- "outputs": [
640
- {
641
- "internalType": "uint256",
642
- "name": "",
643
- "type": "uint256"
644
- }
645
- ]
646
- },
647
- {
648
- "inputs": [
649
- {
650
- "internalType": "address[]",
651
- "name": "multisigOwners",
652
- "type": "address[]"
653
- },
654
- {
655
- "internalType": "uint256",
656
- "name": "threshold",
657
- "type": "uint256"
658
- },
659
- {
660
- "internalType": "bytes",
661
- "name": "data",
662
- "type": "bytes"
663
- }
664
- ],
665
- "stateMutability": "nonpayable",
666
- "type": "function",
667
- "name": "create",
668
- "outputs": [
669
- {
670
- "internalType": "address",
671
- "name": "multisig",
672
- "type": "address"
673
- }
674
- ]
675
- },
676
- {
677
- "inputs": [],
678
- "stateMutability": "nonpayable",
679
- "type": "function",
680
- "name": "enableModule"
681
- },
682
- {
683
- "inputs": [],
684
- "stateMutability": "view",
685
- "type": "function",
686
- "name": "multiSend",
687
- "outputs": [
688
- {
689
- "internalType": "address",
690
- "name": "",
691
- "type": "address"
692
- }
693
- ]
694
- },
695
- {
696
- "inputs": [
697
- {
698
- "internalType": "uint256",
699
- "name": "serviceId",
700
- "type": "uint256"
701
- }
702
- ],
703
- "stateMutability": "nonpayable",
704
- "type": "function",
705
- "name": "recoverAccess"
706
- },
707
- {
708
- "inputs": [],
709
- "stateMutability": "view",
710
- "type": "function",
711
- "name": "serviceRegistry",
712
- "outputs": [
713
- {
714
- "internalType": "address",
715
- "name": "",
716
- "type": "address"
717
- }
718
- ]
719
- }
720
- ],
721
- "devdoc": {
722
- "kind": "dev",
723
- "methods": {
724
- "constructor": {
725
- "details": "RecoveryModule constructor.",
726
- "params": {
727
- "_multiSend": "Multisend contract address.",
728
- "_serviceRegistry": "Service Registry contract address."
729
- }
730
- },
731
- "create(address[],uint256,bytes)": {
732
- "details": "Updates and/or verifies the existent gnosis safe multisig for changed owners and threshold.",
733
- "params": {
734
- "data": "Packed data containing multisig service Id.",
735
- "multisigOwners": "Set of updated multisig owners to verify against.",
736
- "threshold": "Updated number for multisig transaction confirmations."
737
- },
738
- "returns": {
739
- "multisig": "Multisig address."
740
- }
741
- },
742
- "enableModule()": {
743
- "details": "Enables self address as a multisig module."
744
- },
745
- "recoverAccess(uint256)": {
746
- "details": "Recovers service multisig access for a specified service Id.",
747
- "params": {
748
- "serviceId": "Service Id."
749
- }
750
- }
751
- },
752
- "version": 1
753
- },
754
- "userdoc": {
755
- "kind": "user",
756
- "methods": {
757
- "create(address[],uint256,bytes)": {
758
- "notice": "This function operates with existent multisig proxy that is requested to be updated in terms of the set of owners' addresses and the threshold. There are two scenarios possible: 1. The multisig proxy is already updated before reaching this function. Then the multisig address must be passed as a payload such that its owners and threshold are verified against those specified in the argument list. 2. The multisig proxy is not yet updated. Then the service Id must be passed in a packed bytes of data in order to update multisig owners to match service agent instances. The updated multisig proxy is then going to be verified with the provided set of owners' addresses and the threshold. Note that owners' addresses in the multisig are stored in reverse order compared to how they were added: https://etherscan.io/address/0xd9db270c1b5e3bd161e8c8503c55ceabee709552#code#F6#L56"
759
- },
760
- "enableModule()": {
761
- "notice": "This function must only be called via `DELEGATECALL` when a Safe contract is created. For enabling module after multisig is created use direct native Safe enableModule() function call."
762
- },
763
- "recoverAccess(uint256)": {
764
- "notice": "Only service owner is entitled to recover and become the ultimate multisig owner."
765
- }
766
- },
767
- "version": 1
768
- }
769
- },
770
- "settings": {
771
- "remappings": [
772
- "@gnosis.pm/=node_modules/@gnosis.pm/",
773
- "ds-test/=lib/solmate/lib/ds-test/src/",
774
- "forge-std/=lib/forge-std/src/",
775
- "solmate/=lib/solmate/src/"
776
- ],
777
- "optimizer": {
778
- "enabled": true,
779
- "runs": 750
780
- },
781
- "metadata": {
782
- "bytecodeHash": "ipfs"
783
- },
784
- "compilationTarget": {
785
- "contracts/multisigs/RecoveryModule.sol": "RecoveryModule"
786
- },
787
- "evmVersion": "prague",
788
- "libraries": {}
789
- },
790
- "sources": {
791
- "contracts/multisigs/RecoveryModule.sol": {
792
- "keccak256": "0x588aa4a836dc6168a1a7b84f790275920d326c54627e9a5754a14018845c40e3",
793
- "urls": [
794
- "bzz-raw://3e3d3f0fb791b08c830d87c5b4c75c00fc72389b788c1bf7362973fd313fd476",
795
- "dweb:/ipfs/Qmee3fmPpuBE4e45fNV8w6UrSJZZUccDurynv6cecoSwBf"
796
- ],
797
- "license": "MIT"
798
- },
799
- "node_modules/@gnosis.pm/safe-contracts/contracts/examples/libraries/GnosisSafeStorage.sol": {
800
- "keccak256": "0xecfd0d8a43d859ef1fb8161cb21ce5d38461603383378a5b1c4c7d5d4a3bfbf3",
801
- "urls": [
802
- "bzz-raw://4248ba92a7d4b9c24344944427b7a2f092f2328d57d39317f4a9f178f503beb5",
803
- "dweb:/ipfs/QmUFuLoQRjZdx7fsDEprFstuDjLQ7em3syagHA8b8AD2Sa"
804
- ],
805
- "license": "LGPL-3.0-only"
806
- }
807
- },
808
- "version": 1
809
- },
810
- "id": 20
811
- }