@aifinpay/agent 2.0.0-rc.7 → 2.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/LICENSE +21 -0
- package/PAYMENT_RECEIPTS.md +114 -0
- package/README.md +85 -28
- package/dist/agent.d.ts +8 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +50 -17
- package/dist/agent.js.map +1 -1
- package/dist/agentHistory.d.ts +55 -0
- package/dist/agentHistory.d.ts.map +1 -0
- package/dist/agentHistory.js +145 -0
- package/dist/agentHistory.js.map +1 -0
- package/dist/agentPassport.d.ts +71 -7
- package/dist/agentPassport.d.ts.map +1 -1
- package/dist/agentPassport.js +135 -27
- package/dist/agentPassport.js.map +1 -1
- package/dist/aifp1.d.ts +126 -5
- package/dist/aifp1.d.ts.map +1 -1
- package/dist/aifp1.js +407 -108
- package/dist/aifp1.js.map +1 -1
- package/dist/apiUrl.d.ts +3 -0
- package/dist/apiUrl.d.ts.map +1 -0
- package/dist/apiUrl.js +8 -0
- package/dist/apiUrl.js.map +1 -0
- package/dist/chains.d.ts +7 -0
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +19 -1
- package/dist/chains.js.map +1 -1
- package/dist/crossChain.d.ts.map +1 -1
- package/dist/crossChain.js.map +1 -1
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js.map +1 -1
- package/dist/deploymentResolver.d.ts +95 -0
- package/dist/deploymentResolver.d.ts.map +1 -0
- package/dist/deploymentResolver.js +169 -0
- package/dist/deploymentResolver.js.map +1 -0
- package/dist/errors.d.ts +17 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +14 -0
- package/dist/errors.js.map +1 -1
- package/dist/facilitators/aifinpay.d.ts +4 -5
- package/dist/facilitators/aifinpay.d.ts.map +1 -1
- package/dist/facilitators/aifinpay.js +50 -21
- package/dist/facilitators/aifinpay.js.map +1 -1
- package/dist/facilitators/base.d.ts +12 -1
- package/dist/facilitators/base.d.ts.map +1 -1
- package/dist/facilitators/coinbase.d.ts.map +1 -1
- package/dist/facilitators/coinbase.js +3 -7
- package/dist/facilitators/coinbase.js.map +1 -1
- package/dist/facilitators/detect.d.ts.map +1 -1
- package/dist/facilitators/detect.js +2 -7
- package/dist/facilitators/detect.js.map +1 -1
- package/dist/facilitators/standard-x402.d.ts.map +1 -1
- package/dist/facilitators/standard-x402.js +40 -30
- package/dist/facilitators/standard-x402.js.map +1 -1
- package/dist/generated/solanaV14Deployments.generated.d.ts +25 -0
- package/dist/generated/solanaV14Deployments.generated.d.ts.map +1 -0
- package/dist/generated/solanaV14Deployments.generated.js +39 -0
- package/dist/generated/solanaV14Deployments.generated.js.map +1 -0
- package/dist/generated/splitterRoutes.generated.d.ts +24 -0
- package/dist/generated/splitterRoutes.generated.d.ts.map +1 -0
- package/dist/generated/splitterRoutes.generated.js +453 -0
- package/dist/generated/splitterRoutes.generated.js.map +1 -0
- package/dist/generated/v14Deployments.generated.d.ts +49 -0
- package/dist/generated/v14Deployments.generated.d.ts.map +1 -0
- package/dist/generated/v14Deployments.generated.js +415 -0
- package/dist/generated/v14Deployments.generated.js.map +1 -0
- package/dist/index.d.ts +27 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -7
- package/dist/index.js.map +1 -1
- package/dist/localIdentity.d.ts +17 -0
- package/dist/localIdentity.d.ts.map +1 -0
- package/dist/localIdentity.js +95 -0
- package/dist/localIdentity.js.map +1 -0
- package/dist/settlement.d.ts +34 -4
- package/dist/settlement.d.ts.map +1 -1
- package/dist/settlement.js +233 -75
- package/dist/settlement.js.map +1 -1
- package/dist/settlementHttp.d.ts +10 -0
- package/dist/settlementHttp.d.ts.map +1 -0
- package/dist/settlementHttp.js +78 -0
- package/dist/settlementHttp.js.map +1 -0
- package/dist/settlementV14.d.ts +10 -9
- package/dist/settlementV14.d.ts.map +1 -1
- package/dist/settlementV14.js +43 -55
- package/dist/settlementV14.js.map +1 -1
- package/dist/solanaDeploymentResolver.d.ts +98 -0
- package/dist/solanaDeploymentResolver.d.ts.map +1 -0
- package/dist/solanaDeploymentResolver.js +162 -0
- package/dist/solanaDeploymentResolver.js.map +1 -0
- package/dist/solanaV14Deployments.generated.d.ts +25 -0
- package/dist/solanaV14Deployments.generated.d.ts.map +1 -0
- package/dist/solanaV14Deployments.generated.js +39 -0
- package/dist/solanaV14Deployments.generated.js.map +1 -0
- package/dist/spendLedger.d.ts.map +1 -1
- package/dist/spendLedger.js +1 -3
- package/dist/spendLedger.js.map +1 -1
- package/dist/splitterRoutes.d.ts +11 -4
- package/dist/splitterRoutes.d.ts.map +1 -1
- package/dist/splitterRoutes.generated.d.ts +11 -9
- package/dist/splitterRoutes.generated.d.ts.map +1 -1
- package/dist/splitterRoutes.generated.js +72 -18
- package/dist/splitterRoutes.generated.js.map +1 -1
- package/dist/splitterRoutes.js +7 -5
- package/dist/splitterRoutes.js.map +1 -1
- package/dist/unifiedAgent.d.ts +96 -28
- package/dist/unifiedAgent.d.ts.map +1 -1
- package/dist/unifiedAgent.js +219 -348
- package/dist/unifiedAgent.js.map +1 -1
- package/dist/v14Deployments.generated.d.ts +49 -0
- package/dist/v14Deployments.generated.d.ts.map +1 -0
- package/dist/v14Deployments.generated.js +413 -0
- package/dist/v14Deployments.generated.js.map +1 -0
- package/dist/wallet.d.ts.map +1 -1
- package/dist/wallet.js +2 -2
- package/dist/wallet.js.map +1 -1
- package/package.json +27 -6
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -127
- package/dist/cli.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Agent } from "../agent.js";
|
|
2
|
-
import type { AuthPayload, Facilitator, PayOptions } from "./base.js";
|
|
2
|
+
import type { AuthPayload, AuthRequestContext, Facilitator, PayOptions } from "./base.js";
|
|
3
3
|
/**
|
|
4
4
|
* Native AiFinPay flavor.
|
|
5
5
|
*
|
|
@@ -8,14 +8,13 @@ import type { AuthPayload, Facilitator, PayOptions } from "./base.js";
|
|
|
8
8
|
* `agreement_hash`, `treasury_vault`, `x-nonce` …
|
|
9
9
|
* - Client retries with three headers:
|
|
10
10
|
* x-agent-pubkey, x-nonce, x-signature
|
|
11
|
-
* - Signature: Ed25519 over SHA-256(
|
|
11
|
+
* - Signature: Ed25519 over SHA-256(canonical v2 request binding)
|
|
12
12
|
*/
|
|
13
13
|
export declare class AiFinPayFacilitator implements Facilitator {
|
|
14
14
|
static readonly name = "aifinpay";
|
|
15
15
|
readonly name = "aifinpay";
|
|
16
16
|
static detect(resp: Response): Promise<boolean>;
|
|
17
|
-
buildAuth(resp: Response, agent: Agent, _opts: PayOptions): Promise<AuthPayload>;
|
|
18
|
-
private
|
|
19
|
-
private fetchNonce;
|
|
17
|
+
buildAuth(resp: Response, agent: Agent, _opts: PayOptions, context?: AuthRequestContext): Promise<AuthPayload>;
|
|
18
|
+
private inbandChallenge;
|
|
20
19
|
}
|
|
21
20
|
//# sourceMappingURL=aifinpay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aifinpay.d.ts","sourceRoot":"","sources":["../../src/facilitators/aifinpay.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"aifinpay.d.ts","sourceRoot":"","sources":["../../src/facilitators/aifinpay.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE1F;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACrD,MAAM,CAAC,QAAQ,CAAC,IAAI,cAAc;IAClC,QAAQ,CAAC,IAAI,cAAc;WAEd,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB/C,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;YA6CtG,eAAe;CAkC9B"}
|
|
@@ -9,7 +9,7 @@ import { sha256 } from "../crypto.js";
|
|
|
9
9
|
* `agreement_hash`, `treasury_vault`, `x-nonce` …
|
|
10
10
|
* - Client retries with three headers:
|
|
11
11
|
* x-agent-pubkey, x-nonce, x-signature
|
|
12
|
-
* - Signature: Ed25519 over SHA-256(
|
|
12
|
+
* - Signature: Ed25519 over SHA-256(canonical v2 request binding)
|
|
13
13
|
*/
|
|
14
14
|
export class AiFinPayFacilitator {
|
|
15
15
|
static name = "aifinpay";
|
|
@@ -31,23 +31,46 @@ export class AiFinPayFacilitator {
|
|
|
31
31
|
return true;
|
|
32
32
|
}
|
|
33
33
|
// Fallback fingerprint when an upstream proxy strips `protocol`.
|
|
34
|
-
return (
|
|
35
|
-
("treasury_vault" in b || "program_id" in b));
|
|
34
|
+
return ("agreement_hash" in b || "manifesto" in b) && ("treasury_vault" in b || "program_id" in b);
|
|
36
35
|
}
|
|
37
|
-
async buildAuth(resp, agent, _opts) {
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
async buildAuth(resp, agent, _opts, context) {
|
|
37
|
+
if (!context) {
|
|
38
|
+
throw new Error("AiFinPay native auth v1 is no longer supported. Retry through Agent.pay() so the SDK can bind the challenge to the request.");
|
|
39
|
+
}
|
|
40
|
+
if (context.url.origin !== context.trustedOrigin) {
|
|
41
|
+
throw new Error(`refusing native authentication for untrusted origin ${context.url.origin}; configure Agent.baseUrl for that facilitator explicitly`);
|
|
42
|
+
}
|
|
43
|
+
if (resp.url && new URL(resp.url).origin !== context.trustedOrigin) {
|
|
44
|
+
throw new Error("refusing native authentication after a cross-origin response");
|
|
45
|
+
}
|
|
46
|
+
const challenge = await this.inbandChallenge(resp, context.bodyDigest);
|
|
47
|
+
if (!challenge) {
|
|
48
|
+
throw new Error("AiFinPay native auth v2 requires an in-band request-bound challenge. Retry the original request without credentials.");
|
|
49
|
+
}
|
|
50
|
+
const message = JSON.stringify([
|
|
51
|
+
"AiFinPay-x402",
|
|
52
|
+
"v2",
|
|
53
|
+
challenge.nonce,
|
|
54
|
+
agent.address,
|
|
55
|
+
context.trustedOrigin,
|
|
56
|
+
context.method.toUpperCase(),
|
|
57
|
+
`${context.url.pathname}${context.url.search}`,
|
|
58
|
+
context.bodyDigest,
|
|
59
|
+
challenge.expiresAt,
|
|
60
|
+
]);
|
|
61
|
+
const msg = new TextEncoder().encode(message);
|
|
40
62
|
const digest = await sha256(msg);
|
|
41
63
|
const sig = nacl.sign.detached(digest, agent.secretKey);
|
|
42
64
|
return {
|
|
43
65
|
headers: {
|
|
44
66
|
"x-agent-pubkey": agent.address,
|
|
45
|
-
"x-nonce": nonce,
|
|
67
|
+
"x-nonce": challenge.nonce,
|
|
46
68
|
"x-signature": bs58.encode(sig),
|
|
69
|
+
"x-aifinpay-auth-version": "2",
|
|
47
70
|
},
|
|
48
71
|
};
|
|
49
72
|
}
|
|
50
|
-
async
|
|
73
|
+
async inbandChallenge(resp, expectedBodyDigest) {
|
|
51
74
|
let body;
|
|
52
75
|
try {
|
|
53
76
|
body = await resp.clone().json();
|
|
@@ -58,19 +81,25 @@ export class AiFinPayFacilitator {
|
|
|
58
81
|
if (typeof body !== "object" || body === null)
|
|
59
82
|
return null;
|
|
60
83
|
const b = body;
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
84
|
+
const nonce = b["x-nonce"];
|
|
85
|
+
const expiresAt = b["x-nonce-expires-at"];
|
|
86
|
+
const version = b["x-aifinpay-auth-version"];
|
|
87
|
+
const bodyDigest = b["x-aifinpay-body-sha256"];
|
|
88
|
+
if (typeof nonce !== "string" ||
|
|
89
|
+
!/^[A-Za-z0-9_-]{16,128}$/.test(nonce) ||
|
|
90
|
+
(version !== 2 && version !== "2") ||
|
|
91
|
+
(typeof expiresAt !== "string" && typeof expiresAt !== "number") ||
|
|
92
|
+
!/^[1-9][0-9]{0,15}$/.test(String(expiresAt)) ||
|
|
93
|
+
typeof bodyDigest !== "string" ||
|
|
94
|
+
!/^[0-9a-f]{64}$/.test(bodyDigest) ||
|
|
95
|
+
bodyDigest !== expectedBodyDigest) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
const parsedExpiry = Number(expiresAt);
|
|
99
|
+
const now = Date.now();
|
|
100
|
+
return Number.isSafeInteger(parsedExpiry) && parsedExpiry > now && parsedExpiry <= now + 5 * 60_000
|
|
101
|
+
? { nonce, expiresAt: parsedExpiry, bodyDigest }
|
|
102
|
+
: null;
|
|
74
103
|
}
|
|
75
104
|
}
|
|
76
105
|
//# sourceMappingURL=aifinpay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aifinpay.js","sourceRoot":"","sources":["../../src/facilitators/aifinpay.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC;;;;;;;;;GASG;AACH,MAAM,OAAO,mBAAmB;IAC9B,MAAM,CAAU,IAAI,GAAG,UAAU,CAAC;IACzB,IAAI,GAAG,UAAU,CAAC;IAE3B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAc;QAChC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QACtC,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAC5D,MAAM,CAAC,GAAG,IAA+B,CAAC;QAC1C,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,iEAAiE;QACjE,OAAO,
|
|
1
|
+
{"version":3,"file":"aifinpay.js","sourceRoot":"","sources":["../../src/facilitators/aifinpay.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,17 @@ export interface AuthPayload {
|
|
|
17
17
|
/** Optional method override. */
|
|
18
18
|
method?: string;
|
|
19
19
|
}
|
|
20
|
+
/** Immutable details of the request that received a 402 challenge. */
|
|
21
|
+
export interface AuthRequestContext {
|
|
22
|
+
/** Canonical URL the SDK sent without credentials. */
|
|
23
|
+
url: URL;
|
|
24
|
+
/** Uppercase HTTP method the SDK sent without credentials. */
|
|
25
|
+
method: string;
|
|
26
|
+
/** Origin explicitly configured on the Agent, never inferred from a 402 body. */
|
|
27
|
+
trustedOrigin: string;
|
|
28
|
+
/** SHA-256 of the exact request body bytes sent before the challenge. */
|
|
29
|
+
bodyDigest: string;
|
|
30
|
+
}
|
|
20
31
|
/**
|
|
21
32
|
* A facilitator handles ONE x402 wire format. Implementations are
|
|
22
33
|
* stateless; state (keypair, base URL) lives on the Agent.
|
|
@@ -24,7 +35,7 @@ export interface AuthPayload {
|
|
|
24
35
|
export interface Facilitator {
|
|
25
36
|
readonly name: string;
|
|
26
37
|
/** Build the auth payload to merge into the retry request. */
|
|
27
|
-
buildAuth(response: Response, agent: Agent, options: PayOptions): Promise<AuthPayload>;
|
|
38
|
+
buildAuth(response: Response, agent: Agent, options: PayOptions, context?: AuthRequestContext): Promise<AuthPayload>;
|
|
28
39
|
}
|
|
29
40
|
/** Constructor + static `detect` predicate together. */
|
|
30
41
|
export interface FacilitatorClass {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/facilitators/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,cAAc,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC/D,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,8DAA8D;IAC9D,SAAS,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/facilitators/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,cAAc,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC/D,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,GAAG,EAAE,GAAG,CAAC;IACT,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,8DAA8D;IAC9D,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACtH;AAED,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coinbase.d.ts","sourceRoot":"","sources":["../../src/facilitators/coinbase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"coinbase.d.ts","sourceRoot":"","sources":["../../src/facilitators/coinbase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEtE;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAC1D,eAAO,MAAM,wBAAwB,sBAAsB,CAAC;AAC5D,eAAO,MAAM,uBAAuB,qBAAqB,CAAC;AAE1D,qBAAa,uBAAwB,YAAW,WAAW;IACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,mBAAmB;IACvC,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAKhC,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;CAmBvF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FacilitatorNotImplementedError, PaymentTooExpensiveError, UnsupportedFacilitatorError
|
|
1
|
+
import { FacilitatorNotImplementedError, PaymentTooExpensiveError, UnsupportedFacilitatorError } from "../errors.js";
|
|
2
2
|
/**
|
|
3
3
|
* Coinbase x402 flavor — `PAYMENT-REQUIRED` / `PAYMENT-SIGNATURE` headers.
|
|
4
4
|
*
|
|
@@ -24,8 +24,7 @@ export class CoinbaseX402Facilitator {
|
|
|
24
24
|
if (accepts.length && opts.maxAmountUsd !== undefined) {
|
|
25
25
|
const cheapest = minUsd(accepts);
|
|
26
26
|
if (cheapest !== null && cheapest > opts.maxAmountUsd) {
|
|
27
|
-
throw new PaymentTooExpensiveError(`Coinbase x402 wants $${cheapest.toFixed(4)}, ` +
|
|
28
|
-
`caller cap is $${opts.maxAmountUsd.toFixed(4)}`);
|
|
27
|
+
throw new PaymentTooExpensiveError(`Coinbase x402 wants $${cheapest.toFixed(4)}, ` + `caller cap is $${opts.maxAmountUsd.toFixed(4)}`);
|
|
29
28
|
}
|
|
30
29
|
}
|
|
31
30
|
throw new FacilitatorNotImplementedError("Coinbase x402 detected, but payment execution is not yet wired. " +
|
|
@@ -40,10 +39,7 @@ function decodePaymentRequired(resp) {
|
|
|
40
39
|
}
|
|
41
40
|
let decoded;
|
|
42
41
|
try {
|
|
43
|
-
decoded =
|
|
44
|
-
typeof Buffer !== "undefined"
|
|
45
|
-
? Buffer.from(raw, "base64").toString("utf-8")
|
|
46
|
-
: atob(raw);
|
|
42
|
+
decoded = typeof Buffer !== "undefined" ? Buffer.from(raw, "base64").toString("utf-8") : atob(raw);
|
|
47
43
|
}
|
|
48
44
|
catch (e) {
|
|
49
45
|
throw new UnsupportedFacilitatorError(`${PAYMENT_REQUIRED_HEADER} is not valid base64: ${e.message}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coinbase.js","sourceRoot":"","sources":["../../src/facilitators/coinbase.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"coinbase.js","sourceRoot":"","sources":["../../src/facilitators/coinbase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/facilitators/detect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAI/D;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/facilitators/detect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAI/D;;;;GAIG;AACH,eAAO,MAAM,UAAU,EAAE,gBAAgB,EAA4E,CAAC;AAItH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAE,MAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAsBvG"}
|
|
@@ -7,18 +7,13 @@ import { StandardX402Facilitator } from "./standard-x402.js";
|
|
|
7
7
|
* the historical Coinbase compatibility adapter because HTTP header names are
|
|
8
8
|
* case-insensitive and both may observe PAYMENT-REQUIRED.
|
|
9
9
|
*/
|
|
10
|
-
export const REGISTERED = [
|
|
11
|
-
AiFinPayFacilitator,
|
|
12
|
-
StandardX402Facilitator,
|
|
13
|
-
CoinbaseX402Facilitator,
|
|
14
|
-
];
|
|
10
|
+
export const REGISTERED = [AiFinPayFacilitator, StandardX402Facilitator, CoinbaseX402Facilitator];
|
|
15
11
|
const BY_NAME = new Map(REGISTERED.map((cls) => [cls.name, cls]));
|
|
16
12
|
export async function detectFacilitator(resp, override = "auto") {
|
|
17
13
|
if (override && override !== "auto") {
|
|
18
14
|
const cls = BY_NAME.get(override);
|
|
19
15
|
if (!cls) {
|
|
20
|
-
throw new UnsupportedFacilitatorError(`unknown facilitator override: '${override}'. ` +
|
|
21
|
-
`known: ${[...BY_NAME.keys()].join(", ")}`);
|
|
16
|
+
throw new UnsupportedFacilitatorError(`unknown facilitator override: '${override}'. ` + `known: ${[...BY_NAME.keys()].join(", ")}`);
|
|
22
17
|
}
|
|
23
18
|
return new cls();
|
|
24
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/facilitators/detect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAuB
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/facilitators/detect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAuB,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,uBAAuB,CAAC,CAAC;AAEtH,MAAM,OAAO,GAAG,IAAI,GAAG,CAA2B,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAE5F,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAc,EAAE,WAAmB,MAAM;IAC/E,IAAI,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,2BAA2B,CACnC,kCAAkC,QAAQ,KAAK,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7F,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,2BAA2B,CACnC,oDAAoD;QAClD,WAAW,IAAI,CAAC,MAAM,IAAI;QAC1B,YAAY,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACnD,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard-x402.d.ts","sourceRoot":"","sources":["../../src/facilitators/standard-x402.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"standard-x402.d.ts","sourceRoot":"","sources":["../../src/facilitators/standard-x402.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAsJtE,qBAAa,uBAAwB,YAAW,WAAW;IACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,UAAU;IAC9B,QAAQ,CAAC,IAAI,UAAU;IAEvB,2DAA2D;IAC3D,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;WAInC,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAW/C,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;YAMvE,WAAW;YAgFX,iBAAiB;CAuEhC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PaymentTooExpensiveError, UnsupportedFacilitatorError
|
|
1
|
+
import { PaymentTooExpensiveError, UnsupportedFacilitatorError } from "../errors.js";
|
|
2
2
|
/**
|
|
3
3
|
* Standard x402 Foundation protocol adapter.
|
|
4
4
|
*
|
|
@@ -24,6 +24,21 @@ const LEGACY_CHAIN_IDS = {
|
|
|
24
24
|
avalanche: 43114,
|
|
25
25
|
bsc: 56,
|
|
26
26
|
};
|
|
27
|
+
// Circle-issued USDC, independently pinned by chain and contract. A server's
|
|
28
|
+
// token name or decimals are not evidence of dollar value. Source (2026-09-12):
|
|
29
|
+
// https://developers.circle.com/stablecoins/usdc-contract-addresses
|
|
30
|
+
// Testnet entries are protocol test units, not real dollars.
|
|
31
|
+
const USDC_BY_CHAIN = Object.freeze({
|
|
32
|
+
1: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
33
|
+
10: "0x0b2c639c533813f4aa9d7837caf62653d097ff85",
|
|
34
|
+
137: "0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",
|
|
35
|
+
130: "0x078d782b760474a361dda0af3839290b0ef57ad6",
|
|
36
|
+
8453: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
|
|
37
|
+
42161: "0xaf88d065e77c8cc2239327c5edb3a432268e5831",
|
|
38
|
+
43114: "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e",
|
|
39
|
+
84532: "0x036cbd53842c5426634e7929541ec2318f3dcf7e",
|
|
40
|
+
80002: "0x41e94eb019c0762f9bfcf9fb1e58725bfb0e7582",
|
|
41
|
+
});
|
|
27
42
|
const TRANSFER_WITH_AUTHORIZATION_TYPES = {
|
|
28
43
|
TransferWithAuthorization: [
|
|
29
44
|
{ name: "from", type: "address" },
|
|
@@ -35,21 +50,15 @@ const TRANSFER_WITH_AUTHORIZATION_TYPES = {
|
|
|
35
50
|
],
|
|
36
51
|
};
|
|
37
52
|
function decodeBase64Json(value) {
|
|
38
|
-
const text = typeof Buffer !== "undefined"
|
|
39
|
-
? Buffer.from(value, "base64").toString("utf8")
|
|
40
|
-
: atob(value);
|
|
53
|
+
const text = typeof Buffer !== "undefined" ? Buffer.from(value, "base64").toString("utf8") : atob(value);
|
|
41
54
|
return JSON.parse(text);
|
|
42
55
|
}
|
|
43
56
|
function encodeBase64Json(value) {
|
|
44
57
|
const json = JSON.stringify(value);
|
|
45
|
-
return typeof Buffer !== "undefined"
|
|
46
|
-
? Buffer.from(json, "utf8").toString("base64")
|
|
47
|
-
: btoa(json);
|
|
58
|
+
return typeof Buffer !== "undefined" ? Buffer.from(json, "utf8").toString("base64") : btoa(json);
|
|
48
59
|
}
|
|
49
60
|
function asRecord(value) {
|
|
50
|
-
return value !== null && typeof value === "object" && !Array.isArray(value)
|
|
51
|
-
? value
|
|
52
|
-
: null;
|
|
61
|
+
return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
53
62
|
}
|
|
54
63
|
function readV2Requirement(resp) {
|
|
55
64
|
if (resp.status !== 402)
|
|
@@ -85,10 +94,10 @@ function address(value) {
|
|
|
85
94
|
return value;
|
|
86
95
|
}
|
|
87
96
|
function positiveAtomicAmount(value) {
|
|
88
|
-
if (typeof value !== "string" || !/^[0-9]
|
|
97
|
+
if (typeof value !== "string" || !/^[0-9]{1,78}$/.test(value))
|
|
89
98
|
return null;
|
|
90
99
|
try {
|
|
91
|
-
if (BigInt(value) <= 0n)
|
|
100
|
+
if (BigInt(value) <= 0n || BigInt(value) >= 2n ** 256n)
|
|
92
101
|
return null;
|
|
93
102
|
}
|
|
94
103
|
catch {
|
|
@@ -96,29 +105,32 @@ function positiveAtomicAmount(value) {
|
|
|
96
105
|
}
|
|
97
106
|
return value;
|
|
98
107
|
}
|
|
99
|
-
function enforceUsdCap(value, extra, opts) {
|
|
108
|
+
function enforceUsdCap(value, extra, opts, chainId, asset) {
|
|
100
109
|
if (opts.maxAmountUsd === undefined)
|
|
101
110
|
return;
|
|
102
111
|
if (!Number.isFinite(opts.maxAmountUsd) || opts.maxAmountUsd < 0) {
|
|
103
112
|
throw new PaymentTooExpensiveError("maxAmountUsd must be a finite non-negative number");
|
|
104
113
|
}
|
|
105
|
-
//
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
114
|
+
// USD caps use the independently identified asset's fixed six decimals.
|
|
115
|
+
const name = String(extra.name ?? "")
|
|
116
|
+
.trim()
|
|
117
|
+
.toLowerCase();
|
|
109
118
|
const isUsdc = name === "usdc" || name === "usd coin";
|
|
110
|
-
if (!isUsdc) {
|
|
111
|
-
throw new UnsupportedFacilitatorError("maxAmountUsd cannot be safely enforced for this x402 asset
|
|
119
|
+
if (!isUsdc || USDC_BY_CHAIN[chainId] !== asset.toLowerCase()) {
|
|
120
|
+
throw new UnsupportedFacilitatorError("maxAmountUsd cannot be safely enforced for this x402 asset; a pinned USDC contract on this chain is required");
|
|
112
121
|
}
|
|
113
122
|
const decimalsRaw = extra.decimals ?? 6;
|
|
114
123
|
const decimals = Number(decimalsRaw);
|
|
115
|
-
if (
|
|
116
|
-
throw new UnsupportedFacilitatorError("x402 USDC requirement
|
|
124
|
+
if (decimals !== 6) {
|
|
125
|
+
throw new UnsupportedFacilitatorError("x402 USDC requirement contradicts the pinned 6 token decimals");
|
|
117
126
|
}
|
|
118
|
-
const
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
127
|
+
const [mantissa, exponent = "0"] = opts.maxAmountUsd.toString().split("e");
|
|
128
|
+
const [whole, fraction = ""] = mantissa.split(".");
|
|
129
|
+
const shift = 6 + Number(exponent) - fraction.length;
|
|
130
|
+
const digits = BigInt(whole + fraction);
|
|
131
|
+
const capAtomic = shift >= 0 ? digits * 10n ** BigInt(shift) : digits / 10n ** BigInt(-shift);
|
|
132
|
+
if (BigInt(value) > capAtomic) {
|
|
133
|
+
throw new PaymentTooExpensiveError(`x402 wants ${value} USDC atomic units, caller cap allows ${capAtomic}`);
|
|
122
134
|
}
|
|
123
135
|
}
|
|
124
136
|
export class StandardX402Facilitator {
|
|
@@ -164,7 +176,7 @@ export class StandardX402Facilitator {
|
|
|
164
176
|
throw new UnsupportedFacilitatorError("x402 v2 EVM exact requirement has invalid network, asset, payTo or amount");
|
|
165
177
|
}
|
|
166
178
|
const extra = asRecord(req.extra) ?? {};
|
|
167
|
-
enforceUsdCap(value, extra, opts);
|
|
179
|
+
enforceUsdCap(value, extra, opts, chainId, asset);
|
|
168
180
|
const timeoutRaw = Number(req.maxTimeoutSeconds ?? 60);
|
|
169
181
|
if (!Number.isFinite(timeoutRaw) || timeoutRaw <= 0 || timeoutRaw > 3600) {
|
|
170
182
|
throw new UnsupportedFacilitatorError("x402 v2 maxTimeoutSeconds is invalid or exceeds the 1-hour client safety bound");
|
|
@@ -216,9 +228,7 @@ export class StandardX402Facilitator {
|
|
|
216
228
|
async buildLegacyV1Auth(resp, agent, opts) {
|
|
217
229
|
const body = (await resp.clone().json());
|
|
218
230
|
const accepts = body.accepts ?? [];
|
|
219
|
-
const req = accepts.find((item) => item.scheme === "exact"
|
|
220
|
-
&& typeof item.network === "string"
|
|
221
|
-
&& LEGACY_CHAIN_IDS[item.network] !== undefined);
|
|
231
|
+
const req = accepts.find((item) => item.scheme === "exact" && typeof item.network === "string" && LEGACY_CHAIN_IDS[item.network] !== undefined);
|
|
222
232
|
if (!req) {
|
|
223
233
|
throw new UnsupportedFacilitatorError("legacy x402 detected but no payable EVM `exact` requirement " +
|
|
224
234
|
`(offered: ${accepts.map((a) => `${a.scheme}/${a.network}`).join(", ") || "none"})`);
|
|
@@ -231,7 +241,7 @@ export class StandardX402Facilitator {
|
|
|
231
241
|
throw new UnsupportedFacilitatorError("legacy x402 requirement is missing/invalid asset, payTo or maxAmountRequired");
|
|
232
242
|
}
|
|
233
243
|
const extra = asRecord(req.extra) ?? {};
|
|
234
|
-
enforceUsdCap(value, extra, opts);
|
|
244
|
+
enforceUsdCap(value, extra, opts, LEGACY_CHAIN_IDS[network], asset);
|
|
235
245
|
const timeout = Number(req.maxTimeoutSeconds ?? 600);
|
|
236
246
|
const boundedTimeout = Number.isFinite(timeout) && timeout > 0 ? Math.min(Math.floor(timeout), 3600) : 600;
|
|
237
247
|
const now = Math.floor(Date.now() / 1000);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard-x402.js","sourceRoot":"","sources":["../../src/facilitators/standard-x402.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standard-x402.js","sourceRoot":"","sources":["../../src/facilitators/standard-x402.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SdkEnvironment } from "../deploymentResolver.js";
|
|
2
|
+
export type SolanaNetwork = "devnet" | "mainnet";
|
|
3
|
+
export interface SolanaV14Deployment {
|
|
4
|
+
network: SolanaNetwork;
|
|
5
|
+
environment: SdkEnvironment;
|
|
6
|
+
splitterVersion: "1.4";
|
|
7
|
+
status: "enabled" | "disabled" | "invalid" | "retired";
|
|
8
|
+
settlementEnabled: boolean;
|
|
9
|
+
disabledReason?: string;
|
|
10
|
+
programId: string;
|
|
11
|
+
idl: {
|
|
12
|
+
name: string;
|
|
13
|
+
version: string;
|
|
14
|
+
artifact: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export declare const SOLANA_V14_DEPLOYMENTS_SOURCE: {
|
|
18
|
+
readonly repo: "AiFinPay/solana-contract";
|
|
19
|
+
readonly commit: "e5df8f5436cf646ab495381eee04e0d1a10b4e2f";
|
|
20
|
+
readonly path: "deployments/splitter_v14/";
|
|
21
|
+
readonly branch: "dev";
|
|
22
|
+
};
|
|
23
|
+
export declare const SOLANA_V14_DEPLOYMENTS: Record<string, SolanaV14Deployment>;
|
|
24
|
+
export declare const SOLANA_DEV_NETWORKS: readonly ["devnet"];
|
|
25
|
+
//# sourceMappingURL=solanaV14Deployments.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solanaV14Deployments.generated.d.ts","sourceRoot":"","sources":["../../src/generated/solanaV14Deployments.generated.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,cAAc,CAAC;IAC5B,eAAe,EAAE,KAAK,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IACvD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAED,eAAO,MAAM,6BAA6B;;;;;CAKhC,CAAC;AAEX,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CA6BtE,CAAC;AAEF,eAAO,MAAM,mBAAmB,qBAAsB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// DO NOT EDIT. Generated by scripts/generate-payment-deployments.mjs from @aifinpay/deployments.
|
|
2
|
+
export const SOLANA_V14_DEPLOYMENTS_SOURCE = {
|
|
3
|
+
"repo": "AiFinPay/solana-contract",
|
|
4
|
+
"commit": "e5df8f5436cf646ab495381eee04e0d1a10b4e2f",
|
|
5
|
+
"path": "deployments/splitter_v14/",
|
|
6
|
+
"branch": "dev"
|
|
7
|
+
};
|
|
8
|
+
export const SOLANA_V14_DEPLOYMENTS = {
|
|
9
|
+
"devnet": {
|
|
10
|
+
"network": "devnet",
|
|
11
|
+
"environment": "dev",
|
|
12
|
+
"splitterVersion": "1.4",
|
|
13
|
+
"status": "disabled",
|
|
14
|
+
"settlementEnabled": false,
|
|
15
|
+
"disabledReason": "Backend Solana receipt verification is not implemented",
|
|
16
|
+
"programId": "8dty5bD738Z9TzEkDu8vLSnhpJNWtEGMUEcYaKCUTY6y",
|
|
17
|
+
"idl": {
|
|
18
|
+
"name": "splitter",
|
|
19
|
+
"version": "1.4.1",
|
|
20
|
+
"artifact": "deployments/splitter_v14/splitter.devnet.json"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"mainnet": {
|
|
24
|
+
"network": "mainnet",
|
|
25
|
+
"environment": "prod",
|
|
26
|
+
"splitterVersion": "1.4",
|
|
27
|
+
"status": "disabled",
|
|
28
|
+
"settlementEnabled": false,
|
|
29
|
+
"disabledReason": "Backend Solana receipt verification is not implemented and upgrade authority is not multisig",
|
|
30
|
+
"programId": "724Ut31i4ecY4dJ25z8HuZetu3A43xtNkPdk4JdbsfdD",
|
|
31
|
+
"idl": {
|
|
32
|
+
"name": "splitter",
|
|
33
|
+
"version": "1.4.1",
|
|
34
|
+
"artifact": "deployments/splitter_v14/splitter.mainnet.json"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
export const SOLANA_DEV_NETWORKS = ["devnet"];
|
|
39
|
+
//# sourceMappingURL=solanaV14Deployments.generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solanaV14Deployments.generated.js","sourceRoot":"","sources":["../../src/generated/solanaV14Deployments.generated.ts"],"names":[],"mappings":"AAAA,iGAAiG;AAiBjG,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,MAAM,EAAE,0BAA0B;IAClC,QAAQ,EAAE,0CAA0C;IACpD,MAAM,EAAE,2BAA2B;IACnC,QAAQ,EAAE,KAAK;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,sBAAsB,GAAwC;IACzE,QAAQ,EAAE;QACR,SAAS,EAAE,QAAQ;QACnB,aAAa,EAAE,KAAK;QACpB,iBAAiB,EAAE,KAAK;QACxB,QAAQ,EAAE,UAAU;QACpB,mBAAmB,EAAE,KAAK;QAC1B,gBAAgB,EAAE,wDAAwD;QAC1E,WAAW,EAAE,8CAA8C;QAC3D,KAAK,EAAE;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,OAAO;YAClB,UAAU,EAAE,+CAA+C;SAC5D;KACF;IACD,SAAS,EAAE;QACT,SAAS,EAAE,SAAS;QACpB,aAAa,EAAE,MAAM;QACrB,iBAAiB,EAAE,KAAK;QACxB,QAAQ,EAAE,UAAU;QACpB,mBAAmB,EAAE,KAAK;QAC1B,gBAAgB,EAAE,8FAA8F;QAChH,WAAW,EAAE,8CAA8C;QAC3D,KAAK,EAAE;YACL,MAAM,EAAE,UAAU;YAClB,SAAS,EAAE,OAAO;YAClB,UAAU,EAAE,gDAAgD;SAC7D;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAU,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SplitterRouteDeployment, SplitterRouteKey } from "../splitterRoutes.js";
|
|
2
|
+
/** Where this table came from, so a deployed build can be traced to its source. */
|
|
3
|
+
export declare const SPLITTER_REGISTRY_SOURCE: {
|
|
4
|
+
readonly package: "@aifinpay/deployments";
|
|
5
|
+
readonly path: "registry/splitter/evm/v1.3/deployments.json";
|
|
6
|
+
readonly version: "1.3";
|
|
7
|
+
readonly description: "B2BSplitter v1.3 — Protocol routes with immutable fee splits";
|
|
8
|
+
readonly generatedAt: "2026-08-30";
|
|
9
|
+
readonly policyWindow: {
|
|
10
|
+
readonly validFrom: "2026-08-27T00:00:00.000Z";
|
|
11
|
+
readonly validUntil: "2026-11-25T00:00:00.000Z";
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The governance Safe that owns every splitter below, and the exact signer
|
|
16
|
+
* shape it was verified under. Read from the source registry.
|
|
17
|
+
*/
|
|
18
|
+
export declare const SPLITTER_GOVERNANCE: {
|
|
19
|
+
readonly safe: "0xFd936f75D9221949f2FEaB54Cd342F7527154eD5";
|
|
20
|
+
readonly threshold: 3;
|
|
21
|
+
readonly owners: readonly ["0x2118c57dEBD53f614DDfE464Ff2941BE6646cA82", "0x3C31dd9daCeC5473cC9B660CD69247A20701cF19", "0x25A834b6fEC79e9ee6ED04Ef5b97440149C6Cc24", "0x1D5eF769A024B3157c76884fbd10302d8d83fAB9", "0x849930eB20ED0a697c71BcE565f18702D202C0F8"];
|
|
22
|
+
};
|
|
23
|
+
export declare const SPLITTER_ROUTES: Record<SplitterRouteKey, SplitterRouteDeployment>;
|
|
24
|
+
//# sourceMappingURL=splitterRoutes.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"splitterRoutes.generated.d.ts","sourceRoot":"","sources":["../../src/generated/splitterRoutes.generated.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEtF,mFAAmF;AACnF,eAAO,MAAM,wBAAwB;;;;;;;;;;CAO3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;CAUtB,CAAC;AAEX,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,gBAAgB,EAAE,uBAAuB,CAqa7E,CAAC"}
|