@xona-labs/xpay 0.2.4 → 0.2.6
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/CHANGELOG.md +43 -0
- package/README.md +32 -4
- package/SKILL.md +19 -7
- package/dist/agenc/hire.d.ts.map +1 -1
- package/dist/agenc/hire.js +24 -1
- package/dist/agenc/hire.js.map +1 -1
- package/dist/cli/index.js +25 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/swap.d.ts +13 -0
- package/dist/cli/swap.d.ts.map +1 -0
- package/dist/cli/swap.js +74 -0
- package/dist/cli/swap.js.map +1 -0
- package/dist/cli/token.d.ts +11 -0
- package/dist/cli/token.d.ts.map +1 -0
- package/dist/cli/token.js +60 -0
- package/dist/cli/token.js.map +1 -0
- package/dist/guardrail/index.d.ts.map +1 -1
- package/dist/guardrail/index.js +21 -3
- package/dist/guardrail/index.js.map +1 -1
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/profile/types.d.ts +12 -0
- package/dist/profile/types.d.ts.map +1 -1
- package/dist/swap/index.d.ts +69 -0
- package/dist/swap/index.d.ts.map +1 -0
- package/dist/swap/index.js +171 -0
- package/dist/swap/index.js.map +1 -0
- package/dist/token/index.d.ts +53 -0
- package/dist/token/index.d.ts.map +1 -0
- package/dist/token/index.js +168 -0
- package/dist/token/index.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +44 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/transfer/index.d.ts +7 -0
- package/dist/transfer/index.d.ts.map +1 -1
- package/dist/transfer/index.js +1 -1
- package/dist/transfer/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guardrail/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAuChD,MAAM,OAAO,SAAS;IACH,MAAM,CAAkB;IACxB,OAAO,GAAiB,EAAE,CAAC;IAE5C,YAAY,SAA0B,EAAE;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,IAA6D;QACvE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErD,2EAA2E;QAC3E,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/guardrail/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ import { Guardrail, type GuardrailConfig } from "./guardrail/index.js";
|
|
|
19
19
|
import { type LoadedProfile } from "./profile/index.js";
|
|
20
20
|
import { type WalletReport, type ReportOptions } from "./report/index.js";
|
|
21
21
|
import { type TransferResult } from "./transfer/index.js";
|
|
22
|
+
import { type TokenInfo } from "./token/index.js";
|
|
23
|
+
import { type SwapQuote, type SwapResult } from "./swap/index.js";
|
|
22
24
|
import type { DiscoverOptions, Resource, UseResult, Network, Signer } from "./types.js";
|
|
23
25
|
export * from "./types.js";
|
|
24
26
|
export * from "./signers/index.js";
|
|
@@ -36,6 +38,8 @@ export { fetchPayAIResources } from "./discover/payai.js";
|
|
|
36
38
|
export { fetchOrbitX402Resources } from "./discover/orbitx402.js";
|
|
37
39
|
export { fetchAgencResources, fetchAgencListing, fetchAgencTask, listingToResource, isAgencResource, AGENC_SCHEME, } from "./agenc/api.js";
|
|
38
40
|
export type { AgencHireConfig, AgencHireReceipt } from "./agenc/hire.js";
|
|
41
|
+
export { findTokens, resolveTradeToken, AmbiguousTokenError, NATIVE_SOL_MINT, type TokenInfo, type TokenApiOptions, } from "./token/index.js";
|
|
42
|
+
export { swap as swapTokens, swapQuote as quoteSwap, type SwapArgs, type SwapConfig, type SwapQuote, type SwapResult, } from "./swap/index.js";
|
|
39
43
|
/** Options for {@link createXPay}. */
|
|
40
44
|
export interface XPayOptions {
|
|
41
45
|
/**
|
|
@@ -92,6 +96,24 @@ export interface XPay {
|
|
|
92
96
|
token?: string;
|
|
93
97
|
private?: boolean;
|
|
94
98
|
}): Promise<TransferResult>;
|
|
99
|
+
/** Search Solana tokens by ticker, name, or mint (Jupiter). Read-only, no signing. */
|
|
100
|
+
findTokens(query: string, opts?: {
|
|
101
|
+
limit?: number;
|
|
102
|
+
}): Promise<TokenInfo[]>;
|
|
103
|
+
/** Quote a swap without executing — no guardrail, no signing, no funds moved. */
|
|
104
|
+
swapQuote(args: {
|
|
105
|
+
amount: number;
|
|
106
|
+
from: string;
|
|
107
|
+
to: string;
|
|
108
|
+
slippageBps?: number;
|
|
109
|
+
}): Promise<SwapQuote>;
|
|
110
|
+
/** Swap tokens inside the wallet (Solana only, Jupiter). Subject to the guardrail. */
|
|
111
|
+
swap(args: {
|
|
112
|
+
amount: number;
|
|
113
|
+
from: string;
|
|
114
|
+
to: string;
|
|
115
|
+
slippageBps?: number;
|
|
116
|
+
}): Promise<SwapResult>;
|
|
95
117
|
}
|
|
96
118
|
/**
|
|
97
119
|
* Create an xPay client.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAgB,KAAK,MAAM,EAAsB,MAAM,mBAAmB,CAAC;AAIlF,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAA8C,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAe,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAY,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACP,MAAM,YAAY,CAAC;AAEpB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -22,6 +22,8 @@ import { Guardrail } from "./guardrail/index.js";
|
|
|
22
22
|
import { signersFromProfile, deriveKeysFromMnemonic } from "./profile/index.js";
|
|
23
23
|
import { fetchReport } from "./report/index.js";
|
|
24
24
|
import { transfer } from "./transfer/index.js";
|
|
25
|
+
import { findTokens } from "./token/index.js";
|
|
26
|
+
import { swap, swapQuote } from "./swap/index.js";
|
|
25
27
|
export * from "./types.js";
|
|
26
28
|
export * from "./signers/index.js";
|
|
27
29
|
export * from "./tools/index.js";
|
|
@@ -37,6 +39,8 @@ export { discover } from "./discover/index.js";
|
|
|
37
39
|
export { fetchPayAIResources } from "./discover/payai.js";
|
|
38
40
|
export { fetchOrbitX402Resources } from "./discover/orbitx402.js";
|
|
39
41
|
export { fetchAgencResources, fetchAgencListing, fetchAgencTask, listingToResource, isAgencResource, AGENC_SCHEME, } from "./agenc/api.js";
|
|
42
|
+
export { findTokens, resolveTradeToken, AmbiguousTokenError, NATIVE_SOL_MINT, } from "./token/index.js";
|
|
43
|
+
export { swap as swapTokens, swapQuote as quoteSwap, } from "./swap/index.js";
|
|
40
44
|
/**
|
|
41
45
|
* Create an xPay client.
|
|
42
46
|
*
|
|
@@ -92,6 +96,13 @@ export function createXPay(options) {
|
|
|
92
96
|
guardrail,
|
|
93
97
|
magicBlockConfig: options.profile?.config.magicblock,
|
|
94
98
|
}),
|
|
99
|
+
findTokens: (query, opts) => findTokens(query, {
|
|
100
|
+
endpoint: options.profile?.config.swap?.endpoint,
|
|
101
|
+
apiKey: options.profile?.config.swap?.apiKey,
|
|
102
|
+
...opts,
|
|
103
|
+
}),
|
|
104
|
+
swapQuote: (args) => swapQuote({ ...args, wallet, config: options.profile?.config.swap }),
|
|
105
|
+
swap: (args) => swap({ ...args, wallet, guardrail, config: options.profile?.config.swap }),
|
|
95
106
|
};
|
|
96
107
|
}
|
|
97
108
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAmC,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAwB,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAsB,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAyC,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAuB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAmC,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,SAAS,EAAwB,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAsB,MAAM,oBAAoB,CAAC;AACpG,OAAO,EAAE,WAAW,EAAyC,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAuB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAmC,MAAM,iBAAiB,CAAC;AASnF,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,GAGhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,IAAI,IAAI,UAAU,EAClB,SAAS,IAAI,SAAS,GAKvB,MAAM,iBAAiB,CAAC;AAoDzB;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,OAAoB;IAC7C,yEAAyE;IACzE,IAAI,QAAQ,GAA0B,OAAO,CAAC,QAAQ,CAAC;IACvD,IAAI,OAAO,GAAiD,OAAO,CAAC,OAAO,CAAC;IAC5E,IAAI,eAAe,GAAgC,OAAO,CAAC,SAAS,CAAC;IAErE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC7C,OAAO,KAAK,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;QAErD,uEAAuE;QACvE,gEAAgE;QAChE,uEAAuE;QACvE,gDAAgD;QAChD,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YAC1C,eAAe,GAAG,EAAE,GAAG,eAAe,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;YACnE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,sBAAsB,CAC3D,OAAO,CAAC,OAAO,CAAC,QAAQ,CACzB,CAAC,MAAM,CAAC,eAAe,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,UAAU,GAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,eAAe,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;IAElD,OAAO;QACL,MAAM;QACN,SAAS;QACT,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9E,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;QAC1F,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC;QACtE,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;QACpF,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,gFAAgF;YAChF,MAAM,GAAG,GAAG,IAAI,EAAE,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;YACrD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpC,OAAO,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC;YAC3B,GAAG,IAAI;YACP,MAAM;YACN,SAAS;YACT,gBAAgB,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU;SACrD,CAAC;QACF,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;YAC7C,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ;YAChD,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM;YAC5C,GAAG,IAAI;SACR,CAAC;QACF,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACzF,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;KAC3F,CAAC;AACJ,CAAC"}
|
package/dist/profile/types.d.ts
CHANGED
|
@@ -93,6 +93,18 @@ export interface ProfileConfig {
|
|
|
93
93
|
/** AgenC API base override (self-hosted indexer / tests). */
|
|
94
94
|
endpoint?: string;
|
|
95
95
|
};
|
|
96
|
+
/**
|
|
97
|
+
* Native token-swap settings (Jupiter). Optional — swaps work keyless with
|
|
98
|
+
* sensible defaults.
|
|
99
|
+
*/
|
|
100
|
+
swap?: {
|
|
101
|
+
/** Default max slippage in bps (50 = 0.5%). Unset → Jupiter dynamic slippage. */
|
|
102
|
+
slippageBps?: number;
|
|
103
|
+
/** Jupiter API key for higher rate limits. Falls back to env JUPITER_API_KEY. */
|
|
104
|
+
apiKey?: string;
|
|
105
|
+
/** Jupiter API base override. Falls back to env XPAY_JUPITER_ENDPOINT. */
|
|
106
|
+
endpoint?: string;
|
|
107
|
+
};
|
|
96
108
|
/**
|
|
97
109
|
* MagicBlock Private Ephemeral Rollup integration.
|
|
98
110
|
* Platform-level config — set once by the xpay operator via `xpay magicblock configure`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/profile/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;CACb;AAED,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,aAAa,CAAC;QACtB,GAAG,EAAE;YAAE,IAAI,EAAE,QAAQ,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvE,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,yCAAyC;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8DAA8D;IAC9D,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,wEAAwE;IACxE,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF;;;;OAIG;IACH,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,gDAAgD;IAChD,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF;;;;OAIG;IACH,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF;;;OAGG;IACH,KAAK,CAAC,EAAE;QACN,6FAA6F;QAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,uFAAuF;QACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;;OAIG;IACH,UAAU,CAAC,EAAE;QACX,qDAAqD;QACrD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,kDAAkD;QAClD,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/profile/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;CACb;AAED,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,aAAa,CAAC;QACtB,GAAG,EAAE;YAAE,IAAI,EAAE,QAAQ,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACvE,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,yCAAyC;IACzC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8DAA8D;IAC9D,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,wEAAwE;IACxE,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF;;;;OAIG;IACH,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,gDAAgD;IAChD,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF;;;;OAIG;IACH,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF;;;OAGG;IACH,KAAK,CAAC,EAAE;QACN,6FAA6F;QAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,uFAAuF;QACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;OAGG;IACH,IAAI,CAAC,EAAE;QACL,iFAAiF;QACjF,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iFAAiF;QACjF,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,0EAA0E;QAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;;OAIG;IACH,UAAU,CAAC,EAAE;QACX,qDAAqD;QACrD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,kDAAkD;QAClD,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Native Solana token swap — Jupiter Swap API v2 (order → sign → execute).
|
|
3
|
+
*
|
|
4
|
+
* Swaps happen inside the user's own xpay wallet (funds never leave it), but
|
|
5
|
+
* a swap is irreversible and puts wallet value at risk, so it runs through
|
|
6
|
+
* the same guardrail as payments and transfers — enforced *before* signing.
|
|
7
|
+
*
|
|
8
|
+
* Jupiter's meta-aggregator picks the router (metis / jupiterz / dflow /
|
|
9
|
+
* okx), returns an unsigned v0 transaction, and lands it via POST /execute —
|
|
10
|
+
* no RPC broadcast on our side.
|
|
11
|
+
*
|
|
12
|
+
* Complements the Sana-hosted `sana_swap` (API-key wallet): this path is
|
|
13
|
+
* keyless and uses the local wallet.
|
|
14
|
+
*/
|
|
15
|
+
import type { Wallet } from "../wallet/index.js";
|
|
16
|
+
import type { Guardrail } from "../guardrail/index.js";
|
|
17
|
+
import { type TokenInfo } from "../token/index.js";
|
|
18
|
+
/** Swap settings — profile `config.swap`, overridable per call / via env. */
|
|
19
|
+
export interface SwapConfig {
|
|
20
|
+
/** Max slippage in bps (50 = 0.5%). Unset → Jupiter dynamic slippage. */
|
|
21
|
+
slippageBps?: number;
|
|
22
|
+
/** Jupiter API key for higher rate limits (env: JUPITER_API_KEY). */
|
|
23
|
+
apiKey?: string;
|
|
24
|
+
/** Jupiter API base override (env: XPAY_JUPITER_ENDPOINT). */
|
|
25
|
+
endpoint?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface SwapArgs {
|
|
28
|
+
/** Human amount of the input token (e.g. 0.5). */
|
|
29
|
+
amount: number;
|
|
30
|
+
/** Input token: symbol (SOL, USDC, BONK, …) or mint address. */
|
|
31
|
+
from: string;
|
|
32
|
+
/** Output token: symbol or mint address. */
|
|
33
|
+
to: string;
|
|
34
|
+
slippageBps?: number;
|
|
35
|
+
wallet: Wallet;
|
|
36
|
+
guardrail: Guardrail;
|
|
37
|
+
config?: SwapConfig;
|
|
38
|
+
}
|
|
39
|
+
export interface SwapQuote {
|
|
40
|
+
from: TokenInfo;
|
|
41
|
+
to: TokenInfo;
|
|
42
|
+
/** Input in human units / atomic units. */
|
|
43
|
+
inAmount: number;
|
|
44
|
+
inAtoms: string;
|
|
45
|
+
/** Expected output before slippage, human / atomic. */
|
|
46
|
+
outAmount: number;
|
|
47
|
+
outAtoms: string;
|
|
48
|
+
/** Input-side USD value (Jupiter's estimate, else spot price fallback). */
|
|
49
|
+
usdValue?: number;
|
|
50
|
+
priceImpactPct?: number;
|
|
51
|
+
/** Winning router: metis, jupiterz, dflow, okx, … */
|
|
52
|
+
router: string;
|
|
53
|
+
/** Effective slippage for this order (Jupiter dynamic unless overridden). */
|
|
54
|
+
slippageBps?: number;
|
|
55
|
+
/** True when the output token is not Jupiter-verified — relay this warning. */
|
|
56
|
+
outputUnverified: boolean;
|
|
57
|
+
}
|
|
58
|
+
export interface SwapResult extends SwapQuote {
|
|
59
|
+
network: "solana";
|
|
60
|
+
txSig: string;
|
|
61
|
+
/** Actual totals from execution (include fees), human units. */
|
|
62
|
+
totalInAmount?: number;
|
|
63
|
+
totalOutAmount?: number;
|
|
64
|
+
}
|
|
65
|
+
/** Quote a swap without executing — no guardrail, no signing, no funds moved. */
|
|
66
|
+
export declare function swapQuote(args: Omit<SwapArgs, "guardrail">): Promise<SwapQuote>;
|
|
67
|
+
/** Execute a swap inside the wallet. Guardrail runs before signing. */
|
|
68
|
+
export declare function swap(args: SwapArgs): Promise<SwapResult>;
|
|
69
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAK3B,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,QAAQ;IACvB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,SAAS,CAAC;IACd,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,OAAO,EAAE,QAAQ,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,iFAAiF;AACjF,wBAAsB,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAGrF;AAED,uEAAuE;AACvE,wBAAsB,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CA4D9D"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Native Solana token swap — Jupiter Swap API v2 (order → sign → execute).
|
|
3
|
+
*
|
|
4
|
+
* Swaps happen inside the user's own xpay wallet (funds never leave it), but
|
|
5
|
+
* a swap is irreversible and puts wallet value at risk, so it runs through
|
|
6
|
+
* the same guardrail as payments and transfers — enforced *before* signing.
|
|
7
|
+
*
|
|
8
|
+
* Jupiter's meta-aggregator picks the router (metis / jupiterz / dflow /
|
|
9
|
+
* okx), returns an unsigned v0 transaction, and lands it via POST /execute —
|
|
10
|
+
* no RPC broadcast on our side.
|
|
11
|
+
*
|
|
12
|
+
* Complements the Sana-hosted `sana_swap` (API-key wallet): this path is
|
|
13
|
+
* keyless and uses the local wallet.
|
|
14
|
+
*/
|
|
15
|
+
import { PublicKey, VersionedTransaction } from "@solana/web3.js";
|
|
16
|
+
import { jupiterFetch, resolveTradeToken, NATIVE_SOL_MINT, } from "../token/index.js";
|
|
17
|
+
import { solUsdPrice } from "../agenc/price.js";
|
|
18
|
+
const DEFAULT_ENDPOINT = "https://api.jup.ag";
|
|
19
|
+
/** Quote a swap without executing — no guardrail, no signing, no funds moved. */
|
|
20
|
+
export async function swapQuote(args) {
|
|
21
|
+
const prepared = await prepare(args);
|
|
22
|
+
return prepared.quote;
|
|
23
|
+
}
|
|
24
|
+
/** Execute a swap inside the wallet. Guardrail runs before signing. */
|
|
25
|
+
export async function swap(args) {
|
|
26
|
+
// A quote's transaction embeds a recent blockhash, so always build a fresh
|
|
27
|
+
// order here rather than reusing one from an earlier swapQuote() display.
|
|
28
|
+
const { quote, order, signer, apiOpts } = await prepare(args);
|
|
29
|
+
// Guardrail *before* signing — same security boundary as pay/transfer.
|
|
30
|
+
const requirement = {
|
|
31
|
+
asset: quote.from.mint,
|
|
32
|
+
payTo: quote.to.mint,
|
|
33
|
+
amount: quote.inAtoms,
|
|
34
|
+
scheme: "swap",
|
|
35
|
+
network: "solana",
|
|
36
|
+
extra: {
|
|
37
|
+
usdEstimate: quote.usdValue,
|
|
38
|
+
fromSymbol: quote.from.symbol,
|
|
39
|
+
toSymbol: quote.to.symbol,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
const resource = {
|
|
43
|
+
resource: `xpay://swap/${quote.from.symbol}-${quote.to.symbol}`,
|
|
44
|
+
type: "swap",
|
|
45
|
+
method: "POST",
|
|
46
|
+
accepts: [requirement],
|
|
47
|
+
};
|
|
48
|
+
await args.guardrail.check({ resource, requirement });
|
|
49
|
+
// Partial-sign the v0 transaction. The signer never exposes its Keypair —
|
|
50
|
+
// sign the serialized message and attach the signature (same pattern as
|
|
51
|
+
// the native-SOL transfer). Do NOT use tx.sign(): it needs a Keypair, and
|
|
52
|
+
// JupiterZ orders may get a market-maker co-signature at /execute, so only
|
|
53
|
+
// our own signature may be added here.
|
|
54
|
+
const tx = VersionedTransaction.deserialize(Buffer.from(order.transaction, "base64"));
|
|
55
|
+
const msgBytes = tx.message.serialize();
|
|
56
|
+
const sig = await signer.signMessage(msgBytes);
|
|
57
|
+
tx.addSignature(new PublicKey(signer.address), sig);
|
|
58
|
+
const signedTransaction = Buffer.from(tx.serialize()).toString("base64");
|
|
59
|
+
const endpoint = apiOpts.endpoint ?? DEFAULT_ENDPOINT;
|
|
60
|
+
const exec = (await jupiterFetch(new URL("/swap/v2/execute", endpoint).toString(), apiOpts.apiKey, {
|
|
61
|
+
method: "POST",
|
|
62
|
+
headers: { "content-type": "application/json" },
|
|
63
|
+
body: JSON.stringify({ signedTransaction, requestId: order.requestId }),
|
|
64
|
+
}));
|
|
65
|
+
if (exec.status !== "Success") {
|
|
66
|
+
const landed = exec.signature
|
|
67
|
+
? ` The transaction may have landed and reverted — check https://solscan.io/tx/${exec.signature}`
|
|
68
|
+
: "";
|
|
69
|
+
throw new Error(`xpay.swap: execution failed (code ${exec.code ?? "?"}) — ${exec.error ?? "unknown error"}.${landed}`);
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
...quote,
|
|
73
|
+
network: "solana",
|
|
74
|
+
txSig: exec.signature ?? "",
|
|
75
|
+
totalInAmount: atomsToHuman(exec.totalInputAmount, quote.from.decimals),
|
|
76
|
+
totalOutAmount: atomsToHuman(exec.totalOutputAmount, quote.to.decimals),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
async function prepare(args) {
|
|
80
|
+
if (!Number.isFinite(args.amount) || args.amount <= 0) {
|
|
81
|
+
throw new Error("xpay.swap: amount must be a positive number");
|
|
82
|
+
}
|
|
83
|
+
if (!args.wallet.has("solana")) {
|
|
84
|
+
throw new Error("xpay.swap: swaps are Solana-only — no Solana signer is configured");
|
|
85
|
+
}
|
|
86
|
+
const signer = args.wallet.signer("solana");
|
|
87
|
+
const apiOpts = {
|
|
88
|
+
endpoint: args.config?.endpoint,
|
|
89
|
+
apiKey: args.config?.apiKey,
|
|
90
|
+
};
|
|
91
|
+
const [from, to] = await Promise.all([
|
|
92
|
+
resolveTradeToken(args.from, apiOpts),
|
|
93
|
+
resolveTradeToken(args.to, apiOpts),
|
|
94
|
+
]);
|
|
95
|
+
if (from.mint === to.mint) {
|
|
96
|
+
throw new Error(`xpay.swap: input and output are the same token (${from.symbol})`);
|
|
97
|
+
}
|
|
98
|
+
const inAtoms = BigInt(Math.round(args.amount * 10 ** from.decimals));
|
|
99
|
+
if (inAtoms === 0n) {
|
|
100
|
+
throw new Error(`xpay.swap: ${args.amount} ${from.symbol} is below the token's smallest unit (${from.decimals} decimals)`);
|
|
101
|
+
}
|
|
102
|
+
const endpoint = apiOpts.endpoint ?? process.env.XPAY_JUPITER_ENDPOINT ?? DEFAULT_ENDPOINT;
|
|
103
|
+
const apiKey = apiOpts.apiKey ?? process.env.JUPITER_API_KEY;
|
|
104
|
+
const slippageBps = args.slippageBps ?? args.config?.slippageBps;
|
|
105
|
+
const url = new URL("/swap/v2/order", endpoint);
|
|
106
|
+
url.searchParams.set("inputMint", from.mint);
|
|
107
|
+
url.searchParams.set("outputMint", to.mint);
|
|
108
|
+
url.searchParams.set("amount", inAtoms.toString());
|
|
109
|
+
url.searchParams.set("taker", signer.address);
|
|
110
|
+
if (slippageBps !== undefined)
|
|
111
|
+
url.searchParams.set("slippageBps", String(slippageBps));
|
|
112
|
+
const order = (await jupiterFetch(url.toString(), apiKey));
|
|
113
|
+
if (!order.transaction) {
|
|
114
|
+
// Verified failure shapes: errorCode 1 = wallet lacks the input amount;
|
|
115
|
+
// 2 = wallet lacks SOL for fees; 3 = wallet lacked SOL so Jupiter tried
|
|
116
|
+
// the gasless route, which has a ~$5 minimum. A top-level `error` with no
|
|
117
|
+
// code ("Failed to get quotes") notably happens when slippageBps is set
|
|
118
|
+
// on the keyless tier — dynamic slippage (omitting it) works.
|
|
119
|
+
let reason;
|
|
120
|
+
if (order.errorCode === 1) {
|
|
121
|
+
reason = `insufficient ${from.symbol} balance in the wallet`;
|
|
122
|
+
}
|
|
123
|
+
else if (order.errorCode === 2) {
|
|
124
|
+
reason = "insufficient SOL to cover network fees/rent";
|
|
125
|
+
}
|
|
126
|
+
else if (order.errorCode === 3) {
|
|
127
|
+
reason =
|
|
128
|
+
"swap is below the gasless route's ~$5 minimum. Jupiter routes gasless when the " +
|
|
129
|
+
"wallet lacks SOL for fees — fund the wallet with SOL, or swap a larger amount";
|
|
130
|
+
}
|
|
131
|
+
else if (order.error && slippageBps !== undefined) {
|
|
132
|
+
reason = `${order.error} — try again without an explicit slippage (Jupiter picks dynamic slippage)`;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
reason = order.errorMessage ?? order.error ?? "Jupiter could not build a swap transaction";
|
|
136
|
+
}
|
|
137
|
+
throw new Error(`xpay.swap: ${reason} (router ${order.router ?? "?"}, code ${order.errorCode ?? "?"})`);
|
|
138
|
+
}
|
|
139
|
+
// Input-side USD: Jupiter's own estimate, else token spot, else SOL feed.
|
|
140
|
+
let usdValue = numOrUndef(order.inUsdValue);
|
|
141
|
+
if (usdValue === undefined && from.usdPrice !== undefined)
|
|
142
|
+
usdValue = from.usdPrice * args.amount;
|
|
143
|
+
if (usdValue === undefined && from.mint === NATIVE_SOL_MINT) {
|
|
144
|
+
usdValue = await solUsdPrice().then((p) => p * args.amount).catch(() => undefined);
|
|
145
|
+
}
|
|
146
|
+
const outAtoms = order.outAmount ?? "0";
|
|
147
|
+
const quote = {
|
|
148
|
+
from,
|
|
149
|
+
to,
|
|
150
|
+
inAmount: args.amount,
|
|
151
|
+
inAtoms: inAtoms.toString(),
|
|
152
|
+
outAmount: atomsToHuman(outAtoms, to.decimals) ?? 0,
|
|
153
|
+
outAtoms,
|
|
154
|
+
usdValue,
|
|
155
|
+
priceImpactPct: numOrUndef(Number(order.priceImpactPct)),
|
|
156
|
+
router: order.router ?? "unknown",
|
|
157
|
+
slippageBps: order.slippageBps ?? slippageBps,
|
|
158
|
+
outputUnverified: !to.verified,
|
|
159
|
+
};
|
|
160
|
+
return { quote, order: order, signer, apiOpts: { endpoint, apiKey } };
|
|
161
|
+
}
|
|
162
|
+
function atomsToHuman(atoms, decimals) {
|
|
163
|
+
if (atoms === undefined)
|
|
164
|
+
return undefined;
|
|
165
|
+
const n = Number(atoms);
|
|
166
|
+
return Number.isFinite(n) ? n / 10 ** decimals : undefined;
|
|
167
|
+
}
|
|
168
|
+
function numOrUndef(v) {
|
|
169
|
+
return typeof v === "number" && Number.isFinite(v) ? v : undefined;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Solana token discovery — Jupiter Token API v2.
|
|
3
|
+
*
|
|
4
|
+
* Keyless read-only search by ticker, name, or mint address. Returns live
|
|
5
|
+
* market data (price, mcap, liquidity) plus Jupiter's verification flag —
|
|
6
|
+
* the main scam signal agents must check before swapping (anyone can mint a
|
|
7
|
+
* token reusing a real project's ticker).
|
|
8
|
+
*/
|
|
9
|
+
/** Wrapped-SOL mint — Jupiter's sentinel for native SOL (wraps/unwraps automatically). */
|
|
10
|
+
export declare const NATIVE_SOL_MINT = "So11111111111111111111111111111111111111112";
|
|
11
|
+
export interface TokenInfo {
|
|
12
|
+
mint: string;
|
|
13
|
+
symbol: string;
|
|
14
|
+
name: string;
|
|
15
|
+
decimals: number;
|
|
16
|
+
/** Jupiter verification — unverified tokens can be scams reusing a real ticker. */
|
|
17
|
+
verified: boolean;
|
|
18
|
+
usdPrice?: number;
|
|
19
|
+
mcap?: number;
|
|
20
|
+
fdv?: number;
|
|
21
|
+
liquidity?: number;
|
|
22
|
+
holderCount?: number;
|
|
23
|
+
organicScore?: number;
|
|
24
|
+
tokenProgram?: string;
|
|
25
|
+
icon?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface TokenApiOptions {
|
|
28
|
+
/** Jupiter API base. Default https://api.jup.ag (env: XPAY_JUPITER_ENDPOINT). */
|
|
29
|
+
endpoint?: string;
|
|
30
|
+
/** Optional Jupiter API key for higher rate limits (env: JUPITER_API_KEY). */
|
|
31
|
+
apiKey?: string;
|
|
32
|
+
}
|
|
33
|
+
/** Thrown when a bare ticker matches several plausible tokens — retry with the exact mint. */
|
|
34
|
+
export declare class AmbiguousTokenError extends Error {
|
|
35
|
+
readonly candidates: TokenInfo[];
|
|
36
|
+
constructor(input: string, candidates: TokenInfo[]);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Search tokens by ticker, name, or mint. Ranked verified-first, then by
|
|
40
|
+
* liquidity. Read-only — no wallet, no signing.
|
|
41
|
+
*/
|
|
42
|
+
export declare function findTokens(query: string, opts?: TokenApiOptions & {
|
|
43
|
+
limit?: number;
|
|
44
|
+
}): Promise<TokenInfo[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Deterministic single-token resolution for trading. Accepts a symbol or a
|
|
47
|
+
* mint address; never silently picks between plausible candidates — throws
|
|
48
|
+
* {@link AmbiguousTokenError} instead so the caller can pass the exact mint.
|
|
49
|
+
*/
|
|
50
|
+
export declare function resolveTradeToken(input: string, opts?: TokenApiOptions): Promise<TokenInfo>;
|
|
51
|
+
/** GET with a 10s timeout and backoff retries on 429 (keyless bucket is small). */
|
|
52
|
+
export declare function jupiterFetch(url: string, apiKey?: string, init?: RequestInit): Promise<unknown>;
|
|
53
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/token/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,0FAA0F;AAC1F,eAAO,MAAM,eAAe,gDAAgD,CAAC;AAE7E,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,8FAA8F;AAC9F,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;gBACrB,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;CAUnD;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE,eAAe,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9C,OAAO,CAAC,SAAS,EAAE,CAAC,CAetB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,SAAS,CAAC,CAoDrG;AAiDD,mFAAmF;AACnF,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BrG"}
|