@snowbridge/base-types 0.3.3 → 0.4.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.
- package/.turbo/turbo-build.log +1 -2
- package/dist/index.d.ts +67 -78
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -14
- package/package.json +1 -1
- package/src/index.ts +74 -79
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
WARN Issue while reading "/home/runner/work/snowbridge/snowbridge/web/.npmrc". Failed to replace env in config: ${NPM_AUTH_TOKEN}
|
|
2
1
|
|
|
3
|
-
> @snowbridge/base-types@0.
|
|
2
|
+
> @snowbridge/base-types@0.4.0 build /home/runner/work/snowbridge/snowbridge/web/packages/base-types
|
|
4
3
|
> tsc --build --force
|
|
5
4
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
export type BridgeInfo = {
|
|
2
|
+
environment: Environment;
|
|
3
|
+
routes: readonly TransferRoute[];
|
|
4
|
+
registry: AssetRegistry;
|
|
5
|
+
};
|
|
1
6
|
export type AccountType = "AccountId20" | "AccountId32";
|
|
2
7
|
export type XcmVersion = "v4" | "v5";
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
8
|
+
export type EthereumKind = "ethereum" | "ethereum_l2";
|
|
9
|
+
export type ParachainKind = "polkadot" | "kusama";
|
|
10
|
+
export type ChainKind = EthereumKind | ParachainKind;
|
|
11
|
+
export type XC20TokenMap = Record<string, string>;
|
|
6
12
|
export type ERC20Metadata = {
|
|
7
13
|
token: string;
|
|
8
14
|
name: string;
|
|
@@ -13,12 +19,10 @@ export type ERC20Metadata = {
|
|
|
13
19
|
swapTokenAddress?: string;
|
|
14
20
|
swapFee?: number;
|
|
15
21
|
};
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
chainId: number;
|
|
21
|
-
id: string;
|
|
22
|
+
export type ERC20MetadataMap = Record<string, ERC20Metadata>;
|
|
23
|
+
export type EthereumChain = ChainId & {
|
|
24
|
+
kind: EthereumKind;
|
|
25
|
+
key: `${EthereumKind}_${number}`;
|
|
22
26
|
evmParachainId?: number;
|
|
23
27
|
assets: ERC20MetadataMap;
|
|
24
28
|
precompile?: `0x${string}`;
|
|
@@ -51,11 +55,10 @@ export type Asset = {
|
|
|
51
55
|
assetId?: string;
|
|
52
56
|
foreignId?: string;
|
|
53
57
|
};
|
|
54
|
-
export
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
parachainId: number;
|
|
58
|
+
export type AssetMap = Record<string, Asset>;
|
|
59
|
+
export type Parachain = ChainId & {
|
|
60
|
+
kind: ParachainKind;
|
|
61
|
+
key: `${ParachainKind}_${number}`;
|
|
59
62
|
info: ChainProperties;
|
|
60
63
|
features: {
|
|
61
64
|
hasPalletXcm: boolean;
|
|
@@ -75,11 +78,8 @@ export type Parachain = {
|
|
|
75
78
|
estimatedDeliveryFeeDOT: bigint;
|
|
76
79
|
xcDOT?: string;
|
|
77
80
|
};
|
|
78
|
-
export
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
export declare function supportsEthereumToPolkadotV2(parachain: Parachain): boolean;
|
|
82
|
-
export declare function supportsPolkadotToEthereumV2(parachain: Parachain): boolean;
|
|
81
|
+
export type EthereumChainMap = Record<ChainKey<EthereumKind>, EthereumChain>;
|
|
82
|
+
export type ParachainMap = Record<ChainKey<ParachainKind>, Parachain>;
|
|
83
83
|
export type KusamaConfig = {
|
|
84
84
|
assetHubParaId: number;
|
|
85
85
|
bridgeHubParaId: number;
|
|
@@ -91,13 +91,11 @@ export type Environment = {
|
|
|
91
91
|
gatewayContract: string;
|
|
92
92
|
beefyContract: string;
|
|
93
93
|
beaconApiUrl: string;
|
|
94
|
-
ethereumChains:
|
|
95
|
-
[chainId: string]: string;
|
|
96
|
-
};
|
|
94
|
+
ethereumChains: Record<string, string>;
|
|
97
95
|
assetHubParaId: number;
|
|
98
96
|
bridgeHubParaId: number;
|
|
99
97
|
/** @deprecated Remove once V2 is fully rolled out to all parachains */
|
|
100
|
-
v2_parachains?: number[];
|
|
98
|
+
v2_parachains?: readonly number[];
|
|
101
99
|
relaychainUrl: string;
|
|
102
100
|
parachains: {
|
|
103
101
|
[paraId: string]: string;
|
|
@@ -106,9 +104,7 @@ export type Environment = {
|
|
|
106
104
|
kusama?: {
|
|
107
105
|
assetHubParaId: number;
|
|
108
106
|
bridgeHubParaId: number;
|
|
109
|
-
parachains:
|
|
110
|
-
[paraId: string]: string;
|
|
111
|
-
};
|
|
107
|
+
parachains: Record<string, string>;
|
|
112
108
|
};
|
|
113
109
|
assetOverrides?: AssetOverrideMap;
|
|
114
110
|
precompiles?: PrecompileMap;
|
|
@@ -120,52 +116,49 @@ export type Environment = {
|
|
|
120
116
|
l1FeeTokenAddress: string;
|
|
121
117
|
l1SwapRouterAddress: string;
|
|
122
118
|
l1SwapQuoterAddress: string;
|
|
123
|
-
l2Chains:
|
|
124
|
-
[l2ChainId: number]: L2ForwardMetadata;
|
|
125
|
-
};
|
|
119
|
+
l2Chains: Record<number, L2ForwardMetadata>;
|
|
126
120
|
};
|
|
127
121
|
};
|
|
128
|
-
export type
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
122
|
+
export type ChainId = {
|
|
123
|
+
kind: ChainKind;
|
|
124
|
+
/** Ethereum chain id or polkadot parachain id.
|
|
125
|
+
*/
|
|
126
|
+
id: number;
|
|
127
|
+
};
|
|
128
|
+
export type TransferRoute = {
|
|
129
|
+
from: ChainId;
|
|
130
|
+
to: ChainId;
|
|
131
|
+
assets: readonly string[];
|
|
132
|
+
};
|
|
133
|
+
export type ChainKey<T extends string> = `${T}_${number}`;
|
|
134
|
+
export type Source = ChainId & {
|
|
135
|
+
key: ChainKey<ChainKind>;
|
|
136
|
+
destinations: Record<ChainKey<ChainKind>, ChainId & {
|
|
137
|
+
key: ChainKey<ChainKind>;
|
|
138
|
+
assets: string[];
|
|
139
|
+
}>;
|
|
140
|
+
};
|
|
141
|
+
export type TransferLocation = ParachainLocation | EthereumLocation;
|
|
142
|
+
export type ParachainLocation = ChainId & {
|
|
143
|
+
name: string;
|
|
144
|
+
kind: ParachainKind;
|
|
145
|
+
key: ChainKey<ParachainKind>;
|
|
146
|
+
parachain: Parachain;
|
|
147
147
|
};
|
|
148
|
-
export type
|
|
149
|
-
id: string;
|
|
148
|
+
export type EthereumLocation = ChainId & {
|
|
150
149
|
name: string;
|
|
151
|
-
|
|
152
|
-
|
|
150
|
+
kind: EthereumKind;
|
|
151
|
+
key: ChainKey<EthereumKind>;
|
|
152
|
+
ethChain: EthereumChain;
|
|
153
153
|
parachain?: Parachain;
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
export
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
symbol?: string;
|
|
163
|
-
decimals?: number;
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
export interface PrecompileMap {
|
|
167
|
-
[chainId: string]: `0x${string}`;
|
|
168
|
-
}
|
|
154
|
+
};
|
|
155
|
+
export type AssetOverrideMap = Record<string, Asset[]>;
|
|
156
|
+
export type ERC20MetadataOverrideMap = Record<string, {
|
|
157
|
+
name?: string;
|
|
158
|
+
symbol?: string;
|
|
159
|
+
decimals?: number;
|
|
160
|
+
}>;
|
|
161
|
+
export type PrecompileMap = Record<string, `0x${string}`>;
|
|
169
162
|
export type AssetRegistry = {
|
|
170
163
|
timestamp: string;
|
|
171
164
|
environment: string;
|
|
@@ -175,9 +168,7 @@ export type AssetRegistry = {
|
|
|
175
168
|
bridgeHubParaId: number;
|
|
176
169
|
relaychain: ChainProperties;
|
|
177
170
|
bridgeHub: ChainProperties;
|
|
178
|
-
ethereumChains:
|
|
179
|
-
[chainId: string]: EthereumChain;
|
|
180
|
-
};
|
|
171
|
+
ethereumChains: EthereumChainMap;
|
|
181
172
|
parachains: ParachainMap;
|
|
182
173
|
kusama?: KusamaConfig;
|
|
183
174
|
};
|
|
@@ -198,13 +189,11 @@ export type SubstrateAccount = {
|
|
|
198
189
|
frozen: bigint;
|
|
199
190
|
};
|
|
200
191
|
};
|
|
201
|
-
export
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
};
|
|
207
|
-
}
|
|
192
|
+
export type PNAMap = Record<string, {
|
|
193
|
+
token: string;
|
|
194
|
+
foreignId: string;
|
|
195
|
+
ethereumlocation: any;
|
|
196
|
+
}>;
|
|
208
197
|
export type AssetSwapRoute = {
|
|
209
198
|
inputToken: string;
|
|
210
199
|
outputToken: string;
|
|
@@ -213,6 +202,6 @@ export type AssetSwapRoute = {
|
|
|
213
202
|
export type L2ForwardMetadata = {
|
|
214
203
|
adapterAddress: string;
|
|
215
204
|
feeTokenAddress: string;
|
|
216
|
-
swapRoutes: AssetSwapRoute[];
|
|
205
|
+
swapRoutes: readonly AssetSwapRoute[];
|
|
217
206
|
};
|
|
218
207
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC;AAExD,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AAErC,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.supportsEthereumToPolkadotV2 = supportsEthereumToPolkadotV2;
|
|
4
|
-
exports.supportsPolkadotToEthereumV2 = supportsPolkadotToEthereumV2;
|
|
5
|
-
function supportsEthereumToPolkadotV2(parachain) {
|
|
6
|
-
return (parachain.features.hasXcmPaymentApi &&
|
|
7
|
-
parachain.features.xcmVersion === "v5" &&
|
|
8
|
-
parachain.features.supportsV2);
|
|
9
|
-
}
|
|
10
|
-
function supportsPolkadotToEthereumV2(parachain) {
|
|
11
|
-
return (parachain.features.hasEthBalance &&
|
|
12
|
-
parachain.features.hasXcmPaymentApi &&
|
|
13
|
-
parachain.features.supportsAliasOrigin &&
|
|
14
|
-
parachain.features.xcmVersion === "v5" &&
|
|
15
|
-
parachain.features.supportsV2);
|
|
16
|
-
}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
|
+
export type BridgeInfo = {
|
|
2
|
+
environment: Environment;
|
|
3
|
+
routes: readonly TransferRoute[];
|
|
4
|
+
registry: AssetRegistry;
|
|
5
|
+
};
|
|
6
|
+
|
|
1
7
|
export type AccountType = "AccountId20" | "AccountId32";
|
|
2
8
|
|
|
3
9
|
export type XcmVersion = "v4" | "v5";
|
|
4
10
|
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
11
|
+
export type EthereumKind = "ethereum" | "ethereum_l2";
|
|
12
|
+
export type ParachainKind = "polkadot" | "kusama";
|
|
13
|
+
export type ChainKind = EthereumKind | ParachainKind;
|
|
14
|
+
|
|
15
|
+
export type XC20TokenMap = Record<string, string>;
|
|
8
16
|
|
|
9
17
|
export type ERC20Metadata = {
|
|
10
18
|
token: string;
|
|
@@ -20,13 +28,11 @@ export type ERC20Metadata = {
|
|
|
20
28
|
swapFee?: number;
|
|
21
29
|
};
|
|
22
30
|
|
|
23
|
-
export
|
|
24
|
-
[token: string]: ERC20Metadata;
|
|
25
|
-
}
|
|
31
|
+
export type ERC20MetadataMap = Record<string, ERC20Metadata>;
|
|
26
32
|
|
|
27
|
-
export type EthereumChain = {
|
|
28
|
-
|
|
29
|
-
|
|
33
|
+
export type EthereumChain = ChainId & {
|
|
34
|
+
kind: EthereumKind;
|
|
35
|
+
key: `${EthereumKind}_${number}`;
|
|
30
36
|
evmParachainId?: number;
|
|
31
37
|
assets: ERC20MetadataMap;
|
|
32
38
|
precompile?: `0x${string}`;
|
|
@@ -70,12 +76,11 @@ export type Asset = {
|
|
|
70
76
|
foreignId?: string;
|
|
71
77
|
};
|
|
72
78
|
|
|
73
|
-
export
|
|
74
|
-
[token: string]: Asset;
|
|
75
|
-
}
|
|
79
|
+
export type AssetMap = Record<string, Asset>;
|
|
76
80
|
|
|
77
|
-
export type Parachain = {
|
|
78
|
-
|
|
81
|
+
export type Parachain = ChainId & {
|
|
82
|
+
kind: ParachainKind;
|
|
83
|
+
key: `${ParachainKind}_${number}`;
|
|
79
84
|
info: ChainProperties;
|
|
80
85
|
features: {
|
|
81
86
|
hasPalletXcm: boolean;
|
|
@@ -96,27 +101,8 @@ export type Parachain = {
|
|
|
96
101
|
xcDOT?: string;
|
|
97
102
|
};
|
|
98
103
|
|
|
99
|
-
export
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export function supportsEthereumToPolkadotV2(parachain: Parachain): boolean {
|
|
104
|
-
return (
|
|
105
|
-
parachain.features.hasXcmPaymentApi &&
|
|
106
|
-
parachain.features.xcmVersion === "v5" &&
|
|
107
|
-
parachain.features.supportsV2
|
|
108
|
-
);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export function supportsPolkadotToEthereumV2(parachain: Parachain): boolean {
|
|
112
|
-
return (
|
|
113
|
-
parachain.features.hasEthBalance &&
|
|
114
|
-
parachain.features.hasXcmPaymentApi &&
|
|
115
|
-
parachain.features.supportsAliasOrigin &&
|
|
116
|
-
parachain.features.xcmVersion === "v5" &&
|
|
117
|
-
parachain.features.supportsV2
|
|
118
|
-
);
|
|
119
|
-
}
|
|
104
|
+
export type EthereumChainMap = Record<ChainKey<EthereumKind>, EthereumChain>;
|
|
105
|
+
export type ParachainMap = Record<ChainKey<ParachainKind>, Parachain>;
|
|
120
106
|
|
|
121
107
|
export type KusamaConfig = {
|
|
122
108
|
assetHubParaId: number;
|
|
@@ -131,14 +117,12 @@ export type Environment = {
|
|
|
131
117
|
gatewayContract: string;
|
|
132
118
|
beefyContract: string;
|
|
133
119
|
beaconApiUrl: string;
|
|
134
|
-
ethereumChains:
|
|
135
|
-
[chainId: string]: string;
|
|
136
|
-
};
|
|
120
|
+
ethereumChains: Record<string, string>;
|
|
137
121
|
// Substrate
|
|
138
122
|
assetHubParaId: number;
|
|
139
123
|
bridgeHubParaId: number;
|
|
140
124
|
/** @deprecated Remove once V2 is fully rolled out to all parachains */
|
|
141
|
-
v2_parachains?: number[];
|
|
125
|
+
v2_parachains?: readonly number[];
|
|
142
126
|
relaychainUrl: string;
|
|
143
127
|
parachains: {
|
|
144
128
|
[paraId: string]: string;
|
|
@@ -148,7 +132,7 @@ export type Environment = {
|
|
|
148
132
|
kusama?: {
|
|
149
133
|
assetHubParaId: number;
|
|
150
134
|
bridgeHubParaId: number;
|
|
151
|
-
parachains:
|
|
135
|
+
parachains: Record<string, string>;
|
|
152
136
|
};
|
|
153
137
|
// Assets
|
|
154
138
|
assetOverrides?: AssetOverrideMap;
|
|
@@ -162,53 +146,65 @@ export type Environment = {
|
|
|
162
146
|
l1FeeTokenAddress: string;
|
|
163
147
|
l1SwapRouterAddress: string;
|
|
164
148
|
l1SwapQuoterAddress: string;
|
|
165
|
-
l2Chains:
|
|
149
|
+
l2Chains: Record<number, L2ForwardMetadata>;
|
|
166
150
|
};
|
|
167
151
|
};
|
|
168
152
|
|
|
169
|
-
export type
|
|
153
|
+
export type ChainId = {
|
|
154
|
+
kind: ChainKind;
|
|
155
|
+
/** Ethereum chain id or polkadot parachain id.
|
|
156
|
+
*/
|
|
157
|
+
id: number;
|
|
158
|
+
};
|
|
170
159
|
|
|
171
|
-
export type
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
destinationType: SourceType;
|
|
176
|
-
destination: number;
|
|
177
|
-
asset: string;
|
|
160
|
+
export type TransferRoute = {
|
|
161
|
+
from: ChainId;
|
|
162
|
+
to: ChainId;
|
|
163
|
+
assets: readonly string[];
|
|
178
164
|
};
|
|
179
165
|
|
|
180
|
-
export type
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
key:
|
|
184
|
-
destinations:
|
|
185
|
-
|
|
186
|
-
|
|
166
|
+
export type ChainKey<T extends string> = `${T}_${number}`;
|
|
167
|
+
|
|
168
|
+
export type Source = ChainId & {
|
|
169
|
+
key: ChainKey<ChainKind>;
|
|
170
|
+
destinations: Record<
|
|
171
|
+
ChainKey<ChainKind>,
|
|
172
|
+
ChainId & {
|
|
173
|
+
key: ChainKey<ChainKind>;
|
|
174
|
+
assets: string[];
|
|
175
|
+
}
|
|
176
|
+
>;
|
|
187
177
|
};
|
|
188
178
|
|
|
189
|
-
export type TransferLocation =
|
|
190
|
-
|
|
179
|
+
export type TransferLocation = ParachainLocation | EthereumLocation;
|
|
180
|
+
|
|
181
|
+
export type ParachainLocation = ChainId & {
|
|
182
|
+
name: string;
|
|
183
|
+
kind: ParachainKind;
|
|
184
|
+
key: ChainKey<ParachainKind>;
|
|
185
|
+
parachain: Parachain;
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
export type EthereumLocation = ChainId & {
|
|
191
189
|
name: string;
|
|
192
|
-
|
|
193
|
-
|
|
190
|
+
kind: EthereumKind;
|
|
191
|
+
key: ChainKey<EthereumKind>;
|
|
192
|
+
ethChain: EthereumChain;
|
|
194
193
|
parachain?: Parachain;
|
|
195
|
-
ethChain?: EthereumChain;
|
|
196
194
|
};
|
|
197
|
-
export interface AssetOverrideMap {
|
|
198
|
-
[paraId: string]: Asset[];
|
|
199
|
-
}
|
|
200
195
|
|
|
201
|
-
export
|
|
202
|
-
|
|
196
|
+
export type AssetOverrideMap = Record<string, Asset[]>;
|
|
197
|
+
|
|
198
|
+
export type ERC20MetadataOverrideMap = Record<
|
|
199
|
+
string,
|
|
200
|
+
{
|
|
203
201
|
name?: string;
|
|
204
202
|
symbol?: string;
|
|
205
203
|
decimals?: number;
|
|
206
|
-
}
|
|
207
|
-
|
|
204
|
+
}
|
|
205
|
+
>;
|
|
208
206
|
|
|
209
|
-
export
|
|
210
|
-
[chainId: string]: `0x${string}`;
|
|
211
|
-
}
|
|
207
|
+
export type PrecompileMap = Record<string, `0x${string}`>;
|
|
212
208
|
|
|
213
209
|
export type AssetRegistry = {
|
|
214
210
|
timestamp: string;
|
|
@@ -219,9 +215,7 @@ export type AssetRegistry = {
|
|
|
219
215
|
bridgeHubParaId: number;
|
|
220
216
|
relaychain: ChainProperties;
|
|
221
217
|
bridgeHub: ChainProperties;
|
|
222
|
-
ethereumChains:
|
|
223
|
-
[chainId: string]: EthereumChain;
|
|
224
|
-
};
|
|
218
|
+
ethereumChains: EthereumChainMap;
|
|
225
219
|
parachains: ParachainMap;
|
|
226
220
|
kusama?: KusamaConfig;
|
|
227
221
|
};
|
|
@@ -245,13 +239,14 @@ export type SubstrateAccount = {
|
|
|
245
239
|
};
|
|
246
240
|
};
|
|
247
241
|
|
|
248
|
-
export
|
|
249
|
-
|
|
242
|
+
export type PNAMap = Record<
|
|
243
|
+
string,
|
|
244
|
+
{
|
|
250
245
|
token: string;
|
|
251
246
|
foreignId: string;
|
|
252
247
|
ethereumlocation: any;
|
|
253
|
-
}
|
|
254
|
-
|
|
248
|
+
}
|
|
249
|
+
>;
|
|
255
250
|
|
|
256
251
|
export type AssetSwapRoute = {
|
|
257
252
|
inputToken: string;
|
|
@@ -262,5 +257,5 @@ export type AssetSwapRoute = {
|
|
|
262
257
|
export type L2ForwardMetadata = {
|
|
263
258
|
adapterAddress: string;
|
|
264
259
|
feeTokenAddress: string;
|
|
265
|
-
swapRoutes: AssetSwapRoute[];
|
|
260
|
+
swapRoutes: readonly AssetSwapRoute[];
|
|
266
261
|
};
|