anchor-sdk 0.1.43-beta.1 → 0.1.43-beta.3

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.
Files changed (36) hide show
  1. package/dist/index.js +6450 -1339
  2. package/dist/index.js.map +12 -11
  3. package/dist/react/index.js +6462 -8
  4. package/dist/react/index.js.map +19 -0
  5. package/package.json +10 -5
  6. package/dist/AnchorApiClientV2.d.ts.map +0 -1
  7. package/dist/AnchorApiClientV2.js +0 -358
  8. package/dist/AnchorERC1155Client.d.ts.map +0 -1
  9. package/dist/AnchorERC1155Client.js +0 -301
  10. package/dist/AnchorPayClient.d.ts.map +0 -1
  11. package/dist/AnchorPayClient.js +0 -908
  12. package/dist/abi/AnchorERC1155.d.ts.map +0 -1
  13. package/dist/abi/AnchorERC1155.js +0 -1122
  14. package/dist/abi/AnchorPay.json +0 -578
  15. package/dist/constants.d.ts.map +0 -1
  16. package/dist/constants.js +0 -367
  17. package/dist/generated/Api.d.ts.map +0 -1
  18. package/dist/generated/Api.js +0 -868
  19. package/dist/index.d.ts.map +0 -1
  20. package/dist/react/AnchorReactSDK.js +0 -192
  21. package/dist/typechain/AnchorERC1155.d.ts.map +0 -1
  22. package/dist/typechain/AnchorERC1155.js +0 -2
  23. package/dist/typechain/AnchorPay.d.ts.map +0 -1
  24. package/dist/typechain/AnchorPay.js +0 -2
  25. package/dist/typechain/common.d.ts.map +0 -1
  26. package/dist/typechain/common.js +0 -2
  27. package/dist/typechain/factories/AnchorERC1155__factory.d.ts.map +0 -1
  28. package/dist/typechain/factories/AnchorERC1155__factory.js +0 -1766
  29. package/dist/typechain/factories/AnchorPay__factory.d.ts.map +0 -1
  30. package/dist/typechain/factories/AnchorPay__factory.js +0 -469
  31. package/dist/typechain/factories/index.d.ts.map +0 -1
  32. package/dist/typechain/factories/index.js +0 -10
  33. package/dist/typechain/index.d.ts.map +0 -1
  34. package/dist/typechain/index.js +0 -41
  35. package/dist/types.d.ts.map +0 -1
  36. package/dist/types.js +0 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anchor-sdk",
3
- "version": "0.1.43-beta.1",
3
+ "version": "0.1.43-beta.3",
4
4
  "description": "TypeScript SDK for interacting with Anchor ecosystem - badge minting, payment processing, and ERC1155 token management",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -9,12 +9,11 @@
9
9
  "./react": "./dist/react/index.js"
10
10
  },
11
11
  "scripts": {
12
- "build": "tsc",
12
+ "build": "bun run scripts/build.ts",
13
13
  "test": "jest --passWithNoTests",
14
14
  "lint": "eslint src --ext .ts",
15
- "pre-publish-check": "./scripts/pre-publish-check.sh",
16
- "publish": "./scripts/publish.sh",
17
- "publish-internal": "./scripts/publish-internal.sh",
15
+ "release": "bun run scripts/publish.ts release",
16
+ "beta": "bun run scripts/publish.ts beta",
18
17
  "typechain": "typechain --target ethers-v6 --out-dir ./src/typechain './src/abi/**/**.json'",
19
18
  "generate-api": "npx swagger-typescript-api generate --path ./src/swagger/swagger.json --output ./src/generated",
20
19
  "merge-api": "openapi-merge-cli --config merge-config.json"
@@ -65,16 +64,22 @@
65
64
  },
