@debridge-finance/borderless-validation-sdk 0.0.9 → 0.0.11
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/README.md +20 -7
- package/dist/cjs/graylists/evm/token-permit-metadata.js +39 -6
- package/dist/cjs/graylists/evm/token-permit-metadata.js.map +1 -1
- package/dist/cjs/helpers/address.js +6 -0
- package/dist/cjs/helpers/address.js.map +1 -1
- package/dist/cjs/helpers/evm-intent-id.js +18 -14
- package/dist/cjs/helpers/evm-intent-id.js.map +1 -1
- package/dist/cjs/helpers/evm-trade-amounts.js +2 -1
- package/dist/cjs/helpers/evm-trade-amounts.js.map +1 -1
- package/dist/cjs/helpers/quote-mode.js +23 -0
- package/dist/cjs/helpers/quote-mode.js.map +1 -0
- package/dist/cjs/helpers/synthetic-native-wrap.js +13 -13
- package/dist/cjs/helpers/synthetic-native-wrap.js.map +1 -1
- package/dist/cjs/helpers/zod.js +55 -0
- package/dist/cjs/helpers/zod.js.map +1 -1
- package/dist/cjs/types/request.js +69 -54
- package/dist/cjs/types/request.js.map +1 -1
- package/dist/cjs/types/response.js +67 -66
- package/dist/cjs/types/response.js.map +1 -1
- package/dist/cjs/types/validation.js +5 -5
- package/dist/cjs/types/validation.js.map +1 -1
- package/dist/cjs/validations/accumulative-token.js +7 -1
- package/dist/cjs/validations/accumulative-token.js.map +1 -1
- package/dist/cjs/validations/cost-token.js +14 -4
- package/dist/cjs/validations/cost-token.js.map +1 -1
- package/dist/cjs/validations/echo-fields.js +8 -0
- package/dist/cjs/validations/echo-fields.js.map +1 -1
- package/dist/cjs/validations/evm-caveats.js +4 -3
- package/dist/cjs/validations/evm-caveats.js.map +1 -1
- package/dist/cjs/validations/evm-op-budget.js +14 -7
- package/dist/cjs/validations/evm-op-budget.js.map +1 -1
- package/dist/cjs/validations/evm-op-hook.js +19 -1
- package/dist/cjs/validations/evm-op-hook.js.map +1 -1
- package/dist/cjs/validations/evm-op-wrap.js +10 -4
- package/dist/cjs/validations/evm-op-wrap.js.map +1 -1
- package/dist/cjs/validations/evm-permit.js +4 -3
- package/dist/cjs/validations/evm-permit.js.map +1 -1
- package/dist/cjs/validations/evm-required-actions.js +3 -3
- package/dist/cjs/validations/evm-required-actions.js.map +1 -1
- package/dist/cjs/validations/evm-sign712-metamask.js +4 -3
- package/dist/cjs/validations/evm-sign712-metamask.js.map +1 -1
- package/dist/cjs/validations/evm-sign712.js +2 -2
- package/dist/cjs/validations/evm-sign712.js.map +1 -1
- package/dist/cjs/validations/evm-sign7702.js +2 -1
- package/dist/cjs/validations/evm-sign7702.js.map +1 -1
- package/dist/cjs/validations/external-call.js +15 -23
- package/dist/cjs/validations/external-call.js.map +1 -1
- package/dist/cjs/validations/hooks-common.js +82 -44
- package/dist/cjs/validations/hooks-common.js.map +1 -1
- package/dist/cjs/validations/intent-destinations.js +42 -16
- package/dist/cjs/validations/intent-destinations.js.map +1 -1
- package/dist/cjs/validations/intent-tokens.js +37 -25
- package/dist/cjs/validations/intent-tokens.js.map +1 -1
- package/dist/cjs/validations/intent.js +24 -10
- package/dist/cjs/validations/intent.js.map +1 -1
- package/dist/cjs/validations/required-actions.js +2 -2
- package/dist/cjs/validations/required-actions.js.map +1 -1
- package/dist/cjs/validations/solana-hook.js +35 -14
- package/dist/cjs/validations/solana-hook.js.map +1 -1
- package/dist/cjs/validations/solana-op-budget.js +28 -12
- package/dist/cjs/validations/solana-op-budget.js.map +1 -1
- package/dist/cjs/validations/solana-op-wrap.js +10 -5
- package/dist/cjs/validations/solana-op-wrap.js.map +1 -1
- package/dist/cjs/validations/solana-required-actions.js +3 -3
- package/dist/cjs/validations/solana-required-actions.js.map +1 -1
- package/dist/cjs/validations/solana-transaction.js +81 -45
- package/dist/cjs/validations/solana-transaction.js.map +1 -1
- package/dist/cjs/validations/trade-grouping.js +20 -3
- package/dist/cjs/validations/trade-grouping.js.map +1 -1
- package/dist/cjs/validations/trades.js +75 -109
- package/dist/cjs/validations/trades.js.map +1 -1
- package/dist/cjs/validator.js +98 -52
- package/dist/cjs/validator.js.map +1 -1
- package/dist/cjs/whitelists/environment-config.js +89 -56
- package/dist/cjs/whitelists/environment-config.js.map +1 -1
- package/dist/cjs/whitelists/evm/index.js +3 -1
- package/dist/cjs/whitelists/evm/index.js.map +1 -1
- package/dist/cjs/whitelists/solana/intent-signature.js +6 -10
- package/dist/cjs/whitelists/solana/intent-signature.js.map +1 -1
- package/dist/esm/graylists/evm/token-permit-metadata.js +39 -6
- package/dist/esm/graylists/evm/token-permit-metadata.js.map +1 -1
- package/dist/esm/helpers/address.js +6 -0
- package/dist/esm/helpers/address.js.map +1 -1
- package/dist/esm/helpers/evm-intent-id.js +18 -14
- package/dist/esm/helpers/evm-intent-id.js.map +1 -1
- package/dist/esm/helpers/evm-trade-amounts.js +2 -1
- package/dist/esm/helpers/evm-trade-amounts.js.map +1 -1
- package/dist/esm/helpers/quote-mode.js +17 -0
- package/dist/esm/helpers/quote-mode.js.map +1 -0
- package/dist/esm/helpers/synthetic-native-wrap.js +13 -13
- package/dist/esm/helpers/synthetic-native-wrap.js.map +1 -1
- package/dist/esm/helpers/zod.js +47 -0
- package/dist/esm/helpers/zod.js.map +1 -1
- package/dist/esm/types/request.js +69 -54
- package/dist/esm/types/request.js.map +1 -1
- package/dist/esm/types/response.js +67 -66
- package/dist/esm/types/response.js.map +1 -1
- package/dist/esm/types/validation.js +5 -5
- package/dist/esm/types/validation.js.map +1 -1
- package/dist/esm/validations/accumulative-token.js +7 -1
- package/dist/esm/validations/accumulative-token.js.map +1 -1
- package/dist/esm/validations/cost-token.js +14 -4
- package/dist/esm/validations/cost-token.js.map +1 -1
- package/dist/esm/validations/echo-fields.js +8 -0
- package/dist/esm/validations/echo-fields.js.map +1 -1
- package/dist/esm/validations/evm-caveats.js +4 -3
- package/dist/esm/validations/evm-caveats.js.map +1 -1
- package/dist/esm/validations/evm-op-budget.js +14 -7
- package/dist/esm/validations/evm-op-budget.js.map +1 -1
- package/dist/esm/validations/evm-op-hook.js +19 -1
- package/dist/esm/validations/evm-op-hook.js.map +1 -1
- package/dist/esm/validations/evm-op-wrap.js +10 -4
- package/dist/esm/validations/evm-op-wrap.js.map +1 -1
- package/dist/esm/validations/evm-permit.js +4 -3
- package/dist/esm/validations/evm-permit.js.map +1 -1
- package/dist/esm/validations/evm-required-actions.js +3 -3
- package/dist/esm/validations/evm-required-actions.js.map +1 -1
- package/dist/esm/validations/evm-sign712-metamask.js +1 -1
- package/dist/esm/validations/evm-sign712-metamask.js.map +1 -1
- package/dist/esm/validations/evm-sign712.js +2 -2
- package/dist/esm/validations/evm-sign712.js.map +1 -1
- package/dist/esm/validations/evm-sign7702.js +2 -1
- package/dist/esm/validations/evm-sign7702.js.map +1 -1
- package/dist/esm/validations/external-call.js +15 -23
- package/dist/esm/validations/external-call.js.map +1 -1
- package/dist/esm/validations/hooks-common.js +83 -45
- package/dist/esm/validations/hooks-common.js.map +1 -1
- package/dist/esm/validations/intent-destinations.js +43 -17
- package/dist/esm/validations/intent-destinations.js.map +1 -1
- package/dist/esm/validations/intent-tokens.js +37 -25
- package/dist/esm/validations/intent-tokens.js.map +1 -1
- package/dist/esm/validations/intent.js +24 -10
- package/dist/esm/validations/intent.js.map +1 -1
- package/dist/esm/validations/required-actions.js +2 -2
- package/dist/esm/validations/required-actions.js.map +1 -1
- package/dist/esm/validations/solana-hook.js +35 -14
- package/dist/esm/validations/solana-hook.js.map +1 -1
- package/dist/esm/validations/solana-op-budget.js +28 -12
- package/dist/esm/validations/solana-op-budget.js.map +1 -1
- package/dist/esm/validations/solana-op-wrap.js +10 -5
- package/dist/esm/validations/solana-op-wrap.js.map +1 -1
- package/dist/esm/validations/solana-required-actions.js +3 -3
- package/dist/esm/validations/solana-required-actions.js.map +1 -1
- package/dist/esm/validations/solana-transaction.js +81 -45
- package/dist/esm/validations/solana-transaction.js.map +1 -1
- package/dist/esm/validations/trade-grouping.js +21 -4
- package/dist/esm/validations/trade-grouping.js.map +1 -1
- package/dist/esm/validations/trades.js +75 -109
- package/dist/esm/validations/trades.js.map +1 -1
- package/dist/esm/validator.js +99 -53
- package/dist/esm/validator.js.map +1 -1
- package/dist/esm/whitelists/environment-config.js +84 -52
- package/dist/esm/whitelists/environment-config.js.map +1 -1
- package/dist/esm/whitelists/evm/index.js +1 -0
- package/dist/esm/whitelists/evm/index.js.map +1 -1
- package/dist/esm/whitelists/solana/intent-signature.js +4 -9
- package/dist/esm/whitelists/solana/intent-signature.js.map +1 -1
- package/dist/types/graylists/evm/token-permit-metadata.d.ts +2 -2
- package/dist/types/graylists/evm/token-permit-metadata.d.ts.map +1 -1
- package/dist/types/helpers/address.d.ts.map +1 -1
- package/dist/types/helpers/evm-trade-amounts.d.ts.map +1 -1
- package/dist/types/helpers/quote-mode.d.ts +6 -0
- package/dist/types/helpers/quote-mode.d.ts.map +1 -0
- package/dist/types/helpers/synthetic-native-wrap.d.ts.map +1 -1
- package/dist/types/helpers/zod.d.ts +9 -0
- package/dist/types/helpers/zod.d.ts.map +1 -1
- package/dist/types/types/request.d.ts +159 -159
- package/dist/types/types/request.d.ts.map +1 -1
- package/dist/types/types/response.d.ts +456 -456
- package/dist/types/types/response.d.ts.map +1 -1
- package/dist/types/types/validation.d.ts +5 -4
- package/dist/types/types/validation.d.ts.map +1 -1
- package/dist/types/validations/accumulative-token.d.ts +1 -1
- package/dist/types/validations/accumulative-token.d.ts.map +1 -1
- package/dist/types/validations/cost-token.d.ts.map +1 -1
- package/dist/types/validations/echo-fields.d.ts.map +1 -1
- package/dist/types/validations/evm-caveats.d.ts.map +1 -1
- package/dist/types/validations/evm-op-budget.d.ts +1 -1
- package/dist/types/validations/evm-op-budget.d.ts.map +1 -1
- package/dist/types/validations/evm-op-wrap.d.ts +1 -1
- package/dist/types/validations/evm-op-wrap.d.ts.map +1 -1
- package/dist/types/validations/evm-required-actions.d.ts +1 -1
- package/dist/types/validations/evm-required-actions.d.ts.map +1 -1
- package/dist/types/validations/evm-sign712-metamask.d.ts +1 -0
- package/dist/types/validations/evm-sign712-metamask.d.ts.map +1 -1
- package/dist/types/validations/evm-sign7702.d.ts.map +1 -1
- package/dist/types/validations/external-call.d.ts +2 -2
- package/dist/types/validations/external-call.d.ts.map +1 -1
- package/dist/types/validations/hooks-common.d.ts.map +1 -1
- package/dist/types/validations/intent-destinations.d.ts +3 -3
- package/dist/types/validations/intent-destinations.d.ts.map +1 -1
- package/dist/types/validations/intent-tokens.d.ts.map +1 -1
- package/dist/types/validations/intent.d.ts +1 -1
- package/dist/types/validations/intent.d.ts.map +1 -1
- package/dist/types/validations/required-actions.d.ts.map +1 -1
- package/dist/types/validations/solana-op-budget.d.ts +1 -1
- package/dist/types/validations/solana-op-budget.d.ts.map +1 -1
- package/dist/types/validations/solana-op-wrap.d.ts +1 -1
- package/dist/types/validations/solana-op-wrap.d.ts.map +1 -1
- package/dist/types/validations/solana-required-actions.d.ts +1 -1
- package/dist/types/validations/solana-required-actions.d.ts.map +1 -1
- package/dist/types/validations/solana-transaction.d.ts +2 -2
- package/dist/types/validations/solana-transaction.d.ts.map +1 -1
- package/dist/types/validations/trade-grouping.d.ts +2 -0
- package/dist/types/validations/trade-grouping.d.ts.map +1 -1
- package/dist/types/validator.d.ts.map +1 -1
- package/dist/types/whitelists/environment-config.d.ts +17 -0
- package/dist/types/whitelists/environment-config.d.ts.map +1 -1
- package/dist/types/whitelists/evm/index.d.ts +1 -0
- package/dist/types/whitelists/evm/index.d.ts.map +1 -1
- package/dist/types/whitelists/solana/intent-signature.d.ts +1 -0
- package/dist/types/whitelists/solana/intent-signature.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cjs/validator.js
CHANGED
|
@@ -18,78 +18,124 @@ const external_call_1 = require("./validations/external-call");
|
|
|
18
18
|
const trade_matching_1 = require("./validations/trade-matching");
|
|
19
19
|
const environment_config_1 = require("./whitelists/environment-config");
|
|
20
20
|
const synthetic_native_wrap_1 = require("./helpers/synthetic-native-wrap");
|
|
21
|
+
const quote_mode_1 = require("./helpers/quote-mode");
|
|
21
22
|
function createValidator(config) {
|
|
22
23
|
const envConfig = (0, environment_config_1.buildEnvironmentConfig)(config.environment);
|
|
23
24
|
const options = {
|
|
24
25
|
allowLegacyHookV1: config.allowLegacyHookV1 ?? true,
|
|
26
|
+
validateSolverExecutorAddress: config.validateSolverExecutorAddress ?? false,
|
|
25
27
|
};
|
|
26
28
|
return {
|
|
27
|
-
validate(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// TODO: uncomment in the future to enable url validation
|
|
31
|
-
// violations.push(...validateUrl(url));
|
|
32
|
-
const reqResult = types_1.BundleCreationRequestSchema.safeParse(request);
|
|
33
|
-
const resResult = types_1.BundleCreationResponseSchema.safeParse(response);
|
|
34
|
-
if (!reqResult.success) {
|
|
35
|
-
violations.push(...reqResult.error.issues.map((issue) => ({
|
|
36
|
-
code: types_1.ViolationCode.InvalidRequestStructure,
|
|
37
|
-
message: issue.message,
|
|
38
|
-
path: (0, zod_1.formatPath)(["request", ...issue.path]),
|
|
39
|
-
details: issue
|
|
40
|
-
})));
|
|
29
|
+
validate(url, request, response) {
|
|
30
|
+
try {
|
|
31
|
+
return validateInternal(url, request, response, envConfig, options);
|
|
41
32
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
code: types_1.ViolationCode.InvalidResponseStructure,
|
|
45
|
-
message: issue.message,
|
|
46
|
-
path: (0, zod_1.formatPath)(["response", ...issue.path]),
|
|
47
|
-
details: issue
|
|
48
|
-
})));
|
|
33
|
+
catch (error) {
|
|
34
|
+
return createUnexpectedValidationError(error);
|
|
49
35
|
}
|
|
50
|
-
if (!reqResult.success || !resResult.success) {
|
|
51
|
-
// If the structure is invalid, we can't do any meaningful validation,
|
|
52
|
-
// so we do not continue with field validations and just report
|
|
53
|
-
// the structure issues.
|
|
54
|
-
return { ok: false, violations };
|
|
55
|
-
}
|
|
56
|
-
violations.push(...validateBundleCreation(reqResult.data, resResult.data, envConfig, options));
|
|
57
|
-
return {
|
|
58
|
-
ok: violations.length === 0,
|
|
59
|
-
violations,
|
|
60
|
-
};
|
|
61
36
|
},
|
|
62
37
|
};
|
|
63
38
|
}
|
|
39
|
+
function validateInternal(_url, // TODO: not validated now, enable in the future
|
|
40
|
+
request, response, envConfig, options) {
|
|
41
|
+
const violations = [];
|
|
42
|
+
// TODO: uncomment in the future to enable url validation
|
|
43
|
+
// violations.push(...validateUrl(url));
|
|
44
|
+
const reqResult = types_1.BundleCreationRequestSchema.safeParse(request);
|
|
45
|
+
const resResult = types_1.BundleCreationResponseSchema.safeParse(response);
|
|
46
|
+
violations.push(...buildStructureViolations(reqResult, resResult));
|
|
47
|
+
if (!reqResult.success || !resResult.success) {
|
|
48
|
+
// If the structure is invalid, we can't do any meaningful validation,
|
|
49
|
+
// so we do not continue with field validations and just report
|
|
50
|
+
// the structure issues.
|
|
51
|
+
return { ok: false, violations };
|
|
52
|
+
}
|
|
53
|
+
violations.push(...validateBundleCreation(reqResult.data, resResult.data, envConfig, options));
|
|
54
|
+
return {
|
|
55
|
+
ok: violations.length === 0,
|
|
56
|
+
violations,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function buildStructureViolations(reqResult, resResult) {
|
|
60
|
+
const violations = [];
|
|
61
|
+
if (!reqResult.success) {
|
|
62
|
+
violations.push(...reqResult.error.issues.map((issue) => ({
|
|
63
|
+
code: types_1.ViolationCode.InvalidRequestStructure,
|
|
64
|
+
message: issue.message,
|
|
65
|
+
path: (0, zod_1.formatPath)(["request", ...issue.path]),
|
|
66
|
+
details: issue,
|
|
67
|
+
})));
|
|
68
|
+
}
|
|
69
|
+
if (!resResult.success) {
|
|
70
|
+
violations.push(...resResult.error.issues.map((issue) => ({
|
|
71
|
+
code: types_1.ViolationCode.InvalidResponseStructure,
|
|
72
|
+
message: issue.message,
|
|
73
|
+
path: (0, zod_1.formatPath)(["response", ...issue.path]),
|
|
74
|
+
details: issue,
|
|
75
|
+
})));
|
|
76
|
+
}
|
|
77
|
+
return violations;
|
|
78
|
+
}
|
|
79
|
+
function createUnexpectedValidationError(error) {
|
|
80
|
+
return {
|
|
81
|
+
ok: false,
|
|
82
|
+
violations: [{
|
|
83
|
+
code: types_1.ViolationCode.UnexpectedValidationError,
|
|
84
|
+
message: "validator failed with an unexpected internal error",
|
|
85
|
+
path: "",
|
|
86
|
+
details: error,
|
|
87
|
+
}],
|
|
88
|
+
};
|
|
89
|
+
}
|
|
64
90
|
function validateBundleCreation(request, response, envConfig, options) {
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const
|
|
70
|
-
const
|
|
91
|
+
const context = buildBundleValidationContext(request, response, envConfig, options);
|
|
92
|
+
return runBundleValidations(context);
|
|
93
|
+
}
|
|
94
|
+
function buildBundleValidationContext(request, response, envConfig, options) {
|
|
95
|
+
const modes = detectBundleModes(request, response);
|
|
96
|
+
const tradeMatch = (0, trade_matching_1.matchTrades)(request.trades, response.trades, modes.quoteMode, modes.consolidationMode);
|
|
97
|
+
const groupResult = (0, trade_grouping_1.groupTrades)(request.trades, response.trades, modes.quoteMode, modes.consolidationMode, tradeMatch.pairs);
|
|
98
|
+
const intentMatch = (0, trade_grouping_1.matchIntentsToGroups)(response.intents, groupResult.groups, modes.quoteMode);
|
|
99
|
+
return {
|
|
100
|
+
request,
|
|
101
|
+
response,
|
|
102
|
+
envConfig,
|
|
103
|
+
options,
|
|
104
|
+
modes,
|
|
105
|
+
tradeMatch,
|
|
106
|
+
groups: groupResult.groups,
|
|
107
|
+
groupViolations: groupResult.violations,
|
|
108
|
+
intentContexts: intentMatch.contexts,
|
|
109
|
+
intentMatchViolations: intentMatch.violations,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function detectBundleModes(request, response) {
|
|
113
|
+
return {
|
|
114
|
+
quoteMode: (0, quote_mode_1.isQuoteModeRequest)(request.trades),
|
|
115
|
+
consolidationMode: request.totalDstAmount !== undefined,
|
|
116
|
+
quoteGroupingUnverifiable: (0, quote_mode_1.hasUnverifiableQuoteGrouping)(request.trades),
|
|
117
|
+
syntheticNativeWrapMode: (0, synthetic_native_wrap_1.isSyntheticNativeWrapBundle)(request, response),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function runBundleValidations(context) {
|
|
121
|
+
const { request, response, envConfig, options, modes } = context;
|
|
71
122
|
return [
|
|
72
123
|
...(0, echo_fields_1.validateEchoFields)(request, response),
|
|
73
|
-
...tradeMatch.violations,
|
|
74
|
-
...(0, trades_1.validateTrades)(request, response, quoteMode, tradeMatch.pairs),
|
|
75
|
-
...(0, accumulative_token_1.validateAccumulativeTokens)(response, quoteMode),
|
|
124
|
+
...context.tradeMatch.violations,
|
|
125
|
+
...(0, trades_1.validateTrades)(request, response, modes.quoteMode, context.tradeMatch.pairs),
|
|
126
|
+
...(0, accumulative_token_1.validateAccumulativeTokens)(response, modes.quoteMode, modes.quoteGroupingUnverifiable),
|
|
76
127
|
...(0, total_dst_amount_1.validateTotalDstAmount)(request, response),
|
|
77
128
|
...(0, cost_token_1.validateCostToken)(request, response),
|
|
78
129
|
...(0, ptp_1.validatePtp)(request, response),
|
|
79
130
|
...(0, dln_metadata_1.validateRequestDlnMetadataFormat)(request.trades),
|
|
80
|
-
...(0, external_call_1.validateExternalCalls)(
|
|
81
|
-
...groupViolations,
|
|
82
|
-
...
|
|
83
|
-
...(0, intent_1.validateIntents)(
|
|
84
|
-
...(0, required_actions_1.validateRequiredActions)(request, response,
|
|
85
|
-
...(0, hooks_common_1.validateHooks)(request, response, quoteMode, envConfig, options),
|
|
131
|
+
...(0, external_call_1.validateExternalCalls)(modes.quoteMode, context.tradeMatch.pairs),
|
|
132
|
+
...context.groupViolations,
|
|
133
|
+
...context.intentMatchViolations,
|
|
134
|
+
...(0, intent_1.validateIntents)(context.intentContexts, modes.quoteMode, envConfig, modes.syntheticNativeWrapMode, options.validateSolverExecutorAddress),
|
|
135
|
+
...(0, required_actions_1.validateRequiredActions)(request, response, context.intentContexts, modes.quoteMode, envConfig, modes.syntheticNativeWrapMode),
|
|
136
|
+
...(0, hooks_common_1.validateHooks)(request, response, modes.quoteMode, envConfig, options),
|
|
86
137
|
];
|
|
87
138
|
}
|
|
88
|
-
function isQuoteMode(request) {
|
|
89
|
-
return !request.trades.every(t => t.srcChainAuthorityAddress !== undefined &&
|
|
90
|
-
t.dstChainTokenOutRecipient !== undefined &&
|
|
91
|
-
t.dstChainAuthorityAddress !== undefined);
|
|
92
|
-
}
|
|
93
139
|
// TODO: enable in the future
|
|
94
140
|
// // CRITICAL: url must point to the allowed bundle endpoint.
|
|
95
141
|
// // We compare path only (host is not validated). Trailing slashes are tolerated;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/validator.ts"],"names":[],"mappings":";;AA6DA,0CAyBC;AAtFD,mCAUiB;AACjB,uCAA2C;AAC3C,2DAA+D;AAC/D,qEAAyE;AACzE,6DAA2D;AAC3D,iDAAsD;AACtD,iDAAuD;AACvD,iEAKsC;AACtC,yEAA8E;AAC9E,yDAA6D;AAC7D,2CAAgD;AAChD,qEAAwE;AACxE,6DAA8E;AAC9E,+DAAoE;AACpE,iEAA6E;AAC7E,wEAAyE;AAGzE,2EAA8E;AAC9E,qDAAwF;AA2BxF,SAAgB,eAAe,CAAC,MAAuB;IACnD,MAAM,SAAS,GAAG,IAAA,2CAAsB,EAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAE7D,MAAM,OAAO,GAAqB;QAC9B,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,IAAI;QAEnD,6BAA6B,EACzB,MAAM,CAAC,6BAA6B,IAAI,KAAK;KACpD,CAAC;IAEF,OAAO;QACH,QAAQ,CACJ,GAAW,EACX,OAAe,EACf,QAAgB;YAEhB,IAAI,CAAC;gBACD,OAAO,gBAAgB,CACnB,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAC7C,CAAC;YACN,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,+BAA+B,CAAC,KAAK,CAAC,CAAC;YAClD,CAAC;QACL,CAAC;KACJ,CAAC;AACN,CAAC;AAED,SAAS,gBAAgB,CACrB,IAAY,EAAE,gDAAgD;AAC9D,OAAe,EACf,QAAgB,EAChB,SAA4B,EAC5B,OAAyB;IAEzB,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,yDAAyD;IACzD,wCAAwC;IAExC,MAAM,SAAS,GAAG,mCAA2B,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,oCAA4B,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEnE,UAAU,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnE,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC3C,sEAAsE;QACtE,+DAA+D;QAC/D,wBAAwB;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IACrC,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,GAAG,sBAAsB,CACrC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CACrD,CAAC,CAAC;IAEH,OAAO;QACH,EAAE,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;QAC3B,UAAU;KACb,CAAC;AACN,CAAC;AAED,SAAS,wBAAwB,CAC7B,SAAmE,EACnE,SAAoE;IAEpE,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACrB,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,qBAAa,CAAC,uBAAuB;YAC3C,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,IAAA,gBAAU,EAAC,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC,CAAC,CAAC;IACT,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACrB,UAAU,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,qBAAa,CAAC,wBAAwB;YAC5C,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,IAAA,gBAAU,EAAC,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC,CAAC,CAAC;IACT,CAAC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,+BAA+B,CAAC,KAAc;IACnD,OAAO;QACH,EAAE,EAAE,KAAK;QACT,UAAU,EAAE,CAAC;gBACT,IAAI,EAAE,qBAAa,CAAC,yBAAyB;gBAC7C,OAAO,EAAE,oDAAoD;gBAC7D,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,KAAK;aACjB,CAAC;KACL,CAAC;AACN,CAAC;AAED,SAAS,sBAAsB,CAC3B,OAA8B,EAC9B,QAAgC,EAChC,SAA4B,EAC5B,OAAyB;IAEzB,MAAM,OAAO,GAAG,4BAA4B,CACxC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CACxC,CAAC;IAEF,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,4BAA4B,CACjC,OAA8B,EAC9B,QAAgC,EAChC,SAA4B,EAC5B,OAAyB;IAEzB,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEnD,MAAM,UAAU,GAAG,IAAA,4BAAW,EAC1B,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAC5E,CAAC;IAEF,MAAM,WAAW,GAAG,IAAA,4BAAW,EAC3B,OAAO,CAAC,MAAM,EACd,QAAQ,CAAC,MAAM,EACf,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,iBAAiB,EACvB,UAAU,CAAC,KAAK,CACnB,CAAC;IAEF,MAAM,WAAW,GAAG,IAAA,qCAAoB,EACpC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CACxD,CAAC;IAEF,OAAO;QACH,OAAO;QACP,QAAQ;QACR,SAAS;QACT,OAAO;QACP,KAAK;QACL,UAAU;QACV,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,eAAe,EAAE,WAAW,CAAC,UAAU;QACvC,cAAc,EAAE,WAAW,CAAC,QAAQ;QACpC,qBAAqB,EAAE,WAAW,CAAC,UAAU;KAChD,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CACtB,OAA8B,EAC9B,QAAgC;IAEhC,OAAO;QACH,SAAS,EAAE,IAAA,+BAAkB,EAAC,OAAO,CAAC,MAAM,CAAC;QAC7C,iBAAiB,EAAE,OAAO,CAAC,cAAc,KAAK,SAAS;QACvD,yBAAyB,EAAE,IAAA,yCAA4B,EAAC,OAAO,CAAC,MAAM,CAAC;QACvE,uBAAuB,EAAE,IAAA,mDAA2B,EAAC,OAAO,EAAE,QAAQ,CAAC;KAC1E,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAgC;IAC1D,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEjE,OAAO;QACH,GAAG,IAAA,gCAAkB,EAAC,OAAO,EAAE,QAAQ,CAAC;QACxC,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU;QAChC,GAAG,IAAA,uBAAc,EACb,OAAO,EACP,QAAQ,EACR,KAAK,CAAC,SAAS,EACf,OAAO,CAAC,UAAU,CAAC,KAAK,CAC3B;QACD,GAAG,IAAA,+CAA0B,EACzB,QAAQ,EACR,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,yBAAyB,CAClC;QACD,GAAG,IAAA,yCAAsB,EAAC,OAAO,EAAE,QAAQ,CAAC;QAC5C,GAAG,IAAA,8BAAiB,EAAC,OAAO,EAAE,QAAQ,CAAC;QACvC,GAAG,IAAA,iBAAW,EAAC,OAAO,EAAE,QAAQ,CAAC;QACjC,GAAG,IAAA,+CAAgC,EAAC,OAAO,CAAC,MAAM,CAAC;QACnD,GAAG,IAAA,qCAAqB,EACpB,KAAK,CAAC,SAAS,EACf,OAAO,CAAC,UAAU,CAAC,KAAK,CAC3B;QACD,GAAG,OAAO,CAAC,eAAe;QAC1B,GAAG,OAAO,CAAC,qBAAqB;QAChC,GAAG,IAAA,wBAAe,EACd,OAAO,CAAC,cAAc,EACtB,KAAK,CAAC,SAAS,EACf,SAAS,EACT,KAAK,CAAC,uBAAuB,EAC7B,OAAO,CAAC,6BAA6B,CACxC;QACD,GAAG,IAAA,0CAAuB,EACtB,OAAO,EACP,QAAQ,EACR,OAAO,CAAC,cAAc,EACtB,KAAK,CAAC,SAAS,EACf,SAAS,EACT,KAAK,CAAC,uBAAuB,CAChC;QACD,GAAG,IAAA,4BAAa,EAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;KAC3E,CAAC;AACN,CAAC;AAED,6BAA6B;AAC7B,8DAA8D;AAC9D,mFAAmF;AACnF,gCAAgC;AAChC,mDAAmD;AACnD,uBAAuB;AACvB,YAAY;AACZ,iCAAiC;AACjC,wBAAwB;AACxB,oBAAoB;AACpB,sDAAsD;AACtD,iDAAiD;AACjD,2BAA2B;AAC3B,+DAA+D;AAC/D,2BAA2B;AAC3B,8BAA8B;AAC9B,cAAc;AACd,QAAQ;AAER,2DAA2D;AAC3D,0CAA0C;AAC1C,oBAAoB;AACpB,sDAAsD;AACtD,8EAA8E;AAC9E,2BAA2B;AAC3B,yCAAyC;AACzC,gCAAgC;AAChC,cAAc;AACd,QAAQ;AAER,iBAAiB;AACjB,IAAI"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SOLANA_DELEGATE_BY_ENVIRONMENT = exports.SOLANA_ALLOWANCE_HOLDER_ENABLED_BY_ENVIRONMENT = exports.SOLANA_ALLOWANCE_HOLDER_BY_ENVIRONMENT = exports.SOLANA_INTENT_PROGRAM_BY_ENVIRONMENT = exports.GASLESS_EVM_CHAINS_WITH_INTENT_MANAGER = exports.PROD_EVM_CHAINS_WITH_INTENT_MANAGER = exports.DEV_EVM_CHAINS_WITH_INTENT_MANAGER = exports.METAMASK_CHAINS = exports.GASLESS_EVM_CHAINS_WITH_SOLVER_EXECUTOR = exports.DEV_EVM_CHAINS_WITH_SOLVER_EXECUTOR = exports.GASLESS_EVM_CHAINS_WITH_ALLOWANCE_HOLDER = exports.PROD_EVM_CHAINS_WITH_ALLOWANCE_HOLDER = exports.DEV_EVM_CHAINS_WITH_ALLOWANCE_HOLDER = exports.GASLESS_EVM_CHAINS_ENABLED_FOR_INTENTS = exports.PROD_EVM_CHAINS_ENABLED_FOR_INTENTS = exports.DEV_EVM_CHAINS_ENABLED_FOR_GASLESS_INTENTS = void 0;
|
|
3
4
|
exports.buildEnvironmentConfig = buildEnvironmentConfig;
|
|
4
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
6
|
const enums_1 = require("../types/enums");
|
|
@@ -13,11 +14,8 @@ const programs_1 = require("./solana/programs");
|
|
|
13
14
|
// =============================================
|
|
14
15
|
const PROD_DEFAULT_EVM_ALLOWANCE_HOLDER = "0xddddddddd4B6472c5002F95610b194D1161223d0";
|
|
15
16
|
const PROD_TRON_ALLOWANCE_HOLDER = "0x873a84BfBd83f9986cb07927ac3E587979D57775";
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
// Chains may have other gasless config, but without intentEnvironment the API
|
|
19
|
-
// should not emit gasless intent actions for them.
|
|
20
|
-
const PROD_EVM_CHAINS_ENABLED_FOR_GASLESS_INTENTS = [
|
|
17
|
+
// Dev mirrors the main development environment.
|
|
18
|
+
exports.DEV_EVM_CHAINS_ENABLED_FOR_GASLESS_INTENTS = [
|
|
21
19
|
enums_1.ChainId.Ethereum,
|
|
22
20
|
enums_1.ChainId.Optimism,
|
|
23
21
|
enums_1.ChainId.BNB,
|
|
@@ -33,56 +31,93 @@ const PROD_EVM_CHAINS_ENABLED_FOR_GASLESS_INTENTS = [
|
|
|
33
31
|
enums_1.ChainId.Avalanche,
|
|
34
32
|
enums_1.ChainId.Linea,
|
|
35
33
|
];
|
|
36
|
-
|
|
37
|
-
const DUBAI_EVM_CHAINS = [
|
|
34
|
+
exports.PROD_EVM_CHAINS_ENABLED_FOR_INTENTS = [
|
|
38
35
|
enums_1.ChainId.Ethereum,
|
|
39
36
|
enums_1.ChainId.Optimism,
|
|
40
37
|
enums_1.ChainId.BNB,
|
|
41
38
|
enums_1.ChainId.Polygon,
|
|
39
|
+
enums_1.ChainId.Monad,
|
|
40
|
+
enums_1.ChainId.Flow,
|
|
41
|
+
enums_1.ChainId.HyperEVM,
|
|
42
|
+
enums_1.ChainId.Sei,
|
|
43
|
+
enums_1.ChainId.Story,
|
|
44
|
+
enums_1.ChainId.Mantle,
|
|
45
|
+
enums_1.ChainId.MegaETH,
|
|
46
|
+
enums_1.ChainId.Cronos,
|
|
42
47
|
enums_1.ChainId.Avalanche,
|
|
43
48
|
enums_1.ChainId.Base,
|
|
44
49
|
enums_1.ChainId.Arbitrum,
|
|
50
|
+
enums_1.ChainId.Linea,
|
|
45
51
|
];
|
|
52
|
+
exports.GASLESS_EVM_CHAINS_ENABLED_FOR_INTENTS = [
|
|
53
|
+
enums_1.ChainId.Ethereum,
|
|
54
|
+
enums_1.ChainId.Optimism,
|
|
55
|
+
enums_1.ChainId.BNB,
|
|
56
|
+
enums_1.ChainId.Polygon,
|
|
57
|
+
enums_1.ChainId.Monad,
|
|
58
|
+
enums_1.ChainId.Flow,
|
|
59
|
+
enums_1.ChainId.HyperEVM,
|
|
60
|
+
enums_1.ChainId.Sei,
|
|
61
|
+
enums_1.ChainId.Story,
|
|
62
|
+
enums_1.ChainId.Mantle,
|
|
63
|
+
enums_1.ChainId.Avalanche,
|
|
64
|
+
enums_1.ChainId.Base,
|
|
65
|
+
enums_1.ChainId.Arbitrum,
|
|
66
|
+
enums_1.ChainId.Linea,
|
|
67
|
+
];
|
|
68
|
+
exports.DEV_EVM_CHAINS_WITH_ALLOWANCE_HOLDER = [
|
|
69
|
+
...exports.DEV_EVM_CHAINS_ENABLED_FOR_GASLESS_INTENTS,
|
|
70
|
+
enums_1.ChainId.Tron,
|
|
71
|
+
];
|
|
72
|
+
exports.PROD_EVM_CHAINS_WITH_ALLOWANCE_HOLDER = exports.PROD_EVM_CHAINS_ENABLED_FOR_INTENTS;
|
|
73
|
+
exports.GASLESS_EVM_CHAINS_WITH_ALLOWANCE_HOLDER = exports.GASLESS_EVM_CHAINS_ENABLED_FOR_INTENTS;
|
|
46
74
|
const ALLOWANCE_HOLDER_BY_ENVIRONMENT = {
|
|
47
|
-
[validation_1.Environment.
|
|
48
|
-
...(0, types_1.buildSameAddressMap)(
|
|
75
|
+
[validation_1.Environment.Dev]: {
|
|
76
|
+
...(0, types_1.buildSameAddressMap)(exports.DEV_EVM_CHAINS_ENABLED_FOR_GASLESS_INTENTS, PROD_DEFAULT_EVM_ALLOWANCE_HOLDER),
|
|
49
77
|
[enums_1.ChainId.Tron]: [PROD_TRON_ALLOWANCE_HOLDER],
|
|
50
78
|
},
|
|
51
|
-
[validation_1.Environment.
|
|
52
|
-
[validation_1.Environment.
|
|
53
|
-
[enums_1.ChainId.Polygon]: ["0x1Baa3D24E5e5eBaF876CA1BC86be1636E3EA7F51"],
|
|
54
|
-
[enums_1.ChainId.BNB]: ["0x6e8D9768B3D5e70881F00411e6DFa72c3D59Ea1a"],
|
|
55
|
-
},
|
|
79
|
+
[validation_1.Environment.Prod]: (0, types_1.buildSameAddressMap)(exports.PROD_EVM_CHAINS_ENABLED_FOR_INTENTS, PROD_DEFAULT_EVM_ALLOWANCE_HOLDER),
|
|
80
|
+
[validation_1.Environment.Gasless]: (0, types_1.buildSameAddressMap)(exports.GASLESS_EVM_CHAINS_ENABLED_FOR_INTENTS, PROD_DEFAULT_EVM_ALLOWANCE_HOLDER),
|
|
56
81
|
};
|
|
57
82
|
// =============================================
|
|
58
83
|
// EVM: Solver Executor
|
|
59
84
|
// =============================================
|
|
60
|
-
// Address
|
|
61
|
-
//
|
|
85
|
+
// Address expected as `intent.srcAllowedSender` on chains where the environment
|
|
86
|
+
// has a solver executor configured — independent of any request input.
|
|
62
87
|
const SHARED_EVM_SOLVER_EXECUTOR = "0xb7B10db9c7B978c48340994CB48829C4b3617B2F";
|
|
63
|
-
|
|
88
|
+
exports.DEV_EVM_CHAINS_WITH_SOLVER_EXECUTOR = [
|
|
89
|
+
enums_1.ChainId.Ethereum,
|
|
90
|
+
enums_1.ChainId.Optimism,
|
|
91
|
+
enums_1.ChainId.BNB,
|
|
92
|
+
enums_1.ChainId.Base,
|
|
93
|
+
enums_1.ChainId.Arbitrum,
|
|
94
|
+
enums_1.ChainId.Avalanche,
|
|
95
|
+
];
|
|
96
|
+
exports.GASLESS_EVM_CHAINS_WITH_SOLVER_EXECUTOR = [
|
|
64
97
|
enums_1.ChainId.Ethereum,
|
|
65
98
|
enums_1.ChainId.Optimism,
|
|
66
99
|
enums_1.ChainId.BNB,
|
|
100
|
+
enums_1.ChainId.Polygon,
|
|
67
101
|
enums_1.ChainId.Base,
|
|
68
102
|
enums_1.ChainId.Arbitrum,
|
|
69
103
|
enums_1.ChainId.Avalanche,
|
|
70
104
|
];
|
|
71
105
|
const EVM_SOLVER_EXECUTOR_BY_ENVIRONMENT = {
|
|
72
|
-
[validation_1.Environment.
|
|
73
|
-
[validation_1.Environment.
|
|
74
|
-
[validation_1.Environment.
|
|
106
|
+
[validation_1.Environment.Dev]: (0, types_1.buildSameAddressMap)(exports.DEV_EVM_CHAINS_WITH_SOLVER_EXECUTOR, SHARED_EVM_SOLVER_EXECUTOR),
|
|
107
|
+
[validation_1.Environment.Prod]: {},
|
|
108
|
+
[validation_1.Environment.Gasless]: (0, types_1.buildSameAddressMap)(exports.GASLESS_EVM_CHAINS_WITH_SOLVER_EXECUTOR, SHARED_EVM_SOLVER_EXECUTOR),
|
|
75
109
|
};
|
|
76
110
|
// =============================================
|
|
77
111
|
// EVM: delegate / MetaMask framework env scope
|
|
78
112
|
// =============================================
|
|
79
|
-
const
|
|
113
|
+
const PROD_EVM_DELEGATE = "0xDDd405336C13db1ccBf577f64B43890d9c386F7D";
|
|
114
|
+
const GASLESS_EVM_DELEGATE = "0xE547d2EeD6DD60796013b485D284C17Da1194C82";
|
|
80
115
|
const COMPENSATION_DELEGATE_BY_ENVIRONMENT = {
|
|
81
|
-
[validation_1.Environment.
|
|
82
|
-
[validation_1.Environment.
|
|
83
|
-
[validation_1.Environment.
|
|
116
|
+
[validation_1.Environment.Dev]: (0, types_1.buildSameAddressMap)(exports.DEV_EVM_CHAINS_ENABLED_FOR_GASLESS_INTENTS, GASLESS_EVM_DELEGATE),
|
|
117
|
+
[validation_1.Environment.Prod]: (0, types_1.buildSameAddressMap)(exports.PROD_EVM_CHAINS_ENABLED_FOR_INTENTS, PROD_EVM_DELEGATE),
|
|
118
|
+
[validation_1.Environment.Gasless]: (0, types_1.buildSameAddressMap)(exports.GASLESS_EVM_CHAINS_ENABLED_FOR_INTENTS, GASLESS_EVM_DELEGATE),
|
|
84
119
|
};
|
|
85
|
-
|
|
120
|
+
exports.METAMASK_CHAINS = [
|
|
86
121
|
enums_1.ChainId.Ethereum,
|
|
87
122
|
enums_1.ChainId.Optimism,
|
|
88
123
|
enums_1.ChainId.BNB,
|
|
@@ -90,57 +125,55 @@ const PROD_METAMASK_CHAINS = [
|
|
|
90
125
|
enums_1.ChainId.Base,
|
|
91
126
|
enums_1.ChainId.Arbitrum,
|
|
92
127
|
];
|
|
93
|
-
const DUBAI_METAMASK_CHAINS = DUBAI_EVM_CHAINS;
|
|
94
|
-
const HANOI_METAMASK_CHAINS = [enums_1.ChainId.Polygon, enums_1.ChainId.BNB];
|
|
95
128
|
const METAMASK_CHAINS_BY_ENVIRONMENT = {
|
|
96
|
-
[validation_1.Environment.
|
|
97
|
-
[validation_1.Environment.
|
|
98
|
-
[validation_1.Environment.
|
|
129
|
+
[validation_1.Environment.Dev]: exports.METAMASK_CHAINS,
|
|
130
|
+
[validation_1.Environment.Prod]: exports.METAMASK_CHAINS,
|
|
131
|
+
[validation_1.Environment.Gasless]: exports.METAMASK_CHAINS,
|
|
99
132
|
};
|
|
100
133
|
// =============================================
|
|
101
134
|
// EVM: Intent Manager
|
|
102
135
|
// =============================================
|
|
103
136
|
const PROD_DEFAULT_EVM_INTENT_MANAGER = "0xDDDDDDDdeB2E68Ee19832e356FCB5537124A9708";
|
|
104
137
|
const PROD_TRON_INTENT_MANAGER = "0x3ACFa1FA93916C60c9e8B7C5d59b50681b705e4e";
|
|
105
|
-
|
|
138
|
+
exports.DEV_EVM_CHAINS_WITH_INTENT_MANAGER = exports.DEV_EVM_CHAINS_WITH_ALLOWANCE_HOLDER;
|
|
139
|
+
exports.PROD_EVM_CHAINS_WITH_INTENT_MANAGER = exports.PROD_EVM_CHAINS_ENABLED_FOR_INTENTS;
|
|
140
|
+
exports.GASLESS_EVM_CHAINS_WITH_INTENT_MANAGER = exports.GASLESS_EVM_CHAINS_ENABLED_FOR_INTENTS;
|
|
106
141
|
const INTENT_MANAGER_BY_ENVIRONMENT = {
|
|
107
|
-
[validation_1.Environment.
|
|
108
|
-
...(0, types_1.buildSameAddressMap)(
|
|
142
|
+
[validation_1.Environment.Dev]: {
|
|
143
|
+
...(0, types_1.buildSameAddressMap)(exports.DEV_EVM_CHAINS_ENABLED_FOR_GASLESS_INTENTS, PROD_DEFAULT_EVM_INTENT_MANAGER),
|
|
109
144
|
[enums_1.ChainId.Tron]: [PROD_TRON_INTENT_MANAGER],
|
|
110
145
|
},
|
|
111
|
-
[validation_1.Environment.
|
|
112
|
-
[validation_1.Environment.
|
|
113
|
-
[enums_1.ChainId.Polygon]: ["0x9d8421Cc205195b55E2aBa5fdE5C54e952053773"],
|
|
114
|
-
[enums_1.ChainId.BNB]: ["0x62Cd6f0ccE48a229865686CB6796cDeba439a846"],
|
|
115
|
-
},
|
|
146
|
+
[validation_1.Environment.Prod]: (0, types_1.buildSameAddressMap)(exports.PROD_EVM_CHAINS_ENABLED_FOR_INTENTS, PROD_DEFAULT_EVM_INTENT_MANAGER),
|
|
147
|
+
[validation_1.Environment.Gasless]: (0, types_1.buildSameAddressMap)(exports.GASLESS_EVM_CHAINS_ENABLED_FOR_INTENTS, PROD_DEFAULT_EVM_INTENT_MANAGER),
|
|
116
148
|
};
|
|
117
149
|
// =============================================
|
|
118
150
|
// Solana: Intent Program
|
|
119
151
|
// =============================================
|
|
120
|
-
|
|
152
|
+
exports.SOLANA_INTENT_PROGRAM_BY_ENVIRONMENT = {
|
|
121
153
|
[validation_1.Environment.Prod]: "DeintXmrdZFgSKzEWcJWhK793HuqnfDydAPvHmayY5Xz",
|
|
122
|
-
[validation_1.Environment.
|
|
123
|
-
[validation_1.Environment.
|
|
154
|
+
[validation_1.Environment.Gasless]: "DeintXmrdZFgSKzEWcJWhK793HuqnfDydAPvHmayY5Xz",
|
|
155
|
+
[validation_1.Environment.Dev]: "DeintXmrdZFgSKzEWcJWhK793HuqnfDydAPvHmayY5Xz",
|
|
124
156
|
};
|
|
125
157
|
// =============================================
|
|
126
158
|
// Solana: Allowance Holder
|
|
127
159
|
// =============================================
|
|
128
160
|
const DEFAULT_PROD_SOLANA_ALLOWANCE_HOLDER_ADDRESS = "73dUbDAWUDZRfXM3DcuRgR4q74nr97MyuBt95738JnMz";
|
|
129
|
-
const
|
|
130
|
-
const
|
|
161
|
+
const PROD_SOLANA_DELEGATE_ADDRESS = "DbjXAFabS9ymdbaGxuFBQAWuLB2MUGEFtpu3173aP3LR";
|
|
162
|
+
const GASLESS_SOLANA_DELEGATE_ADDRESS = "bud6cbDe3kpPaEWcRdnTnHEKZKg8YR9GaURKS9sXRGD";
|
|
163
|
+
exports.SOLANA_ALLOWANCE_HOLDER_BY_ENVIRONMENT = {
|
|
131
164
|
[validation_1.Environment.Prod]: DEFAULT_PROD_SOLANA_ALLOWANCE_HOLDER_ADDRESS,
|
|
132
|
-
[validation_1.Environment.
|
|
133
|
-
[validation_1.Environment.
|
|
165
|
+
[validation_1.Environment.Gasless]: DEFAULT_PROD_SOLANA_ALLOWANCE_HOLDER_ADDRESS,
|
|
166
|
+
[validation_1.Environment.Dev]: DEFAULT_PROD_SOLANA_ALLOWANCE_HOLDER_ADDRESS,
|
|
134
167
|
};
|
|
135
|
-
|
|
168
|
+
exports.SOLANA_ALLOWANCE_HOLDER_ENABLED_BY_ENVIRONMENT = {
|
|
136
169
|
[validation_1.Environment.Prod]: true,
|
|
137
|
-
[validation_1.Environment.
|
|
138
|
-
[validation_1.Environment.
|
|
170
|
+
[validation_1.Environment.Gasless]: true,
|
|
171
|
+
[validation_1.Environment.Dev]: true,
|
|
139
172
|
};
|
|
140
|
-
|
|
141
|
-
[validation_1.Environment.Prod]:
|
|
142
|
-
[validation_1.Environment.
|
|
143
|
-
[validation_1.Environment.
|
|
173
|
+
exports.SOLANA_DELEGATE_BY_ENVIRONMENT = {
|
|
174
|
+
[validation_1.Environment.Prod]: PROD_SOLANA_DELEGATE_ADDRESS,
|
|
175
|
+
[validation_1.Environment.Gasless]: GASLESS_SOLANA_DELEGATE_ADDRESS,
|
|
176
|
+
[validation_1.Environment.Dev]: GASLESS_SOLANA_DELEGATE_ADDRESS,
|
|
144
177
|
};
|
|
145
178
|
// =============================================
|
|
146
179
|
// Builder
|
|
@@ -172,7 +205,7 @@ function buildSignTransactionAllowedPrograms(intentProgram) {
|
|
|
172
205
|
]);
|
|
173
206
|
}
|
|
174
207
|
function buildEnvironmentConfig(environment) {
|
|
175
|
-
const solanaIntentProgram = SOLANA_INTENT_PROGRAM_BY_ENVIRONMENT[environment];
|
|
208
|
+
const solanaIntentProgram = exports.SOLANA_INTENT_PROGRAM_BY_ENVIRONMENT[environment];
|
|
176
209
|
const metamaskChains = METAMASK_CHAINS_BY_ENVIRONMENT[environment];
|
|
177
210
|
return {
|
|
178
211
|
allowanceHolderContracts: ALLOWANCE_HOLDER_BY_ENVIRONMENT[environment],
|
|
@@ -186,9 +219,9 @@ function buildEnvironmentConfig(environment) {
|
|
|
186
219
|
idEnforcerContracts: filterChainAddressMap(evm_1.ID_ENFORCER_CONTRACTS, metamaskChains),
|
|
187
220
|
timestampEnforcerContracts: filterChainAddressMap(evm_1.TIMESTAMP_ENFORCER_CONTRACTS, metamaskChains),
|
|
188
221
|
solanaIntentProgram,
|
|
189
|
-
solanaAllowanceHolder: SOLANA_ALLOWANCE_HOLDER_BY_ENVIRONMENT[environment],
|
|
190
|
-
solanaAllowanceHolderEnabled: SOLANA_ALLOWANCE_HOLDER_ENABLED_BY_ENVIRONMENT[environment],
|
|
191
|
-
solanaDelegateAddress: SOLANA_DELEGATE_BY_ENVIRONMENT[environment],
|
|
222
|
+
solanaAllowanceHolder: exports.SOLANA_ALLOWANCE_HOLDER_BY_ENVIRONMENT[environment],
|
|
223
|
+
solanaAllowanceHolderEnabled: exports.SOLANA_ALLOWANCE_HOLDER_ENABLED_BY_ENVIRONMENT[environment],
|
|
224
|
+
solanaDelegateAddress: exports.SOLANA_DELEGATE_BY_ENVIRONMENT[environment],
|
|
192
225
|
solanaTransactionAllowedPrograms: buildTransactionAllowedPrograms(solanaIntentProgram),
|
|
193
226
|
solanaSignTransactionAllowedPrograms: buildSignTransactionAllowedPrograms(solanaIntentProgram),
|
|
194
227
|
solanaExpectedStatePdaBase58: computeStatePdaBase58(solanaIntentProgram),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-config.js","sourceRoot":"","sources":["../../../src/whitelists/environment-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"environment-config.js","sourceRoot":"","sources":["../../../src/whitelists/environment-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WETH_CONTRACTS = exports.DEFAULT_PERMIT2_ADDRESS = exports.PERMIT2_CONTRACTS = exports.AVALANCHE_TIMESTAMP_ENFORCER = exports.AVALANCHE_ID_ENFORCER = exports.AVALANCHE_EXACT_EXECUTION_BATCH_ENFORCER = exports.AVALANCHE_EXACT_EXECUTION_ENFORCER = exports.DEFAULT_TIMESTAMP_ENFORCER = exports.DEFAULT_ID_ENFORCER = exports.DEFAULT_EXACT_EXECUTION_BATCH_ENFORCER = exports.DEFAULT_EXACT_EXECUTION_ENFORCER = exports.TIMESTAMP_ENFORCER_CONTRACTS = exports.ID_ENFORCER_CONTRACTS = exports.EXACT_EXECUTION_BATCH_ENFORCER_CONTRACTS = exports.EXACT_EXECUTION_ENFORCER_CONTRACTS = exports.AVALANCHE_DELEGATION_MANAGER = exports.DEFAULT_DELEGATION_MANAGER = exports.DELEGATION_MANAGER_CONTRACTS = exports.AVALANCHE_EIP7702_STATELESS_DELEGATOR_IMPL = exports.DEFAULT_EIP7702_STATELESS_DELEGATOR_IMPL = exports.EIP7702_DELEGATION_CONTRACTS = void 0;
|
|
3
|
+
exports.METAMASK_DEFAULT_EVM_CHAINS = exports.WETH_CONTRACTS = exports.DEFAULT_PERMIT2_ADDRESS = exports.PERMIT2_CONTRACTS = exports.AVALANCHE_TIMESTAMP_ENFORCER = exports.AVALANCHE_ID_ENFORCER = exports.AVALANCHE_EXACT_EXECUTION_BATCH_ENFORCER = exports.AVALANCHE_EXACT_EXECUTION_ENFORCER = exports.DEFAULT_TIMESTAMP_ENFORCER = exports.DEFAULT_ID_ENFORCER = exports.DEFAULT_EXACT_EXECUTION_BATCH_ENFORCER = exports.DEFAULT_EXACT_EXECUTION_ENFORCER = exports.TIMESTAMP_ENFORCER_CONTRACTS = exports.ID_ENFORCER_CONTRACTS = exports.EXACT_EXECUTION_BATCH_ENFORCER_CONTRACTS = exports.EXACT_EXECUTION_ENFORCER_CONTRACTS = exports.AVALANCHE_DELEGATION_MANAGER = exports.DEFAULT_DELEGATION_MANAGER = exports.DELEGATION_MANAGER_CONTRACTS = exports.AVALANCHE_EIP7702_STATELESS_DELEGATOR_IMPL = exports.DEFAULT_EIP7702_STATELESS_DELEGATOR_IMPL = exports.EIP7702_DELEGATION_CONTRACTS = void 0;
|
|
4
4
|
var eip7702_delegation_1 = require("./eip7702-delegation");
|
|
5
5
|
Object.defineProperty(exports, "EIP7702_DELEGATION_CONTRACTS", { enumerable: true, get: function () { return eip7702_delegation_1.EIP7702_DELEGATION_CONTRACTS; } });
|
|
6
6
|
Object.defineProperty(exports, "DEFAULT_EIP7702_STATELESS_DELEGATOR_IMPL", { enumerable: true, get: function () { return eip7702_delegation_1.DEFAULT_EIP7702_STATELESS_DELEGATOR_IMPL; } });
|
|
@@ -27,4 +27,6 @@ Object.defineProperty(exports, "PERMIT2_CONTRACTS", { enumerable: true, get: fun
|
|
|
27
27
|
Object.defineProperty(exports, "DEFAULT_PERMIT2_ADDRESS", { enumerable: true, get: function () { return permit2_1.DEFAULT_PERMIT2_ADDRESS; } });
|
|
28
28
|
var weth_1 = require("./weth");
|
|
29
29
|
Object.defineProperty(exports, "WETH_CONTRACTS", { enumerable: true, get: function () { return weth_1.WETH_CONTRACTS; } });
|
|
30
|
+
var metamask_delegation_chains_1 = require("./metamask-delegation-chains");
|
|
31
|
+
Object.defineProperty(exports, "METAMASK_DEFAULT_EVM_CHAINS", { enumerable: true, get: function () { return metamask_delegation_chains_1.METAMASK_DEFAULT_EVM_CHAINS; } });
|
|
30
32
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/index.ts"],"names":[],"mappings":";;;AAAA,2DAI8B;AAH1B,kIAAA,4BAA4B,OAAA;AAC5B,8IAAA,wCAAwC,OAAA;AACxC,gJAAA,0CAA0C,OAAA;AAE9C,2DAI8B;AAH1B,kIAAA,4BAA4B,OAAA;AAC5B,gIAAA,0BAA0B,OAAA;AAC1B,kIAAA,4BAA4B,OAAA;AAEhC,uDAa4B;AAZxB,sIAAA,kCAAkC,OAAA;AAClC,4IAAA,wCAAwC,OAAA;AACxC,yHAAA,qBAAqB,OAAA;AACrB,gIAAA,4BAA4B,OAAA;AAC5B,oIAAA,gCAAgC,OAAA;AAChC,0IAAA,sCAAsC,OAAA;AACtC,uHAAA,mBAAmB,OAAA;AACnB,8HAAA,0BAA0B,OAAA;AAC1B,sIAAA,kCAAkC,OAAA;AAClC,4IAAA,wCAAwC,OAAA;AACxC,yHAAA,qBAAqB,OAAA;AACrB,gIAAA,4BAA4B,OAAA;AAEhC,qCAAuE;AAA9D,4GAAA,iBAAiB,OAAA;AAAE,kHAAA,uBAAuB,OAAA;AACnD,+BAAwC;AAA/B,sGAAA,cAAc,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/whitelists/evm/index.ts"],"names":[],"mappings":";;;AAAA,2DAI8B;AAH1B,kIAAA,4BAA4B,OAAA;AAC5B,8IAAA,wCAAwC,OAAA;AACxC,gJAAA,0CAA0C,OAAA;AAE9C,2DAI8B;AAH1B,kIAAA,4BAA4B,OAAA;AAC5B,gIAAA,0BAA0B,OAAA;AAC1B,kIAAA,4BAA4B,OAAA;AAEhC,uDAa4B;AAZxB,sIAAA,kCAAkC,OAAA;AAClC,4IAAA,wCAAwC,OAAA;AACxC,yHAAA,qBAAqB,OAAA;AACrB,gIAAA,4BAA4B,OAAA;AAC5B,oIAAA,gCAAgC,OAAA;AAChC,0IAAA,sCAAsC,OAAA;AACtC,uHAAA,mBAAmB,OAAA;AACnB,8HAAA,0BAA0B,OAAA;AAC1B,sIAAA,kCAAkC,OAAA;AAClC,4IAAA,wCAAwC,OAAA;AACxC,yHAAA,qBAAqB,OAAA;AACrB,gIAAA,4BAA4B,OAAA;AAEhC,qCAAuE;AAA9D,4GAAA,iBAAiB,OAAA;AAAE,kHAAA,uBAAuB,OAAA;AACnD,+BAAwC;AAA/B,sGAAA,cAAc,OAAA;AACvB,2EAA2E;AAAlE,yIAAA,2BAA2B,OAAA"}
|
|
@@ -1,29 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SIG_PREFIX_BY_ENVIRONMENT = void 0;
|
|
3
4
|
exports.getIntentSignatureConfig = getIntentSignatureConfig;
|
|
4
5
|
const validation_1 = require("../../types/validation");
|
|
5
6
|
const enums_1 = require("../../types/enums");
|
|
6
7
|
// Environment-specific prefix used in getBufferForIntentSignature().
|
|
7
|
-
|
|
8
|
+
exports.SIG_PREFIX_BY_ENVIRONMENT = {
|
|
8
9
|
[validation_1.Environment.Prod]: "intents_program",
|
|
9
|
-
[validation_1.Environment.
|
|
10
|
-
[validation_1.Environment.
|
|
10
|
+
[validation_1.Environment.Gasless]: "intents_program",
|
|
11
|
+
[validation_1.Environment.Dev]: "intents_program",
|
|
11
12
|
};
|
|
12
|
-
const DEFAULT_SIG_PREFIX = "intents_program";
|
|
13
13
|
// "intents" label — constant across all environments
|
|
14
14
|
const INTENTS_LABEL = new Uint8Array([105, 110, 116, 101, 110, 116, 115]);
|
|
15
15
|
function getIntentSignatureConfig(environment) {
|
|
16
|
-
const prefixStr = SIG_PREFIX_BY_ENVIRONMENT[environment];
|
|
16
|
+
const prefixStr = exports.SIG_PREFIX_BY_ENVIRONMENT[environment];
|
|
17
17
|
const prefix = new TextEncoder().encode(prefixStr);
|
|
18
|
-
const acceptedPrefixes =
|
|
19
|
-
.map(value => new TextEncoder().encode(value));
|
|
18
|
+
const acceptedPrefixes = [prefix];
|
|
20
19
|
const chainIdBytes = new Uint8Array(4);
|
|
21
20
|
new DataView(chainIdBytes.buffer).setUint32(0, enums_1.ChainId.Solana, true);
|
|
22
21
|
// prefix + chainId(4) + label(7) + intentId(32)
|
|
23
22
|
const expectedBufferLength = prefix.length + 4 + INTENTS_LABEL.length + 32;
|
|
24
23
|
return { prefix, acceptedPrefixes, chainIdBytes, label: INTENTS_LABEL, expectedBufferLength };
|
|
25
24
|
}
|
|
26
|
-
function uniqueStrings(values) {
|
|
27
|
-
return values.filter((value, index) => values.indexOf(value) === index);
|
|
28
|
-
}
|
|
29
25
|
//# sourceMappingURL=intent-signature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent-signature.js","sourceRoot":"","sources":["../../../../src/whitelists/solana/intent-signature.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"intent-signature.js","sourceRoot":"","sources":["../../../../src/whitelists/solana/intent-signature.ts"],"names":[],"mappings":";;;AAoBA,4DAYC;AAhCD,uDAAqD;AACrD,6CAA4C;AAE5C,qEAAqE;AACxD,QAAA,yBAAyB,GAAgC;IAClE,CAAC,wBAAW,CAAC,IAAI,CAAC,EAAE,iBAAiB;IACrC,CAAC,wBAAW,CAAC,OAAO,CAAC,EAAE,iBAAiB;IACxC,CAAC,wBAAW,CAAC,GAAG,CAAC,EAAE,iBAAiB;CACvC,CAAC;AACF,qDAAqD;AACrD,MAAM,aAAa,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAU1E,SAAgB,wBAAwB,CAAC,WAAwB;IAC7D,MAAM,SAAS,GAAG,iCAAyB,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,gBAAgB,GAAG,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,YAAY,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,eAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAErE,gDAAgD;IAChD,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC;IAE3E,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;AAClG,CAAC"}
|
|
@@ -2,17 +2,50 @@
|
|
|
2
2
|
// security-critical whitelists. They are used for informational or
|
|
3
3
|
// best-effort validation. If a value is absent from a graylist, the
|
|
4
4
|
// corresponding check is skipped rather than producing a violation.
|
|
5
|
-
// Note: addresses in this map MUST be lowercased.
|
|
6
5
|
import { ChainId } from "../../types/enums.js";
|
|
6
|
+
// Note: addresses in this map MUST be lowercased.
|
|
7
7
|
export const TOKEN_PERMIT_METADATA = {
|
|
8
|
-
// TODO:
|
|
8
|
+
// TODO: extend this verified-only graylist with additional tokens after
|
|
9
|
+
// checking the exact token contract on the exact chain. Unknown tokens, or
|
|
10
|
+
// unverified fields such as version, must stay absent so the SDK skips
|
|
11
|
+
// best-effort metadata checks instead of risking false positives.
|
|
9
12
|
[ChainId.Ethereum]: {
|
|
10
|
-
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { name: "USD Coin", version: "2" },
|
|
11
|
-
"0x6b175474e89094c44da98b954eedeac495271d0f": { name: "Dai Stablecoin", version: "1" },
|
|
12
|
-
"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9": { name: "Aave Token"
|
|
13
|
+
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { name: "USD Coin", version: "2" },
|
|
14
|
+
"0x6b175474e89094c44da98b954eedeac495271d0f": { name: "Dai Stablecoin", version: "1" },
|
|
15
|
+
"0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9": { name: "Aave Token" },
|
|
16
|
+
},
|
|
17
|
+
[ChainId.Optimism]: {
|
|
18
|
+
"0x0b2c639c533813f4aa9d7837caf62653d097ff85": { name: "USD Coin", version: "2" },
|
|
19
|
+
},
|
|
20
|
+
[ChainId.Polygon]: {
|
|
21
|
+
"0x3c499c542cef5e3811e1192ce70d8cc03d5c3359": { name: "USD Coin", version: "2" },
|
|
22
|
+
},
|
|
23
|
+
[ChainId.Monad]: {
|
|
24
|
+
"0x754704bc059f8c67012fed69bc8a327a5aafb603": { name: "USDC", version: "2" },
|
|
25
|
+
},
|
|
26
|
+
[ChainId.Sonic]: {
|
|
27
|
+
"0x29219dd400f2bf60e5a23d13be72b486d4038894": { name: "USDC", version: "2" },
|
|
28
|
+
},
|
|
29
|
+
[ChainId.HyperEVM]: {
|
|
30
|
+
"0xb88339cb7199b77e23db6e890353e22632ba630f": { name: "USDC", version: "2" },
|
|
31
|
+
},
|
|
32
|
+
[ChainId.Sei]: {
|
|
33
|
+
"0xe15fc38f6d8c56af07bbcbe3baf5708a2bf42392": { name: "USDC", version: "2" },
|
|
34
|
+
},
|
|
35
|
+
[ChainId.Injective]: {
|
|
36
|
+
"0xa00c59ff5a080d2b954d0c75e46e22a0c371235a": { name: "USDC", version: "2" },
|
|
37
|
+
},
|
|
38
|
+
[ChainId.Base]: {
|
|
39
|
+
"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": { name: "USD Coin", version: "2" },
|
|
40
|
+
},
|
|
41
|
+
[ChainId.Linea]: {
|
|
42
|
+
"0x176211869ca2b568f2a7d4ee941e073a821ee1ff": { name: "USDC", version: "2" },
|
|
13
43
|
},
|
|
14
44
|
[ChainId.Arbitrum]: {
|
|
15
|
-
"0xaf88d065e77c8cc2239327c5edb3a432268e5831": { name: "USD Coin", version: "2" },
|
|
45
|
+
"0xaf88d065e77c8cc2239327c5edb3a432268e5831": { name: "USD Coin", version: "2" },
|
|
46
|
+
},
|
|
47
|
+
[ChainId.Avalanche]: {
|
|
48
|
+
"0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e": { name: "USD Coin", version: "2" },
|
|
16
49
|
},
|
|
17
50
|
};
|
|
18
51
|
export function getTokenPermitMetadata(realChainId, tokenAddress) {
|