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.
- package/dist/P2PMarketplaceAPIClient.d.ts +2 -1
- package/dist/P2PMarketplaceAPIClient.js +6 -0
- package/dist/cryptoUtils.d.ts +6 -0
- package/dist/cryptoUtils.js +11 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/types.d.ts +18 -2
- package/package.json +3 -3
- package/src/P2PMarketplaceAPIClient.ts +6 -1
- package/src/cryptoUtils.ts +8 -0
- package/src/index.ts +1 -0
- package/src/types.ts +22 -2
|
@@ -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,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
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
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
|
-
|
|
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
|
-
|
|
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;
|