@metamask-previews/bridge-controller 77.3.2-preview-bbd2df29f → 77.3.2-preview-34f2bcbf7

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 (195) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/bridge-controller.cjs.map +1 -1
  3. package/dist/bridge-controller.d.cts +3 -2
  4. package/dist/bridge-controller.d.cts.map +1 -1
  5. package/dist/bridge-controller.d.mts +3 -2
  6. package/dist/bridge-controller.d.mts.map +1 -1
  7. package/dist/bridge-controller.mjs +1 -1
  8. package/dist/bridge-controller.mjs.map +1 -1
  9. package/dist/index.cjs +36 -30
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.cts +14 -5
  12. package/dist/index.d.cts.map +1 -1
  13. package/dist/index.d.mts +14 -5
  14. package/dist/index.d.mts.map +1 -1
  15. package/dist/index.mjs +10 -4
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/selectors.cjs.map +1 -1
  18. package/dist/selectors.d.cts +5971 -6520
  19. package/dist/selectors.d.cts.map +1 -1
  20. package/dist/selectors.d.mts +5971 -6520
  21. package/dist/selectors.d.mts.map +1 -1
  22. package/dist/selectors.mjs.map +1 -1
  23. package/dist/types.cjs +1 -12
  24. package/dist/types.cjs.map +1 -1
  25. package/dist/types.d.cts +21 -41
  26. package/dist/types.d.cts.map +1 -1
  27. package/dist/types.d.mts +21 -41
  28. package/dist/types.d.mts.map +1 -1
  29. package/dist/types.mjs +0 -11
  30. package/dist/types.mjs.map +1 -1
  31. package/dist/utils/bridge.cjs +1 -0
  32. package/dist/utils/bridge.cjs.map +1 -1
  33. package/dist/utils/bridge.d.cts +4 -3
  34. package/dist/utils/bridge.d.cts.map +1 -1
  35. package/dist/utils/bridge.d.mts +4 -3
  36. package/dist/utils/bridge.d.mts.map +1 -1
  37. package/dist/utils/bridge.mjs +1 -0
  38. package/dist/utils/bridge.mjs.map +1 -1
  39. package/dist/utils/feature-flags.cjs +2 -2
  40. package/dist/utils/feature-flags.cjs.map +1 -1
  41. package/dist/utils/feature-flags.d.cts +1 -1
  42. package/dist/utils/feature-flags.d.mts +1 -1
  43. package/dist/utils/feature-flags.mjs +1 -1
  44. package/dist/utils/feature-flags.mjs.map +1 -1
  45. package/dist/utils/fetch.cjs +16 -11
  46. package/dist/utils/fetch.cjs.map +1 -1
  47. package/dist/utils/fetch.d.cts +3 -1
  48. package/dist/utils/fetch.d.cts.map +1 -1
  49. package/dist/utils/fetch.d.mts +3 -1
  50. package/dist/utils/fetch.d.mts.map +1 -1
  51. package/dist/utils/fetch.mjs +9 -4
  52. package/dist/utils/fetch.mjs.map +1 -1
  53. package/dist/utils/metrics/properties.cjs +2 -2
  54. package/dist/utils/metrics/properties.cjs.map +1 -1
  55. package/dist/utils/metrics/properties.d.cts +4 -2
  56. package/dist/utils/metrics/properties.d.cts.map +1 -1
  57. package/dist/utils/metrics/properties.d.mts +4 -2
  58. package/dist/utils/metrics/properties.d.mts.map +1 -1
  59. package/dist/utils/metrics/properties.mjs +1 -1
  60. package/dist/utils/metrics/properties.mjs.map +1 -1
  61. package/dist/utils/metrics/types.cjs.map +1 -1
  62. package/dist/utils/metrics/types.d.cts +2 -1
  63. package/dist/utils/metrics/types.d.cts.map +1 -1
  64. package/dist/utils/metrics/types.d.mts +2 -1
  65. package/dist/utils/metrics/types.d.mts.map +1 -1
  66. package/dist/utils/metrics/types.mjs.map +1 -1
  67. package/dist/utils/quote-fees.cjs +2 -1
  68. package/dist/utils/quote-fees.cjs.map +1 -1
  69. package/dist/utils/quote-fees.d.cts +2 -1
  70. package/dist/utils/quote-fees.d.cts.map +1 -1
  71. package/dist/utils/quote-fees.d.mts +2 -1
  72. package/dist/utils/quote-fees.d.mts.map +1 -1
  73. package/dist/utils/quote-fees.mjs +2 -1
  74. package/dist/utils/quote-fees.mjs.map +1 -1
  75. package/dist/utils/quote.cjs +3 -3
  76. package/dist/utils/quote.cjs.map +1 -1
  77. package/dist/utils/quote.d.cts +5 -2
  78. package/dist/utils/quote.d.cts.map +1 -1
  79. package/dist/utils/quote.d.mts +5 -2
  80. package/dist/utils/quote.d.mts.map +1 -1
  81. package/dist/utils/quote.mjs +2 -2
  82. package/dist/utils/quote.mjs.map +1 -1
  83. package/dist/utils/struct-error.cjs +16 -0
  84. package/dist/utils/struct-error.cjs.map +1 -0
  85. package/dist/utils/struct-error.d.cts +11 -0
  86. package/dist/utils/struct-error.d.cts.map +1 -0
  87. package/dist/utils/struct-error.d.mts +11 -0
  88. package/dist/utils/struct-error.d.mts.map +1 -0
  89. package/dist/utils/struct-error.mjs +12 -0
  90. package/dist/utils/struct-error.mjs.map +1 -0
  91. package/dist/utils/trade-utils.cjs +7 -66
  92. package/dist/utils/trade-utils.cjs.map +1 -1
  93. package/dist/utils/trade-utils.d.cts +1 -54
  94. package/dist/utils/trade-utils.d.cts.map +1 -1
  95. package/dist/utils/trade-utils.d.mts +1 -54
  96. package/dist/utils/trade-utils.d.mts.map +1 -1
  97. package/dist/utils/trade-utils.mjs +1 -56
  98. package/dist/utils/trade-utils.mjs.map +1 -1
  99. package/dist/validators/batch-sell.cjs +39 -0
  100. package/dist/validators/batch-sell.cjs.map +1 -0
  101. package/dist/validators/batch-sell.d.cts +79 -0
  102. package/dist/validators/batch-sell.d.cts.map +1 -0
  103. package/dist/validators/batch-sell.d.mts +79 -0
  104. package/dist/validators/batch-sell.d.mts.map +1 -0
  105. package/dist/validators/batch-sell.mjs +35 -0
  106. package/dist/validators/batch-sell.mjs.map +1 -0
  107. package/dist/validators/bridge-asset.cjs +42 -0
  108. package/dist/validators/bridge-asset.cjs.map +1 -0
  109. package/dist/validators/bridge-asset.d.cts +52 -0
  110. package/dist/validators/bridge-asset.d.cts.map +1 -0
  111. package/dist/validators/bridge-asset.d.mts +52 -0
  112. package/dist/validators/bridge-asset.d.mts.map +1 -0
  113. package/dist/validators/bridge-asset.mjs +38 -0
  114. package/dist/validators/bridge-asset.mjs.map +1 -0
  115. package/dist/validators/feature-flags.cjs +110 -0
  116. package/dist/validators/feature-flags.cjs.map +1 -0
  117. package/dist/validators/feature-flags.d.cts +264 -0
  118. package/dist/validators/feature-flags.d.cts.map +1 -0
  119. package/dist/validators/feature-flags.d.mts +264 -0
  120. package/dist/validators/feature-flags.d.mts.map +1 -0
  121. package/dist/validators/feature-flags.mjs +106 -0
  122. package/dist/validators/feature-flags.mjs.map +1 -0
  123. package/dist/validators/intent.cjs +122 -0
  124. package/dist/validators/intent.cjs.map +1 -0
  125. package/dist/validators/intent.d.cts +231 -0
  126. package/dist/validators/intent.d.cts.map +1 -0
  127. package/dist/validators/intent.d.mts +231 -0
  128. package/dist/validators/intent.d.mts.map +1 -0
  129. package/dist/validators/intent.mjs +119 -0
  130. package/dist/validators/intent.mjs.map +1 -0
  131. package/dist/validators/number.cjs +8 -0
  132. package/dist/validators/number.cjs.map +1 -0
  133. package/dist/validators/number.d.cts +4 -0
  134. package/dist/validators/number.d.cts.map +1 -0
  135. package/dist/validators/number.d.mts +4 -0
  136. package/dist/validators/number.d.mts.map +1 -0
  137. package/dist/validators/number.mjs +5 -0
  138. package/dist/validators/number.mjs.map +1 -0
  139. package/dist/validators/quote-response-v1.cjs +31 -0
  140. package/dist/validators/quote-response-v1.cjs.map +1 -0
  141. package/dist/validators/quote-response-v1.d.cts +658 -0
  142. package/dist/validators/quote-response-v1.d.cts.map +1 -0
  143. package/dist/validators/quote-response-v1.d.mts +658 -0
  144. package/dist/validators/quote-response-v1.d.mts.map +1 -0
  145. package/dist/validators/quote-response-v1.mjs +27 -0
  146. package/dist/validators/quote-response-v1.mjs.map +1 -0
  147. package/dist/validators/quote-stream-complete.cjs +29 -0
  148. package/dist/validators/quote-stream-complete.cjs.map +1 -0
  149. package/dist/validators/quote-stream-complete.d.cts +39 -0
  150. package/dist/validators/quote-stream-complete.d.cts.map +1 -0
  151. package/dist/validators/quote-stream-complete.d.mts +39 -0
  152. package/dist/validators/quote-stream-complete.d.mts.map +1 -0
  153. package/dist/validators/quote-stream-complete.mjs +25 -0
  154. package/dist/validators/quote-stream-complete.mjs.map +1 -0
  155. package/dist/validators/quote.cjs +96 -0
  156. package/dist/validators/quote.cjs.map +1 -0
  157. package/dist/validators/quote.d.cts +230 -0
  158. package/dist/validators/quote.d.cts.map +1 -0
  159. package/dist/validators/quote.d.mts +230 -0
  160. package/dist/validators/quote.d.mts.map +1 -0
  161. package/dist/validators/quote.mjs +93 -0
  162. package/dist/validators/quote.mjs.map +1 -0
  163. package/dist/validators/step.cjs +20 -0
  164. package/dist/validators/step.cjs.map +1 -0
  165. package/dist/validators/step.d.cts +148 -0
  166. package/dist/validators/step.d.cts.map +1 -0
  167. package/dist/validators/step.d.mts +148 -0
  168. package/dist/validators/step.d.mts.map +1 -0
  169. package/dist/validators/step.mjs +17 -0
  170. package/dist/validators/step.mjs.map +1 -0
  171. package/dist/validators/token-feature.cjs +22 -0
  172. package/dist/validators/token-feature.cjs.map +1 -0
  173. package/dist/validators/token-feature.d.cts +26 -0
  174. package/dist/validators/token-feature.d.cts.map +1 -0
  175. package/dist/validators/token-feature.d.mts +26 -0
  176. package/dist/validators/token-feature.d.mts.map +1 -0
  177. package/dist/validators/token-feature.mjs +18 -0
  178. package/dist/validators/token-feature.mjs.map +1 -0
  179. package/dist/validators/trade.cjs +94 -0
  180. package/dist/validators/trade.cjs.map +1 -0
  181. package/dist/validators/trade.d.cts +121 -0
  182. package/dist/validators/trade.d.cts.map +1 -0
  183. package/dist/validators/trade.d.mts +121 -0
  184. package/dist/validators/trade.d.mts.map +1 -0
  185. package/dist/validators/trade.mjs +86 -0
  186. package/dist/validators/trade.mjs.map +1 -0
  187. package/package.json +4 -4
  188. package/dist/utils/validators.cjs +0 -471
  189. package/dist/utils/validators.cjs.map +0 -1
  190. package/dist/utils/validators.d.cts +0 -1765
  191. package/dist/utils/validators.d.cts.map +0 -1
  192. package/dist/utils/validators.d.mts +0 -1765
  193. package/dist/utils/validators.d.mts.map +0 -1
  194. package/dist/utils/validators.mjs +0 -461
  195. package/dist/utils/validators.mjs.map +0 -1
