open-agentpay 0.1.0 → 0.2.5
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 +201 -0
- package/README.md +125 -4
- package/dist/client/client.d.ts +37 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +90 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/errors.d.ts +23 -0
- package/dist/client/errors.d.ts.map +1 -0
- package/dist/client/errors.js +38 -0
- package/dist/client/errors.js.map +1 -0
- package/dist/client/index.d.ts +6 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +6 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/interfaces.d.ts +34 -0
- package/dist/client/interfaces.d.ts.map +1 -0
- package/dist/client/interfaces.js +5 -0
- package/dist/client/interfaces.js.map +1 -0
- package/dist/client/signer.d.ts +136 -0
- package/dist/client/signer.d.ts.map +1 -0
- package/dist/client/signer.js +300 -0
- package/dist/client/signer.js.map +1 -0
- package/dist/client/transport.d.ts +44 -0
- package/dist/client/transport.d.ts.map +1 -0
- package/dist/client/transport.js +389 -0
- package/dist/client/transport.js.map +1 -0
- package/dist/core/codecs.d.ts +35 -0
- package/dist/core/codecs.d.ts.map +1 -0
- package/dist/core/codecs.js +177 -0
- package/dist/core/codecs.js.map +1 -0
- package/dist/core/errors.d.ts +33 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +48 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/interop.d.ts +10 -0
- package/dist/core/interop.d.ts.map +1 -0
- package/dist/core/interop.js +28 -0
- package/dist/core/interop.js.map +1 -0
- package/dist/core/models.d.ts +155 -0
- package/dist/core/models.d.ts.map +1 -0
- package/dist/core/models.js +463 -0
- package/dist/core/models.js.map +1 -0
- package/dist/core/state.d.ts +82 -0
- package/dist/core/state.d.ts.map +1 -0
- package/dist/core/state.js +87 -0
- package/dist/core/state.js.map +1 -0
- package/dist/evm/constants.d.ts +52 -0
- package/dist/evm/constants.d.ts.map +1 -0
- package/dist/evm/constants.js +72 -0
- package/dist/evm/constants.js.map +1 -0
- package/dist/evm/eip3009.d.ts +43 -0
- package/dist/evm/eip3009.d.ts.map +1 -0
- package/dist/evm/eip3009.js +145 -0
- package/dist/evm/eip3009.js.map +1 -0
- package/dist/evm/index.d.ts +3 -0
- package/dist/evm/index.d.ts.map +1 -0
- package/dist/evm/index.js +3 -0
- package/dist/evm/index.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/index.d.ts +4 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +4 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/langchain.d.ts +40 -0
- package/dist/integrations/langchain.d.ts.map +1 -0
- package/dist/integrations/langchain.js +68 -0
- package/dist/integrations/langchain.js.map +1 -0
- package/dist/integrations/mcp.d.ts +29 -0
- package/dist/integrations/mcp.d.ts.map +1 -0
- package/dist/integrations/mcp.js +73 -0
- package/dist/integrations/mcp.js.map +1 -0
- package/dist/integrations/vercel-ai.d.ts +31 -0
- package/dist/integrations/vercel-ai.d.ts.map +1 -0
- package/dist/integrations/vercel-ai.js +50 -0
- package/dist/integrations/vercel-ai.js.map +1 -0
- package/dist/policy/db.d.ts +14 -0
- package/dist/policy/db.d.ts.map +1 -0
- package/dist/policy/db.js +86 -0
- package/dist/policy/db.js.map +1 -0
- package/dist/policy/errors.d.ts +31 -0
- package/dist/policy/errors.d.ts.map +1 -0
- package/dist/policy/errors.js +48 -0
- package/dist/policy/errors.js.map +1 -0
- package/dist/policy/evaluator.d.ts +22 -0
- package/dist/policy/evaluator.d.ts.map +1 -0
- package/dist/policy/evaluator.js +152 -0
- package/dist/policy/evaluator.js.map +1 -0
- package/dist/policy/index.d.ts +7 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +7 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/interfaces.d.ts +59 -0
- package/dist/policy/interfaces.d.ts.map +1 -0
- package/dist/policy/interfaces.js +7 -0
- package/dist/policy/interfaces.js.map +1 -0
- package/dist/policy/models.d.ts +161 -0
- package/dist/policy/models.d.ts.map +1 -0
- package/dist/policy/models.js +449 -0
- package/dist/policy/models.js.map +1 -0
- package/dist/policy/sqlite-engine.d.ts +28 -0
- package/dist/policy/sqlite-engine.d.ts.map +1 -0
- package/dist/policy/sqlite-engine.js +501 -0
- package/dist/policy/sqlite-engine.js.map +1 -0
- package/dist/state/buyer-coordinator.d.ts +33 -0
- package/dist/state/buyer-coordinator.d.ts.map +1 -0
- package/dist/state/buyer-coordinator.js +363 -0
- package/dist/state/buyer-coordinator.js.map +1 -0
- package/dist/state/errors.d.ts +45 -0
- package/dist/state/errors.d.ts.map +1 -0
- package/dist/state/errors.js +88 -0
- package/dist/state/errors.js.map +1 -0
- package/dist/state/guards.d.ts +24 -0
- package/dist/state/guards.d.ts.map +1 -0
- package/dist/state/guards.js +211 -0
- package/dist/state/guards.js.map +1 -0
- package/dist/state/index.d.ts +5 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +5 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/reconciliation.d.ts +105 -0
- package/dist/state/reconciliation.d.ts.map +1 -0
- package/dist/state/reconciliation.js +297 -0
- package/dist/state/reconciliation.js.map +1 -0
- package/package.json +98 -12
- package/index.d.ts +0 -2
- package/index.js +0 -8
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Multi-Dimensional State Enums and Entity Models for AgentPay.
|
|
3
|
+
*
|
|
4
|
+
* Defines the four orthogonal state objects adhering to specs/payment-state-machine-v2.md:
|
|
5
|
+
* 1. PaymentIntentState (Buyer request lifecycle)
|
|
6
|
+
* 2. SettlementState (Blockchain / clearing funds transfer)
|
|
7
|
+
* 3. FulfillmentState (Upstream API / resource payload delivery)
|
|
8
|
+
* 4. BudgetLedgerState (Buyer firewall local quota reservation)
|
|
9
|
+
*/
|
|
10
|
+
export var PaymentIntentState;
|
|
11
|
+
(function (PaymentIntentState) {
|
|
12
|
+
PaymentIntentState["CREATED"] = "CREATED";
|
|
13
|
+
PaymentIntentState["AUTHORIZED"] = "AUTHORIZED";
|
|
14
|
+
PaymentIntentState["PROCESSING"] = "PROCESSING";
|
|
15
|
+
PaymentIntentState["SIGNATURE_SENT"] = "SIGNATURE_SENT";
|
|
16
|
+
PaymentIntentState["COMPLETED"] = "COMPLETED";
|
|
17
|
+
PaymentIntentState["SUCCEEDED"] = "SUCCEEDED";
|
|
18
|
+
PaymentIntentState["REJECTED"] = "REJECTED";
|
|
19
|
+
PaymentIntentState["EXPIRED"] = "EXPIRED";
|
|
20
|
+
PaymentIntentState["CANCELLED"] = "CANCELLED";
|
|
21
|
+
PaymentIntentState["RECOVERY_HOLD"] = "RECOVERY_HOLD";
|
|
22
|
+
})(PaymentIntentState || (PaymentIntentState = {}));
|
|
23
|
+
export var SettlementState;
|
|
24
|
+
(function (SettlementState) {
|
|
25
|
+
SettlementState["NOT_STARTED"] = "NOT_STARTED";
|
|
26
|
+
SettlementState["NOT_SUBMITTED"] = "NOT_SUBMITTED";
|
|
27
|
+
SettlementState["SUBMITTED"] = "SUBMITTED";
|
|
28
|
+
SettlementState["PENDING"] = "PENDING";
|
|
29
|
+
SettlementState["CONFIRMED"] = "CONFIRMED";
|
|
30
|
+
SettlementState["SUCCESS"] = "SUCCESS";
|
|
31
|
+
SettlementState["FAILED"] = "FAILED";
|
|
32
|
+
SettlementState["REORGED"] = "REORGED";
|
|
33
|
+
SettlementState["UNKNOWN"] = "UNKNOWN";
|
|
34
|
+
})(SettlementState || (SettlementState = {}));
|
|
35
|
+
export var FulfillmentState;
|
|
36
|
+
(function (FulfillmentState) {
|
|
37
|
+
FulfillmentState["NOT_STARTED"] = "NOT_STARTED";
|
|
38
|
+
FulfillmentState["NOT_DELIVERED"] = "NOT_DELIVERED";
|
|
39
|
+
FulfillmentState["PROCESSING"] = "PROCESSING";
|
|
40
|
+
FulfillmentState["DELIVERING"] = "DELIVERING";
|
|
41
|
+
FulfillmentState["DELIVERED"] = "DELIVERED";
|
|
42
|
+
FulfillmentState["FAILED"] = "FAILED";
|
|
43
|
+
FulfillmentState["RECOVERY_REQUIRED"] = "RECOVERY_REQUIRED";
|
|
44
|
+
})(FulfillmentState || (FulfillmentState = {}));
|
|
45
|
+
export var BudgetLedgerState;
|
|
46
|
+
(function (BudgetLedgerState) {
|
|
47
|
+
BudgetLedgerState["RESERVED"] = "RESERVED";
|
|
48
|
+
BudgetLedgerState["COMMITTED"] = "COMMITTED";
|
|
49
|
+
BudgetLedgerState["RELEASED"] = "RELEASED";
|
|
50
|
+
})(BudgetLedgerState || (BudgetLedgerState = {}));
|
|
51
|
+
export class BuyerIntentRecord {
|
|
52
|
+
intentId;
|
|
53
|
+
policyId;
|
|
54
|
+
idempotencyKey;
|
|
55
|
+
payerAddress;
|
|
56
|
+
payeeAddress;
|
|
57
|
+
assetAddress;
|
|
58
|
+
networkId;
|
|
59
|
+
amountBaseUnits;
|
|
60
|
+
status;
|
|
61
|
+
nonce;
|
|
62
|
+
validAfter;
|
|
63
|
+
validBefore;
|
|
64
|
+
rawSignature;
|
|
65
|
+
createdAt;
|
|
66
|
+
updatedAt;
|
|
67
|
+
constructor(data) {
|
|
68
|
+
this.intentId = data.intentId;
|
|
69
|
+
this.policyId = data.policyId;
|
|
70
|
+
this.idempotencyKey = data.idempotencyKey;
|
|
71
|
+
this.payerAddress = data.payerAddress.toLowerCase();
|
|
72
|
+
this.payeeAddress = data.payeeAddress.toLowerCase();
|
|
73
|
+
this.assetAddress = data.assetAddress.toLowerCase();
|
|
74
|
+
this.networkId = data.networkId;
|
|
75
|
+
this.amountBaseUnits =
|
|
76
|
+
typeof data.amountBaseUnits === 'bigint' ? data.amountBaseUnits : BigInt(data.amountBaseUnits);
|
|
77
|
+
this.status = data.status ?? PaymentIntentState.CREATED;
|
|
78
|
+
this.nonce = data.nonce ?? null;
|
|
79
|
+
this.validAfter = data.validAfter ?? null;
|
|
80
|
+
this.validBefore = data.validBefore ?? null;
|
|
81
|
+
this.rawSignature = data.rawSignature ?? null;
|
|
82
|
+
this.createdAt = data.createdAt ?? 0;
|
|
83
|
+
this.updatedAt = data.updatedAt ?? 0;
|
|
84
|
+
Object.freeze(this);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Arbitrum Sepolia Testnet & EIP-3009 Constants for AgentPay.
|
|
3
|
+
*
|
|
4
|
+
* Authoritative reference for:
|
|
5
|
+
* - Arbitrum Sepolia Testnet (Chain ID 421614, CAIP-2: eip155:421614)
|
|
6
|
+
* - Native Circle FiatTokenV2_2 USDC contract
|
|
7
|
+
* - Function selectors and EIP-712 / EIP-3009 constants
|
|
8
|
+
*/
|
|
9
|
+
export declare const ARBITRUM_SEPOLIA_CHAIN_ID = 421614;
|
|
10
|
+
export declare const ARBITRUM_SEPOLIA_CAIP2 = "eip155:421614";
|
|
11
|
+
export declare const ARBITRUM_SEPOLIA_RPC_URL = "https://sepolia-rollup.arbitrum.io/rpc";
|
|
12
|
+
export declare const ARBITRUM_SEPOLIA_EXPLORER_URL = "https://sepolia.arbiscan.io";
|
|
13
|
+
export declare const ARBITRUM_SEPOLIA_USDC_ADDRESS = "0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d";
|
|
14
|
+
export declare const ARBITRUM_SEPOLIA_USDC_SYMBOL = "USDC";
|
|
15
|
+
export declare const ARBITRUM_SEPOLIA_USDC_DECIMALS = 6;
|
|
16
|
+
export declare const ARBITRUM_SEPOLIA_USDC_NAME = "USD Coin";
|
|
17
|
+
export declare const ARBITRUM_SEPOLIA_USDC_VERSION = "2";
|
|
18
|
+
export declare const TRANSFER_WITH_AUTHORIZATION_SELECTOR: Uint8Array<ArrayBuffer>;
|
|
19
|
+
export declare const RECEIVE_WITH_AUTHORIZATION_SELECTOR: Uint8Array<ArrayBuffer>;
|
|
20
|
+
export declare const CANCEL_AUTHORIZATION_SELECTOR: Uint8Array<ArrayBuffer>;
|
|
21
|
+
export declare const AUTHORIZATION_STATE_SELECTOR: Uint8Array<ArrayBuffer>;
|
|
22
|
+
export declare const BALANCE_OF_SELECTOR: Uint8Array<ArrayBuffer>;
|
|
23
|
+
export declare const DOMAIN_SEPARATOR_SELECTOR: Uint8Array<ArrayBuffer>;
|
|
24
|
+
export interface NetworkSpecInput {
|
|
25
|
+
name: string;
|
|
26
|
+
chainId: number;
|
|
27
|
+
caip2: string;
|
|
28
|
+
rpcUrl: string;
|
|
29
|
+
explorerUrl: string;
|
|
30
|
+
defaultAssetAddress: string;
|
|
31
|
+
defaultAssetSymbol?: string;
|
|
32
|
+
defaultAssetDecimals?: number;
|
|
33
|
+
tokenName?: string;
|
|
34
|
+
tokenVersion?: string;
|
|
35
|
+
}
|
|
36
|
+
export declare class NetworkSpec {
|
|
37
|
+
readonly name: string;
|
|
38
|
+
readonly chainId: number;
|
|
39
|
+
readonly caip2: string;
|
|
40
|
+
readonly rpcUrl: string;
|
|
41
|
+
readonly explorerUrl: string;
|
|
42
|
+
readonly defaultAssetAddress: `0x${string}`;
|
|
43
|
+
readonly defaultAssetSymbol: string;
|
|
44
|
+
readonly defaultAssetDecimals: number;
|
|
45
|
+
readonly tokenName: string;
|
|
46
|
+
readonly tokenVersion: string;
|
|
47
|
+
constructor(input: NetworkSpecInput);
|
|
48
|
+
}
|
|
49
|
+
export declare const ARBITRUM_SEPOLIA: NetworkSpec;
|
|
50
|
+
export declare const KNOWN_NETWORKS: Readonly<Record<string, NetworkSpec>>;
|
|
51
|
+
export declare function getNetworkSpec(networkOrChainId: string | number): NetworkSpec | undefined;
|
|
52
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/evm/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAChD,eAAO,MAAM,sBAAsB,kBAAkB,CAAC;AACtD,eAAO,MAAM,wBAAwB,2CAA2C,CAAC;AACjF,eAAO,MAAM,6BAA6B,gCAAgC,CAAC;AAE3E,eAAO,MAAM,6BAA6B,+CAA+C,CAAC;AAC1F,eAAO,MAAM,4BAA4B,SAAS,CAAC;AACnD,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,0BAA0B,aAAa,CAAC;AACrD,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAGjD,eAAO,MAAM,oCAAoC,yBAA2C,CAAC;AAC7F,eAAO,MAAM,mCAAmC,yBAA2C,CAAC;AAC5F,eAAO,MAAM,6BAA6B,yBAA2C,CAAC;AACtF,eAAO,MAAM,4BAA4B,yBAA2C,CAAC;AACrF,eAAO,MAAM,mBAAmB,yBAA2C,CAAC;AAC5E,eAAO,MAAM,yBAAyB,yBAA2C,CAAC;AAElF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,WAAW;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,KAAK,EAAE,gBAAgB;CAapC;AAED,eAAO,MAAM,gBAAgB,aAW3B,CAAC;AAEH,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAK/D,CAAC;AAEH,wBAAgB,cAAc,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAGzF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Arbitrum Sepolia Testnet & EIP-3009 Constants for AgentPay.
|
|
3
|
+
*
|
|
4
|
+
* Authoritative reference for:
|
|
5
|
+
* - Arbitrum Sepolia Testnet (Chain ID 421614, CAIP-2: eip155:421614)
|
|
6
|
+
* - Native Circle FiatTokenV2_2 USDC contract
|
|
7
|
+
* - Function selectors and EIP-712 / EIP-3009 constants
|
|
8
|
+
*/
|
|
9
|
+
export const ARBITRUM_SEPOLIA_CHAIN_ID = 421614;
|
|
10
|
+
export const ARBITRUM_SEPOLIA_CAIP2 = 'eip155:421614';
|
|
11
|
+
export const ARBITRUM_SEPOLIA_RPC_URL = 'https://sepolia-rollup.arbitrum.io/rpc';
|
|
12
|
+
export const ARBITRUM_SEPOLIA_EXPLORER_URL = 'https://sepolia.arbiscan.io';
|
|
13
|
+
export const ARBITRUM_SEPOLIA_USDC_ADDRESS = '0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d';
|
|
14
|
+
export const ARBITRUM_SEPOLIA_USDC_SYMBOL = 'USDC';
|
|
15
|
+
export const ARBITRUM_SEPOLIA_USDC_DECIMALS = 6;
|
|
16
|
+
export const ARBITRUM_SEPOLIA_USDC_NAME = 'USD Coin';
|
|
17
|
+
export const ARBITRUM_SEPOLIA_USDC_VERSION = '2';
|
|
18
|
+
// EIP-3009 4-byte Function Selectors
|
|
19
|
+
export const TRANSFER_WITH_AUTHORIZATION_SELECTOR = new Uint8Array([0xe3, 0xee, 0x16, 0x0e]);
|
|
20
|
+
export const RECEIVE_WITH_AUTHORIZATION_SELECTOR = new Uint8Array([0xef, 0x55, 0xde, 0xc6]);
|
|
21
|
+
export const CANCEL_AUTHORIZATION_SELECTOR = new Uint8Array([0x5b, 0x34, 0xb9, 0x66]);
|
|
22
|
+
export const AUTHORIZATION_STATE_SELECTOR = new Uint8Array([0xe9, 0x4a, 0x01, 0x02]);
|
|
23
|
+
export const BALANCE_OF_SELECTOR = new Uint8Array([0x70, 0xa0, 0x82, 0x31]);
|
|
24
|
+
export const DOMAIN_SEPARATOR_SELECTOR = new Uint8Array([0x36, 0x44, 0xe5, 0x15]);
|
|
25
|
+
export class NetworkSpec {
|
|
26
|
+
name;
|
|
27
|
+
chainId;
|
|
28
|
+
caip2;
|
|
29
|
+
rpcUrl;
|
|
30
|
+
explorerUrl;
|
|
31
|
+
defaultAssetAddress;
|
|
32
|
+
defaultAssetSymbol;
|
|
33
|
+
defaultAssetDecimals;
|
|
34
|
+
tokenName;
|
|
35
|
+
tokenVersion;
|
|
36
|
+
constructor(input) {
|
|
37
|
+
this.name = input.name;
|
|
38
|
+
this.chainId = input.chainId;
|
|
39
|
+
this.caip2 = input.caip2;
|
|
40
|
+
this.rpcUrl = input.rpcUrl;
|
|
41
|
+
this.explorerUrl = input.explorerUrl;
|
|
42
|
+
this.defaultAssetAddress = input.defaultAssetAddress.toLowerCase();
|
|
43
|
+
this.defaultAssetSymbol = input.defaultAssetSymbol ?? 'USDC';
|
|
44
|
+
this.defaultAssetDecimals = input.defaultAssetDecimals ?? 6;
|
|
45
|
+
this.tokenName = input.tokenName ?? 'USD Coin';
|
|
46
|
+
this.tokenVersion = input.tokenVersion ?? '2';
|
|
47
|
+
Object.freeze(this);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export const ARBITRUM_SEPOLIA = new NetworkSpec({
|
|
51
|
+
name: 'arbitrum-sepolia',
|
|
52
|
+
chainId: ARBITRUM_SEPOLIA_CHAIN_ID,
|
|
53
|
+
caip2: ARBITRUM_SEPOLIA_CAIP2,
|
|
54
|
+
rpcUrl: ARBITRUM_SEPOLIA_RPC_URL,
|
|
55
|
+
explorerUrl: ARBITRUM_SEPOLIA_EXPLORER_URL,
|
|
56
|
+
defaultAssetAddress: ARBITRUM_SEPOLIA_USDC_ADDRESS,
|
|
57
|
+
defaultAssetSymbol: ARBITRUM_SEPOLIA_USDC_SYMBOL,
|
|
58
|
+
defaultAssetDecimals: ARBITRUM_SEPOLIA_USDC_DECIMALS,
|
|
59
|
+
tokenName: ARBITRUM_SEPOLIA_USDC_NAME,
|
|
60
|
+
tokenVersion: ARBITRUM_SEPOLIA_USDC_VERSION,
|
|
61
|
+
});
|
|
62
|
+
export const KNOWN_NETWORKS = Object.freeze({
|
|
63
|
+
[ARBITRUM_SEPOLIA_CAIP2]: ARBITRUM_SEPOLIA,
|
|
64
|
+
[String(ARBITRUM_SEPOLIA_CHAIN_ID)]: ARBITRUM_SEPOLIA,
|
|
65
|
+
'arbitrum-sepolia': ARBITRUM_SEPOLIA,
|
|
66
|
+
'arb-sepolia': ARBITRUM_SEPOLIA,
|
|
67
|
+
});
|
|
68
|
+
export function getNetworkSpec(networkOrChainId) {
|
|
69
|
+
const key = String(networkOrChainId).trim().toLowerCase();
|
|
70
|
+
return KNOWN_NETWORKS[key];
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/evm/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EIP-3009 ABI Encoding and Decoding Utilities for AgentPay.
|
|
3
|
+
*
|
|
4
|
+
* Implements calldata builders and result decoders for FiatTokenV2_2 / EIP-3009:
|
|
5
|
+
* - transferWithAuthorization
|
|
6
|
+
* - authorizationState
|
|
7
|
+
* - balanceOf
|
|
8
|
+
*/
|
|
9
|
+
import { type PaymentAuthorization } from '../core/models.js';
|
|
10
|
+
export interface TransferWithAuthorizationParams {
|
|
11
|
+
from: string;
|
|
12
|
+
to: string;
|
|
13
|
+
value: bigint | number;
|
|
14
|
+
validAfter: bigint | number;
|
|
15
|
+
validBefore: bigint | number;
|
|
16
|
+
nonce: string | Uint8Array;
|
|
17
|
+
v: number;
|
|
18
|
+
r: string | Uint8Array;
|
|
19
|
+
s: string | Uint8Array;
|
|
20
|
+
}
|
|
21
|
+
export interface DecodedTransferWithAuthorization {
|
|
22
|
+
from: `0x${string}`;
|
|
23
|
+
to: `0x${string}`;
|
|
24
|
+
value: bigint;
|
|
25
|
+
validAfter: bigint;
|
|
26
|
+
validBefore: bigint;
|
|
27
|
+
nonce: `0x${string}`;
|
|
28
|
+
v: number;
|
|
29
|
+
r: `0x${string}`;
|
|
30
|
+
s: `0x${string}`;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Encode calldata for ERC-3009 transferWithAuthorization.
|
|
34
|
+
* Selector: 0xe3ee160e (4 bytes) + 9 * 32 bytes = 292 bytes total.
|
|
35
|
+
*/
|
|
36
|
+
export declare function encodeTransferWithAuthorization(params: TransferWithAuthorizationParams): Uint8Array;
|
|
37
|
+
export declare function encodeTransferFromAuthorization(authorization: PaymentAuthorization, toAddress: string, value: bigint | number): Uint8Array;
|
|
38
|
+
export declare function decodeTransferWithAuthorization(calldata: Uint8Array | string): DecodedTransferWithAuthorization;
|
|
39
|
+
export declare function encodeAuthorizationState(authorizer: string, nonce: string | Uint8Array): Uint8Array;
|
|
40
|
+
export declare function decodeAuthorizationStateResult(data: Uint8Array | string): boolean;
|
|
41
|
+
export declare function encodeBalanceOf(account: string): Uint8Array;
|
|
42
|
+
export declare function decodeBalanceOfResult(data: Uint8Array | string): bigint;
|
|
43
|
+
//# sourceMappingURL=eip3009.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip3009.d.ts","sourceRoot":"","sources":["../../src/evm/eip3009.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,oBAAoB,EAAiB,MAAM,mBAAmB,CAAC;AA4D7E,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IACvB,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;IACpB,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,+BAA+B,GACtC,UAAU,CAaZ;AAED,wBAAgB,+BAA+B,CAC7C,aAAa,EAAE,oBAAoB,EACnC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,MAAM,GACrB,UAAU,CAeZ;AAED,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,UAAU,GAAG,MAAM,GAC5B,gCAAgC,CA2BlC;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAMnG;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAOjF;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAE3D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAOvE"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EIP-3009 ABI Encoding and Decoding Utilities for AgentPay.
|
|
3
|
+
*
|
|
4
|
+
* Implements calldata builders and result decoders for FiatTokenV2_2 / EIP-3009:
|
|
5
|
+
* - transferWithAuthorization
|
|
6
|
+
* - authorizationState
|
|
7
|
+
* - balanceOf
|
|
8
|
+
*/
|
|
9
|
+
import { SignatureData } from '../core/models.js';
|
|
10
|
+
import { AUTHORIZATION_STATE_SELECTOR, BALANCE_OF_SELECTOR, TRANSFER_WITH_AUTHORIZATION_SELECTOR, } from './constants.js';
|
|
11
|
+
function hexToBytes32(val) {
|
|
12
|
+
if (val instanceof Uint8Array) {
|
|
13
|
+
if (val.byteLength !== 32) {
|
|
14
|
+
throw new Error(`Expected 32 bytes, got ${val.byteLength}`);
|
|
15
|
+
}
|
|
16
|
+
return new Uint8Array(val);
|
|
17
|
+
}
|
|
18
|
+
const clean = val.startsWith('0x') ? val.slice(2) : val;
|
|
19
|
+
if (clean.length > 64 || !/^[0-9a-fA-F]*$/.test(clean)) {
|
|
20
|
+
throw new Error(`Invalid bytes32 hex value: ${val}`);
|
|
21
|
+
}
|
|
22
|
+
return new Uint8Array(Buffer.from(clean.padStart(64, '0'), 'hex'));
|
|
23
|
+
}
|
|
24
|
+
function encodeAddressWord(address) {
|
|
25
|
+
const clean = address.startsWith('0x') ? address.slice(2) : address;
|
|
26
|
+
if (clean.length !== 40 || !/^[0-9a-fA-F]{40}$/.test(clean)) {
|
|
27
|
+
throw new Error(`Invalid EVM address: ${address}`);
|
|
28
|
+
}
|
|
29
|
+
return new Uint8Array(Buffer.from(clean.toLowerCase().padStart(64, '0'), 'hex'));
|
|
30
|
+
}
|
|
31
|
+
function encodeUint256Word(value) {
|
|
32
|
+
const big = typeof value === 'bigint' ? value : BigInt(value);
|
|
33
|
+
if (big < 0n) {
|
|
34
|
+
throw new Error(`uint256 cannot be negative: ${big.toString()}`);
|
|
35
|
+
}
|
|
36
|
+
const hex = big.toString(16);
|
|
37
|
+
if (hex.length > 64) {
|
|
38
|
+
throw new Error(`uint256 overflow: ${big.toString()}`);
|
|
39
|
+
}
|
|
40
|
+
return new Uint8Array(Buffer.from(hex.padStart(64, '0'), 'hex'));
|
|
41
|
+
}
|
|
42
|
+
function concatBytes(chunks) {
|
|
43
|
+
const total = chunks.reduce((acc, c) => acc + c.byteLength, 0);
|
|
44
|
+
const out = new Uint8Array(total);
|
|
45
|
+
let offset = 0;
|
|
46
|
+
for (const chunk of chunks) {
|
|
47
|
+
out.set(chunk, offset);
|
|
48
|
+
offset += chunk.byteLength;
|
|
49
|
+
}
|
|
50
|
+
return out;
|
|
51
|
+
}
|
|
52
|
+
function toRawBytes(data) {
|
|
53
|
+
if (data instanceof Uint8Array) {
|
|
54
|
+
return data;
|
|
55
|
+
}
|
|
56
|
+
const clean = data.startsWith('0x') ? data.slice(2) : data;
|
|
57
|
+
return new Uint8Array(Buffer.from(clean, 'hex'));
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Encode calldata for ERC-3009 transferWithAuthorization.
|
|
61
|
+
* Selector: 0xe3ee160e (4 bytes) + 9 * 32 bytes = 292 bytes total.
|
|
62
|
+
*/
|
|
63
|
+
export function encodeTransferWithAuthorization(params) {
|
|
64
|
+
return concatBytes([
|
|
65
|
+
TRANSFER_WITH_AUTHORIZATION_SELECTOR,
|
|
66
|
+
encodeAddressWord(params.from),
|
|
67
|
+
encodeAddressWord(params.to),
|
|
68
|
+
encodeUint256Word(params.value),
|
|
69
|
+
encodeUint256Word(params.validAfter),
|
|
70
|
+
encodeUint256Word(params.validBefore),
|
|
71
|
+
hexToBytes32(params.nonce),
|
|
72
|
+
encodeUint256Word(params.v),
|
|
73
|
+
hexToBytes32(params.r),
|
|
74
|
+
hexToBytes32(params.s),
|
|
75
|
+
]);
|
|
76
|
+
}
|
|
77
|
+
export function encodeTransferFromAuthorization(authorization, toAddress, value) {
|
|
78
|
+
if (!(authorization.signature instanceof SignatureData)) {
|
|
79
|
+
throw new Error('PaymentAuthorization.signature must be a SignatureData instance');
|
|
80
|
+
}
|
|
81
|
+
return encodeTransferWithAuthorization({
|
|
82
|
+
from: authorization.payer,
|
|
83
|
+
to: toAddress,
|
|
84
|
+
value,
|
|
85
|
+
validAfter: authorization.validAfter,
|
|
86
|
+
validBefore: authorization.validBefore,
|
|
87
|
+
nonce: authorization.nonce,
|
|
88
|
+
v: authorization.signature.v,
|
|
89
|
+
r: authorization.signature.r,
|
|
90
|
+
s: authorization.signature.s,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
export function decodeTransferWithAuthorization(calldata) {
|
|
94
|
+
const raw = toRawBytes(calldata);
|
|
95
|
+
if (raw.byteLength < 292) {
|
|
96
|
+
throw new Error(`Calldata too short: expected 292 bytes, got ${raw.byteLength}`);
|
|
97
|
+
}
|
|
98
|
+
const selector = Buffer.from(raw.subarray(0, 4)).toString('hex');
|
|
99
|
+
const expectedSelector = Buffer.from(TRANSFER_WITH_AUTHORIZATION_SELECTOR).toString('hex');
|
|
100
|
+
if (selector !== expectedSelector) {
|
|
101
|
+
throw new Error(`Selector mismatch: expected ${expectedSelector}, got ${selector}`);
|
|
102
|
+
}
|
|
103
|
+
const readWordHex = (index) => {
|
|
104
|
+
const start = 4 + index * 32;
|
|
105
|
+
return Buffer.from(raw.subarray(start, start + 32)).toString('hex');
|
|
106
|
+
};
|
|
107
|
+
return {
|
|
108
|
+
from: `0x${readWordHex(0).slice(24).toLowerCase()}`,
|
|
109
|
+
to: `0x${readWordHex(1).slice(24).toLowerCase()}`,
|
|
110
|
+
value: BigInt(`0x${readWordHex(2)}`),
|
|
111
|
+
validAfter: BigInt(`0x${readWordHex(3)}`),
|
|
112
|
+
validBefore: BigInt(`0x${readWordHex(4)}`),
|
|
113
|
+
nonce: `0x${readWordHex(5).toLowerCase()}`,
|
|
114
|
+
v: Number(BigInt(`0x${readWordHex(6)}`)),
|
|
115
|
+
r: `0x${readWordHex(7).toLowerCase()}`,
|
|
116
|
+
s: `0x${readWordHex(8).toLowerCase()}`,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
export function encodeAuthorizationState(authorizer, nonce) {
|
|
120
|
+
return concatBytes([
|
|
121
|
+
AUTHORIZATION_STATE_SELECTOR,
|
|
122
|
+
encodeAddressWord(authorizer),
|
|
123
|
+
hexToBytes32(nonce),
|
|
124
|
+
]);
|
|
125
|
+
}
|
|
126
|
+
export function decodeAuthorizationStateResult(data) {
|
|
127
|
+
const raw = toRawBytes(data);
|
|
128
|
+
if (raw.byteLength < 32) {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
const wordHex = Buffer.from(raw.subarray(0, 32)).toString('hex');
|
|
132
|
+
return BigInt(`0x${wordHex}`) !== 0n;
|
|
133
|
+
}
|
|
134
|
+
export function encodeBalanceOf(account) {
|
|
135
|
+
return concatBytes([BALANCE_OF_SELECTOR, encodeAddressWord(account)]);
|
|
136
|
+
}
|
|
137
|
+
export function decodeBalanceOfResult(data) {
|
|
138
|
+
const raw = toRawBytes(data);
|
|
139
|
+
if (raw.byteLength < 32) {
|
|
140
|
+
return 0n;
|
|
141
|
+
}
|
|
142
|
+
const wordHex = Buffer.from(raw.subarray(0, 32)).toString('hex');
|
|
143
|
+
return BigInt(`0x${wordHex}`);
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=eip3009.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip3009.js","sourceRoot":"","sources":["../../src/evm/eip3009.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { ARBITRUM_SEPOLIA, ARBITRUM_SEPOLIA_CAIP2, ARBITRUM_SEPOLIA_CHAIN_ID, ARBITRUM_SEPOLIA_EXPLORER_URL, ARBITRUM_SEPOLIA_RPC_URL, ARBITRUM_SEPOLIA_USDC_ADDRESS, ARBITRUM_SEPOLIA_USDC_DECIMALS, ARBITRUM_SEPOLIA_USDC_NAME, ARBITRUM_SEPOLIA_USDC_SYMBOL, ARBITRUM_SEPOLIA_USDC_VERSION, AUTHORIZATION_STATE_SELECTOR, BALANCE_OF_SELECTOR, CANCEL_AUTHORIZATION_SELECTOR, DOMAIN_SEPARATOR_SELECTOR, KNOWN_NETWORKS, NetworkSpec, type NetworkSpecInput, RECEIVE_WITH_AUTHORIZATION_SELECTOR, TRANSFER_WITH_AUTHORIZATION_SELECTOR, getNetworkSpec, } from './constants.js';
|
|
2
|
+
export { type DecodedTransferWithAuthorization, type TransferWithAuthorizationParams, decodeAuthorizationStateResult, decodeBalanceOfResult, decodeTransferWithAuthorization, encodeAuthorizationState, encodeBalanceOf, encodeTransferFromAuthorization, encodeTransferWithAuthorization, } from './eip3009.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,6BAA6B,EAC7B,wBAAwB,EACxB,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,EACzB,cAAc,EACd,WAAW,EACX,KAAK,gBAAgB,EACrB,mCAAmC,EACnC,oCAAoC,EACpC,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,8BAA8B,EAC9B,qBAAqB,EACrB,+BAA+B,EAC/B,wBAAwB,EACxB,eAAe,EACf,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { ARBITRUM_SEPOLIA, ARBITRUM_SEPOLIA_CAIP2, ARBITRUM_SEPOLIA_CHAIN_ID, ARBITRUM_SEPOLIA_EXPLORER_URL, ARBITRUM_SEPOLIA_RPC_URL, ARBITRUM_SEPOLIA_USDC_ADDRESS, ARBITRUM_SEPOLIA_USDC_DECIMALS, ARBITRUM_SEPOLIA_USDC_NAME, ARBITRUM_SEPOLIA_USDC_SYMBOL, ARBITRUM_SEPOLIA_USDC_VERSION, AUTHORIZATION_STATE_SELECTOR, BALANCE_OF_SELECTOR, CANCEL_AUTHORIZATION_SELECTOR, DOMAIN_SEPARATOR_SELECTOR, KNOWN_NETWORKS, NetworkSpec, RECEIVE_WITH_AUTHORIZATION_SELECTOR, TRANSFER_WITH_AUTHORIZATION_SELECTOR, getNetworkSpec, } from './constants.js';
|
|
2
|
+
export { decodeAuthorizationStateResult, decodeBalanceOfResult, decodeTransferWithAuthorization, encodeAuthorizationState, encodeBalanceOf, encodeTransferFromAuthorization, encodeTransferWithAuthorization, } from './eip3009.js';
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/evm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,6BAA6B,EAC7B,wBAAwB,EACxB,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC7B,4BAA4B,EAC5B,mBAAmB,EACnB,6BAA6B,EAC7B,yBAAyB,EACzB,cAAc,EACd,WAAW,EAEX,mCAAmC,EACnC,oCAAoC,EACpC,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAGL,8BAA8B,EAC9B,qBAAqB,EACrB,+BAA+B,EAC/B,wBAAwB,EACxB,eAAe,EACf,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,cAAc,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentPay TypeScript SDK
|
|
3
|
+
* The Open-Source Payment Infrastructure & Financial Firewall for Autonomous AI Agents.
|
|
4
|
+
*/
|
|
5
|
+
export declare const VERSION = "0.2.5";
|
|
6
|
+
export * from './core/index.js';
|
|
7
|
+
export * from './evm/index.js';
|
|
8
|
+
export * from './policy/index.js';
|
|
9
|
+
export * from './client/index.js';
|
|
10
|
+
export * from './state/index.js';
|
|
11
|
+
export * from './integrations/index.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentPay TypeScript SDK
|
|
3
|
+
* The Open-Source Payment Infrastructure & Financial Firewall for Autonomous AI Agents.
|
|
4
|
+
*/
|
|
5
|
+
export const VERSION = '0.2.5';
|
|
6
|
+
export * from './core/index.js';
|
|
7
|
+
export * from './evm/index.js';
|
|
8
|
+
export * from './policy/index.js';
|
|
9
|
+
export * from './client/index.js';
|
|
10
|
+
export * from './state/index.js';
|
|
11
|
+
export * from './integrations/index.js';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LangChain.js integration for AgentPay.
|
|
3
|
+
*
|
|
4
|
+
* Provides PaidStructuredTool and createPaidTool helper for wrapping
|
|
5
|
+
* LangChain tools with autonomous 402 payment negotiation and financial firewall guardrails.
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentPayClient } from '../client/client.js';
|
|
8
|
+
export declare class ToolException extends Error {
|
|
9
|
+
constructor(message: string);
|
|
10
|
+
}
|
|
11
|
+
export interface CreatePaidToolOptions<TParams = any, TResult = any> {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
schema?: any;
|
|
15
|
+
client?: AgentPayClient;
|
|
16
|
+
handlePolicyViolation?: boolean;
|
|
17
|
+
func?: (params: TParams, context?: {
|
|
18
|
+
client?: AgentPayClient;
|
|
19
|
+
[key: string]: any;
|
|
20
|
+
}) => Promise<TResult> | TResult;
|
|
21
|
+
coroutine?: (params: TParams, context?: {
|
|
22
|
+
client?: AgentPayClient;
|
|
23
|
+
[key: string]: any;
|
|
24
|
+
}) => Promise<TResult>;
|
|
25
|
+
[key: string]: any;
|
|
26
|
+
}
|
|
27
|
+
export declare class PaidStructuredTool<TParams = any, TResult = any> {
|
|
28
|
+
readonly name: string;
|
|
29
|
+
readonly description: string;
|
|
30
|
+
readonly schema: any;
|
|
31
|
+
readonly client?: AgentPayClient;
|
|
32
|
+
readonly handlePolicyViolation: boolean;
|
|
33
|
+
private readonly targetFn;
|
|
34
|
+
constructor(options: CreatePaidToolOptions<TParams, TResult>);
|
|
35
|
+
call(arg: TParams, ...extra: any[]): Promise<TResult>;
|
|
36
|
+
_call(arg: TParams, ...extra: any[]): Promise<TResult>;
|
|
37
|
+
invoke(arg: TParams, ...extra: any[]): Promise<TResult>;
|
|
38
|
+
}
|
|
39
|
+
export declare function createPaidTool<TParams = any, TResult = any>(options: CreatePaidToolOptions<TParams, TResult>): PaidStructuredTool<TParams, TResult>;
|
|
40
|
+
//# sourceMappingURL=langchain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langchain.d.ts","sourceRoot":"","sources":["../../src/integrations/langchain.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,qBAAqB,CAAC,OAAO,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAClH,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7G,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,qBAAa,kBAAkB,CAAC,OAAO,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiE;gBAE9E,OAAO,EAAE,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC;IAc/C,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrD,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CA0BrE;AAED,wBAAgB,cAAc,CAAC,OAAO,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG,EACzD,OAAO,EAAE,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,GAC/C,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAEtC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LangChain.js integration for AgentPay.
|
|
3
|
+
*
|
|
4
|
+
* Provides PaidStructuredTool and createPaidTool helper for wrapping
|
|
5
|
+
* LangChain tools with autonomous 402 payment negotiation and financial firewall guardrails.
|
|
6
|
+
*/
|
|
7
|
+
import { X402Error } from '../core/errors.js';
|
|
8
|
+
import { PolicyViolationError } from '../policy/errors.js';
|
|
9
|
+
export class ToolException extends Error {
|
|
10
|
+
constructor(message) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = 'ToolException';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class PaidStructuredTool {
|
|
16
|
+
name;
|
|
17
|
+
description;
|
|
18
|
+
schema;
|
|
19
|
+
client;
|
|
20
|
+
handlePolicyViolation;
|
|
21
|
+
targetFn;
|
|
22
|
+
constructor(options) {
|
|
23
|
+
this.name = options.name;
|
|
24
|
+
this.description = options.description;
|
|
25
|
+
this.schema = options.schema;
|
|
26
|
+
this.client = options.client;
|
|
27
|
+
this.handlePolicyViolation = options.handlePolicyViolation ?? true;
|
|
28
|
+
const fn = options.func ?? options.coroutine;
|
|
29
|
+
if (!fn) {
|
|
30
|
+
throw new Error("Either 'func' or 'coroutine' must be provided to PaidStructuredTool");
|
|
31
|
+
}
|
|
32
|
+
this.targetFn = fn;
|
|
33
|
+
}
|
|
34
|
+
async call(arg, ...extra) {
|
|
35
|
+
return this.invoke(arg, ...extra);
|
|
36
|
+
}
|
|
37
|
+
async _call(arg, ...extra) {
|
|
38
|
+
return this.invoke(arg, ...extra);
|
|
39
|
+
}
|
|
40
|
+
async invoke(arg, ...extra) {
|
|
41
|
+
const context = {
|
|
42
|
+
client: this.client,
|
|
43
|
+
...(extra[0] && typeof extra[0] === 'object' ? extra[0] : {}),
|
|
44
|
+
};
|
|
45
|
+
try {
|
|
46
|
+
return await this.targetFn(arg, context);
|
|
47
|
+
}
|
|
48
|
+
catch (err) {
|
|
49
|
+
if (err instanceof PolicyViolationError) {
|
|
50
|
+
if (this.handlePolicyViolation) {
|
|
51
|
+
throw new ToolException(`AgentPay Firewall Rejected: [${err.code}] ${err.detail || err.message}`);
|
|
52
|
+
}
|
|
53
|
+
throw err;
|
|
54
|
+
}
|
|
55
|
+
if (err instanceof X402Error) {
|
|
56
|
+
if (this.handlePolicyViolation) {
|
|
57
|
+
throw new ToolException(`AgentPay x402 Protocol Error: ${err.message}`);
|
|
58
|
+
}
|
|
59
|
+
throw err;
|
|
60
|
+
}
|
|
61
|
+
throw err;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
export function createPaidTool(options) {
|
|
66
|
+
return new PaidStructuredTool(options);
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=langchain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"langchain.js","sourceRoot":"","sources":["../../src/integrations/langchain.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAaD,MAAM,OAAO,kBAAkB;IACpB,IAAI,CAAS;IACb,WAAW,CAAS;IACpB,MAAM,CAAM;IACZ,MAAM,CAAkB;IACxB,qBAAqB,CAAU;IACvB,QAAQ,CAAiE;IAE1F,YAAY,OAAgD;QAC1D,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,IAAI,CAAC;QAEnE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;QAC7C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,GAAY,EAAE,GAAG,KAAY;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,GAAY,EAAE,GAAG,KAAY;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAY,EAAE,GAAG,KAAY;QAC/C,MAAM,OAAO,GAAG;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,CAAC;QAEF,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,oBAAoB,EAAE,CAAC;gBACxC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC/B,MAAM,IAAI,aAAa,CACrB,gCAAgC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CACzE,CAAC;gBACJ,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,GAAG,YAAY,SAAS,EAAE,CAAC;gBAC7B,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC/B,MAAM,IAAI,aAAa,CAAC,iCAAiC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1E,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAC5B,OAAgD;IAEhD,OAAO,IAAI,kBAAkB,CAAmB,OAAO,CAAC,CAAC;AAC3D,CAAC"}
|