@hashgraphonline/standards-sdk 0.1.179 → 0.1.181
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/dist/browser/services/registry-broker/client/base-client.d.ts +18 -1
- package/dist/browser/services/registry-broker/client/base-client.d.ts.map +1 -1
- package/dist/browser/services/registry-broker/client/guard.d.ts +15 -1
- package/dist/browser/services/registry-broker/client/guard.d.ts.map +1 -1
- package/dist/browser/services/registry-broker/schemas.d.ts +1705 -173
- package/dist/browser/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/browser/services/registry-broker/types.d.ts +32 -1
- package/dist/browser/services/registry-broker/types.d.ts.map +1 -1
- package/dist/browser/standards-sdk.browser.js +178 -9
- package/dist/browser/standards-sdk.browser.js.map +1 -1
- package/dist/browser-root/services/registry-broker/client/base-client.d.ts +18 -1
- package/dist/browser-root/services/registry-broker/client/base-client.d.ts.map +1 -1
- package/dist/browser-root/services/registry-broker/client/guard.d.ts +15 -1
- package/dist/browser-root/services/registry-broker/client/guard.d.ts.map +1 -1
- package/dist/browser-root/services/registry-broker/schemas.d.ts +1705 -173
- package/dist/browser-root/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/browser-root/services/registry-broker/types.d.ts +32 -1
- package/dist/browser-root/services/registry-broker/types.d.ts.map +1 -1
- package/dist/browser-root/standards-sdk.root-browser.js +682 -71
- package/dist/browser-root/standards-sdk.root-browser.js.map +1 -1
- package/dist/cjs/services/registry-broker/client/base-client.d.ts +18 -1
- package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/guard.d.ts +15 -1
- package/dist/cjs/services/registry-broker/client/guard.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/schemas.d.ts +1705 -173
- package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/types.d.ts +32 -1
- package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +1 -1
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/es/services/registry-broker/client/base-client.d.ts +18 -1
- package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/guard.d.ts +15 -1
- package/dist/es/services/registry-broker/client/guard.d.ts.map +1 -1
- package/dist/es/services/registry-broker/schemas.d.ts +1705 -173
- package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/es/services/registry-broker/types.d.ts +32 -1
- package/dist/es/services/registry-broker/types.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +10 -7
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +1 -1
- package/dist/es/standards-sdk.es106.js +1 -1
- package/dist/es/standards-sdk.es108.js +1 -1
- package/dist/es/standards-sdk.es11.js +1 -1
- package/dist/es/standards-sdk.es110.js +1 -1
- package/dist/es/standards-sdk.es116.js +1 -1
- package/dist/es/standards-sdk.es12.js +1 -1
- package/dist/es/standards-sdk.es121.js +1 -1
- package/dist/es/standards-sdk.es127.js +2 -2
- package/dist/es/standards-sdk.es128.js +5 -5
- package/dist/es/standards-sdk.es138.js +1 -1
- package/dist/es/standards-sdk.es139.js +1 -1
- package/dist/es/standards-sdk.es140.js +5 -5
- package/dist/es/standards-sdk.es142.js +2 -2
- package/dist/es/standards-sdk.es145.js +86 -15
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +3 -3
- package/dist/es/standards-sdk.es148.js +4 -81
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +71 -77
- package/dist/es/standards-sdk.es149.js.map +1 -1
- package/dist/es/standards-sdk.es150.js +80 -53
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +53 -152
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +159 -7
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +7 -86
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +64 -43
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +65 -30
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +30 -34
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +34 -48
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +48 -138
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +133 -37
- package/dist/es/standards-sdk.es159.js.map +1 -1
- package/dist/es/standards-sdk.es16.js +2 -2
- package/dist/es/standards-sdk.es160.js +42 -2168
- package/dist/es/standards-sdk.es160.js.map +1 -1
- package/dist/es/standards-sdk.es162.js +2352 -672
- package/dist/es/standards-sdk.es162.js.map +1 -1
- package/dist/es/standards-sdk.es163.js +15 -109
- package/dist/es/standards-sdk.es163.js.map +1 -1
- package/dist/es/standards-sdk.es164.js +96 -58
- package/dist/es/standards-sdk.es164.js.map +1 -1
- package/dist/es/standards-sdk.es165.js +66 -165
- package/dist/es/standards-sdk.es165.js.map +1 -1
- package/dist/es/standards-sdk.es166.js +55 -321
- package/dist/es/standards-sdk.es166.js.map +1 -1
- package/dist/es/standards-sdk.es167.js +71 -336
- package/dist/es/standards-sdk.es167.js.map +1 -1
- package/dist/es/standards-sdk.es168.js +186 -439
- package/dist/es/standards-sdk.es168.js.map +1 -1
- package/dist/es/standards-sdk.es169.js +142 -301
- package/dist/es/standards-sdk.es169.js.map +1 -1
- package/dist/es/standards-sdk.es170.js +310 -64
- package/dist/es/standards-sdk.es170.js.map +1 -1
- package/dist/es/standards-sdk.es171.js +345 -55
- package/dist/es/standards-sdk.es171.js.map +1 -1
- package/dist/es/standards-sdk.es172.js +443 -71
- package/dist/es/standards-sdk.es172.js.map +1 -1
- package/dist/es/standards-sdk.es173.js +315 -184
- package/dist/es/standards-sdk.es173.js.map +1 -1
- package/dist/es/standards-sdk.es174.js +74 -15
- package/dist/es/standards-sdk.es174.js.map +1 -1
- package/dist/es/standards-sdk.es175.js +653 -120
- package/dist/es/standards-sdk.es175.js.map +1 -1
- package/dist/es/standards-sdk.es176.js +111 -303
- package/dist/es/standards-sdk.es176.js.map +1 -1
- package/dist/es/standards-sdk.es177.js +297 -225
- package/dist/es/standards-sdk.es177.js.map +1 -1
- package/dist/es/standards-sdk.es178.js +239 -176
- package/dist/es/standards-sdk.es178.js.map +1 -1
- package/dist/es/standards-sdk.es179.js +178 -101
- package/dist/es/standards-sdk.es179.js.map +1 -1
- package/dist/es/standards-sdk.es18.js +4 -4
- package/dist/es/standards-sdk.es180.js +75 -108
- package/dist/es/standards-sdk.es180.js.map +1 -1
- package/dist/es/standards-sdk.es181.js +116 -148
- package/dist/es/standards-sdk.es181.js.map +1 -1
- package/dist/es/standards-sdk.es182.js +146 -264
- package/dist/es/standards-sdk.es182.js.map +1 -1
- package/dist/es/standards-sdk.es183.js +661 -162
- package/dist/es/standards-sdk.es183.js.map +1 -1
- package/dist/es/standards-sdk.es184.js +156 -206
- package/dist/es/standards-sdk.es184.js.map +1 -1
- package/dist/es/standards-sdk.es185.js +219 -223
- package/dist/es/standards-sdk.es185.js.map +1 -1
- package/dist/es/standards-sdk.es186.js +242 -0
- package/dist/es/standards-sdk.es186.js.map +1 -0
- package/dist/es/standards-sdk.es19.js +2 -2
- package/dist/es/standards-sdk.es22.js +1 -1
- package/dist/es/standards-sdk.es27.js +4 -4
- package/dist/es/standards-sdk.es35.js +2 -2
- package/dist/es/standards-sdk.es36.js +2 -2
- package/dist/es/standards-sdk.es4.js +1 -1
- package/dist/es/standards-sdk.es53.js +1 -1
- package/dist/es/standards-sdk.es56.js +1 -1
- package/dist/es/standards-sdk.es59.js +1 -1
- package/dist/es/standards-sdk.es60.js +1 -1
- package/dist/es/standards-sdk.es62.js +1 -1
- package/dist/es/standards-sdk.es63.js +2 -2
- package/dist/es/standards-sdk.es64.js +1 -1
- package/dist/es/standards-sdk.es65.js +1 -1
- package/dist/es/standards-sdk.es66.js +1 -1
- package/dist/es/standards-sdk.es67.js +3 -3
- package/dist/es/standards-sdk.es69.js +1 -1
- package/dist/es/standards-sdk.es7.js +1 -1
- package/dist/es/standards-sdk.es71.js +1 -1
- package/dist/es/standards-sdk.es72.js +2 -2
- package/dist/es/standards-sdk.es75.js +2 -2
- package/dist/es/standards-sdk.es76.js +1 -1
- package/dist/es/standards-sdk.es78.js +1 -1
- package/dist/es/standards-sdk.es83.js +1 -1
- package/dist/es/standards-sdk.es84.js +2 -2
- package/dist/es/standards-sdk.es85.js +1 -1
- package/dist/es/standards-sdk.es88.js +1 -1
- package/dist/es/standards-sdk.es90.js +1 -1
- package/dist/es/standards-sdk.es94.js +3 -3
- package/dist/es/standards-sdk.es98.js +1 -1
- package/dist/es/standards-sdk.es99.js +1 -1
- package/package.json +1 -1
|
@@ -1,305 +1,187 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
);
|
|
11
|
-
}
|
|
12
|
-
async function getGuardEntitlements(client) {
|
|
13
|
-
const raw = await client.requestJson("/guard/entitlements", {
|
|
1
|
+
import { creditBalanceResponseSchema, creditProvidersResponseSchema, hbarPurchaseIntentResponseSchema, creditPurchaseResponseSchema, x402MinimumsResponseSchema, x402CreditPurchaseResponseSchema } from "./standards-sdk.es162.js";
|
|
2
|
+
import { normalizeHexPrivateKey } from "./standards-sdk.es186.js";
|
|
3
|
+
import { optionalImport } from "./standards-sdk.es164.js";
|
|
4
|
+
async function getCreditsBalance(client, params = {}) {
|
|
5
|
+
const query = new URLSearchParams();
|
|
6
|
+
const normalizedAccountId = params.accountId?.trim();
|
|
7
|
+
if (normalizedAccountId) {
|
|
8
|
+
query.set("accountId", normalizedAccountId);
|
|
9
|
+
}
|
|
10
|
+
const suffix = query.size > 0 ? `?${query.toString()}` : "";
|
|
11
|
+
const raw = await client.requestJson(`/credits/balance${suffix}`, {
|
|
14
12
|
method: "GET"
|
|
15
13
|
});
|
|
16
14
|
return client.parseWithSchema(
|
|
17
15
|
raw,
|
|
18
|
-
|
|
19
|
-
"
|
|
16
|
+
creditBalanceResponseSchema,
|
|
17
|
+
"credit balance response"
|
|
20
18
|
);
|
|
21
19
|
}
|
|
22
|
-
async function
|
|
23
|
-
const raw = await client.requestJson("/
|
|
20
|
+
async function getCreditProviders(client) {
|
|
21
|
+
const raw = await client.requestJson("/credits/providers", {
|
|
24
22
|
method: "GET"
|
|
25
23
|
});
|
|
26
24
|
return client.parseWithSchema(
|
|
27
25
|
raw,
|
|
28
|
-
|
|
29
|
-
"
|
|
26
|
+
creditProvidersResponseSchema,
|
|
27
|
+
"credit providers response"
|
|
30
28
|
);
|
|
31
29
|
}
|
|
32
|
-
async function
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
async function createHbarPurchaseIntent(client, payload) {
|
|
31
|
+
const body = {};
|
|
32
|
+
const normalizedAccountId = payload.accountId?.trim();
|
|
33
|
+
if (normalizedAccountId) {
|
|
34
|
+
body.accountId = normalizedAccountId;
|
|
36
35
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
{ method: "GET" }
|
|
40
|
-
);
|
|
41
|
-
return client.parseWithSchema(
|
|
42
|
-
raw,
|
|
43
|
-
guardTrustByHashResponseSchema,
|
|
44
|
-
"guard trust by hash response"
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
async function resolveGuardTrust(client, query) {
|
|
48
|
-
const params = new URLSearchParams();
|
|
49
|
-
if (query.ecosystem?.trim()) {
|
|
50
|
-
params.set("ecosystem", query.ecosystem.trim());
|
|
36
|
+
if (payload.credits !== void 0) {
|
|
37
|
+
body.credits = payload.credits;
|
|
51
38
|
}
|
|
52
|
-
if (
|
|
53
|
-
|
|
39
|
+
if (payload.hbarAmount !== void 0) {
|
|
40
|
+
body.hbarAmount = payload.hbarAmount;
|
|
54
41
|
}
|
|
55
|
-
if (
|
|
56
|
-
|
|
42
|
+
if (payload.memo?.trim()) {
|
|
43
|
+
body.memo = payload.memo.trim();
|
|
57
44
|
}
|
|
58
|
-
const suffix = params.size > 0 ? `?${params.toString()}` : "";
|
|
59
45
|
const raw = await client.requestJson(
|
|
60
|
-
|
|
61
|
-
{
|
|
46
|
+
"/credits/payments/hbar/intent",
|
|
47
|
+
{
|
|
48
|
+
method: "POST",
|
|
49
|
+
headers: { "content-type": "application/json" },
|
|
50
|
+
body
|
|
51
|
+
}
|
|
62
52
|
);
|
|
63
53
|
return client.parseWithSchema(
|
|
64
54
|
raw,
|
|
65
|
-
|
|
66
|
-
"
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
async function getGuardRevocations(client) {
|
|
70
|
-
const raw = await client.requestJson("/guard/revocations", {
|
|
71
|
-
method: "GET"
|
|
72
|
-
});
|
|
73
|
-
return client.parseWithSchema(
|
|
74
|
-
raw,
|
|
75
|
-
guardRevocationResponseSchema,
|
|
76
|
-
"guard revocations response"
|
|
77
|
-
);
|
|
78
|
-
}
|
|
79
|
-
async function getGuardInventory(client) {
|
|
80
|
-
const raw = await client.requestJson("/guard/inventory", {
|
|
81
|
-
method: "GET"
|
|
82
|
-
});
|
|
83
|
-
return client.parseWithSchema(
|
|
84
|
-
raw,
|
|
85
|
-
guardInventoryResponseSchema,
|
|
86
|
-
"guard inventory response"
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
async function getGuardReceiptHistory(client) {
|
|
90
|
-
const raw = await client.requestJson("/guard/history", {
|
|
91
|
-
method: "GET"
|
|
92
|
-
});
|
|
93
|
-
return client.parseWithSchema(
|
|
94
|
-
raw,
|
|
95
|
-
guardReceiptHistoryResponseSchema,
|
|
96
|
-
"guard receipt history response"
|
|
55
|
+
hbarPurchaseIntentResponseSchema,
|
|
56
|
+
"hbar purchase intent response"
|
|
97
57
|
);
|
|
98
58
|
}
|
|
99
|
-
async function
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
59
|
+
async function loadX402Dependencies(client) {
|
|
60
|
+
const [{ default: axios }, x402Axios, x402Types] = await Promise.all([
|
|
61
|
+
import("axios"),
|
|
62
|
+
optionalImport("x402-axios"),
|
|
63
|
+
optionalImport("x402/types")
|
|
64
|
+
]);
|
|
65
|
+
if (!x402Axios || !x402Types) {
|
|
66
|
+
throw new Error(
|
|
67
|
+
"x402-axios and x402/types are required for X402 flows. Install them to enable ledger payments."
|
|
68
|
+
);
|
|
103
69
|
}
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
)
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
return
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
)
|
|
123
|
-
|
|
124
|
-
async function exportGuardReceipts(client) {
|
|
125
|
-
const raw = await client.requestJson("/guard/receipts/export", {
|
|
126
|
-
method: "GET"
|
|
127
|
-
});
|
|
128
|
-
return client.parseWithSchema(
|
|
129
|
-
raw,
|
|
130
|
-
guardReceiptExportResponseSchema,
|
|
131
|
-
"guard receipt export response"
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
async function getGuardInventoryDiff(client) {
|
|
135
|
-
const raw = await client.requestJson("/guard/inventory/diff", {
|
|
136
|
-
method: "GET"
|
|
137
|
-
});
|
|
138
|
-
return client.parseWithSchema(
|
|
139
|
-
raw,
|
|
140
|
-
guardInventoryDiffResponseSchema,
|
|
141
|
-
"guard inventory diff response"
|
|
142
|
-
);
|
|
143
|
-
}
|
|
144
|
-
async function getGuardDevices(client) {
|
|
145
|
-
const raw = await client.requestJson("/guard/devices", {
|
|
146
|
-
method: "GET"
|
|
147
|
-
});
|
|
148
|
-
return client.parseWithSchema(
|
|
149
|
-
raw,
|
|
150
|
-
guardDeviceListResponseSchema,
|
|
151
|
-
"guard devices response"
|
|
152
|
-
);
|
|
153
|
-
}
|
|
154
|
-
async function getGuardAlertPreferences(client) {
|
|
155
|
-
const raw = await client.requestJson("/guard/alerts/preferences", {
|
|
156
|
-
method: "GET"
|
|
157
|
-
});
|
|
158
|
-
return client.parseWithSchema(
|
|
159
|
-
raw,
|
|
160
|
-
guardAlertPreferencesSchema,
|
|
161
|
-
"guard alert preferences response"
|
|
162
|
-
);
|
|
163
|
-
}
|
|
164
|
-
async function updateGuardAlertPreferences(client, payload) {
|
|
165
|
-
const raw = await client.requestJson("/guard/alerts/preferences", {
|
|
166
|
-
method: "PUT",
|
|
167
|
-
body: payload
|
|
168
|
-
});
|
|
169
|
-
return client.parseWithSchema(
|
|
170
|
-
raw,
|
|
171
|
-
guardAlertPreferencesSchema,
|
|
172
|
-
"guard alert preferences response"
|
|
173
|
-
);
|
|
174
|
-
}
|
|
175
|
-
async function getGuardExceptions(client) {
|
|
176
|
-
const raw = await client.requestJson("/guard/exceptions", {
|
|
177
|
-
method: "GET"
|
|
178
|
-
});
|
|
179
|
-
return client.parseWithSchema(
|
|
180
|
-
raw,
|
|
181
|
-
guardExceptionListResponseSchema,
|
|
182
|
-
"guard exceptions response"
|
|
183
|
-
);
|
|
184
|
-
}
|
|
185
|
-
async function getGuardWatchlist(client) {
|
|
186
|
-
const raw = await client.requestJson("/guard/watchlist", {
|
|
187
|
-
method: "GET"
|
|
188
|
-
});
|
|
189
|
-
return client.parseWithSchema(
|
|
190
|
-
raw,
|
|
191
|
-
guardWatchlistResponseSchema,
|
|
192
|
-
"guard watchlist response"
|
|
193
|
-
);
|
|
194
|
-
}
|
|
195
|
-
async function addGuardWatchlistItem(client, payload) {
|
|
196
|
-
const raw = await client.requestJson("/guard/watchlist", {
|
|
197
|
-
method: "POST",
|
|
198
|
-
body: payload
|
|
199
|
-
});
|
|
200
|
-
return client.parseWithSchema(
|
|
201
|
-
raw,
|
|
202
|
-
guardWatchlistResponseSchema,
|
|
203
|
-
"guard watchlist response"
|
|
204
|
-
);
|
|
205
|
-
}
|
|
206
|
-
async function removeGuardWatchlistItem(client, artifactId) {
|
|
207
|
-
const normalizedArtifactId = artifactId.trim();
|
|
208
|
-
if (!normalizedArtifactId) {
|
|
209
|
-
throw new Error("artifactId is required");
|
|
70
|
+
const withPaymentInterceptor = x402Axios.withPaymentInterceptor;
|
|
71
|
+
const decodePaymentResponse = x402Axios.decodeXPaymentResponse;
|
|
72
|
+
const createX402Signer = x402Types.createSigner;
|
|
73
|
+
const createPaymentClient = (walletClient) => {
|
|
74
|
+
const axiosClient = axios.create({
|
|
75
|
+
baseURL: client.baseUrl,
|
|
76
|
+
headers: {
|
|
77
|
+
...client.getDefaultHeaders(),
|
|
78
|
+
"content-type": "application/json"
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
const paymentClient = withPaymentInterceptor(axiosClient, walletClient);
|
|
82
|
+
return paymentClient;
|
|
83
|
+
};
|
|
84
|
+
return { createPaymentClient, decodePaymentResponse, createX402Signer };
|
|
85
|
+
}
|
|
86
|
+
function calculateHbarAmountParam(hbarAmount) {
|
|
87
|
+
const tinybars = Math.ceil(hbarAmount * 1e8);
|
|
88
|
+
if (tinybars <= 0) {
|
|
89
|
+
throw new Error("Calculated purchase amount must be positive");
|
|
210
90
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
)
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
91
|
+
return tinybars / 1e8;
|
|
92
|
+
}
|
|
93
|
+
async function purchaseCreditsWithHbar(client, params) {
|
|
94
|
+
const body = {
|
|
95
|
+
accountId: params.accountId,
|
|
96
|
+
payerKey: params.privateKey,
|
|
97
|
+
hbarAmount: calculateHbarAmountParam(params.hbarAmount)
|
|
98
|
+
};
|
|
99
|
+
if (params.memo) {
|
|
100
|
+
body.memo = params.memo;
|
|
101
|
+
}
|
|
102
|
+
if (params.metadata) {
|
|
103
|
+
body.metadata = params.metadata;
|
|
104
|
+
}
|
|
105
|
+
const raw = await client.requestJson("/credits/purchase", {
|
|
223
106
|
method: "POST",
|
|
224
|
-
|
|
107
|
+
headers: { "content-type": "application/json" },
|
|
108
|
+
body
|
|
225
109
|
});
|
|
226
110
|
return client.parseWithSchema(
|
|
227
111
|
raw,
|
|
228
|
-
|
|
229
|
-
"
|
|
112
|
+
creditPurchaseResponseSchema,
|
|
113
|
+
"credit purchase response"
|
|
230
114
|
);
|
|
231
115
|
}
|
|
232
|
-
async function
|
|
233
|
-
const normalizedExceptionId = exceptionId.trim();
|
|
234
|
-
if (!normalizedExceptionId) {
|
|
235
|
-
throw new Error("exceptionId is required");
|
|
236
|
-
}
|
|
116
|
+
async function getX402Minimums(client) {
|
|
237
117
|
const raw = await client.requestJson(
|
|
238
|
-
|
|
239
|
-
{ method: "
|
|
240
|
-
);
|
|
241
|
-
return client.parseWithSchema(
|
|
242
|
-
raw,
|
|
243
|
-
guardExceptionListResponseSchema,
|
|
244
|
-
"guard exceptions response"
|
|
245
|
-
);
|
|
246
|
-
}
|
|
247
|
-
async function getGuardTeamPolicyPack(client) {
|
|
248
|
-
const raw = await client.requestJson("/guard/team/policy-pack", {
|
|
249
|
-
method: "GET"
|
|
250
|
-
});
|
|
251
|
-
return client.parseWithSchema(
|
|
252
|
-
raw,
|
|
253
|
-
guardTeamPolicyPackSchema,
|
|
254
|
-
"guard team policy pack response"
|
|
118
|
+
"/credits/purchase/x402/minimums",
|
|
119
|
+
{ method: "GET" }
|
|
255
120
|
);
|
|
256
|
-
}
|
|
257
|
-
async function updateGuardTeamPolicyPack(client, payload) {
|
|
258
|
-
const raw = await client.requestJson("/guard/team/policy-pack", {
|
|
259
|
-
method: "PUT",
|
|
260
|
-
body: payload
|
|
261
|
-
});
|
|
262
121
|
return client.parseWithSchema(
|
|
263
122
|
raw,
|
|
264
|
-
|
|
265
|
-
"
|
|
123
|
+
x402MinimumsResponseSchema,
|
|
124
|
+
"x402 minimums response"
|
|
266
125
|
);
|
|
267
126
|
}
|
|
268
|
-
async function
|
|
269
|
-
const
|
|
270
|
-
|
|
271
|
-
|
|
127
|
+
async function purchaseCreditsWithX402(client, params) {
|
|
128
|
+
const { createPaymentClient, decodePaymentResponse } = await loadX402Dependencies(client);
|
|
129
|
+
if (!Number.isFinite(params.credits) || params.credits <= 0) {
|
|
130
|
+
throw new Error("credits must be a positive number");
|
|
131
|
+
}
|
|
132
|
+
if (params.usdAmount !== void 0 && (!Number.isFinite(params.usdAmount) || params.usdAmount <= 0)) {
|
|
133
|
+
throw new Error("usdAmount must be a positive number when provided");
|
|
134
|
+
}
|
|
135
|
+
const body = {
|
|
136
|
+
accountId: params.accountId,
|
|
137
|
+
credits: params.credits
|
|
138
|
+
};
|
|
139
|
+
if (params.usdAmount !== void 0) {
|
|
140
|
+
body.usdAmount = params.usdAmount;
|
|
141
|
+
}
|
|
142
|
+
if (params.description) {
|
|
143
|
+
body.description = params.description;
|
|
144
|
+
}
|
|
145
|
+
if (params.metadata) {
|
|
146
|
+
body.metadata = params.metadata;
|
|
147
|
+
}
|
|
148
|
+
const paymentClient = createPaymentClient(params.walletClient);
|
|
149
|
+
const response = await paymentClient.post("/credits/purchase/x402", body);
|
|
150
|
+
const parsed = client.parseWithSchema(
|
|
151
|
+
response.data,
|
|
152
|
+
x402CreditPurchaseResponseSchema,
|
|
153
|
+
"x402 credit purchase response"
|
|
154
|
+
);
|
|
155
|
+
const responseHeaders = response.headers ?? {};
|
|
156
|
+
const paymentHeader = typeof responseHeaders["x-payment-response"] === "string" ? responseHeaders["x-payment-response"] : void 0;
|
|
157
|
+
const decodedPayment = paymentHeader !== void 0 ? decodePaymentResponse(paymentHeader) : void 0;
|
|
158
|
+
return {
|
|
159
|
+
...parsed,
|
|
160
|
+
paymentResponseHeader: paymentHeader,
|
|
161
|
+
paymentResponse: decodedPayment
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
async function buyCreditsWithX402(client, params) {
|
|
165
|
+
const network = params.network ?? "base";
|
|
166
|
+
const { createX402Signer } = await loadX402Dependencies(client);
|
|
167
|
+
const normalizedKey = normalizeHexPrivateKey(params.evmPrivateKey);
|
|
168
|
+
const walletClient = await createX402Signer(network, normalizedKey);
|
|
169
|
+
return purchaseCreditsWithX402(client, {
|
|
170
|
+
accountId: params.accountId,
|
|
171
|
+
credits: params.credits,
|
|
172
|
+
usdAmount: params.usdAmount,
|
|
173
|
+
description: params.description,
|
|
174
|
+
metadata: params.metadata,
|
|
175
|
+
walletClient
|
|
272
176
|
});
|
|
273
|
-
return client.parseWithSchema(
|
|
274
|
-
raw,
|
|
275
|
-
guardReceiptSyncResponseSchema,
|
|
276
|
-
"guard receipt sync response"
|
|
277
|
-
);
|
|
278
177
|
}
|
|
279
178
|
export {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
getGuardDevices,
|
|
288
|
-
getGuardEntitlements,
|
|
289
|
-
getGuardExceptions,
|
|
290
|
-
getGuardInventory,
|
|
291
|
-
getGuardInventoryDiff,
|
|
292
|
-
getGuardReceiptHistory,
|
|
293
|
-
getGuardRevocations,
|
|
294
|
-
getGuardSession,
|
|
295
|
-
getGuardTeamPolicyPack,
|
|
296
|
-
getGuardTrustByHash,
|
|
297
|
-
getGuardWatchlist,
|
|
298
|
-
removeGuardException,
|
|
299
|
-
removeGuardWatchlistItem,
|
|
300
|
-
resolveGuardTrust,
|
|
301
|
-
syncGuardReceipts,
|
|
302
|
-
updateGuardAlertPreferences,
|
|
303
|
-
updateGuardTeamPolicyPack
|
|
179
|
+
buyCreditsWithX402,
|
|
180
|
+
createHbarPurchaseIntent,
|
|
181
|
+
getCreditProviders,
|
|
182
|
+
getCreditsBalance,
|
|
183
|
+
getX402Minimums,
|
|
184
|
+
purchaseCreditsWithHbar,
|
|
185
|
+
purchaseCreditsWithX402
|
|
304
186
|
};
|
|
305
187
|
//# sourceMappingURL=standards-sdk.es182.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es182.js","sources":["../../src/services/registry-broker/client/guard.ts"],"sourcesContent":["import type {\n GuardAlertPreferences,\n GuardAlertPreferencesUpdate,\n GuardAbomResponse,\n GuardArtifactTimelineResponse,\n GuardBalanceResponse,\n GuardDeviceListResponse,\n GuardExceptionListResponse,\n GuardExceptionUpsert,\n GuardInventoryDiffResponse,\n GuardInventoryResponse,\n GuardReceiptExportResponse,\n GuardReceiptHistoryResponse,\n GuardReceiptSyncPayload,\n GuardReceiptSyncResponse,\n GuardRevocationResponse,\n GuardSessionResponse,\n GuardTeamPolicyPack,\n GuardTeamPolicyPackUpdate,\n GuardTrustByHashResponse,\n GuardTrustResolveQuery,\n GuardTrustResolveResponse,\n GuardWatchlistResponse,\n GuardWatchlistUpsert,\n JsonValue,\n} from '../types';\nimport {\n guardAlertPreferencesSchema,\n guardAbomResponseSchema,\n guardArtifactTimelineResponseSchema,\n guardBalanceResponseSchema,\n guardDeviceListResponseSchema,\n guardExceptionListResponseSchema,\n guardInventoryDiffResponseSchema,\n guardInventoryResponseSchema,\n guardReceiptExportResponseSchema,\n guardReceiptHistoryResponseSchema,\n guardReceiptSyncResponseSchema,\n guardRevocationResponseSchema,\n guardSessionResponseSchema,\n guardTeamPolicyPackSchema,\n guardTrustByHashResponseSchema,\n guardTrustResolveResponseSchema,\n guardWatchlistResponseSchema,\n} from '../schemas';\nimport type { RegistryBrokerClient } from './base-client';\n\nexport async function getGuardSession(\n client: RegistryBrokerClient,\n): Promise<GuardSessionResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/auth/session', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardSessionResponseSchema,\n 'guard session response',\n );\n}\n\nexport async function getGuardEntitlements(\n client: RegistryBrokerClient,\n): Promise<GuardSessionResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/entitlements', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardSessionResponseSchema,\n 'guard entitlements response',\n );\n}\n\nexport async function getGuardBillingBalance(\n client: RegistryBrokerClient,\n): Promise<GuardBalanceResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/billing/balance', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardBalanceResponseSchema,\n 'guard billing balance response',\n );\n}\n\nexport async function getGuardTrustByHash(\n client: RegistryBrokerClient,\n sha256: string,\n): Promise<GuardTrustByHashResponse> {\n const normalizedHash = sha256.trim();\n if (!normalizedHash) {\n throw new Error('sha256 is required');\n }\n const raw = await client.requestJson<JsonValue>(\n `/guard/trust/by-hash/${encodeURIComponent(normalizedHash)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n guardTrustByHashResponseSchema,\n 'guard trust by hash response',\n );\n}\n\nexport async function resolveGuardTrust(\n client: RegistryBrokerClient,\n query: GuardTrustResolveQuery,\n): Promise<GuardTrustResolveResponse> {\n const params = new URLSearchParams();\n if (query.ecosystem?.trim()) {\n params.set('ecosystem', query.ecosystem.trim());\n }\n if (query.name?.trim()) {\n params.set('name', query.name.trim());\n }\n if (query.version?.trim()) {\n params.set('version', query.version.trim());\n }\n const suffix = params.size > 0 ? `?${params.toString()}` : '';\n const raw = await client.requestJson<JsonValue>(\n `/guard/trust/resolve${suffix}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n guardTrustResolveResponseSchema,\n 'guard trust resolve response',\n );\n}\n\nexport async function getGuardRevocations(\n client: RegistryBrokerClient,\n): Promise<GuardRevocationResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/revocations', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardRevocationResponseSchema,\n 'guard revocations response',\n );\n}\n\nexport async function getGuardInventory(\n client: RegistryBrokerClient,\n): Promise<GuardInventoryResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/inventory', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardInventoryResponseSchema,\n 'guard inventory response',\n );\n}\n\nexport async function getGuardReceiptHistory(\n client: RegistryBrokerClient,\n): Promise<GuardReceiptHistoryResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/history', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardReceiptHistoryResponseSchema,\n 'guard receipt history response',\n );\n}\n\nexport async function getGuardArtifactTimeline(\n client: RegistryBrokerClient,\n artifactId: string,\n): Promise<GuardArtifactTimelineResponse> {\n const normalizedArtifactId = artifactId.trim();\n if (!normalizedArtifactId) {\n throw new Error('artifactId is required');\n }\n const raw = await client.requestJson<JsonValue>(\n `/guard/history/${encodeURIComponent(normalizedArtifactId)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n guardArtifactTimelineResponseSchema,\n 'guard artifact timeline response',\n );\n}\n\nexport async function exportGuardAbom(\n client: RegistryBrokerClient,\n): Promise<GuardAbomResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/abom', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardAbomResponseSchema,\n 'guard abom response',\n );\n}\n\nexport async function exportGuardReceipts(\n client: RegistryBrokerClient,\n): Promise<GuardReceiptExportResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/receipts/export', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardReceiptExportResponseSchema,\n 'guard receipt export response',\n );\n}\n\nexport async function getGuardInventoryDiff(\n client: RegistryBrokerClient,\n): Promise<GuardInventoryDiffResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/inventory/diff', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardInventoryDiffResponseSchema,\n 'guard inventory diff response',\n );\n}\n\nexport async function getGuardDevices(\n client: RegistryBrokerClient,\n): Promise<GuardDeviceListResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/devices', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardDeviceListResponseSchema,\n 'guard devices response',\n );\n}\n\nexport async function getGuardAlertPreferences(\n client: RegistryBrokerClient,\n): Promise<GuardAlertPreferences> {\n const raw = await client.requestJson<JsonValue>('/guard/alerts/preferences', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardAlertPreferencesSchema,\n 'guard alert preferences response',\n );\n}\n\nexport async function updateGuardAlertPreferences(\n client: RegistryBrokerClient,\n payload: GuardAlertPreferencesUpdate,\n): Promise<GuardAlertPreferences> {\n const raw = await client.requestJson<JsonValue>('/guard/alerts/preferences', {\n method: 'PUT',\n body: payload,\n });\n return client.parseWithSchema(\n raw,\n guardAlertPreferencesSchema,\n 'guard alert preferences response',\n );\n}\n\nexport async function getGuardExceptions(\n client: RegistryBrokerClient,\n): Promise<GuardExceptionListResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/exceptions', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardExceptionListResponseSchema,\n 'guard exceptions response',\n );\n}\n\nexport async function getGuardWatchlist(\n client: RegistryBrokerClient,\n): Promise<GuardWatchlistResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/watchlist', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardWatchlistResponseSchema,\n 'guard watchlist response',\n );\n}\n\nexport async function addGuardWatchlistItem(\n client: RegistryBrokerClient,\n payload: GuardWatchlistUpsert,\n): Promise<GuardWatchlistResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/watchlist', {\n method: 'POST',\n body: payload,\n });\n return client.parseWithSchema(\n raw,\n guardWatchlistResponseSchema,\n 'guard watchlist response',\n );\n}\n\nexport async function removeGuardWatchlistItem(\n client: RegistryBrokerClient,\n artifactId: string,\n): Promise<GuardWatchlistResponse> {\n const normalizedArtifactId = artifactId.trim();\n if (!normalizedArtifactId) {\n throw new Error('artifactId is required');\n }\n const raw = await client.requestJson<JsonValue>(\n `/guard/watchlist/${encodeURIComponent(normalizedArtifactId)}`,\n { method: 'DELETE' },\n );\n return client.parseWithSchema(\n raw,\n guardWatchlistResponseSchema,\n 'guard watchlist response',\n );\n}\n\nexport async function addGuardException(\n client: RegistryBrokerClient,\n payload: GuardExceptionUpsert,\n): Promise<GuardExceptionListResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/exceptions', {\n method: 'POST',\n body: payload,\n });\n return client.parseWithSchema(\n raw,\n guardExceptionListResponseSchema,\n 'guard exceptions response',\n );\n}\n\nexport async function removeGuardException(\n client: RegistryBrokerClient,\n exceptionId: string,\n): Promise<GuardExceptionListResponse> {\n const normalizedExceptionId = exceptionId.trim();\n if (!normalizedExceptionId) {\n throw new Error('exceptionId is required');\n }\n const raw = await client.requestJson<JsonValue>(\n `/guard/exceptions/${encodeURIComponent(normalizedExceptionId)}`,\n { method: 'DELETE' },\n );\n return client.parseWithSchema(\n raw,\n guardExceptionListResponseSchema,\n 'guard exceptions response',\n );\n}\n\nexport async function getGuardTeamPolicyPack(\n client: RegistryBrokerClient,\n): Promise<GuardTeamPolicyPack> {\n const raw = await client.requestJson<JsonValue>('/guard/team/policy-pack', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardTeamPolicyPackSchema,\n 'guard team policy pack response',\n );\n}\n\nexport async function updateGuardTeamPolicyPack(\n client: RegistryBrokerClient,\n payload: GuardTeamPolicyPackUpdate,\n): Promise<GuardTeamPolicyPack> {\n const raw = await client.requestJson<JsonValue>('/guard/team/policy-pack', {\n method: 'PUT',\n body: payload,\n });\n return client.parseWithSchema(\n raw,\n guardTeamPolicyPackSchema,\n 'guard team policy pack response',\n );\n}\n\nexport async function syncGuardReceipts(\n client: RegistryBrokerClient,\n payload: GuardReceiptSyncPayload,\n): Promise<GuardReceiptSyncResponse> {\n const raw = await client.requestJson<JsonValue>('/guard/receipts/sync', {\n method: 'POST',\n body: payload,\n });\n return client.parseWithSchema(\n raw,\n guardReceiptSyncResponseSchema,\n 'guard receipt sync response',\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es182.js","sources":["../../src/services/registry-broker/client/credits.ts"],"sourcesContent":["import type {\n CreditBalanceResponse,\n CreditProvidersResponse,\n CreditPurchaseResponse,\n HbarPurchaseIntentRequest,\n HbarPurchaseIntentResponse,\n JsonObject,\n JsonValue,\n X402CreditPurchaseResponse,\n X402MinimumsResponse,\n} from '../types';\nimport {\n creditBalanceResponseSchema,\n creditProvidersResponseSchema,\n creditPurchaseResponseSchema,\n hbarPurchaseIntentResponseSchema,\n x402CreditPurchaseResponseSchema,\n x402MinimumsResponseSchema,\n} from '../schemas';\nimport type { RegistryBrokerClient } from './base-client';\nimport { normalizeHexPrivateKey, type X402NetworkId } from './utils';\nimport { optionalImport } from '../../../utils/dynamic-import';\n\ntype PaymentHeaders = Record<string, string | string[] | undefined>;\ntype PaymentClient = {\n post: (\n url: string,\n body: JsonObject,\n ) => Promise<{ data: JsonValue; headers?: PaymentHeaders }>;\n};\n\nexport interface PurchaseCreditsWithX402Params {\n accountId: string;\n credits: number;\n usdAmount?: number;\n description?: string;\n metadata?: JsonObject;\n walletClient: object;\n}\n\nexport interface BuyCreditsWithX402Params {\n accountId: string;\n credits: number;\n usdAmount?: number;\n description?: string;\n metadata?: JsonObject;\n evmPrivateKey: string;\n network?: X402NetworkId;\n rpcUrl?: string;\n}\n\nexport type X402PurchaseResult = X402CreditPurchaseResponse & {\n paymentResponseHeader?: string;\n paymentResponse?: unknown;\n};\n\nexport async function getCreditsBalance(\n client: RegistryBrokerClient,\n params: { accountId?: string } = {},\n): Promise<CreditBalanceResponse> {\n const query = new URLSearchParams();\n const normalizedAccountId = params.accountId?.trim();\n if (normalizedAccountId) {\n query.set('accountId', normalizedAccountId);\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n const raw = await client.requestJson<JsonValue>(`/credits/balance${suffix}`, {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n creditBalanceResponseSchema,\n 'credit balance response',\n );\n}\n\nexport async function getCreditProviders(\n client: RegistryBrokerClient,\n): Promise<CreditProvidersResponse> {\n const raw = await client.requestJson<JsonValue>('/credits/providers', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n creditProvidersResponseSchema,\n 'credit providers response',\n );\n}\n\nexport async function createHbarPurchaseIntent(\n client: RegistryBrokerClient,\n payload: HbarPurchaseIntentRequest,\n): Promise<HbarPurchaseIntentResponse> {\n const body: JsonObject = {};\n const normalizedAccountId = payload.accountId?.trim();\n if (normalizedAccountId) {\n body.accountId = normalizedAccountId;\n }\n if (payload.credits !== undefined) {\n body.credits = payload.credits;\n }\n if (payload.hbarAmount !== undefined) {\n body.hbarAmount = payload.hbarAmount;\n }\n if (payload.memo?.trim()) {\n body.memo = payload.memo.trim();\n }\n\n const raw = await client.requestJson<JsonValue>(\n '/credits/payments/hbar/intent',\n {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body,\n },\n );\n return client.parseWithSchema(\n raw,\n hbarPurchaseIntentResponseSchema,\n 'hbar purchase intent response',\n );\n}\n\ntype LoadX402DependenciesResult = {\n createPaymentClient: (walletClient: object) => PaymentClient;\n decodePaymentResponse: (value: string) => unknown;\n createX402Signer: (\n network: X402NetworkId,\n privateKey: `0x${string}`,\n ) => Promise<object>;\n};\n\nasync function loadX402Dependencies(\n client: RegistryBrokerClient,\n): Promise<LoadX402DependenciesResult> {\n type X402AxiosModule = {\n withPaymentInterceptor: (client: unknown, walletClient: object) => unknown;\n decodeXPaymentResponse: (value: string) => unknown;\n };\n type X402TypesModule = {\n createSigner: (\n network: X402NetworkId,\n privateKey: `0x${string}`,\n ) => Promise<object>;\n };\n\n const [{ default: axios }, x402Axios, x402Types] = await Promise.all([\n import('axios'),\n optionalImport<X402AxiosModule>('x402-axios'),\n optionalImport<X402TypesModule>('x402/types'),\n ]);\n\n if (!x402Axios || !x402Types) {\n throw new Error(\n 'x402-axios and x402/types are required for X402 flows. Install them to enable ledger payments.',\n );\n }\n\n const withPaymentInterceptor = x402Axios.withPaymentInterceptor;\n const decodePaymentResponse = x402Axios.decodeXPaymentResponse;\n const createX402Signer = x402Types.createSigner;\n\n const createPaymentClient = (walletClient: object): PaymentClient => {\n const axiosClient = axios.create({\n baseURL: client.baseUrl,\n headers: {\n ...client.getDefaultHeaders(),\n 'content-type': 'application/json',\n },\n });\n const paymentClient = withPaymentInterceptor(axiosClient, walletClient);\n return paymentClient as PaymentClient;\n };\n\n return { createPaymentClient, decodePaymentResponse, createX402Signer };\n}\n\nfunction calculateHbarAmountParam(hbarAmount: number): number {\n const tinybars = Math.ceil(hbarAmount * 1e8);\n if (tinybars <= 0) {\n throw new Error('Calculated purchase amount must be positive');\n }\n return tinybars / 1e8;\n}\n\nexport async function purchaseCreditsWithHbar(\n client: RegistryBrokerClient,\n params: {\n accountId: string;\n privateKey: string;\n hbarAmount: number;\n memo?: string;\n metadata?: JsonObject;\n },\n): Promise<CreditPurchaseResponse> {\n const body: JsonObject = {\n accountId: params.accountId,\n payerKey: params.privateKey,\n hbarAmount: calculateHbarAmountParam(params.hbarAmount),\n };\n\n if (params.memo) {\n body.memo = params.memo;\n }\n\n if (params.metadata) {\n body.metadata = params.metadata;\n }\n\n const raw = await client.requestJson<JsonValue>('/credits/purchase', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body,\n });\n\n return client.parseWithSchema(\n raw,\n creditPurchaseResponseSchema,\n 'credit purchase response',\n );\n}\n\nexport async function getX402Minimums(\n client: RegistryBrokerClient,\n): Promise<X402MinimumsResponse> {\n const raw = await client.requestJson<JsonValue>(\n '/credits/purchase/x402/minimums',\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n x402MinimumsResponseSchema,\n 'x402 minimums response',\n );\n}\n\nexport async function purchaseCreditsWithX402(\n client: RegistryBrokerClient,\n params: PurchaseCreditsWithX402Params,\n): Promise<X402PurchaseResult> {\n const { createPaymentClient, decodePaymentResponse } =\n await loadX402Dependencies(client);\n\n if (!Number.isFinite(params.credits) || params.credits <= 0) {\n throw new Error('credits must be a positive number');\n }\n if (\n params.usdAmount !== undefined &&\n (!Number.isFinite(params.usdAmount) || params.usdAmount <= 0)\n ) {\n throw new Error('usdAmount must be a positive number when provided');\n }\n\n const body: JsonObject = {\n accountId: params.accountId,\n credits: params.credits,\n };\n\n if (params.usdAmount !== undefined) {\n body.usdAmount = params.usdAmount;\n }\n if (params.description) {\n body.description = params.description;\n }\n if (params.metadata) {\n body.metadata = params.metadata;\n }\n\n const paymentClient = createPaymentClient(params.walletClient);\n\n const response = await paymentClient.post('/credits/purchase/x402', body);\n\n const parsed = client.parseWithSchema(\n response.data,\n x402CreditPurchaseResponseSchema,\n 'x402 credit purchase response',\n );\n\n const responseHeaders = response.headers ?? {};\n const paymentHeader =\n typeof responseHeaders['x-payment-response'] === 'string'\n ? responseHeaders['x-payment-response']\n : undefined;\n const decodedPayment =\n paymentHeader !== undefined\n ? decodePaymentResponse(paymentHeader)\n : undefined;\n\n return {\n ...parsed,\n paymentResponseHeader: paymentHeader,\n paymentResponse: decodedPayment,\n };\n}\n\nexport async function buyCreditsWithX402(\n client: RegistryBrokerClient,\n params: BuyCreditsWithX402Params,\n): Promise<X402PurchaseResult> {\n const network: X402NetworkId = params.network ?? 'base';\n const { createX402Signer } = await loadX402Dependencies(client);\n const normalizedKey = normalizeHexPrivateKey(params.evmPrivateKey);\n const walletClient = await createX402Signer(network, normalizedKey);\n\n return purchaseCreditsWithX402(client, {\n accountId: params.accountId,\n credits: params.credits,\n usdAmount: params.usdAmount,\n description: params.description,\n metadata: params.metadata,\n walletClient,\n });\n}\n"],"names":[],"mappings":";;;AAwDA,eAAsB,kBACpB,QACA,SAAiC,IACD;AAChC,QAAM,QAAQ,IAAI,gBAAA;AAClB,QAAM,sBAAsB,OAAO,WAAW,KAAA;AAC9C,MAAI,qBAAqB;AACvB,UAAM,IAAI,aAAa,mBAAmB;AAAA,EAC5C;AACA,QAAM,SAAS,MAAM,OAAO,IAAI,IAAI,MAAM,UAAU,KAAK;AACzD,QAAM,MAAM,MAAM,OAAO,YAAuB,mBAAmB,MAAM,IAAI;AAAA,IAC3E,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,mBACpB,QACkC;AAClC,QAAM,MAAM,MAAM,OAAO,YAAuB,sBAAsB;AAAA,IACpE,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,yBACpB,QACA,SACqC;AACrC,QAAM,OAAmB,CAAA;AACzB,QAAM,sBAAsB,QAAQ,WAAW,KAAA;AAC/C,MAAI,qBAAqB;AACvB,SAAK,YAAY;AAAA,EACnB;AACA,MAAI,QAAQ,YAAY,QAAW;AACjC,SAAK,UAAU,QAAQ;AAAA,EACzB;AACA,MAAI,QAAQ,eAAe,QAAW;AACpC,SAAK,aAAa,QAAQ;AAAA,EAC5B;AACA,MAAI,QAAQ,MAAM,QAAQ;AACxB,SAAK,OAAO,QAAQ,KAAK,KAAA;AAAA,EAC3B;AAEA,QAAM,MAAM,MAAM,OAAO;AAAA,IACvB;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,MAC3B;AAAA,IAAA;AAAA,EACF;AAEF,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAWA,eAAe,qBACb,QACqC;AAYrC,QAAM,CAAC,EAAE,SAAS,MAAA,GAAS,WAAW,SAAS,IAAI,MAAM,QAAQ,IAAI;AAAA,IACnE,OAAO,OAAO;AAAA,IACd,eAAgC,YAAY;AAAA,IAC5C,eAAgC,YAAY;AAAA,EAAA,CAC7C;AAED,MAAI,CAAC,aAAa,CAAC,WAAW;AAC5B,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,yBAAyB,UAAU;AACzC,QAAM,wBAAwB,UAAU;AACxC,QAAM,mBAAmB,UAAU;AAEnC,QAAM,sBAAsB,CAAC,iBAAwC;AACnE,UAAM,cAAc,MAAM,OAAO;AAAA,MAC/B,SAAS,OAAO;AAAA,MAChB,SAAS;AAAA,QACP,GAAG,OAAO,kBAAA;AAAA,QACV,gBAAgB;AAAA,MAAA;AAAA,IAClB,CACD;AACD,UAAM,gBAAgB,uBAAuB,aAAa,YAAY;AACtE,WAAO;AAAA,EACT;AAEA,SAAO,EAAE,qBAAqB,uBAAuB,iBAAA;AACvD;AAEA,SAAS,yBAAyB,YAA4B;AAC5D,QAAM,WAAW,KAAK,KAAK,aAAa,GAAG;AAC3C,MAAI,YAAY,GAAG;AACjB,UAAM,IAAI,MAAM,6CAA6C;AAAA,EAC/D;AACA,SAAO,WAAW;AACpB;AAEA,eAAsB,wBACpB,QACA,QAOiC;AACjC,QAAM,OAAmB;AAAA,IACvB,WAAW,OAAO;AAAA,IAClB,UAAU,OAAO;AAAA,IACjB,YAAY,yBAAyB,OAAO,UAAU;AAAA,EAAA;AAGxD,MAAI,OAAO,MAAM;AACf,SAAK,OAAO,OAAO;AAAA,EACrB;AAEA,MAAI,OAAO,UAAU;AACnB,SAAK,WAAW,OAAO;AAAA,EACzB;AAEA,QAAM,MAAM,MAAM,OAAO,YAAuB,qBAAqB;AAAA,IACnE,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,IAC3B;AAAA,EAAA,CACD;AAED,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,gBACpB,QAC+B;AAC/B,QAAM,MAAM,MAAM,OAAO;AAAA,IACvB;AAAA,IACA,EAAE,QAAQ,MAAA;AAAA,EAAM;AAElB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,wBACpB,QACA,QAC6B;AAC7B,QAAM,EAAE,qBAAqB,sBAAA,IAC3B,MAAM,qBAAqB,MAAM;AAEnC,MAAI,CAAC,OAAO,SAAS,OAAO,OAAO,KAAK,OAAO,WAAW,GAAG;AAC3D,UAAM,IAAI,MAAM,mCAAmC;AAAA,EACrD;AACA,MACE,OAAO,cAAc,WACpB,CAAC,OAAO,SAAS,OAAO,SAAS,KAAK,OAAO,aAAa,IAC3D;AACA,UAAM,IAAI,MAAM,mDAAmD;AAAA,EACrE;AAEA,QAAM,OAAmB;AAAA,IACvB,WAAW,OAAO;AAAA,IAClB,SAAS,OAAO;AAAA,EAAA;AAGlB,MAAI,OAAO,cAAc,QAAW;AAClC,SAAK,YAAY,OAAO;AAAA,EAC1B;AACA,MAAI,OAAO,aAAa;AACtB,SAAK,cAAc,OAAO;AAAA,EAC5B;AACA,MAAI,OAAO,UAAU;AACnB,SAAK,WAAW,OAAO;AAAA,EACzB;AAEA,QAAM,gBAAgB,oBAAoB,OAAO,YAAY;AAE7D,QAAM,WAAW,MAAM,cAAc,KAAK,0BAA0B,IAAI;AAExE,QAAM,SAAS,OAAO;AAAA,IACpB,SAAS;AAAA,IACT;AAAA,IACA;AAAA,EAAA;AAGF,QAAM,kBAAkB,SAAS,WAAW,CAAA;AAC5C,QAAM,gBACJ,OAAO,gBAAgB,oBAAoB,MAAM,WAC7C,gBAAgB,oBAAoB,IACpC;AACN,QAAM,iBACJ,kBAAkB,SACd,sBAAsB,aAAa,IACnC;AAEN,SAAO;AAAA,IACL,GAAG;AAAA,IACH,uBAAuB;AAAA,IACvB,iBAAiB;AAAA,EAAA;AAErB;AAEA,eAAsB,mBACpB,QACA,QAC6B;AAC7B,QAAM,UAAyB,OAAO,WAAW;AACjD,QAAM,EAAE,iBAAA,IAAqB,MAAM,qBAAqB,MAAM;AAC9D,QAAM,gBAAgB,uBAAuB,OAAO,aAAa;AACjE,QAAM,eAAe,MAAM,iBAAiB,SAAS,aAAa;AAElE,SAAO,wBAAwB,QAAQ;AAAA,IACrC,WAAW,OAAO;AAAA,IAClB,SAAS,OAAO;AAAA,IAChB,WAAW,OAAO;AAAA,IAClB,aAAa,OAAO;AAAA,IACpB,UAAU,OAAO;AAAA,IACjB;AAAA,EAAA,CACD;AACH;"}
|