@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.
Files changed (88) hide show
  1. package/artifacts/@eth-optimism/contracts/L2/messaging/IL2ERC20Bridge.sol/IL2ERC20Bridge.dbg.json +1 -1
  2. package/artifacts/@eth-optimism/contracts/libraries/bridge/CrossDomainEnabled.sol/CrossDomainEnabled.dbg.json +1 -1
  3. package/artifacts/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol/ICrossDomainMessenger.dbg.json +1 -1
  4. package/artifacts/@eth-optimism/contracts/libraries/constants/Lib_PredeployAddresses.sol/Lib_PredeployAddresses.dbg.json +1 -1
  5. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +1 -1
  6. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/IAccessControl.dbg.json +1 -1
  7. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +1 -1
  8. package/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.dbg.json +1 -1
  9. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +1 -1
  10. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +1 -1
  11. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +1 -1
  12. package/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +1 -1
  13. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +1 -1
  14. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +1 -1
  15. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +1 -1
  16. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +1 -1
  17. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +1 -1
  18. package/artifacts/@openzeppelin/contracts/utils/math/SafeMath.sol/SafeMath.dbg.json +1 -1
  19. package/artifacts/@openzeppelin/contracts/utils/math/SignedSafeMath.sol/SignedSafeMath.dbg.json +1 -1
  20. package/artifacts/@uma/core/contracts/common/implementation/Lockable.sol/Lockable.dbg.json +1 -1
  21. package/artifacts/@uma/core/contracts/cross-chain-oracle/chain-adapters/Arbitrum_ParentMessenger.sol/Arbitrum_ParentMessenger.dbg.json +1 -1
  22. package/artifacts/@uma/core/contracts/cross-chain-oracle/chain-adapters/ParentMessengerBase.sol/ParentMessengerBase.dbg.json +1 -1
  23. package/artifacts/@uma/core/contracts/cross-chain-oracle/interfaces/ParentMessengerConsumerInterface.sol/ParentMessengerConsumerInterface.dbg.json +1 -1
  24. package/artifacts/@uma/core/contracts/cross-chain-oracle/interfaces/ParentMessengerInterface.sol/ParentMessengerInterface.dbg.json +1 -1
  25. package/artifacts/@uma/core/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/IBridge.dbg.json +1 -1
  26. package/artifacts/@uma/core/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/iArbitrum_Inbox.dbg.json +1 -1
  27. package/artifacts/@uma/core/contracts/external/avm/interfaces/iArbitrum_Outbox.sol/iArbitrum_Outbox.dbg.json +1 -1
  28. package/artifacts/@uma/core/contracts/insured-bridge/avm/Arbitrum_CrossDomainEnabled.sol/Arbitrum_CrossDomainEnabled.dbg.json +1 -1
  29. package/artifacts/build-info/{8e408b49e0ff2873bc28d45221a7ff71.json → f2b62dec2c0d8560303f22503f4c08c4.json} +34080 -27473
  30. package/artifacts/contracts/common/implementation/AncillaryData.sol/AncillaryData.dbg.json +1 -1
  31. package/artifacts/contracts/common/implementation/FixedPoint.sol/FixedPoint.dbg.json +1 -1
  32. package/artifacts/contracts/common/implementation/Lockable.sol/Lockable.dbg.json +1 -1
  33. package/artifacts/contracts/common/implementation/MultiCaller.sol/MultiCaller.dbg.json +1 -1
  34. package/artifacts/contracts/common/implementation/Testable.sol/Testable.dbg.json +1 -1
  35. package/artifacts/contracts/common/implementation/Timer.sol/Timer.dbg.json +1 -1
  36. package/artifacts/contracts/common/interfaces/AddressWhitelistInterface.sol/AddressWhitelistInterface.dbg.json +1 -1
  37. package/artifacts/contracts/external/avm/AVM_CrossDomainEnabled.sol/AVM_CrossDomainEnabled.dbg.json +1 -1
  38. package/artifacts/contracts/external/avm/interfaces/ArbSys.sol/ArbSys.dbg.json +1 -1
  39. package/artifacts/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/IBridge.dbg.json +1 -1
  40. package/artifacts/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/iArbitrum_Inbox.dbg.json +1 -1
  41. package/artifacts/contracts/external/avm/interfaces/iArbitrum_Outbox.sol/iArbitrum_Outbox.dbg.json +1 -1
  42. package/artifacts/contracts/external/chainbridge/Bridge.sol/Bridge.dbg.json +1 -1
  43. package/artifacts/contracts/external/chainbridge/handlers/GenericHandler.sol/GenericHandler.dbg.json +1 -1
  44. package/artifacts/contracts/external/chainbridge/interfaces/IBridge.sol/IBridge.dbg.json +1 -1
  45. package/artifacts/contracts/external/chainbridge/interfaces/IDepositExecute.sol/IDepositExecute.dbg.json +1 -1
  46. package/artifacts/contracts/external/chainbridge/interfaces/IERCHandler.sol/IERCHandler.dbg.json +1 -1
  47. package/artifacts/contracts/external/chainbridge/interfaces/IGenericHandler.sol/IGenericHandler.dbg.json +1 -1
  48. package/artifacts/contracts/insured-bridge/BridgeAdmin.sol/BridgeAdmin.dbg.json +1 -1
  49. package/artifacts/contracts/insured-bridge/BridgeDepositBox.sol/BridgeDepositBox.dbg.json +1 -1
  50. package/artifacts/contracts/insured-bridge/BridgeDepositBox.sol/TokenLike.dbg.json +1 -1
  51. package/artifacts/contracts/insured-bridge/BridgeDepositBox.sol/WETH9Like.dbg.json +1 -1
  52. package/artifacts/contracts/insured-bridge/RateModelStore.sol/RateModelStore.dbg.json +4 -0
  53. package/artifacts/contracts/insured-bridge/RateModelStore.sol/RateModelStore.json +138 -0
  54. package/artifacts/contracts/insured-bridge/avm/AVM_BridgeDepositBox.sol/AVM_BridgeDepositBox.dbg.json +1 -1
  55. package/artifacts/contracts/insured-bridge/avm/AVM_BridgeDepositBox.sol/StandardBridgeLike.dbg.json +1 -1
  56. package/artifacts/contracts/insured-bridge/avm/Arbitrum_CrossDomainEnabled.sol/Arbitrum_CrossDomainEnabled.dbg.json +1 -1
  57. package/artifacts/contracts/insured-bridge/avm/Arbitrum_Messenger.sol/Arbitrum_Messenger.dbg.json +1 -1
  58. package/artifacts/contracts/insured-bridge/interfaces/BridgeAdminInterface.sol/BridgeAdminInterface.dbg.json +1 -1
  59. package/artifacts/contracts/insured-bridge/interfaces/BridgePoolInterface.sol/BridgePoolInterface.dbg.json +1 -1
  60. package/artifacts/contracts/insured-bridge/interfaces/MessengerInterface.sol/MessengerInterface.dbg.json +1 -1
  61. package/artifacts/contracts/insured-bridge/ovm/OVM_BridgeDepositBox.sol/OVM_BridgeDepositBox.dbg.json +1 -1
  62. package/artifacts/contracts/insured-bridge/ovm/OVM_OETH_BridgeDepositBox.sol/OVM_OETH_BridgeDepositBox.dbg.json +1 -1
  63. package/artifacts/contracts/insured-bridge/ovm/Optimism_Messenger.sol/Optimism_Messenger.dbg.json +1 -1
  64. package/artifacts/contracts/insured-bridge/ovm/Optimism_Wrapper.sol/Optimism_Wrapper.dbg.json +1 -1
  65. package/artifacts/contracts/insured-bridge/ovm/Optimism_Wrapper.sol/WETH9Like.dbg.json +1 -1
  66. package/artifacts/contracts/insured-bridge/test/Arbitrum_InboxMock.sol/Arbitrum_BridgeMock.dbg.json +1 -1
  67. package/artifacts/contracts/insured-bridge/test/Arbitrum_InboxMock.sol/Arbitrum_InboxMock.dbg.json +1 -1
  68. package/artifacts/contracts/insured-bridge/test/Arbitrum_InboxMock.sol/Arbitrum_OutboxMock.dbg.json +1 -1
  69. package/artifacts/contracts/insured-bridge/test/BridgeDepositBoxMock.sol/BridgeDepositBoxMock.dbg.json +1 -1
  70. package/artifacts/contracts/insured-bridge/test/MessengerMock.sol/MessengerMock.dbg.json +1 -1
  71. package/artifacts/contracts/insured-bridge/test/OVM_L1CrossDomainMessengerMock.sol/OVM_L1CrossDomainMessengerMock.dbg.json +1 -1
  72. package/artifacts/contracts/oracle/implementation/Constants.sol/OptimisticOracleConstraints.dbg.json +1 -1
  73. package/artifacts/contracts/oracle/implementation/Constants.sol/OracleInterfaces.dbg.json +1 -1
  74. package/artifacts/contracts/oracle/interfaces/FinderInterface.sol/FinderInterface.dbg.json +1 -1
  75. package/artifacts/contracts/oracle/interfaces/IdentifierWhitelistInterface.sol/IdentifierWhitelistInterface.dbg.json +1 -1
  76. package/artifacts/contracts/oracle/interfaces/OptimisticOracleInterface.sol/OptimisticOracleInterface.dbg.json +1 -1
  77. package/artifacts/contracts/oracle/interfaces/SkinnyOptimisticOracleInterface.sol/SkinnyOptimisticOracleInterface.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/interfaces/StoreInterface.sol/StoreInterface.dbg.json +1 -1
  79. package/build/artifacts.json +4 -0
  80. package/contract-types/ethers/RateModelStore.ts +273 -0
  81. package/contract-types/ethers/factories/RateModelStore__factory.ts +188 -0
  82. package/contract-types/ethers/hardhat.d.ts +9 -0
  83. package/contract-types/ethers/index.ts +2 -0
  84. package/contract-types/web3/RateModelStore.ts +89 -0
  85. package/contracts/insured-bridge/RateModelStore.sol +29 -0
  86. package/networks/1.json +20 -6
  87. package/networks/288.json +6 -0
  88. 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": "BridgePool",
8
- "deploymentName": "WETHBridgePool",
7
+ "contractName": "BridgePoolProd",
8
+ "deploymentName": "WETH_BridgePool",
9
9
  "address": "0x7355Efc63Ae731f584380a9838292c7046c1e433"
10
10
  },
11
11
  {
12
- "contractName": "BridgePool",
13
- "deploymentName": "USDCBridgePool",
12
+ "contractName": "BridgePoolProd",
13
+ "deploymentName": "USDC_BridgePool",
14
14
  "address": "0x256C8919CE1AB0e33974CF6AA9c71561Ef3017b6"
15
15
  },
16
16
  {
17
- "contractName": "BridgePool",
18
- "deploymentName": "UMABridgePool",
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
  ]
@@ -0,0 +1,6 @@
1
+ [
2
+ {
3
+ "contractName": "OVM_OETH_BridgeDepositBox",
4
+ "address": "0xCD43CEa89DF8fE39031C03c24BC24480e942470B"
5
+ }
6
+ ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@across-protocol/contracts",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Across smart contracts and tests",
5
5
  "dependencies": {
6
6
  "@eth-optimism/contracts": "^0.5.5",