@across-protocol/contracts 0.1.2 → 0.1.3
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.
- package/artifacts/@eth-optimism/contracts/L2/messaging/IL2ERC20Bridge.sol/IL2ERC20Bridge.dbg.json +1 -1
- package/artifacts/@eth-optimism/contracts/libraries/bridge/CrossDomainEnabled.sol/CrossDomainEnabled.dbg.json +1 -1
- package/artifacts/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol/ICrossDomainMessenger.dbg.json +1 -1
- package/artifacts/@eth-optimism/contracts/libraries/constants/Lib_PredeployAddresses.sol/Lib_PredeployAddresses.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/IAccessControl.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/math/SafeMath.sol/SafeMath.dbg.json +1 -1
- package/artifacts/@openzeppelin/contracts/utils/math/SignedSafeMath.sol/SignedSafeMath.dbg.json +1 -1
- package/artifacts/@uma/core/contracts/common/implementation/Lockable.sol/Lockable.dbg.json +1 -1
- package/artifacts/@uma/core/contracts/cross-chain-oracle/chain-adapters/Arbitrum_ParentMessenger.sol/Arbitrum_ParentMessenger.dbg.json +1 -1
- package/artifacts/@uma/core/contracts/cross-chain-oracle/chain-adapters/ParentMessengerBase.sol/ParentMessengerBase.dbg.json +1 -1
- package/artifacts/@uma/core/contracts/cross-chain-oracle/interfaces/ParentMessengerConsumerInterface.sol/ParentMessengerConsumerInterface.dbg.json +1 -1
- package/artifacts/@uma/core/contracts/cross-chain-oracle/interfaces/ParentMessengerInterface.sol/ParentMessengerInterface.dbg.json +1 -1
- package/artifacts/@uma/core/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/IBridge.dbg.json +1 -1
- package/artifacts/@uma/core/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/iArbitrum_Inbox.dbg.json +1 -1
- package/artifacts/@uma/core/contracts/external/avm/interfaces/iArbitrum_Outbox.sol/iArbitrum_Outbox.dbg.json +1 -1
- package/artifacts/@uma/core/contracts/insured-bridge/avm/Arbitrum_CrossDomainEnabled.sol/Arbitrum_CrossDomainEnabled.dbg.json +1 -1
- package/artifacts/build-info/{8e408b49e0ff2873bc28d45221a7ff71.json → f2b62dec2c0d8560303f22503f4c08c4.json} +34080 -27473
- package/artifacts/contracts/common/implementation/AncillaryData.sol/AncillaryData.dbg.json +1 -1
- package/artifacts/contracts/common/implementation/FixedPoint.sol/FixedPoint.dbg.json +1 -1
- package/artifacts/contracts/common/implementation/Lockable.sol/Lockable.dbg.json +1 -1
- package/artifacts/contracts/common/implementation/MultiCaller.sol/MultiCaller.dbg.json +1 -1
- package/artifacts/contracts/common/implementation/Testable.sol/Testable.dbg.json +1 -1
- package/artifacts/contracts/common/implementation/Timer.sol/Timer.dbg.json +1 -1
- package/artifacts/contracts/common/interfaces/AddressWhitelistInterface.sol/AddressWhitelistInterface.dbg.json +1 -1
- package/artifacts/contracts/external/avm/AVM_CrossDomainEnabled.sol/AVM_CrossDomainEnabled.dbg.json +1 -1
- package/artifacts/contracts/external/avm/interfaces/ArbSys.sol/ArbSys.dbg.json +1 -1
- package/artifacts/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/IBridge.dbg.json +1 -1
- package/artifacts/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/iArbitrum_Inbox.dbg.json +1 -1
- package/artifacts/contracts/external/avm/interfaces/iArbitrum_Outbox.sol/iArbitrum_Outbox.dbg.json +1 -1
- package/artifacts/contracts/external/chainbridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/artifacts/contracts/external/chainbridge/handlers/GenericHandler.sol/GenericHandler.dbg.json +1 -1
- package/artifacts/contracts/external/chainbridge/interfaces/IBridge.sol/IBridge.dbg.json +1 -1
- package/artifacts/contracts/external/chainbridge/interfaces/IDepositExecute.sol/IDepositExecute.dbg.json +1 -1
- package/artifacts/contracts/external/chainbridge/interfaces/IERCHandler.sol/IERCHandler.dbg.json +1 -1
- package/artifacts/contracts/external/chainbridge/interfaces/IGenericHandler.sol/IGenericHandler.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/BridgeAdmin.sol/BridgeAdmin.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/BridgeDepositBox.sol/BridgeDepositBox.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/BridgeDepositBox.sol/TokenLike.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/BridgeDepositBox.sol/WETH9Like.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/RateModelStore.sol/RateModelStore.dbg.json +4 -0
- package/artifacts/contracts/insured-bridge/RateModelStore.sol/RateModelStore.json +138 -0
- package/artifacts/contracts/insured-bridge/avm/AVM_BridgeDepositBox.sol/AVM_BridgeDepositBox.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/avm/AVM_BridgeDepositBox.sol/StandardBridgeLike.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/avm/Arbitrum_CrossDomainEnabled.sol/Arbitrum_CrossDomainEnabled.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/avm/Arbitrum_Messenger.sol/Arbitrum_Messenger.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/interfaces/BridgeAdminInterface.sol/BridgeAdminInterface.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/interfaces/BridgePoolInterface.sol/BridgePoolInterface.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/interfaces/MessengerInterface.sol/MessengerInterface.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/ovm/OVM_BridgeDepositBox.sol/OVM_BridgeDepositBox.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/ovm/OVM_OETH_BridgeDepositBox.sol/OVM_OETH_BridgeDepositBox.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/ovm/Optimism_Messenger.sol/Optimism_Messenger.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/ovm/Optimism_Wrapper.sol/Optimism_Wrapper.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/ovm/Optimism_Wrapper.sol/WETH9Like.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/test/Arbitrum_InboxMock.sol/Arbitrum_BridgeMock.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/test/Arbitrum_InboxMock.sol/Arbitrum_InboxMock.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/test/Arbitrum_InboxMock.sol/Arbitrum_OutboxMock.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/test/BridgeDepositBoxMock.sol/BridgeDepositBoxMock.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/test/MessengerMock.sol/MessengerMock.dbg.json +1 -1
- package/artifacts/contracts/insured-bridge/test/OVM_L1CrossDomainMessengerMock.sol/OVM_L1CrossDomainMessengerMock.dbg.json +1 -1
- package/artifacts/contracts/oracle/implementation/Constants.sol/OptimisticOracleConstraints.dbg.json +1 -1
- package/artifacts/contracts/oracle/implementation/Constants.sol/OracleInterfaces.dbg.json +1 -1
- package/artifacts/contracts/oracle/interfaces/FinderInterface.sol/FinderInterface.dbg.json +1 -1
- package/artifacts/contracts/oracle/interfaces/IdentifierWhitelistInterface.sol/IdentifierWhitelistInterface.dbg.json +1 -1
- package/artifacts/contracts/oracle/interfaces/OptimisticOracleInterface.sol/OptimisticOracleInterface.dbg.json +1 -1
- package/artifacts/contracts/oracle/interfaces/SkinnyOptimisticOracleInterface.sol/SkinnyOptimisticOracleInterface.dbg.json +1 -1
- package/artifacts/contracts/oracle/interfaces/StoreInterface.sol/StoreInterface.dbg.json +1 -1
- package/build/artifacts.json +4 -0
- package/contract-types/ethers/RateModelStore.ts +273 -0
- package/contract-types/ethers/factories/RateModelStore__factory.ts +188 -0
- package/contract-types/ethers/hardhat.d.ts +9 -0
- package/contract-types/ethers/index.ts +2 -0
- package/contract-types/web3/RateModelStore.ts +89 -0
- package/contracts/insured-bridge/RateModelStore.sol +29 -0
- package/networks/1.json +20 -6
- package/networks/288.json +6 -0
- package/package.json +1 -1
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
import {
|
|
5
|
+
BaseContract,
|
|
6
|
+
BigNumber,
|
|
7
|
+
BytesLike,
|
|
8
|
+
CallOverrides,
|
|
9
|
+
ContractTransaction,
|
|
10
|
+
Overrides,
|
|
11
|
+
PayableOverrides,
|
|
12
|
+
PopulatedTransaction,
|
|
13
|
+
Signer,
|
|
14
|
+
utils,
|
|
15
|
+
} from "ethers";
|
|
16
|
+
import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi";
|
|
17
|
+
import { Listener, Provider } from "@ethersproject/providers";
|
|
18
|
+
import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common";
|
|
19
|
+
|
|
20
|
+
export interface RateModelStoreInterface extends utils.Interface {
|
|
21
|
+
functions: {
|
|
22
|
+
"l1TokenRateModels(address)": FunctionFragment;
|
|
23
|
+
"multicall(bytes[])": FunctionFragment;
|
|
24
|
+
"owner()": FunctionFragment;
|
|
25
|
+
"renounceOwnership()": FunctionFragment;
|
|
26
|
+
"transferOwnership(address)": FunctionFragment;
|
|
27
|
+
"updateRateModel(address,string)": FunctionFragment;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
encodeFunctionData(
|
|
31
|
+
functionFragment: "l1TokenRateModels",
|
|
32
|
+
values: [string]
|
|
33
|
+
): string;
|
|
34
|
+
encodeFunctionData(
|
|
35
|
+
functionFragment: "multicall",
|
|
36
|
+
values: [BytesLike[]]
|
|
37
|
+
): string;
|
|
38
|
+
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
|
|
39
|
+
encodeFunctionData(
|
|
40
|
+
functionFragment: "renounceOwnership",
|
|
41
|
+
values?: undefined
|
|
42
|
+
): string;
|
|
43
|
+
encodeFunctionData(
|
|
44
|
+
functionFragment: "transferOwnership",
|
|
45
|
+
values: [string]
|
|
46
|
+
): string;
|
|
47
|
+
encodeFunctionData(
|
|
48
|
+
functionFragment: "updateRateModel",
|
|
49
|
+
values: [string, string]
|
|
50
|
+
): string;
|
|
51
|
+
|
|
52
|
+
decodeFunctionResult(
|
|
53
|
+
functionFragment: "l1TokenRateModels",
|
|
54
|
+
data: BytesLike
|
|
55
|
+
): Result;
|
|
56
|
+
decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result;
|
|
57
|
+
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
|
|
58
|
+
decodeFunctionResult(
|
|
59
|
+
functionFragment: "renounceOwnership",
|
|
60
|
+
data: BytesLike
|
|
61
|
+
): Result;
|
|
62
|
+
decodeFunctionResult(
|
|
63
|
+
functionFragment: "transferOwnership",
|
|
64
|
+
data: BytesLike
|
|
65
|
+
): Result;
|
|
66
|
+
decodeFunctionResult(
|
|
67
|
+
functionFragment: "updateRateModel",
|
|
68
|
+
data: BytesLike
|
|
69
|
+
): Result;
|
|
70
|
+
|
|
71
|
+
events: {
|
|
72
|
+
"OwnershipTransferred(address,address)": EventFragment;
|
|
73
|
+
"UpdatedRateModel(address,string)": EventFragment;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
|
|
77
|
+
getEvent(nameOrSignatureOrTopic: "UpdatedRateModel"): EventFragment;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export type OwnershipTransferredEvent = TypedEvent<
|
|
81
|
+
[string, string],
|
|
82
|
+
{ previousOwner: string; newOwner: string }
|
|
83
|
+
>;
|
|
84
|
+
|
|
85
|
+
export type OwnershipTransferredEventFilter =
|
|
86
|
+
TypedEventFilter<OwnershipTransferredEvent>;
|
|
87
|
+
|
|
88
|
+
export type UpdatedRateModelEvent = TypedEvent<
|
|
89
|
+
[string, string],
|
|
90
|
+
{ l1Token: string; rateModel: string }
|
|
91
|
+
>;
|
|
92
|
+
|
|
93
|
+
export type UpdatedRateModelEventFilter =
|
|
94
|
+
TypedEventFilter<UpdatedRateModelEvent>;
|
|
95
|
+
|
|
96
|
+
export interface RateModelStore extends BaseContract {
|
|
97
|
+
connect(signerOrProvider: Signer | Provider | string): this;
|
|
98
|
+
attach(addressOrName: string): this;
|
|
99
|
+
deployed(): Promise<this>;
|
|
100
|
+
|
|
101
|
+
interface: RateModelStoreInterface;
|
|
102
|
+
|
|
103
|
+
queryFilter<TEvent extends TypedEvent>(
|
|
104
|
+
event: TypedEventFilter<TEvent>,
|
|
105
|
+
fromBlockOrBlockhash?: string | number | undefined,
|
|
106
|
+
toBlock?: string | number | undefined
|
|
107
|
+
): Promise<Array<TEvent>>;
|
|
108
|
+
|
|
109
|
+
listeners<TEvent extends TypedEvent>(
|
|
110
|
+
eventFilter?: TypedEventFilter<TEvent>
|
|
111
|
+
): Array<TypedListener<TEvent>>;
|
|
112
|
+
listeners(eventName?: string): Array<Listener>;
|
|
113
|
+
removeAllListeners<TEvent extends TypedEvent>(
|
|
114
|
+
eventFilter: TypedEventFilter<TEvent>
|
|
115
|
+
): this;
|
|
116
|
+
removeAllListeners(eventName?: string): this;
|
|
117
|
+
off: OnEvent<this>;
|
|
118
|
+
on: OnEvent<this>;
|
|
119
|
+
once: OnEvent<this>;
|
|
120
|
+
removeListener: OnEvent<this>;
|
|
121
|
+
|
|
122
|
+
functions: {
|
|
123
|
+
l1TokenRateModels(
|
|
124
|
+
arg0: string,
|
|
125
|
+
overrides?: CallOverrides
|
|
126
|
+
): Promise<[string]>;
|
|
127
|
+
|
|
128
|
+
multicall(
|
|
129
|
+
data: BytesLike[],
|
|
130
|
+
overrides?: PayableOverrides & { from?: string | Promise<string> }
|
|
131
|
+
): Promise<ContractTransaction>;
|
|
132
|
+
|
|
133
|
+
owner(overrides?: CallOverrides): Promise<[string]>;
|
|
134
|
+
|
|
135
|
+
renounceOwnership(
|
|
136
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
137
|
+
): Promise<ContractTransaction>;
|
|
138
|
+
|
|
139
|
+
transferOwnership(
|
|
140
|
+
newOwner: string,
|
|
141
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
142
|
+
): Promise<ContractTransaction>;
|
|
143
|
+
|
|
144
|
+
updateRateModel(
|
|
145
|
+
l1Token: string,
|
|
146
|
+
rateModel: string,
|
|
147
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
148
|
+
): Promise<ContractTransaction>;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
l1TokenRateModels(arg0: string, overrides?: CallOverrides): Promise<string>;
|
|
152
|
+
|
|
153
|
+
multicall(
|
|
154
|
+
data: BytesLike[],
|
|
155
|
+
overrides?: PayableOverrides & { from?: string | Promise<string> }
|
|
156
|
+
): Promise<ContractTransaction>;
|
|
157
|
+
|
|
158
|
+
owner(overrides?: CallOverrides): Promise<string>;
|
|
159
|
+
|
|
160
|
+
renounceOwnership(
|
|
161
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
162
|
+
): Promise<ContractTransaction>;
|
|
163
|
+
|
|
164
|
+
transferOwnership(
|
|
165
|
+
newOwner: string,
|
|
166
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
167
|
+
): Promise<ContractTransaction>;
|
|
168
|
+
|
|
169
|
+
updateRateModel(
|
|
170
|
+
l1Token: string,
|
|
171
|
+
rateModel: string,
|
|
172
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
173
|
+
): Promise<ContractTransaction>;
|
|
174
|
+
|
|
175
|
+
callStatic: {
|
|
176
|
+
l1TokenRateModels(arg0: string, overrides?: CallOverrides): Promise<string>;
|
|
177
|
+
|
|
178
|
+
multicall(data: BytesLike[], overrides?: CallOverrides): Promise<string[]>;
|
|
179
|
+
|
|
180
|
+
owner(overrides?: CallOverrides): Promise<string>;
|
|
181
|
+
|
|
182
|
+
renounceOwnership(overrides?: CallOverrides): Promise<void>;
|
|
183
|
+
|
|
184
|
+
transferOwnership(
|
|
185
|
+
newOwner: string,
|
|
186
|
+
overrides?: CallOverrides
|
|
187
|
+
): Promise<void>;
|
|
188
|
+
|
|
189
|
+
updateRateModel(
|
|
190
|
+
l1Token: string,
|
|
191
|
+
rateModel: string,
|
|
192
|
+
overrides?: CallOverrides
|
|
193
|
+
): Promise<void>;
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
filters: {
|
|
197
|
+
"OwnershipTransferred(address,address)"(
|
|
198
|
+
previousOwner?: string | null,
|
|
199
|
+
newOwner?: string | null
|
|
200
|
+
): OwnershipTransferredEventFilter;
|
|
201
|
+
OwnershipTransferred(
|
|
202
|
+
previousOwner?: string | null,
|
|
203
|
+
newOwner?: string | null
|
|
204
|
+
): OwnershipTransferredEventFilter;
|
|
205
|
+
|
|
206
|
+
"UpdatedRateModel(address,string)"(
|
|
207
|
+
l1Token?: string | null,
|
|
208
|
+
rateModel?: null
|
|
209
|
+
): UpdatedRateModelEventFilter;
|
|
210
|
+
UpdatedRateModel(
|
|
211
|
+
l1Token?: string | null,
|
|
212
|
+
rateModel?: null
|
|
213
|
+
): UpdatedRateModelEventFilter;
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
estimateGas: {
|
|
217
|
+
l1TokenRateModels(
|
|
218
|
+
arg0: string,
|
|
219
|
+
overrides?: CallOverrides
|
|
220
|
+
): Promise<BigNumber>;
|
|
221
|
+
|
|
222
|
+
multicall(
|
|
223
|
+
data: BytesLike[],
|
|
224
|
+
overrides?: PayableOverrides & { from?: string | Promise<string> }
|
|
225
|
+
): Promise<BigNumber>;
|
|
226
|
+
|
|
227
|
+
owner(overrides?: CallOverrides): Promise<BigNumber>;
|
|
228
|
+
|
|
229
|
+
renounceOwnership(
|
|
230
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
231
|
+
): Promise<BigNumber>;
|
|
232
|
+
|
|
233
|
+
transferOwnership(
|
|
234
|
+
newOwner: string,
|
|
235
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
236
|
+
): Promise<BigNumber>;
|
|
237
|
+
|
|
238
|
+
updateRateModel(
|
|
239
|
+
l1Token: string,
|
|
240
|
+
rateModel: string,
|
|
241
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
242
|
+
): Promise<BigNumber>;
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
populateTransaction: {
|
|
246
|
+
l1TokenRateModels(
|
|
247
|
+
arg0: string,
|
|
248
|
+
overrides?: CallOverrides
|
|
249
|
+
): Promise<PopulatedTransaction>;
|
|
250
|
+
|
|
251
|
+
multicall(
|
|
252
|
+
data: BytesLike[],
|
|
253
|
+
overrides?: PayableOverrides & { from?: string | Promise<string> }
|
|
254
|
+
): Promise<PopulatedTransaction>;
|
|
255
|
+
|
|
256
|
+
owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
257
|
+
|
|
258
|
+
renounceOwnership(
|
|
259
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
260
|
+
): Promise<PopulatedTransaction>;
|
|
261
|
+
|
|
262
|
+
transferOwnership(
|
|
263
|
+
newOwner: string,
|
|
264
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
265
|
+
): Promise<PopulatedTransaction>;
|
|
266
|
+
|
|
267
|
+
updateRateModel(
|
|
268
|
+
l1Token: string,
|
|
269
|
+
rateModel: string,
|
|
270
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
271
|
+
): Promise<PopulatedTransaction>;
|
|
272
|
+
};
|
|
273
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
|
|
5
|
+
import { Provider, TransactionRequest } from "@ethersproject/providers";
|
|
6
|
+
import type {
|
|
7
|
+
RateModelStore,
|
|
8
|
+
RateModelStoreInterface,
|
|
9
|
+
} from "../RateModelStore";
|
|
10
|
+
|
|
11
|
+
const _abi = [
|
|
12
|
+
{
|
|
13
|
+
anonymous: false,
|
|
14
|
+
inputs: [
|
|
15
|
+
{
|
|
16
|
+
indexed: true,
|
|
17
|
+
internalType: "address",
|
|
18
|
+
name: "previousOwner",
|
|
19
|
+
type: "address",
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
indexed: true,
|
|
23
|
+
internalType: "address",
|
|
24
|
+
name: "newOwner",
|
|
25
|
+
type: "address",
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
name: "OwnershipTransferred",
|
|
29
|
+
type: "event",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
anonymous: false,
|
|
33
|
+
inputs: [
|
|
34
|
+
{
|
|
35
|
+
indexed: true,
|
|
36
|
+
internalType: "address",
|
|
37
|
+
name: "l1Token",
|
|
38
|
+
type: "address",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
indexed: false,
|
|
42
|
+
internalType: "string",
|
|
43
|
+
name: "rateModel",
|
|
44
|
+
type: "string",
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
name: "UpdatedRateModel",
|
|
48
|
+
type: "event",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
inputs: [
|
|
52
|
+
{
|
|
53
|
+
internalType: "address",
|
|
54
|
+
name: "",
|
|
55
|
+
type: "address",
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
name: "l1TokenRateModels",
|
|
59
|
+
outputs: [
|
|
60
|
+
{
|
|
61
|
+
internalType: "string",
|
|
62
|
+
name: "",
|
|
63
|
+
type: "string",
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
stateMutability: "view",
|
|
67
|
+
type: "function",
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
inputs: [
|
|
71
|
+
{
|
|
72
|
+
internalType: "bytes[]",
|
|
73
|
+
name: "data",
|
|
74
|
+
type: "bytes[]",
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
name: "multicall",
|
|
78
|
+
outputs: [
|
|
79
|
+
{
|
|
80
|
+
internalType: "bytes[]",
|
|
81
|
+
name: "results",
|
|
82
|
+
type: "bytes[]",
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
stateMutability: "payable",
|
|
86
|
+
type: "function",
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
inputs: [],
|
|
90
|
+
name: "owner",
|
|
91
|
+
outputs: [
|
|
92
|
+
{
|
|
93
|
+
internalType: "address",
|
|
94
|
+
name: "",
|
|
95
|
+
type: "address",
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
stateMutability: "view",
|
|
99
|
+
type: "function",
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
inputs: [],
|
|
103
|
+
name: "renounceOwnership",
|
|
104
|
+
outputs: [],
|
|
105
|
+
stateMutability: "nonpayable",
|
|
106
|
+
type: "function",
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
inputs: [
|
|
110
|
+
{
|
|
111
|
+
internalType: "address",
|
|
112
|
+
name: "newOwner",
|
|
113
|
+
type: "address",
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
name: "transferOwnership",
|
|
117
|
+
outputs: [],
|
|
118
|
+
stateMutability: "nonpayable",
|
|
119
|
+
type: "function",
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
inputs: [
|
|
123
|
+
{
|
|
124
|
+
internalType: "address",
|
|
125
|
+
name: "l1Token",
|
|
126
|
+
type: "address",
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
internalType: "string",
|
|
130
|
+
name: "rateModel",
|
|
131
|
+
type: "string",
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
name: "updateRateModel",
|
|
135
|
+
outputs: [],
|
|
136
|
+
stateMutability: "nonpayable",
|
|
137
|
+
type: "function",
|
|
138
|
+
},
|
|
139
|
+
];
|
|
140
|
+
|
|
141
|
+
const _bytecode =
|
|
142
|
+
"0x608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610d37806100616000396000f3fe6080604052600436106100655760003560e01c80638da5cb5b116100435780638da5cb5b146100d7578063ac9650d81461010c578063f2fde38b1461012c57600080fd5b80630be5512b1461006a578063715018a61461008c57806374cc3f3e146100a1575b600080fd5b34801561007657600080fd5b5061008a6100853660046108f6565b61014c565b005b34801561009857600080fd5b5061008a61025b565b3480156100ad57600080fd5b506100c16100bc366004610987565b61034b565b6040516100ce9190610a23565b60405180910390f35b3480156100e357600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ce565b61011f61011a366004610a36565b6103e5565b6040516100ce9190610aab565b34801561013857600080fd5b5061008a610147366004610987565b6105bf565b60005473ffffffffffffffffffffffffffffffffffffffff1633146101d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160209081526040909120825161020892840190610770565b508173ffffffffffffffffffffffffffffffffffffffff167fffbed0e73ca0e16b79488dd92e2cea865dd04b08d41dd27f05abbad9584581388260405161024f9190610a23565b60405180910390a25050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101c9565b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6001602052600090815260409020805461036490610b2b565b80601f016020809104026020016040519081016040528092919081815260200182805461039090610b2b565b80156103dd5780601f106103b2576101008083540402835291602001916103dd565b820191906000526020600020905b8154815290600101906020018083116103c057829003601f168201915b505050505081565b6060341561044f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4f6e6c79206d756c746963616c6c207769746820302076616c7565000000000060448201526064016101c9565b8167ffffffffffffffff81111561046857610468610832565b60405190808252806020026020018201604052801561049b57816020015b60608152602001906001900390816104865790505b50905060005b828110156105b857600080308686858181106104bf576104bf610b7f565b90506020028101906104d19190610bae565b6040516104df929190610c1a565b600060405180830381855af49150503d806000811461051a576040519150601f19603f3d011682016040523d82523d6000602084013e61051f565b606091505b5091509150816105855760448151101561053857600080fd5b600481019050808060200190518101906105529190610c2a565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101c99190610a23565b8084848151811061059857610598610b7f565b6020026020010181905250505080806105b090610ca1565b9150506104a1565b5092915050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101c9565b73ffffffffffffffffffffffffffffffffffffffff81166106e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101c9565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b82805461077c90610b2b565b90600052602060002090601f01602090048101928261079e57600085556107e4565b82601f106107b757805160ff19168380011785556107e4565b828001600101855582156107e4579182015b828111156107e45782518255916020019190600101906107c9565b506107f09291506107f4565b5090565b5b808211156107f057600081556001016107f5565b803573ffffffffffffffffffffffffffffffffffffffff8116811461082d57600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156108a8576108a8610832565b604052919050565b600067ffffffffffffffff8211156108ca576108ca610832565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6000806040838503121561090957600080fd5b61091283610809565b9150602083013567ffffffffffffffff81111561092e57600080fd5b8301601f8101851361093f57600080fd5b803561095261094d826108b0565b610861565b81815286602083850101111561096757600080fd5b816020840160208301376000602083830101528093505050509250929050565b60006020828403121561099957600080fd5b6109a282610809565b9392505050565b60005b838110156109c45781810151838201526020016109ac565b838111156109d3576000848401525b50505050565b600081518084526109f18160208601602086016109a9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006109a260208301846109d9565b60008060208385031215610a4957600080fd5b823567ffffffffffffffff80821115610a6157600080fd5b818501915085601f830112610a7557600080fd5b813581811115610a8457600080fd5b8660208260051b8501011115610a9957600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015610b1e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452610b0c8583516109d9565b94509285019290850190600101610ad2565b5092979650505050505050565b600181811c90821680610b3f57607f821691505b60208210811415610b79577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610be357600080fd5b83018035915067ffffffffffffffff821115610bfe57600080fd5b602001915036819003821315610c1357600080fd5b9250929050565b8183823760009101908152919050565b600060208284031215610c3c57600080fd5b815167ffffffffffffffff811115610c5357600080fd5b8201601f81018413610c6457600080fd5b8051610c7261094d826108b0565b818152856020838501011115610c8757600080fd5b610c988260208301602086016109a9565b95945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610cfa577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b506001019056fea264697066735822122090dbfcb878b9d9a38a4df23721dfef55201e4816fd2bf5b2e3156e8411c025a064736f6c63430008090033";
|
|
143
|
+
|
|
144
|
+
type RateModelStoreConstructorParams =
|
|
145
|
+
| [signer?: Signer]
|
|
146
|
+
| ConstructorParameters<typeof ContractFactory>;
|
|
147
|
+
|
|
148
|
+
const isSuperArgs = (
|
|
149
|
+
xs: RateModelStoreConstructorParams
|
|
150
|
+
): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
|
|
151
|
+
|
|
152
|
+
export class RateModelStore__factory extends ContractFactory {
|
|
153
|
+
constructor(...args: RateModelStoreConstructorParams) {
|
|
154
|
+
if (isSuperArgs(args)) {
|
|
155
|
+
super(...args);
|
|
156
|
+
} else {
|
|
157
|
+
super(_abi, _bytecode, args[0]);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
deploy(
|
|
162
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
163
|
+
): Promise<RateModelStore> {
|
|
164
|
+
return super.deploy(overrides || {}) as Promise<RateModelStore>;
|
|
165
|
+
}
|
|
166
|
+
getDeployTransaction(
|
|
167
|
+
overrides?: Overrides & { from?: string | Promise<string> }
|
|
168
|
+
): TransactionRequest {
|
|
169
|
+
return super.getDeployTransaction(overrides || {});
|
|
170
|
+
}
|
|
171
|
+
attach(address: string): RateModelStore {
|
|
172
|
+
return super.attach(address) as RateModelStore;
|
|
173
|
+
}
|
|
174
|
+
connect(signer: Signer): RateModelStore__factory {
|
|
175
|
+
return super.connect(signer) as RateModelStore__factory;
|
|
176
|
+
}
|
|
177
|
+
static readonly bytecode = _bytecode;
|
|
178
|
+
static readonly abi = _abi;
|
|
179
|
+
static createInterface(): RateModelStoreInterface {
|
|
180
|
+
return new utils.Interface(_abi) as RateModelStoreInterface;
|
|
181
|
+
}
|
|
182
|
+
static connect(
|
|
183
|
+
address: string,
|
|
184
|
+
signerOrProvider: Signer | Provider
|
|
185
|
+
): RateModelStore {
|
|
186
|
+
return new Contract(address, _abi, signerOrProvider) as RateModelStore;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
@@ -300,6 +300,10 @@ declare module "hardhat/types/runtime" {
|
|
|
300
300
|
name: "OVMOETHBridgeDepositBox",
|
|
301
301
|
signerOrOptions?: ethers.Signer | FactoryOptions
|
|
302
302
|
): Promise<Contracts.OVMOETHBridgeDepositBox__factory>;
|
|
303
|
+
getContractFactory(
|
|
304
|
+
name: "RateModelStore",
|
|
305
|
+
signerOrOptions?: ethers.Signer | FactoryOptions
|
|
306
|
+
): Promise<Contracts.RateModelStore__factory>;
|
|
303
307
|
getContractFactory(
|
|
304
308
|
name: "ArbitrumBridgeMock",
|
|
305
309
|
signerOrOptions?: ethers.Signer | FactoryOptions
|
|
@@ -713,6 +717,11 @@ declare module "hardhat/types/runtime" {
|
|
|
713
717
|
address: string,
|
|
714
718
|
signer?: ethers.Signer
|
|
715
719
|
): Promise<Contracts.OVMOETHBridgeDepositBox>;
|
|
720
|
+
getContractAt(
|
|
721
|
+
name: "RateModelStore",
|
|
722
|
+
address: string,
|
|
723
|
+
signer?: ethers.Signer
|
|
724
|
+
): Promise<Contracts.RateModelStore>;
|
|
716
725
|
getContractAt(
|
|
717
726
|
name: "ArbitrumBridgeMock",
|
|
718
727
|
address: string,
|
|
@@ -61,6 +61,7 @@ export type { OptimismMessenger } from "./OptimismMessenger";
|
|
|
61
61
|
export type { OptimismWrapper } from "./OptimismWrapper";
|
|
62
62
|
export type { OVMBridgeDepositBox } from "./OVMBridgeDepositBox";
|
|
63
63
|
export type { OVMOETHBridgeDepositBox } from "./OVMOETHBridgeDepositBox";
|
|
64
|
+
export type { RateModelStore } from "./RateModelStore";
|
|
64
65
|
export type { ArbitrumBridgeMock } from "./ArbitrumBridgeMock";
|
|
65
66
|
export type { ArbitrumInboxMock } from "./ArbitrumInboxMock";
|
|
66
67
|
export type { ArbitrumOutboxMock } from "./ArbitrumOutboxMock";
|
|
@@ -135,6 +136,7 @@ export { OptimismMessenger__factory } from "./factories/OptimismMessenger__facto
|
|
|
135
136
|
export { OptimismWrapper__factory } from "./factories/OptimismWrapper__factory";
|
|
136
137
|
export { OVMBridgeDepositBox__factory } from "./factories/OVMBridgeDepositBox__factory";
|
|
137
138
|
export { OVMOETHBridgeDepositBox__factory } from "./factories/OVMOETHBridgeDepositBox__factory";
|
|
139
|
+
export { RateModelStore__factory } from "./factories/RateModelStore__factory";
|
|
138
140
|
export { ArbitrumBridgeMock__factory } from "./factories/ArbitrumBridgeMock__factory";
|
|
139
141
|
export { ArbitrumInboxMock__factory } from "./factories/ArbitrumInboxMock__factory";
|
|
140
142
|
export { ArbitrumOutboxMock__factory } from "./factories/ArbitrumOutboxMock__factory";
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
|
|
5
|
+
import BN from "bn.js";
|
|
6
|
+
import { ContractOptions } from "web3-eth-contract";
|
|
7
|
+
import { EventLog } from "web3-core";
|
|
8
|
+
import { EventEmitter } from "events";
|
|
9
|
+
import {
|
|
10
|
+
Callback,
|
|
11
|
+
PayableTransactionObject,
|
|
12
|
+
NonPayableTransactionObject,
|
|
13
|
+
BlockType,
|
|
14
|
+
ContractEventLog,
|
|
15
|
+
BaseContract,
|
|
16
|
+
} from "./types";
|
|
17
|
+
|
|
18
|
+
export interface EventOptions {
|
|
19
|
+
filter?: object;
|
|
20
|
+
fromBlock?: BlockType;
|
|
21
|
+
topics?: string[];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export type OwnershipTransferred = ContractEventLog<{
|
|
25
|
+
previousOwner: string;
|
|
26
|
+
newOwner: string;
|
|
27
|
+
0: string;
|
|
28
|
+
1: string;
|
|
29
|
+
}>;
|
|
30
|
+
export type UpdatedRateModel = ContractEventLog<{
|
|
31
|
+
l1Token: string;
|
|
32
|
+
rateModel: string;
|
|
33
|
+
0: string;
|
|
34
|
+
1: string;
|
|
35
|
+
}>;
|
|
36
|
+
|
|
37
|
+
export interface RateModelStore extends BaseContract {
|
|
38
|
+
constructor(
|
|
39
|
+
jsonInterface: any[],
|
|
40
|
+
address?: string,
|
|
41
|
+
options?: ContractOptions
|
|
42
|
+
): RateModelStore;
|
|
43
|
+
clone(): RateModelStore;
|
|
44
|
+
methods: {
|
|
45
|
+
l1TokenRateModels(arg0: string): NonPayableTransactionObject<string>;
|
|
46
|
+
|
|
47
|
+
multicall(data: (string | number[])[]): PayableTransactionObject<string[]>;
|
|
48
|
+
|
|
49
|
+
owner(): NonPayableTransactionObject<string>;
|
|
50
|
+
|
|
51
|
+
renounceOwnership(): NonPayableTransactionObject<void>;
|
|
52
|
+
|
|
53
|
+
transferOwnership(newOwner: string): NonPayableTransactionObject<void>;
|
|
54
|
+
|
|
55
|
+
updateRateModel(
|
|
56
|
+
l1Token: string,
|
|
57
|
+
rateModel: string
|
|
58
|
+
): NonPayableTransactionObject<void>;
|
|
59
|
+
};
|
|
60
|
+
events: {
|
|
61
|
+
OwnershipTransferred(cb?: Callback<OwnershipTransferred>): EventEmitter;
|
|
62
|
+
OwnershipTransferred(
|
|
63
|
+
options?: EventOptions,
|
|
64
|
+
cb?: Callback<OwnershipTransferred>
|
|
65
|
+
): EventEmitter;
|
|
66
|
+
|
|
67
|
+
UpdatedRateModel(cb?: Callback<UpdatedRateModel>): EventEmitter;
|
|
68
|
+
UpdatedRateModel(
|
|
69
|
+
options?: EventOptions,
|
|
70
|
+
cb?: Callback<UpdatedRateModel>
|
|
71
|
+
): EventEmitter;
|
|
72
|
+
|
|
73
|
+
allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
once(event: "OwnershipTransferred", cb: Callback<OwnershipTransferred>): void;
|
|
77
|
+
once(
|
|
78
|
+
event: "OwnershipTransferred",
|
|
79
|
+
options: EventOptions,
|
|
80
|
+
cb: Callback<OwnershipTransferred>
|
|
81
|
+
): void;
|
|
82
|
+
|
|
83
|
+
once(event: "UpdatedRateModel", cb: Callback<UpdatedRateModel>): void;
|
|
84
|
+
once(
|
|
85
|
+
event: "UpdatedRateModel",
|
|
86
|
+
options: EventOptions,
|
|
87
|
+
cb: Callback<UpdatedRateModel>
|
|
88
|
+
): void;
|
|
89
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// SPDX-License-Identifier: AGPL-3.0-only
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
import "@openzeppelin/contracts/access/Ownable.sol";
|
|
5
|
+
import "../common/implementation/MultiCaller.sol";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @title Maps rate model objects to L1 token.
|
|
9
|
+
* @dev This contract is designed to be queried by off-chain relayers that need to compute realized LP fee %'s before
|
|
10
|
+
* submitting relay transactions to a BridgePool contract. Therefore, this contract does not perform any validation on
|
|
11
|
+
* the shape of the rate model, which is stored as a string to enable arbitrary data encoding via a stringified JSON
|
|
12
|
+
* object. This leaves this contract unopionated on the parameters within the rate model, enabling governance to adjust
|
|
13
|
+
* the structure in the future.
|
|
14
|
+
*/
|
|
15
|
+
contract RateModelStore is Ownable, MultiCaller {
|
|
16
|
+
mapping(address => string) public l1TokenRateModels;
|
|
17
|
+
|
|
18
|
+
event UpdatedRateModel(address indexed l1Token, string rateModel);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @notice Updates rate model string for L1 token.
|
|
22
|
+
* @param l1Token the l1 token rate model to update.
|
|
23
|
+
* @param rateModel the updated rate model.
|
|
24
|
+
*/
|
|
25
|
+
function updateRateModel(address l1Token, string memory rateModel) external onlyOwner {
|
|
26
|
+
l1TokenRateModels[l1Token] = rateModel;
|
|
27
|
+
emit UpdatedRateModel(l1Token, rateModel);
|
|
28
|
+
}
|
|
29
|
+
}
|
package/networks/1.json
CHANGED
|
@@ -4,20 +4,30 @@
|
|
|
4
4
|
"address": "0x30B44C676A05F1264d1dE9cC31dB5F2A945186b6"
|
|
5
5
|
},
|
|
6
6
|
{
|
|
7
|
-
"contractName": "
|
|
8
|
-
"deploymentName": "
|
|
7
|
+
"contractName": "BridgePoolProd",
|
|
8
|
+
"deploymentName": "WETH_BridgePool",
|
|
9
9
|
"address": "0x7355Efc63Ae731f584380a9838292c7046c1e433"
|
|
10
10
|
},
|
|
11
11
|
{
|
|
12
|
-
"contractName": "
|
|
13
|
-
"deploymentName": "
|
|
12
|
+
"contractName": "BridgePoolProd",
|
|
13
|
+
"deploymentName": "USDC_BridgePool",
|
|
14
14
|
"address": "0x256C8919CE1AB0e33974CF6AA9c71561Ef3017b6"
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
|
-
"contractName": "
|
|
18
|
-
"deploymentName": "
|
|
17
|
+
"contractName": "BridgePoolProd",
|
|
18
|
+
"deploymentName": "UMA_BridgePool",
|
|
19
19
|
"address": "0xdfe0ec39291e3b60ACa122908f86809c9eE64E90"
|
|
20
20
|
},
|
|
21
|
+
{
|
|
22
|
+
"contractName": "BridgePoolProd",
|
|
23
|
+
"deploymentName": "BADGER_BridgePool",
|
|
24
|
+
"address": "0x43298F9f91a4545dF64748e78a2c777c580573d6"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"contractName": "BridgePoolProd",
|
|
28
|
+
"deploymentName": "WBTC_BridgePool",
|
|
29
|
+
"address": "0x02fbb64517E1c6ED69a6FAa3ABf37Db0482f1152"
|
|
30
|
+
},
|
|
21
31
|
{
|
|
22
32
|
"contractName": "Arbitrum_Messenger",
|
|
23
33
|
"address": "0x0D8563d3B8b3Fec542aaE50a530C606DAc4D1c4F"
|
|
@@ -29,5 +39,9 @@
|
|
|
29
39
|
{
|
|
30
40
|
"contractName": "Optimism_Wrapper",
|
|
31
41
|
"address": "0xcFfB47DC5Bd4f6Dc475E98fF92647a583389Ee08"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"contractName": "RateModelStore",
|
|
45
|
+
"address": "0xd18fFeb5fdd1F2e122251eA7Bf357D8Af0B60B50"
|
|
32
46
|
}
|
|
33
47
|
]
|