@@ -0,0 +1,17 @@
1
+ import { type, enums, optional } from "@metamask/superstruct";
2
+ import { BridgeAssetSchema, ChainIdSchema } from "./bridge-asset.mjs";
3
+ export var ActionTypes;
4
+ (function (ActionTypes) {
5
+ ActionTypes["BRIDGE"] = "bridge";
6
+ ActionTypes["SWAP"] = "swap";
7
+ ActionTypes["REFUEL"] = "refuel";
8
+ })(ActionTypes || (ActionTypes = {}));
9
+ export const StepSchema = type({
10
+ action: enums(Object.values(ActionTypes)),
11
+ srcChainId: ChainIdSchema,
12
+ destChainId: optional(ChainIdSchema),
13
+ srcAsset: optional(BridgeAssetSchema),
14
+ destAsset: optional(BridgeAssetSchema),
15
+ });
16
+ export const RefuelDataSchema = StepSchema;
17
+ //# sourceMappingURL=step.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step.mjs","sourceRoot":"","sources":["../../src/validators/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,8BAA8B;AAE9D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,2BAAuB;AAElE,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,gCAAiB,CAAA;AACnB,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzC,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC;IACpC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC;IACrC,SAAS,EAAE,QAAQ,CAAC,iBAAiB,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC","sourcesContent":["import { type, enums, optional } from '@metamask/superstruct';\n\nimport { BridgeAssetSchema, ChainIdSchema } from './bridge-asset';\n\nexport enum ActionTypes {\n BRIDGE = 'bridge',\n SWAP = 'swap',\n REFUEL = 'refuel',\n}\n\nexport const StepSchema = type({\n action: enums(Object.values(ActionTypes)),\n srcChainId: ChainIdSchema,\n destChainId: optional(ChainIdSchema),\n srcAsset: optional(BridgeAssetSchema),\n destAsset: optional(BridgeAssetSchema),\n});\n\nexport const RefuelDataSchema = StepSchema;\n"]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateTokenFeature = exports.TokenFeatureSchema = exports.TokenFeatureType = void 0;
4
+ const superstruct_1 = require("@metamask/superstruct");
5
+ var TokenFeatureType;
6
+ (function (TokenFeatureType) {
7
+ TokenFeatureType["MALICIOUS"] = "Malicious";
8
+ TokenFeatureType["WARNING"] = "Warning";
9
+ TokenFeatureType["INFO"] = "Info";
10
+ TokenFeatureType["BENIGN"] = "Benign";
11
+ })(TokenFeatureType || (exports.TokenFeatureType = TokenFeatureType = {}));
12
+ exports.TokenFeatureSchema = (0, superstruct_1.type)({
13
+ feature_id: (0, superstruct_1.string)(),
14
+ type: (0, superstruct_1.enums)(Object.values(TokenFeatureType)),
15
+ description: (0, superstruct_1.string)(),
16
+ });
17
+ const validateTokenFeature = (data) => {
18
+ (0, superstruct_1.assert)(data, exports.TokenFeatureSchema);
19
+ return true;
20
+ };
21
+ exports.validateTokenFeature = validateTokenFeature;
22
+ //# sourceMappingURL=token-feature.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-feature.cjs","sourceRoot":"","sources":["../../src/validators/token-feature.ts"],"names":[],"mappings":";;;AAAA,uDAAoE;AAGpE,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,iCAAa,CAAA;IACb,qCAAiB,CAAA;AACnB,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAEY,QAAA,kBAAkB,GAAG,IAAA,kBAAI,EAAC;IACrC,UAAU,EAAE,IAAA,oBAAM,GAAE;IACpB,IAAI,EAAE,IAAA,mBAAK,EAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC5C,WAAW,EAAE,IAAA,oBAAM,GAAE;CACtB,CAAC,CAAC;AAEI,MAAM,oBAAoB,GAAG,CAClC,IAAa,EAC6B,EAAE;IAC5C,IAAA,oBAAM,EAAC,IAAI,EAAE,0BAAkB,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AALW,QAAA,oBAAoB,wBAK/B","sourcesContent":["import { type, string, enums, assert } from '@metamask/superstruct';\nimport type { Infer } from '@metamask/superstruct';\n\nexport enum TokenFeatureType {\n MALICIOUS = 'Malicious',\n WARNING = 'Warning',\n INFO = 'Info',\n BENIGN = 'Benign',\n}\n\nexport const TokenFeatureSchema = type({\n feature_id: string(),\n type: enums(Object.values(TokenFeatureType)),\n description: string(),\n});\n\nexport const validateTokenFeature = (\n data: unknown,\n): data is Infer<typeof TokenFeatureSchema> => {\n assert(data, TokenFeatureSchema);\n return true;\n};\n"]}
@@ -0,0 +1,26 @@
1
+ export declare enum TokenFeatureType {
2
+ MALICIOUS = "Malicious",
3
+ WARNING = "Warning",
4
+ INFO = "Info",
5
+ BENIGN = "Benign"
6
+ }
7
+ export declare const TokenFeatureSchema: import("@metamask/superstruct").Struct<{
8
+ type: TokenFeatureType;
9
+ feature_id: string;
10
+ description: string;
11
+ }, {
12
+ feature_id: import("@metamask/superstruct").Struct<string, null>;
13
+ type: import("@metamask/superstruct").Struct<TokenFeatureType, {
14
+ Malicious: TokenFeatureType.MALICIOUS;
15
+ Warning: TokenFeatureType.WARNING;
16
+ Info: TokenFeatureType.INFO;
17
+ Benign: TokenFeatureType.BENIGN;
18
+ }>;
19
+ description: import("@metamask/superstruct").Struct<string, null>;
20
+ }>;
21
+ export declare const validateTokenFeature: (data: unknown) => data is {
22
+ type: TokenFeatureType;
23
+ feature_id: string;
24
+ description: string;
25
+ };
26
+ //# sourceMappingURL=token-feature.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-feature.d.cts","sourceRoot":"","sources":["../../src/validators/token-feature.ts"],"names":[],"mappings":"AAGA,oBAAY,gBAAgB;IAC1B,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;EAI7B,CAAC;AAEH,eAAO,MAAM,oBAAoB,SACzB,OAAO;;;;CAId,CAAC"}
@@ -0,0 +1,26 @@
1
+ export declare enum TokenFeatureType {
2
+ MALICIOUS = "Malicious",
3
+ WARNING = "Warning",
4
+ INFO = "Info",
5
+ BENIGN = "Benign"
6
+ }
7
+ export declare const TokenFeatureSchema: import("@metamask/superstruct").Struct<{
8
+ type: TokenFeatureType;
9
+ feature_id: string;
10
+ description: string;
11
+ }, {
12
+ feature_id: import("@metamask/superstruct").Struct<string, null>;
13
+ type: import("@metamask/superstruct").Struct<TokenFeatureType, {
14
+ Malicious: TokenFeatureType.MALICIOUS;
15
+ Warning: TokenFeatureType.WARNING;
16
+ Info: TokenFeatureType.INFO;
17
+ Benign: TokenFeatureType.BENIGN;
18
+ }>;
19
+ description: import("@metamask/superstruct").Struct<string, null>;
20
+ }>;
21
+ export declare const validateTokenFeature: (data: unknown) => data is {
22
+ type: TokenFeatureType;
23
+ feature_id: string;
24
+ description: string;
25
+ };
26
+ //# sourceMappingURL=token-feature.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-feature.d.mts","sourceRoot":"","sources":["../../src/validators/token-feature.ts"],"names":[],"mappings":"AAGA,oBAAY,gBAAgB;IAC1B,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;EAI7B,CAAC;AAEH,eAAO,MAAM,oBAAoB,SACzB,OAAO;;;;CAId,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { type, string, enums, assert } from "@metamask/superstruct";
2
+ export var TokenFeatureType;
3
+ (function (TokenFeatureType) {
4
+ TokenFeatureType["MALICIOUS"] = "Malicious";
5
+ TokenFeatureType["WARNING"] = "Warning";
6
+ TokenFeatureType["INFO"] = "Info";
7
+ TokenFeatureType["BENIGN"] = "Benign";
8
+ })(TokenFeatureType || (TokenFeatureType = {}));
9
+ export const TokenFeatureSchema = type({
10
+ feature_id: string(),
11
+ type: enums(Object.values(TokenFeatureType)),
12
+ description: string(),
13
+ });
14
+ export const validateTokenFeature = (data) => {
15
+ assert(data, TokenFeatureSchema);
16
+ return true;
17
+ };
18
+ //# sourceMappingURL=token-feature.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-feature.mjs","sourceRoot":"","sources":["../../src/validators/token-feature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,8BAA8B;AAGpE,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,iCAAa,CAAA;IACb,qCAAiB,CAAA;AACnB,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;IACrC,UAAU,EAAE,MAAM,EAAE;IACpB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC5C,WAAW,EAAE,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAa,EAC6B,EAAE;IAC5C,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACjC,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","sourcesContent":["import { type, string, enums, assert } from '@metamask/superstruct';\nimport type { Infer } from '@metamask/superstruct';\n\nexport enum TokenFeatureType {\n MALICIOUS = 'Malicious',\n WARNING = 'Warning',\n INFO = 'Info',\n BENIGN = 'Benign',\n}\n\nexport const TokenFeatureSchema = type({\n feature_id: string(),\n type: enums(Object.values(TokenFeatureType)),\n description: string(),\n});\n\nexport const validateTokenFeature = (\n data: unknown,\n): data is Infer<typeof TokenFeatureSchema> => {\n assert(data, TokenFeatureSchema);\n return true;\n};\n"]}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isStellarTrade = exports.hasOwnProp = exports.isTronTrade = exports.isBitcoinTrade = exports.isEvmTxData = exports.StellarTradeDataSchema = exports.TronTradeDataSchema = exports.BitcoinTradeDataSchema = exports.TxDataSchema = exports.HexString = void 0;
4
+ /* eslint-disable no-restricted-syntax */
5
+ const superstruct_1 = require("@metamask/superstruct");
6
+ exports.HexString = (0, superstruct_1.define)('HexString', (value) => typeof value === 'string' && /^0x[a-zA-Z0-9]*$/u.test(value));
7
+ exports.TxDataSchema = (0, superstruct_1.type)({
8
+ chainId: (0, superstruct_1.number)(),
9
+ to: exports.HexString,
10
+ from: exports.HexString,
11
+ value: exports.HexString,
12
+ data: exports.HexString,
13
+ gasLimit: (0, superstruct_1.nullable)((0, superstruct_1.number)()),
14
+ effectiveGas: (0, superstruct_1.optional)((0, superstruct_1.number)()),
15
+ });
16
+ exports.BitcoinTradeDataSchema = (0, superstruct_1.type)({
17
+ unsignedPsbtBase64: (0, superstruct_1.string)(),
18
+ inputsToSign: (0, superstruct_1.nullable)((0, superstruct_1.array)((0, superstruct_1.type)({}))),
19
+ });
20
+ exports.TronTradeDataSchema = (0, superstruct_1.type)({
21
+ raw_data_hex: (0, superstruct_1.string)(),
22
+ visible: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
23
+ raw_data: (0, superstruct_1.optional)((0, superstruct_1.nullable)((0, superstruct_1.type)({
24
+ contract: (0, superstruct_1.optional)((0, superstruct_1.array)((0, superstruct_1.type)({
25
+ type: (0, superstruct_1.optional)((0, superstruct_1.string)()),
26
+ }))),
27
+ fee_limit: (0, superstruct_1.optional)((0, superstruct_1.number)()),
28
+ }))),
29
+ }); // Union type representing all possible trade formats (EVM, Solana, Bitcoin, Tron)
30
+ /**
31
+ * Stellar bridge quote: unsigned transaction envelope as XDR (base64).
32
+ */
33
+ exports.StellarTradeDataSchema = (0, superstruct_1.union)([
34
+ (0, superstruct_1.type)({ xdrBase64: (0, superstruct_1.string)() }),
35
+ (0, superstruct_1.type)({ xdr: (0, superstruct_1.string)() }),
36
+ ]);
37
+ /**
38
+ * Type guard to check if a trade is an EVM TxData object
39
+ *
40
+ * @param trade - The trade object to check
41
+ * @returns True if the trade is a TxData object with data property
42
+ */
43
+ const isEvmTxData = (trade) => {
44
+ return (typeof trade === 'object' &&
45
+ trade !== null &&
46
+ 'data' in trade &&
47
+ 'chainId' in trade &&
48
+ 'to' in trade);
49
+ };
50
+ exports.isEvmTxData = isEvmTxData;
51
+ /**
52
+ * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64
53
+ *
54
+ * @param trade - The trade object to check
55
+ * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property
56
+ */
57
+ const isBitcoinTrade = (trade) => {
58
+ return (typeof trade === 'object' && trade !== null && 'unsignedPsbtBase64' in trade);
59
+ };
60
+ exports.isBitcoinTrade = isBitcoinTrade;
61
+ /**
62
+ * Type guard to check if a trade is a Tron trade with raw_data_hex
63
+ *
64
+ * @param trade - The trade object to check
65
+ * @returns True if the trade is a Tron trade with raw_data_hex property
66
+ */
67
+ const isTronTrade = (trade) => {
68
+ return typeof trade === 'object' && trade !== null && 'raw_data_hex' in trade;
69
+ };
70
+ exports.isTronTrade = isTronTrade;
71
+ const hasOwnProp = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
72
+ exports.hasOwnProp = hasOwnProp;
73
+ /**
74
+ * Type guard to check if a trade is a Stellar trade with XDR (base64) payload
75
+ *
76
+ * @param trade - The trade object to check
77
+ * @returns True if the trade is a Stellar trade with xdrBase64 or xdr property
78
+ */
79
+ const isStellarTrade = (trade) => {
80
+ if (typeof trade !== 'object' || trade === null) {
81
+ return false;
82
+ }
83
+ if ((0, exports.hasOwnProp)(trade, 'xdrBase64') &&
84
+ typeof trade.xdrBase64 === 'string') {
85
+ return true;
86
+ }
87
+ if ((0, exports.hasOwnProp)(trade, 'xdr') &&
88
+ typeof trade.xdr === 'string') {
89
+ return true;
90
+ }
91
+ return false;
92
+ };
93
+ exports.isStellarTrade = isStellarTrade;
94
+ //# sourceMappingURL=trade.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade.cjs","sourceRoot":"","sources":["../../src/validators/trade.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-restricted-syntax */\nimport {\n type,\n number,\n nullable,\n optional,\n string,\n array,\n boolean,\n define,\n union,\n} from '@metamask/superstruct';\nimport type { Infer } from '@metamask/superstruct';\n\nexport const HexString = define<`0x${string}`>(\n 'HexString',\n (value: unknown): value is `0x${string}` =>\n typeof value === 'string' && /^0x[a-zA-Z0-9]*$/u.test(value),\n);\n\nexport const TxDataSchema = type({\n chainId: number(),\n to: HexString,\n from: HexString,\n value: HexString,\n data: HexString,\n gasLimit: nullable(number()),\n effectiveGas: optional(number()),\n});\n\nexport const BitcoinTradeDataSchema = type({\n unsignedPsbtBase64: string(),\n inputsToSign: nullable(array(type({}))),\n});\n\nexport const TronTradeDataSchema = type({\n raw_data_hex: string(),\n visible: optional(boolean()),\n raw_data: optional(\n nullable(\n type({\n contract: optional(\n array(\n type({\n type: optional(string()),\n }),\n ),\n ),\n fee_limit: optional(number()),\n }),\n ),\n ),\n}); // Union type representing all possible trade formats (EVM, Solana, Bitcoin, Tron)\n\n/**\n * Stellar bridge quote: unsigned transaction envelope as XDR (base64).\n */\nexport const StellarTradeDataSchema = union([\n type({ xdrBase64: string() }),\n type({ xdr: string() }),\n]);\n\nexport type Trade =\n | TxData\n | string\n | BitcoinTradeData\n | TronTradeData\n | StellarTradeData;\n/**\n * Type guard to check if a trade is an EVM TxData object\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a TxData object with data property\n */\n\nexport const isEvmTxData = (trade: Trade): trade is TxData => {\n return (\n typeof trade === 'object' &&\n trade !== null &&\n 'data' in trade &&\n 'chainId' in trade &&\n 'to' in trade\n );\n};\n/**\n * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property\n */\n\nexport const isBitcoinTrade = (trade: Trade): trade is BitcoinTradeData => {\n return (\n typeof trade === 'object' && trade !== null && 'unsignedPsbtBase64' in trade\n );\n};\n/**\n * Type guard to check if a trade is a Tron trade with raw_data_hex\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Tron trade with raw_data_hex property\n */\n\nexport const isTronTrade = (trade: Trade): trade is TronTradeData => {\n return typeof trade === 'object' && trade !== null && 'raw_data_hex' in trade;\n};\n\nexport const hasOwnProp = (obj: object, key: PropertyKey): boolean =>\n Object.prototype.hasOwnProperty.call(obj, key);\n\n/**\n * Type guard to check if a trade is a Stellar trade with XDR (base64) payload\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Stellar trade with xdrBase64 or xdr property\n */\nexport const isStellarTrade = (trade: Trade): trade is StellarTradeData => {\n if (typeof trade !== 'object' || trade === null) {\n return false;\n }\n if (\n hasOwnProp(trade, 'xdrBase64') &&\n typeof (trade as { xdrBase64: unknown }).xdrBase64 === 'string'\n ) {\n return true;\n }\n if (\n hasOwnProp(trade, 'xdr') &&\n typeof (trade as { xdr: unknown }).xdr === 'string'\n ) {\n return true;\n }\n return false;\n};\n\nexport type BitcoinTradeData = Infer<typeof BitcoinTradeDataSchema>;\n\nexport type TronTradeData = Infer<typeof TronTradeDataSchema>;\nexport type TxData = Infer<typeof TxDataSchema>;\nexport type StellarTradeData = Infer<typeof StellarTradeDataSchema>;\n"]}
@@ -0,0 +1,121 @@
1
+ import type { Infer } from "@metamask/superstruct";
2
+ export declare const HexString: import("@metamask/superstruct").Struct<`0x${string}`, null>;
3
+ export declare const TxDataSchema: import("@metamask/superstruct").Struct<{
4
+ chainId: number;
5
+ to: `0x${string}`;
6
+ from: `0x${string}`;
7
+ value: `0x${string}`;
8
+ data: `0x${string}`;
9
+ gasLimit: number | null;
10
+ effectiveGas?: number | undefined;
11
+ }, {
12
+ chainId: import("@metamask/superstruct").Struct<number, null>;
13
+ to: import("@metamask/superstruct").Struct<`0x${string}`, null>;
14
+ from: import("@metamask/superstruct").Struct<`0x${string}`, null>;
15
+ value: import("@metamask/superstruct").Struct<`0x${string}`, null>;
16
+ data: import("@metamask/superstruct").Struct<`0x${string}`, null>;
17
+ gasLimit: import("@metamask/superstruct").Struct<number | null, null>;
18
+ effectiveGas: import("@metamask/superstruct").Struct<number | undefined, null>;
19
+ }>;
20
+ export declare const BitcoinTradeDataSchema: import("@metamask/superstruct").Struct<{
21
+ unsignedPsbtBase64: string;
22
+ inputsToSign: {}[] | null;
23
+ }, {
24
+ unsignedPsbtBase64: import("@metamask/superstruct").Struct<string, null>;
25
+ inputsToSign: import("@metamask/superstruct").Struct<{}[] | null, import("@metamask/superstruct").Struct<{}, {}>>;
26
+ }>;
27
+ export declare const TronTradeDataSchema: import("@metamask/superstruct").Struct<{
28
+ raw_data_hex: string;
29
+ visible?: boolean | undefined;
30
+ raw_data?: {
31
+ contract?: {
32
+ type?: string | undefined;
33
+ }[] | undefined;
34
+ fee_limit?: number | undefined;
35
+ } | null | undefined;
36
+ }, {
37
+ raw_data_hex: import("@metamask/superstruct").Struct<string, null>;
38
+ visible: import("@metamask/superstruct").Struct<boolean | undefined, null>;
39
+ raw_data: import("@metamask/superstruct").Struct<{
40
+ contract?: {
41
+ type?: string | undefined;
42
+ }[] | undefined;
43
+ fee_limit?: number | undefined;
44
+ } | null | undefined, {
45
+ contract: import("@metamask/superstruct").Struct<{
46
+ type?: string | undefined;
47
+ }[] | undefined, import("@metamask/superstruct").Struct<{
48
+ type?: string | undefined;
49
+ }, {
50
+ type: import("@metamask/superstruct").Struct<string | undefined, null>;
51
+ }>>;
52
+ fee_limit: import("@metamask/superstruct").Struct<number | undefined, null>;
53
+ }>;
54
+ }>;
55
+ /**
56
+ * Stellar bridge quote: unsigned transaction envelope as XDR (base64).
57
+ */
58
+ export declare const StellarTradeDataSchema: import("@metamask/superstruct").Struct<{
59
+ xdrBase64: string;
60
+ } | {
61
+ xdr: string;
62
+ }, null>;
63
+ export type Trade = TxData | string | BitcoinTradeData | TronTradeData | StellarTradeData;
64
+ /**
65
+ * Type guard to check if a trade is an EVM TxData object
66
+ *
67
+ * @param trade - The trade object to check
68
+ * @returns True if the trade is a TxData object with data property
69
+ */
70
+ export declare const isEvmTxData: (trade: Trade) => trade is {
71
+ chainId: number;
72
+ to: `0x${string}`;
73
+ from: `0x${string}`;
74
+ value: `0x${string}`;
75
+ data: `0x${string}`;
76
+ gasLimit: number | null;
77
+ effectiveGas?: number | undefined;
78
+ };
79
+ /**
80
+ * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64
81
+ *
82
+ * @param trade - The trade object to check
83
+ * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property
84
+ */
85
+ export declare const isBitcoinTrade: (trade: Trade) => trade is {
86
+ unsignedPsbtBase64: string;
87
+ inputsToSign: {}[] | null;
88
+ };
89
+ /**
90
+ * Type guard to check if a trade is a Tron trade with raw_data_hex
91
+ *
92
+ * @param trade - The trade object to check
93
+ * @returns True if the trade is a Tron trade with raw_data_hex property
94
+ */
95
+ export declare const isTronTrade: (trade: Trade) => trade is {
96
+ raw_data_hex: string;
97
+ visible?: boolean | undefined;
98
+ raw_data?: {
99
+ contract?: {
100
+ type?: string | undefined;
101
+ }[] | undefined;
102
+ fee_limit?: number | undefined;
103
+ } | null | undefined;
104
+ };
105
+ export declare const hasOwnProp: (obj: object, key: PropertyKey) => boolean;
106
+ /**
107
+ * Type guard to check if a trade is a Stellar trade with XDR (base64) payload
108
+ *
109
+ * @param trade - The trade object to check
110
+ * @returns True if the trade is a Stellar trade with xdrBase64 or xdr property
111
+ */
112
+ export declare const isStellarTrade: (trade: Trade) => trade is {
113
+ xdrBase64: string;
114
+ } | {
115
+ xdr: string;
116
+ };
117
+ export type BitcoinTradeData = Infer<typeof BitcoinTradeDataSchema>;
118
+ export type TronTradeData = Infer<typeof TronTradeDataSchema>;
119
+ export type TxData = Infer<typeof TxDataSchema>;
120
+ export type StellarTradeData = Infer<typeof StellarTradeDataSchema>;
121
+ //# sourceMappingURL=trade.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade.d.cts","sourceRoot":"","sources":["../../src/validators/trade.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AAEnD,eAAO,MAAM,SAAS,6DAIrB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;EAQvB,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;EAGjC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;QAGjC,CAAC;AAEH,MAAM,MAAM,KAAK,GACb,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,aAAa,GACb,gBAAgB,CAAC;AACrB;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,UAAW,KAAK;;;;;;;;CAQvC,CAAC;AACF;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,UAAW,KAAK;;;CAI1C,CAAC;AACF;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,UAAW,KAAK;;;;;;;;;CAEvC,CAAC;AAEF,eAAO,MAAM,UAAU,QAAS,MAAM,OAAO,WAAW,KAAG,OACX,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAAW,KAAK;;;;CAiB1C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC9D,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAChD,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,121 @@
1
+ import type { Infer } from "@metamask/superstruct";
2
+ export declare const HexString: import("@metamask/superstruct").Struct<`0x${string}`, null>;
3
+ export declare const TxDataSchema: import("@metamask/superstruct").Struct<{
4
+ chainId: number;
5
+ to: `0x${string}`;
6
+ from: `0x${string}`;
7
+ value: `0x${string}`;
8
+ data: `0x${string}`;
9
+ gasLimit: number | null;
10
+ effectiveGas?: number | undefined;
11
+ }, {
12
+ chainId: import("@metamask/superstruct").Struct<number, null>;
13
+ to: import("@metamask/superstruct").Struct<`0x${string}`, null>;
14
+ from: import("@metamask/superstruct").Struct<`0x${string}`, null>;
15
+ value: import("@metamask/superstruct").Struct<`0x${string}`, null>;
16
+ data: import("@metamask/superstruct").Struct<`0x${string}`, null>;
17
+ gasLimit: import("@metamask/superstruct").Struct<number | null, null>;
18
+ effectiveGas: import("@metamask/superstruct").Struct<number | undefined, null>;
19
+ }>;
20
+ export declare const BitcoinTradeDataSchema: import("@metamask/superstruct").Struct<{
21
+ unsignedPsbtBase64: string;
22
+ inputsToSign: {}[] | null;
23
+ }, {
24
+ unsignedPsbtBase64: import("@metamask/superstruct").Struct<string, null>;
25
+ inputsToSign: import("@metamask/superstruct").Struct<{}[] | null, import("@metamask/superstruct").Struct<{}, {}>>;
26
+ }>;
27
+ export declare const TronTradeDataSchema: import("@metamask/superstruct").Struct<{
28
+ raw_data_hex: string;
29
+ visible?: boolean | undefined;
30
+ raw_data?: {
31
+ contract?: {
32
+ type?: string | undefined;
33
+ }[] | undefined;
34
+ fee_limit?: number | undefined;
35
+ } | null | undefined;
36
+ }, {
37
+ raw_data_hex: import("@metamask/superstruct").Struct<string, null>;
38
+ visible: import("@metamask/superstruct").Struct<boolean | undefined, null>;
39
+ raw_data: import("@metamask/superstruct").Struct<{
40
+ contract?: {
41
+ type?: string | undefined;
42
+ }[] | undefined;
43
+ fee_limit?: number | undefined;
44
+ } | null | undefined, {
45
+ contract: import("@metamask/superstruct").Struct<{
46
+ type?: string | undefined;
47
+ }[] | undefined, import("@metamask/superstruct").Struct<{
48
+ type?: string | undefined;
49
+ }, {
50
+ type: import("@metamask/superstruct").Struct<string | undefined, null>;
51
+ }>>;
52
+ fee_limit: import("@metamask/superstruct").Struct<number | undefined, null>;
53
+ }>;
54
+ }>;
55
+ /**
56
+ * Stellar bridge quote: unsigned transaction envelope as XDR (base64).
57
+ */
58
+ export declare const StellarTradeDataSchema: import("@metamask/superstruct").Struct<{
59
+ xdrBase64: string;
60
+ } | {
61
+ xdr: string;
62
+ }, null>;
63
+ export type Trade = TxData | string | BitcoinTradeData | TronTradeData | StellarTradeData;
64
+ /**
65
+ * Type guard to check if a trade is an EVM TxData object
66
+ *
67
+ * @param trade - The trade object to check
68
+ * @returns True if the trade is a TxData object with data property
69
+ */
70
+ export declare const isEvmTxData: (trade: Trade) => trade is {
71
+ chainId: number;
72
+ to: `0x${string}`;
73
+ from: `0x${string}`;
74
+ value: `0x${string}`;
75
+ data: `0x${string}`;
76
+ gasLimit: number | null;
77
+ effectiveGas?: number | undefined;
78
+ };
79
+ /**
80
+ * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64
81
+ *
82
+ * @param trade - The trade object to check
83
+ * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property
84
+ */
85
+ export declare const isBitcoinTrade: (trade: Trade) => trade is {
86
+ unsignedPsbtBase64: string;
87
+ inputsToSign: {}[] | null;
88
+ };
89
+ /**
90
+ * Type guard to check if a trade is a Tron trade with raw_data_hex
91
+ *
92
+ * @param trade - The trade object to check
93
+ * @returns True if the trade is a Tron trade with raw_data_hex property
94
+ */
95
+ export declare const isTronTrade: (trade: Trade) => trade is {
96
+ raw_data_hex: string;
97
+ visible?: boolean | undefined;
98
+ raw_data?: {
99
+ contract?: {
100
+ type?: string | undefined;
101
+ }[] | undefined;
102
+ fee_limit?: number | undefined;
103
+ } | null | undefined;
104
+ };
105
+ export declare const hasOwnProp: (obj: object, key: PropertyKey) => boolean;
106
+ /**
107
+ * Type guard to check if a trade is a Stellar trade with XDR (base64) payload
108
+ *
109
+ * @param trade - The trade object to check
110
+ * @returns True if the trade is a Stellar trade with xdrBase64 or xdr property
111
+ */
112
+ export declare const isStellarTrade: (trade: Trade) => trade is {
113
+ xdrBase64: string;
114
+ } | {
115
+ xdr: string;
116
+ };
117
+ export type BitcoinTradeData = Infer<typeof BitcoinTradeDataSchema>;
118
+ export type TronTradeData = Infer<typeof TronTradeDataSchema>;
119
+ export type TxData = Infer<typeof TxDataSchema>;
120
+ export type StellarTradeData = Infer<typeof StellarTradeDataSchema>;
121
+ //# sourceMappingURL=trade.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade.d.mts","sourceRoot":"","sources":["../../src/validators/trade.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AAEnD,eAAO,MAAM,SAAS,6DAIrB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;EAQvB,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;EAGjC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB9B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;QAGjC,CAAC;AAEH,MAAM,MAAM,KAAK,GACb,MAAM,GACN,MAAM,GACN,gBAAgB,GAChB,aAAa,GACb,gBAAgB,CAAC;AACrB;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,UAAW,KAAK;;;;;;;;CAQvC,CAAC;AACF;;;;;GAKG;AAEH,eAAO,MAAM,cAAc,UAAW,KAAK;;;CAI1C,CAAC;AACF;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,UAAW,KAAK;;;;;;;;;CAEvC,CAAC;AAEF,eAAO,MAAM,UAAU,QAAS,MAAM,OAAO,WAAW,KAAG,OACX,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAAW,KAAK;;;;CAiB1C,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAC9D,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAChD,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,86 @@
1
+ /* eslint-disable no-restricted-syntax */
2
+ import { type, number, nullable, optional, string, array, boolean, define, union } from "@metamask/superstruct";
3
+ export const HexString = define('HexString', (value) => typeof value === 'string' && /^0x[a-zA-Z0-9]*$/u.test(value));
4
+ export const TxDataSchema = type({
5
+ chainId: number(),
6
+ to: HexString,
7
+ from: HexString,
8
+ value: HexString,
9
+ data: HexString,
10
+ gasLimit: nullable(number()),
11
+ effectiveGas: optional(number()),
12
+ });
13
+ export const BitcoinTradeDataSchema = type({
14
+ unsignedPsbtBase64: string(),
15
+ inputsToSign: nullable(array(type({}))),
16
+ });
17
+ export const TronTradeDataSchema = type({
18
+ raw_data_hex: string(),
19
+ visible: optional(boolean()),
20
+ raw_data: optional(nullable(type({
21
+ contract: optional(array(type({
22
+ type: optional(string()),
23
+ }))),
24
+ fee_limit: optional(number()),
25
+ }))),
26
+ }); // Union type representing all possible trade formats (EVM, Solana, Bitcoin, Tron)
27
+ /**
28
+ * Stellar bridge quote: unsigned transaction envelope as XDR (base64).
29
+ */
30
+ export const StellarTradeDataSchema = union([
31
+ type({ xdrBase64: string() }),
32
+ type({ xdr: string() }),
33
+ ]);
34
+ /**
35
+ * Type guard to check if a trade is an EVM TxData object
36
+ *
37
+ * @param trade - The trade object to check
38
+ * @returns True if the trade is a TxData object with data property
39
+ */
40
+ export const isEvmTxData = (trade) => {
41
+ return (typeof trade === 'object' &&
42
+ trade !== null &&
43
+ 'data' in trade &&
44
+ 'chainId' in trade &&
45
+ 'to' in trade);
46
+ };
47
+ /**
48
+ * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64
49
+ *
50
+ * @param trade - The trade object to check
51
+ * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property
52
+ */
53
+ export const isBitcoinTrade = (trade) => {
54
+ return (typeof trade === 'object' && trade !== null && 'unsignedPsbtBase64' in trade);
55
+ };
56
+ /**
57
+ * Type guard to check if a trade is a Tron trade with raw_data_hex
58
+ *
59
+ * @param trade - The trade object to check
60
+ * @returns True if the trade is a Tron trade with raw_data_hex property
61
+ */
62
+ export const isTronTrade = (trade) => {
63
+ return typeof trade === 'object' && trade !== null && 'raw_data_hex' in trade;
64
+ };
65
+ export const hasOwnProp = (obj, key) => Object.prototype.hasOwnProperty.call(obj, key);
66
+ /**
67
+ * Type guard to check if a trade is a Stellar trade with XDR (base64) payload
68
+ *
69
+ * @param trade - The trade object to check
70
+ * @returns True if the trade is a Stellar trade with xdrBase64 or xdr property
71
+ */
72
+ export const isStellarTrade = (trade) => {
73
+ if (typeof trade !== 'object' || trade === null) {
74
+ return false;
75
+ }
76
+ if (hasOwnProp(trade, 'xdrBase64') &&
77
+ typeof trade.xdrBase64 === 'string') {
78
+ return true;
79
+ }
80
+ if (hasOwnProp(trade, 'xdr') &&
81
+ typeof trade.xdr === 'string') {
82
+ return true;
83
+ }
84
+ return false;
85
+ };
86
+ //# sourceMappingURL=trade.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade.mjs","sourceRoot":"","sources":["../../src/validators/trade.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-restricted-syntax */\nimport {\n type,\n number,\n nullable,\n optional,\n string,\n array,\n boolean,\n define,\n union,\n} from '@metamask/superstruct';\nimport type { Infer } from '@metamask/superstruct';\n\nexport const HexString = define<`0x${string}`>(\n 'HexString',\n (value: unknown): value is `0x${string}` =>\n typeof value === 'string' && /^0x[a-zA-Z0-9]*$/u.test(value),\n);\n\nexport const TxDataSchema = type({\n chainId: number(),\n to: HexString,\n from: HexString,\n value: HexString,\n data: HexString,\n gasLimit: nullable(number()),\n effectiveGas: optional(number()),\n});\n\nexport const BitcoinTradeDataSchema = type({\n unsignedPsbtBase64: string(),\n inputsToSign: nullable(array(type({}))),\n});\n\nexport const TronTradeDataSchema = type({\n raw_data_hex: string(),\n visible: optional(boolean()),\n raw_data: optional(\n nullable(\n type({\n contract: optional(\n array(\n type({\n type: optional(string()),\n }),\n ),\n ),\n fee_limit: optional(number()),\n }),\n ),\n ),\n}); // Union type representing all possible trade formats (EVM, Solana, Bitcoin, Tron)\n\n/**\n * Stellar bridge quote: unsigned transaction envelope as XDR (base64).\n */\nexport const StellarTradeDataSchema = union([\n type({ xdrBase64: string() }),\n type({ xdr: string() }),\n]);\n\nexport type Trade =\n | TxData\n | string\n | BitcoinTradeData\n | TronTradeData\n | StellarTradeData;\n/**\n * Type guard to check if a trade is an EVM TxData object\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a TxData object with data property\n */\n\nexport const isEvmTxData = (trade: Trade): trade is TxData => {\n return (\n typeof trade === 'object' &&\n trade !== null &&\n 'data' in trade &&\n 'chainId' in trade &&\n 'to' in trade\n );\n};\n/**\n * Type guard to check if a trade is a Bitcoin trade with unsignedPsbtBase64\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Bitcoin trade with unsignedPsbtBase64 property\n */\n\nexport const isBitcoinTrade = (trade: Trade): trade is BitcoinTradeData => {\n return (\n typeof trade === 'object' && trade !== null && 'unsignedPsbtBase64' in trade\n );\n};\n/**\n * Type guard to check if a trade is a Tron trade with raw_data_hex\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Tron trade with raw_data_hex property\n */\n\nexport const isTronTrade = (trade: Trade): trade is TronTradeData => {\n return typeof trade === 'object' && trade !== null && 'raw_data_hex' in trade;\n};\n\nexport const hasOwnProp = (obj: object, key: PropertyKey): boolean =>\n Object.prototype.hasOwnProperty.call(obj, key);\n\n/**\n * Type guard to check if a trade is a Stellar trade with XDR (base64) payload\n *\n * @param trade - The trade object to check\n * @returns True if the trade is a Stellar trade with xdrBase64 or xdr property\n */\nexport const isStellarTrade = (trade: Trade): trade is StellarTradeData => {\n if (typeof trade !== 'object' || trade === null) {\n return false;\n }\n if (\n hasOwnProp(trade, 'xdrBase64') &&\n typeof (trade as { xdrBase64: unknown }).xdrBase64 === 'string'\n ) {\n return true;\n }\n if (\n hasOwnProp(trade, 'xdr') &&\n typeof (trade as { xdr: unknown }).xdr === 'string'\n ) {\n return true;\n }\n return false;\n};\n\nexport type BitcoinTradeData = Infer<typeof BitcoinTradeDataSchema>;\n\nexport type TronTradeData = Infer<typeof TronTradeDataSchema>;\nexport type TxData = Infer<typeof TxDataSchema>;\nexport type StellarTradeData = Infer<typeof StellarTradeDataSchema>;\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/bridge-controller",
3
- "version": "77.3.2-preview-bbd2df29f",
3
+ "version": "77.3.2-preview-34f2bcbf7",
4
4
  "description": "Manages bridge-related quote fetching functionality for MetaMask",
