@debridge-finance/borderless-validation-sdk 0.0.9 → 0.0.10
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 +10 -4
- 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/zod.js +29 -0
- package/dist/cjs/helpers/zod.js.map +1 -1
- package/dist/cjs/types/request.js +51 -42
- 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 +2 -3
- package/dist/cjs/types/validation.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 +4 -4
- 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 +2 -1
- package/dist/cjs/validations/evm-op-wrap.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 +2 -1
- package/dist/cjs/validations/external-call.js.map +1 -1
- package/dist/cjs/validations/hooks-common.js +0 -18
- 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 +33 -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/solana-op-budget.js +8 -2
- package/dist/cjs/validations/solana-op-budget.js.map +1 -1
- package/dist/cjs/validations/solana-op-wrap.js +2 -2
- package/dist/cjs/validations/solana-op-wrap.js.map +1 -1
- package/dist/cjs/validations/trade-grouping.js +9 -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 +58 -33
- package/dist/cjs/validator.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/zod.js +23 -0
- package/dist/esm/helpers/zod.js.map +1 -1
- package/dist/esm/types/request.js +51 -42
- 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 +2 -3
- package/dist/esm/types/validation.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 +4 -4
- 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 +2 -1
- package/dist/esm/validations/evm-op-wrap.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 +2 -1
- package/dist/esm/validations/external-call.js.map +1 -1
- package/dist/esm/validations/hooks-common.js +0 -18
- 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 +33 -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/solana-op-budget.js +8 -2
- package/dist/esm/validations/solana-op-budget.js.map +1 -1
- package/dist/esm/validations/solana-op-wrap.js +2 -2
- package/dist/esm/validations/solana-op-wrap.js.map +1 -1
- package/dist/esm/validations/trade-grouping.js +10 -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 +58 -33
- package/dist/esm/validator.js.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/zod.d.ts +7 -0
- package/dist/types/helpers/zod.d.ts.map +1 -1
- package/dist/types/types/request.d.ts +112 -112
- package/dist/types/types/request.d.ts.map +1 -1
- package/dist/types/types/response.d.ts +426 -426
- package/dist/types/types/response.d.ts.map +1 -1
- package/dist/types/types/validation.d.ts +2 -2
- package/dist/types/types/validation.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-sign7702.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/trade-grouping.d.ts.map +1 -1
- package/dist/types/validator.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -9,24 +9,28 @@ export function computeIntentId(intent) {
|
|
|
9
9
|
return keccak256(encoded);
|
|
10
10
|
}
|
|
11
11
|
function convertToIntentStruct(intent) {
|
|
12
|
+
const intentRealChainId = resolveChainId(intent.intentChainId) ?? intent.intentChainId;
|
|
12
13
|
return {
|
|
13
14
|
intentChainId: intent.intentChainId,
|
|
14
|
-
intentOwner: intent.intentOwner,
|
|
15
|
+
intentOwner: addressToHex(intentRealChainId, intent.intentOwner),
|
|
15
16
|
receiverDetails: convertAllowedAddresses(intent.receiverDetails),
|
|
16
|
-
inputToken: convertInputTokens(intent.inputToken),
|
|
17
|
-
giveToken: convertGiveTokens(intent.giveToken),
|
|
18
|
-
takeToken: convertTakeTokens(intent.takeToken),
|
|
17
|
+
inputToken: convertInputTokens(intentRealChainId, intent.inputToken),
|
|
18
|
+
giveToken: convertGiveTokens(intentRealChainId, intent.giveToken),
|
|
19
|
+
takeToken: convertTakeTokens(intent.takeToken, intentRealChainId),
|
|
19
20
|
expirationTimestamp: BigInt(intent.expirationTimestamp),
|
|
20
21
|
intentTimestamp: BigInt(intent.intentTimestamp),
|
|
21
|
-
srcAllowedSender: (intent.srcAllowedSender ?? [])
|
|
22
|
+
srcAllowedSender: (intent.srcAllowedSender ?? [])
|
|
23
|
+
.map(address => addressToHex(intentRealChainId, address)),
|
|
22
24
|
executionMetadata: (intent.executionMetadata ?? zeroHash),
|
|
23
25
|
isAnyDlnMetadataAllowed: !intent.dlnMetadata,
|
|
24
26
|
dlnMetadata: (intent.dlnMetadata ?? "0x"),
|
|
25
27
|
externalCallHash: (intent.externalCallHash ?? zeroHash),
|
|
26
28
|
combinedInteractions: "0x",
|
|
27
|
-
allowedCancelBeneficiary:
|
|
29
|
+
allowedCancelBeneficiary: intent.allowedCancelBeneficiary
|
|
30
|
+
? addressToHex(intentRealChainId, intent.allowedCancelBeneficiary)
|
|
31
|
+
: zeroAddress,
|
|
28
32
|
dstAuthorityAddress: convertAllowedAddresses(intent.dstAuthorityAddress),
|
|
29
|
-
intentAuthority: intent.intentAuthority,
|
|
33
|
+
intentAuthority: addressToHex(intentRealChainId, intent.intentAuthority),
|
|
30
34
|
};
|
|
31
35
|
}
|
|
32
36
|
// Encodes addresses as raw bytes — non-EVM strings can't be passed as-is.
|
|
@@ -46,32 +50,32 @@ function convertAllowedAddresses(details) {
|
|
|
46
50
|
return { allowedAddress, chains, isAnyChain };
|
|
47
51
|
});
|
|
48
52
|
}
|
|
49
|
-
function convertInputTokens(tokens) {
|
|
53
|
+
function convertInputTokens(intentRealChainId, tokens) {
|
|
50
54
|
if (!tokens)
|
|
51
55
|
return [];
|
|
52
56
|
return tokens.map(t => ({
|
|
53
|
-
token: t.address,
|
|
57
|
+
token: addressToHex(intentRealChainId, t.address),
|
|
54
58
|
minPartialAmount: parseIntegerString(t.minPartialAmount),
|
|
55
59
|
maxPartialAmount: parseIntegerString(t.maxPartialAmount),
|
|
56
60
|
budget: parseIntegerString(t.constraintBudget),
|
|
57
61
|
}));
|
|
58
62
|
}
|
|
59
|
-
function convertGiveTokens(tokens) {
|
|
63
|
+
function convertGiveTokens(intentRealChainId, tokens) {
|
|
60
64
|
if (!tokens)
|
|
61
65
|
return [];
|
|
62
66
|
return tokens.map(t => ({
|
|
63
|
-
inputToken: t.inputTokenAddress,
|
|
64
|
-
giveToken: t.giveTokenAddress,
|
|
67
|
+
inputToken: addressToHex(intentRealChainId, t.inputTokenAddress),
|
|
68
|
+
giveToken: addressToHex(intentRealChainId, t.giveTokenAddress),
|
|
65
69
|
numerator: parseIntegerString(t.numerator),
|
|
66
70
|
denominator: Number(t.denominator),
|
|
67
71
|
}));
|
|
68
72
|
}
|
|
69
73
|
// Encode addresses as raw bytes — non-EVM strings can't be passed as-is.
|
|
70
|
-
function convertTakeTokens(tokens) {
|
|
74
|
+
function convertTakeTokens(tokens, intentRealChainId) {
|
|
71
75
|
return tokens.map(t => {
|
|
72
76
|
const realChainId = resolveChainId(t.takeTokenChainId) ?? t.takeTokenChainId;
|
|
73
77
|
return {
|
|
74
|
-
giveToken: t.fromTokenAddress,
|
|
78
|
+
giveToken: addressToHex(intentRealChainId, t.fromTokenAddress),
|
|
75
79
|
takeTokenChain: t.takeTokenChainId,
|
|
76
80
|
takeToken: addressToHex(realChainId, t.takeTokenAddress),
|
|
77
81
|
numerator: parseIntegerString(t.numerator),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm-intent-id.js","sourceRoot":"","sources":["../../../src/helpers/evm-intent-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAE7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,UAAU,eAAe,CAAC,MAAsB;IAClD,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,mBAAmB,CAAC,wBAAwB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAsB;IACjD,OAAO;QACH,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,WAAW,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"evm-intent-id.js","sourceRoot":"","sources":["../../../src/helpers/evm-intent-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAE7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,UAAU,eAAe,CAAC,MAAsB;IAClD,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,mBAAmB,CAAC,wBAAwB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAsB;IACjD,MAAM,iBAAiB,GAAG,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC;IAEvF,OAAO;QACH,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,WAAW,EAAE,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAAC;QAChE,eAAe,EAAE,uBAAuB,CAAC,MAAM,CAAC,eAAe,CAAC;QAChE,UAAU,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,CAAC,UAAU,CAAC;QACpE,SAAS,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,CAAC,SAAS,CAAC;QACjE,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC;QACjE,mBAAmB,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC;QACvD,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;QAC/C,gBAAgB,EAAE,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC;aAC5C,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAC7D,iBAAiB,EAAE,CAAC,MAAM,CAAC,iBAAiB,IAAI,QAAQ,CAAkB;QAC1E,uBAAuB,EAAE,CAAC,MAAM,CAAC,WAAW;QAC5C,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAkB;QAC1D,gBAAgB,EAAE,CAAC,MAAM,CAAC,gBAAgB,IAAI,QAAQ,CAAkB;QACxE,oBAAoB,EAAE,IAAqB;QAC3C,wBAAwB,EAAE,MAAM,CAAC,wBAAwB;YACrD,CAAC,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,wBAAwB,CAAC;YAClE,CAAC,CAAC,WAAW;QACjB,mBAAmB,EAAE,uBAAuB,CAAC,MAAM,CAAC,mBAAmB,CAAC;QACxE,eAAe,EAAE,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC;KAC3E,CAAC;AACN,CAAC;AAED,0EAA0E;AAC1E,SAAS,uBAAuB,CAC5B,OAAsE;IAEtE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACnB,MAAM,UAAU,GAAG,CAAC,CAAC,mBAAmB,KAAK,KAAK,CAAC;QACnD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,mBAAgC,CAAC;QACrE,uEAAuE;QACvE,qEAAqE;QACrE,qEAAqE;QACrE,sBAAsB;QACtB,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;YACpC,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;YACjE,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAErC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,kBAAkB,CACvB,iBAAyB,EACzB,MAA4G;IAE5G,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,KAAK,EAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC;QACjD,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACxD,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACxD,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC;KACjD,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,iBAAiB,CACtB,iBAAyB,EACzB,MAA0G;IAE1G,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,UAAU,EAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,CAAC;QAChE,SAAS,EAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,gBAAgB,CAAC;QAC9D,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1C,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;KACrC,CAAC,CAAC,CAAC;AACR,CAAC;AAED,yEAAyE;AACzE,SAAS,iBAAiB,CACtB,MAMG,EACH,iBAAyB;IAEzB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAClB,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC;QAC7E,OAAO;YACH,SAAS,EAAE,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,gBAAgB,CAAC;YAC9D,cAAc,EAAE,CAAC,CAAC,gBAAgB;YAClC,SAAS,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,gBAAgB,CAAC;YACxD,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1C,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;SACrC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -37,13 +37,14 @@ export function sumTradeAmounts(trades, tokenAddress, realChainId, responseTrade
|
|
|
37
37
|
try {
|
|
38
38
|
sum += parseIntegerString(responseAmount);
|
|
39
39
|
}
|
|
40
|
-
catch {
|
|
40
|
+
catch (error) {
|
|
41
41
|
return {
|
|
42
42
|
violations: [{
|
|
43
43
|
code: ViolationCode.TradeAmountInvalid,
|
|
44
44
|
message: "response.trades[].srcChainTokenIn.amount is not a valid number",
|
|
45
45
|
path: `response.trades[${i}].srcChainTokenIn.amount`,
|
|
46
46
|
actual: responseAmount,
|
|
47
|
+
details: error,
|
|
47
48
|
}],
|
|
48
49
|
};
|
|
49
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm-trade-amounts.js","sourceRoot":"","sources":["../../../src/helpers/evm-trade-amounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,GAIhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAO/C,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,qEAAqE;AACrE,6EAA6E;AAC7E,6EAA6E;AAC7E,+CAA+C;AAC/C,MAAM,UAAU,eAAe,CAC3B,MAAsB,EACtB,YAAoB,EACpB,WAAoB,EACpB,cAA6C;IAE7C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,6FAA6F;IAC7F,MAAM,aAAa,GAAG,0BAA0B,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,YAAY,CAAC;IAC5F,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC1F,MAAM,oBAAoB,GAAG,gBAAgB,CACzC,WAAW,EAAE,kBAAkB,IAAI,KAAK,CAAC,eAAe,CAC3D,CAAC;QACF,IAAI,oBAAoB,KAAK,UAAU,EAAE,CAAC;YACtC,SAAS;QACb,CAAC;QAED,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACxC,qEAAqE;QACrE,uBAAuB;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,cAAc,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC;QAC5D,IAAI,CAAC;YACD,GAAG,IAAI,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAC9C,CAAC;QAAC,
|
|
1
|
+
{"version":3,"file":"evm-trade-amounts.js","sourceRoot":"","sources":["../../../src/helpers/evm-trade-amounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,GAIhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAO/C,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,qEAAqE;AACrE,6EAA6E;AAC7E,6EAA6E;AAC7E,+CAA+C;AAC/C,MAAM,UAAU,eAAe,CAC3B,MAAsB,EACtB,YAAoB,EACpB,WAAoB,EACpB,cAA6C;IAE7C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,6FAA6F;IAC7F,MAAM,aAAa,GAAG,0BAA0B,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,YAAY,CAAC;IAC5F,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC1F,MAAM,oBAAoB,GAAG,gBAAgB,CACzC,WAAW,EAAE,kBAAkB,IAAI,KAAK,CAAC,eAAe,CAC3D,CAAC;QACF,IAAI,oBAAoB,KAAK,UAAU,EAAE,CAAC;YACtC,SAAS;QACb,CAAC;QAED,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACxC,qEAAqE;QACrE,uBAAuB;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,cAAc,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC;QAC5D,IAAI,CAAC;YACD,GAAG,IAAI,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO;gBACH,UAAU,EAAE,CAAC;wBACT,IAAI,EAAE,aAAa,CAAC,kBAAkB;wBACtC,OAAO,EACH,gEAAgE;wBACpE,IAAI,EAAE,mBAAmB,CAAC,0BAA0B;wBACpD,MAAM,EAAE,cAAc;wBACtB,OAAO,EAAE,KAAK;qBACjB,CAAC;aACL,CAAC;QACN,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAEpC,OAAO,EAAE,GAAG,EAAE,CAAC;AACnB,CAAC"}
|
package/dist/esm/helpers/zod.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
1
2
|
export function formatPath(segments) {
|
|
2
3
|
return segments.reduce((result, segment) => {
|
|
3
4
|
if (typeof segment === "number")
|
|
@@ -6,4 +7,26 @@ export function formatPath(segments) {
|
|
|
6
7
|
return result ? `${result}.${key}` : key;
|
|
7
8
|
}, "");
|
|
8
9
|
}
|
|
10
|
+
export function nullAsUndefined(value) {
|
|
11
|
+
return value === null ? undefined : value;
|
|
12
|
+
}
|
|
13
|
+
export function nullableOptional(schema) {
|
|
14
|
+
return z.preprocess(nullAsUndefined, schema.optional());
|
|
15
|
+
}
|
|
16
|
+
export function apiBoolean(value) {
|
|
17
|
+
if (value === undefined)
|
|
18
|
+
return undefined;
|
|
19
|
+
if (value === null)
|
|
20
|
+
return null;
|
|
21
|
+
return Boolean(value);
|
|
22
|
+
}
|
|
23
|
+
export function apiBooleanSchema() {
|
|
24
|
+
return z.preprocess(apiBoolean, z.boolean());
|
|
25
|
+
}
|
|
26
|
+
export function optionalApiBooleanSchema() {
|
|
27
|
+
return z.preprocess(value => value === null ? undefined : apiBoolean(value), z.boolean().optional());
|
|
28
|
+
}
|
|
29
|
+
export function defaultedApiBooleanSchema(defaultValue) {
|
|
30
|
+
return z.preprocess(apiBoolean, z.boolean().optional()).default(defaultValue);
|
|
31
|
+
}
|
|
9
32
|
//# sourceMappingURL=zod.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../src/helpers/zod.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,QAAuB;IAC9C,OAAO,QAAQ,CAAC,MAAM,CAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC"}
|
|
1
|
+
{"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../src/helpers/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,UAAU,CAAC,QAAuB;IAC9C,OAAO,QAAQ,CAAC,MAAM,CAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc;IAC1C,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAsB,MAAS;IAC3D,OAAO,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAc;IACrC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC5B,OAAO,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,wBAAwB;IACpC,OAAO,CAAC,CAAC,UAAU,CACf,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EACvD,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CACzB,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,YAAqB;IAC3D,OAAO,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { apiBooleanSchema, defaultedApiBooleanSchema, nullableOptional, optionalApiBooleanSchema, } from "../helpers/zod.js";
|
|
2
3
|
import { TradingAlgorithm, ApproveAmountFlag, ApprovalMode, BundleHookType, PlaceholderType, } from "./enums.js";
|
|
3
4
|
export const RequestGasCompensationInfoSchema = z.object({
|
|
4
5
|
tokenAddress: z.string(),
|
|
@@ -9,10 +10,10 @@ export const RequestGasCompensationInfoSchema = z.object({
|
|
|
9
10
|
// Deferred placeholders are filled at submit time, so trade-group fields are not needed.
|
|
10
11
|
export const RequestPlaceholderSchema = z.object({
|
|
11
12
|
nameVariable: z.string(),
|
|
12
|
-
tokenAddress: z.string()
|
|
13
|
-
address: z.string()
|
|
14
|
-
additionalAmount: z.string()
|
|
15
|
-
type: z.enum(PlaceholderType)
|
|
13
|
+
tokenAddress: nullableOptional(z.string()),
|
|
14
|
+
address: nullableOptional(z.string()),
|
|
15
|
+
additionalAmount: nullableOptional(z.string()),
|
|
16
|
+
type: nullableOptional(z.enum(PlaceholderType)),
|
|
16
17
|
}).superRefine((placeholder, ctx) => {
|
|
17
18
|
const isEager = placeholder.type === undefined || placeholder.type === PlaceholderType.Eager;
|
|
18
19
|
if (!isEager)
|
|
@@ -35,14 +36,14 @@ export const RequestPlaceholderSchema = z.object({
|
|
|
35
36
|
export const RequestHookV2Schema = z.object({
|
|
36
37
|
chainId: z.number(),
|
|
37
38
|
from: z.string(),
|
|
38
|
-
to: z.string()
|
|
39
|
+
to: nullableOptional(z.string()),
|
|
39
40
|
data: z.string(),
|
|
40
|
-
value: z.string()
|
|
41
|
-
isAtomic:
|
|
41
|
+
value: nullableOptional(z.string()),
|
|
42
|
+
isAtomic: apiBooleanSchema(),
|
|
42
43
|
placeHolders: z.array(RequestPlaceholderSchema),
|
|
43
|
-
gasCompensationInfo: RequestGasCompensationInfoSchema
|
|
44
|
-
type: z.enum(BundleHookType)
|
|
45
|
-
gasLimit: z.string()
|
|
44
|
+
gasCompensationInfo: nullableOptional(RequestGasCompensationInfoSchema),
|
|
45
|
+
type: nullableOptional(z.enum(BundleHookType)),
|
|
46
|
+
gasLimit: nullableOptional(z.string()),
|
|
46
47
|
});
|
|
47
48
|
export const RequestHookV1Schema = z.object({
|
|
48
49
|
chainId: z.number(),
|
|
@@ -50,12 +51,12 @@ export const RequestHookV1Schema = z.object({
|
|
|
50
51
|
to: z.string(),
|
|
51
52
|
data: z.string(),
|
|
52
53
|
value: z.string(),
|
|
53
|
-
isAtomic:
|
|
54
|
+
isAtomic: apiBooleanSchema(),
|
|
54
55
|
tokenAddress: z.string(),
|
|
55
|
-
preparePreRequiredActions:
|
|
56
|
-
additionalAmountForPlaceholder: z.string()
|
|
57
|
-
allowedSender: z.string()
|
|
58
|
-
version: z.string()
|
|
56
|
+
preparePreRequiredActions: optionalApiBooleanSchema(),
|
|
57
|
+
additionalAmountForPlaceholder: nullableOptional(z.string()),
|
|
58
|
+
allowedSender: nullableOptional(z.string()),
|
|
59
|
+
version: nullableOptional(z.string()),
|
|
59
60
|
});
|
|
60
61
|
export const RequestHookSchema = z.union([RequestHookV2Schema, RequestHookV1Schema]);
|
|
61
62
|
export function isRequestHookV2(hook) {
|
|
@@ -65,6 +66,14 @@ export const RequestCostTokenSchema = z.object({
|
|
|
65
66
|
chainId: z.number(),
|
|
66
67
|
tokenAddress: z.string(),
|
|
67
68
|
});
|
|
69
|
+
// The API applies field-specific string transforms for these two trade flags.
|
|
70
|
+
// Generic request booleans use API-compatible Boolean() coercion below; these
|
|
71
|
+
// fields keep their custom API semantics instead.
|
|
72
|
+
const RequestPrependOperatingExpensesSchema = z.preprocess(value => value === null ? undefined : typeof value === "string" ? value !== "false" : value, z.boolean().optional());
|
|
73
|
+
const RequestPtpSchema = z.preprocess(value => value === null ? undefined : typeof value === "string" ? value === "true" : value, z.boolean().optional());
|
|
74
|
+
// Explicit null has the same wire semantics as an omitted expirationTimestamp:
|
|
75
|
+
// the server chooses the effective bundle/on-chain expiration values.
|
|
76
|
+
const RequestExpirationTimestampSchema = nullableOptional(z.number());
|
|
68
77
|
// Free-form integrator metadata. Echoed back in the response unchanged;
|
|
69
78
|
// validated for round-trip equality.
|
|
70
79
|
export const RequestMetadataEntrySchema = z.object({
|
|
@@ -84,40 +93,40 @@ export const RequestTradeSchema = z.object({
|
|
|
84
93
|
srcChainTokenInAmount: z.string(),
|
|
85
94
|
dstChainId: z.number(),
|
|
86
95
|
dstChainTokenOut: z.string(),
|
|
87
|
-
dstChainTokenOutAmount: z.string()
|
|
88
|
-
srcChainAuthorityAddress: z.string()
|
|
89
|
-
dstChainTokenOutRecipient: z.string()
|
|
90
|
-
dstChainAuthorityAddress: z.string()
|
|
91
|
-
partnerFeeBps: z.number()
|
|
92
|
-
allowedTaker: z.string()
|
|
93
|
-
dlnHook: z.string()
|
|
94
|
-
prependOperatingExpenses:
|
|
95
|
-
ptp:
|
|
96
|
-
dlnMetadata: z.string()
|
|
97
|
-
referralCode: z.number()
|
|
98
|
-
srcAllowedCancelBeneficiary: z.string()
|
|
96
|
+
dstChainTokenOutAmount: nullableOptional(z.string()),
|
|
97
|
+
srcChainAuthorityAddress: nullableOptional(z.string()),
|
|
98
|
+
dstChainTokenOutRecipient: nullableOptional(z.string()),
|
|
99
|
+
dstChainAuthorityAddress: nullableOptional(z.string()),
|
|
100
|
+
partnerFeeBps: nullableOptional(z.number()),
|
|
101
|
+
allowedTaker: nullableOptional(z.string()),
|
|
102
|
+
dlnHook: nullableOptional(z.string()),
|
|
103
|
+
prependOperatingExpenses: RequestPrependOperatingExpensesSchema,
|
|
104
|
+
ptp: RequestPtpSchema,
|
|
105
|
+
dlnMetadata: nullableOptional(z.string()),
|
|
106
|
+
referralCode: nullableOptional(z.number()),
|
|
107
|
+
srcAllowedCancelBeneficiary: nullableOptional(z.string()),
|
|
99
108
|
// Field is intentionally absent from the public API schema but is accepted
|
|
100
109
|
// by the server and round-trips into the response intent. Security-critical
|
|
101
110
|
// for execution-mode validation.
|
|
102
|
-
srcAllowedSender: z.string()
|
|
111
|
+
srcAllowedSender: nullableOptional(z.string()),
|
|
103
112
|
});
|
|
104
113
|
export const BundleCreationRequestSchema = z.object({
|
|
105
114
|
requestId: z.string(),
|
|
106
|
-
expirationTimestamp:
|
|
107
|
-
enableAccountAbstraction:
|
|
108
|
-
isAtomic:
|
|
115
|
+
expirationTimestamp: RequestExpirationTimestampSchema,
|
|
116
|
+
enableAccountAbstraction: apiBooleanSchema(),
|
|
117
|
+
isAtomic: defaultedApiBooleanSchema(true),
|
|
109
118
|
tradingAlgorithm: z.enum(TradingAlgorithm).optional().default(TradingAlgorithm.Market),
|
|
110
|
-
approveAmountFlag: z.enum(ApproveAmountFlag)
|
|
111
|
-
approvalMode: z.enum(ApprovalMode)
|
|
112
|
-
useRefill:
|
|
113
|
-
userId: z.string()
|
|
114
|
-
referralCode: z.number()
|
|
119
|
+
approveAmountFlag: nullableOptional(z.enum(ApproveAmountFlag)),
|
|
120
|
+
approvalMode: nullableOptional(z.enum(ApprovalMode)),
|
|
121
|
+
useRefill: optionalApiBooleanSchema(),
|
|
122
|
+
userId: nullableOptional(z.string()),
|
|
123
|
+
referralCode: nullableOptional(z.number()),
|
|
115
124
|
trades: z.array(RequestTradeSchema),
|
|
116
|
-
preHooks: z.array(RequestHookSchema)
|
|
117
|
-
postHooks: z.array(RequestHookSchema)
|
|
118
|
-
costToken: RequestCostTokenSchema
|
|
119
|
-
clientMetadata: z.array(RequestMetadataEntrySchema)
|
|
120
|
-
totalDstAmount: z.string()
|
|
121
|
-
allowPartialFill:
|
|
125
|
+
preHooks: nullableOptional(z.array(RequestHookSchema)),
|
|
126
|
+
postHooks: nullableOptional(z.array(RequestHookSchema)),
|
|
127
|
+
costToken: nullableOptional(RequestCostTokenSchema),
|
|
128
|
+
clientMetadata: nullableOptional(z.array(RequestMetadataEntrySchema)),
|
|
129
|
+
totalDstAmount: nullableOptional(z.string()),
|
|
130
|
+
allowPartialFill: optionalApiBooleanSchema(),
|
|
122
131
|
});
|
|
123
132
|
//# sourceMappingURL=request.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/types/request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,eAAe,GAClB,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH,qEAAqE;AACrE,yFAAyF;AACzF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/types/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { nullableOptional } from "../helpers/zod.js";
|
|
2
3
|
import { EvmActionKind, EvmActionOperation, SolanaActionKind, SolanaActionOperation, CostItemType, CostDetailType, } from "./enums.js";
|
|
3
4
|
import { RequestHookSchema, RequestMetadataEntrySchema } from "./request.js";
|
|
4
5
|
// --- Response Cost Details ---
|
|
5
6
|
export const ResponseCostDetailPayloadSchema = z.object({
|
|
6
|
-
feeAmount: z.string()
|
|
7
|
-
feeBps: z.string()
|
|
8
|
-
amountOutBeforeCorrection: z.string()
|
|
9
|
-
estimatedVolatilityBps: z.string()
|
|
10
|
-
actualFeeAmount: z.string()
|
|
11
|
-
actualFeeBps: z.string()
|
|
12
|
-
subsidyAmount: z.string()
|
|
13
|
-
feeApproximateUsdValue: z.string()
|
|
14
|
-
partnerFeeAmount: z.string()
|
|
15
|
-
partnerFeeBps: z.string()
|
|
7
|
+
feeAmount: nullableOptional(z.string()),
|
|
8
|
+
feeBps: nullableOptional(z.string()),
|
|
9
|
+
amountOutBeforeCorrection: nullableOptional(z.string()),
|
|
10
|
+
estimatedVolatilityBps: nullableOptional(z.string()),
|
|
11
|
+
actualFeeAmount: nullableOptional(z.string()),
|
|
12
|
+
actualFeeBps: nullableOptional(z.string()),
|
|
13
|
+
subsidyAmount: nullableOptional(z.string()),
|
|
14
|
+
feeApproximateUsdValue: nullableOptional(z.string()),
|
|
15
|
+
partnerFeeAmount: nullableOptional(z.string()),
|
|
16
|
+
partnerFeeBps: nullableOptional(z.string()),
|
|
16
17
|
});
|
|
17
18
|
export const ResponseCostDetailSchema = z.object({
|
|
18
19
|
chain: z.string(),
|
|
@@ -21,7 +22,7 @@ export const ResponseCostDetailSchema = z.object({
|
|
|
21
22
|
amountIn: z.string(),
|
|
22
23
|
amountOut: z.string(),
|
|
23
24
|
type: z.enum(CostDetailType),
|
|
24
|
-
payload: ResponseCostDetailPayloadSchema
|
|
25
|
+
payload: nullableOptional(ResponseCostDetailPayloadSchema),
|
|
25
26
|
});
|
|
26
27
|
export const ResponseComparedAggregatorSchema = z.object({
|
|
27
28
|
name: z.string(),
|
|
@@ -42,7 +43,7 @@ export const ResponseSrcChainTokenInSchema = z.object({
|
|
|
42
43
|
mutatedWithOperatingExpense: z.boolean(),
|
|
43
44
|
approximateUsdValue: z.number(),
|
|
44
45
|
originApproximateUsdValue: z.number(),
|
|
45
|
-
isWrapped: z.boolean()
|
|
46
|
+
isWrapped: nullableOptional(z.boolean()),
|
|
46
47
|
});
|
|
47
48
|
export const ResponseSrcChainTokenOutSchema = z.object({
|
|
48
49
|
chainId: z.number(),
|
|
@@ -51,8 +52,8 @@ export const ResponseSrcChainTokenOutSchema = z.object({
|
|
|
51
52
|
symbol: z.string(),
|
|
52
53
|
decimals: z.number(),
|
|
53
54
|
amount: z.string(),
|
|
54
|
-
maxRefundAmount: z.string()
|
|
55
|
-
approximateUsdValue: z.number()
|
|
55
|
+
maxRefundAmount: nullableOptional(z.string()),
|
|
56
|
+
approximateUsdValue: nullableOptional(z.number()),
|
|
56
57
|
});
|
|
57
58
|
export const ResponseDstChainTokenOutSchema = z.object({
|
|
58
59
|
chainId: z.number(),
|
|
@@ -64,31 +65,31 @@ export const ResponseDstChainTokenOutSchema = z.object({
|
|
|
64
65
|
recommendedAmount: z.string(),
|
|
65
66
|
approximateUsdValue: z.number(),
|
|
66
67
|
recommendedApproximateUsdValue: z.number(),
|
|
67
|
-
withoutPartnerFeeBpsAmount: z.string()
|
|
68
|
-
withoutPartnerFeeBpsApproximateUsdValue: z.number()
|
|
68
|
+
withoutPartnerFeeBpsAmount: nullableOptional(z.string()),
|
|
69
|
+
withoutPartnerFeeBpsApproximateUsdValue: nullableOptional(z.number()),
|
|
69
70
|
maxTheoreticalAmount: z.string(),
|
|
70
|
-
maxTheoreticalApproximateUsdValue: z.number()
|
|
71
|
-
withoutAdditionalTakerRewardsAmount: z.string()
|
|
72
|
-
withoutAdditionalTakerRewardsApproximateUsdValue: z.number()
|
|
71
|
+
maxTheoreticalApproximateUsdValue: nullableOptional(z.number()),
|
|
72
|
+
withoutAdditionalTakerRewardsAmount: nullableOptional(z.string()),
|
|
73
|
+
withoutAdditionalTakerRewardsApproximateUsdValue: nullableOptional(z.number()),
|
|
73
74
|
});
|
|
74
75
|
export const ResponseTradeSchema = z.object({
|
|
75
76
|
srcChainTokenIn: ResponseSrcChainTokenInSchema,
|
|
76
|
-
srcChainTokenOut: ResponseSrcChainTokenOutSchema
|
|
77
|
+
srcChainTokenOut: nullableOptional(ResponseSrcChainTokenOutSchema),
|
|
77
78
|
dstChainTokenOut: ResponseDstChainTokenOutSchema,
|
|
78
79
|
costsDetails: z.array(ResponseCostDetailSchema),
|
|
79
|
-
srcChainAuthorityAddress: z.string()
|
|
80
|
-
dstChainTokenOutRecipient: z.string()
|
|
81
|
-
dstChainAuthorityAddress: z.string()
|
|
82
|
-
relatedIntentId: z.string()
|
|
83
|
-
prependedOperatingExpenseCost: z.string()
|
|
80
|
+
srcChainAuthorityAddress: nullableOptional(z.string()),
|
|
81
|
+
dstChainTokenOutRecipient: nullableOptional(z.string()),
|
|
82
|
+
dstChainAuthorityAddress: nullableOptional(z.string()),
|
|
83
|
+
relatedIntentId: nullableOptional(z.string()),
|
|
84
|
+
prependedOperatingExpenseCost: nullableOptional(z.string()),
|
|
84
85
|
userPoints: z.number(),
|
|
85
86
|
integratorPoints: z.number(),
|
|
86
|
-
actualUserPoints: z.number()
|
|
87
|
-
actualIntegratorPoints: z.number()
|
|
87
|
+
actualUserPoints: nullableOptional(z.number()),
|
|
88
|
+
actualIntegratorPoints: nullableOptional(z.number()),
|
|
88
89
|
usdPriceImpact: z.number().nullable(),
|
|
89
|
-
comparedAggregators: z.array(ResponseComparedAggregatorSchema)
|
|
90
|
-
partnerFeeBps: z.number()
|
|
91
|
-
externalCallData: z.string()
|
|
90
|
+
comparedAggregators: nullableOptional(z.array(ResponseComparedAggregatorSchema)),
|
|
91
|
+
partnerFeeBps: nullableOptional(z.number()),
|
|
92
|
+
externalCallData: nullableOptional(z.string()),
|
|
92
93
|
});
|
|
93
94
|
// --- Response Intent ---
|
|
94
95
|
export const ResponseDestinationDetailsSchema = z.object({
|
|
@@ -121,16 +122,16 @@ export const ResponseIntentSchema = z.object({
|
|
|
121
122
|
intentOwner: z.string(),
|
|
122
123
|
expirationTimestamp: z.number(),
|
|
123
124
|
intentTimestamp: z.number(),
|
|
124
|
-
receiverDetails: z.array(ResponseDestinationDetailsSchema)
|
|
125
|
-
inputToken: z.array(ResponseInputTokenSchema)
|
|
126
|
-
giveToken: z.array(ResponseGiveTokenSchema)
|
|
127
|
-
takeToken: z.array(ResponseTakeTokenSchema)
|
|
128
|
-
srcAllowedSender: z.array(z.string())
|
|
129
|
-
executionMetadata: z.string()
|
|
130
|
-
dlnMetadata: z.string()
|
|
131
|
-
externalCallHash: z.string()
|
|
132
|
-
allowedCancelBeneficiary: z.string()
|
|
133
|
-
dstAuthorityAddress: z.array(ResponseDestinationDetailsSchema)
|
|
125
|
+
receiverDetails: nullableOptional(z.array(ResponseDestinationDetailsSchema)),
|
|
126
|
+
inputToken: nullableOptional(z.array(ResponseInputTokenSchema)),
|
|
127
|
+
giveToken: nullableOptional(z.array(ResponseGiveTokenSchema)),
|
|
128
|
+
takeToken: nullableOptional(z.array(ResponseTakeTokenSchema)).default([]),
|
|
129
|
+
srcAllowedSender: nullableOptional(z.array(z.string())),
|
|
130
|
+
executionMetadata: nullableOptional(z.string()),
|
|
131
|
+
dlnMetadata: nullableOptional(z.string()),
|
|
132
|
+
externalCallHash: nullableOptional(z.string()),
|
|
133
|
+
allowedCancelBeneficiary: nullableOptional(z.string()),
|
|
134
|
+
dstAuthorityAddress: nullableOptional(z.array(ResponseDestinationDetailsSchema)),
|
|
134
135
|
});
|
|
135
136
|
// --- Required Actions (EVM) ---
|
|
136
137
|
/**
|
|
@@ -184,9 +185,9 @@ export const EvmSign7702AuthorizationDataSchema = z.object({
|
|
|
184
185
|
export const EvmSign712DataSchema = z.object({
|
|
185
186
|
domain: z.object({
|
|
186
187
|
name: z.string(),
|
|
187
|
-
version: z.string()
|
|
188
|
-
chainId: z.number()
|
|
189
|
-
verifyingContract: z.string()
|
|
188
|
+
version: nullableOptional(z.string()),
|
|
189
|
+
chainId: nullableOptional(z.number()),
|
|
190
|
+
verifyingContract: nullableOptional(z.string()),
|
|
190
191
|
}),
|
|
191
192
|
types: z.record(z.string(), z.array(z.object({ name: z.string(), type: z.string() }))),
|
|
192
193
|
primaryType: z.string(),
|
|
@@ -240,17 +241,17 @@ export const EvmProvidePlaceholdersDataSchema = z.object({
|
|
|
240
241
|
* approved spender / token / Permit2 router.
|
|
241
242
|
*/
|
|
242
243
|
export const EvmActionDetailsSchema = z.object({
|
|
243
|
-
transactionCalls: z.array(EvmTransactionDataSchema)
|
|
244
|
-
allowanceHolder: z.string()
|
|
245
|
-
tokenAddress: z.string()
|
|
246
|
-
permit2Contract: z.string()
|
|
244
|
+
transactionCalls: nullableOptional(z.array(EvmTransactionDataSchema)),
|
|
245
|
+
allowanceHolder: nullableOptional(z.string()),
|
|
246
|
+
tokenAddress: nullableOptional(z.string()),
|
|
247
|
+
permit2Contract: nullableOptional(z.string()),
|
|
247
248
|
});
|
|
248
249
|
export const NetworkDetailsSchema = z.object({
|
|
249
|
-
gasLimit: z.string()
|
|
250
|
-
gasPrice: z.string()
|
|
251
|
-
baseFee: z.string()
|
|
252
|
-
maxFeePerGas: z.string()
|
|
253
|
-
maxPriorityFeePerGas: z.string()
|
|
250
|
+
gasLimit: nullableOptional(z.string()),
|
|
251
|
+
gasPrice: nullableOptional(z.string()),
|
|
252
|
+
baseFee: nullableOptional(z.string()),
|
|
253
|
+
maxFeePerGas: nullableOptional(z.string()),
|
|
254
|
+
maxPriorityFeePerGas: nullableOptional(z.string()),
|
|
254
255
|
});
|
|
255
256
|
export const CostItemSchema = z.object({
|
|
256
257
|
costChainId: z.number(),
|
|
@@ -258,13 +259,13 @@ export const CostItemSchema = z.object({
|
|
|
258
259
|
amount: z.string(),
|
|
259
260
|
approximateUsdValue: z.number(),
|
|
260
261
|
type: z.enum(CostItemType),
|
|
261
|
-
feeBps: z.number()
|
|
262
|
-
details: z.object({
|
|
262
|
+
feeBps: nullableOptional(z.number()),
|
|
263
|
+
details: nullableOptional(z.object({
|
|
263
264
|
originalChainId: z.number(),
|
|
264
|
-
})
|
|
265
|
+
})),
|
|
265
266
|
});
|
|
266
267
|
export const EvmCostItemSchema = CostItemSchema.extend({
|
|
267
|
-
networkDetails: NetworkDetailsSchema
|
|
268
|
+
networkDetails: nullableOptional(NetworkDetailsSchema),
|
|
268
269
|
});
|
|
269
270
|
/**
|
|
270
271
|
* Single EVM `requiredAction` element. The same shape is used in both
|
|
@@ -290,7 +291,7 @@ export const EvmRequiredActionSchema = z.object({
|
|
|
290
291
|
EvmSign712DataSchema,
|
|
291
292
|
EvmProvidePlaceholdersDataSchema,
|
|
292
293
|
]),
|
|
293
|
-
details: EvmActionDetailsSchema
|
|
294
|
+
details: nullableOptional(EvmActionDetailsSchema),
|
|
294
295
|
actionCosts: z.array(EvmCostItemSchema),
|
|
295
296
|
description: z.string(),
|
|
296
297
|
});
|
|
@@ -322,7 +323,7 @@ export const SolanaRequiredActionSchema = z.object({
|
|
|
322
323
|
type: z.enum(SolanaActionKind),
|
|
323
324
|
actions: z.array(z.enum(SolanaActionOperation)),
|
|
324
325
|
data: z.union([SolanaTransactionDataSchema, SolanaSignDataSchema]),
|
|
325
|
-
details: z.undefined()
|
|
326
|
+
details: nullableOptional(z.undefined()),
|
|
326
327
|
actionCosts: z.array(CostItemSchema),
|
|
327
328
|
description: z.string(),
|
|
328
329
|
});
|
|
@@ -339,14 +340,14 @@ export const ResponseIntentPayloadSchema = z.object({
|
|
|
339
340
|
export const AccumulativeTokenInputSchema = z.object({
|
|
340
341
|
chainId: z.number(),
|
|
341
342
|
tokenAddress: z.string(),
|
|
342
|
-
spenderAddress: z.string()
|
|
343
|
+
spenderAddress: nullableOptional(z.string()),
|
|
343
344
|
amount: z.string(),
|
|
344
345
|
approximateUsdValue: z.number(),
|
|
345
346
|
});
|
|
346
347
|
export const AccumulativeTokenOutputSchema = z.object({
|
|
347
348
|
chainId: z.number(),
|
|
348
349
|
tokenAddress: z.string(),
|
|
349
|
-
recipientAddress: z.string()
|
|
350
|
+
recipientAddress: nullableOptional(z.string()),
|
|
350
351
|
amount: z.string(),
|
|
351
352
|
approximateUsdValue: z.number(),
|
|
352
353
|
});
|
|
@@ -355,7 +356,7 @@ export const ResponseHookPayloadSchema = z.object({
|
|
|
355
356
|
// In quote mode the API omits requiredActions entirely. Default to an
|
|
356
357
|
// empty array here so downstream hook validators can iterate without
|
|
357
358
|
// null checks at every call site.
|
|
358
|
-
requiredActions: z.array(ResponseRequiredActionSchema)
|
|
359
|
+
requiredActions: nullableOptional(z.array(ResponseRequiredActionSchema))
|
|
359
360
|
.transform(value => value ?? []),
|
|
360
361
|
hook: RequestHookSchema,
|
|
361
362
|
});
|
|
@@ -363,8 +364,8 @@ export const ResponseHookPayloadSchema = z.object({
|
|
|
363
364
|
export const BundleCreationResponseSchema = z.object({
|
|
364
365
|
requestId: z.string(),
|
|
365
366
|
expirationTimestamp: z.number(),
|
|
366
|
-
userId: z.string()
|
|
367
|
-
referralCode: z.number()
|
|
367
|
+
userId: nullableOptional(z.string()),
|
|
368
|
+
referralCode: nullableOptional(z.number()),
|
|
368
369
|
trades: z.array(ResponseTradeSchema),
|
|
369
370
|
intents: z.array(ResponseIntentPayloadSchema),
|
|
370
371
|
preHooks: z.array(ResponseHookPayloadSchema),
|
|
@@ -372,8 +373,8 @@ export const BundleCreationResponseSchema = z.object({
|
|
|
372
373
|
accumulativeTokenInput: z.array(AccumulativeTokenInputSchema),
|
|
373
374
|
accumulativeTokenOutput: z.array(AccumulativeTokenOutputSchema),
|
|
374
375
|
bundleCosts: z.array(CostItemSchema),
|
|
375
|
-
clientMetadata: z.array(RequestMetadataEntrySchema)
|
|
376
|
-
estimatedTotalDstAmount: z.string()
|
|
377
|
-
useRefill: z.boolean()
|
|
376
|
+
clientMetadata: nullableOptional(z.array(RequestMetadataEntrySchema)),
|
|
377
|
+
estimatedTotalDstAmount: nullableOptional(z.string()),
|
|
378
|
+
useRefill: nullableOptional(z.boolean()),
|
|
378
379
|
});
|
|
379
380
|
//# sourceMappingURL=response.js.map
|