forked from balancer/balancer-deployments
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ManagedPoolAmmLib.json
251 lines (251 loc) · 32.2 KB
/
ManagedPoolAmmLib.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
{
"_format": "hh-sol-artifact-1",
"contractName": "ManagedPoolAmmLib",
"sourceName": "contracts/managed/ManagedPoolAmmLib.sol",
"abi": [
{
"inputs": [
{
"internalType": "enum ManagedPoolAmmLib.BoundCheckKind",
"name": "checkKind",
"type": "ManagedPoolAmmLib.BoundCheckKind"
},
{
"internalType": "bytes32",
"name": "circuitBreakerState",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "actualSupply",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "weight",
"type": "uint256"
}
],
"name": "checkCircuitBreaker",
"outputs": [],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "actualSupply",
"type": "uint256"
},
{
"internalType": "bytes32[]",
"name": "circuitBreakerStates",
"type": "bytes32[]"
},
{
"internalType": "uint256[]",
"name": "balances",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "normalizedWeights",
"type": "uint256[]"
},
{
"internalType": "bool",
"name": "isJoin",
"type": "bool"
}
],
"name": "checkCircuitBreakers",
"outputs": [],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "circuitBreakerState",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "actualSupply",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "weight",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isLowerBound",
"type": "bool"
}
],
"name": "checkOneSidedCircuitBreaker",
"outputs": [],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "balances",
"type": "uint256[]"
},
{
"internalType": "bytes",
"name": "userData",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "actualSupply",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "scalingFactors",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "normalizedWeights",
"type": "uint256[]"
},
{
"internalType": "bytes32",
"name": "poolState",
"type": "bytes32"
},
{
"internalType": "bytes32[]",
"name": "circuitBreakerStates",
"type": "bytes32[]"
},
{
"internalType": "contract IExternalWeightedMath",
"name": "weightedMath",
"type": "IExternalWeightedMath"
}
],
"name": "exitPool",
"outputs": [
{
"internalType": "uint256",
"name": "bptAmountIn",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "amountsOut",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256[]",
"name": "balances",
"type": "uint256[]"
},
{
"internalType": "bytes",
"name": "userData",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "actualSupply",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "scalingFactors",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "normalizedWeights",
"type": "uint256[]"
},
{
"internalType": "bytes32",
"name": "poolState",
"type": "bytes32"
},
{
"internalType": "bytes32[]",
"name": "circuitBreakerStates",
"type": "bytes32[]"
},
{
"internalType": "contract IExternalWeightedMath",
"name": "weightedMath",
"type": "IExternalWeightedMath"
}
],
"name": "joinPool",
"outputs": [
{
"internalType": "uint256",
"name": "bptAmountOut",
"type": "uint256"
},
{
"internalType": "uint256[]",
"name": "amountsIn",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x611a76610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100715760003560e01c8063874b47821161005a578063874b4782146102e7578063b8b0f7991461031f578063b8e7b8481461065957610071565b806328e379f5146100765780638249e4b9146102b0575b600080fd5b6102ae600480360360c081101561008c57600080fd5b813591908101906040810160208201356401000000008111156100ae57600080fd5b8201836020820111156100c057600080fd5b803590602001918460208302840111640100000000831117156100e257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561013257600080fd5b82018360208201111561014457600080fd5b8035906020019184602083028401116401000000008311171561016657600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156101b657600080fd5b8201836020820111156101c857600080fd5b803590602001918460208302840111640100000000831117156101ea57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561023a57600080fd5b82018360208201111561024c57600080fd5b8035906020019184602083028401116401000000008311171561026e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050503515159050610938565b005b6102ae600480360360a08110156102c657600080fd5b508035906020810135906040810135906060810135906080013515156109d2565b6102ae600480360360a08110156102fd57600080fd5b5060ff8135169060208101359060408101359060608101359060800135610a02565b6105fe600480360361010081101561033657600080fd5b81019060208101813564010000000081111561035157600080fd5b82018360208201111561036357600080fd5b8035906020019184602083028401116401000000008311171561038557600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184600183028401116401000000008311171561040957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595909490935060408101925060200135905064010000000081111561046457600080fd5b82018360208201111561047657600080fd5b8035906020019184602083028401116401000000008311171561049857600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104e857600080fd5b8201836020820111156104fa57600080fd5b8035906020019184602083028401116401000000008311171561051c57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295843595909490935060408101925060200135905064010000000081111561057457600080fd5b82018360208201111561058657600080fd5b803590602001918460208302840111640100000000831117156105a857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050903573ffffffffffffffffffffffffffffffffffffffff169150610a799050565b6040518083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561064457818101518382015260200161062c565b50505050905001935050505060405180910390f35b6105fe600480360361010081101561067057600080fd5b81019060208101813564010000000081111561068b57600080fd5b82018360208201111561069d57600080fd5b803590602001918460208302840111640100000000831117156106bf57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561070f57600080fd5b82018360208201111561072157600080fd5b8035906020019184600183028401116401000000008311171561074357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595909490935060408101925060200135905064010000000081111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111640100000000831117156107d257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561082257600080fd5b82018360208201111561083457600080fd5b8035906020019184602083028401116401000000008311171561085657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929584359590949093506040810192506020013590506401000000008111156108ae57600080fd5b8201836020820111156108c057600080fd5b803590602001918460208302840111640100000000831117156108e257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050903573ffffffffffffffffffffffffffffffffffffffff169150610af09050565b60005b84518110156109c957600061098a86838151811061095557fe5b602002602001015186848151811061096957fe5b60200260200101518561097e57610b34610982565b610b4f5b63ffffffff16565b90506109c0600288848151811061099d57fe5b60200260200101518a848887815181106109b357fe5b6020026020010151610a02565b5060010161093b565b50505050505050565b60006109df868484610b68565b90506109fa6109f18685878587610cbd565b15610164610d03565b505050505050565b6000856002811115610a1057fe5b1480610a2757506002856002811115610a2557fe5b145b15610a3a57610a3a8484848460016109d2565b6001856002811115610a4857fe5b1480610a5f57506002856002811115610a5d57fe5b145b15610a7257610a728484848460006109d2565b5050505050565b60006060610a878a88610d15565b610a968a87898b8d8a89610d84565b90925090506001610aa68a611315565b6002811115610ab157fe5b14610ace57610ace610ac38984610b34565b858c848a6000610938565b610ad88188611334565b610ae18161139d565b90509850989650505050505050565b60006060610afe8a88610d15565b610b0d8a87898b8d8a8961142f565b9092509050610b2a610b1f8984610b4f565b858c848a6001610938565b610ad8818861157b565b6000610b44838311156001610d03565b508082035b92915050565b6000828201610b618482101583610d03565b9392505050565b6000806030610b8884610b7c576010610b7f565b60005b879060106115e4565b901b905080610b9b576000915050610b61565b6000610ba9866060806115e4565b90506000610bba87602060406115e4565b9050600081871415610bfd57610bf66020678ac7230489e80000610bef89610be35760e0610be6565b60c05b8c9060206115e4565b9190611611565b9050610ca6565b604080517ff4d8cb7c00000000000000000000000000000000000000000000000000000000815260048101869052602481018990528715156044820152905173__$6670886e635fd86503a30ff6f4e4ebb80f$__9163f4d8cb7c916064808301926020929190829003018186803b158015610c7757600080fd5b505af4158015610c8b573d6000803e3d6000fd5b505050506040513d6020811015610ca157600080fd5b505190505b610cb1818488611676565b98975050505050505050565b600082610ccc57506000610cfa565b6000610ce3610cdb8888611697565b8685156116bb565b905082610cf257838111610cf6565b8381105b9150505b95945050505050565b81610d1157610d11816116db565b5050565b81518151610d24908290611708565b60005b81811015610d7e57610d5f848281518110610d3e57fe5b6020026020010151848381518110610d5257fe5b6020026020010151611715565b848281518110610d6b57fe5b6020908102919091010152600101610d27565b50505050565b60006060610d9c610d9485611743565b610166610d03565b6000610da786611315565b9050610dd3610db586611750565b80610dcb57506001826002811115610dc957fe5b145b61014a610d03565b6000816002811115610de157fe5b1415611036578373ffffffffffffffffffffffffffffffffffffffff16633d0b05e98b8b8a610e0f8a61175d565b8b6040518663ffffffff1660e01b815260040180806020018060200186815260200185815260200180602001848103845289818151815260200191508051906020019060200280838360005b83811015610e73578181015183820152602001610e5b565b50505050905001848103835288818151815260200191508051906020019060200280838360005b83811015610eb2578181015183820152602001610e9a565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015610eee578181015183820152602001610ed6565b50505050905090810190601f168015610f1b5780820380516001836020036101000a031916815260200191505b509850505050505050505060006040518083038186803b158015610f3e57600080fd5b505afa158015610f52573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040908152811015610f9957600080fd5b815160208301805160405192949293830192919084640100000000821115610fc057600080fd5b908301906020820185811115610fd557600080fd5b8251866020820283011164010000000082111715610ff257600080fd5b82525081516020918201928201910280838360005b8381101561101f578181015183820152602001611007565b505050509050016040525050509250925050611309565b600181600281111561104457fe5b141561114b578373ffffffffffffffffffffffffffffffffffffffff16631b2db0ea8b89896040518463ffffffff1660e01b8152600401808060200184815260200180602001838103835286818151815260200191508051906020019060200280838360005b838110156110c25781810151838201526020016110aa565b50505050905001838103825284818151815260200191508051906020019080838360005b838110156110fe5781810151838201526020016110e6565b50505050905090810190601f16801561112b5780820380516001836020036101000a031916815260200191505b509550505050505060006040518083038186803b158015610f3e57600080fd5b600281600281111561115957fe5b14156112fc578373ffffffffffffffffffffffffffffffffffffffff16632ac71a3e8b8b8b8b6111888b61175d565b8c6040518763ffffffff1660e01b8152600401808060200180602001806020018781526020018681526020018060200185810385528b818151815260200191508051906020019060200280838360005b838110156111f05781810151838201526020016111d8565b5050505090500185810384528a818151815260200191508051906020019060200280838360005b8381101561122f578181015183820152602001611217565b50505050905001858103835289818151815260200191508051906020019060200280838360005b8381101561126e578181015183820152602001611256565b50505050905001858103825286818151815260200191508051906020019080838360005b838110156112aa578181015183820152602001611292565b50505050905090810190601f1680156112d75780820380516001836020036101000a031916815260200191505b509a505050505050505050505060006040518083038186803b158015610f3e57600080fd5b6113076101506116db565b505b97509795505050505050565b600081806020019051602081101561132c57600080fd5b505192915050565b81518151611343908290611708565b60005b81811015610d7e5761137e84828151811061135d57fe5b602002602001015184838151811061137157fe5b602002602001015161178c565b84828151811061138a57fe5b6020908102919091010152600101611346565b6060815160010167ffffffffffffffff811180156113ba57600080fd5b506040519080825280602002602001820160405280156113e4578160200160208202803683370190505b50905060005b8251811015611429578281815181106113ff57fe5b602002602001015182826001018151811061141657fe5b60209081029190910101526001016113ea565b50919050565b6000606061143f610d9485611743565b600061144a86611315565b905061146c61145886611750565b80610dcb57506003826003811115610dc957fe5b600181600381111561147a57fe5b14156114a9578373ffffffffffffffffffffffffffffffffffffffff1663120c0c638b8b8b8b6111888b61175d565b60028160038111156114b757fe5b14156114e5578373ffffffffffffffffffffffffffffffffffffffff1663098e01898b8b8a610e0f8a61175d565b60038160038111156114f357fe5b1415611570578373ffffffffffffffffffffffffffffffffffffffff166303a5b64b8b89896040518463ffffffff1660e01b815260040180806020018481526020018060200183810383528681815181526020019150805190602001906020028083836000838110156110c25781810151838201526020016110aa565b6113076101366116db565b8151815161158a908290611708565b60005b81811015610d7e576115c58482815181106115a457fe5b60200260200101518483815181106115b857fe5b60200260200101516117d6565b8482815181106115d157fe5b602090810291909101015260010161158d565b6001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191901c1690565b600061162f60028410158015611628575060ff8411155b6064610d03565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001841b01611663818611156064610d03565b610cfa6116708685611697565b82611823565b600061168f83858461168a57611715610982565b611843565b949350505050565b6000828202610b618415806116b45750838583816116b157fe5b04145b6003610d03565b6000816116d1576116cc8484611823565b61168f565b61168f848461187b565b611705817f42414c00000000000000000000000000000000000000000000000000000000006118ba565b50565b610d118183146067610d03565b600082820261172f8415806116b45750838583816116b157fe5b670de0b6b3a7640000815b04949350505050565b6000610b498260ff611935565b6000610b498260fc611935565b600080600080600061176e8661193c565b935093509350935061178282828686611984565b9695505050505050565b600061179b8215156004610d03565b670de0b6b3a764000083026117cd8415806117c65750670de0b6b3a76400008583816117c357fe5b04145b6005610d03565b82818161173a57fe5b60006117e58215156004610d03565b670de0b6b3a7640000830261180d8415806117c65750670de0b6b3a76400008583816117c357fe5b6001836001830304018115150291505092915050565b60006118328215156004610d03565b81838161183b57fe5b049392505050565b600082820261185d8415806116b45750838583816116b157fe5b6001670de0b6b3a76400006001830304018115150291505092915050565b600061188a8215156004610d03565b508115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201046001010290565b7f08c379a000000000000000000000000000000000000000000000000000000000600090815260206004526007602452600a808404818106603090810160081b958390069590950190829004918206850160101b01602363ffffff0060e086901c160160181b0190930160c81b60445260e882901c90606490fd5b1c60011690565b600080808061194e85604060206115e4565b935061195d85606060206115e4565b925061196c856080603e6115e4565b915061197b8560be603e6115e4565b90509193509193565b600080611991848461199e565b90506117828686836119d6565b60008142106119b65750670de0b6b3a7640000610b49565b8242116119c557506000610b49565b82820342849003610cfa818361178c565b6000670de0b6b3a7640000821015806119ee57508284145b156119fa575081610b61565b81611a06575082610b61565b82841115611a27576000611a1c83858703611715565b85039150610b619050565b6000611a3583868603611715565b85019150610b61905056fea26469706673582212207f93323ce9fc3fb858adc332b438e477f02b2ea07e7e22f5d651b2b4783633b164736f6c63430007010033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100715760003560e01c8063874b47821161005a578063874b4782146102e7578063b8b0f7991461031f578063b8e7b8481461065957610071565b806328e379f5146100765780638249e4b9146102b0575b600080fd5b6102ae600480360360c081101561008c57600080fd5b813591908101906040810160208201356401000000008111156100ae57600080fd5b8201836020820111156100c057600080fd5b803590602001918460208302840111640100000000831117156100e257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561013257600080fd5b82018360208201111561014457600080fd5b8035906020019184602083028401116401000000008311171561016657600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156101b657600080fd5b8201836020820111156101c857600080fd5b803590602001918460208302840111640100000000831117156101ea57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561023a57600080fd5b82018360208201111561024c57600080fd5b8035906020019184602083028401116401000000008311171561026e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050503515159050610938565b005b6102ae600480360360a08110156102c657600080fd5b508035906020810135906040810135906060810135906080013515156109d2565b6102ae600480360360a08110156102fd57600080fd5b5060ff8135169060208101359060408101359060608101359060800135610a02565b6105fe600480360361010081101561033657600080fd5b81019060208101813564010000000081111561035157600080fd5b82018360208201111561036357600080fd5b8035906020019184602083028401116401000000008311171561038557600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156103d557600080fd5b8201836020820111156103e757600080fd5b8035906020019184600183028401116401000000008311171561040957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595909490935060408101925060200135905064010000000081111561046457600080fd5b82018360208201111561047657600080fd5b8035906020019184602083028401116401000000008311171561049857600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156104e857600080fd5b8201836020820111156104fa57600080fd5b8035906020019184602083028401116401000000008311171561051c57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295843595909490935060408101925060200135905064010000000081111561057457600080fd5b82018360208201111561058657600080fd5b803590602001918460208302840111640100000000831117156105a857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050903573ffffffffffffffffffffffffffffffffffffffff169150610a799050565b6040518083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561064457818101518382015260200161062c565b50505050905001935050505060405180910390f35b6105fe600480360361010081101561067057600080fd5b81019060208101813564010000000081111561068b57600080fd5b82018360208201111561069d57600080fd5b803590602001918460208302840111640100000000831117156106bf57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561070f57600080fd5b82018360208201111561072157600080fd5b8035906020019184600183028401116401000000008311171561074357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295843595909490935060408101925060200135905064010000000081111561079e57600080fd5b8201836020820111156107b057600080fd5b803590602001918460208302840111640100000000831117156107d257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561082257600080fd5b82018360208201111561083457600080fd5b8035906020019184602083028401116401000000008311171561085657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929584359590949093506040810192506020013590506401000000008111156108ae57600080fd5b8201836020820111156108c057600080fd5b803590602001918460208302840111640100000000831117156108e257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505050903573ffffffffffffffffffffffffffffffffffffffff169150610af09050565b60005b84518110156109c957600061098a86838151811061095557fe5b602002602001015186848151811061096957fe5b60200260200101518561097e57610b34610982565b610b4f5b63ffffffff16565b90506109c0600288848151811061099d57fe5b60200260200101518a848887815181106109b357fe5b6020026020010151610a02565b5060010161093b565b50505050505050565b60006109df868484610b68565b90506109fa6109f18685878587610cbd565b15610164610d03565b505050505050565b6000856002811115610a1057fe5b1480610a2757506002856002811115610a2557fe5b145b15610a3a57610a3a8484848460016109d2565b6001856002811115610a4857fe5b1480610a5f57506002856002811115610a5d57fe5b145b15610a7257610a728484848460006109d2565b5050505050565b60006060610a878a88610d15565b610a968a87898b8d8a89610d84565b90925090506001610aa68a611315565b6002811115610ab157fe5b14610ace57610ace610ac38984610b34565b858c848a6000610938565b610ad88188611334565b610ae18161139d565b90509850989650505050505050565b60006060610afe8a88610d15565b610b0d8a87898b8d8a8961142f565b9092509050610b2a610b1f8984610b4f565b858c848a6001610938565b610ad8818861157b565b6000610b44838311156001610d03565b508082035b92915050565b6000828201610b618482101583610d03565b9392505050565b6000806030610b8884610b7c576010610b7f565b60005b879060106115e4565b901b905080610b9b576000915050610b61565b6000610ba9866060806115e4565b90506000610bba87602060406115e4565b9050600081871415610bfd57610bf66020678ac7230489e80000610bef89610be35760e0610be6565b60c05b8c9060206115e4565b9190611611565b9050610ca6565b604080517ff4d8cb7c00000000000000000000000000000000000000000000000000000000815260048101869052602481018990528715156044820152905173__$6670886e635fd86503a30ff6f4e4ebb80f$__9163f4d8cb7c916064808301926020929190829003018186803b158015610c7757600080fd5b505af4158015610c8b573d6000803e3d6000fd5b505050506040513d6020811015610ca157600080fd5b505190505b610cb1818488611676565b98975050505050505050565b600082610ccc57506000610cfa565b6000610ce3610cdb8888611697565b8685156116bb565b905082610cf257838111610cf6565b8381105b9150505b95945050505050565b81610d1157610d11816116db565b5050565b81518151610d24908290611708565b60005b81811015610d7e57610d5f848281518110610d3e57fe5b6020026020010151848381518110610d5257fe5b6020026020010151611715565b848281518110610d6b57fe5b6020908102919091010152600101610d27565b50505050565b60006060610d9c610d9485611743565b610166610d03565b6000610da786611315565b9050610dd3610db586611750565b80610dcb57506001826002811115610dc957fe5b145b61014a610d03565b6000816002811115610de157fe5b1415611036578373ffffffffffffffffffffffffffffffffffffffff16633d0b05e98b8b8a610e0f8a61175d565b8b6040518663ffffffff1660e01b815260040180806020018060200186815260200185815260200180602001848103845289818151815260200191508051906020019060200280838360005b83811015610e73578181015183820152602001610e5b565b50505050905001848103835288818151815260200191508051906020019060200280838360005b83811015610eb2578181015183820152602001610e9a565b50505050905001848103825285818151815260200191508051906020019080838360005b83811015610eee578181015183820152602001610ed6565b50505050905090810190601f168015610f1b5780820380516001836020036101000a031916815260200191505b509850505050505050505060006040518083038186803b158015610f3e57600080fd5b505afa158015610f52573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040908152811015610f9957600080fd5b815160208301805160405192949293830192919084640100000000821115610fc057600080fd5b908301906020820185811115610fd557600080fd5b8251866020820283011164010000000082111715610ff257600080fd5b82525081516020918201928201910280838360005b8381101561101f578181015183820152602001611007565b505050509050016040525050509250925050611309565b600181600281111561104457fe5b141561114b578373ffffffffffffffffffffffffffffffffffffffff16631b2db0ea8b89896040518463ffffffff1660e01b8152600401808060200184815260200180602001838103835286818151815260200191508051906020019060200280838360005b838110156110c25781810151838201526020016110aa565b50505050905001838103825284818151815260200191508051906020019080838360005b838110156110fe5781810151838201526020016110e6565b50505050905090810190601f16801561112b5780820380516001836020036101000a031916815260200191505b509550505050505060006040518083038186803b158015610f3e57600080fd5b600281600281111561115957fe5b14156112fc578373ffffffffffffffffffffffffffffffffffffffff16632ac71a3e8b8b8b8b6111888b61175d565b8c6040518763ffffffff1660e01b8152600401808060200180602001806020018781526020018681526020018060200185810385528b818151815260200191508051906020019060200280838360005b838110156111f05781810151838201526020016111d8565b5050505090500185810384528a818151815260200191508051906020019060200280838360005b8381101561122f578181015183820152602001611217565b50505050905001858103835289818151815260200191508051906020019060200280838360005b8381101561126e578181015183820152602001611256565b50505050905001858103825286818151815260200191508051906020019080838360005b838110156112aa578181015183820152602001611292565b50505050905090810190601f1680156112d75780820380516001836020036101000a031916815260200191505b509a505050505050505050505060006040518083038186803b158015610f3e57600080fd5b6113076101506116db565b505b97509795505050505050565b600081806020019051602081101561132c57600080fd5b505192915050565b81518151611343908290611708565b60005b81811015610d7e5761137e84828151811061135d57fe5b602002602001015184838151811061137157fe5b602002602001015161178c565b84828151811061138a57fe5b6020908102919091010152600101611346565b6060815160010167ffffffffffffffff811180156113ba57600080fd5b506040519080825280602002602001820160405280156113e4578160200160208202803683370190505b50905060005b8251811015611429578281815181106113ff57fe5b602002602001015182826001018151811061141657fe5b60209081029190910101526001016113ea565b50919050565b6000606061143f610d9485611743565b600061144a86611315565b905061146c61145886611750565b80610dcb57506003826003811115610dc957fe5b600181600381111561147a57fe5b14156114a9578373ffffffffffffffffffffffffffffffffffffffff1663120c0c638b8b8b8b6111888b61175d565b60028160038111156114b757fe5b14156114e5578373ffffffffffffffffffffffffffffffffffffffff1663098e01898b8b8a610e0f8a61175d565b60038160038111156114f357fe5b1415611570578373ffffffffffffffffffffffffffffffffffffffff166303a5b64b8b89896040518463ffffffff1660e01b815260040180806020018481526020018060200183810383528681815181526020019150805190602001906020028083836000838110156110c25781810151838201526020016110aa565b6113076101366116db565b8151815161158a908290611708565b60005b81811015610d7e576115c58482815181106115a457fe5b60200260200101518483815181106115b857fe5b60200260200101516117d6565b8482815181106115d157fe5b602090810291909101015260010161158d565b6001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0191901c1690565b600061162f60028410158015611628575060ff8411155b6064610d03565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001841b01611663818611156064610d03565b610cfa6116708685611697565b82611823565b600061168f83858461168a57611715610982565b611843565b949350505050565b6000828202610b618415806116b45750838583816116b157fe5b04145b6003610d03565b6000816116d1576116cc8484611823565b61168f565b61168f848461187b565b611705817f42414c00000000000000000000000000000000000000000000000000000000006118ba565b50565b610d118183146067610d03565b600082820261172f8415806116b45750838583816116b157fe5b670de0b6b3a7640000815b04949350505050565b6000610b498260ff611935565b6000610b498260fc611935565b600080600080600061176e8661193c565b935093509350935061178282828686611984565b9695505050505050565b600061179b8215156004610d03565b670de0b6b3a764000083026117cd8415806117c65750670de0b6b3a76400008583816117c357fe5b04145b6005610d03565b82818161173a57fe5b60006117e58215156004610d03565b670de0b6b3a7640000830261180d8415806117c65750670de0b6b3a76400008583816117c357fe5b6001836001830304018115150291505092915050565b60006118328215156004610d03565b81838161183b57fe5b049392505050565b600082820261185d8415806116b45750838583816116b157fe5b6001670de0b6b3a76400006001830304018115150291505092915050565b600061188a8215156004610d03565b508115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201046001010290565b7f08c379a000000000000000000000000000000000000000000000000000000000600090815260206004526007602452600a808404818106603090810160081b958390069590950190829004918206850160101b01602363ffffff0060e086901c160160181b0190930160c81b60445260e882901c90606490fd5b1c60011690565b600080808061194e85604060206115e4565b935061195d85606060206115e4565b925061196c856080603e6115e4565b915061197b8560be603e6115e4565b90509193509193565b600080611991848461199e565b90506117828686836119d6565b60008142106119b65750670de0b6b3a7640000610b49565b8242116119c557506000610b49565b82820342849003610cfa818361178c565b6000670de0b6b3a7640000821015806119ee57508284145b156119fa575081610b61565b81611a06575082610b61565b82841115611a27576000611a1c83858703611715565b85039150610b619050565b6000611a3583868603611715565b85019150610b61905056fea26469706673582212207f93323ce9fc3fb858adc332b438e477f02b2ea07e7e22f5d651b2b4783633b164736f6c63430007010033",
"linkReferences": {
"contracts/lib/CircuitBreakerLib.sol": {
"CircuitBreakerLib": [
{
"length": 20,
"start": 3172
}
]
}
},
"deployedLinkReferences": {
"contracts/lib/CircuitBreakerLib.sol": {
"CircuitBreakerLib": [
{
"length": 20,
"start": 3134
}
]
}
}
}