@hyperlane-xyz/multicollateral 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/LICENSE.md +193 -0
  2. package/contracts/MultiCollateral.sol +349 -0
  3. package/contracts/MultiCollateralRoutingFee.sol +129 -0
  4. package/contracts/interfaces/IMultiCollateralFee.sol +13 -0
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +2 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/typechain/MultiCollateral.d.ts +1195 -0
  10. package/dist/typechain/MultiCollateral.d.ts.map +1 -0
  11. package/dist/typechain/MultiCollateral.js +2 -0
  12. package/dist/typechain/MultiCollateral.js.map +1 -0
  13. package/dist/typechain/MultiCollateralRoutingFee.d.ts +179 -0
  14. package/dist/typechain/MultiCollateralRoutingFee.d.ts.map +1 -0
  15. package/dist/typechain/MultiCollateralRoutingFee.js +2 -0
  16. package/dist/typechain/MultiCollateralRoutingFee.js.map +1 -0
  17. package/dist/typechain/common.d.ts +22 -0
  18. package/dist/typechain/common.d.ts.map +1 -0
  19. package/dist/typechain/common.js +2 -0
  20. package/dist/typechain/common.js.map +1 -0
  21. package/dist/typechain/factories/MultiCollateralRoutingFee__factory.d.ts +216 -0
  22. package/dist/typechain/factories/MultiCollateralRoutingFee__factory.d.ts.map +1 -0
  23. package/dist/typechain/factories/MultiCollateralRoutingFee__factory.js +292 -0
  24. package/dist/typechain/factories/MultiCollateralRoutingFee__factory.js.map +1 -0
  25. package/dist/typechain/factories/MultiCollateral__factory.d.ts +1413 -0
  26. package/dist/typechain/factories/MultiCollateral__factory.d.ts.map +1 -0
  27. package/dist/typechain/factories/MultiCollateral__factory.js +1855 -0
  28. package/dist/typechain/factories/MultiCollateral__factory.js.map +1 -0
  29. package/dist/typechain/factories/index.d.ts +3 -0
  30. package/dist/typechain/factories/index.d.ts.map +1 -0
  31. package/dist/typechain/factories/index.js +6 -0
  32. package/dist/typechain/factories/index.js.map +1 -0
  33. package/dist/typechain/index.d.ts +6 -0
  34. package/dist/typechain/index.d.ts.map +1 -0
  35. package/dist/typechain/index.js +4 -0
  36. package/dist/typechain/index.js.map +1 -0
  37. package/package.json +51 -0
