@coinbase/cdp-sdk 1.33.0 → 1.34.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/CHANGELOG.md +14 -0
- package/README.md +19 -0
- package/_cjs/accounts/evm/toEvmServerAccount.js +1 -1
- package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
- package/_cjs/accounts/evm/toEvmSmartAccount.js +1 -1
- package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -1
- package/_cjs/accounts/evm/toNetworkScopedEvmServerAccount.js +2 -2
- package/_cjs/accounts/evm/toNetworkScopedEvmServerAccount.js.map +1 -1
- package/_cjs/accounts/evm/toNetworkScopedEvmSmartAccount.js +2 -2
- package/_cjs/accounts/evm/toNetworkScopedEvmSmartAccount.js.map +1 -1
- package/_cjs/actions/evm/listSpendPermissions.js +19 -1
- package/_cjs/actions/evm/listSpendPermissions.js.map +1 -1
- package/_cjs/actions/evm/spend-permissions/resolveSpendPermission.js +64 -0
- package/_cjs/actions/evm/spend-permissions/resolveSpendPermission.js.map +1 -0
- package/_cjs/client/cdp.js +4 -0
- package/_cjs/client/cdp.js.map +1 -1
- package/_cjs/client/end-user/endUser.js +28 -0
- package/_cjs/client/end-user/endUser.js.map +1 -0
- package/_cjs/client/end-user/endUser.types.js +3 -0
- package/_cjs/client/end-user/endUser.types.js.map +1 -0
- package/_cjs/client/evm/evm.js +12 -11
- package/_cjs/client/evm/evm.js.map +1 -1
- package/_cjs/index.js.map +1 -1
- package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +121 -2
- package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
- package/_cjs/openapi-client/generated/end-user-accounts/end-user-accounts.js +20 -0
- package/_cjs/openapi-client/generated/end-user-accounts/end-user-accounts.js.map +1 -0
- package/_cjs/openapi-client/generated/end-user-accounts/end-user-accounts.msw.js +61 -0
- package/_cjs/openapi-client/generated/end-user-accounts/end-user-accounts.msw.js.map +1 -0
- package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js +79 -20
- package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js.map +1 -1
- package/_cjs/openapi-client/generated/evm-token-balances/evm-token-balances.js +1 -2
- package/_cjs/openapi-client/generated/evm-token-balances/evm-token-balances.js.map +1 -1
- package/_cjs/openapi-client/generated/index.msw.js +3 -0
- package/_cjs/openapi-client/generated/index.msw.js.map +1 -1
- package/_cjs/openapi-client/generated/onchain-data/onchain-data.js +63 -0
- package/_cjs/openapi-client/generated/onchain-data/onchain-data.js.map +1 -0
- package/_cjs/openapi-client/generated/onchain-data/onchain-data.msw.js +139 -0
- package/_cjs/openapi-client/generated/onchain-data/onchain-data.msw.js.map +1 -0
- package/_cjs/openapi-client/generated/policy-engine/policy-engine.msw.js +48 -4
- package/_cjs/openapi-client/generated/policy-engine/policy-engine.msw.js.map +1 -1
- package/_cjs/openapi-client/generated/x402-facilitator/x402-facilitator.js +39 -0
- package/_cjs/openapi-client/generated/x402-facilitator/x402-facilitator.js.map +1 -0
- package/_cjs/openapi-client/generated/x402-facilitator/x402-facilitator.msw.js +84 -0
- package/_cjs/openapi-client/generated/x402-facilitator/x402-facilitator.msw.js.map +1 -0
- package/_cjs/openapi-client/index.js +5 -0
- package/_cjs/openapi-client/index.js.map +1 -1
- package/_cjs/spend-permissions/utils.js +26 -0
- package/_cjs/spend-permissions/utils.js.map +1 -0
- package/_cjs/version.js +1 -1
- package/_esm/accounts/evm/toEvmServerAccount.js +1 -1
- package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
- package/_esm/accounts/evm/toEvmSmartAccount.js +1 -1
- package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -1
- package/_esm/accounts/evm/toNetworkScopedEvmServerAccount.js +2 -2
- package/_esm/accounts/evm/toNetworkScopedEvmServerAccount.js.map +1 -1
- package/_esm/accounts/evm/toNetworkScopedEvmSmartAccount.js +2 -2
- package/_esm/accounts/evm/toNetworkScopedEvmSmartAccount.js.map +1 -1
- package/_esm/actions/evm/listSpendPermissions.js +19 -1
- package/_esm/actions/evm/listSpendPermissions.js.map +1 -1
- package/_esm/actions/evm/spend-permissions/resolveSpendPermission.js +61 -0
- package/_esm/actions/evm/spend-permissions/resolveSpendPermission.js.map +1 -0
- package/_esm/client/cdp.js +4 -0
- package/_esm/client/cdp.js.map +1 -1
- package/_esm/client/end-user/endUser.js +24 -0
- package/_esm/client/end-user/endUser.js.map +1 -0
- package/_esm/client/end-user/endUser.types.js +2 -0
- package/_esm/client/end-user/endUser.types.js.map +1 -0
- package/_esm/client/evm/evm.js +13 -12
- package/_esm/client/evm/evm.js.map +1 -1
- package/_esm/index.js.map +1 -1
- package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +119 -0
- package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
- package/_esm/openapi-client/generated/end-user-accounts/end-user-accounts.js +16 -0
- package/_esm/openapi-client/generated/end-user-accounts/end-user-accounts.js.map +1 -0
- package/_esm/openapi-client/generated/end-user-accounts/end-user-accounts.msw.js +52 -0
- package/_esm/openapi-client/generated/end-user-accounts/end-user-accounts.msw.js.map +1 -0
- package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js +79 -20
- package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js.map +1 -1
- package/_esm/openapi-client/generated/evm-token-balances/evm-token-balances.js +1 -2
- package/_esm/openapi-client/generated/evm-token-balances/evm-token-balances.js.map +1 -1
- package/_esm/openapi-client/generated/index.msw.js +3 -0
- package/_esm/openapi-client/generated/index.msw.js.map +1 -1
- package/_esm/openapi-client/generated/onchain-data/onchain-data.js +57 -0
- package/_esm/openapi-client/generated/onchain-data/onchain-data.js.map +1 -0
- package/_esm/openapi-client/generated/onchain-data/onchain-data.msw.js +129 -0
- package/_esm/openapi-client/generated/onchain-data/onchain-data.msw.js.map +1 -0
- package/_esm/openapi-client/generated/policy-engine/policy-engine.msw.js +48 -4
- package/_esm/openapi-client/generated/policy-engine/policy-engine.msw.js.map +1 -1
- package/_esm/openapi-client/generated/x402-facilitator/x402-facilitator.js +33 -0
- package/_esm/openapi-client/generated/x402-facilitator/x402-facilitator.js.map +1 -0
- package/_esm/openapi-client/generated/x402-facilitator/x402-facilitator.msw.js +74 -0
- package/_esm/openapi-client/generated/x402-facilitator/x402-facilitator.msw.js.map +1 -0
- package/_esm/openapi-client/index.js +5 -0
- package/_esm/openapi-client/index.js.map +1 -1
- package/_esm/spend-permissions/utils.js +23 -0
- package/_esm/spend-permissions/utils.js.map +1 -0
- package/_esm/version.js +1 -1
- package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -1
- package/_types/accounts/evm/toNetworkScopedEvmSmartAccount.d.ts.map +1 -1
- package/_types/accounts/evm/types.d.ts +5 -5
- package/_types/accounts/evm/types.d.ts.map +1 -1
- package/_types/actions/evm/listSpendPermissions.d.ts +10 -2
- package/_types/actions/evm/listSpendPermissions.d.ts.map +1 -1
- package/_types/actions/evm/spend-permissions/resolveSpendPermission.d.ts +12 -0
- package/_types/actions/evm/spend-permissions/resolveSpendPermission.d.ts.map +1 -0
- package/_types/actions/evm/spend-permissions/types.d.ts +3 -2
- package/_types/actions/evm/spend-permissions/types.d.ts.map +1 -1
- package/_types/actions/evm/types.d.ts +4 -8
- package/_types/actions/evm/types.d.ts.map +1 -1
- package/_types/auth/utils/jwt.d.ts +1 -1
- package/_types/client/cdp.d.ts +3 -0
- package/_types/client/cdp.d.ts.map +1 -1
- package/_types/client/end-user/endUser.d.ts +16 -0
- package/_types/client/end-user/endUser.d.ts.map +1 -0
- package/_types/client/end-user/endUser.types.d.ts +10 -0
- package/_types/client/end-user/endUser.types.d.ts.map +1 -0
- package/_types/client/evm/evm.d.ts +3 -2
- package/_types/client/evm/evm.d.ts.map +1 -1
- package/_types/client/evm/evm.types.d.ts +7 -44
- package/_types/client/evm/evm.types.d.ts.map +1 -1
- package/_types/index.d.ts +2 -1
- package/_types/index.d.ts.map +1 -1
- package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts +520 -39
- package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts.map +1 -1
- package/_types/openapi-client/generated/end-user-accounts/end-user-accounts.d.ts +20 -0
- package/_types/openapi-client/generated/end-user-accounts/end-user-accounts.d.ts.map +1 -0
- package/_types/openapi-client/generated/end-user-accounts/end-user-accounts.msw.d.ts +9 -0
- package/_types/openapi-client/generated/end-user-accounts/end-user-accounts.msw.d.ts.map +1 -0
- package/_types/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.d.ts.map +1 -1
- package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.d.ts +1 -2
- package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.d.ts.map +1 -1
- package/_types/openapi-client/generated/index.msw.d.ts +3 -0
- package/_types/openapi-client/generated/index.msw.d.ts.map +1 -1
- package/_types/openapi-client/generated/onchain-data/onchain-data.d.ts +59 -0
- package/_types/openapi-client/generated/onchain-data/onchain-data.d.ts.map +1 -0
- package/_types/openapi-client/generated/onchain-data/onchain-data.msw.d.ts +10 -0
- package/_types/openapi-client/generated/onchain-data/onchain-data.msw.d.ts.map +1 -0
- package/_types/openapi-client/generated/policy-engine/policy-engine.msw.d.ts.map +1 -1
- package/_types/openapi-client/generated/x402-facilitator/x402-facilitator.d.ts +30 -0
- package/_types/openapi-client/generated/x402-facilitator/x402-facilitator.d.ts.map +1 -0
- package/_types/openapi-client/generated/x402-facilitator/x402-facilitator.msw.d.ts +10 -0
- package/_types/openapi-client/generated/x402-facilitator/x402-facilitator.msw.d.ts.map +1 -0
- package/_types/openapi-client/index.d.ts +4 -0
- package/_types/openapi-client/index.d.ts.map +1 -1
- package/_types/spend-permissions/types.d.ts +40 -5
- package/_types/spend-permissions/types.d.ts.map +1 -1
- package/_types/spend-permissions/utils.d.ts +12 -0
- package/_types/spend-permissions/utils.d.ts.map +1 -0
- package/_types/version.d.ts +1 -1
- package/accounts/evm/toEvmServerAccount.ts +1 -3
- package/accounts/evm/toEvmSmartAccount.ts +1 -1
- package/accounts/evm/toNetworkScopedEvmServerAccount.ts +4 -4
- package/accounts/evm/toNetworkScopedEvmSmartAccount.ts +4 -4
- package/accounts/evm/types.ts +5 -5
- package/actions/evm/listSpendPermissions.ts +42 -3
- package/actions/evm/spend-permissions/resolveSpendPermission.ts +85 -0
- package/actions/evm/spend-permissions/types.ts +3 -2
- package/actions/evm/types.ts +4 -12
- package/auth/utils/jwt.ts +1 -1
- package/client/cdp.ts +5 -0
- package/client/end-user/endUser.ts +27 -0
- package/client/end-user/endUser.types.ts +9 -0
- package/client/evm/evm.ts +25 -16
- package/client/evm/evm.types.ts +6 -48
- package/index.ts +2 -1
- package/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.ts +614 -40
- package/openapi-client/generated/end-user-accounts/end-user-accounts.msw.ts +95 -0
- package/openapi-client/generated/end-user-accounts/end-user-accounts.ts +39 -0
- package/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.ts +79 -20
- package/openapi-client/generated/evm-token-balances/evm-token-balances.ts +1 -2
- package/openapi-client/generated/index.msw.ts +3 -0
- package/openapi-client/generated/onchain-data/onchain-data.msw.ts +185 -0
- package/openapi-client/generated/onchain-data/onchain-data.ts +103 -0
- package/openapi-client/generated/policy-engine/policy-engine.msw.ts +48 -4
- package/openapi-client/generated/x402-facilitator/x402-facilitator.msw.ts +136 -0
- package/openapi-client/generated/x402-facilitator/x402-facilitator.ts +70 -0
- package/openapi-client/index.ts +5 -0
- package/package.json +1 -1
- package/spend-permissions/types.ts +46 -16
- package/spend-permissions/utils.ts +35 -0
- package/version.ts +1 -1
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by orval v7.6.0 🍺
|
|
3
|
+
* Do not edit manually.
|
|
4
|
+
* Coinbase Developer Platform APIs
|
|
5
|
+
* The Coinbase Developer Platform APIs - leading the world's transition onchain.
|
|
6
|
+
* OpenAPI spec version: 2.0.0
|
|
7
|
+
*/
|
|
8
|
+
import { faker } from "@faker-js/faker";
|
|
9
|
+
|
|
10
|
+
import { HttpResponse, delay, http } from "msw";
|
|
11
|
+
|
|
12
|
+
import {
|
|
13
|
+
X402SettleErrorReason,
|
|
14
|
+
X402VerifyInvalidReason,
|
|
15
|
+
X402Version,
|
|
16
|
+
} from "../coinbaseDeveloperPlatformAPIs.schemas.js";
|
|
17
|
+
import type {
|
|
18
|
+
X402SettleResponseResponse,
|
|
19
|
+
X402SupportedPaymentKindsResponseResponse,
|
|
20
|
+
X402VerifyResponseResponse,
|
|
21
|
+
} from "../coinbaseDeveloperPlatformAPIs.schemas.js";
|
|
22
|
+
|
|
23
|
+
export const getVerifyX402PaymentResponseMock = (
|
|
24
|
+
overrideResponse: Partial<X402VerifyResponseResponse> = {},
|
|
25
|
+
): X402VerifyResponseResponse => ({
|
|
26
|
+
isValid: faker.datatype.boolean(),
|
|
27
|
+
invalidReason: faker.helpers.arrayElement([
|
|
28
|
+
faker.helpers.arrayElement(Object.values(X402VerifyInvalidReason)),
|
|
29
|
+
undefined,
|
|
30
|
+
]),
|
|
31
|
+
payer: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}|[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"),
|
|
32
|
+
...overrideResponse,
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
export const getSettleX402PaymentResponseMock = (
|
|
36
|
+
overrideResponse: Partial<X402SettleResponseResponse> = {},
|
|
37
|
+
): X402SettleResponseResponse => ({
|
|
38
|
+
success: faker.datatype.boolean(),
|
|
39
|
+
errorReason: faker.helpers.arrayElement([
|
|
40
|
+
faker.helpers.arrayElement(Object.values(X402SettleErrorReason)),
|
|
41
|
+
undefined,
|
|
42
|
+
]),
|
|
43
|
+
payer: faker.helpers.fromRegExp("^0x[a-fA-F0-9]{40}|[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$"),
|
|
44
|
+
transaction: faker.helpers.fromRegExp(
|
|
45
|
+
"^0x[a-fA-F0-9]{40}|[A-Za-z0-9][A-Za-z0-9-]{0,34}[A-Za-z0-9]$",
|
|
46
|
+
),
|
|
47
|
+
network: faker.string.alpha(20),
|
|
48
|
+
...overrideResponse,
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
export const getSupportedX402PaymentKindsResponseMock = (
|
|
52
|
+
overrideResponse: Partial<X402SupportedPaymentKindsResponseResponse> = {},
|
|
53
|
+
): X402SupportedPaymentKindsResponseResponse => ({
|
|
54
|
+
kinds: Array.from({ length: faker.number.int({ min: 1, max: 10 }) }, (_, i) => i + 1).map(() => ({
|
|
55
|
+
x402Version: faker.helpers.arrayElement(Object.values(X402Version)),
|
|
56
|
+
scheme: faker.helpers.arrayElement(["exact"] as const),
|
|
57
|
+
network: faker.helpers.arrayElement(["base-sepolia", "base"] as const),
|
|
58
|
+
})),
|
|
59
|
+
...overrideResponse,
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
export const getVerifyX402PaymentMockHandler = (
|
|
63
|
+
overrideResponse?:
|
|
64
|
+
| X402VerifyResponseResponse
|
|
65
|
+
| ((
|
|
66
|
+
info: Parameters<Parameters<typeof http.post>[1]>[0],
|
|
67
|
+
) => Promise<X402VerifyResponseResponse> | X402VerifyResponseResponse),
|
|
68
|
+
) => {
|
|
69
|
+
return http.post("*/v2/x402/verify", async info => {
|
|
70
|
+
await delay(0);
|
|
71
|
+
|
|
72
|
+
return new HttpResponse(
|
|
73
|
+
JSON.stringify(
|
|
74
|
+
overrideResponse !== undefined
|
|
75
|
+
? typeof overrideResponse === "function"
|
|
76
|
+
? await overrideResponse(info)
|
|
77
|
+
: overrideResponse
|
|
78
|
+
: getVerifyX402PaymentResponseMock(),
|
|
79
|
+
),
|
|
80
|
+
{ status: 200, headers: { "Content-Type": "application/json" } },
|
|
81
|
+
);
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const getSettleX402PaymentMockHandler = (
|
|
86
|
+
overrideResponse?:
|
|
87
|
+
| X402SettleResponseResponse
|
|
88
|
+
| ((
|
|
89
|
+
info: Parameters<Parameters<typeof http.post>[1]>[0],
|
|
90
|
+
) => Promise<X402SettleResponseResponse> | X402SettleResponseResponse),
|
|
91
|
+
) => {
|
|
92
|
+
return http.post("*/v2/x402/settle", async info => {
|
|
93
|
+
await delay(0);
|
|
94
|
+
|
|
95
|
+
return new HttpResponse(
|
|
96
|
+
JSON.stringify(
|
|
97
|
+
overrideResponse !== undefined
|
|
98
|
+
? typeof overrideResponse === "function"
|
|
99
|
+
? await overrideResponse(info)
|
|
100
|
+
: overrideResponse
|
|
101
|
+
: getSettleX402PaymentResponseMock(),
|
|
102
|
+
),
|
|
103
|
+
{ status: 200, headers: { "Content-Type": "application/json" } },
|
|
104
|
+
);
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export const getSupportedX402PaymentKindsMockHandler = (
|
|
109
|
+
overrideResponse?:
|
|
110
|
+
| X402SupportedPaymentKindsResponseResponse
|
|
111
|
+
| ((
|
|
112
|
+
info: Parameters<Parameters<typeof http.get>[1]>[0],
|
|
113
|
+
) =>
|
|
114
|
+
| Promise<X402SupportedPaymentKindsResponseResponse>
|
|
115
|
+
| X402SupportedPaymentKindsResponseResponse),
|
|
116
|
+
) => {
|
|
117
|
+
return http.get("*/v2/x402/supported", async info => {
|
|
118
|
+
await delay(0);
|
|
119
|
+
|
|
120
|
+
return new HttpResponse(
|
|
121
|
+
JSON.stringify(
|
|
122
|
+
overrideResponse !== undefined
|
|
123
|
+
? typeof overrideResponse === "function"
|
|
124
|
+
? await overrideResponse(info)
|
|
125
|
+
: overrideResponse
|
|
126
|
+
: getSupportedX402PaymentKindsResponseMock(),
|
|
127
|
+
),
|
|
128
|
+
{ status: 200, headers: { "Content-Type": "application/json" } },
|
|
129
|
+
);
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
export const getX402FacilitatorMock = () => [
|
|
133
|
+
getVerifyX402PaymentMockHandler(),
|
|
134
|
+
getSettleX402PaymentMockHandler(),
|
|
135
|
+
getSupportedX402PaymentKindsMockHandler(),
|
|
136
|
+
];
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated by orval v7.6.0 🍺
|
|
3
|
+
* Do not edit manually.
|
|
4
|
+
* Coinbase Developer Platform APIs
|
|
5
|
+
* The Coinbase Developer Platform APIs - leading the world's transition onchain.
|
|
6
|
+
* OpenAPI spec version: 2.0.0
|
|
7
|
+
*/
|
|
8
|
+
import type {
|
|
9
|
+
SettleX402PaymentBody,
|
|
10
|
+
VerifyX402PaymentBody,
|
|
11
|
+
X402SettleResponseResponse,
|
|
12
|
+
X402SupportedPaymentKindsResponseResponse,
|
|
13
|
+
X402VerifyResponseResponse,
|
|
14
|
+
} from "../coinbaseDeveloperPlatformAPIs.schemas.js";
|
|
15
|
+
|
|
16
|
+
import { cdpApiClient } from "../../cdpApiClient.js";
|
|
17
|
+
|
|
18
|
+
type SecondParameter<T extends (...args: never) => unknown> = Parameters<T>[1];
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Verify an x402 protocol payment with a specific scheme and network.
|
|
22
|
+
* @summary Verify a payment
|
|
23
|
+
*/
|
|
24
|
+
export const verifyX402Payment = (
|
|
25
|
+
verifyX402PaymentBody: VerifyX402PaymentBody,
|
|
26
|
+
options?: SecondParameter<typeof cdpApiClient>,
|
|
27
|
+
) => {
|
|
28
|
+
return cdpApiClient<X402VerifyResponseResponse>(
|
|
29
|
+
{
|
|
30
|
+
url: `/v2/x402/verify`,
|
|
31
|
+
method: "POST",
|
|
32
|
+
headers: { "Content-Type": "application/json" },
|
|
33
|
+
data: verifyX402PaymentBody,
|
|
34
|
+
},
|
|
35
|
+
options,
|
|
36
|
+
);
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Settle an x402 protocol payment with a specific scheme and network.
|
|
40
|
+
* @summary Settle a payment
|
|
41
|
+
*/
|
|
42
|
+
export const settleX402Payment = (
|
|
43
|
+
settleX402PaymentBody: SettleX402PaymentBody,
|
|
44
|
+
options?: SecondParameter<typeof cdpApiClient>,
|
|
45
|
+
) => {
|
|
46
|
+
return cdpApiClient<X402SettleResponseResponse>(
|
|
47
|
+
{
|
|
48
|
+
url: `/v2/x402/settle`,
|
|
49
|
+
method: "POST",
|
|
50
|
+
headers: { "Content-Type": "application/json" },
|
|
51
|
+
data: settleX402PaymentBody,
|
|
52
|
+
},
|
|
53
|
+
options,
|
|
54
|
+
);
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Get the supported x402 protocol payment schemes and networks that the facilitator is able to verify and settle payments for.
|
|
58
|
+
* @summary Get supported payment schemes and networks
|
|
59
|
+
*/
|
|
60
|
+
export const supportedX402PaymentKinds = (options?: SecondParameter<typeof cdpApiClient>) => {
|
|
61
|
+
return cdpApiClient<X402SupportedPaymentKindsResponseResponse>(
|
|
62
|
+
{ url: `/v2/x402/supported`, method: "GET" },
|
|
63
|
+
options,
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
export type VerifyX402PaymentResult = NonNullable<Awaited<ReturnType<typeof verifyX402Payment>>>;
|
|
67
|
+
export type SettleX402PaymentResult = NonNullable<Awaited<ReturnType<typeof settleX402Payment>>>;
|
|
68
|
+
export type SupportedX402PaymentKindsResult = NonNullable<
|
|
69
|
+
Awaited<ReturnType<typeof supportedX402PaymentKinds>>
|
|
70
|
+
>;
|
package/openapi-client/index.ts
CHANGED
|
@@ -9,8 +9,12 @@ export * from "./generated/faucets/faucets.js";
|
|
|
9
9
|
export * from "./generated/policy-engine/policy-engine.js";
|
|
10
10
|
export * from "./generated/payments-alpha/payments-alpha.js";
|
|
11
11
|
export * from "./generated/onramp/onramp.js";
|
|
12
|
+
export * from "./generated/onchain-data/onchain-data.js";
|
|
13
|
+
export * from "./generated/end-user-accounts/end-user-accounts.js";
|
|
14
|
+
export * from "./generated/x402-facilitator/x402-facilitator.js";
|
|
12
15
|
|
|
13
16
|
import { configure } from "./cdpApiClient.js";
|
|
17
|
+
import * as endUserAccounts from "./generated/end-user-accounts/end-user-accounts.js";
|
|
14
18
|
import * as evm from "./generated/evm-accounts/evm-accounts.js";
|
|
15
19
|
import * as evmSmartAccounts from "./generated/evm-smart-accounts/evm-smart-accounts.js";
|
|
16
20
|
import * as evmSwaps from "./generated/evm-swaps/evm-swaps.js";
|
|
@@ -31,6 +35,7 @@ export const CdpOpenApiClient = {
|
|
|
31
35
|
...faucets,
|
|
32
36
|
...policies,
|
|
33
37
|
...payments,
|
|
38
|
+
...endUserAccounts,
|
|
34
39
|
configure,
|
|
35
40
|
};
|
|
36
41
|
|
package/package.json
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SpendPermissionNetwork } from "../openapi-client/index.js";
|
|
1
2
|
import type { Address, Hex } from "../types/misc.js";
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -24,19 +25,48 @@ export type SpendPermission = {
|
|
|
24
25
|
extraData: Hex;
|
|
25
26
|
};
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
28
|
+
export type SpendPermissionInput = Omit<
|
|
29
|
+
SpendPermission,
|
|
30
|
+
"token" | "salt" | "extraData" | "period" | "start" | "end"
|
|
31
|
+
> & {
|
|
32
|
+
token: "eth" | "usdc" | Address;
|
|
33
|
+
salt?: bigint;
|
|
34
|
+
extraData?: Hex;
|
|
35
|
+
period?: number;
|
|
36
|
+
periodInDays?: number;
|
|
37
|
+
start?: Date;
|
|
38
|
+
end?: Date;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export interface CreateSpendPermissionOptions {
|
|
42
|
+
/** The spend permission. */
|
|
43
|
+
spendPermission: SpendPermissionInput;
|
|
44
|
+
/** The network. */
|
|
45
|
+
network: SpendPermissionNetwork;
|
|
46
|
+
/** The paymaster URL. */
|
|
47
|
+
paymasterUrl?: string;
|
|
48
|
+
/** The idempotency key. */
|
|
49
|
+
idempotencyKey?: string;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export interface ListSpendPermissionsOptions {
|
|
53
|
+
/** The address of the smart account. */
|
|
54
|
+
address: Address;
|
|
55
|
+
/** The page size to paginate through the spend permissions. */
|
|
56
|
+
pageSize?: number;
|
|
57
|
+
/** The page token to paginate through the spend permissions. */
|
|
58
|
+
pageToken?: string;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export interface RevokeSpendPermissionOptions {
|
|
62
|
+
/** The address of the smart account. */
|
|
63
|
+
address: Address;
|
|
64
|
+
/** The hash of the spend permission to revoke. */
|
|
65
|
+
permissionHash: Hex;
|
|
66
|
+
/** The network. */
|
|
67
|
+
network: SpendPermissionNetwork;
|
|
68
|
+
/** The paymaster URL. */
|
|
69
|
+
paymasterUrl?: string;
|
|
70
|
+
/** The idempotency key. */
|
|
71
|
+
idempotencyKey?: string;
|
|
72
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { getErc20Address } from "../actions/evm/transfer/utils.js";
|
|
2
|
+
import { UserInputValidationError } from "../errors.js";
|
|
3
|
+
|
|
4
|
+
import type { Network } from "../actions/evm/transfer/types.js";
|
|
5
|
+
import type { SpendPermissionNetwork } from "../openapi-client/index.js";
|
|
6
|
+
import type { Address } from "../types/misc.js";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the address of a token for a given network.
|
|
10
|
+
*
|
|
11
|
+
* @param token - The token symbol or contract address.
|
|
12
|
+
* @param network - The network to get the address for.
|
|
13
|
+
*
|
|
14
|
+
* @returns The address of the token.
|
|
15
|
+
*/
|
|
16
|
+
export function resolveTokenAddress(
|
|
17
|
+
token: "eth" | "usdc" | Address,
|
|
18
|
+
network: SpendPermissionNetwork,
|
|
19
|
+
): Address {
|
|
20
|
+
if (token === "eth") {
|
|
21
|
+
return "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (token === "usdc" && (network === "base" || network === "base-sepolia")) {
|
|
25
|
+
return getErc20Address(token, network as Network);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (token === "usdc") {
|
|
29
|
+
throw new UserInputValidationError(
|
|
30
|
+
`Automatic token address lookup for ${token} is not supported on ${network}. Please provide the token address manually.`,
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return token;
|
|
35
|
+
}
|
package/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = "1.
|
|
1
|
+
export const version = "1.34.1";
|