5
5
  "keywords": [
6
6
  "Ethereum",
@@ -58,12 +58,12 @@
58
58
  "@ethersproject/contracts": "^5.7.0",
59
59
  "@ethersproject/providers": "^5.7.0",
60
60
  "@metamask/accounts-controller": "^39.0.4",
61
- "@metamask/assets-controller": "^10.0.1",
61
+ "@metamask/assets-controller": "^10.1.0",
62
62
  "@metamask/assets-controllers": "^109.3.0",
63
63
  "@metamask/base-controller": "^9.1.0",
64
64
  "@metamask/controller-utils": "^12.3.0",
65
65
  "@metamask/gas-fee-controller": "^26.2.4",
66
- "@metamask/keyring-api": "^23.3.0",
66
+ "@metamask/keyring-api": "^23.5.0",
67
67
  "@metamask/messenger": "^2.0.0",
68
68
  "@metamask/metamask-eth-abis": "^3.1.1",
69
69
  "@metamask/multichain-network-controller": "^3.2.1",
@@ -72,7 +72,7 @@
72
72
  "@metamask/profile-sync-controller": "^28.2.0",
73
73
  "@metamask/remote-feature-flag-controller": "^4.2.2",
74
74
  "@metamask/snaps-controllers": "^19.0.0",
75
- "@metamask/transaction-controller": "^68.2.2",
75
+ "@metamask/transaction-controller": "^68.3.0",
76
76
  "@metamask/utils": "^11.11.0",
77
77
  "bignumber.js": "^9.1.2",
78
78
  "reselect": "^5.1.1",