@rebelfi/agent-sdk 1.0.1
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 +337 -0
- package/dist/amount-utils.d.ts +9 -0
- package/dist/amount-utils.js +80 -0
- package/dist/amount-utils.js.map +1 -0
- package/dist/cjs/amount-utils.js +87 -0
- package/dist/cjs/amount-utils.js.map +1 -0
- package/dist/cjs/cli.js +189 -0
- package/dist/cjs/cli.js.map +1 -0
- package/dist/cjs/client.js +49 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/commands/account.js +250 -0
- package/dist/cjs/commands/account.js.map +1 -0
- package/dist/cjs/commands/auth.js +78 -0
- package/dist/cjs/commands/auth.js.map +1 -0
- package/dist/cjs/commands/balance.js +15 -0
- package/dist/cjs/commands/balance.js.map +1 -0
- package/dist/cjs/commands/cancel.js +34 -0
- package/dist/cjs/commands/cancel.js.map +1 -0
- package/dist/cjs/commands/chat.js +15 -0
- package/dist/cjs/commands/chat.js.map +1 -0
- package/dist/cjs/commands/claim.js +34 -0
- package/dist/cjs/commands/claim.js.map +1 -0
- package/dist/cjs/commands/config.js +29 -0
- package/dist/cjs/commands/config.js.map +1 -0
- package/dist/cjs/commands/contacts.js +29 -0
- package/dist/cjs/commands/contacts.js.map +1 -0
- package/dist/cjs/commands/init.js +43 -0
- package/dist/cjs/commands/init.js.map +1 -0
- package/dist/cjs/commands/orders.js +167 -0
- package/dist/cjs/commands/orders.js.map +1 -0
- package/dist/cjs/commands/pay.js +41 -0
- package/dist/cjs/commands/pay.js.map +1 -0
- package/dist/cjs/commands/payments.js +27 -0
- package/dist/cjs/commands/payments.js.map +1 -0
- package/dist/cjs/commands/wallet.js +69 -0
- package/dist/cjs/commands/wallet.js.map +1 -0
- package/dist/cjs/config.js +91 -0
- package/dist/cjs/config.js.map +1 -0
- package/dist/cjs/contacts.js +87 -0
- package/dist/cjs/contacts.js.map +1 -0
- package/dist/cjs/errors.js +93 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/index.js +64 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/intent/chains.js +29 -0
- package/dist/cjs/intent/chains.js.map +1 -0
- package/dist/cjs/intent/constraints.js +46 -0
- package/dist/cjs/intent/constraints.js.map +1 -0
- package/dist/cjs/intent/helpers.js +34 -0
- package/dist/cjs/intent/helpers.js.map +1 -0
- package/dist/cjs/intent/index.js +99 -0
- package/dist/cjs/intent/index.js.map +1 -0
- package/dist/cjs/intent/matcher.js +119 -0
- package/dist/cjs/intent/matcher.js.map +1 -0
- package/dist/cjs/intent/program-registry.js +68 -0
- package/dist/cjs/intent/program-registry.js.map +1 -0
- package/dist/cjs/intent/token-registry.js +99 -0
- package/dist/cjs/intent/token-registry.js.map +1 -0
- package/dist/cjs/intent/types.js +3 -0
- package/dist/cjs/intent/types.js.map +1 -0
- package/dist/cjs/orders/evaluate.js +168 -0
- package/dist/cjs/orders/evaluate.js.map +1 -0
- package/dist/cjs/orders/index.js +14 -0
- package/dist/cjs/orders/index.js.map +1 -0
- package/dist/cjs/orders/store.js +47 -0
- package/dist/cjs/orders/store.js.map +1 -0
- package/dist/cjs/orders/sugar.js +35 -0
- package/dist/cjs/orders/sugar.js.map +1 -0
- package/dist/cjs/orders/types.js +3 -0
- package/dist/cjs/orders/types.js.map +1 -0
- package/dist/cjs/output.js +47 -0
- package/dist/cjs/output.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/transfers.js +15 -0
- package/dist/cjs/transfers.js.map +1 -0
- package/dist/cjs/validate.js +77 -0
- package/dist/cjs/validate.js.map +1 -0
- package/dist/cjs/verify/decoders/ata.js +19 -0
- package/dist/cjs/verify/decoders/ata.js.map +1 -0
- package/dist/cjs/verify/decoders/compute-budget.js +32 -0
- package/dist/cjs/verify/decoders/compute-budget.js.map +1 -0
- package/dist/cjs/verify/decoders/handshake.js +180 -0
- package/dist/cjs/verify/decoders/handshake.js.map +1 -0
- package/dist/cjs/verify/decoders/jupiter.js +39 -0
- package/dist/cjs/verify/decoders/jupiter.js.map +1 -0
- package/dist/cjs/verify/decoders/memo.js +12 -0
- package/dist/cjs/verify/decoders/memo.js.map +1 -0
- package/dist/cjs/verify/decoders/silkysig.js +162 -0
- package/dist/cjs/verify/decoders/silkysig.js.map +1 -0
- package/dist/cjs/verify/decoders/spl-token.js +125 -0
- package/dist/cjs/verify/decoders/spl-token.js.map +1 -0
- package/dist/cjs/verify/decoders/system.js +87 -0
- package/dist/cjs/verify/decoders/system.js.map +1 -0
- package/dist/cjs/verify/flags.js +87 -0
- package/dist/cjs/verify/flags.js.map +1 -0
- package/dist/cjs/verify/index.js +384 -0
- package/dist/cjs/verify/index.js.map +1 -0
- package/dist/cjs/verify/registry.js +24 -0
- package/dist/cjs/verify/registry.js.map +1 -0
- package/dist/cjs/verify/rpc.js +52 -0
- package/dist/cjs/verify/rpc.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +224 -0
- package/dist/cli.js.map +1 -0
- package/dist/client.d.ts +7 -0
- package/dist/client.js +43 -0
- package/dist/client.js.map +1 -0
- package/dist/commands/account.d.ts +21 -0
- package/dist/commands/account.js +239 -0
- package/dist/commands/account.js.map +1 -0
- package/dist/commands/auth.d.ts +5 -0
- package/dist/commands/auth.js +70 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/balance.d.ts +3 -0
- package/dist/commands/balance.js +12 -0
- package/dist/commands/balance.js.map +1 -0
- package/dist/commands/cancel.d.ts +3 -0
- package/dist/commands/cancel.js +28 -0
- package/dist/commands/cancel.js.map +1 -0
- package/dist/commands/chat.d.ts +1 -0
- package/dist/commands/chat.js +12 -0
- package/dist/commands/chat.js.map +1 -0
- package/dist/commands/claim.d.ts +3 -0
- package/dist/commands/claim.js +28 -0
- package/dist/commands/claim.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.js +24 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/contacts.d.ts +4 -0
- package/dist/commands/contacts.js +23 -0
- package/dist/commands/contacts.js.map +1 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.js +37 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/orders.d.ts +19 -0
- package/dist/commands/orders.js +157 -0
- package/dist/commands/orders.js.map +1 -0
- package/dist/commands/pay.d.ts +4 -0
- package/dist/commands/pay.js +35 -0
- package/dist/commands/pay.js.map +1 -0
- package/dist/commands/payments.d.ts +4 -0
- package/dist/commands/payments.js +23 -0
- package/dist/commands/payments.js.map +1 -0
- package/dist/commands/wallet.d.ts +7 -0
- package/dist/commands/wallet.js +61 -0
- package/dist/commands/wallet.js.map +1 -0
- package/dist/config.d.ts +40 -0
- package/dist/config.js +74 -0
- package/dist/config.js.map +1 -0
- package/dist/contacts.d.ts +15 -0
- package/dist/contacts.js +74 -0
- package/dist/contacts.js.map +1 -0
- package/dist/errors.d.ts +14 -0
- package/dist/errors.js +87 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/intent/chains.d.ts +7 -0
- package/dist/intent/chains.js +24 -0
- package/dist/intent/chains.js.map +1 -0
- package/dist/intent/constraints.d.ts +8 -0
- package/dist/intent/constraints.js +43 -0
- package/dist/intent/constraints.js.map +1 -0
- package/dist/intent/helpers.d.ts +6 -0
- package/dist/intent/helpers.js +27 -0
- package/dist/intent/helpers.js.map +1 -0
- package/dist/intent/index.d.ts +11 -0
- package/dist/intent/index.js +87 -0
- package/dist/intent/index.js.map +1 -0
- package/dist/intent/matcher.d.ts +8 -0
- package/dist/intent/matcher.js +116 -0
- package/dist/intent/matcher.js.map +1 -0
- package/dist/intent/program-registry.d.ts +13 -0
- package/dist/intent/program-registry.js +65 -0
- package/dist/intent/program-registry.js.map +1 -0
- package/dist/intent/token-registry.d.ts +17 -0
- package/dist/intent/token-registry.js +96 -0
- package/dist/intent/token-registry.js.map +1 -0
- package/dist/intent/types.d.ts +89 -0
- package/dist/intent/types.js +2 -0
- package/dist/intent/types.js.map +1 -0
- package/dist/orders/evaluate.d.ts +28 -0
- package/dist/orders/evaluate.js +165 -0
- package/dist/orders/evaluate.js.map +1 -0
- package/dist/orders/index.d.ts +7 -0
- package/dist/orders/index.js +4 -0
- package/dist/orders/index.js.map +1 -0
- package/dist/orders/store.d.ts +9 -0
- package/dist/orders/store.js +37 -0
- package/dist/orders/store.js.map +1 -0
- package/dist/orders/sugar.d.ts +13 -0
- package/dist/orders/sugar.js +32 -0
- package/dist/orders/sugar.js.map +1 -0
- package/dist/orders/types.d.ts +37 -0
- package/dist/orders/types.js +2 -0
- package/dist/orders/types.js.map +1 -0
- package/dist/output.d.ts +4 -0
- package/dist/output.js +42 -0
- package/dist/output.js.map +1 -0
- package/dist/transfers.d.ts +32 -0
- package/dist/transfers.js +12 -0
- package/dist/transfers.js.map +1 -0
- package/dist/validate.d.ts +8 -0
- package/dist/validate.js +69 -0
- package/dist/validate.js.map +1 -0
- package/dist/verify/decoders/ata.d.ts +5 -0
- package/dist/verify/decoders/ata.js +16 -0
- package/dist/verify/decoders/ata.js.map +1 -0
- package/dist/verify/decoders/compute-budget.d.ts +5 -0
- package/dist/verify/decoders/compute-budget.js +29 -0
- package/dist/verify/decoders/compute-budget.js.map +1 -0
- package/dist/verify/decoders/handshake.d.ts +5 -0
- package/dist/verify/decoders/handshake.js +177 -0
- package/dist/verify/decoders/handshake.js.map +1 -0
- package/dist/verify/decoders/jupiter.d.ts +5 -0
- package/dist/verify/decoders/jupiter.js +36 -0
- package/dist/verify/decoders/jupiter.js.map +1 -0
- package/dist/verify/decoders/memo.d.ts +5 -0
- package/dist/verify/decoders/memo.js +9 -0
- package/dist/verify/decoders/memo.js.map +1 -0
- package/dist/verify/decoders/silkysig.d.ts +5 -0
- package/dist/verify/decoders/silkysig.js +159 -0
- package/dist/verify/decoders/silkysig.js.map +1 -0
- package/dist/verify/decoders/spl-token.d.ts +5 -0
- package/dist/verify/decoders/spl-token.js +122 -0
- package/dist/verify/decoders/spl-token.js.map +1 -0
- package/dist/verify/decoders/system.d.ts +5 -0
- package/dist/verify/decoders/system.js +84 -0
- package/dist/verify/decoders/system.js.map +1 -0
- package/dist/verify/flags.d.ts +3 -0
- package/dist/verify/flags.js +83 -0
- package/dist/verify/flags.js.map +1 -0
- package/dist/verify/index.d.ts +75 -0
- package/dist/verify/index.js +380 -0
- package/dist/verify/index.js.map +1 -0
- package/dist/verify/registry.d.ts +13 -0
- package/dist/verify/registry.js +21 -0
- package/dist/verify/registry.js.map +1 -0
- package/dist/verify/rpc.d.ts +14 -0
- package/dist/verify/rpc.js +48 -0
- package/dist/verify/rpc.js.map +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CONFIG_DIR = void 0;
|
|
7
|
+
exports.loadConfig = loadConfig;
|
|
8
|
+
exports.saveConfig = saveConfig;
|
|
9
|
+
exports.getWallet = getWallet;
|
|
10
|
+
exports.getCluster = getCluster;
|
|
11
|
+
exports.getApiUrl = getApiUrl;
|
|
12
|
+
exports.ensureAgentId = ensureAgentId;
|
|
13
|
+
exports.getClaimUrl = getClaimUrl;
|
|
14
|
+
exports.getSetupUrl = getSetupUrl;
|
|
15
|
+
exports.getAgentId = getAgentId;
|
|
16
|
+
exports.getApiKey = getApiKey;
|
|
17
|
+
exports.clearApiKey = clearApiKey;
|
|
18
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
19
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
20
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
21
|
+
const node_crypto_1 = require("node:crypto");
|
|
22
|
+
const errors_js_1 = require("./errors.js");
|
|
23
|
+
exports.CONFIG_DIR = node_path_1.default.join(node_os_1.default.homedir(), '.config', 'silkyway');
|
|
24
|
+
const CONFIG_FILE = node_path_1.default.join(exports.CONFIG_DIR, 'config.json');
|
|
25
|
+
function defaultConfig() {
|
|
26
|
+
return { wallets: [], defaultWallet: 'main', preferences: {}, cluster: 'mainnet-beta' };
|
|
27
|
+
}
|
|
28
|
+
function loadConfig() {
|
|
29
|
+
try {
|
|
30
|
+
const raw = node_fs_1.default.readFileSync(CONFIG_FILE, 'utf-8');
|
|
31
|
+
return JSON.parse(raw);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return defaultConfig();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function saveConfig(config) {
|
|
38
|
+
node_fs_1.default.mkdirSync(exports.CONFIG_DIR, { recursive: true });
|
|
39
|
+
node_fs_1.default.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), 'utf-8');
|
|
40
|
+
}
|
|
41
|
+
function getWallet(config, label) {
|
|
42
|
+
const target = label || config.defaultWallet;
|
|
43
|
+
const wallet = config.wallets.find((w) => w.label === target);
|
|
44
|
+
if (!wallet) {
|
|
45
|
+
throw new errors_js_1.SdkError('WALLET_NOT_FOUND', `Wallet "${target}" not found. Run: silky wallet create`);
|
|
46
|
+
}
|
|
47
|
+
return wallet;
|
|
48
|
+
}
|
|
49
|
+
const CLUSTER_API_URLS = {
|
|
50
|
+
'mainnet-beta': 'https://api.silkyway.ai',
|
|
51
|
+
'devnet': 'https://devnet-api.silkyway.ai',
|
|
52
|
+
};
|
|
53
|
+
function getCluster(config) {
|
|
54
|
+
return config.cluster || 'mainnet-beta';
|
|
55
|
+
}
|
|
56
|
+
function getApiUrl(config) {
|
|
57
|
+
return config.apiUrl || process.env.SILKY_API_URL || CLUSTER_API_URLS[getCluster(config)];
|
|
58
|
+
}
|
|
59
|
+
function ensureAgentId(config) {
|
|
60
|
+
if (config.agentId) {
|
|
61
|
+
return { agentId: config.agentId, created: false };
|
|
62
|
+
}
|
|
63
|
+
const agentId = (0, node_crypto_1.randomUUID)();
|
|
64
|
+
config.agentId = agentId;
|
|
65
|
+
return { agentId, created: true };
|
|
66
|
+
}
|
|
67
|
+
const APP_BASE_URL = 'https://app.silkyway.ai';
|
|
68
|
+
function getClaimUrl(config, transferPda) {
|
|
69
|
+
const base = `${APP_BASE_URL}/transfers/${transferPda}`;
|
|
70
|
+
const cluster = getCluster(config);
|
|
71
|
+
return cluster === 'devnet' ? `${base}?cluster=devnet` : base;
|
|
72
|
+
}
|
|
73
|
+
function getSetupUrl(config, agentAddress) {
|
|
74
|
+
const base = `${APP_BASE_URL}/account/setup?agent=${agentAddress}`;
|
|
75
|
+
const cluster = getCluster(config);
|
|
76
|
+
return cluster === 'devnet' ? `${base}&cluster=devnet` : base;
|
|
77
|
+
}
|
|
78
|
+
function getAgentId(config) {
|
|
79
|
+
const result = ensureAgentId(config);
|
|
80
|
+
if (result.created) {
|
|
81
|
+
saveConfig(config);
|
|
82
|
+
}
|
|
83
|
+
return result.agentId;
|
|
84
|
+
}
|
|
85
|
+
function getApiKey(config) {
|
|
86
|
+
return config.apiKey || process.env.SILKY_API_KEY;
|
|
87
|
+
}
|
|
88
|
+
function clearApiKey(config) {
|
|
89
|
+
delete config.apiKey;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.loadContacts = loadContacts;
|
|
7
|
+
exports.saveContacts = saveContacts;
|
|
8
|
+
exports.addContact = addContact;
|
|
9
|
+
exports.removeContact = removeContact;
|
|
10
|
+
exports.getContact = getContact;
|
|
11
|
+
exports.listContacts = listContacts;
|
|
12
|
+
exports.resolveRecipient = resolveRecipient;
|
|
13
|
+
exports.initContacts = initContacts;
|
|
14
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
15
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
16
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
17
|
+
const config_js_1 = require("./config.js");
|
|
18
|
+
const errors_js_1 = require("./errors.js");
|
|
19
|
+
const CONTACTS_FILE = node_path_1.default.join(config_js_1.CONFIG_DIR, 'contacts.json');
|
|
20
|
+
function loadContacts() {
|
|
21
|
+
try {
|
|
22
|
+
const raw = node_fs_1.default.readFileSync(CONTACTS_FILE, 'utf-8');
|
|
23
|
+
return JSON.parse(raw);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return { contacts: [] };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function saveContacts(store) {
|
|
30
|
+
node_fs_1.default.mkdirSync(config_js_1.CONFIG_DIR, { recursive: true });
|
|
31
|
+
node_fs_1.default.writeFileSync(CONTACTS_FILE, JSON.stringify(store, null, 2), 'utf-8');
|
|
32
|
+
}
|
|
33
|
+
function isValidSolanaAddress(address) {
|
|
34
|
+
try {
|
|
35
|
+
new web3_js_1.PublicKey(address);
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function addContact(name, address) {
|
|
43
|
+
const normalized = name.toLowerCase();
|
|
44
|
+
if (isValidSolanaAddress(normalized)) {
|
|
45
|
+
throw new errors_js_1.SdkError('INVALID_CONTACT_NAME', 'Contact name cannot be a valid Solana address');
|
|
46
|
+
}
|
|
47
|
+
if (!isValidSolanaAddress(address)) {
|
|
48
|
+
throw new errors_js_1.SdkError('INVALID_ADDRESS', `"${address}" is not a valid Solana address`);
|
|
49
|
+
}
|
|
50
|
+
const store = loadContacts();
|
|
51
|
+
const existing = store.contacts.find((c) => c.name === normalized);
|
|
52
|
+
if (existing) {
|
|
53
|
+
throw new errors_js_1.SdkError('CONTACT_EXISTS', `Contact "${normalized}" already exists (${existing.address})`);
|
|
54
|
+
}
|
|
55
|
+
store.contacts.push({ name: normalized, address });
|
|
56
|
+
saveContacts(store);
|
|
57
|
+
}
|
|
58
|
+
function removeContact(name) {
|
|
59
|
+
const normalized = name.toLowerCase();
|
|
60
|
+
const store = loadContacts();
|
|
61
|
+
const index = store.contacts.findIndex((c) => c.name === normalized);
|
|
62
|
+
if (index === -1) {
|
|
63
|
+
throw new errors_js_1.SdkError('CONTACT_NOT_FOUND', `Contact "${normalized}" not found`);
|
|
64
|
+
}
|
|
65
|
+
store.contacts.splice(index, 1);
|
|
66
|
+
saveContacts(store);
|
|
67
|
+
}
|
|
68
|
+
function getContact(name) {
|
|
69
|
+
const normalized = name.toLowerCase();
|
|
70
|
+
const store = loadContacts();
|
|
71
|
+
return store.contacts.find((c) => c.name === normalized) || null;
|
|
72
|
+
}
|
|
73
|
+
function listContacts() {
|
|
74
|
+
return loadContacts().contacts;
|
|
75
|
+
}
|
|
76
|
+
function resolveRecipient(recipient) {
|
|
77
|
+
const contact = getContact(recipient);
|
|
78
|
+
return contact ? contact.address : recipient;
|
|
79
|
+
}
|
|
80
|
+
function initContacts() {
|
|
81
|
+
if (node_fs_1.default.existsSync(CONTACTS_FILE)) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
saveContacts({ contacts: [] });
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=contacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/contacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SILKYSIG_ERROR_MAP = exports.ANCHOR_ERROR_MAP = exports.SdkError = void 0;
|
|
4
|
+
exports.toSilkysigError = toSilkysigError;
|
|
5
|
+
exports.toSdkError = toSdkError;
|
|
6
|
+
class SdkError extends Error {
|
|
7
|
+
code;
|
|
8
|
+
constructor(code, message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.name = 'SdkError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.SdkError = SdkError;
|
|
15
|
+
exports.ANCHOR_ERROR_MAP = {
|
|
16
|
+
6000: { code: 'ANCHOR_MATH_OVERFLOW', message: 'Mathematical overflow occurred' },
|
|
17
|
+
6001: { code: 'ANCHOR_TRANSFER_NOT_ACTIVE', message: 'Transfer is not in active status' },
|
|
18
|
+
6002: { code: 'ANCHOR_CANNOT_CLAIM', message: 'Claim deadline has passed' },
|
|
19
|
+
6003: { code: 'ANCHOR_CONDITIONS_NOT_MET', message: 'Release conditions not met' },
|
|
20
|
+
6004: { code: 'ANCHOR_INVALID_CONDITION', message: 'Invalid condition parameters' },
|
|
21
|
+
6005: { code: 'ANCHOR_INSUFFICIENT_FUNDS', message: 'Insufficient funds in vault' },
|
|
22
|
+
6006: { code: 'ANCHOR_POOL_PAUSED', message: 'Pool is paused' },
|
|
23
|
+
6007: { code: 'ANCHOR_UNAUTHORIZED', message: 'Unauthorized action' },
|
|
24
|
+
6008: { code: 'ANCHOR_INVALID_TIME_WINDOW', message: 'Invalid time window' },
|
|
25
|
+
6009: { code: 'ANCHOR_DEPOSIT_TOO_SMALL', message: 'Deposit amount too small' },
|
|
26
|
+
6010: { code: 'ANCHOR_INVALID_FEE_CONFIG', message: 'Invalid fee configuration' },
|
|
27
|
+
6011: { code: 'ANCHOR_INVALID_TRANSFER_FEE', message: 'Invalid transfer fee' },
|
|
28
|
+
6012: { code: 'ANCHOR_TRANSFER_ALREADY_CLAIMED', message: 'Transfer already claimed' },
|
|
29
|
+
6013: { code: 'ANCHOR_TRANSFER_ALREADY_CANCELLED', message: 'Transfer already cancelled' },
|
|
30
|
+
6014: { code: 'ANCHOR_TRANSFER_ALREADY_REJECTED', message: 'Transfer already rejected' },
|
|
31
|
+
6015: { code: 'ANCHOR_TRANSFER_EXPIRED', message: 'Transfer is expired' },
|
|
32
|
+
6016: { code: 'ANCHOR_ONLY_SENDER_CAN_CANCEL', message: 'Only sender can cancel transfer' },
|
|
33
|
+
6017: { code: 'ANCHOR_ONLY_RECIPIENT_CAN_CLAIM', message: 'Only recipient can claim transfer' },
|
|
34
|
+
6018: { code: 'ANCHOR_ONLY_OPERATOR_CAN_REJECT', message: 'Only operator can reject transfer' },
|
|
35
|
+
6019: { code: 'ANCHOR_INVALID_MEMO_LENGTH', message: 'Invalid memo length' },
|
|
36
|
+
6020: { code: 'ANCHOR_CLAIM_DEADLINE_NOT_PASSED', message: 'Claim deadline has not passed' },
|
|
37
|
+
6021: { code: 'ANCHOR_CALCULATION_ERROR', message: 'Calculation error' },
|
|
38
|
+
6022: { code: 'ANCHOR_MISSING_ACCOUNT', message: 'Missing required account' },
|
|
39
|
+
6023: { code: 'ANCHOR_INVALID_MINT', message: 'Invalid mint' },
|
|
40
|
+
6024: { code: 'ANCHOR_STALE_POOL_VALUE', message: 'Pool value is stale and must be updated' },
|
|
41
|
+
6025: { code: 'ANCHOR_INVALID_OPERATION', message: 'Invalid operation for this pool type' },
|
|
42
|
+
6026: { code: 'ANCHOR_OUTSTANDING_TRANSFERS', message: 'Cannot reset pool with outstanding transfers' },
|
|
43
|
+
6027: { code: 'ANCHOR_INVALID_TRANSFER', message: 'Invalid transfer' },
|
|
44
|
+
6028: { code: 'ANCHOR_TRANSFER_ALREADY_DECLINED', message: 'Transfer already declined' },
|
|
45
|
+
6029: { code: 'ANCHOR_ONLY_RECIPIENT_CAN_DECLINE', message: 'Only recipient can decline transfer' },
|
|
46
|
+
};
|
|
47
|
+
exports.SILKYSIG_ERROR_MAP = {
|
|
48
|
+
6000: { code: 'POLICY_UNAUTHORIZED', message: 'Unauthorized: signer is not owner or operator' },
|
|
49
|
+
6001: { code: 'POLICY_EXCEEDS_TX_LIMIT', message: 'Transfer exceeds operator per-transaction limit' },
|
|
50
|
+
6002: { code: 'ACCOUNT_PAUSED', message: 'Account is paused' },
|
|
51
|
+
6003: { code: 'MAX_OPERATORS', message: 'Maximum operators reached' },
|
|
52
|
+
6004: { code: 'OPERATOR_NOT_FOUND', message: 'Operator not found' },
|
|
53
|
+
6005: { code: 'OPERATOR_EXISTS', message: 'Operator slot already occupied' },
|
|
54
|
+
6006: { code: 'MATH_OVERFLOW', message: 'Mathematical overflow' },
|
|
55
|
+
6007: { code: 'AMOUNT_MUST_BE_POSITIVE', message: 'Amount must be positive' },
|
|
56
|
+
6008: { code: 'DRIFT_USER_ALREADY_INITIALIZED', message: 'Drift user already initialized' },
|
|
57
|
+
6009: { code: 'DRIFT_DEPOSIT_FAILED', message: 'Drift deposit failed' },
|
|
58
|
+
6010: { code: 'DRIFT_WITHDRAW_FAILED', message: 'Drift withdrawal failed' },
|
|
59
|
+
6011: { code: 'INVALID_DRIFT_USER', message: 'Invalid Drift user account' },
|
|
60
|
+
6012: { code: 'MISSING_DRIFT_ACCOUNTS', message: 'Missing required Drift accounts' },
|
|
61
|
+
6013: { code: 'INVALID_DRIFT_PROGRAM', message: 'Invalid Drift program ID' },
|
|
62
|
+
6014: { code: 'DRIFT_DELETE_USER_FAILED', message: 'Failed to delete Drift user' },
|
|
63
|
+
};
|
|
64
|
+
function toSilkysigError(err) {
|
|
65
|
+
if (err instanceof SdkError)
|
|
66
|
+
return err;
|
|
67
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
68
|
+
const hexMatch = message.match(/0x([0-9a-fA-F]+)/);
|
|
69
|
+
if (hexMatch) {
|
|
70
|
+
const errorCode = parseInt(hexMatch[1], 16);
|
|
71
|
+
const mapped = exports.SILKYSIG_ERROR_MAP[errorCode];
|
|
72
|
+
if (mapped) {
|
|
73
|
+
return new SdkError(mapped.code, mapped.message);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return new SdkError('UNKNOWN_ERROR', message);
|
|
77
|
+
}
|
|
78
|
+
function toSdkError(err) {
|
|
79
|
+
if (err instanceof SdkError)
|
|
80
|
+
return err;
|
|
81
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
82
|
+
// Parse Anchor hex error codes from simulation messages (e.g. "0x1770")
|
|
83
|
+
const hexMatch = message.match(/0x([0-9a-fA-F]+)/);
|
|
84
|
+
if (hexMatch) {
|
|
85
|
+
const errorCode = parseInt(hexMatch[1], 16);
|
|
86
|
+
const anchor = exports.ANCHOR_ERROR_MAP[errorCode];
|
|
87
|
+
if (anchor) {
|
|
88
|
+
return new SdkError(anchor.code, anchor.message);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return new SdkError('UNKNOWN_ERROR', message);
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseSwapSugar = exports.evaluateOrders = exports.updateOrder = exports.getOrder = exports.addOrder = exports.saveOrders = exports.loadOrders = exports.isEvmChain = exports.normalizeAddress = exports.parseChain = exports.getExecutionRef = exports.getProgramRef = exports.createProgramRegistry = exports.createTokenRegistry = exports.evaluateConstraint = exports.verifyIntentV2 = exports.verifyIntent = exports.analyzeTransaction = exports.validatePay = exports.validateCancel = exports.validateClaim = exports.fetchTransfer = exports.validateAmount = exports.validateAddress = exports.wrapCommand = exports.outputError = exports.outputSuccess = exports.toSdkError = exports.ANCHOR_ERROR_MAP = exports.SdkError = exports.getTransfer = exports.createHttpClient = exports.initContacts = exports.resolveRecipient = exports.listContacts = exports.getContact = exports.removeContact = exports.addContact = exports.saveContacts = exports.loadContacts = exports.CONFIG_DIR = exports.clearApiKey = exports.getApiKey = exports.getApiUrl = exports.getWallet = exports.saveConfig = exports.loadConfig = void 0;
|
|
4
|
+
var config_js_1 = require("./config.js");
|
|
5
|
+
Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return config_js_1.loadConfig; } });
|
|
6
|
+
Object.defineProperty(exports, "saveConfig", { enumerable: true, get: function () { return config_js_1.saveConfig; } });
|
|
7
|
+
Object.defineProperty(exports, "getWallet", { enumerable: true, get: function () { return config_js_1.getWallet; } });
|
|
8
|
+
Object.defineProperty(exports, "getApiUrl", { enumerable: true, get: function () { return config_js_1.getApiUrl; } });
|
|
9
|
+
Object.defineProperty(exports, "getApiKey", { enumerable: true, get: function () { return config_js_1.getApiKey; } });
|
|
10
|
+
Object.defineProperty(exports, "clearApiKey", { enumerable: true, get: function () { return config_js_1.clearApiKey; } });
|
|
11
|
+
Object.defineProperty(exports, "CONFIG_DIR", { enumerable: true, get: function () { return config_js_1.CONFIG_DIR; } });
|
|
12
|
+
var contacts_js_1 = require("./contacts.js");
|
|
13
|
+
Object.defineProperty(exports, "loadContacts", { enumerable: true, get: function () { return contacts_js_1.loadContacts; } });
|
|
14
|
+
Object.defineProperty(exports, "saveContacts", { enumerable: true, get: function () { return contacts_js_1.saveContacts; } });
|
|
15
|
+
Object.defineProperty(exports, "addContact", { enumerable: true, get: function () { return contacts_js_1.addContact; } });
|
|
16
|
+
Object.defineProperty(exports, "removeContact", { enumerable: true, get: function () { return contacts_js_1.removeContact; } });
|
|
17
|
+
Object.defineProperty(exports, "getContact", { enumerable: true, get: function () { return contacts_js_1.getContact; } });
|
|
18
|
+
Object.defineProperty(exports, "listContacts", { enumerable: true, get: function () { return contacts_js_1.listContacts; } });
|
|
19
|
+
Object.defineProperty(exports, "resolveRecipient", { enumerable: true, get: function () { return contacts_js_1.resolveRecipient; } });
|
|
20
|
+
Object.defineProperty(exports, "initContacts", { enumerable: true, get: function () { return contacts_js_1.initContacts; } });
|
|
21
|
+
var client_js_1 = require("./client.js");
|
|
22
|
+
Object.defineProperty(exports, "createHttpClient", { enumerable: true, get: function () { return client_js_1.createHttpClient; } });
|
|
23
|
+
var transfers_js_1 = require("./transfers.js");
|
|
24
|
+
Object.defineProperty(exports, "getTransfer", { enumerable: true, get: function () { return transfers_js_1.getTransfer; } });
|
|
25
|
+
var errors_js_1 = require("./errors.js");
|
|
26
|
+
Object.defineProperty(exports, "SdkError", { enumerable: true, get: function () { return errors_js_1.SdkError; } });
|
|
27
|
+
Object.defineProperty(exports, "ANCHOR_ERROR_MAP", { enumerable: true, get: function () { return errors_js_1.ANCHOR_ERROR_MAP; } });
|
|
28
|
+
Object.defineProperty(exports, "toSdkError", { enumerable: true, get: function () { return errors_js_1.toSdkError; } });
|
|
29
|
+
var output_js_1 = require("./output.js");
|
|
30
|
+
Object.defineProperty(exports, "outputSuccess", { enumerable: true, get: function () { return output_js_1.outputSuccess; } });
|
|
31
|
+
Object.defineProperty(exports, "outputError", { enumerable: true, get: function () { return output_js_1.outputError; } });
|
|
32
|
+
Object.defineProperty(exports, "wrapCommand", { enumerable: true, get: function () { return output_js_1.wrapCommand; } });
|
|
33
|
+
var validate_js_1 = require("./validate.js");
|
|
34
|
+
Object.defineProperty(exports, "validateAddress", { enumerable: true, get: function () { return validate_js_1.validateAddress; } });
|
|
35
|
+
Object.defineProperty(exports, "validateAmount", { enumerable: true, get: function () { return validate_js_1.validateAmount; } });
|
|
36
|
+
Object.defineProperty(exports, "fetchTransfer", { enumerable: true, get: function () { return validate_js_1.fetchTransfer; } });
|
|
37
|
+
Object.defineProperty(exports, "validateClaim", { enumerable: true, get: function () { return validate_js_1.validateClaim; } });
|
|
38
|
+
Object.defineProperty(exports, "validateCancel", { enumerable: true, get: function () { return validate_js_1.validateCancel; } });
|
|
39
|
+
Object.defineProperty(exports, "validatePay", { enumerable: true, get: function () { return validate_js_1.validatePay; } });
|
|
40
|
+
var index_js_1 = require("./verify/index.js");
|
|
41
|
+
Object.defineProperty(exports, "analyzeTransaction", { enumerable: true, get: function () { return index_js_1.analyzeTransaction; } });
|
|
42
|
+
Object.defineProperty(exports, "verifyIntent", { enumerable: true, get: function () { return index_js_1.verifyIntent; } });
|
|
43
|
+
// Cross-chain intent framework
|
|
44
|
+
var index_js_2 = require("./intent/index.js");
|
|
45
|
+
Object.defineProperty(exports, "verifyIntentV2", { enumerable: true, get: function () { return index_js_2.verifyIntent; } });
|
|
46
|
+
var index_js_3 = require("./intent/index.js");
|
|
47
|
+
Object.defineProperty(exports, "evaluateConstraint", { enumerable: true, get: function () { return index_js_3.evaluateConstraint; } });
|
|
48
|
+
Object.defineProperty(exports, "createTokenRegistry", { enumerable: true, get: function () { return index_js_3.createTokenRegistry; } });
|
|
49
|
+
Object.defineProperty(exports, "createProgramRegistry", { enumerable: true, get: function () { return index_js_3.createProgramRegistry; } });
|
|
50
|
+
Object.defineProperty(exports, "getProgramRef", { enumerable: true, get: function () { return index_js_3.getProgramRef; } });
|
|
51
|
+
Object.defineProperty(exports, "getExecutionRef", { enumerable: true, get: function () { return index_js_3.getExecutionRef; } });
|
|
52
|
+
Object.defineProperty(exports, "parseChain", { enumerable: true, get: function () { return index_js_3.parseChain; } });
|
|
53
|
+
Object.defineProperty(exports, "normalizeAddress", { enumerable: true, get: function () { return index_js_3.normalizeAddress; } });
|
|
54
|
+
Object.defineProperty(exports, "isEvmChain", { enumerable: true, get: function () { return index_js_3.isEvmChain; } });
|
|
55
|
+
// Standing orders
|
|
56
|
+
var index_js_4 = require("./orders/index.js");
|
|
57
|
+
Object.defineProperty(exports, "loadOrders", { enumerable: true, get: function () { return index_js_4.loadOrders; } });
|
|
58
|
+
Object.defineProperty(exports, "saveOrders", { enumerable: true, get: function () { return index_js_4.saveOrders; } });
|
|
59
|
+
Object.defineProperty(exports, "addOrder", { enumerable: true, get: function () { return index_js_4.addOrder; } });
|
|
60
|
+
Object.defineProperty(exports, "getOrder", { enumerable: true, get: function () { return index_js_4.getOrder; } });
|
|
61
|
+
Object.defineProperty(exports, "updateOrder", { enumerable: true, get: function () { return index_js_4.updateOrder; } });
|
|
62
|
+
Object.defineProperty(exports, "evaluateOrders", { enumerable: true, get: function () { return index_js_4.evaluateOrders; } });
|
|
63
|
+
Object.defineProperty(exports, "parseSwapSugar", { enumerable: true, get: function () { return index_js_4.parseSwapSugar; } });
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,yCAA+G;AAAtG,uGAAA,UAAU,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,sGAAA,SAAS,OAAA;AAAE,sGAAA,SAAS,OAAA;AAAE,sGAAA,SAAS,OAAA;AAAE,wGAAA,WAAW,OAAA;AAAE,uGAAA,UAAU,OAAA;AAEzF,6CAAgJ;AAAvI,2GAAA,YAAY,OAAA;AAAE,2GAAA,YAAY,OAAA;AAAE,yGAAA,UAAU,OAAA;AAAE,4GAAA,aAAa,OAAA;AAAE,yGAAA,UAAU,OAAA;AAAE,2GAAA,YAAY,OAAA;AAAE,+GAAA,gBAAgB,OAAA;AAAE,2GAAA,YAAY,OAAA;AAExH,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AAEzB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,yCAAqE;AAA5D,qGAAA,QAAQ,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAAE,uGAAA,UAAU,OAAA;AAC/C,yCAAsE;AAA7D,0GAAA,aAAa,OAAA;AAAE,wGAAA,WAAW,OAAA;AAAE,wGAAA,WAAW,OAAA;AAChD,6CAA2H;AAAlH,8GAAA,eAAe,OAAA;AAAE,6GAAA,cAAc,OAAA;AAAE,4GAAA,aAAa,OAAA;AAAE,4GAAA,aAAa,OAAA;AAAE,6GAAA,cAAc,OAAA;AAAE,0GAAA,WAAW,OAAA;AACnG,8CAAqE;AAA5D,8GAAA,kBAAkB,OAAA;AAAE,wGAAA,YAAY,OAAA;AAGzC,+BAA+B;AAC/B,8CAAmE;AAA1D,0GAAA,YAAY,OAAkB;AAsBvC,8CAA6K;AAApK,8GAAA,kBAAkB,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,2GAAA,eAAe,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAAE,sGAAA,UAAU,OAAA;AAEjJ,kBAAkB;AAClB,8CAI2B;AAHzB,sGAAA,UAAU,OAAA;AAAE,sGAAA,UAAU,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,uGAAA,WAAW,OAAA;AACvD,0GAAA,cAAc,OAAA;AACd,0GAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseChain = parseChain;
|
|
4
|
+
exports.isEvmChain = isEvmChain;
|
|
5
|
+
exports.normalizeAddress = normalizeAddress;
|
|
6
|
+
const EVM_CHAINS = new Set([
|
|
7
|
+
'ethereum', 'base', 'polygon', 'arbitrum', 'optimism', 'avalanche', 'bsc', 'gnosis', 'zksync', 'scroll', 'linea', 'mantle',
|
|
8
|
+
]);
|
|
9
|
+
function parseChain(chainStr) {
|
|
10
|
+
const lower = chainStr.toLowerCase();
|
|
11
|
+
const colonIndex = lower.indexOf(':');
|
|
12
|
+
if (colonIndex === -1) {
|
|
13
|
+
return { chain: lower, network: 'mainnet' };
|
|
14
|
+
}
|
|
15
|
+
return {
|
|
16
|
+
chain: lower.slice(0, colonIndex),
|
|
17
|
+
network: lower.slice(colonIndex + 1),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
function isEvmChain(chain) {
|
|
21
|
+
return EVM_CHAINS.has(chain.toLowerCase());
|
|
22
|
+
}
|
|
23
|
+
function normalizeAddress(address, chain) {
|
|
24
|
+
if (isEvmChain(chain)) {
|
|
25
|
+
return address.toLowerCase();
|
|
26
|
+
}
|
|
27
|
+
return address;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=chains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../src/intent/chains.ts"],"names":[],"mappings":";;AASA,gCAUC;AAED,gCAEC;AAED,4CAKC;AA9BD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;CAC3H,CAAC,CAAC;AAOH,SAAgB,UAAU,CAAC,QAAgB;IACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;QACjC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,SAAgB,UAAU,CAAC,KAAa;IACtC,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAe,EAAE,KAAa;IAC7D,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.evaluateConstraint = evaluateConstraint;
|
|
4
|
+
const amount_utils_js_1 = require("../amount-utils.js");
|
|
5
|
+
const DEFAULT_TOLERANCE = 0.0001; // 0.01%
|
|
6
|
+
/**
|
|
7
|
+
* Evaluate whether an actual value satisfies a constraint.
|
|
8
|
+
*
|
|
9
|
+
* - Plain value: exact match within tolerance (for numbers).
|
|
10
|
+
* - Object with gte/lte/gt/lt: each specified bound is checked.
|
|
11
|
+
*/
|
|
12
|
+
function evaluateConstraint(constraint, actual, tolerance = DEFAULT_TOLERANCE) {
|
|
13
|
+
const actualDecimal = (0, amount_utils_js_1.parseDecimal)(actual);
|
|
14
|
+
const toleranceDecimal = (0, amount_utils_js_1.parseDecimal)(tolerance);
|
|
15
|
+
if (!actualDecimal || !toleranceDecimal) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
if (typeof constraint === 'number' || typeof constraint === 'string') {
|
|
19
|
+
const expectedDecimal = (0, amount_utils_js_1.parseDecimal)(constraint);
|
|
20
|
+
if (!expectedDecimal)
|
|
21
|
+
return false;
|
|
22
|
+
return (0, amount_utils_js_1.withinRelativeTolerance)(expectedDecimal, actualDecimal, toleranceDecimal);
|
|
23
|
+
}
|
|
24
|
+
if (constraint.gte !== undefined) {
|
|
25
|
+
const minInclusive = (0, amount_utils_js_1.parseDecimal)(constraint.gte);
|
|
26
|
+
if (!minInclusive || (0, amount_utils_js_1.compareDecimals)(actualDecimal, minInclusive) < 0)
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
if (constraint.lte !== undefined) {
|
|
30
|
+
const maxInclusive = (0, amount_utils_js_1.parseDecimal)(constraint.lte);
|
|
31
|
+
if (!maxInclusive || (0, amount_utils_js_1.compareDecimals)(actualDecimal, maxInclusive) > 0)
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
if (constraint.gt !== undefined) {
|
|
35
|
+
const minExclusive = (0, amount_utils_js_1.parseDecimal)(constraint.gt);
|
|
36
|
+
if (!minExclusive || (0, amount_utils_js_1.compareDecimals)(actualDecimal, minExclusive) <= 0)
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
if (constraint.lt !== undefined) {
|
|
40
|
+
const maxExclusive = (0, amount_utils_js_1.parseDecimal)(constraint.lt);
|
|
41
|
+
if (!maxExclusive || (0, amount_utils_js_1.compareDecimals)(actualDecimal, maxExclusive) >= 0)
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=constraints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constraints.js","sourceRoot":"","sources":["../../../src/intent/constraints.ts"],"names":[],"mappings":";;AAWA,gDAmCC;AA7CD,wDAA4F;AAE5F,MAAM,iBAAiB,GAAG,MAAM,CAAC,CAAC,QAAQ;AAE1C;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,UAAuC,EACvC,MAAuB,EACvB,YAAoB,iBAAiB;IAErC,MAAM,aAAa,GAAG,IAAA,8BAAY,EAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,gBAAgB,GAAG,IAAA,8BAAY,EAAC,SAAS,CAAC,CAAC;IACjD,IAAI,CAAC,aAAa,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACrE,MAAM,eAAe,GAAG,IAAA,8BAAY,EAAC,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe;YAAE,OAAO,KAAK,CAAC;QACnC,OAAO,IAAA,yCAAuB,EAAC,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,IAAA,8BAAY,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,IAAI,IAAA,iCAAe,EAAC,aAAa,EAAE,YAAY,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IACtF,CAAC;IACD,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,IAAA,8BAAY,EAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,IAAI,IAAA,iCAAe,EAAC,aAAa,EAAE,YAAY,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IACtF,CAAC;IACD,IAAI,UAAU,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,IAAA,8BAAY,EAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,IAAI,IAAA,iCAAe,EAAC,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;IACvF,CAAC;IACD,IAAI,UAAU,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,IAAA,8BAAY,EAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,YAAY,IAAI,IAAA,iCAAe,EAAC,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;IACvF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSingleIntent = isSingleIntent;
|
|
4
|
+
exports.isCompoundIntent = isCompoundIntent;
|
|
5
|
+
exports.getActions = getActions;
|
|
6
|
+
exports.getProgramRef = getProgramRef;
|
|
7
|
+
exports.getExecutionRef = getExecutionRef;
|
|
8
|
+
function isSingleIntent(intent) {
|
|
9
|
+
return 'action' in intent;
|
|
10
|
+
}
|
|
11
|
+
function isCompoundIntent(intent) {
|
|
12
|
+
return 'actions' in intent;
|
|
13
|
+
}
|
|
14
|
+
function getActions(intent) {
|
|
15
|
+
if (isCompoundIntent(intent)) {
|
|
16
|
+
return intent.actions;
|
|
17
|
+
}
|
|
18
|
+
// Extract just the action fields (without chain/strict/program/programName/signer/feePayer)
|
|
19
|
+
const { chain: _chain, strict: _strict, program: _program, programName: _programName, signer: _signer, feePayer: _feePayer, ...action } = intent;
|
|
20
|
+
return [action];
|
|
21
|
+
}
|
|
22
|
+
function getProgramRef(intent) {
|
|
23
|
+
return {
|
|
24
|
+
programName: intent.programName,
|
|
25
|
+
program: intent.program,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function getExecutionRef(intent) {
|
|
29
|
+
return {
|
|
30
|
+
signer: intent.signer,
|
|
31
|
+
feePayer: intent.feePayer,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/intent/helpers.ts"],"names":[],"mappings":";;AAEA,wCAEC;AAED,4CAEC;AAED,gCAOC;AAED,sCAKC;AAED,0CAKC;AA7BD,SAAgB,cAAc,CAAC,MAAc;IAC3C,OAAO,QAAQ,IAAI,MAAM,CAAC;AAC5B,CAAC;AAED,SAAgB,gBAAgB,CAAC,MAAc;IAC7C,OAAO,SAAS,IAAI,MAAM,CAAC;AAC7B,CAAC;AAED,SAAgB,UAAU,CAAC,MAAc;IACvC,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,4FAA4F;IAC5F,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,GAAG,MAAsB,CAAC;IACjK,OAAO,CAAC,MAAsB,CAAC,CAAC;AAClC,CAAC;AAED,SAAgB,aAAa,CAAC,MAAc;IAC1C,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAC,MAAc;IAC5C,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isEvmChain = exports.normalizeAddress = exports.parseChain = exports.getExecutionRef = exports.getProgramRef = exports.createProgramRegistry = exports.createTokenRegistry = exports.evaluateConstraint = void 0;
|
|
4
|
+
exports.verifyIntent = verifyIntent;
|
|
5
|
+
const index_js_1 = require("../verify/index.js");
|
|
6
|
+
const chains_js_1 = require("./chains.js");
|
|
7
|
+
const helpers_js_1 = require("./helpers.js");
|
|
8
|
+
const matcher_js_1 = require("./matcher.js");
|
|
9
|
+
const program_registry_js_1 = require("./program-registry.js");
|
|
10
|
+
var constraints_js_1 = require("./constraints.js");
|
|
11
|
+
Object.defineProperty(exports, "evaluateConstraint", { enumerable: true, get: function () { return constraints_js_1.evaluateConstraint; } });
|
|
12
|
+
var token_registry_js_1 = require("./token-registry.js");
|
|
13
|
+
Object.defineProperty(exports, "createTokenRegistry", { enumerable: true, get: function () { return token_registry_js_1.createTokenRegistry; } });
|
|
14
|
+
var program_registry_js_2 = require("./program-registry.js");
|
|
15
|
+
Object.defineProperty(exports, "createProgramRegistry", { enumerable: true, get: function () { return program_registry_js_2.createProgramRegistry; } });
|
|
16
|
+
var helpers_js_2 = require("./helpers.js");
|
|
17
|
+
Object.defineProperty(exports, "getProgramRef", { enumerable: true, get: function () { return helpers_js_2.getProgramRef; } });
|
|
18
|
+
Object.defineProperty(exports, "getExecutionRef", { enumerable: true, get: function () { return helpers_js_2.getExecutionRef; } });
|
|
19
|
+
var chains_js_2 = require("./chains.js");
|
|
20
|
+
Object.defineProperty(exports, "parseChain", { enumerable: true, get: function () { return chains_js_2.parseChain; } });
|
|
21
|
+
Object.defineProperty(exports, "normalizeAddress", { enumerable: true, get: function () { return chains_js_2.normalizeAddress; } });
|
|
22
|
+
Object.defineProperty(exports, "isEvmChain", { enumerable: true, get: function () { return chains_js_2.isEvmChain; } });
|
|
23
|
+
// Maps generic action names to adapter-specific decoded instruction types.
|
|
24
|
+
const SOLANA_ACTION_MAP = {
|
|
25
|
+
transfer: 'create_transfer',
|
|
26
|
+
};
|
|
27
|
+
const programRegistry = (0, program_registry_js_1.createProgramRegistry)();
|
|
28
|
+
async function verifyIntent(txBytes, intent, opts = {}) {
|
|
29
|
+
if (!intent.chain) {
|
|
30
|
+
return {
|
|
31
|
+
matched: false,
|
|
32
|
+
confidence: 'unverified',
|
|
33
|
+
discrepancies: ['Intent is missing required "chain" field.'],
|
|
34
|
+
analysis: { feePayer: '', instructions: [], flags: [], summary: '' },
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const { chain, network } = (0, chains_js_1.parseChain)(intent.chain);
|
|
38
|
+
const strict = intent.strict ?? false;
|
|
39
|
+
const actions = (0, helpers_js_1.getActions)(intent);
|
|
40
|
+
// Resolve expected program from ProgramRef
|
|
41
|
+
const programRef = (0, helpers_js_1.getProgramRef)(intent);
|
|
42
|
+
let expectedProgram;
|
|
43
|
+
if (programRef.program && programRef.programName) {
|
|
44
|
+
// Both specified: cross-check
|
|
45
|
+
if (!programRegistry.crossCheck(chain, network, programRef.programName, programRef.program)) {
|
|
46
|
+
return {
|
|
47
|
+
matched: false,
|
|
48
|
+
confidence: 'full',
|
|
49
|
+
discrepancies: [
|
|
50
|
+
`Program cross-check failed: name '${programRef.programName}' does not match address '${programRef.program}'.`,
|
|
51
|
+
],
|
|
52
|
+
analysis: { feePayer: '', instructions: [], flags: [], summary: '' },
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
expectedProgram = programRef.program;
|
|
56
|
+
}
|
|
57
|
+
else if (programRef.program) {
|
|
58
|
+
expectedProgram = programRef.program;
|
|
59
|
+
}
|
|
60
|
+
else if (programRef.programName) {
|
|
61
|
+
const resolved = programRegistry.resolveName(chain, network, programRef.programName);
|
|
62
|
+
if (resolved) {
|
|
63
|
+
expectedProgram = resolved.address;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
let analysis;
|
|
67
|
+
if (chain === 'solana') {
|
|
68
|
+
analysis = await (0, index_js_1.analyzeTransaction)(txBytes, opts);
|
|
69
|
+
for (const ix of analysis.instructions) {
|
|
70
|
+
for (const [generic, specific] of Object.entries(SOLANA_ACTION_MAP)) {
|
|
71
|
+
if (ix.type === specific) {
|
|
72
|
+
ix.type = generic;
|
|
73
|
+
if (ix.params['sender']) {
|
|
74
|
+
ix.params['from'] = ix.params['sender'];
|
|
75
|
+
}
|
|
76
|
+
if (ix.params['recipient']) {
|
|
77
|
+
ix.params['to'] = ix.params['recipient'];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return {
|
|
85
|
+
matched: false,
|
|
86
|
+
confidence: 'unverified',
|
|
87
|
+
discrepancies: [`Chain adapter for '${chain}' is not yet implemented.`],
|
|
88
|
+
analysis: { feePayer: '', instructions: [], flags: [], summary: '' },
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
const result = (0, matcher_js_1.matchIntent)(actions, analysis.instructions, analysis.flags, chain, strict, expectedProgram);
|
|
92
|
+
return {
|
|
93
|
+
matched: result.matched,
|
|
94
|
+
confidence: result.confidence,
|
|
95
|
+
discrepancies: result.discrepancies,
|
|
96
|
+
analysis,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/intent/index.ts"],"names":[],"mappings":"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"}
|