b5-api-client 0.0.7 → 0.0.9

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.
@@ -1,4 +1,4 @@
1
- import { CreateOrderRequest, CreateUserRequest, GetOrdersParams, Order, OrderResponse, TakeOrderRequest, TestEventParams, UpdateOrderRequest, TransactionStatusResponse } from './types';
1
+ import { CreateOrderRequest, CreateUserRequest, GetOrdersParams, Order, OrderResponse, TakeOrderRequest, TestEventParams, UpdateOrderRequest, TransactionStatusResponse, RateUserRequest } from './types';
2
2
  declare class P2PMarketplaceAPIClient {
3
3
  private readonly client;
4
4
  private readonly defaultHeaders;
@@ -13,6 +13,7 @@ declare class P2PMarketplaceAPIClient {
13
13
  takeOrder(order: TakeOrderRequest, headers?: Record<string, string>): Promise<OrderResponse>;
14
14
  createUser(user: CreateUserRequest, headers?: Record<string, string>): Promise<Order>;
15
15
  updateOrder(updateRequest: UpdateOrderRequest, headers?: Record<string, string>): Promise<Order>;
16
+ rateUser(rateUserRequest: RateUserRequest, headers?: Record<string, string>): Promise<any>;
16
17
  testLockFunds(order: Order, testParams?: TestEventParams, headers?: Record<string, string>): Promise<void>;
17
18
  testReleaseFunds(order: Order, testParams?: TestEventParams, headers?: Record<string, string>): Promise<void>;
18
19
  releaseFunds(order: Order, testParams?: TestEventParams, headers?: Record<string, string>): Promise<string>;
@@ -121,6 +121,12 @@ class P2PMarketplaceAPIClient {
121
121
  return this.post(url, updateRequest, headers);
122
122
  });
123
123
  }