66
65
  "devDependencies": {
67
66
  "@typechain/ethers-v6": "^0.5.1",
67
+ "@types/bun": "^1.3.2",
68
68
  "@types/jest": "^29.5.0",
69
69
  "@types/node": "^18.15.11",
70
70
  "@types/react": "^19.0.10",
71
71
  "@types/react-dom": "^19.0.4",
72
72
  "@typescript-eslint/eslint-plugin": "^5.57.1",
73
73
  "@typescript-eslint/parser": "^5.57.1",
74
+ "chalk": "^5.6.2",
75
+ "commander": "^14.0.2",
74
76
  "dotenv": "^16.4.7",
75
77
  "eslint": "^8.37.0",
78
+ "execa": "^9.6.0",
79
+ "inquirer": "^13.0.1",
76
80
  "jest": "^29.5.0",
77
81
  "openapi-merge-cli": "^1.3.2",
82
+ "ora": "^9.0.0",
78
83
  "react": "^19.0.0",
79
84
  "react-dom": "^19.0.0",
80
85
  "swagger-typescript-api": "^13.2.9",
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnchorApiClientV2.d.ts","sourceRoot":"","sources":["../src/AnchorApiClientV2.ts"],"names":[],"mappings":"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"}
@@ -1,358 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AnchorApiClientV2 = void 0;
4
- const Api_1 = require("./generated/Api");
5
- /**
6
- * Anchor API V2 客户端
7
- * 基于生成的 API 类型和端点,提供完整的 Anchor API 功能
8
- *
9
- * 这个客户端使用生成的 API 类型和端点,同时提供
10
- * 自动 header 注入和配置管理功能。
11
- */
12
- class AnchorApiClientV2 {
13
- /**
14
- * 创建 Anchor API V2 客户端
15
- * @param config 客户端配置
16
- */
17
- constructor(config) {
18
- this.network = config.network;
19
- this.authToken = config.authToken;
20
- this.projectId = config.projectId;
21
- this.chainId = config.network.id.toString();
22
- this.onTokenExpired = config.onTokenExpired;
23
- // 初始化生成的 API
24
- this.generatedApi = new Api_1.Api({
25
- baseUrl: config.apiBaseUrl.endsWith("/")
26
- ? config.apiBaseUrl.slice(0, -1)
27
- : config.apiBaseUrl
28
- });
29
- }
30
- /**
31
- * 设置认证令牌
32
- * @param token 认证令牌
33
- */
34
- setAuthToken(token) {
35
- this.authToken = token;
36
- }
37
- /**
38
- * 设置 Token 过期回调
39
- * @param callback Token 过期回调函数
40
- */
41
- setTokenExpiredCallback(callback) {
42
- this.onTokenExpired = callback;
43
- }
44
- /**
45
- * 设置项目 ID
46
- * @param projectId 项目 ID
47
- */
48
- setProjectId(projectId) {
49
- this.projectId = projectId;
50
- }
51
- /**
52
- * 设置链 ID
53
- * @param chainId 链 ID
54
- */
55
- setChainId(chainId) {
56
- this.chainId = chainId;
57
- }
58
- /**
59
- * 创建请求头
60
- * @returns 请求头对象
61
- */
62
- createHeaders() {
63
- const headers = {
64
- "Content-Type": "application/json"
65
- };
66
- // 添加标准化的请求头
67
- if (this.authToken) {
68
- headers["Authorization"] = `Bearer ${this.authToken}`;
69
- headers["jwt_token"] = `${this.authToken}`;
70
- }
71
- if (this.projectId) {
72
- headers["X-Project-Id"] = this.projectId;
73
- headers["saas_id"] = this.projectId;
74
- }
75
- if (this.chainId) {
76
- headers["X-Chain-Id"] = this.chainId;
77
- headers["chain_id"] = this.chainId;
78
- }
79
- return headers;
80
- }
81
- /**
82
- * 获取请求参数(包含 headers)
83
- * @returns 请求参数对象
84
- */
85
- getRequestParams() {
86
- return {
87
- headers: this.createHeaders()
88
- };
89
- }
90
- /**
91
- * 处理 API 调用的错误和 token 过期
92
- * @param apiCall API 调用函数
93
- * @returns API 调用结果
94
- */
95
- async handleApiCall(apiCall) {
96
- try {
97
- const result = await apiCall();
98
- // 检查响应体中的 token 过期信息
99
- if (this.isTokenExpiredResponse(result)) {
100
- console.log("Token expired: JWT token is invalid or expired");
101
- const error = new Error("Token expired: JWT token is invalid or expired");
102
- if (this.onTokenExpired) {
103
- this.onTokenExpired(error);
104
- }
105
- throw error;
106
- }
107
- return result;
108
- }
109
- catch (error) {
110
- // 检查 HTTP 401 状态码的 token 过期
111
- if (error?.status === 401) {
112
- if (this.onTokenExpired) {
113
- this.onTokenExpired(error);
114
- }
115
- }
116
- throw error;
117
- }
118
- }
119
- /**
120
- * 检查响应是否为 token 过期错误
121
- * @param response API 响应
122
- * @returns 是否为 token 过期错误
123
- */
124
- isTokenExpiredResponse(response) {
125
- // 检查响应体中的 token 过期标识
126
- // 优先检查:success 为 false 且 code 为 9101(标准 token 过期错误码)
127
- if (response?.success === false && response?.code === "9101") {
128
- return true;
129
- }
130
- // 检查 msgKey 是否为特定的 JWT 错误
131
- if (response?.success === false &&
132
- response?.msgKey === "params.jwt.check.invalid") {
133
- return true;
134
- }
135
- return false;
136
- }
137
- // ==================== V2 API Methods ====================
138
- /**
139
- * 获取徽章验证器
140
- * @route GET /v2/badges/verifiers
141
- * @param platform 平台标识符
142
- * @param type 条件类型
143
- * @returns 徽章验证器响应
144
- */
145
- async getBadgeVerifiers(platform, type) {
146
- return this.handleApiCall(async () => {
147
- const query = { platform, type };
148
- const response = await this.generatedApi.v2.getBadgeVerifiers(query, this.getRequestParams());
149
- return response.data;
150
- });
151
- }
152
- /**
153
- * 获取用户可领取徽章
154
- * @route GET /v2/badges/claimable
155
- * @param params 查询参数
156
- * @param params.series 徽章系列过滤器
157
- * @param params.limit 每页项目数
158
- * @param params.nextToken 分页令牌
159
- * @returns 徽章可领取列表响应
160
- */
161
- async getUserClaimableBadges(params) {
162
- return this.handleApiCall(async () => {
163
- const response = await this.generatedApi.v2.getUserClaimableBadges(params, this.getRequestParams());
164
- return response.data;
165
- });
166
- }
167
- /**
168
- * 获取用户徽章资产
169
- * @route GET /v2/badges/assets
170
- * @param params 查询参数
171
- * @param params.includeClaimable 徽章状态是否包含可领取
172
- * @param params.strategy 返回策略 BADGE_ALL/BADGE_MAX/BADGE_REWARD
173
- * @param params.series 徽章系列过滤器
174
- * @param params.limit 每页项目数
175
- * @param params.nextToken 分页令牌
176
- * @returns 徽章资产响应
177
- */
178
- async getUserBadgeAssets(params) {
179
- return this.handleApiCall(async () => {
180
- const response = await this.generatedApi.v2.getUserBadgeAssets(params, this.getRequestParams());
181
- return response.data;
182
- });
183
- }
184
- /**
185
- * 获取徽章系列详情
186
- * @route GET /v2/badges/series/{seriesId}
187
- * @param seriesId 系列标识符
188
- * @param params 查询参数
189
- * @param params.status 状态过滤器
190
- * @param params.businessType 业务类型过滤器
191
- * @returns 徽章系列详情响应
192
- */
193
- async getBadgeSeriesDetail(seriesId, params) {
194
- return this.handleApiCall(async () => {
195
- const response = await this.generatedApi.v2.getBadgeSeriesDetail(seriesId, params, this.getRequestParams());
196
- return response.data;
197
- });
198
- }
199
- /**
200
- * 获取徽章详情
201
- * @route GET /v2/badges/{badgeId}
202
- * @param badgeId 徽章标识符
203
- * @returns 徽章详情响应
204
- */
205
- async getBadgeDetail(badgeId) {
206
- return this.handleApiCall(async () => {
207
- const response = await this.generatedApi.v2.getBadgeDetail(badgeId, this.getRequestParams());
208
- return response.data;
209
- });
210
- }
211
- /**
212
- * 检查单个徽章可领取状态
213
- * @route POST /v2/badges/{badgeId}
214
- * @param badgeId 徽章标识符
215
- * @param data 徽章检查请求数据
216
- * @returns 徽章可领取响应
217
- */
218
- async checkSingleBadgeClaimable(badgeId, data) {
219
- return this.handleApiCall(async () => {
220
- const response = await this.generatedApi.v2.checkSingleBadgeClaimable(badgeId, data, this.getRequestParams());
221
- return response.data;
222
- });
223
- }
224
- /**
225
- * 检查用户可领取徽章
226
- * @route POST /v2/badges
227
- * @param data 徽章检查请求
228
- * @returns 徽章检查响应
229
- */
230
- async checkUserClaimableBadges(data) {
231
- return this.handleApiCall(async () => {
232
- const response = await this.generatedApi.v2.checkUserClaimableBadges(data, this.getRequestParams());
233
- return response.data;
234
- });
235
- }
236
- /**
237
- * @description query badges by conditions
238
- *
239
- * @tags BadgeV2
240
- * @name QueryBadges
241
- * @summary query badges by conditions
242
- * @request GET:/v2/badges
243
- */
244
- async queryBadges(params) {
245
- return this.handleApiCall(async () => {
246
- const response = await this.generatedApi.v2.queryBadges(params, this.getRequestParams());
247
- return response.data;
248
- });
249
- }
250
- /**
251
- * @description Get detailed information of a specific badge category
252
- *
253
- * @tags BadgeV2
254
- * @name CategoriesDetail
255
- * @summary Get badge detail by category
256
- * @request GET:/v2/badges/categories/{category}
257
- */
258
- async categoriesDetail(category) {
259
- return this.handleApiCall(async () => {
260
- const response = await this.generatedApi.v2.categoriesDetail(category, this.getRequestParams());
261
- return response.data;
262
- });
263
- }
264
- /**
265
- * 获取徽章详情
266
- * @route GET /v2/badges/categories
267
- * @param params.series 系列名
268
- * @param params.status 状态过滤器
269
- * @param params.businessType 业务类型过滤器
270
- * @returns 徽章详情响应
271
- */
272
- async categoriesList(params) {
273
- return this.handleApiCall(async () => {
274
- const response = await this.generatedApi.v2.categoriesList(params, this.getRequestParams());
275
- return response.data;
276
- });
277
- }
278
- /**
279
- * 获取徽章领取签名
280
- * @route POST /v2/badges/signatures
281
- * @param data 徽章领取签名请求
282
- * @returns 徽章领取签名响应
283
- */
284
- async getBadgeClaimSignatures(data) {
285
- return this.handleApiCall(async () => {
286
- const response = await this.generatedApi.v2.getBadgeClaimSignatures(data, this.getRequestParams());
287
- return response.data;
288
- });
289
- }
290
- /**
291
- * 获取徽章系列列表
292
- * @route GET /v2/badges/series
293
- * @param params 查询参数
294
- * @param params.includeBadges 是否包含徽章
295
- * @param params.status 状态过滤器
296
- * @param params.businessType 业务类型过滤器
297
- * @param params.limit 每页数量
298
- * @returns 徽章系列响应
299
- */
300
- async getBadgeSeries(params) {
301
- return this.handleApiCall(async () => {
302
- const response = await this.generatedApi.v2.getBadgeSeries(params, this.getRequestParams());
303
- return response.data;
304
- });
305
- }
306
- /**
307
- * Anchor 铸造
308
- * @route POST /v2/mint/{type}
309
- * @param type 铸造类型
310
- * @param data 铸造请求数据
311
- * @returns 铸造响应
312
- */
313
- async mint(type, data) {
314
- return this.handleApiCall(async () => {
315
- const response = await this.generatedApi.v2.mint(type, data, this.getRequestParams());
316
- return response.data;
317
- });
318
- }
319
- /**
320
- * Anchor 批量铸造
321
- * @route POST /v2/batch/mint/{type}
322
- * @param type 铸造类型
323
- * @param data 批量铸造请求数据
324
- * @returns 批量铸造响应
325
- */
326
- async batchMint(type, data) {
327
- return this.handleApiCall(async () => {
328
- const response = await this.generatedApi.v2.batchMint(type, data, this.getRequestParams());
329
- return response.data;
330
- });
331
- }
332
- // ==================== Transaction Methods ====================
333
- /**
334
- * 处理交易哈希(加速交易处理)
335
- * @route POST /v1/transaction/process/{txHash}
336
- * @param txHash 交易哈希
337
- * @returns 交易哈希处理响应
338
- */
339
- async transactionHashProcess(txHash) {
340
- return this.handleApiCall(async () => {
341
- const response = await this.generatedApi.v1.transactionHashProcess(txHash, this.getRequestParams());
342
- return response.data;
343
- });
344
- }
345
- /**
346
- * 处理用户操作哈希
347
- * @route POST /v1/transaction/process/userOpHash
348
- * @param data 用户操作哈希处理请求
349
- * @returns 用户操作哈希处理响应
350
- */
351
- async userOpHashProcess(data) {
352
- return this.handleApiCall(async () => {
353
- const response = await this.generatedApi.v1.userOpHashProcess(data, this.getRequestParams());
354
- return response.data;
355
- });
356
- }
357
- }
358
- exports.AnchorApiClientV2 = AnchorApiClientV2;
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnchorERC1155Client.d.ts","sourceRoot":"","sources":["../src/AnchorERC1155Client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,OAAO,EACP,KAAK,EAIL,GAAG,EAEH,YAAY,EAEZ,kBAAkB,EAClB,YAAY,EACb,MAAM,MAAM,CAAC;AAGd,OAAO,EAAgB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE1D;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAC,CAAe;IACpC,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,SAAS,CAIf;IAEF;;;;;;OAMG;gBAED,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,KAAK,EACd,YAAY,CAAC,EAAE,YAAY,EAC3B,OAAO,CAAC,EAAE,OAAO,EACjB,SAAS,CAAC,EAAE;QACV,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;KACnC;IASH;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAcnD;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAahC;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAalC;;;;;OAKG;IACG,iBAAiB,CACrB,aAAa,EAAE,iBAAiB,EAChC,oBAAoB,CAAC,EAAE,OAAO,EAC9B,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,kBAAkB,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAuE5E;;;;OAIG;IACH,uBAAuB,CAAC,aAAa,EAAE,iBAAiB,GAAG,GAAG;IAsD9D;;;;OAIG;IACH,yCAAyC,CACvC,aAAa,EAAE,iBAAiB,GAC/B,GAAG;IAkDN;;;;;OAKG;IACG,SAAS,CACb,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,GACtC,OAAO,CAAC,kBAAkB,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAsD5E;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CAkC1B"}