@@ -0,0 +1,216 @@
1
+ import { Signer, ContractFactory, Overrides } from "ethers";
2
+ import type { Provider, TransactionRequest } from "@ethersproject/providers";
3
+ import type { MultiCollateralRoutingFee, MultiCollateralRoutingFeeInterface } from "../MultiCollateralRoutingFee.js";
4
+ type MultiCollateralRoutingFeeConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
5
+ export declare class MultiCollateralRoutingFee__factory extends ContractFactory {
6
+ constructor(...args: MultiCollateralRoutingFeeConstructorParams);
7
+ deploy(_owner: string, overrides?: Overrides & {
8
+ from?: string;
9
+ }): Promise<MultiCollateralRoutingFee>;
10
+ getDeployTransaction(_owner: string, overrides?: Overrides & {
11
+ from?: string;
12
+ }): TransactionRequest;
13
+ attach(address: string): MultiCollateralRoutingFee;
14
+ connect(signer: Signer): MultiCollateralRoutingFee__factory;
15
+ static readonly bytecode = "0x608060405234801561001057600080fd5b50604051610f46380380610f4683398101604081905261002f91610097565b61003833610047565b61004181610047565b506100c7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100a957600080fd5b81516001600160a01b03811681146100c057600080fd5b9392505050565b610e70806100d66000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638bd90b82116100665780638bd90b82146100f15780638da5cb5b14610104578063cb896fba14610129578063f2fde38b1461015e578063f7d6fa8c1461017157600080fd5b806321c0b3421461009857806360ed438c146100ad5780636a3a9cbb146100d6578063715018a6146100e9575b600080fd5b6100ab6100a63660046109d6565b6101a5565b005b6100c06100bb366004610a28565b610233565b6040516100cd9190610a61565b60405180910390f35b6100ab6100e4366004610b05565b61024c565b6100ab610435565b6100c06100ff366004610b9f565b610449565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100cd565b6101507f6e086cd647d6eb8b516856666e2c1465fb8a6a58d3a75938362acc674eacaf4781565b6040519081526020016100cd565b6100ab61016c366004610bd2565b610477565b61011161017f366004610bf6565b60016020908152600092835260408084209091529082529020546001600160a01b031681565b6101ad6104f0565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156101f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102189190610c20565b905061022e6001600160a01b038316848361054a565b505050565b60606102418585858561059c565b90505b949350505050565b6102546104f0565b848314801561026257508481145b6102aa5760405162461bcd60e51b815260206004820152601460248201527309a868c7440d8cadccee8d040dad2e6dac2e8c6d60631b60448201526064015b60405180910390fd5b60005b8581101561042c578282828181106102c7576102c7610c39565b90506020020160208101906102dc9190610bd2565b600160008989858181106102f2576102f2610c39565b90506020020160208101906103079190610c4f565b63ffffffff1663ffffffff168152602001908152602001600020600087878581811061033557610335610c39565b90506020020135815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f9cde0142f2d42e09e5f8d4123ccf900cf5ec196706474f6b1c5bbb9f98c30e2d8787838181106103a1576103a1610c39565b90506020020160208101906103b69190610c4f565b8686848181106103c8576103c8610c39565b905060200201358585858181106103e1576103e1610c39565b90506020020160208101906103f69190610bd2565b6040805163ffffffff909416845260208401929092526001600160a01b03169082015260600160405180910390a16001016102ad565b50505050505050565b61043d6104f0565b6104476000610779565b565b60606102448484847f6e086cd647d6eb8b516856666e2c1465fb8a6a58d3a75938362acc674eacaf4761059c565b61047f6104f0565b6001600160a01b0381166104e45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102a1565b6104ed81610779565b50565b6000546001600160a01b031633146104475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102a1565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261022e9084906107c9565b63ffffffff841660009081526001602090815260408083208484529091529020546060906001600160a01b03168015610657576040516345ec85c160e11b815263ffffffff8716600482015260248101869052604481018590526001600160a01b03821690638bd90b8290606401600060405180830381865afa158015610627573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261064f9190810190610cda565b915050610244565b63ffffffff861660009081526001602090815260408083207f6e086cd647d6eb8b516856666e2c1465fb8a6a58d3a75938362acc674eacaf4784529091529020546001600160a01b03168015610730576040516345ec85c160e11b815263ffffffff8816600482015260248101879052604481018690526001600160a01b03821690638bd90b8290606401600060405180830381865afa1580156106ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107279190810190610cda565b92505050610244565b604080516000808252602082019092529061076d565b60408051808201909152600080825260208201528152602001906001900390816107465790505b50979650505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061081e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661089e9092919063ffffffff16565b905080516000148061083f57508080602001905181019061083f9190610da5565b61022e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102a1565b6060610244848460008585600080866001600160a01b031685876040516108c59190610deb565b60006040518083038185875af1925050503d8060008114610902576040519150601f19603f3d011682016040523d82523d6000602084013e610907565b606091505b509150915061091887838387610923565b979650505050505050565b6060831561099257825160000361098b576001600160a01b0385163b61098b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102a1565b5081610244565b61024483838151156109a75781518083602001fd5b8060405162461bcd60e51b81526004016102a19190610e07565b6001600160a01b03811681146104ed57600080fd5b600080604083850312156109e957600080fd5b82356109f4816109c1565b91506020830135610a04816109c1565b809150509250929050565b803563ffffffff81168114610a2357600080fd5b919050565b60008060008060808587031215610a3e57600080fd5b610a4785610a0f565b966020860135965060408601359560600135945092505050565b602080825282518282018190526000919060409081850190868401855b82811015610aac57815180516001600160a01b03168552860151868501529284019290850190600101610a7e565b5091979650505050505050565b60008083601f840112610acb57600080fd5b50813567ffffffffffffffff811115610ae357600080fd5b6020830191508360208260051b8501011115610afe57600080fd5b9250929050565b60008060008060008060608789031215610b1e57600080fd5b863567ffffffffffffffff80821115610b3657600080fd5b610b428a838b01610ab9565b90985096506020890135915080821115610b5b57600080fd5b610b678a838b01610ab9565b90965094506040890135915080821115610b8057600080fd5b50610b8d89828a01610ab9565b979a9699509497509295939492505050565b600080600060608486031215610bb457600080fd5b610bbd84610a0f565b95602085013595506040909401359392505050565b600060208284031215610be457600080fd5b8135610bef816109c1565b9392505050565b60008060408385031215610c0957600080fd5b610c1283610a0f565b946020939093013593505050565b600060208284031215610c3257600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610c6157600080fd5b610bef82610a0f565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610ca357610ca3610c6a565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610cd257610cd2610c6a565b604052919050565b60006020808385031215610ced57600080fd5b825167ffffffffffffffff80821115610d0557600080fd5b818501915085601f830112610d1957600080fd5b815181811115610d2b57610d2b610c6a565b610d39848260051b01610ca9565b818152848101925060069190911b830184019087821115610d5957600080fd5b928401925b818410156109185760408489031215610d775760008081fd5b610d7f610c80565b8451610d8a816109c1565b81528486015186820152835260409093019291840191610d5e565b600060208284031215610db757600080fd5b81518015158114610bef57600080fd5b60005b83811015610de2578181015183820152602001610dca565b50506000910152565b60008251610dfd818460208701610dc7565b9190910192915050565b6020815260008251806020840152610e26816040850160208701610dc7565b601f01601f1916919091016040019291505056fea2646970667358221220de5a1632fa323dae43b47d24dedd4759179d3e7c8a8e6732705f798a9052ccfe64736f6c63430008160033";
16
+ static readonly abi: readonly [{
17
+ readonly type: "constructor";
18
+ readonly inputs: readonly [{
19
+ readonly name: "_owner";
20
+ readonly type: "address";
21
+ readonly internalType: "address";
22
+ }];
23
+ readonly stateMutability: "nonpayable";
24
+ }, {
25
+ readonly type: "function";
26
+ readonly name: "DEFAULT_ROUTER";
27
+ readonly inputs: readonly [];
28
+ readonly outputs: readonly [{
29
+ readonly name: "";
30
+ readonly type: "bytes32";
31
+ readonly internalType: "bytes32";
32
+ }];
33
+ readonly stateMutability: "view";
34
+ }, {
35
+ readonly type: "function";
36
+ readonly name: "claim";
37
+ readonly inputs: readonly [{
38
+ readonly name: "beneficiary";
39
+ readonly type: "address";
40
+ readonly internalType: "address";
41
+ }, {
42
+ readonly name: "token";
43
+ readonly type: "address";
44
+ readonly internalType: "address";
45
+ }];
46
+ readonly outputs: readonly [];
47
+ readonly stateMutability: "nonpayable";
48
+ }, {
49
+ readonly type: "function";
50
+ readonly name: "feeContracts";
51
+ readonly inputs: readonly [{
52
+ readonly name: "dest";
53
+ readonly type: "uint32";
54
+ readonly internalType: "uint32";
55
+ }, {
56
+ readonly name: "targetRouter";
57
+ readonly type: "bytes32";
58
+ readonly internalType: "bytes32";
59
+ }];
60
+ readonly outputs: readonly [{
61
+ readonly name: "feeContract";
62
+ readonly type: "address";
63
+ readonly internalType: "address";
64
+ }];
65
+ readonly stateMutability: "view";
66
+ }, {
67
+ readonly type: "function";
68
+ readonly name: "owner";
69
+ readonly inputs: readonly [];
70
+ readonly outputs: readonly [{
71
+ readonly name: "";
72
+ readonly type: "address";
73
+ readonly internalType: "address";
74
+ }];
75
+ readonly stateMutability: "view";
76
+ }, {
77
+ readonly type: "function";
78
+ readonly name: "quoteTransferRemote";
79
+ readonly inputs: readonly [{
80
+ readonly name: "_destination";
81
+ readonly type: "uint32";
82
+ readonly internalType: "uint32";
83
+ }, {
84
+ readonly name: "_recipient";
85
+ readonly type: "bytes32";
86
+ readonly internalType: "bytes32";
87
+ }, {
88
+ readonly name: "_amount";
89
+ readonly type: "uint256";
90
+ readonly internalType: "uint256";
91
+ }];
92
+ readonly outputs: readonly [{
93
+ readonly name: "";
94
+ readonly type: "tuple[]";
95
+ readonly internalType: "struct Quote[]";
96
+ readonly components: readonly [{
97
+ readonly name: "token";
98
+ readonly type: "address";
99
+ readonly internalType: "address";
100
+ }, {
101
+ readonly name: "amount";
102
+ readonly type: "uint256";
103
+ readonly internalType: "uint256";
104
+ }];
105
+ }];
106
+ readonly stateMutability: "view";
107
+ }, {
108
+ readonly type: "function";
109
+ readonly name: "quoteTransferRemoteTo";
110
+ readonly inputs: readonly [{
111
+ readonly name: "_destination";
112
+ readonly type: "uint32";
113
+ readonly internalType: "uint32";
114
+ }, {
115
+ readonly name: "_recipient";
116
+ readonly type: "bytes32";
117
+ readonly internalType: "bytes32";
118
+ }, {
119
+ readonly name: "_amount";
120
+ readonly type: "uint256";
121
+ readonly internalType: "uint256";
122
+ }, {
123
+ readonly name: "_targetRouter";
124
+ readonly type: "bytes32";
125
+ readonly internalType: "bytes32";
126
+ }];
127
+ readonly outputs: readonly [{
128
+ readonly name: "";
129
+ readonly type: "tuple[]";
130
+ readonly internalType: "struct Quote[]";
131
+ readonly components: readonly [{
132
+ readonly name: "token";
133
+ readonly type: "address";
134
+ readonly internalType: "address";
135
+ }, {
136
+ readonly name: "amount";
137
+ readonly type: "uint256";
138
+ readonly internalType: "uint256";
139
+ }];
140
+ }];
141
+ readonly stateMutability: "view";
142
+ }, {
143
+ readonly type: "function";
144
+ readonly name: "renounceOwnership";
145
+ readonly inputs: readonly [];
146
+ readonly outputs: readonly [];
147
+ readonly stateMutability: "nonpayable";
148
+ }, {
149
+ readonly type: "function";
150
+ readonly name: "setRouterFeeContracts";
151
+ readonly inputs: readonly [{
152
+ readonly name: "destinations";
153
+ readonly type: "uint32[]";
154
+ readonly internalType: "uint32[]";
155
+ }, {
156
+ readonly name: "targetRouters";
157
+ readonly type: "bytes32[]";
158
+ readonly internalType: "bytes32[]";
159
+ }, {
160
+ readonly name: "_feeContracts";
161
+ readonly type: "address[]";
162
+ readonly internalType: "address[]";
163
+ }];
164
+ readonly outputs: readonly [];
165
+ readonly stateMutability: "nonpayable";
166
+ }, {
167
+ readonly type: "function";
168
+ readonly name: "transferOwnership";
169
+ readonly inputs: readonly [{
170
+ readonly name: "newOwner";
171
+ readonly type: "address";
172
+ readonly internalType: "address";
173
+ }];
174
+ readonly outputs: readonly [];
175
+ readonly stateMutability: "nonpayable";
176
+ }, {
177
+ readonly type: "event";
178
+ readonly name: "FeeContractSet";
179
+ readonly inputs: readonly [{
180
+ readonly name: "destination";
181
+ readonly type: "uint32";
182
+ readonly indexed: false;
183
+ readonly internalType: "uint32";
184
+ }, {
185
+ readonly name: "targetRouter";
186
+ readonly type: "bytes32";
187
+ readonly indexed: false;
188
+ readonly internalType: "bytes32";
189
+ }, {
190
+ readonly name: "feeContract";
191
+ readonly type: "address";
192
+ readonly indexed: false;
193
+ readonly internalType: "address";
194
+ }];
195
+ readonly anonymous: false;
196
+ }, {
197
+ readonly type: "event";
198
+ readonly name: "OwnershipTransferred";
199
+ readonly inputs: readonly [{
200
+ readonly name: "previousOwner";
201
+ readonly type: "address";
202
+ readonly indexed: true;
203
+ readonly internalType: "address";
204
+ }, {
205
+ readonly name: "newOwner";
206
+ readonly type: "address";
207
+ readonly indexed: true;
208
+ readonly internalType: "address";
209
+ }];
210
+ readonly anonymous: false;
211
+ }];
212
+ static createInterface(): MultiCollateralRoutingFeeInterface;
213
+ static connect(address: string, signerOrProvider: Signer | Provider): MultiCollateralRoutingFee;
214
+ }
215
+ export {};
216
+ //# sourceMappingURL=MultiCollateralRoutingFee__factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiCollateralRoutingFee__factory.d.ts","sourceRoot":"","sources":["../../../typechain/factories/MultiCollateralRoutingFee__factory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAmB,eAAe,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EACV,yBAAyB,EACzB,kCAAkC,EACnC,MAAM,iCAAiC,CAAC;AAqQzC,KAAK,0CAA0C,GAC3C,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,kCAAmC,SAAQ,eAAe;gBACzD,GAAG,IAAI,EAAE,0CAA0C;IAQtD,MAAM,CACb,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,yBAAyB,CAAC;IAM5B,oBAAoB,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,kBAAkB;IAGZ,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,yBAAyB;IAGlD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,kCAAkC;IAIpE,MAAM,CAAC,QAAQ,CAAC,QAAQ,opPAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,kCAAkC;IAG5D,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,yBAAyB;CAO7B"}
@@ -0,0 +1,292 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import { utils, Contract, ContractFactory } from "ethers";
5
+ const _abi = [
6
+ {
7
+ type: "constructor",
8
+ inputs: [
9
+ {
10
+ name: "_owner",
11
+ type: "address",
12
+ internalType: "address",
13
+ },
14
+ ],
15
+ stateMutability: "nonpayable",
16
+ },
17
+ {
18
+ type: "function",
19
+ name: "DEFAULT_ROUTER",
20
+ inputs: [],
21
+ outputs: [
22
+ {
23
+ name: "",
24
+ type: "bytes32",
25
+ internalType: "bytes32",
26
+ },
27
+ ],
28
+ stateMutability: "view",
29
+ },
30
+ {
31
+ type: "function",
32
+ name: "claim",
33
+ inputs: [
34
+ {
35
+ name: "beneficiary",
36
+ type: "address",
37
+ internalType: "address",
38
+ },
39
+ {
40
+ name: "token",
41
+ type: "address",
42
+ internalType: "address",
43
+ },
44
+ ],
45
+ outputs: [],
46
+ stateMutability: "nonpayable",
47
+ },
48
+ {
49
+ type: "function",
50
+ name: "feeContracts",
51
+ inputs: [
52
+ {
53
+ name: "dest",
54
+ type: "uint32",
55
+ internalType: "uint32",
56
+ },
57
+ {
58
+ name: "targetRouter",
59
+ type: "bytes32",
60
+ internalType: "bytes32",
61
+ },
62
+ ],
63
+ outputs: [
64
+ {
65
+ name: "feeContract",
66
+ type: "address",
67
+ internalType: "address",
68
+ },
69
+ ],
70
+ stateMutability: "view",
71
+ },
72
+ {
73
+ type: "function",
74
+ name: "owner",
75
+ inputs: [],
76
+ outputs: [
77
+ {
78
+ name: "",
79
+ type: "address",
80
+ internalType: "address",
81
+ },
82
+ ],
83
+ stateMutability: "view",
84
+ },
85
+ {
86
+ type: "function",
87
+ name: "quoteTransferRemote",
88
+ inputs: [
89
+ {
90
+ name: "_destination",
91
+ type: "uint32",
92
+ internalType: "uint32",
93
+ },
94
+ {
95
+ name: "_recipient",
96
+ type: "bytes32",
97
+ internalType: "bytes32",
98
+ },
99
+ {
100
+ name: "_amount",
101
+ type: "uint256",
102
+ internalType: "uint256",
103
+ },
104
+ ],
105
+ outputs: [
106
+ {
107
+ name: "",
108
+ type: "tuple[]",
109
+ internalType: "struct Quote[]",
110
+ components: [
111
+ {
112
+ name: "token",
113
+ type: "address",
114
+ internalType: "address",
115
+ },
116
+ {
117
+ name: "amount",
118
+ type: "uint256",
119
+ internalType: "uint256",
120
+ },
121
+ ],
122
+ },
123
+ ],
124
+ stateMutability: "view",
125
+ },
126
+ {
127
+ type: "function",
128
+ name: "quoteTransferRemoteTo",
129
+ inputs: [
130
+ {
131
+ name: "_destination",
132
+ type: "uint32",
133
+ internalType: "uint32",
134
+ },
135
+ {
136
+ name: "_recipient",
137
+ type: "bytes32",
138
+ internalType: "bytes32",
139
+ },
140
+ {
141
+ name: "_amount",
142
+ type: "uint256",
143
+ internalType: "uint256",
144
+ },
145
+ {
146
+ name: "_targetRouter",
147
+ type: "bytes32",
148
+ internalType: "bytes32",
149
+ },
150
+ ],
151
+ outputs: [
152
+ {
153
+ name: "",
154
+ type: "tuple[]",
155
+ internalType: "struct Quote[]",
156
+ components: [
157
+ {
158
+ name: "token",
159
+ type: "address",
160
+ internalType: "address",
161
+ },
162
+ {
163
+ name: "amount",
164
+ type: "uint256",
165
+ internalType: "uint256",
166
+ },
167
+ ],
168
+ },
169
+ ],
170
+ stateMutability: "view",
171
+ },
172
+ {
173
+ type: "function",
174
+ name: "renounceOwnership",
175
+ inputs: [],
176
+ outputs: [],
177
+ stateMutability: "nonpayable",
178
+ },
179
+ {
180
+ type: "function",
181
+ name: "setRouterFeeContracts",
182
+ inputs: [
183
+ {
184
+ name: "destinations",
185
+ type: "uint32[]",
186
+ internalType: "uint32[]",
187
+ },
188
+ {
189
+ name: "targetRouters",
190
+ type: "bytes32[]",
191
+ internalType: "bytes32[]",
192
+ },
193
+ {
194
+ name: "_feeContracts",
195
+ type: "address[]",
196
+ internalType: "address[]",
197
+ },
198
+ ],
199
+ outputs: [],
200
+ stateMutability: "nonpayable",
201
+ },
202
+ {
203
+ type: "function",
204
+ name: "transferOwnership",
205
+ inputs: [
206
+ {
207
+ name: "newOwner",
208
+ type: "address",
209
+ internalType: "address",
210
+ },
211
+ ],
212
+ outputs: [],
213
+ stateMutability: "nonpayable",
214
+ },
215
+ {
216
+ type: "event",
217
+ name: "FeeContractSet",
218
+ inputs: [
219
+ {
220
+ name: "destination",
221
+ type: "uint32",
222
+ indexed: false,
223
+ internalType: "uint32",
224
+ },
225
+ {
226
+ name: "targetRouter",
227
+ type: "bytes32",
228
+ indexed: false,
229
+ internalType: "bytes32",
230
+ },
231
+ {
232
+ name: "feeContract",
233
+ type: "address",
234
+ indexed: false,
235
+ internalType: "address",
236
+ },
237
+ ],
238
+ anonymous: false,
239
+ },
240
+ {
241
+ type: "event",
242
+ name: "OwnershipTransferred",
243
+ inputs: [
244
+ {
245
+ name: "previousOwner",
246
+ type: "address",
247
+ indexed: true,
248
+ internalType: "address",
249
+ },
250
+ {
251
+ name: "newOwner",
252
+ type: "address",
253
+ indexed: true,
254
+ internalType: "address",
255
+ },
256
+ ],
257
+ anonymous: false,
258
+ },
259
+ ];
260
+ const _bytecode = "0x608060405234801561001057600080fd5b50604051610f46380380610f4683398101604081905261002f91610097565b61003833610047565b61004181610047565b506100c7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100a957600080fd5b81516001600160a01b03811681146100c057600080fd5b9392505050565b610e70806100d66000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638bd90b82116100665780638bd90b82146100f15780638da5cb5b14610104578063cb896fba14610129578063f2fde38b1461015e578063f7d6fa8c1461017157600080fd5b806321c0b3421461009857806360ed438c146100ad5780636a3a9cbb146100d6578063715018a6146100e9575b600080fd5b6100ab6100a63660046109d6565b6101a5565b005b6100c06100bb366004610a28565b610233565b6040516100cd9190610a61565b60405180910390f35b6100ab6100e4366004610b05565b61024c565b6100ab610435565b6100c06100ff366004610b9f565b610449565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016100cd565b6101507f6e086cd647d6eb8b516856666e2c1465fb8a6a58d3a75938362acc674eacaf4781565b6040519081526020016100cd565b6100ab61016c366004610bd2565b610477565b61011161017f366004610bf6565b60016020908152600092835260408084209091529082529020546001600160a01b031681565b6101ad6104f0565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156101f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102189190610c20565b905061022e6001600160a01b038316848361054a565b505050565b60606102418585858561059c565b90505b949350505050565b6102546104f0565b848314801561026257508481145b6102aa5760405162461bcd60e51b815260206004820152601460248201527309a868c7440d8cadccee8d040dad2e6dac2e8c6d60631b60448201526064015b60405180910390fd5b60005b8581101561042c578282828181106102c7576102c7610c39565b90506020020160208101906102dc9190610bd2565b600160008989858181106102f2576102f2610c39565b90506020020160208101906103079190610c4f565b63ffffffff1663ffffffff168152602001908152602001600020600087878581811061033557610335610c39565b90506020020135815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f9cde0142f2d42e09e5f8d4123ccf900cf5ec196706474f6b1c5bbb9f98c30e2d8787838181106103a1576103a1610c39565b90506020020160208101906103b69190610c4f565b8686848181106103c8576103c8610c39565b905060200201358585858181106103e1576103e1610c39565b90506020020160208101906103f69190610bd2565b6040805163ffffffff909416845260208401929092526001600160a01b03169082015260600160405180910390a16001016102ad565b50505050505050565b61043d6104f0565b6104476000610779565b565b60606102448484847f6e086cd647d6eb8b516856666e2c1465fb8a6a58d3a75938362acc674eacaf4761059c565b61047f6104f0565b6001600160a01b0381166104e45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102a1565b6104ed81610779565b50565b6000546001600160a01b031633146104475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102a1565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261022e9084906107c9565b63ffffffff841660009081526001602090815260408083208484529091529020546060906001600160a01b03168015610657576040516345ec85c160e11b815263ffffffff8716600482015260248101869052604481018590526001600160a01b03821690638bd90b8290606401600060405180830381865afa158015610627573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261064f9190810190610cda565b915050610244565b63ffffffff861660009081526001602090815260408083207f6e086cd647d6eb8b516856666e2c1465fb8a6a58d3a75938362acc674eacaf4784529091529020546001600160a01b03168015610730576040516345ec85c160e11b815263ffffffff8816600482015260248101879052604481018690526001600160a01b03821690638bd90b8290606401600060405180830381865afa1580156106ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107279190810190610cda565b92505050610244565b604080516000808252602082019092529061076d565b60408051808201909152600080825260208201528152602001906001900390816107465790505b50979650505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061081e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661089e9092919063ffffffff16565b905080516000148061083f57508080602001905181019061083f9190610da5565b61022e5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016102a1565b6060610244848460008585600080866001600160a01b031685876040516108c59190610deb565b60006040518083038185875af1925050503d8060008114610902576040519150601f19603f3d011682016040523d82523d6000602084013e610907565b606091505b509150915061091887838387610923565b979650505050505050565b6060831561099257825160000361098b576001600160a01b0385163b61098b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016102a1565b5081610244565b61024483838151156109a75781518083602001fd5b8060405162461bcd60e51b81526004016102a19190610e07565b6001600160a01b03811681146104ed57600080fd5b600080604083850312156109e957600080fd5b82356109f4816109c1565b91506020830135610a04816109c1565b809150509250929050565b803563ffffffff81168114610a2357600080fd5b919050565b60008060008060808587031215610a3e57600080fd5b610a4785610a0f565b966020860135965060408601359560600135945092505050565b602080825282518282018190526000919060409081850190868401855b82811015610aac57815180516001600160a01b03168552860151868501529284019290850190600101610a7e565b5091979650505050505050565b60008083601f840112610acb57600080fd5b50813567ffffffffffffffff811115610ae357600080fd5b6020830191508360208260051b8501011115610afe57600080fd5b9250929050565b60008060008060008060608789031215610b1e57600080fd5b863567ffffffffffffffff80821115610b3657600080fd5b610b428a838b01610ab9565b90985096506020890135915080821115610b5b57600080fd5b610b678a838b01610ab9565b90965094506040890135915080821115610b8057600080fd5b50610b8d89828a01610ab9565b979a9699509497509295939492505050565b600080600060608486031215610bb457600080fd5b610bbd84610a0f565b95602085013595506040909401359392505050565b600060208284031215610be457600080fd5b8135610bef816109c1565b9392505050565b60008060408385031215610c0957600080fd5b610c1283610a0f565b946020939093013593505050565b600060208284031215610c3257600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610c6157600080fd5b610bef82610a0f565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610ca357610ca3610c6a565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610cd257610cd2610c6a565b604052919050565b60006020808385031215610ced57600080fd5b825167ffffffffffffffff80821115610d0557600080fd5b818501915085601f830112610d1957600080fd5b815181811115610d2b57610d2b610c6a565b610d39848260051b01610ca9565b818152848101925060069190911b830184019087821115610d5957600080fd5b928401925b818410156109185760408489031215610d775760008081fd5b610d7f610c80565b8451610d8a816109c1565b81528486015186820152835260409093019291840191610d5e565b600060208284031215610db757600080fd5b81518015158114610bef57600080fd5b60005b83811015610de2578181015183820152602001610dca565b50506000910152565b60008251610dfd818460208701610dc7565b9190910192915050565b6020815260008251806020840152610e26816040850160208701610dc7565b601f01601f1916919091016040019291505056fea2646970667358221220de5a1632fa323dae43b47d24dedd4759179d3e7c8a8e6732705f798a9052ccfe64736f6c63430008160033";
261
+ const isSuperArgs = (xs) => xs.length > 1;
262
+ export class MultiCollateralRoutingFee__factory extends ContractFactory {
263
+ constructor(...args) {
264
+ if (isSuperArgs(args)) {
265
+ super(...args);
266
+ }
267
+ else {
268
+ super(_abi, _bytecode, args[0]);
269
+ }
270
+ }
271
+ deploy(_owner, overrides) {
272
+ return super.deploy(_owner, overrides || {});
273
+ }
274
+ getDeployTransaction(_owner, overrides) {
275
+ return super.getDeployTransaction(_owner, overrides || {});
276
+ }
277
+ attach(address) {
278
+ return super.attach(address);
279
+ }
280
+ connect(signer) {
281
+ return super.connect(signer);
282
+ }
283
+ static createInterface() {
284
+ return new utils.Interface(_abi);
285
+ }
286
+ static connect(address, signerOrProvider) {
287
+ return new Contract(address, _abi, signerOrProvider);
288
+ }
289
+ }
290
+ MultiCollateralRoutingFee__factory.bytecode = _bytecode;
291
+ MultiCollateralRoutingFee__factory.abi = _abi;
292
+ //# sourceMappingURL=MultiCollateralRoutingFee__factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiCollateralRoutingFee__factory.js","sourceRoot":"","sources":["../../../typechain/factories/MultiCollateralRoutingFee__factory.ts"],"names":[],"mappings":"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"}