124
+ rateUser(rateUserRequest, headers) {
125
+ return __awaiter(this, void 0, void 0, function* () {
126
+ const url = '/users/rate';
127
+ return this.post(url, rateUserRequest, headers);
128
+ });
129
+ }
124
130
  testLockFunds(order, testParams, headers) {
125
131
  var _a, _b, _c, _d;
126
132
  return __awaiter(this, void 0, void 0, function* () {
@@ -0,0 +1,6 @@
1
+ /// <reference types="node" />
2
+ export declare function generateSecretAndHash(): {
3
+ secret: Buffer;
4
+ hash: Buffer;
5
+ hashHex: string;
6
+ };
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateSecretAndHash = void 0;
4
+ const crypto_1 = require("crypto");
5
+ function generateSecretAndHash() {
6
+ const secret = (0, crypto_1.randomBytes)(32);
7
+ const hash = (0, crypto_1.createHash)("sha256").update(new Uint8Array(secret)).digest();
8
+ const hashHex = "0x" + hash.toString("hex");
9
+ return { secret, hash, hashHex };
10
+ }
11
+ exports.generateSecretAndHash = generateSecretAndHash;
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export { default as P2PMarketplaceAPIClient } from './P2PMarketplaceAPIClient';
2
+ export { generateSecretAndHash } from './cryptoUtils';
2
3
  export * from './types';
package/dist/index.js CHANGED
@@ -17,7 +17,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.P2PMarketplaceAPIClient = void 0;
20
+ exports.generateSecretAndHash = exports.P2PMarketplaceAPIClient = void 0;
21
21
  var P2PMarketplaceAPIClient_1 = require("./P2PMarketplaceAPIClient");
22
22
  Object.defineProperty(exports, "P2PMarketplaceAPIClient", { enumerable: true, get: function () { return __importDefault(P2PMarketplaceAPIClient_1).default; } });
23
+ var cryptoUtils_1 = require("./cryptoUtils");
24
+ Object.defineProperty(exports, "generateSecretAndHash", { enumerable: true, get: function () { return cryptoUtils_1.generateSecretAndHash; } });
23
25
  __exportStar(require("./types"), exports);
package/dist/types.d.ts CHANGED
@@ -23,9 +23,16 @@ export interface Order {
23
23
  tokenCode?: string;
24
24
  fiatAmount?: string;
25
25
  fiatCode: string;
26
- paymentMethod?: PaymentMethod[];
26
+ paymentMethods?: PaymentMethod[];
27
27
  createdAt?: string;
28
28
  transaction?: string;
29
+ buyerHash?: string;
30
+ sellerHash?: string;
31
+ isLocked?: boolean;
32
+ txLock?: string;
33
+ txRelease?: string;
34
+ buyerHasRated: boolean;
35
+ sellerHasRated: boolean;
29
36
  }
30
37
  export interface OrderResponse {
31
38
  orders: Order[];
@@ -52,6 +59,8 @@ export interface CreateOrderRequest {
52
59
  walletAddress?: string;
53
60
  creatorId?: string;
54
61
  creatorUsername?: string;
62
+ buyerHash?: string;
63
+ sellerHash?: string;
55
64
  }
56
65
  export interface GetOrdersParams {
57
66
  status?: OrderStatus[];
@@ -66,6 +75,7 @@ export interface TakeSellOrderRequest {
66
75
  buyerAddress?: string;
67
76
  fiatAmount?: string;
68
77
  username?: string;
78
+ hash?: string;
69
79
  }
70
80
  export interface TakeBuyOrderRequest {
71
81
  type: string;
@@ -73,7 +83,8 @@ export interface TakeBuyOrderRequest {
73
83
  userId: string;
74
84
  amount: string;
75
85
  username?: string;
76
- paymentMethod?: PaymentMethod[];
86
+ paymentMethods?: PaymentMethod[];
87
+ hash?: string;
77
88
  }
78
89
  export interface CreateUserRequest {
79
90
  username: string;
@@ -87,6 +98,11 @@ export interface UpdateOrderRequest {
87
98
  txLock?: string;
88
99
  txRelease?: string;
89
100
  }
101
+ export interface RateUserRequest {
102
+ userId: string;
103
+ rating: number;
104
+ orderId: string;
105
+ }
90
106
  export interface OrderLockedEvent {
91
107
  type: string;
92
108
  orderId: string;
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "b5-api-client",
3
- "version": "0.0.7",
3
+ "version": "0.0.9",
4
4
  "description": "Escrow Backend API client",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "tsc",
9
+ "link": "npm link b5-api-client",
9
10
  "test:api": "ts-node ./src/APITester.ts"
10
11
  },
11
12
  "dependencies": {
@@ -14,7 +15,6 @@
14
15
  "lodash": "^4.17.21"
15
16
  },
16
17
  "devDependencies": {
17
- "@types/axios": "^1.6.7",
18
18
  "@types/lodash": "^4.17.7",
19
19
  "@types/node": "^14.14.10",
20
20
  "ts-node": "^10.9.2",
@@ -23,4 +23,4 @@
23
23
  "engines": {
24
24
  "node": ">=18.0.0"
25
25
  }
26
- }
26
+ }
@@ -1,5 +1,5 @@
1
1
  import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
2
- import { CreateOrderRequest, CreateUserRequest, GetOrdersParams, Order, OrderLockedEvent, OrderResponse, ReleaseOrderEvent as OrderReleasedEvent, TakeOrderRequest, TestEventParams, UpdateOrderRequest, TransactionStatusResponse } from './types';
2
+ import { CreateOrderRequest, CreateUserRequest, GetOrdersParams, Order, OrderLockedEvent, OrderResponse, ReleaseOrderEvent as OrderReleasedEvent, TakeOrderRequest, TestEventParams, UpdateOrderRequest, TransactionStatusResponse, RateUserRequest } from './types';
3
3
  import { isPlainObject, camelCase, snakeCase, transform } from 'lodash';
4
4
 
5
5
  class P2PMarketplaceAPIClient {
@@ -106,6 +106,11 @@ class P2PMarketplaceAPIClient {
106
106
  return this.post<Order>(url, updateRequest, headers);
107
107
  }
108
108
 
109
+ public async rateUser(rateUserRequest: RateUserRequest, headers?: Record<string, string>): Promise<any> {
110
+ const url = '/users/rate';
111
+ return this.post<any>(url, rateUserRequest, headers);
112
+ }
113
+
109
114
  public async testLockFunds(order: Order, testParams?: TestEventParams, headers?: Record<string, string>) {
110
115
  const orderEvent: OrderLockedEvent = {
111
116
  type: "LOCKED",
@@ -0,0 +1,8 @@
1
+ import { randomBytes, createHash } from 'crypto';
2
+
3
+ export function generateSecretAndHash(): { secret: Buffer, hash: Buffer, hashHex: string } {
4
+ const secret: Buffer = randomBytes(32);
5
+ const hash: Buffer = createHash("sha256").update(new Uint8Array(secret)).digest();
6
+ const hashHex = "0x" + hash.toString("hex");
7
+ return { secret, hash, hashHex };
8
+ }
package/src/index.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export { default as P2PMarketplaceAPIClient } from './P2PMarketplaceAPIClient';
2
+ export { generateSecretAndHash } from './cryptoUtils'
2
3
  export * from './types';
package/src/types.ts CHANGED
@@ -3,6 +3,9 @@ export type OrderType = 'SELL' | 'BUY';
3
3
  export type OrderStatus =
4
4
  'WAITING_PAYMENT' |
5
5
  'WAITING_BUYER_ADDRESS' |
6
+ 'WAITING_APPROVE' |
7
+ 'APPROVED' |
8
+ 'WAITING_ESCROW' |
6
9
  'PENDING' |
7
10
  'ACTIVE' |
8
11
  'FIAT_SENT' |
@@ -40,9 +43,16 @@ export interface Order {
40
43
  tokenCode?: string;
41
44
  fiatAmount?: string;
42
45
  fiatCode: string;
43
- paymentMethod?: PaymentMethod[];
46
+ paymentMethods?: PaymentMethod[];
44
47
  createdAt?: string; // ISO 8601 string
45
48
  transaction?: string;
49
+ buyerHash?: string;
50
+ sellerHash?: string;
51
+ isLocked?: boolean;
52
+ txLock?: string;
53
+ txRelease?: string;
54
+ buyerHasRated: boolean,
55
+ sellerHasRated: boolean
46
56
  }
47
57
 
48
58
  export interface OrderResponse {
@@ -72,6 +82,8 @@ export interface CreateOrderRequest {
72
82
  walletAddress?: string;
73
83
  creatorId?: string;
74
84
  creatorUsername?: string;
85
+ buyerHash?: string;
86
+ sellerHash?: string;
75
87
  }
76
88
 
77
89
  export interface GetOrdersParams {
@@ -89,6 +101,7 @@ export interface TakeSellOrderRequest {
89
101
  buyerAddress?: string;
90
102
  fiatAmount?: string;
91
103
  username?: string;
104
+ hash?: string;
92
105
  }
93
106
 
94
107
  export interface TakeBuyOrderRequest {
@@ -97,7 +110,8 @@ export interface TakeBuyOrderRequest {
97
110
  userId: string;
98
111
  amount: string;
99
112
  username?: string;
100
- paymentMethod?: PaymentMethod[];
113
+ paymentMethods?: PaymentMethod[];
114
+ hash?: string;
101
115
  }
102
116
 
103
117
  export interface CreateUserRequest {
@@ -114,6 +128,12 @@ export interface UpdateOrderRequest {
114
128
  txRelease?: string;
115
129
  }
116
130
 
131
+ export interface RateUserRequest {
132
+ userId: string;
133
+ rating: number;
134
+ orderId: string;
135
+ }
136
+
117
137
  export interface OrderLockedEvent {
118
138
  type: string;
119
139
  orderId: string;