@debridge-finance/borderless-validation-sdk 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/helpers/solana-hook-instructions.js +66 -0
- package/dist/cjs/helpers/solana-hook-instructions.js.map +1 -0
- package/dist/cjs/helpers/solana-instruction.js +5 -1
- package/dist/cjs/helpers/solana-instruction.js.map +1 -1
- package/dist/cjs/helpers/solana-intent-id.js +11 -1
- package/dist/cjs/helpers/solana-intent-id.js.map +1 -1
- package/dist/cjs/helpers/solana-intent-instruction.js +106 -0
- package/dist/cjs/helpers/solana-intent-instruction.js.map +1 -0
- package/dist/cjs/types/enums.js +2 -8
- package/dist/cjs/types/enums.js.map +1 -1
- package/dist/cjs/types/response.js +12 -2
- package/dist/cjs/types/response.js.map +1 -1
- package/dist/cjs/types/validation.js +30 -0
- package/dist/cjs/types/validation.js.map +1 -1
- package/dist/cjs/validations/evm-required-actions.js +2 -0
- package/dist/cjs/validations/evm-required-actions.js.map +1 -1
- package/dist/cjs/validations/evm-sign712-shared.js +2 -5
- package/dist/cjs/validations/evm-sign712-shared.js.map +1 -1
- package/dist/cjs/validations/evm-transaction-scope.js +29 -0
- package/dist/cjs/validations/evm-transaction-scope.js.map +1 -0
- package/dist/cjs/validations/hooks-common.js +18 -15
- package/dist/cjs/validations/hooks-common.js.map +1 -1
- package/dist/cjs/validations/low-input-sweep-bundle.js +94 -0
- package/dist/cjs/validations/low-input-sweep-bundle.js.map +1 -0
- package/dist/cjs/validations/low-input-sweep-hook.js +204 -0
- package/dist/cjs/validations/low-input-sweep-hook.js.map +1 -0
- package/dist/cjs/validations/low-input-sweep.js +294 -0
- package/dist/cjs/validations/low-input-sweep.js.map +1 -0
- package/dist/cjs/validations/on-chain-intent-submission.js +16 -5
- package/dist/cjs/validations/on-chain-intent-submission.js.map +1 -1
- package/dist/cjs/validations/ptp.js +13 -15
- package/dist/cjs/validations/ptp.js.map +1 -1
- package/dist/cjs/validations/solana-embedded-intent.js +187 -0
- package/dist/cjs/validations/solana-embedded-intent.js.map +1 -0
- package/dist/cjs/validations/solana-hook.js +1 -1
- package/dist/cjs/validations/solana-hook.js.map +1 -1
- package/dist/cjs/validations/solana-intent-accounts.js +99 -0
- package/dist/cjs/validations/solana-intent-accounts.js.map +1 -0
- package/dist/cjs/validations/solana-low-input-sweep.js +251 -0
- package/dist/cjs/validations/solana-low-input-sweep.js.map +1 -0
- package/dist/cjs/validations/solana-required-actions.js +6 -2
- package/dist/cjs/validations/solana-required-actions.js.map +1 -1
- package/dist/cjs/validations/solana-transaction.js +25 -5
- package/dist/cjs/validations/solana-transaction.js.map +1 -1
- package/dist/cjs/validations/trade-grouping.js +23 -26
- package/dist/cjs/validations/trade-grouping.js.map +1 -1
- package/dist/cjs/validations/trade-matching.js +21 -13
- package/dist/cjs/validations/trade-matching.js.map +1 -1
- package/dist/cjs/validations/trades.js +33 -20
- package/dist/cjs/validations/trades.js.map +1 -1
- package/dist/cjs/validator.js +14 -5
- package/dist/cjs/validator.js.map +1 -1
- package/dist/cjs/whitelists/environment-config.js +39 -0
- package/dist/cjs/whitelists/environment-config.js.map +1 -1
- package/dist/cjs/whitelists/types.js.map +1 -1
- package/dist/esm/helpers/solana-hook-instructions.js +63 -0
- package/dist/esm/helpers/solana-hook-instructions.js.map +1 -0
- package/dist/esm/helpers/solana-instruction.js +4 -0
- package/dist/esm/helpers/solana-instruction.js.map +1 -1
- package/dist/esm/helpers/solana-intent-id.js +10 -1
- package/dist/esm/helpers/solana-intent-id.js.map +1 -1
- package/dist/esm/helpers/solana-intent-instruction.js +98 -0
- package/dist/esm/helpers/solana-intent-instruction.js.map +1 -0
- package/dist/esm/types/enums.js +0 -6
- package/dist/esm/types/enums.js.map +1 -1
- package/dist/esm/types/response.js +12 -2
- package/dist/esm/types/response.js.map +1 -1
- package/dist/esm/types/validation.js +30 -0
- package/dist/esm/types/validation.js.map +1 -1
- package/dist/esm/validations/evm-required-actions.js +2 -0
- package/dist/esm/validations/evm-required-actions.js.map +1 -1
- package/dist/esm/validations/evm-sign712-shared.js +2 -5
- package/dist/esm/validations/evm-sign712-shared.js.map +1 -1
- package/dist/esm/validations/evm-transaction-scope.js +26 -0
- package/dist/esm/validations/evm-transaction-scope.js.map +1 -0
- package/dist/esm/validations/hooks-common.js +18 -15
- package/dist/esm/validations/hooks-common.js.map +1 -1
- package/dist/esm/validations/low-input-sweep-bundle.js +91 -0
- package/dist/esm/validations/low-input-sweep-bundle.js.map +1 -0
- package/dist/esm/validations/low-input-sweep-hook.js +201 -0
- package/dist/esm/validations/low-input-sweep-hook.js.map +1 -0
- package/dist/esm/validations/low-input-sweep.js +291 -0
- package/dist/esm/validations/low-input-sweep.js.map +1 -0
- package/dist/esm/validations/on-chain-intent-submission.js +17 -6
- package/dist/esm/validations/on-chain-intent-submission.js.map +1 -1
- package/dist/esm/validations/ptp.js +13 -15
- package/dist/esm/validations/ptp.js.map +1 -1
- package/dist/esm/validations/solana-embedded-intent.js +184 -0
- package/dist/esm/validations/solana-embedded-intent.js.map +1 -0
- package/dist/esm/validations/solana-hook.js +2 -2
- package/dist/esm/validations/solana-hook.js.map +1 -1
- package/dist/esm/validations/solana-intent-accounts.js +95 -0
- package/dist/esm/validations/solana-intent-accounts.js.map +1 -0
- package/dist/esm/validations/solana-low-input-sweep.js +248 -0
- package/dist/esm/validations/solana-low-input-sweep.js.map +1 -0
- package/dist/esm/validations/solana-required-actions.js +6 -2
- package/dist/esm/validations/solana-required-actions.js.map +1 -1
- package/dist/esm/validations/solana-transaction.js +25 -5
- package/dist/esm/validations/solana-transaction.js.map +1 -1
- package/dist/esm/validations/trade-grouping.js +23 -26
- package/dist/esm/validations/trade-grouping.js.map +1 -1
- package/dist/esm/validations/trade-matching.js +21 -13
- package/dist/esm/validations/trade-matching.js.map +1 -1
- package/dist/esm/validations/trades.js +33 -20
- package/dist/esm/validations/trades.js.map +1 -1
- package/dist/esm/validator.js +14 -5
- package/dist/esm/validator.js.map +1 -1
- package/dist/esm/whitelists/environment-config.js +39 -0
- package/dist/esm/whitelists/environment-config.js.map +1 -1
- package/dist/esm/whitelists/types.js.map +1 -1
- package/dist/types/helpers/solana-hook-instructions.d.ts +14 -0
- package/dist/types/helpers/solana-hook-instructions.d.ts.map +1 -0
- package/dist/types/helpers/solana-instruction.d.ts +3 -0
- package/dist/types/helpers/solana-instruction.d.ts.map +1 -1
- package/dist/types/helpers/solana-intent-id.d.ts +5 -0
- package/dist/types/helpers/solana-intent-id.d.ts.map +1 -1
- package/dist/types/helpers/solana-intent-instruction.d.ts +34 -0
- package/dist/types/helpers/solana-intent-instruction.d.ts.map +1 -0
- package/dist/types/types/enums.d.ts +0 -4
- package/dist/types/types/enums.d.ts.map +1 -1
- package/dist/types/types/response.d.ts +71 -1
- package/dist/types/types/response.d.ts.map +1 -1
- package/dist/types/types/validation.d.ts +29 -0
- package/dist/types/types/validation.d.ts.map +1 -1
- package/dist/types/validations/evm-required-actions.d.ts.map +1 -1
- package/dist/types/validations/evm-sign712-shared.d.ts.map +1 -1
- package/dist/types/validations/evm-transaction-scope.d.ts +3 -0
- package/dist/types/validations/evm-transaction-scope.d.ts.map +1 -0
- package/dist/types/validations/hooks-common.d.ts +2 -1
- package/dist/types/validations/hooks-common.d.ts.map +1 -1
- package/dist/types/validations/low-input-sweep-bundle.d.ts +3 -0
- package/dist/types/validations/low-input-sweep-bundle.d.ts.map +1 -0
- package/dist/types/validations/low-input-sweep-hook.d.ts +9 -0
- package/dist/types/validations/low-input-sweep-hook.d.ts.map +1 -0
- package/dist/types/validations/low-input-sweep.d.ts +15 -0
- package/dist/types/validations/low-input-sweep.d.ts.map +1 -0
- package/dist/types/validations/on-chain-intent-submission.d.ts.map +1 -1
- package/dist/types/validations/ptp.d.ts +3 -2
- package/dist/types/validations/ptp.d.ts.map +1 -1
- package/dist/types/validations/solana-embedded-intent.d.ts +3 -0
- package/dist/types/validations/solana-embedded-intent.d.ts.map +1 -0
- package/dist/types/validations/solana-hook.d.ts.map +1 -1
- package/dist/types/validations/solana-intent-accounts.d.ts +14 -0
- package/dist/types/validations/solana-intent-accounts.d.ts.map +1 -0
- package/dist/types/validations/solana-low-input-sweep.d.ts +9 -0
- package/dist/types/validations/solana-low-input-sweep.d.ts.map +1 -0
- package/dist/types/validations/solana-required-actions.d.ts.map +1 -1
- package/dist/types/validations/solana-transaction.d.ts.map +1 -1
- package/dist/types/validations/trade-grouping.d.ts +1 -1
- package/dist/types/validations/trade-grouping.d.ts.map +1 -1
- package/dist/types/validations/trade-matching.d.ts +1 -1
- package/dist/types/validations/trade-matching.d.ts.map +1 -1
- package/dist/types/validations/trades.d.ts +1 -1
- package/dist/types/validations/trades.d.ts.map +1 -1
- package/dist/types/validator.d.ts.map +1 -1
- package/dist/types/whitelists/environment-config.d.ts.map +1 -1
- package/dist/types/whitelists/types.d.ts +1 -0
- package/dist/types/whitelists/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana-embedded-intent.js","sourceRoot":"","sources":["../../../src/validations/solana-embedded-intent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ViolationCode, SolanaActionKind, SolanaActionOperation, PlaceholderType, } from "../types/index.js";
|
|
2
2
|
import { isRequestHookV2 } from "../types/request.js";
|
|
3
3
|
import { hexEquals } from "../helpers/hex.js";
|
|
4
|
-
import { resolveInstructions, isSystemTransfer, isMemo, } from "../helpers/solana-instruction.js";
|
|
4
|
+
import { resolveInstructions, isSystemTransfer, isMemo, SPL_TRANSFER_CHECKED_DISCRIMINATOR, } from "../helpers/solana-instruction.js";
|
|
5
5
|
import { GAS_COMPENSATION_ALLOWED_PROGRAMS, SPL_TOKEN_PROGRAM, SPL_TOKEN_2022_PROGRAM, } from "../whitelists/solana/programs.js";
|
|
6
6
|
import { addressEquals, getChainEngine } from "../helpers/address.js";
|
|
7
7
|
import { ChainEngine } from "../types/enums.js";
|
|
@@ -304,7 +304,7 @@ function isSplTransferChecked(ix) {
|
|
|
304
304
|
if (ix.programId !== SPL_TOKEN_PROGRAM && ix.programId !== SPL_TOKEN_2022_PROGRAM) {
|
|
305
305
|
return false;
|
|
306
306
|
}
|
|
307
|
-
return ix.data.length >= 10 && ix.data[0] ===
|
|
307
|
+
return ix.data.length >= 10 && ix.data[0] === SPL_TRANSFER_CHECKED_DISCRIMINATOR;
|
|
308
308
|
}
|
|
309
309
|
function truncateHex(hex) {
|
|
310
310
|
if (hex.length <= 20)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana-hook.js","sourceRoot":"","sources":["../../../src/validations/solana-hook.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"solana-hook.js","sourceRoot":"","sources":["../../../src/validations/solana-hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { ViolationCode } from "../types/index.js";
|
|
2
|
+
import { isDelegateInit, isSignatureInit } from "../helpers/solana-intent-instruction.js";
|
|
3
|
+
import { SYSTEM_PROGRAM } from "../whitelists/solana/programs.js";
|
|
4
|
+
// CRITICAL: bind init accounts to the maker and the storage PDA of this intent.
|
|
5
|
+
// Rent payers are not whitelisted; only the privileges needed by the instruction
|
|
6
|
+
// are required. Delegated initialization additionally binds the maker-info PDA;
|
|
7
|
+
// authorization of its delegate is enforced by the program's maker-info state.
|
|
8
|
+
export function validateSolanaInitIntentAccounts(transaction, instructionIndex, kind, accounts, path) {
|
|
9
|
+
const usesSignature = isSignatureInit(kind);
|
|
10
|
+
const maker = { name: "maker", address: accounts.maker };
|
|
11
|
+
const authorization = isDelegateInit(kind)
|
|
12
|
+
? [
|
|
13
|
+
{
|
|
14
|
+
name: "delegate",
|
|
15
|
+
...(usesSignature ? {} : { signer: true })
|
|
16
|
+
},
|
|
17
|
+
maker,
|
|
18
|
+
{
|
|
19
|
+
name: "makerInfo",
|
|
20
|
+
address: accounts.makerInfo,
|
|
21
|
+
...(usesSignature ? {} : { writable: true })
|
|
22
|
+
},
|
|
23
|
+
]
|
|
24
|
+
: [{ ...maker, ...(usesSignature ? {} : { signer: true }) }];
|
|
25
|
+
return validateInstructionAccounts(transaction, instructionIndex, [
|
|
26
|
+
...authorization,
|
|
27
|
+
{ name: "rentPayer", signer: true, writable: true },
|
|
28
|
+
{ name: "state", address: accounts.state },
|
|
29
|
+
{ name: "intentStorage", address: accounts.intentStorage, writable: true },
|
|
30
|
+
...programAccounts(accounts),
|
|
31
|
+
], path);
|
|
32
|
+
}
|
|
33
|
+
// CRITICAL: an inline update must seal the same storage account as initialization.
|
|
34
|
+
// The program ID occupies Anchor's absent optional buffer-account slot.
|
|
35
|
+
export function validateSolanaUpdateIntentAccounts(transaction, instructionIndex, accounts, path) {
|
|
36
|
+
const [systemProgram, eventAuthority, program] = programAccounts(accounts);
|
|
37
|
+
return validateInstructionAccounts(transaction, instructionIndex, [
|
|
38
|
+
{ name: "rentPayer", signer: true, writable: true },
|
|
39
|
+
{ name: "state", address: accounts.state },
|
|
40
|
+
{ name: "intentStorage", address: accounts.intentStorage, writable: true },
|
|
41
|
+
systemProgram,
|
|
42
|
+
{ name: "buffer", address: accounts.program },
|
|
43
|
+
eventAuthority,
|
|
44
|
+
program,
|
|
45
|
+
], path);
|
|
46
|
+
}
|
|
47
|
+
function programAccounts(accounts) {
|
|
48
|
+
return [
|
|
49
|
+
{ name: "systemProgram", address: SYSTEM_PROGRAM },
|
|
50
|
+
{ name: "eventAuthority", address: accounts.eventAuthority },
|
|
51
|
+
{ name: "program", address: accounts.program },
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
// HIGH: reject missing or extra operands rather than silently ignoring accounts.
|
|
55
|
+
function validateInstructionAccounts(transaction, instructionIndex, expected, path) {
|
|
56
|
+
const accountIndices = transaction.message.compiledInstructions[instructionIndex].accountKeyIndexes;
|
|
57
|
+
if (accountIndices.length !== expected.length) {
|
|
58
|
+
return [{
|
|
59
|
+
code: ViolationCode.SolanaIntentInstructionAccountsMismatch,
|
|
60
|
+
message: "intent instruction account count does not match its layout",
|
|
61
|
+
path,
|
|
62
|
+
expected: expected.length,
|
|
63
|
+
actual: accountIndices.length,
|
|
64
|
+
details: { instructionIndex },
|
|
65
|
+
}];
|
|
66
|
+
}
|
|
67
|
+
return expected.flatMap((account, i) => validateAccount(transaction, accountIndices[i], account, path, instructionIndex, i));
|
|
68
|
+
}
|
|
69
|
+
// CRITICAL: account identity and required signer/writable privileges must match.
|
|
70
|
+
// Other instructions can promote shared accounts to signer/writable, so additional
|
|
71
|
+
// privileges are not rejected merely because this instruction does not need them.
|
|
72
|
+
function validateAccount(transaction, keyIndex, expected, path, instructionIndex, accountIndex) {
|
|
73
|
+
const message = transaction.message;
|
|
74
|
+
const address = message.staticAccountKeys[keyIndex]?.toBase58();
|
|
75
|
+
const signer = message.isAccountSigner(keyIndex);
|
|
76
|
+
const writable = message.isAccountWritable(keyIndex);
|
|
77
|
+
if (address !== undefined
|
|
78
|
+
&& (expected.address === undefined || address === expected.address)
|
|
79
|
+
&& (!expected.signer || signer)
|
|
80
|
+
&& (!expected.writable || writable))
|
|
81
|
+
return [];
|
|
82
|
+
return [{
|
|
83
|
+
code: ViolationCode.SolanaIntentInstructionAccountsMismatch,
|
|
84
|
+
message: "intent instruction account identity or required privileges do not match",
|
|
85
|
+
path,
|
|
86
|
+
expected: { address: expected.address, signer: expected.signer, writable: expected.writable },
|
|
87
|
+
actual: {
|
|
88
|
+
address,
|
|
89
|
+
signer: expected.signer ? signer : undefined,
|
|
90
|
+
writable: expected.writable ? writable : undefined,
|
|
91
|
+
},
|
|
92
|
+
details: { instructionIndex, accountIndex, account: expected.name },
|
|
93
|
+
}];
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=solana-intent-accounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana-intent-accounts.js","sourceRoot":"","sources":["../../../src/validations/solana-intent-accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { addressEquals, isNativeToken } from "../helpers/address.js";
|
|
2
|
+
import { deriveAta, isCreateAtaIdempotent, isMemo, isSystemTransfer, SPL_CLOSE_ACCOUNT_DISCRIMINATOR, SPL_TRANSFER_DISCRIMINATOR, SPL_TRANSFER_CHECKED_DISCRIMINATOR, } from "../helpers/solana-instruction.js";
|
|
3
|
+
import { decodeSolanaHookInstructions, } from "../helpers/solana-hook-instructions.js";
|
|
4
|
+
import { SPL_TOKEN_PROGRAM, SPL_TOKEN_2022_PROGRAM, SYSTEM_PROGRAM } from "../whitelists/solana/programs.js";
|
|
5
|
+
// Checks whether the entire hook is an allowed transfer for this sweep.
|
|
6
|
+
// Returns `undefined` when the hook does not match.
|
|
7
|
+
// Recipient whitelisting is checked separately.
|
|
8
|
+
export function readSolanaSweepTransfer(hook, sweep) {
|
|
9
|
+
// CRITICAL: an API-built Solana hook is not a trusted user-provided transaction.
|
|
10
|
+
// Decode every instruction before treating its bytes as the expected Hook payload.
|
|
11
|
+
try {
|
|
12
|
+
const decoded = decodeSolanaHookInstructions(hook.data);
|
|
13
|
+
// CRITICAL: additional signers must be readonly and used only by Memo.
|
|
14
|
+
if (!areSweepSignersAllowed(decoded, sweep))
|
|
15
|
+
return undefined;
|
|
16
|
+
// Collect matching transfers and retain their instruction indices.
|
|
17
|
+
// Non-matching instructions are checked separately below, not ignored.
|
|
18
|
+
const transfers = decoded.instructions.flatMap((instruction, index) => {
|
|
19
|
+
const transfer = readTransfer(instruction, sweep);
|
|
20
|
+
return transfer === undefined ? [] : [{ transfer, index }];
|
|
21
|
+
});
|
|
22
|
+
// CRITICAL: exactly one instruction must match this sweep's transfer.
|
|
23
|
+
if (transfers.length !== 1)
|
|
24
|
+
return undefined;
|
|
25
|
+
const { transfer, index } = transfers[0];
|
|
26
|
+
// CRITICAL: every remaining instruction must be an allowed memo,
|
|
27
|
+
// destination ATA creation, or source ATA close. This also rejects
|
|
28
|
+
// transfers that did not match the sweep.
|
|
29
|
+
if (!auxiliaryInstructionsMatch(decoded.instructions, index, transfer, sweep, decoded.feePayer))
|
|
30
|
+
return undefined;
|
|
31
|
+
return transfer;
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Malformed bytes/accounts cannot bind a sweep.
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
// The API currently adds one Memo co-signer. Intentionally, the SDK does not cap
|
|
39
|
+
// their number: additional base fees and dependence on every required signature
|
|
40
|
+
// are accepted risks. This checks signer roles, not API identity or signatures.
|
|
41
|
+
function areSweepSignersAllowed(decoded, sweep) {
|
|
42
|
+
return decoded.signers.every(signer => {
|
|
43
|
+
// Authority and fee payer may be writable and may also sign Memo.
|
|
44
|
+
if (addressEquals(sweep.realChainId, signer, sweep.sender)
|
|
45
|
+
|| addressEquals(sweep.realChainId, signer, decoded.feePayer))
|
|
46
|
+
return true;
|
|
47
|
+
return isReadonlyMemoOnlySigner(decoded.instructions, signer, sweep.realChainId);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
// Requires actual Memo use and rejects every other use of the additional signer,
|
|
51
|
+
// including as a program ID. Privileges are resolved from the complete message.
|
|
52
|
+
function isReadonlyMemoOnlySigner(instructions, signer, realChainId) {
|
|
53
|
+
let usedInMemo = false;
|
|
54
|
+
for (const instruction of instructions) {
|
|
55
|
+
// CRITICAL: an additional signer must not be used as an instruction's program ID.
|
|
56
|
+
if (addressEquals(realChainId, instruction.programId, signer))
|
|
57
|
+
return false;
|
|
58
|
+
for (let i = 0; i < instruction.accountKeys.length; i++) {
|
|
59
|
+
if (!addressEquals(realChainId, instruction.accountKeys[i], signer))
|
|
60
|
+
continue;
|
|
61
|
+
// CRITICAL: check every occurrence; writable privileges are global,
|
|
62
|
+
// and even a readonly account reference outside Memo is forbidden.
|
|
63
|
+
if (!isMemo(instruction)
|
|
64
|
+
|| !instruction.accountMetas[i].isSigner
|
|
65
|
+
|| instruction.accountMetas[i].isWritable)
|
|
66
|
+
return false;
|
|
67
|
+
usedInMemo = true;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// HIGH: an unused required signer adds a signature without a permitted role.
|
|
71
|
+
return usedInMemo;
|
|
72
|
+
}
|
|
73
|
+
// Checks whether this instruction transfers the expected asset from the expected
|
|
74
|
+
// sender for the sweep amount. Returns `undefined` if the instruction does not match.
|
|
75
|
+
function readTransfer(instruction, sweep) {
|
|
76
|
+
if (isNativeToken(sweep.trade.srcChainTokenIn, sweep.realChainId)) {
|
|
77
|
+
// CRITICAL: native SOL must use a SystemProgram.Transfer from the request authority.
|
|
78
|
+
if (!isSystemTransfer(instruction)
|
|
79
|
+
|| instruction.data.length !== 12 // operation ID (4 bytes) + amount (8 bytes)
|
|
80
|
+
|| instruction.accountKeys.length !== 2 // sender + recipient
|
|
81
|
+
)
|
|
82
|
+
return undefined;
|
|
83
|
+
// Index 0 - sender account. Index 1 - recipient account.
|
|
84
|
+
if (!addressEquals(sweep.realChainId, instruction.accountKeys[0], sweep.sender)
|
|
85
|
+
|| !instruction.accountMetas[0].isSigner // sender must sign
|
|
86
|
+
|| !instruction.accountMetas[0].isWritable // writable because balance decreases
|
|
87
|
+
|| !instruction.accountMetas[1].isWritable // writable because balance increases
|
|
88
|
+
)
|
|
89
|
+
return undefined;
|
|
90
|
+
// Skip operation ID (4 bytes) and read the amount.
|
|
91
|
+
return readAmount(instruction.data, 4) === sweep.amount
|
|
92
|
+
? { destinationAddress: instruction.accountKeys[1] }
|
|
93
|
+
: undefined;
|
|
94
|
+
}
|
|
95
|
+
return readTokenTransfer(instruction, sweep);
|
|
96
|
+
}
|
|
97
|
+
// Checks whether this instruction transfers the expected SPL token from the source
|
|
98
|
+
// authority's ATA for the sweep amount. Returns `undefined` if the instruction does not match.
|
|
99
|
+
function readTokenTransfer(instruction, sweep) {
|
|
100
|
+
// CRITICAL: only the SPL Token and Token-2022 programs may execute this transfer.
|
|
101
|
+
if (instruction.programId !== SPL_TOKEN_PROGRAM
|
|
102
|
+
&& instruction.programId !== SPL_TOKEN_2022_PROGRAM)
|
|
103
|
+
return undefined;
|
|
104
|
+
const isTransferChecked = instruction.data[0] === SPL_TRANSFER_CHECKED_DISCRIMINATOR;
|
|
105
|
+
if (!isTransferChecked && instruction.data[0] !== SPL_TRANSFER_DISCRIMINATOR)
|
|
106
|
+
return undefined;
|
|
107
|
+
if (
|
|
108
|
+
// Operation ID (1 byte) + amount (8 bytes) + decimals (1 byte, TransferChecked only).
|
|
109
|
+
instruction.data.length !== (isTransferChecked ? 10 : 9)
|
|
110
|
+
|| instruction.accountKeys.length !== (isTransferChecked ? 4 : 3) // TransferChecked also includes the mint.
|
|
111
|
+
)
|
|
112
|
+
return undefined;
|
|
113
|
+
// TransferChecked: source token account (0), mint (1), destination token account (2), authority (3).
|
|
114
|
+
// Transfer: source token account (0), destination token account (1), authority (2).
|
|
115
|
+
const destinationIndex = isTransferChecked ? 2 : 1;
|
|
116
|
+
const authorityIndex = isTransferChecked ? 3 : 2;
|
|
117
|
+
// CRITICAL: accept both Transfer and TransferChecked intentionally: the
|
|
118
|
+
// request-derived source ATA binds the mint even without an explicit mint
|
|
119
|
+
// operand. Multisig/extension accounts are not implicitly authorized.
|
|
120
|
+
const source = deriveAta(sweep.sender, sweep.trade.srcChainTokenIn, instruction.programId);
|
|
121
|
+
const sourceTokenAccountIndex = 0;
|
|
122
|
+
if (!addressEquals(sweep.realChainId, instruction.accountKeys[sourceTokenAccountIndex], source)
|
|
123
|
+
|| !addressEquals(sweep.realChainId, instruction.accountKeys[authorityIndex], sweep.sender)
|
|
124
|
+
|| !instruction.accountMetas[authorityIndex].isSigner // the source authority must sign
|
|
125
|
+
|| !instruction.accountMetas[sourceTokenAccountIndex].isWritable // writable because balance decreases
|
|
126
|
+
|| !instruction.accountMetas[destinationIndex].isWritable // writable because balance increases
|
|
127
|
+
)
|
|
128
|
+
return undefined;
|
|
129
|
+
// TransferChecked explicitly supplies the mint at index 1; it must match the request token.
|
|
130
|
+
if (isTransferChecked
|
|
131
|
+
&& !addressEquals(sweep.realChainId, instruction.accountKeys[1], sweep.trade.srcChainTokenIn))
|
|
132
|
+
return undefined;
|
|
133
|
+
// TransferChecked decimals are checked against the bound mint on chain;
|
|
134
|
+
// they do not scale the raw amount and cannot authorize additional tokens.
|
|
135
|
+
// Skip operation ID (1 byte) and read the uint64 little-endian amount in token base units.
|
|
136
|
+
return readAmount(instruction.data, 1) === sweep.amount
|
|
137
|
+
? {
|
|
138
|
+
destinationAddress: instruction.accountKeys[destinationIndex],
|
|
139
|
+
sourceTokenAccountAddress: source,
|
|
140
|
+
tokenProgram: instruction.programId,
|
|
141
|
+
}
|
|
142
|
+
: undefined;
|
|
143
|
+
}
|
|
144
|
+
// Checks every instruction except the matched transfer. Allows memos and at most
|
|
145
|
+
// one matching destination ATA creation before the transfer, and at most one
|
|
146
|
+
// matching source ATA close after the transfer. Returns false if any remaining
|
|
147
|
+
// instruction does not match these permitted forms.
|
|
148
|
+
function auxiliaryInstructionsMatch(instructions, transferIndex, transfer, sweep, feePayer) {
|
|
149
|
+
let createAtaCount = 0;
|
|
150
|
+
let closeAccountCount = 0;
|
|
151
|
+
for (let i = 0; i < instructions.length; i++) {
|
|
152
|
+
// The transfer itself has already been checked by `readTransfer`.
|
|
153
|
+
if (i === transferIndex)
|
|
154
|
+
continue;
|
|
155
|
+
const instruction = instructions[i];
|
|
156
|
+
// The Memo program cannot transfer funds. Memo accounts must be signers;
|
|
157
|
+
// only the source authority / fee payer may have writable privileges.
|
|
158
|
+
if (matchesSweepMemo(instruction, sweep, feePayer))
|
|
159
|
+
continue;
|
|
160
|
+
// CRITICAL: allow at most one destination ATA creation before the transfer.
|
|
161
|
+
// It may be needed when the recipient's ATA does not yet exist.
|
|
162
|
+
if (i < transferIndex
|
|
163
|
+
&& matchesDestinationAtaCreation(instruction, transfer, sweep, feePayer)) {
|
|
164
|
+
if (++createAtaCount > 1)
|
|
165
|
+
return false;
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
// CRITICAL: closing is limited to the exact source ATA after the transfer,
|
|
169
|
+
// returning rent to the source authority. No other closes or fee instructions are allowed.
|
|
170
|
+
if (i > transferIndex && matchesSourceAtaClose(instruction, transfer, sweep)) {
|
|
171
|
+
if (++closeAccountCount > 1)
|
|
172
|
+
return false;
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
return true;
|
|
178
|
+
}
|
|
179
|
+
// Checks whether this is a memo with no accounts or only signer accounts.
|
|
180
|
+
// Additional signers must be readonly; authority / fee payer may be writable.
|
|
181
|
+
function matchesSweepMemo(instruction, sweep, feePayer) {
|
|
182
|
+
// HIGH: all accounts must sign, with writable privileges limited to the
|
|
183
|
+
// authority / fee payer. An empty list is valid: Memo need not name signers.
|
|
184
|
+
return isMemo(instruction)
|
|
185
|
+
&& instruction.accountKeys.every((address, index) => {
|
|
186
|
+
return instruction.accountMetas[index].isSigner
|
|
187
|
+
&& (addressEquals(sweep.realChainId, address, sweep.sender)
|
|
188
|
+
|| addressEquals(sweep.realChainId, address, feePayer)
|
|
189
|
+
|| !instruction.accountMetas[index].isWritable);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
// Checks whether this instruction idempotently creates the transfer's destination ATA.
|
|
193
|
+
// The fee payer may be the source authority, so this can spend the user's SOL on ATA rent.
|
|
194
|
+
// Returns false on a mismatch.
|
|
195
|
+
function matchesDestinationAtaCreation(instruction, transfer, sweep, feePayer) {
|
|
196
|
+
if (transfer.tokenProgram === undefined // Native SOL transfers do not use a destination ATA.
|
|
197
|
+
|| !isCreateAtaIdempotent(instruction)
|
|
198
|
+
|| instruction.accountKeys.length !== 6 // payer, destination ATA, owner, mint, System Program, token program
|
|
199
|
+
)
|
|
200
|
+
return false;
|
|
201
|
+
const [payer, destination, owner, mint, systemProgram, tokenProgram] = instruction.accountKeys;
|
|
202
|
+
if (!hasDestinationAtaCreationPrivileges(instruction))
|
|
203
|
+
return false;
|
|
204
|
+
// Funding must come from the transaction fee payer, not another account.
|
|
205
|
+
if (!addressEquals(sweep.realChainId, payer, feePayer))
|
|
206
|
+
return false;
|
|
207
|
+
// Bind the programs, mint and destination to this transfer, and verify that
|
|
208
|
+
// the supplied owner derives the same destination ATA for this mint/token program.
|
|
209
|
+
return systemProgram === SYSTEM_PROGRAM
|
|
210
|
+
&& tokenProgram === transfer.tokenProgram
|
|
211
|
+
&& addressEquals(sweep.realChainId, mint, sweep.trade.srcChainTokenIn)
|
|
212
|
+
&& addressEquals(sweep.realChainId, destination, transfer.destinationAddress)
|
|
213
|
+
&& addressEquals(sweep.realChainId, destination, deriveAta(owner, mint, tokenProgram));
|
|
214
|
+
}
|
|
215
|
+
function hasDestinationAtaCreationPrivileges(instruction) {
|
|
216
|
+
// CRITICAL: privileges are transaction-global, so owner/mint/program accounts
|
|
217
|
+
// may inherit signer/writable status from safe aliases such as user=recipient.
|
|
218
|
+
// Require only the capabilities needed by the ATA create instruction.
|
|
219
|
+
return instruction.accountMetas[0].isSigner // The payer must authorize funding the account.
|
|
220
|
+
&& instruction.accountMetas[0].isWritable // The payer's SOL balance may decrease.
|
|
221
|
+
&& instruction.accountMetas[1].isWritable; // The destination ATA may be initialized.
|
|
222
|
+
}
|
|
223
|
+
// Checks whether this closes the source ATA after the sweep transfer and returns rent
|
|
224
|
+
// to the source authority. Returns false for native SOL or any unbound account.
|
|
225
|
+
function matchesSourceAtaClose(instruction, transfer, sweep) {
|
|
226
|
+
if (transfer.sourceTokenAccountAddress === undefined
|
|
227
|
+
|| transfer.tokenProgram === undefined
|
|
228
|
+
|| instruction.programId !== transfer.tokenProgram
|
|
229
|
+
|| instruction.data.length !== 1 // Operation ID (1 byte), with no additional instruction data.
|
|
230
|
+
|| instruction.data[0] !== SPL_CLOSE_ACCOUNT_DISCRIMINATOR
|
|
231
|
+
|| instruction.accountKeys.length !== 3 // account, rent destination, close authority
|
|
232
|
+
)
|
|
233
|
+
return false;
|
|
234
|
+
const [account, destination, authority] = instruction.accountKeys;
|
|
235
|
+
// CRITICAL: CloseAccount may only close the source authority's ATA and must
|
|
236
|
+
// return its rent to the same authority. Privileges are transaction-global:
|
|
237
|
+
// only require needed writable/signer capabilities, not exact readonly aliases.
|
|
238
|
+
return addressEquals(sweep.realChainId, account, transfer.sourceTokenAccountAddress)
|
|
239
|
+
&& addressEquals(sweep.realChainId, destination, sweep.sender)
|
|
240
|
+
&& addressEquals(sweep.realChainId, authority, sweep.sender)
|
|
241
|
+
&& instruction.accountMetas[0].isWritable // Source ATA: writable because the account is closed.
|
|
242
|
+
&& instruction.accountMetas[1].isWritable // Rent destination: writable because its SOL balance increases.
|
|
243
|
+
&& instruction.accountMetas[2].isSigner; // Close authority: must sign to authorize closing the account.
|
|
244
|
+
}
|
|
245
|
+
function readAmount(data, offset) {
|
|
246
|
+
return new DataView(data.buffer, data.byteOffset, data.byteLength).getBigUint64(offset, true);
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=solana-low-input-sweep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana-low-input-sweep.js","sourceRoot":"","sources":["../../../src/validations/solana-low-input-sweep.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ViolationCode, SolanaActionKind, SolanaActionOperation, } from "../types/index.js";
|
|
2
2
|
import { validateSolanaTransactionActions, validateSolanaSignTransactionActions, } from "./solana-transaction.js";
|
|
3
3
|
import { validateSolanaSignActions } from "./solana-sign.js";
|
|
4
|
+
import { validateSolanaEmbeddedIntentActions } from "./solana-embedded-intent.js";
|
|
4
5
|
export function validateSolanaRequiredActions(request, actions, basePath, realChainId, quoteMode, trades, responseTrades, srcChainAuthorityAddress, intent, envConfig, quoteTradeSubsetUnverifiable) {
|
|
5
6
|
return [
|
|
6
7
|
...validateUniqueActionIds(actions, basePath),
|
|
@@ -11,6 +12,7 @@ export function validateSolanaRequiredActions(request, actions, basePath, realCh
|
|
|
11
12
|
...validateSolanaTransactionActions(actions, basePath, realChainId, quoteMode, srcChainAuthorityAddress, request, trades, responseTrades, intent.inputToken, envConfig, quoteTradeSubsetUnverifiable),
|
|
12
13
|
...validateSolanaSignTransactionActions(actions, basePath, realChainId, quoteMode, srcChainAuthorityAddress, request, trades, responseTrades, intent.inputToken, envConfig, quoteTradeSubsetUnverifiable),
|
|
13
14
|
...validateSolanaSignActions(actions, basePath, realChainId, quoteMode, intent, envConfig),
|
|
15
|
+
...validateSolanaEmbeddedIntentActions(actions, basePath, realChainId, intent, envConfig.solanaIntentProgram),
|
|
14
16
|
];
|
|
15
17
|
}
|
|
16
18
|
// HIGH: Each actionId must be unique (no duplicates in the list)
|
|
@@ -74,8 +76,10 @@ function validateAAConstraints(request, actions, basePath) {
|
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
else {
|
|
77
|
-
//
|
|
78
|
-
|
|
79
|
+
// AA=false normally uses Transaction. The on-chain intent flow is the one
|
|
80
|
+
// exception: API and wallet co-sign an Intent SignTransaction for taker broadcast.
|
|
81
|
+
if (action.type === SolanaActionKind.SignTransaction
|
|
82
|
+
&& !action.actions.includes(SolanaActionOperation.Intent)) {
|
|
79
83
|
violations.push({
|
|
80
84
|
code: ViolationCode.SolanaForbiddenSignTransactionWithoutAA,
|
|
81
85
|
message: "SignTransaction action is forbidden when enableAccountAbstraction=false",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana-required-actions.js","sourceRoot":"","sources":["../../../src/validations/solana-required-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,EAGb,gBAAgB,EAChB,qBAAqB,GAKxB,MAAM,UAAU,CAAC;AAClB,OAAO,EACH,gCAAgC,EAChC,oCAAoC,GACvC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"solana-required-actions.js","sourceRoot":"","sources":["../../../src/validations/solana-required-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,11 +33,16 @@ export function validateSolanaTransactionActions(actions, basePath, realChainId,
|
|
|
33
33
|
}
|
|
34
34
|
return violations;
|
|
35
35
|
}
|
|
36
|
-
// Validates
|
|
36
|
+
// Validates service-signed transactions that the user co-signs.
|
|
37
|
+
// API co-signature verification is intentionally left to the API submit flow.
|
|
38
|
+
// The SDK validates transaction contents but does not authenticate the API signer.
|
|
39
|
+
// A missing or invalid API signature may therefore pass SDK validation and be
|
|
40
|
+
// rejected at `submit`. The user's signature is not required in a create response.
|
|
37
41
|
export function validateSolanaSignTransactionActions(actions, basePath, realChainId, quoteMode, srcChainAuthorityAddress, request, trades, responseTrades, inputTokens, envConfig, quoteTradeSubsetUnverifiable) {
|
|
38
42
|
const violations = [];
|
|
39
43
|
for (let i = 0; i < actions.length; i++) {
|
|
40
|
-
|
|
44
|
+
const actionType = actions[i].type;
|
|
45
|
+
if (actionType !== SolanaActionKind.SignTransaction)
|
|
41
46
|
continue;
|
|
42
47
|
const action = actions[i];
|
|
43
48
|
const actionPath = `${basePath}.requiredActions[${i}]`;
|
|
@@ -49,7 +54,19 @@ export function validateSolanaSignTransactionActions(actions, basePath, realChai
|
|
|
49
54
|
}
|
|
50
55
|
const accountKeys = getStaticAccountKeys(decoded.transaction);
|
|
51
56
|
const resolved = resolveInstructions(decoded.transaction.message.compiledInstructions, accountKeys);
|
|
52
|
-
|
|
57
|
+
const isIntentSubmission = action.actions.includes(SolanaActionOperation.Intent);
|
|
58
|
+
const isNonAaIntentSubmission = isIntentSubmission && !request.enableAccountAbstraction;
|
|
59
|
+
const allowedPrograms = isIntentSubmission
|
|
60
|
+
? new Set([
|
|
61
|
+
...envConfig.solanaSignTransactionAllowedPrograms,
|
|
62
|
+
COMPUTE_BUDGET_PROGRAM,
|
|
63
|
+
])
|
|
64
|
+
: envConfig.solanaSignTransactionAllowedPrograms;
|
|
65
|
+
violations.push(...validateAllowedInstructions(decoded.transaction, actionPath, allowedPrograms, ViolationCode.SolanaSignTransactionForbiddenInstruction, actionType), ...(isNonAaIntentSubmission
|
|
66
|
+
? validateTransactionFeePayer(decoded.transaction, actionPath, realChainId, quoteMode, srcChainAuthorityAddress)
|
|
67
|
+
: []), ...(isNonAaIntentSubmission
|
|
68
|
+
? validateTransactionComputeBudget(decoded.transaction, actionPath, true)
|
|
69
|
+
: []), ...validateDeclaredOperationsForInstructions(resolved, action, actionPath, envConfig), ...validateIntentActionInstructions(resolved, action, actionPath, envConfig), ...validateSolanaBudgetInstructions(action, resolved, actionPath, request, trades, responseTrades, realChainId, quoteMode, srcChainAuthorityAddress, envConfig, quoteTradeSubsetUnverifiable), ...validateSolanaWrapInstructions(action, resolved, actionPath, inputTokens, realChainId, quoteMode, srcChainAuthorityAddress, quoteTradeSubsetUnverifiable), ...validateNoUnclassifiedInstructions(resolved, actionPath, buildClassifiers(envConfig.solanaIntentProgram, isIntentSubmission ? isMemoOrComputeBudget : isMemo)));
|
|
53
70
|
}
|
|
54
71
|
return violations;
|
|
55
72
|
}
|
|
@@ -111,7 +128,7 @@ function validateIntentActionInstructions(resolved, action, actionPath, envConfi
|
|
|
111
128
|
}];
|
|
112
129
|
}
|
|
113
130
|
// =============================================
|
|
114
|
-
// Common validations for
|
|
131
|
+
// Common validations for Solana transaction actions.
|
|
115
132
|
// =============================================
|
|
116
133
|
// HIGH: actions[] must only contain unique Wrap, Budget, Intent operations
|
|
117
134
|
function validateActionsList(action, actionPath) {
|
|
@@ -270,7 +287,7 @@ function validateAllowedInstructions(transaction, actionPath, allowedPrograms, v
|
|
|
270
287
|
return violations;
|
|
271
288
|
}
|
|
272
289
|
// Builds classifiers for validateNoUnclassifiedInstructions.
|
|
273
|
-
//
|
|
290
|
+
// The lead classifier reflects which setup instructions the action kind permits.
|
|
274
291
|
function buildClassifiers(intentProgram, leadClassifier) {
|
|
275
292
|
return [
|
|
276
293
|
leadClassifier,
|
|
@@ -282,6 +299,9 @@ function buildClassifiers(intentProgram, leadClassifier) {
|
|
|
282
299
|
(ix) => isIntentInstruction(ix, intentProgram),
|
|
283
300
|
];
|
|
284
301
|
}
|
|
302
|
+
function isMemoOrComputeBudget(ix) {
|
|
303
|
+
return isMemo(ix) || isComputeBudget(ix);
|
|
304
|
+
}
|
|
285
305
|
// CRITICAL: every instruction from an allowed program must be recognized by at least one classifier.
|
|
286
306
|
function validateNoUnclassifiedInstructions(resolved, actionPath, classifiers) {
|
|
287
307
|
const violations = [];
|