@snowbridge/base-types 0.3.3 → 0.4.1-beta.1
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 +78 -77
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -13
- package/package.json +1 -1
- package/src/index.ts +91 -80
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,11 @@ export type ERC20Metadata = {
|
|
|
13
19
|
swapTokenAddress?: string;
|
|
14
20
|
swapFee?: number;
|
|
15
21
|
};
|
|
16
|
-
export
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
id: string;
|
|
22
|
+
export type ERC20MetadataMap = Record<string, ERC20Metadata>;
|
|
23
|
+
export type EthereumChain = ChainId & {
|
|
24
|
+
kind: EthereumKind;
|
|
25
|
+
key: `${EthereumKind}_${number}`;
|
|
26
|
+
name?: string;
|
|
22
27
|
evmParachainId?: number;
|
|
23
28
|
assets: ERC20MetadataMap;
|
|
24
29
|
precompile?: `0x${string}`;
|
|
@@ -51,11 +56,10 @@ export type Asset = {
|
|
|
51
56
|
assetId?: string;
|
|
52
57
|
foreignId?: string;
|
|
53
58
|
};
|
|
54
|
-
export
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
parachainId: number;
|
|
59
|
+
export type AssetMap = Record<string, Asset>;
|
|
60
|
+
export type Parachain = ChainId & {
|
|
61
|
+
kind: ParachainKind;
|
|
62
|
+
key: `${ParachainKind}_${number}`;
|
|
59
63
|
info: ChainProperties;
|
|
60
64
|
features: {
|
|
61
65
|
hasPalletXcm: boolean;
|
|
@@ -75,11 +79,8 @@ export type Parachain = {
|
|
|
75
79
|
estimatedDeliveryFeeDOT: bigint;
|
|
76
80
|
xcDOT?: string;
|
|
77
81
|
};
|
|
78
|
-
export
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
export declare function supportsEthereumToPolkadotV2(parachain: Parachain): boolean;
|
|
82
|
-
export declare function supportsPolkadotToEthereumV2(parachain: Parachain): boolean;
|
|
82
|
+
export type EthereumChainMap = Record<ChainKey<EthereumKind>, EthereumChain>;
|
|
83
|
+
export type ParachainMap = Record<ChainKey<ParachainKind>, Parachain>;
|
|
83
84
|
export type KusamaConfig = {
|
|
84
85
|
assetHubParaId: number;
|
|
85
86
|
bridgeHubParaId: number;
|
|
@@ -91,13 +92,11 @@ export type Environment = {
|
|
|
91
92
|
gatewayContract: string;
|
|
92
93
|
beefyContract: string;
|
|
93
94
|
beaconApiUrl: string;
|
|
94
|
-
ethereumChains:
|
|
95
|
-
[chainId: string]: string;
|
|
96
|
-
};
|
|
95
|
+
ethereumChains: Record<string, string>;
|
|
97
96
|
assetHubParaId: number;
|
|
98
97
|
bridgeHubParaId: number;
|
|
99
98
|
/** @deprecated Remove once V2 is fully rolled out to all parachains */
|
|
100
|
-
v2_parachains?: number[];
|
|
99
|
+
v2_parachains?: readonly number[];
|
|
101
100
|
relaychainUrl: string;
|
|
102
101
|
parachains: {
|
|
103
102
|
[paraId: string]: string;
|
|
@@ -106,9 +105,7 @@ export type Environment = {
|
|
|
106
105
|
kusama?: {
|
|
107
106
|
assetHubParaId: number;
|
|
108
107
|
bridgeHubParaId: number;
|
|
109
|
-
parachains:
|
|
110
|
-
[paraId: string]: string;
|
|
111
|
-
};
|
|
108
|
+
parachains: Record<string, string>;
|
|
112
109
|
};
|
|
113
110
|
assetOverrides?: AssetOverrideMap;
|
|
114
111
|
precompiles?: PrecompileMap;
|
|
@@ -120,52 +117,47 @@ export type Environment = {
|
|
|
120
117
|
l1FeeTokenAddress: string;
|
|
121
118
|
l1SwapRouterAddress: string;
|
|
122
119
|
l1SwapQuoterAddress: string;
|
|
123
|
-
l2Chains:
|
|
124
|
-
[l2ChainId: number]: L2ForwardMetadata;
|
|
125
|
-
};
|
|
120
|
+
l2Chains: Record<number, L2ForwardMetadata>;
|
|
126
121
|
};
|
|
127
122
|
};
|
|
128
|
-
export type
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
destinationType: SourceType;
|
|
134
|
-
destination: number;
|
|
135
|
-
asset: string;
|
|
123
|
+
export type ChainId = {
|
|
124
|
+
kind: ChainKind;
|
|
125
|
+
/** Ethereum chain id or polkadot parachain id.
|
|
126
|
+
*/
|
|
127
|
+
id: number;
|
|
136
128
|
};
|
|
137
|
-
export type
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
destinations: {
|
|
142
|
-
[destination: string]: {
|
|
143
|
-
type: SourceType;
|
|
144
|
-
assets: string[];
|
|
145
|
-
};
|
|
146
|
-
};
|
|
129
|
+
export type TransferRoute = {
|
|
130
|
+
from: ChainId;
|
|
131
|
+
to: ChainId;
|
|
132
|
+
assets: readonly string[];
|
|
147
133
|
};
|
|
148
|
-
export type
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
134
|
+
export type ChainKey<T extends string> = `${T}_${number}`;
|
|
135
|
+
export type Source = ChainId & {
|
|
136
|
+
key: ChainKey<ChainKind>;
|
|
137
|
+
destinations: Record<ChainKey<ChainKind>, ChainId & {
|
|
138
|
+
key: ChainKey<ChainKind>;
|
|
139
|
+
assets: string[];
|
|
140
|
+
}>;
|
|
141
|
+
};
|
|
142
|
+
export type TransferLocation = ParachainLocation | EthereumLocation;
|
|
143
|
+
export type ParachainLocation = ChainId & {
|
|
144
|
+
kind: ParachainKind;
|
|
145
|
+
key: ChainKey<ParachainKind>;
|
|
146
|
+
parachain: Parachain;
|
|
147
|
+
};
|
|
148
|
+
export type EthereumLocation = ChainId & {
|
|
149
|
+
kind: EthereumKind;
|
|
150
|
+
key: ChainKey<EthereumKind>;
|
|
151
|
+
ethChain: EthereumChain;
|
|
153
152
|
parachain?: Parachain;
|
|
154
|
-
ethChain?: EthereumChain;
|
|
155
153
|
};
|
|
156
|
-
export
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
decimals?: number;
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
export interface PrecompileMap {
|
|
167
|
-
[chainId: string]: `0x${string}`;
|
|
168
|
-
}
|
|
154
|
+
export type AssetOverrideMap = Record<string, Asset[]>;
|
|
155
|
+
export type ERC20MetadataOverrideMap = Record<string, {
|
|
156
|
+
name?: string;
|
|
157
|
+
symbol?: string;
|
|
158
|
+
decimals?: number;
|
|
159
|
+
}>;
|
|
160
|
+
export type PrecompileMap = Record<string, `0x${string}`>;
|
|
169
161
|
export type AssetRegistry = {
|
|
170
162
|
timestamp: string;
|
|
171
163
|
environment: string;
|
|
@@ -175,9 +167,7 @@ export type AssetRegistry = {
|
|
|
175
167
|
bridgeHubParaId: number;
|
|
176
168
|
relaychain: ChainProperties;
|
|
177
169
|
bridgeHub: ChainProperties;
|
|
178
|
-
ethereumChains:
|
|
179
|
-
[chainId: string]: EthereumChain;
|
|
180
|
-
};
|
|
170
|
+
ethereumChains: EthereumChainMap;
|
|
181
171
|
parachains: ParachainMap;
|
|
182
172
|
kusama?: KusamaConfig;
|
|
183
173
|
};
|
|
@@ -196,15 +186,15 @@ export type SubstrateAccount = {
|
|
|
196
186
|
free: bigint;
|
|
197
187
|
reserved: bigint;
|
|
198
188
|
frozen: bigint;
|
|
189
|
+
transferable: bigint;
|
|
190
|
+
total: bigint;
|
|
199
191
|
};
|
|
200
192
|
};
|
|
201
|
-
export
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
};
|
|
207
|
-
}
|
|
193
|
+
export type PNAMap = Record<string, {
|
|
194
|
+
token: string;
|
|
195
|
+
foreignId: string;
|
|
196
|
+
ethereumlocation: any;
|
|
197
|
+
}>;
|
|
208
198
|
export type AssetSwapRoute = {
|
|
209
199
|
inputToken: string;
|
|
210
200
|
outputToken: string;
|
|
@@ -213,6 +203,17 @@ export type AssetSwapRoute = {
|
|
|
213
203
|
export type L2ForwardMetadata = {
|
|
214
204
|
adapterAddress: string;
|
|
215
205
|
feeTokenAddress: string;
|
|
216
|
-
swapRoutes: AssetSwapRoute[];
|
|
206
|
+
swapRoutes: readonly AssetSwapRoute[];
|
|
217
207
|
};
|
|
208
|
+
export type FeeEstimateErrorDetails = {
|
|
209
|
+
type: string;
|
|
210
|
+
code: string;
|
|
211
|
+
status: number;
|
|
212
|
+
message: string;
|
|
213
|
+
id: string;
|
|
214
|
+
};
|
|
215
|
+
export declare class FeeEstimateError extends Error {
|
|
216
|
+
readonly details: FeeEstimateErrorDetails;
|
|
217
|
+
constructor(details: FeeEstimateErrorDetails);
|
|
218
|
+
}
|
|
218
219
|
//# 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,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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);
|
|
3
|
+
exports.FeeEstimateError = void 0;
|
|
4
|
+
class FeeEstimateError extends Error {
|
|
5
|
+
constructor(details) {
|
|
6
|
+
super(details.message);
|
|
7
|
+
this.details = details;
|
|
8
|
+
}
|
|
16
9
|
}
|
|
10
|
+
exports.FeeEstimateError = FeeEstimateError;
|
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,12 @@ 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}`;
|
|
36
|
+
name?: string;
|
|
30
37
|
evmParachainId?: number;
|
|
31
38
|
assets: ERC20MetadataMap;
|
|
32
39
|
precompile?: `0x${string}`;
|
|
@@ -70,12 +77,11 @@ export type Asset = {
|
|
|
70
77
|
foreignId?: string;
|
|
71
78
|
};
|
|
72
79
|
|
|
73
|
-
export
|
|
74
|
-
[token: string]: Asset;
|
|
75
|
-
}
|
|
80
|
+
export type AssetMap = Record<string, Asset>;
|
|
76
81
|
|
|
77
|
-
export type Parachain = {
|
|
78
|
-
|
|
82
|
+
export type Parachain = ChainId & {
|
|
83
|
+
kind: ParachainKind;
|
|
84
|
+
key: `${ParachainKind}_${number}`;
|
|
79
85
|
info: ChainProperties;
|
|
80
86
|
features: {
|
|
81
87
|
hasPalletXcm: boolean;
|
|
@@ -96,27 +102,8 @@ export type Parachain = {
|
|
|
96
102
|
xcDOT?: string;
|
|
97
103
|
};
|
|
98
104
|
|
|
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
|
-
}
|
|
105
|
+
export type EthereumChainMap = Record<ChainKey<EthereumKind>, EthereumChain>;
|
|
106
|
+
export type ParachainMap = Record<ChainKey<ParachainKind>, Parachain>;
|
|
120
107
|
|
|
121
108
|
export type KusamaConfig = {
|
|
122
109
|
assetHubParaId: number;
|
|
@@ -131,14 +118,12 @@ export type Environment = {
|
|
|
131
118
|
gatewayContract: string;
|
|
132
119
|
beefyContract: string;
|
|
133
120
|
beaconApiUrl: string;
|
|
134
|
-
ethereumChains:
|
|
135
|
-
[chainId: string]: string;
|
|
136
|
-
};
|
|
121
|
+
ethereumChains: Record<string, string>;
|
|
137
122
|
// Substrate
|
|
138
123
|
assetHubParaId: number;
|
|
139
124
|
bridgeHubParaId: number;
|
|
140
125
|
/** @deprecated Remove once V2 is fully rolled out to all parachains */
|
|
141
|
-
v2_parachains?: number[];
|
|
126
|
+
v2_parachains?: readonly number[];
|
|
142
127
|
relaychainUrl: string;
|
|
143
128
|
parachains: {
|
|
144
129
|
[paraId: string]: string;
|
|
@@ -148,7 +133,7 @@ export type Environment = {
|
|
|
148
133
|
kusama?: {
|
|
149
134
|
assetHubParaId: number;
|
|
150
135
|
bridgeHubParaId: number;
|
|
151
|
-
parachains:
|
|
136
|
+
parachains: Record<string, string>;
|
|
152
137
|
};
|
|
153
138
|
// Assets
|
|
154
139
|
assetOverrides?: AssetOverrideMap;
|
|
@@ -162,53 +147,63 @@ export type Environment = {
|
|
|
162
147
|
l1FeeTokenAddress: string;
|
|
163
148
|
l1SwapRouterAddress: string;
|
|
164
149
|
l1SwapQuoterAddress: string;
|
|
165
|
-
l2Chains:
|
|
150
|
+
l2Chains: Record<number, L2ForwardMetadata>;
|
|
166
151
|
};
|
|
167
152
|
};
|
|
168
153
|
|
|
169
|
-
export type
|
|
154
|
+
export type ChainId = {
|
|
155
|
+
kind: ChainKind;
|
|
156
|
+
/** Ethereum chain id or polkadot parachain id.
|
|
157
|
+
*/
|
|
158
|
+
id: number;
|
|
159
|
+
};
|
|
170
160
|
|
|
171
|
-
export type
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
destinationType: SourceType;
|
|
176
|
-
destination: number;
|
|
177
|
-
asset: string;
|
|
161
|
+
export type TransferRoute = {
|
|
162
|
+
from: ChainId;
|
|
163
|
+
to: ChainId;
|
|
164
|
+
assets: readonly string[];
|
|
178
165
|
};
|
|
179
166
|
|
|
180
|
-
export type
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
key:
|
|
184
|
-
destinations:
|
|
185
|
-
|
|
186
|
-
|
|
167
|
+
export type ChainKey<T extends string> = `${T}_${number}`;
|
|
168
|
+
|
|
169
|
+
export type Source = ChainId & {
|
|
170
|
+
key: ChainKey<ChainKind>;
|
|
171
|
+
destinations: Record<
|
|
172
|
+
ChainKey<ChainKind>,
|
|
173
|
+
ChainId & {
|
|
174
|
+
key: ChainKey<ChainKind>;
|
|
175
|
+
assets: string[];
|
|
176
|
+
}
|
|
177
|
+
>;
|
|
187
178
|
};
|
|
188
179
|
|
|
189
|
-
export type TransferLocation =
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
180
|
+
export type TransferLocation = ParachainLocation | EthereumLocation;
|
|
181
|
+
|
|
182
|
+
export type ParachainLocation = ChainId & {
|
|
183
|
+
kind: ParachainKind;
|
|
184
|
+
key: ChainKey<ParachainKind>;
|
|
185
|
+
parachain: Parachain;
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
export type EthereumLocation = ChainId & {
|
|
189
|
+
kind: EthereumKind;
|
|
190
|
+
key: ChainKey<EthereumKind>;
|
|
191
|
+
ethChain: EthereumChain;
|
|
194
192
|
parachain?: Parachain;
|
|
195
|
-
ethChain?: EthereumChain;
|
|
196
193
|
};
|
|
197
|
-
export interface AssetOverrideMap {
|
|
198
|
-
[paraId: string]: Asset[];
|
|
199
|
-
}
|
|
200
194
|
|
|
201
|
-
export
|
|
202
|
-
|
|
195
|
+
export type AssetOverrideMap = Record<string, Asset[]>;
|
|
196
|
+
|
|
197
|
+
export type ERC20MetadataOverrideMap = Record<
|
|
198
|
+
string,
|
|
199
|
+
{
|
|
203
200
|
name?: string;
|
|
204
201
|
symbol?: string;
|
|
205
202
|
decimals?: number;
|
|
206
|
-
}
|
|
207
|
-
|
|
203
|
+
}
|
|
204
|
+
>;
|
|
208
205
|
|
|
209
|
-
export
|
|
210
|
-
[chainId: string]: `0x${string}`;
|
|
211
|
-
}
|
|
206
|
+
export type PrecompileMap = Record<string, `0x${string}`>;
|
|
212
207
|
|
|
213
208
|
export type AssetRegistry = {
|
|
214
209
|
timestamp: string;
|
|
@@ -219,9 +214,7 @@ export type AssetRegistry = {
|
|
|
219
214
|
bridgeHubParaId: number;
|
|
220
215
|
relaychain: ChainProperties;
|
|
221
216
|
bridgeHub: ChainProperties;
|
|
222
|
-
ethereumChains:
|
|
223
|
-
[chainId: string]: EthereumChain;
|
|
224
|
-
};
|
|
217
|
+
ethereumChains: EthereumChainMap;
|
|
225
218
|
parachains: ParachainMap;
|
|
226
219
|
kusama?: KusamaConfig;
|
|
227
220
|
};
|
|
@@ -242,16 +235,19 @@ export type SubstrateAccount = {
|
|
|
242
235
|
free: bigint;
|
|
243
236
|
reserved: bigint;
|
|
244
237
|
frozen: bigint;
|
|
238
|
+
transferable: bigint;
|
|
239
|
+
total: bigint;
|
|
245
240
|
};
|
|
246
241
|
};
|
|
247
242
|
|
|
248
|
-
export
|
|
249
|
-
|
|
243
|
+
export type PNAMap = Record<
|
|
244
|
+
string,
|
|
245
|
+
{
|
|
250
246
|
token: string;
|
|
251
247
|
foreignId: string;
|
|
252
248
|
ethereumlocation: any;
|
|
253
|
-
}
|
|
254
|
-
|
|
249
|
+
}
|
|
250
|
+
>;
|
|
255
251
|
|
|
256
252
|
export type AssetSwapRoute = {
|
|
257
253
|
inputToken: string;
|
|
@@ -262,5 +258,20 @@ export type AssetSwapRoute = {
|
|
|
262
258
|
export type L2ForwardMetadata = {
|
|
263
259
|
adapterAddress: string;
|
|
264
260
|
feeTokenAddress: string;
|
|
265
|
-
swapRoutes: AssetSwapRoute[];
|
|
261
|
+
swapRoutes: readonly AssetSwapRoute[];
|
|
266
262
|
};
|
|
263
|
+
|
|
264
|
+
export type FeeEstimateErrorDetails = {
|
|
265
|
+
type: string;
|
|
266
|
+
code: string;
|
|
267
|
+
status: number;
|
|
268
|
+
message: string;
|
|
269
|
+
id: string;
|
|
270
|
+
};
|
|
271
|
+
export class FeeEstimateError extends Error {
|
|
272
|
+
readonly details: FeeEstimateErrorDetails;
|
|
273
|
+
constructor(details: FeeEstimateErrorDetails) {
|
|
274
|
+
super(details.message);
|
|
275
|
+
this.details = details;
|
|
276
|
+
}
|
|
277
|
+
}
|