@metamask/bridge-controller 1.0.0 → 3.0.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/CHANGELOG.md +21 -1
- package/dist/bridge-controller.cjs +85 -51
- package/dist/bridge-controller.cjs.map +1 -1
- package/dist/bridge-controller.d.cts +2 -5
- package/dist/bridge-controller.d.cts.map +1 -1
- package/dist/bridge-controller.d.mts +2 -5
- package/dist/bridge-controller.d.mts.map +1 -1
- package/dist/bridge-controller.mjs +72 -38
- package/dist/bridge-controller.mjs.map +1 -1
- package/dist/constants/bridge.cjs +15 -14
- package/dist/constants/bridge.cjs.map +1 -1
- package/dist/constants/bridge.d.cts +6 -0
- package/dist/constants/bridge.d.cts.map +1 -1
- package/dist/constants/bridge.d.mts +6 -0
- package/dist/constants/bridge.d.mts.map +1 -1
- package/dist/constants/bridge.mjs +14 -13
- package/dist/constants/bridge.mjs.map +1 -1
- package/dist/types.cjs +2 -0
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +24 -18
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +24 -18
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs +2 -0
- package/dist/types.mjs.map +1 -1
- package/dist/utils/balance.cjs +10 -7
- package/dist/utils/balance.cjs.map +1 -1
- package/dist/utils/balance.d.cts +3 -2
- package/dist/utils/balance.d.cts.map +1 -1
- package/dist/utils/balance.d.mts +3 -2
- package/dist/utils/balance.d.mts.map +1 -1
- package/dist/utils/balance.mjs +8 -5
- package/dist/utils/balance.mjs.map +1 -1
- package/dist/utils/bridge.cjs +2 -2
- package/dist/utils/bridge.cjs.map +1 -1
- package/dist/utils/bridge.d.cts.map +1 -1
- package/dist/utils/bridge.d.mts.map +1 -1
- package/dist/utils/bridge.mjs +1 -1
- package/dist/utils/bridge.mjs.map +1 -1
- package/dist/utils/fetch.cjs +14 -22
- package/dist/utils/fetch.cjs.map +1 -1
- package/dist/utils/fetch.d.cts.map +1 -1
- package/dist/utils/fetch.d.mts.map +1 -1
- package/dist/utils/fetch.mjs +17 -25
- package/dist/utils/fetch.mjs.map +1 -1
- package/dist/utils/validators.cjs +92 -102
- package/dist/utils/validators.cjs.map +1 -1
- package/dist/utils/validators.d.cts +5 -28
- package/dist/utils/validators.d.cts.map +1 -1
- package/dist/utils/validators.d.mts +5 -28
- package/dist/utils/validators.d.mts.map +1 -1
- package/dist/utils/validators.mjs +90 -99
- package/dist/utils/validators.mjs.map +1 -1
- package/package.json +9 -4
package/dist/types.d.cts
CHANGED
|
@@ -75,17 +75,20 @@ export type BridgeToken = {
|
|
|
75
75
|
tokenFiatAmount?: number | null;
|
|
76
76
|
} | null;
|
|
77
77
|
export declare enum BridgeFlag {
|
|
78
|
-
EXTENSION_CONFIG = "extension-config"
|
|
78
|
+
EXTENSION_CONFIG = "extension-config",
|
|
79
|
+
MOBILE_CONFIG = "mobile-config"
|
|
79
80
|
}
|
|
80
81
|
type DecimalChainId = string;
|
|
81
82
|
export type GasMultiplierByChainId = Record<DecimalChainId, number>;
|
|
83
|
+
type FeatureFlagResponsePlatformConfig = {
|
|
84
|
+
refreshRate: number;
|
|
85
|
+
maxRefreshCount: number;
|
|
86
|
+
support: boolean;
|
|
87
|
+
chains: Record<string, ChainConfiguration>;
|
|
88
|
+
};
|
|
82
89
|
export type FeatureFlagResponse = {
|
|
83
|
-
[BridgeFlag.EXTENSION_CONFIG]:
|
|
84
|
-
|
|
85
|
-
maxRefreshCount: number;
|
|
86
|
-
support: boolean;
|
|
87
|
-
chains: Record<number, ChainConfiguration>;
|
|
88
|
-
};
|
|
90
|
+
[BridgeFlag.EXTENSION_CONFIG]: FeatureFlagResponsePlatformConfig;
|
|
91
|
+
[BridgeFlag.MOBILE_CONFIG]: FeatureFlagResponsePlatformConfig;
|
|
89
92
|
};
|
|
90
93
|
export type BridgeAsset = {
|
|
91
94
|
chainId: ChainId;
|
|
@@ -182,15 +185,18 @@ export type TxData = {
|
|
|
182
185
|
gasLimit: number | null;
|
|
183
186
|
};
|
|
184
187
|
export declare enum BridgeFeatureFlagsKey {
|
|
185
|
-
EXTENSION_CONFIG = "extensionConfig"
|
|
188
|
+
EXTENSION_CONFIG = "extensionConfig",
|
|
189
|
+
MOBILE_CONFIG = "mobileConfig"
|
|
186
190
|
}
|
|
191
|
+
type FeatureFlagsPlatformConfig = {
|
|
192
|
+
refreshRate: number;
|
|
193
|
+
maxRefreshCount: number;
|
|
194
|
+
support: boolean;
|
|
195
|
+
chains: Record<Hex, ChainConfiguration>;
|
|
196
|
+
};
|
|
187
197
|
export type BridgeFeatureFlags = {
|
|
188
|
-
[BridgeFeatureFlagsKey.EXTENSION_CONFIG]:
|
|
189
|
-
|
|
190
|
-
maxRefreshCount: number;
|
|
191
|
-
support: boolean;
|
|
192
|
-
chains: Record<Hex, ChainConfiguration>;
|
|
193
|
-
};
|
|
198
|
+
[BridgeFeatureFlagsKey.EXTENSION_CONFIG]: FeatureFlagsPlatformConfig;
|
|
199
|
+
[BridgeFeatureFlagsKey.MOBILE_CONFIG]: FeatureFlagsPlatformConfig;
|
|
194
200
|
};
|
|
195
201
|
export declare enum RequestStatus {
|
|
196
202
|
LOADING = 0,
|
|
@@ -210,10 +216,10 @@ export type BridgeControllerState = {
|
|
|
210
216
|
bridgeFeatureFlags: BridgeFeatureFlags;
|
|
211
217
|
quoteRequest: Partial<QuoteRequest>;
|
|
212
218
|
quotes: (QuoteResponse & L1GasFees)[];
|
|
213
|
-
quotesInitialLoadTime
|
|
214
|
-
quotesLastFetched
|
|
215
|
-
quotesLoadingStatus
|
|
216
|
-
quoteFetchError
|
|
219
|
+
quotesInitialLoadTime: number | null;
|
|
220
|
+
quotesLastFetched: number | null;
|
|
221
|
+
quotesLoadingStatus: RequestStatus | null;
|
|
222
|
+
quoteFetchError: string | null;
|
|
217
223
|
quotesRefreshCount: number;
|
|
218
224
|
};
|
|
219
225
|
export type BridgeControllerAction<FunctionName extends keyof BridgeController> = {
|
package/dist/types.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0CAA0C,EAAE,sCAAsC;AAChG,OAAO,KAAK,EACV,0BAA0B,EAC1B,mBAAmB,EACpB,kCAAkC;AACnC,OAAO,KAAK,EACV,mDAAmD,EACnD,+BAA+B,EAC/B,2CAA2C,EAC5C,qCAAqC;AACtC,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,gCAA4B;AAC5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,+BAA2B;AAEjE,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,KAEf,OAAO,CAAC,GAAG,CAAC,CAAC;AAElB;;;GAGG;AACH,oBAAY,SAAS;IACnB,4DAA4D;IAC5D,MAAM,WAAW;IACjB,qBAAqB;IACrB,KAAK,UAAU;IACf,kCAAkC;IAClC,GAAG,QAAQ;IACX;;;OAGG;IACH,OAAO,YAAY;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAIF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IACjE,eAAe,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IAC1E,kBAAkB,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IAC7E,aAAa,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IACxE,cAAc,EAAE;QAAE,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IACtD,UAAU,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IACrE,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE;QAAE,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;CAC7C,CAAC;AAGF,oBAAY,SAAS;IACnB,QAAQ,mBAAmB;IAC3B,OAAO,oBAAoB;CAC5B;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,GAAG,IAAI,CAAC;AAGT,oBAAY,UAAU;IACpB,gBAAgB,qBAAqB;
|
|
1
|
+
{"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.mts
CHANGED
|
@@ -75,17 +75,20 @@ export type BridgeToken = {
|
|
|
75
75
|
tokenFiatAmount?: number | null;
|
|
76
76
|
} | null;
|
|
77
77
|
export declare enum BridgeFlag {
|
|
78
|
-
EXTENSION_CONFIG = "extension-config"
|
|
78
|
+
EXTENSION_CONFIG = "extension-config",
|
|
79
|
+
MOBILE_CONFIG = "mobile-config"
|
|
79
80
|
}
|
|
80
81
|
type DecimalChainId = string;
|
|
81
82
|
export type GasMultiplierByChainId = Record<DecimalChainId, number>;
|
|
83
|
+
type FeatureFlagResponsePlatformConfig = {
|
|
84
|
+
refreshRate: number;
|
|
85
|
+
maxRefreshCount: number;
|
|
86
|
+
support: boolean;
|
|
87
|
+
chains: Record<string, ChainConfiguration>;
|
|
88
|
+
};
|
|
82
89
|
export type FeatureFlagResponse = {
|
|
83
|
-
[BridgeFlag.EXTENSION_CONFIG]:
|
|
84
|
-
|
|
85
|
-
maxRefreshCount: number;
|
|
86
|
-
support: boolean;
|
|
87
|
-
chains: Record<number, ChainConfiguration>;
|
|
88
|
-
};
|
|
90
|
+
[BridgeFlag.EXTENSION_CONFIG]: FeatureFlagResponsePlatformConfig;
|
|
91
|
+
[BridgeFlag.MOBILE_CONFIG]: FeatureFlagResponsePlatformConfig;
|
|
89
92
|
};
|
|
90
93
|
export type BridgeAsset = {
|
|
91
94
|
chainId: ChainId;
|
|
@@ -182,15 +185,18 @@ export type TxData = {
|
|
|
182
185
|
gasLimit: number | null;
|
|
183
186
|
};
|
|
184
187
|
export declare enum BridgeFeatureFlagsKey {
|
|
185
|
-
EXTENSION_CONFIG = "extensionConfig"
|
|
188
|
+
EXTENSION_CONFIG = "extensionConfig",
|
|
189
|
+
MOBILE_CONFIG = "mobileConfig"
|
|
186
190
|
}
|
|
191
|
+
type FeatureFlagsPlatformConfig = {
|
|
192
|
+
refreshRate: number;
|
|
193
|
+
maxRefreshCount: number;
|
|
194
|
+
support: boolean;
|
|
195
|
+
chains: Record<Hex, ChainConfiguration>;
|
|
196
|
+
};
|
|
187
197
|
export type BridgeFeatureFlags = {
|
|
188
|
-
[BridgeFeatureFlagsKey.EXTENSION_CONFIG]:
|
|
189
|
-
|
|
190
|
-
maxRefreshCount: number;
|
|
191
|
-
support: boolean;
|
|
192
|
-
chains: Record<Hex, ChainConfiguration>;
|
|
193
|
-
};
|
|
198
|
+
[BridgeFeatureFlagsKey.EXTENSION_CONFIG]: FeatureFlagsPlatformConfig;
|
|
199
|
+
[BridgeFeatureFlagsKey.MOBILE_CONFIG]: FeatureFlagsPlatformConfig;
|
|
194
200
|
};
|
|
195
201
|
export declare enum RequestStatus {
|
|
196
202
|
LOADING = 0,
|
|
@@ -210,10 +216,10 @@ export type BridgeControllerState = {
|
|
|
210
216
|
bridgeFeatureFlags: BridgeFeatureFlags;
|
|
211
217
|
quoteRequest: Partial<QuoteRequest>;
|
|
212
218
|
quotes: (QuoteResponse & L1GasFees)[];
|
|
213
|
-
quotesInitialLoadTime
|
|
214
|
-
quotesLastFetched
|
|
215
|
-
quotesLoadingStatus
|
|
216
|
-
quoteFetchError
|
|
219
|
+
quotesInitialLoadTime: number | null;
|
|
220
|
+
quotesLastFetched: number | null;
|
|
221
|
+
quotesLoadingStatus: RequestStatus | null;
|
|
222
|
+
quoteFetchError: string | null;
|
|
217
223
|
quotesRefreshCount: number;
|
|
218
224
|
};
|
|
219
225
|
export type BridgeControllerAction<FunctionName extends keyof BridgeController> = {
|
package/dist/types.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0CAA0C,EAAE,sCAAsC;AAChG,OAAO,KAAK,EACV,0BAA0B,EAC1B,mBAAmB,EACpB,kCAAkC;AACnC,OAAO,KAAK,EACV,mDAAmD,EACnD,+BAA+B,EAC/B,2CAA2C,EAC5C,qCAAqC;AACtC,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,qBAAqB;AAE9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,gCAA4B;AAC5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,+BAA2B;AAEjE,MAAM,MAAM,aAAa,GAAG,CAC1B,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,KAEf,OAAO,CAAC,GAAG,CAAC,CAAC;AAElB;;;GAGG;AACH,oBAAY,SAAS;IACnB,4DAA4D;IAC5D,MAAM,WAAW;IACjB,qBAAqB;IACrB,KAAK,UAAU;IACf,kCAAkC;IAClC,GAAG,QAAQ;IACX;;;OAGG;IACH,OAAO,YAAY;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAIF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IACjE,eAAe,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IAC1E,kBAAkB,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IAC7E,aAAa,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IACxE,cAAc,EAAE;QAAE,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IACtD,UAAU,EAAE;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IACrE,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,EAAE;QAAE,eAAe,EAAE,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;CAC7C,CAAC;AAGF,oBAAY,SAAS;IACnB,QAAQ,mBAAmB;IAC3B,OAAO,oBAAoB;CAC5B;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,GAAG,IAAI,CAAC;AAGT,oBAAY,UAAU;IACpB,gBAAgB,qBAAqB;
|
|
1
|
+
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.mjs
CHANGED
|
@@ -26,6 +26,7 @@ export var SortOrder;
|
|
|
26
26
|
export var BridgeFlag;
|
|
27
27
|
(function (BridgeFlag) {
|
|
28
28
|
BridgeFlag["EXTENSION_CONFIG"] = "extension-config";
|
|
29
|
+
BridgeFlag["MOBILE_CONFIG"] = "mobile-config";
|
|
29
30
|
})(BridgeFlag || (BridgeFlag = {}));
|
|
30
31
|
export var ActionTypes;
|
|
31
32
|
(function (ActionTypes) {
|
|
@@ -53,6 +54,7 @@ export var FeeType;
|
|
|
53
54
|
export var BridgeFeatureFlagsKey;
|
|
54
55
|
(function (BridgeFeatureFlagsKey) {
|
|
55
56
|
BridgeFeatureFlagsKey["EXTENSION_CONFIG"] = "extensionConfig";
|
|
57
|
+
BridgeFeatureFlagsKey["MOBILE_CONFIG"] = "mobileConfig";
|
|
56
58
|
})(BridgeFeatureFlagsKey || (BridgeFeatureFlagsKey = {}));
|
|
57
59
|
export var RequestStatus;
|
|
58
60
|
(function (RequestStatus) {
|
package/dist/types.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAsBA;;;GAGG;AACH,MAAM,CAAN,IAAY,SAYX;AAZD,WAAY,SAAS;IACnB,4DAA4D;IAC5D,8BAAiB,CAAA;IACjB,qBAAqB;IACrB,4BAAe,CAAA;IACf,kCAAkC;IAClC,wBAAW,CAAA;IACX;;;OAGG;IACH,gCAAmB,CAAA;AACrB,CAAC,EAZW,SAAS,KAAT,SAAS,QAYpB;AAuBD,6BAA6B;AAE7B,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wCAA2B,CAAA;IAC3B,wCAA2B,CAAA;AAC7B,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAaD,mCAAmC;AAEnC,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAsBA;;;GAGG;AACH,MAAM,CAAN,IAAY,SAYX;AAZD,WAAY,SAAS;IACnB,4DAA4D;IAC5D,8BAAiB,CAAA;IACjB,qBAAqB;IACrB,4BAAe,CAAA;IACf,kCAAkC;IAClC,wBAAW,CAAA;IACX;;;OAGG;IACH,gCAAmB,CAAA;AACrB,CAAC,EAZW,SAAS,KAAT,SAAS,QAYpB;AAuBD,6BAA6B;AAE7B,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wCAA2B,CAAA;IAC3B,wCAA2B,CAAA;AAC7B,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAaD,mCAAmC;AAEnC,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,mDAAqC,CAAA;IACrC,6CAA+B,CAAA;AACjC,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAkDD,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,gCAAiB,CAAA;AACnB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAuCD,MAAM,CAAN,IAAY,OAUX;AAVD,WAAY,OAAO;IACjB,mCAAO,CAAA;IACP,8CAAa,CAAA;IACb,oCAAQ,CAAA;IACR,6CAAa,CAAA;IACb,2CAAY,CAAA;IACZ,wCAAW,CAAA;IACX,iDAAgB,CAAA;IAChB,mDAAiB,CAAA;IACjB,2CAAa,CAAA;AACf,CAAC,EAVW,OAAO,KAAP,OAAO,QAUlB;AAED,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,oCAAyB,CAAA;IACzB,4BAAiB,CAAA;AACnB,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAaD,MAAM,CAAN,IAAY,qBAGX;AAHD,WAAY,qBAAqB;IAC/B,6DAAoC,CAAA;IACpC,uDAA8B,CAAA;AAChC,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,QAGhC;AAaD,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,uDAAO,CAAA;IACP,uDAAO,CAAA;IACP,mDAAK,CAAA;AACP,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AACD,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,6DAAyC,CAAA;IACzC,0EAAsD,CAAA;AACxD,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AACD,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAChC,qEAA2C,CAAA;IAC3C,oDAA0B,CAAA;IAC1B,gFAAsD,CAAA;AACxD,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC","sourcesContent":["import type { AccountsControllerGetSelectedAccountAction } from '@metamask/accounts-controller';\nimport type {\n ControllerStateChangeEvent,\n RestrictedMessenger,\n} from '@metamask/base-controller';\nimport type {\n NetworkControllerFindNetworkClientIdByChainIdAction,\n NetworkControllerGetStateAction,\n NetworkControllerGetNetworkClientByIdAction,\n} from '@metamask/network-controller';\nimport type { Hex } from '@metamask/utils';\nimport type { BigNumber } from 'bignumber.js';\n\nimport type { BridgeController } from './bridge-controller';\nimport type { BRIDGE_CONTROLLER_NAME } from './constants/bridge';\n\nexport type FetchFunction = (\n input: RequestInfo | URL,\n init?: RequestInit,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => Promise<any>;\n\n/**\n * The types of assets that a user can send\n *\n */\nexport enum AssetType {\n /** The native asset for the current network, such as ETH */\n native = 'NATIVE',\n /** An ERC20 token */\n token = 'TOKEN',\n /** An ERC721 or ERC1155 token. */\n NFT = 'NFT',\n /**\n * A transaction interacting with a contract that isn't a token method\n * interaction will be marked as dealing with an unknown asset type.\n */\n unknown = 'UNKNOWN',\n}\n\nexport type ChainConfiguration = {\n isActiveSrc: boolean;\n isActiveDest: boolean;\n};\n\nexport type L1GasFees = {\n l1GasFeesInHexWei?: string; // l1 fees for approval and trade in hex wei, appended by controller\n};\n// Values derived from the quote response\n// valueInCurrency values are calculated based on the user's selected currency\n\nexport type QuoteMetadata = {\n gasFee: { amount: BigNumber; valueInCurrency: BigNumber | null };\n totalNetworkFee: { amount: BigNumber; valueInCurrency: BigNumber | null }; // estimatedGasFees + relayerFees\n totalMaxNetworkFee: { amount: BigNumber; valueInCurrency: BigNumber | null }; // maxGasFees + relayerFees\n toTokenAmount: { amount: BigNumber; valueInCurrency: BigNumber | null };\n adjustedReturn: { valueInCurrency: BigNumber | null }; // destTokenAmount - totalNetworkFee\n sentAmount: { amount: BigNumber; valueInCurrency: BigNumber | null }; // srcTokenAmount + metabridgeFee\n swapRate: BigNumber; // destTokenAmount / sentAmount\n cost: { valueInCurrency: BigNumber | null }; // sentAmount - adjustedReturn\n};\n// Sort order set by the user\n\nexport enum SortOrder {\n COST_ASC = 'cost_ascending',\n ETA_ASC = 'time_descending',\n}\n\nexport type BridgeToken = {\n type: AssetType.native | AssetType.token;\n address: string;\n symbol: string;\n image: string;\n decimals: number;\n chainId: Hex;\n balance: string; // raw balance\n string: string | undefined; // normalized balance as a stringified number\n tokenFiatAmount?: number | null;\n} | null;\n// Types copied from Metabridge API\n\nexport enum BridgeFlag {\n EXTENSION_CONFIG = 'extension-config',\n MOBILE_CONFIG = 'mobile-config',\n}\ntype DecimalChainId = string;\nexport type GasMultiplierByChainId = Record<DecimalChainId, number>;\n\ntype FeatureFlagResponsePlatformConfig = {\n refreshRate: number;\n maxRefreshCount: number;\n support: boolean;\n chains: Record<string, ChainConfiguration>;\n};\n\nexport type FeatureFlagResponse = {\n [BridgeFlag.EXTENSION_CONFIG]: FeatureFlagResponsePlatformConfig;\n [BridgeFlag.MOBILE_CONFIG]: FeatureFlagResponsePlatformConfig;\n};\n\nexport type BridgeAsset = {\n chainId: ChainId;\n address: string;\n symbol: string;\n name: string;\n decimals: number;\n icon?: string;\n};\n\nexport type QuoteRequest = {\n walletAddress: string;\n destWalletAddress?: string;\n srcChainId: ChainId;\n destChainId: ChainId;\n srcTokenAddress: string;\n destTokenAddress: string;\n /**\n * This is the amount sent, in atomic amount\n */\n srcTokenAmount: string;\n slippage: number;\n aggIds?: string[];\n bridgeIds?: string[];\n insufficientBal?: boolean;\n resetApproval?: boolean;\n refuel?: boolean;\n};\n\nexport type Protocol = {\n name: string;\n displayName?: string;\n icon?: string;\n};\n\nexport enum ActionTypes {\n BRIDGE = 'bridge',\n SWAP = 'swap',\n REFUEL = 'refuel',\n}\n\nexport type Step = {\n action: ActionTypes;\n srcChainId: ChainId;\n destChainId?: ChainId;\n srcAsset: BridgeAsset;\n destAsset: BridgeAsset;\n srcAmount: string;\n destAmount: string;\n protocol: Protocol;\n};\n\nexport type RefuelData = Step;\n\nexport type Quote = {\n requestId: string;\n srcChainId: ChainId;\n srcAsset: BridgeAsset;\n // Some tokens have a fee of 0, so sometimes it's equal to amount sent\n srcTokenAmount: string; // Atomic amount, the amount sent - fees\n destChainId: ChainId;\n destAsset: BridgeAsset;\n destTokenAmount: string; // Atomic amount, the amount received\n feeData: Record<FeeType.METABRIDGE, FeeData> &\n Partial<Record<FeeType, FeeData>>;\n bridgeId: string;\n bridges: string[];\n steps: Step[];\n refuel?: RefuelData;\n};\n\nexport type QuoteResponse = {\n quote: Quote;\n approval: TxData | null;\n trade: TxData;\n estimatedProcessingTimeInSeconds: number;\n};\n\nexport enum ChainId {\n ETH = 1,\n OPTIMISM = 10,\n BSC = 56,\n POLYGON = 137,\n ZKSYNC = 324,\n BASE = 8453,\n ARBITRUM = 42161,\n AVALANCHE = 43114,\n LINEA = 59144,\n}\n\nexport enum FeeType {\n METABRIDGE = 'metabridge',\n REFUEL = 'refuel',\n}\nexport type FeeData = {\n amount: string;\n asset: BridgeAsset;\n};\nexport type TxData = {\n chainId: ChainId;\n to: string;\n from: string;\n value: string;\n data: string;\n gasLimit: number | null;\n};\nexport enum BridgeFeatureFlagsKey {\n EXTENSION_CONFIG = 'extensionConfig',\n MOBILE_CONFIG = 'mobileConfig',\n}\n\ntype FeatureFlagsPlatformConfig = {\n refreshRate: number;\n maxRefreshCount: number;\n support: boolean;\n chains: Record<Hex, ChainConfiguration>;\n};\n\nexport type BridgeFeatureFlags = {\n [BridgeFeatureFlagsKey.EXTENSION_CONFIG]: FeatureFlagsPlatformConfig;\n [BridgeFeatureFlagsKey.MOBILE_CONFIG]: FeatureFlagsPlatformConfig;\n};\nexport enum RequestStatus {\n LOADING,\n FETCHED,\n ERROR,\n}\nexport enum BridgeUserAction {\n SELECT_DEST_NETWORK = 'selectDestNetwork',\n UPDATE_QUOTE_PARAMS = 'updateBridgeQuoteRequestParams',\n}\nexport enum BridgeBackgroundAction {\n SET_FEATURE_FLAGS = 'setBridgeFeatureFlags',\n RESET_STATE = 'resetState',\n GET_BRIDGE_ERC20_ALLOWANCE = 'getBridgeERC20Allowance',\n}\nexport type BridgeControllerState = {\n bridgeFeatureFlags: BridgeFeatureFlags;\n quoteRequest: Partial<QuoteRequest>;\n quotes: (QuoteResponse & L1GasFees)[];\n quotesInitialLoadTime: number | null;\n quotesLastFetched: number | null;\n quotesLoadingStatus: RequestStatus | null;\n quoteFetchError: string | null;\n quotesRefreshCount: number;\n};\n\nexport type BridgeControllerAction<\n FunctionName extends keyof BridgeController,\n> = {\n type: `${typeof BRIDGE_CONTROLLER_NAME}:${FunctionName}`;\n handler: BridgeController[FunctionName];\n};\n\n// Maps to BridgeController function names\nexport type BridgeControllerActions =\n | BridgeControllerAction<BridgeBackgroundAction.SET_FEATURE_FLAGS>\n | BridgeControllerAction<BridgeBackgroundAction.RESET_STATE>\n | BridgeControllerAction<BridgeBackgroundAction.GET_BRIDGE_ERC20_ALLOWANCE>\n | BridgeControllerAction<BridgeUserAction.UPDATE_QUOTE_PARAMS>;\n\nexport type BridgeControllerEvents = ControllerStateChangeEvent<\n typeof BRIDGE_CONTROLLER_NAME,\n BridgeControllerState\n>;\n\nexport type AllowedActions =\n | AccountsControllerGetSelectedAccountAction\n | NetworkControllerFindNetworkClientIdByChainIdAction\n | NetworkControllerGetStateAction\n | NetworkControllerGetNetworkClientByIdAction;\nexport type AllowedEvents = never;\n\n/**\n * The messenger for the BridgeController.\n */\nexport type BridgeControllerMessenger = RestrictedMessenger<\n typeof BRIDGE_CONTROLLER_NAME,\n BridgeControllerActions | AllowedActions,\n BridgeControllerEvents | AllowedEvents,\n AllowedActions['type'],\n AllowedEvents['type']\n>;\n"]}
|
package/dist/utils/balance.cjs
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hasSufficientBalance = exports.calcLatestSrcBalance = exports.fetchTokenBalance = void 0;
|
|
4
|
+
const address_1 = require("@ethersproject/address");
|
|
5
|
+
const constants_1 = require("@ethersproject/constants");
|
|
6
|
+
const contracts_1 = require("@ethersproject/contracts");
|
|
7
|
+
const providers_1 = require("@ethersproject/providers");
|
|
4
8
|
const metamask_eth_abis_1 = require("@metamask/metamask-eth-abis");
|
|
5
|
-
const ethers_1 = require("ethers");
|
|
6
9
|
const fetchTokenBalance = async (address, userAddress, provider) => {
|
|
7
|
-
const ethersProvider = new
|
|
8
|
-
const tokenContract = new
|
|
10
|
+
const ethersProvider = new providers_1.Web3Provider(provider);
|
|
11
|
+
const tokenContract = new contracts_1.Contract(address, metamask_eth_abis_1.abiERC20, ethersProvider);
|
|
9
12
|
const tokenBalancePromise = typeof tokenContract?.balanceOf === 'function'
|
|
10
13
|
? tokenContract.balanceOf(userAddress)
|
|
11
14
|
: Promise.resolve(undefined);
|
|
@@ -14,9 +17,9 @@ const fetchTokenBalance = async (address, userAddress, provider) => {
|
|
|
14
17
|
exports.fetchTokenBalance = fetchTokenBalance;
|
|
15
18
|
const calcLatestSrcBalance = async (provider, selectedAddress, tokenAddress, chainId) => {
|
|
16
19
|
if (tokenAddress && chainId) {
|
|
17
|
-
if (tokenAddress ===
|
|
18
|
-
const ethersProvider = new
|
|
19
|
-
return await ethersProvider.getBalance((0,
|
|
20
|
+
if (tokenAddress === constants_1.AddressZero) {
|
|
21
|
+
const ethersProvider = new providers_1.Web3Provider(provider);
|
|
22
|
+
return await ethersProvider.getBalance((0, address_1.getAddress)(selectedAddress));
|
|
20
23
|
}
|
|
21
24
|
return await (0, exports.fetchTokenBalance)(tokenAddress, selectedAddress, provider);
|
|
22
25
|
}
|
|
@@ -25,7 +28,7 @@ const calcLatestSrcBalance = async (provider, selectedAddress, tokenAddress, cha
|
|
|
25
28
|
exports.calcLatestSrcBalance = calcLatestSrcBalance;
|
|
26
29
|
const hasSufficientBalance = async (provider, selectedAddress, tokenAddress, fromTokenAmount, chainId) => {
|
|
27
30
|
const srcTokenBalance = await (0, exports.calcLatestSrcBalance)(provider, selectedAddress, tokenAddress, chainId);
|
|
28
|
-
return srcTokenBalance ? srcTokenBalance
|
|
31
|
+
return srcTokenBalance ? srcTokenBalance.gte(fromTokenAmount) : false;
|
|
29
32
|
};
|
|
30
33
|
exports.hasSufficientBalance = hasSufficientBalance;
|
|
31
34
|
//# sourceMappingURL=balance.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance.cjs","sourceRoot":"","sources":["../../src/utils/balance.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"balance.cjs","sourceRoot":"","sources":["../../src/utils/balance.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AAEpD,wDAAuD;AACvD,wDAAoD;AACpD,wDAAwD;AACxD,mEAAuD;AAIhD,MAAM,iBAAiB,GAAG,KAAK,EACpC,OAAe,EACf,WAAmB,EACnB,QAAkB,EACc,EAAE;IAClC,MAAM,cAAc,GAAG,IAAI,wBAAY,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,IAAI,oBAAQ,CAAC,OAAO,EAAE,4BAAQ,EAAE,cAAc,CAAC,CAAC;IACtE,MAAM,mBAAmB,GACvB,OAAO,aAAa,EAAE,SAAS,KAAK,UAAU;QAC5C,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC;QACtC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,MAAM,mBAAmB,CAAC;AACnC,CAAC,CAAC;AAZW,QAAA,iBAAiB,qBAY5B;AAEK,MAAM,oBAAoB,GAAG,KAAK,EACvC,QAAkB,EAClB,eAAuB,EACvB,YAAoB,EACpB,OAAY,EACoB,EAAE;IAClC,IAAI,YAAY,IAAI,OAAO,EAAE;QAC3B,IAAI,YAAY,KAAK,uBAAW,EAAE;YAChC,MAAM,cAAc,GAAG,IAAI,wBAAY,CAAC,QAAQ,CAAC,CAAC;YAClD,OAAO,MAAM,cAAc,CAAC,UAAU,CAAC,IAAA,oBAAU,EAAC,eAAe,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,MAAM,IAAA,yBAAiB,EAAC,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;KACzE;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAdW,QAAA,oBAAoB,wBAc/B;AAEK,MAAM,oBAAoB,GAAG,KAAK,EACvC,QAAkB,EAClB,eAAuB,EACvB,YAAoB,EACpB,eAAuB,EACvB,OAAY,EACZ,EAAE;IACF,MAAM,eAAe,GAAG,MAAM,IAAA,4BAAoB,EAChD,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,OAAO,CACR,CAAC;IAEF,OAAO,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACxE,CAAC,CAAC;AAfW,QAAA,oBAAoB,wBAe/B","sourcesContent":["import { getAddress } from '@ethersproject/address';\nimport type { BigNumber } from '@ethersproject/bignumber';\nimport { AddressZero } from '@ethersproject/constants';\nimport { Contract } from '@ethersproject/contracts';\nimport { Web3Provider } from '@ethersproject/providers';\nimport { abiERC20 } from '@metamask/metamask-eth-abis';\nimport type { Provider } from '@metamask/network-controller';\nimport type { Hex } from '@metamask/utils';\n\nexport const fetchTokenBalance = async (\n address: string,\n userAddress: string,\n provider: Provider,\n): Promise<BigNumber | undefined> => {\n const ethersProvider = new Web3Provider(provider);\n const tokenContract = new Contract(address, abiERC20, ethersProvider);\n const tokenBalancePromise =\n typeof tokenContract?.balanceOf === 'function'\n ? tokenContract.balanceOf(userAddress)\n : Promise.resolve(undefined);\n return await tokenBalancePromise;\n};\n\nexport const calcLatestSrcBalance = async (\n provider: Provider,\n selectedAddress: string,\n tokenAddress: string,\n chainId: Hex,\n): Promise<BigNumber | undefined> => {\n if (tokenAddress && chainId) {\n if (tokenAddress === AddressZero) {\n const ethersProvider = new Web3Provider(provider);\n return await ethersProvider.getBalance(getAddress(selectedAddress));\n }\n return await fetchTokenBalance(tokenAddress, selectedAddress, provider);\n }\n return undefined;\n};\n\nexport const hasSufficientBalance = async (\n provider: Provider,\n selectedAddress: string,\n tokenAddress: string,\n fromTokenAmount: string,\n chainId: Hex,\n) => {\n const srcTokenBalance = await calcLatestSrcBalance(\n provider,\n selectedAddress,\n tokenAddress,\n chainId,\n );\n\n return srcTokenBalance ? srcTokenBalance.gte(fromTokenAmount) : false;\n};\n"]}
|
package/dist/utils/balance.d.cts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { BigNumber } from "@ethersproject/bignumber";
|
|
1
2
|
import type { Provider } from "@metamask/network-controller";
|
|
2
3
|
import type { Hex } from "@metamask/utils";
|
|
3
|
-
export declare const fetchTokenBalance: (address: string, userAddress: string, provider: Provider) => Promise<
|
|
4
|
-
export declare const calcLatestSrcBalance: (provider: Provider, selectedAddress: string, tokenAddress: string, chainId: Hex) => Promise<
|
|
4
|
+
export declare const fetchTokenBalance: (address: string, userAddress: string, provider: Provider) => Promise<BigNumber | undefined>;
|
|
5
|
+
export declare const calcLatestSrcBalance: (provider: Provider, selectedAddress: string, tokenAddress: string, chainId: Hex) => Promise<BigNumber | undefined>;
|
|
5
6
|
export declare const hasSufficientBalance: (provider: Provider, selectedAddress: string, tokenAddress: string, fromTokenAmount: string, chainId: Hex) => Promise<boolean>;
|
|
6
7
|
//# sourceMappingURL=balance.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance.d.cts","sourceRoot":"","sources":["../../src/utils/balance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,qCAAqC;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;
|
|
1
|
+
{"version":3,"file":"balance.d.cts","sourceRoot":"","sources":["../../src/utils/balance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,iCAAiC;AAK1D,OAAO,KAAK,EAAE,QAAQ,EAAE,qCAAqC;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAE3C,eAAO,MAAM,iBAAiB,YACnB,MAAM,eACF,MAAM,YACT,QAAQ,KACjB,QAAQ,SAAS,GAAG,SAAS,CAQ/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACrB,QAAQ,mBACD,MAAM,gBACT,MAAM,WACX,GAAG,KACX,QAAQ,SAAS,GAAG,SAAS,CAS/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACrB,QAAQ,mBACD,MAAM,gBACT,MAAM,mBACH,MAAM,WACd,GAAG,qBAUb,CAAC"}
|
package/dist/utils/balance.d.mts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { BigNumber } from "@ethersproject/bignumber";
|
|
1
2
|
import type { Provider } from "@metamask/network-controller";
|
|
2
3
|
import type { Hex } from "@metamask/utils";
|
|
3
|
-
export declare const fetchTokenBalance: (address: string, userAddress: string, provider: Provider) => Promise<
|
|
4
|
-
export declare const calcLatestSrcBalance: (provider: Provider, selectedAddress: string, tokenAddress: string, chainId: Hex) => Promise<
|
|
4
|
+
export declare const fetchTokenBalance: (address: string, userAddress: string, provider: Provider) => Promise<BigNumber | undefined>;
|
|
5
|
+
export declare const calcLatestSrcBalance: (provider: Provider, selectedAddress: string, tokenAddress: string, chainId: Hex) => Promise<BigNumber | undefined>;
|
|
5
6
|
export declare const hasSufficientBalance: (provider: Provider, selectedAddress: string, tokenAddress: string, fromTokenAmount: string, chainId: Hex) => Promise<boolean>;
|
|
6
7
|
//# sourceMappingURL=balance.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance.d.mts","sourceRoot":"","sources":["../../src/utils/balance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,qCAAqC;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;
|
|
1
|
+
{"version":3,"file":"balance.d.mts","sourceRoot":"","sources":["../../src/utils/balance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,iCAAiC;AAK1D,OAAO,KAAK,EAAE,QAAQ,EAAE,qCAAqC;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAE3C,eAAO,MAAM,iBAAiB,YACnB,MAAM,eACF,MAAM,YACT,QAAQ,KACjB,QAAQ,SAAS,GAAG,SAAS,CAQ/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACrB,QAAQ,mBACD,MAAM,gBACT,MAAM,WACX,GAAG,KACX,QAAQ,SAAS,GAAG,SAAS,CAS/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACrB,QAAQ,mBACD,MAAM,gBACT,MAAM,mBACH,MAAM,WACd,GAAG,qBAUb,CAAC"}
|
package/dist/utils/balance.mjs
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { getAddress } from "@ethersproject/address";
|
|
2
|
+
import { AddressZero } from "@ethersproject/constants";
|
|
3
|
+
import { Contract } from "@ethersproject/contracts";
|
|
4
|
+
import { Web3Provider } from "@ethersproject/providers";
|
|
1
5
|
import { abiERC20 } from "@metamask/metamask-eth-abis";
|
|
2
|
-
import { BrowserProvider, Contract, getAddress, ZeroAddress } from "ethers";
|
|
3
6
|
export const fetchTokenBalance = async (address, userAddress, provider) => {
|
|
4
|
-
const ethersProvider = new
|
|
7
|
+
const ethersProvider = new Web3Provider(provider);
|
|
5
8
|
const tokenContract = new Contract(address, abiERC20, ethersProvider);
|
|
6
9
|
const tokenBalancePromise = typeof tokenContract?.balanceOf === 'function'
|
|
7
10
|
? tokenContract.balanceOf(userAddress)
|
|
@@ -10,8 +13,8 @@ export const fetchTokenBalance = async (address, userAddress, provider) => {
|
|
|
10
13
|
};
|
|
11
14
|
export const calcLatestSrcBalance = async (provider, selectedAddress, tokenAddress, chainId) => {
|
|
12
15
|
if (tokenAddress && chainId) {
|
|
13
|
-
if (tokenAddress ===
|
|
14
|
-
const ethersProvider = new
|
|
16
|
+
if (tokenAddress === AddressZero) {
|
|
17
|
+
const ethersProvider = new Web3Provider(provider);
|
|
15
18
|
return await ethersProvider.getBalance(getAddress(selectedAddress));
|
|
16
19
|
}
|
|
17
20
|
return await fetchTokenBalance(tokenAddress, selectedAddress, provider);
|
|
@@ -20,6 +23,6 @@ export const calcLatestSrcBalance = async (provider, selectedAddress, tokenAddre
|
|
|
20
23
|
};
|
|
21
24
|
export const hasSufficientBalance = async (provider, selectedAddress, tokenAddress, fromTokenAmount, chainId) => {
|
|
22
25
|
const srcTokenBalance = await calcLatestSrcBalance(provider, selectedAddress, tokenAddress, chainId);
|
|
23
|
-
return srcTokenBalance ? srcTokenBalance
|
|
26
|
+
return srcTokenBalance ? srcTokenBalance.gte(fromTokenAmount) : false;
|
|
24
27
|
};
|
|
25
28
|
//# sourceMappingURL=balance.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance.mjs","sourceRoot":"","sources":["../../src/utils/balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"balance.mjs","sourceRoot":"","sources":["../../src/utils/balance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,+BAA+B;AAEpD,OAAO,EAAE,WAAW,EAAE,iCAAiC;AACvD,OAAO,EAAE,QAAQ,EAAE,iCAAiC;AACpD,OAAO,EAAE,YAAY,EAAE,iCAAiC;AACxD,OAAO,EAAE,QAAQ,EAAE,oCAAoC;AAIvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,OAAe,EACf,WAAmB,EACnB,QAAkB,EACc,EAAE;IAClC,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACtE,MAAM,mBAAmB,GACvB,OAAO,aAAa,EAAE,SAAS,KAAK,UAAU;QAC5C,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC;QACtC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjC,OAAO,MAAM,mBAAmB,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,QAAkB,EAClB,eAAuB,EACvB,YAAoB,EACpB,OAAY,EACoB,EAAE;IAClC,IAAI,YAAY,IAAI,OAAO,EAAE;QAC3B,IAAI,YAAY,KAAK,WAAW,EAAE;YAChC,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;YAClD,OAAO,MAAM,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;SACrE;QACD,OAAO,MAAM,iBAAiB,CAAC,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;KACzE;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,QAAkB,EAClB,eAAuB,EACvB,YAAoB,EACpB,eAAuB,EACvB,OAAY,EACZ,EAAE;IACF,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAChD,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,OAAO,CACR,CAAC;IAEF,OAAO,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACxE,CAAC,CAAC","sourcesContent":["import { getAddress } from '@ethersproject/address';\nimport type { BigNumber } from '@ethersproject/bignumber';\nimport { AddressZero } from '@ethersproject/constants';\nimport { Contract } from '@ethersproject/contracts';\nimport { Web3Provider } from '@ethersproject/providers';\nimport { abiERC20 } from '@metamask/metamask-eth-abis';\nimport type { Provider } from '@metamask/network-controller';\nimport type { Hex } from '@metamask/utils';\n\nexport const fetchTokenBalance = async (\n address: string,\n userAddress: string,\n provider: Provider,\n): Promise<BigNumber | undefined> => {\n const ethersProvider = new Web3Provider(provider);\n const tokenContract = new Contract(address, abiERC20, ethersProvider);\n const tokenBalancePromise =\n typeof tokenContract?.balanceOf === 'function'\n ? tokenContract.balanceOf(userAddress)\n : Promise.resolve(undefined);\n return await tokenBalancePromise;\n};\n\nexport const calcLatestSrcBalance = async (\n provider: Provider,\n selectedAddress: string,\n tokenAddress: string,\n chainId: Hex,\n): Promise<BigNumber | undefined> => {\n if (tokenAddress && chainId) {\n if (tokenAddress === AddressZero) {\n const ethersProvider = new Web3Provider(provider);\n return await ethersProvider.getBalance(getAddress(selectedAddress));\n }\n return await fetchTokenBalance(tokenAddress, selectedAddress, provider);\n }\n return undefined;\n};\n\nexport const hasSufficientBalance = async (\n provider: Provider,\n selectedAddress: string,\n tokenAddress: string,\n fromTokenAmount: string,\n chainId: Hex,\n) => {\n const srcTokenBalance = await calcLatestSrcBalance(\n provider,\n selectedAddress,\n tokenAddress,\n chainId,\n );\n\n return srcTokenBalance ? srcTokenBalance.gte(fromTokenAmount) : false;\n};\n"]}
|
package/dist/utils/bridge.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isSwapsDefaultTokenSymbol = exports.isSwapsDefaultTokenAddress = exports.sumHexes = exports.isEthUsdt = exports.getEthUsdtResetData = exports.getBridgeApiBaseUrl = exports.getDefaultBridgeControllerState = void 0;
|
|
4
|
+
const contracts_1 = require("@ethersproject/contracts");
|
|
4
5
|
const metamask_eth_abis_1 = require("@metamask/metamask-eth-abis");
|
|
5
|
-
const ethers_1 = require("ethers");
|
|
6
6
|
const bridge_1 = require("../constants/bridge.cjs");
|
|
7
7
|
const chains_1 = require("../constants/chains.cjs");
|
|
8
8
|
const tokens_1 = require("../constants/tokens.cjs");
|
|
@@ -26,7 +26,7 @@ exports.getBridgeApiBaseUrl = getBridgeApiBaseUrl;
|
|
|
26
26
|
* @returns The txParam data that will reset allowance to 0, combine it with the approval tx params received from Bridge API
|
|
27
27
|
*/
|
|
28
28
|
const getEthUsdtResetData = () => {
|
|
29
|
-
const UsdtContractInterface = new
|
|
29
|
+
const UsdtContractInterface = new contracts_1.Contract(bridge_1.ETH_USDT_ADDRESS, metamask_eth_abis_1.abiERC20)
|
|
30
30
|
.interface;
|
|
31
31
|
const data = UsdtContractInterface.encodeFunctionData('approve', [
|
|
32
32
|
bridge_1.METABRIDGE_ETHEREUM_ADDRESS,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.cjs","sourceRoot":"","sources":["../../src/utils/bridge.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"bridge.cjs","sourceRoot":"","sources":["../../src/utils/bridge.ts"],"names":[],"mappings":";;;AAAA,wDAAoD;AACpD,mEAAuD;AAGvD,oDAM6B;AAC7B,oDAAgD;AAChD,oDAAsE;AAG/D,MAAM,+BAA+B,GAAG,GAA0B,EAAE;IACzE,OAAO,wCAA+B,CAAC;AACzC,CAAC,CAAC;AAFW,QAAA,+BAA+B,mCAE1C;AAEK,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;QAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;KAC/C;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE;QACnC,OAAO,gCAAuB,CAAC;KAChC;IAED,OAAO,iCAAwB,CAAC;AAClC,CAAC,CAAC;AAVW,QAAA,mBAAmB,uBAU9B;AACF;;;;GAIG;AAEI,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,qBAAqB,GAAG,IAAI,oBAAQ,CAAC,yBAAgB,EAAE,4BAAQ,CAAC;SACnE,SAAS,CAAC;IACb,MAAM,IAAI,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,SAAS,EAAE;QAC/D,oCAA2B;QAC3B,GAAG;KACJ,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AATW,QAAA,mBAAmB,uBAS9B;AAEK,MAAM,SAAS,GAAG,CAAC,OAAY,EAAE,OAAe,EAAE,EAAE,CACzD,OAAO,KAAK,kBAAS,CAAC,OAAO;IAC7B,OAAO,CAAC,WAAW,EAAE,KAAK,yBAAgB,CAAC,WAAW,EAAE,CAAC;AAF9C,QAAA,SAAS,aAEqC;AAEpD,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAoB,EAAO,EAAE;IACvD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAO,KAAK,CAAC;KACd;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,OAAO,KAAK,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AACjC,CAAC,CAAC;AAPW,QAAA,QAAQ,YAOnB;AACF;;;;;;;GAOG;AAEI,MAAM,0BAA0B,GAAG,CAAC,OAAe,EAAE,OAAY,EAAE,EAAE;IAC1E,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE;QACxB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,CACL,OAAO;QACP,wCAA+B,CAC7B,OAAuD,CACxD,EAAE,OAAO,CACX,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,0BAA0B,8BAWrC;AACF;;;;;;;GAOG;AAEI,MAAM,yBAAyB,GAAG,CAAC,MAAc,EAAE,OAAY,EAAE,EAAE;IACxE,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,CACL,MAAM;QACN,wCAA+B,CAC7B,OAAuD,CACxD,EAAE,MAAM,CACV,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,yBAAyB,6BAWpC","sourcesContent":["import { Contract } from '@ethersproject/contracts';\nimport { abiERC20 } from '@metamask/metamask-eth-abis';\nimport type { Hex } from '@metamask/utils';\n\nimport {\n DEFAULT_BRIDGE_CONTROLLER_STATE,\n BRIDGE_DEV_API_BASE_URL,\n BRIDGE_PROD_API_BASE_URL,\n ETH_USDT_ADDRESS,\n METABRIDGE_ETHEREUM_ADDRESS,\n} from '../constants/bridge';\nimport { CHAIN_IDS } from '../constants/chains';\nimport { SWAPS_CHAINID_DEFAULT_TOKEN_MAP } from '../constants/tokens';\nimport type { BridgeControllerState } from '../types';\n\nexport const getDefaultBridgeControllerState = (): BridgeControllerState => {\n return DEFAULT_BRIDGE_CONTROLLER_STATE;\n};\n\nexport const getBridgeApiBaseUrl = () => {\n if (process.env.BRIDGE_CUSTOM_API_BASE_URL) {\n return process.env.BRIDGE_CUSTOM_API_BASE_URL;\n }\n\n if (process.env.BRIDGE_USE_DEV_APIS) {\n return BRIDGE_DEV_API_BASE_URL;\n }\n\n return BRIDGE_PROD_API_BASE_URL;\n};\n/**\n * A function to return the txParam data for setting allowance to 0 for USDT on Ethereum\n *\n * @returns The txParam data that will reset allowance to 0, combine it with the approval tx params received from Bridge API\n */\n\nexport const getEthUsdtResetData = () => {\n const UsdtContractInterface = new Contract(ETH_USDT_ADDRESS, abiERC20)\n .interface;\n const data = UsdtContractInterface.encodeFunctionData('approve', [\n METABRIDGE_ETHEREUM_ADDRESS,\n '0',\n ]);\n\n return data;\n};\n\nexport const isEthUsdt = (chainId: Hex, address: string) =>\n chainId === CHAIN_IDS.MAINNET &&\n address.toLowerCase() === ETH_USDT_ADDRESS.toLowerCase();\n\nexport const sumHexes = (...hexStrings: string[]): Hex => {\n if (hexStrings.length === 0) {\n return '0x0';\n }\n\n const sum = hexStrings.reduce((acc, hex) => acc + BigInt(hex), BigInt(0));\n return `0x${sum.toString(16)}`;\n};\n/**\n * Checks whether the provided address is strictly equal to the address for\n * the default swaps token of the provided chain.\n *\n * @param address - The string to compare to the default token address\n * @param chainId - The hex encoded chain ID of the default swaps token to check\n * @returns Whether the address is the provided chain's default token address\n */\n\nexport const isSwapsDefaultTokenAddress = (address: string, chainId: Hex) => {\n if (!address || !chainId) {\n return false;\n }\n\n return (\n address ===\n SWAPS_CHAINID_DEFAULT_TOKEN_MAP[\n chainId as keyof typeof SWAPS_CHAINID_DEFAULT_TOKEN_MAP\n ]?.address\n );\n};\n/**\n * Checks whether the provided symbol is strictly equal to the symbol for\n * the default swaps token of the provided chain.\n *\n * @param symbol - The string to compare to the default token symbol\n * @param chainId - The hex encoded chain ID of the default swaps token to check\n * @returns Whether the symbol is the provided chain's default token symbol\n */\n\nexport const isSwapsDefaultTokenSymbol = (symbol: string, chainId: Hex) => {\n if (!symbol || !chainId) {\n return false;\n }\n\n return (\n symbol ===\n SWAPS_CHAINID_DEFAULT_TOKEN_MAP[\n chainId as keyof typeof SWAPS_CHAINID_DEFAULT_TOKEN_MAP\n ]?.symbol\n );\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.cts","sourceRoot":"","sources":["../../src/utils/bridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bridge.d.cts","sourceRoot":"","sources":["../../src/utils/bridge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAW3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAiB;AAEtD,eAAO,MAAM,+BAA+B,QAAO,qBAElD,CAAC;AAEF,eAAO,MAAM,mBAAmB,cAU/B,CAAC;AACF;;;;GAIG;AAEH,eAAO,MAAM,mBAAmB,cAS/B,CAAC;AAEF,eAAO,MAAM,SAAS,YAAa,GAAG,WAAW,MAAM,YAEG,CAAC;AAE3D,eAAO,MAAM,QAAQ,kBAAmB,MAAM,EAAE,KAAG,GAOlD,CAAC;AACF;;;;;;;GAOG;AAEH,eAAO,MAAM,0BAA0B,YAAa,MAAM,WAAW,GAAG,YAWvE,CAAC;AACF;;;;;;;GAOG;AAEH,eAAO,MAAM,yBAAyB,WAAY,MAAM,WAAW,GAAG,YAWrE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.mts","sourceRoot":"","sources":["../../src/utils/bridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bridge.d.mts","sourceRoot":"","sources":["../../src/utils/bridge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,wBAAwB;AAW3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAiB;AAEtD,eAAO,MAAM,+BAA+B,QAAO,qBAElD,CAAC;AAEF,eAAO,MAAM,mBAAmB,cAU/B,CAAC;AACF;;;;GAIG;AAEH,eAAO,MAAM,mBAAmB,cAS/B,CAAC;AAEF,eAAO,MAAM,SAAS,YAAa,GAAG,WAAW,MAAM,YAEG,CAAC;AAE3D,eAAO,MAAM,QAAQ,kBAAmB,MAAM,EAAE,KAAG,GAOlD,CAAC;AACF;;;;;;;GAOG;AAEH,eAAO,MAAM,0BAA0B,YAAa,MAAM,WAAW,GAAG,YAWvE,CAAC;AACF;;;;;;;GAOG;AAEH,eAAO,MAAM,yBAAyB,WAAY,MAAM,WAAW,GAAG,YAWrE,CAAC"}
|
package/dist/utils/bridge.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { Contract } from "@ethersproject/contracts";
|
|
1
2
|
import { abiERC20 } from "@metamask/metamask-eth-abis";
|
|
2
|
-
import { Contract } from "ethers";
|
|
3
3
|
import { DEFAULT_BRIDGE_CONTROLLER_STATE, BRIDGE_DEV_API_BASE_URL, BRIDGE_PROD_API_BASE_URL, ETH_USDT_ADDRESS, METABRIDGE_ETHEREUM_ADDRESS } from "../constants/bridge.mjs";
|
|
4
4
|
import { CHAIN_IDS } from "../constants/chains.mjs";
|
|
5
5
|
import { SWAPS_CHAINID_DEFAULT_TOKEN_MAP } from "../constants/tokens.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.mjs","sourceRoot":"","sources":["../../src/utils/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"bridge.mjs","sourceRoot":"","sources":["../../src/utils/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,iCAAiC;AACpD,OAAO,EAAE,QAAQ,EAAE,oCAAoC;AAGvD,OAAO,EACL,+BAA+B,EAC/B,uBAAuB,EACvB,wBAAwB,EACxB,gBAAgB,EAChB,2BAA2B,EAC5B,gCAA4B;AAC7B,OAAO,EAAE,SAAS,EAAE,gCAA4B;AAChD,OAAO,EAAE,+BAA+B,EAAE,gCAA4B;AAGtE,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAA0B,EAAE;IACzE,OAAO,+BAA+B,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;QAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;KAC/C;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE;QACnC,OAAO,uBAAuB,CAAC;KAChC;IAED,OAAO,wBAAwB,CAAC;AAClC,CAAC,CAAC;AACF;;;;GAIG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,qBAAqB,GAAG,IAAI,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC;SACnE,SAAS,CAAC;IACb,MAAM,IAAI,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,SAAS,EAAE;QAC/D,2BAA2B;QAC3B,GAAG;KACJ,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,OAAY,EAAE,OAAe,EAAE,EAAE,CACzD,OAAO,KAAK,SAAS,CAAC,OAAO;IAC7B,OAAO,CAAC,WAAW,EAAE,KAAK,gBAAgB,CAAC,WAAW,EAAE,CAAC;AAE3D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAoB,EAAO,EAAE;IACvD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,OAAO,KAAK,CAAC;KACd;IAED,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,OAAO,KAAK,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AACjC,CAAC,CAAC;AACF;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,OAAe,EAAE,OAAY,EAAE,EAAE;IAC1E,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE;QACxB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,CACL,OAAO;QACP,+BAA+B,CAC7B,OAAuD,CACxD,EAAE,OAAO,CACX,CAAC;AACJ,CAAC,CAAC;AACF;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,MAAc,EAAE,OAAY,EAAE,EAAE;IACxE,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IAED,OAAO,CACL,MAAM;QACN,+BAA+B,CAC7B,OAAuD,CACxD,EAAE,MAAM,CACV,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { Contract } from '@ethersproject/contracts';\nimport { abiERC20 } from '@metamask/metamask-eth-abis';\nimport type { Hex } from '@metamask/utils';\n\nimport {\n DEFAULT_BRIDGE_CONTROLLER_STATE,\n BRIDGE_DEV_API_BASE_URL,\n BRIDGE_PROD_API_BASE_URL,\n ETH_USDT_ADDRESS,\n METABRIDGE_ETHEREUM_ADDRESS,\n} from '../constants/bridge';\nimport { CHAIN_IDS } from '../constants/chains';\nimport { SWAPS_CHAINID_DEFAULT_TOKEN_MAP } from '../constants/tokens';\nimport type { BridgeControllerState } from '../types';\n\nexport const getDefaultBridgeControllerState = (): BridgeControllerState => {\n return DEFAULT_BRIDGE_CONTROLLER_STATE;\n};\n\nexport const getBridgeApiBaseUrl = () => {\n if (process.env.BRIDGE_CUSTOM_API_BASE_URL) {\n return process.env.BRIDGE_CUSTOM_API_BASE_URL;\n }\n\n if (process.env.BRIDGE_USE_DEV_APIS) {\n return BRIDGE_DEV_API_BASE_URL;\n }\n\n return BRIDGE_PROD_API_BASE_URL;\n};\n/**\n * A function to return the txParam data for setting allowance to 0 for USDT on Ethereum\n *\n * @returns The txParam data that will reset allowance to 0, combine it with the approval tx params received from Bridge API\n */\n\nexport const getEthUsdtResetData = () => {\n const UsdtContractInterface = new Contract(ETH_USDT_ADDRESS, abiERC20)\n .interface;\n const data = UsdtContractInterface.encodeFunctionData('approve', [\n METABRIDGE_ETHEREUM_ADDRESS,\n '0',\n ]);\n\n return data;\n};\n\nexport const isEthUsdt = (chainId: Hex, address: string) =>\n chainId === CHAIN_IDS.MAINNET &&\n address.toLowerCase() === ETH_USDT_ADDRESS.toLowerCase();\n\nexport const sumHexes = (...hexStrings: string[]): Hex => {\n if (hexStrings.length === 0) {\n return '0x0';\n }\n\n const sum = hexStrings.reduce((acc, hex) => acc + BigInt(hex), BigInt(0));\n return `0x${sum.toString(16)}`;\n};\n/**\n * Checks whether the provided address is strictly equal to the address for\n * the default swaps token of the provided chain.\n *\n * @param address - The string to compare to the default token address\n * @param chainId - The hex encoded chain ID of the default swaps token to check\n * @returns Whether the address is the provided chain's default token address\n */\n\nexport const isSwapsDefaultTokenAddress = (address: string, chainId: Hex) => {\n if (!address || !chainId) {\n return false;\n }\n\n return (\n address ===\n SWAPS_CHAINID_DEFAULT_TOKEN_MAP[\n chainId as keyof typeof SWAPS_CHAINID_DEFAULT_TOKEN_MAP\n ]?.address\n );\n};\n/**\n * Checks whether the provided symbol is strictly equal to the symbol for\n * the default swaps token of the provided chain.\n *\n * @param symbol - The string to compare to the default token symbol\n * @param chainId - The hex encoded chain ID of the default swaps token to check\n * @returns Whether the symbol is the provided chain's default token symbol\n */\n\nexport const isSwapsDefaultTokenSymbol = (symbol: string, chainId: Hex) => {\n if (!symbol || !chainId) {\n return false;\n }\n\n return (\n symbol ===\n SWAPS_CHAINID_DEFAULT_TOKEN_MAP[\n chainId as keyof typeof SWAPS_CHAINID_DEFAULT_TOKEN_MAP\n ]?.symbol\n );\n};\n"]}
|
package/dist/utils/fetch.cjs
CHANGED
|
@@ -25,24 +25,25 @@ async function fetchBridgeFeatureFlags(clientId, fetchFn) {
|
|
|
25
25
|
const rawFeatureFlags = await fetchFn(url, {
|
|
26
26
|
headers: (0, exports.getClientIdHeader)(clientId),
|
|
27
27
|
});
|
|
28
|
-
if ((0, validators_1.
|
|
28
|
+
if ((0, validators_1.validateFeatureFlagsResponse)(rawFeatureFlags)) {
|
|
29
|
+
const getChainsObj = (chains) => Object.entries(chains).reduce((acc, [chainId, value]) => ({
|
|
30
|
+
...acc,
|
|
31
|
+
[(0, utils_1.numberToHex)(Number(chainId))]: value,
|
|
32
|
+
}), {});
|
|
29
33
|
return {
|
|
30
34
|
[types_1.BridgeFeatureFlagsKey.EXTENSION_CONFIG]: {
|
|
31
35
|
...rawFeatureFlags[types_1.BridgeFlag.EXTENSION_CONFIG],
|
|
32
|
-
chains:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
chains: getChainsObj(rawFeatureFlags[types_1.BridgeFlag.EXTENSION_CONFIG].chains),
|
|
37
|
+
},
|
|
38
|
+
[types_1.BridgeFeatureFlagsKey.MOBILE_CONFIG]: {
|
|
39
|
+
...rawFeatureFlags[types_1.BridgeFlag.MOBILE_CONFIG],
|
|
40
|
+
chains: getChainsObj(rawFeatureFlags[types_1.BridgeFlag.MOBILE_CONFIG].chains),
|
|
36
41
|
},
|
|
37
42
|
};
|
|
38
43
|
}
|
|
39
44
|
return {
|
|
40
|
-
[types_1.BridgeFeatureFlagsKey.EXTENSION_CONFIG]:
|
|
41
|
-
|
|
42
|
-
maxRefreshCount: 5,
|
|
43
|
-
support: false,
|
|
44
|
-
chains: {},
|
|
45
|
-
},
|
|
45
|
+
[types_1.BridgeFeatureFlagsKey.EXTENSION_CONFIG]: bridge_2.DEFAULT_FEATURE_FLAG_CONFIG,
|
|
46
|
+
[types_1.BridgeFeatureFlagsKey.MOBILE_CONFIG]: bridge_2.DEFAULT_FEATURE_FLAG_CONFIG,
|
|
46
47
|
};
|
|
47
48
|
}
|
|
48
49
|
exports.fetchBridgeFeatureFlags = fetchBridgeFeatureFlags;
|
|
@@ -69,7 +70,7 @@ async function fetchBridgeTokens(chainId, clientId, fetchFn) {
|
|
|
69
70
|
transformedTokens[nativeToken.address] = nativeToken;
|
|
70
71
|
}
|
|
71
72
|
tokens.forEach((token) => {
|
|
72
|
-
if ((0, validators_1.
|
|
73
|
+
if ((0, validators_1.validateSwapsTokenObject)(token) &&
|
|
73
74
|
!((0, bridge_1.isSwapsDefaultTokenSymbol)(token.symbol, chainId) ||
|
|
74
75
|
(0, bridge_1.isSwapsDefaultTokenAddress)(token.address, chainId))) {
|
|
75
76
|
transformedTokens[token.address] = token;
|
|
@@ -105,16 +106,7 @@ async function fetchBridgeQuotes(request, signal, clientId, fetchFn) {
|
|
|
105
106
|
signal,
|
|
106
107
|
});
|
|
107
108
|
const filteredQuotes = quotes.filter((quoteResponse) => {
|
|
108
|
-
|
|
109
|
-
return ((0, validators_1.validateResponse)(validators_1.QUOTE_RESPONSE_VALIDATORS, quoteResponse, url) &&
|
|
110
|
-
(0, validators_1.validateResponse)(validators_1.QUOTE_VALIDATORS, quote, url) &&
|
|
111
|
-
(0, validators_1.validateResponse)(validators_1.TOKEN_VALIDATORS, quote.srcAsset, url) &&
|
|
112
|
-
(0, validators_1.validateResponse)(validators_1.TOKEN_VALIDATORS, quote.destAsset, url) &&
|
|
113
|
-
(0, validators_1.validateResponse)(validators_1.TX_DATA_VALIDATORS, trade, url) &&
|
|
114
|
-
(0, validators_1.validateResponse)(validators_1.FEE_DATA_VALIDATORS, quote.feeData[types_1.FeeType.METABRIDGE], url) &&
|
|
115
|
-
(approval
|
|
116
|
-
? (0, validators_1.validateResponse)(validators_1.TX_DATA_VALIDATORS, approval, url)
|
|
117
|
-
: true));
|
|
109
|
+
return (0, validators_1.validateQuoteResponse)(quoteResponse);
|
|
118
110
|
});
|
|
119
111
|
return filteredQuotes;
|
|
120
112
|
}
|