paytonz-node-api-sdk 1.0.0
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/README.md +743 -0
- package/lib/CpaySDK.d.ts +30 -0
- package/lib/CpaySDK.js +35 -0
- package/lib/CpaySDKBase.d.ts +30 -0
- package/lib/CpaySDKBase.js +216 -0
- package/lib/CryptoNowSDK.d.ts +30 -0
- package/lib/CryptoNowSDK.js +35 -0
- package/lib/CryptoNowSDKBase.d.ts +30 -0
- package/lib/CryptoNowSDKBase.js +216 -0
- package/lib/PaytonzSDK.d.ts +28 -0
- package/lib/PaytonzSDK.js +33 -0
- package/lib/PaytonzSDKBase.d.ts +30 -0
- package/lib/PaytonzSDKBase.js +198 -0
- package/lib/auth/auth.d.ts +9 -0
- package/lib/auth/auth.interface.d.ts +25 -0
- package/lib/auth/auth.interface.js +2 -0
- package/lib/auth/auth.js +37 -0
- package/lib/checkout/checkout.d.ts +24 -0
- package/lib/checkout/checkout.interface.d.ts +94 -0
- package/lib/checkout/checkout.interface.js +2 -0
- package/lib/checkout/checkout.js +215 -0
- package/lib/client/client.d.ts +11 -0
- package/lib/client/client.interface.d.ts +45 -0
- package/lib/client/client.interface.js +2 -0
- package/lib/client/client.js +62 -0
- package/lib/constant.d.ts +1 -0
- package/lib/constant.js +4 -0
- package/lib/currency/currency.d.ts +10 -0
- package/lib/currency/currency.interface.d.ts +20 -0
- package/lib/currency/currency.interface.js +2 -0
- package/lib/currency/currency.js +50 -0
- package/lib/external/external.d.ts +13 -0
- package/lib/external/external.interface.d.ts +59 -0
- package/lib/external/external.interface.js +12 -0
- package/lib/external/external.js +64 -0
- package/lib/external/external.solana.d.ts +9 -0
- package/lib/external/external.solana.js +47 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +28 -0
- package/lib/interfaces/cpay.interface.d.ts +20 -0
- package/lib/interfaces/cpay.interface.js +2 -0
- package/lib/interfaces/cryptonow.interface.d.ts +20 -0
- package/lib/interfaces/cryptonow.interface.js +2 -0
- package/lib/interfaces/paytonz.interface.d.ts +20 -0
- package/lib/interfaces/paytonz.interface.js +2 -0
- package/lib/multisend/multisend.d.ts +11 -0
- package/lib/multisend/multisend.interface.d.ts +28 -0
- package/lib/multisend/multisend.interface.js +2 -0
- package/lib/multisend/multisend.js +75 -0
- package/lib/swap/swap.d.ts +11 -0
- package/lib/swap/swap.interface.d.ts +84 -0
- package/lib/swap/swap.interface.js +2 -0
- package/lib/swap/swap.js +75 -0
- package/lib/transaction/transaction.d.ts +9 -0
- package/lib/transaction/transaction.interface.d.ts +82 -0
- package/lib/transaction/transaction.interface.js +2 -0
- package/lib/transaction/transaction.js +34 -0
- package/lib/utils/httpClient.d.ts +9 -0
- package/lib/utils/httpClient.js +64 -0
- package/lib/wallet/wallet.d.ts +16 -0
- package/lib/wallet/wallet.interface.d.ts +60 -0
- package/lib/wallet/wallet.interface.js +2 -0
- package/lib/wallet/wallet.js +107 -0
- package/lib/wallet/wallet.signature.d.ts +14 -0
- package/lib/wallet/wallet.signature.js +104 -0
- package/lib/withdrawal/withdrawal.d.ts +14 -0
- package/lib/withdrawal/withdrawal.interface.d.ts +79 -0
- package/lib/withdrawal/withdrawal.interface.js +14 -0
- package/lib/withdrawal/withdrawal.js +104 -0
- package/package.json +26 -0
- package/src/PaytonzSDK.ts +41 -0
- package/src/PaytonzSDKBase.ts +252 -0
- package/src/auth/auth.interface.ts +26 -0
- package/src/auth/auth.ts +31 -0
- package/src/checkout/checkout.interface.ts +110 -0
- package/src/checkout/checkout.ts +279 -0
- package/src/constant.ts +1 -0
- package/src/currency/currency.interface.ts +21 -0
- package/src/currency/currency.ts +60 -0
- package/src/external/external.interface.ts +65 -0
- package/src/external/external.solana.ts +54 -0
- package/src/external/external.ts +73 -0
- package/src/index.ts +5 -0
- package/src/interfaces/paytonz.interface.ts +23 -0
- package/src/multisend/multisend.interface.ts +32 -0
- package/src/multisend/multisend.ts +91 -0
- package/src/swap/swap.interface.ts +90 -0
- package/src/swap/swap.ts +93 -0
- package/src/transaction/transaction.interface.ts +76 -0
- package/src/transaction/transaction.ts +35 -0
- package/src/utils/httpClient.ts +60 -0
- package/src/wallet/wallet.interface.ts +67 -0
- package/src/wallet/wallet.signature.ts +106 -0
- package/src/wallet/wallet.ts +103 -0
- package/src/withdrawal/withdrawal.interface.ts +89 -0
- package/src/withdrawal/withdrawal.ts +135 -0
- package/tsconfig.json +21 -0
package/lib/CpaySDK.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Auth } from "./auth/auth";
|
|
2
|
+
import Checkout from "./checkout/checkout";
|
|
3
|
+
import { Client } from "./client/client";
|
|
4
|
+
import { CpaySDKBaseOptions } from "./CpaySDKBase";
|
|
5
|
+
import { Currency } from "./currency/currency";
|
|
6
|
+
import External from "./external/external";
|
|
7
|
+
import { Multisend } from "./multisend/multisend";
|
|
8
|
+
import { Swap } from "./swap/swap";
|
|
9
|
+
import Transaction from "./transaction/transaction";
|
|
10
|
+
import { Wallet } from "./wallet/wallet";
|
|
11
|
+
import { Withdrawal } from "./withdrawal/withdrawal";
|
|
12
|
+
export interface CpaySDKOptions extends CpaySDKBaseOptions {
|
|
13
|
+
}
|
|
14
|
+
export declare class CpaySDK {
|
|
15
|
+
/**
|
|
16
|
+
* @param parameters
|
|
17
|
+
*/
|
|
18
|
+
constructor(parameters: CpaySDKOptions);
|
|
19
|
+
wallet: Wallet;
|
|
20
|
+
currency: Currency;
|
|
21
|
+
withdrawal: Withdrawal;
|
|
22
|
+
multisend: Multisend;
|
|
23
|
+
checkout: Checkout;
|
|
24
|
+
transaction: Transaction;
|
|
25
|
+
externalCall: External;
|
|
26
|
+
auth: Auth;
|
|
27
|
+
swap: Swap;
|
|
28
|
+
client: Client;
|
|
29
|
+
}
|
|
30
|
+
export default CpaySDK;
|
package/lib/CpaySDK.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CpaySDK = void 0;
|
|
7
|
+
const auth_1 = require("./auth/auth");
|
|
8
|
+
const checkout_1 = __importDefault(require("./checkout/checkout"));
|
|
9
|
+
const client_1 = require("./client/client");
|
|
10
|
+
const currency_1 = require("./currency/currency");
|
|
11
|
+
const external_1 = __importDefault(require("./external/external"));
|
|
12
|
+
const multisend_1 = require("./multisend/multisend");
|
|
13
|
+
const swap_1 = require("./swap/swap");
|
|
14
|
+
const transaction_1 = __importDefault(require("./transaction/transaction"));
|
|
15
|
+
const wallet_1 = require("./wallet/wallet");
|
|
16
|
+
const withdrawal_1 = require("./withdrawal/withdrawal");
|
|
17
|
+
class CpaySDK {
|
|
18
|
+
/**
|
|
19
|
+
* @param parameters
|
|
20
|
+
*/
|
|
21
|
+
constructor(parameters) {
|
|
22
|
+
this.wallet = new wallet_1.Wallet(parameters);
|
|
23
|
+
this.currency = new currency_1.Currency(parameters);
|
|
24
|
+
this.withdrawal = new withdrawal_1.Withdrawal(parameters);
|
|
25
|
+
this.multisend = new multisend_1.Multisend(parameters);
|
|
26
|
+
this.checkout = new checkout_1.default(parameters);
|
|
27
|
+
this.transaction = new transaction_1.default(parameters);
|
|
28
|
+
this.externalCall = new external_1.default(parameters);
|
|
29
|
+
this.auth = new auth_1.Auth(parameters);
|
|
30
|
+
this.swap = new swap_1.Swap(parameters);
|
|
31
|
+
this.client = new client_1.Client(parameters);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.CpaySDK = CpaySDK;
|
|
35
|
+
exports.default = CpaySDK;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CpayToken } from "./interfaces/cpay.interface";
|
|
2
|
+
import { Options as HttpOptions } from "./utils/httpClient";
|
|
3
|
+
export interface CpaySDKBaseOptions {
|
|
4
|
+
publicKey?: string;
|
|
5
|
+
privateKey?: string;
|
|
6
|
+
walletId?: string;
|
|
7
|
+
passphrase?: string;
|
|
8
|
+
errLogger?: (mssage: string, ...arg: any[]) => void;
|
|
9
|
+
outLogger?: (mssage: string, ...arg: any[]) => void;
|
|
10
|
+
httpOptions?: HttpOptions;
|
|
11
|
+
url?: {
|
|
12
|
+
rest?: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export declare class CpaySDKBase {
|
|
16
|
+
protected options: Required<CpaySDKBaseOptions>;
|
|
17
|
+
constructor(options?: Partial<CpaySDKBaseOptions>);
|
|
18
|
+
protected setOptions(options?: Partial<CpaySDKBaseOptions>): void;
|
|
19
|
+
protected _request: <T>(path: string, options: HttpOptions) => Promise<T>;
|
|
20
|
+
protected request: <T>(path: string, options: HttpOptions) => Promise<T>;
|
|
21
|
+
protected auth_get: <T = any>(path: string, params: Record<string, any>, token: string) => Promise<T>;
|
|
22
|
+
protected auth_post: <T = any>(path: string, data: Record<string, any>, token: string) => Promise<T>;
|
|
23
|
+
protected post: <T = any>(path: string, data: Record<string, any>) => Promise<T>;
|
|
24
|
+
protected auth_delete: <T = any>(path: string, data: Record<string, any>, token: string) => Promise<T>;
|
|
25
|
+
protected auth_patch: <T = any>(path: string, data: Record<string, any>, token: string) => Promise<T>;
|
|
26
|
+
protected errLogger: (msg: string, ...arg: any[]) => void;
|
|
27
|
+
protected outLogger: (msg: string, ...arg: any[]) => void;
|
|
28
|
+
protected auth(publicKey: string, privateKey: string, walletId?: string, passphrase?: string): Promise<CpayToken>;
|
|
29
|
+
protected getToken(isWallet?: boolean): Promise<string>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
12
|
+
var t = {};
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
14
|
+
t[p] = s[p];
|
|
15
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
16
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
17
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18
|
+
t[p[i]] = s[p[i]];
|
|
19
|
+
}
|
|
20
|
+
return t;
|
|
21
|
+
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.CpaySDKBase = void 0;
|
|
27
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
28
|
+
const utc_1 = __importDefault(require("dayjs/plugin/utc"));
|
|
29
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
30
|
+
const constant_1 = require("./constant");
|
|
31
|
+
const httpClient_1 = require("./utils/httpClient");
|
|
32
|
+
dayjs_1.default.extend(utc_1.default);
|
|
33
|
+
const DEFAUTL_HTTP_OPTIONS = {
|
|
34
|
+
headers: {
|
|
35
|
+
"Content-Type": "application/json",
|
|
36
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36",
|
|
37
|
+
},
|
|
38
|
+
timeout: 6000,
|
|
39
|
+
};
|
|
40
|
+
class CpaySDKBase {
|
|
41
|
+
constructor(options) {
|
|
42
|
+
this.options = {};
|
|
43
|
+
this._request = (path, options) => {
|
|
44
|
+
return (0, httpClient_1.request)(path, lodash_1.default.merge({}, this.options.httpOptions, options))
|
|
45
|
+
.then((data) => {
|
|
46
|
+
try {
|
|
47
|
+
const json = JSON.parse(data);
|
|
48
|
+
if (json) {
|
|
49
|
+
return json.data || json;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
this.errLogger(options.method, "-", path, json.data.message);
|
|
53
|
+
return Promise.reject(json.data.message);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
this.errLogger(options.method, "-", path, "Parse Error", error);
|
|
58
|
+
return Promise.reject(error);
|
|
59
|
+
}
|
|
60
|
+
})
|
|
61
|
+
.catch((err) => {
|
|
62
|
+
var _a, _b;
|
|
63
|
+
let response = {
|
|
64
|
+
status: (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.statusCode,
|
|
65
|
+
response: err === null || err === void 0 ? void 0 : err.response,
|
|
66
|
+
};
|
|
67
|
+
try {
|
|
68
|
+
const parseError = JSON.parse(((_b = err === null || err === void 0 ? void 0 : err.response) === null || _b === void 0 ? void 0 : _b.body) || '{"message":"Unknown error"}');
|
|
69
|
+
if (parseError && parseError.data && parseError.data.message) {
|
|
70
|
+
Object.assign(response, {
|
|
71
|
+
message: parseError.data.message,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
console.log(err);
|
|
77
|
+
Object.assign(response, {
|
|
78
|
+
message: "Unknown error",
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return Promise.reject(response);
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
this.request = (path, options) => {
|
|
85
|
+
if (!this.options.url.rest) {
|
|
86
|
+
return Promise.reject("Rest url is required.");
|
|
87
|
+
}
|
|
88
|
+
return this._request(`${this.options.url.rest}${path}`, options);
|
|
89
|
+
};
|
|
90
|
+
this.auth_get = (path, params = {}, token) => {
|
|
91
|
+
if (!this.options.url.rest) {
|
|
92
|
+
return Promise.reject("Rest url is required.");
|
|
93
|
+
}
|
|
94
|
+
const PATH = `${this.options.url.rest}${path}`;
|
|
95
|
+
return this._request(PATH, {
|
|
96
|
+
method: "GET",
|
|
97
|
+
headers: {
|
|
98
|
+
Authorization: `Bearer ${token}`,
|
|
99
|
+
},
|
|
100
|
+
searchParams: params,
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
this.auth_post = (path, data, token) => {
|
|
104
|
+
const PATH = `${this.options.url.rest}${path}`;
|
|
105
|
+
const { idempotencyKey } = data, payload = __rest(data, ["idempotencyKey"]);
|
|
106
|
+
const headers = {
|
|
107
|
+
Authorization: `Bearer ${token}`,
|
|
108
|
+
};
|
|
109
|
+
if (idempotencyKey) {
|
|
110
|
+
headers["idempotency-key"] = idempotencyKey;
|
|
111
|
+
}
|
|
112
|
+
return this._request(PATH, {
|
|
113
|
+
method: "POST",
|
|
114
|
+
headers,
|
|
115
|
+
json: payload,
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
this.post = (path, data) => {
|
|
119
|
+
const PATH = `${this.options.url.rest}${path}`;
|
|
120
|
+
return this._request(PATH, {
|
|
121
|
+
method: "POST",
|
|
122
|
+
json: data,
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
this.auth_delete = (path, data, token) => {
|
|
126
|
+
const PATH = `${this.options.url.rest}${path}`;
|
|
127
|
+
return this._request(PATH, {
|
|
128
|
+
method: "DELETE",
|
|
129
|
+
headers: {
|
|
130
|
+
Authorization: `Bearer ${token}`,
|
|
131
|
+
},
|
|
132
|
+
json: data,
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
this.auth_patch = (path, data, token) => {
|
|
136
|
+
const PATH = `${this.options.url.rest}${path}`;
|
|
137
|
+
return this._request(PATH, {
|
|
138
|
+
method: "PATCH",
|
|
139
|
+
headers: {
|
|
140
|
+
Authorization: `Bearer ${token}`,
|
|
141
|
+
},
|
|
142
|
+
json: data,
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
this.errLogger = (msg, ...arg) => {
|
|
146
|
+
if (typeof this.options.errLogger === "function") {
|
|
147
|
+
this.options.errLogger(msg, ...arg);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const prefix = `[${(0, dayjs_1.default)()
|
|
151
|
+
.utcOffset(8)
|
|
152
|
+
.format("YYYY-MM-DD HH:mm:ss")}] [ERROR] `;
|
|
153
|
+
console.error(`${prefix} ${msg}`, ...arg);
|
|
154
|
+
};
|
|
155
|
+
this.outLogger = (msg, ...arg) => {
|
|
156
|
+
if (typeof this.options.outLogger === "function") {
|
|
157
|
+
this.options.outLogger(msg, ...arg);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const prefix = `[${(0, dayjs_1.default)()
|
|
161
|
+
.utcOffset(8)
|
|
162
|
+
.format("YYYY-MM-DD HH:mm:ss")}] [INFO] `;
|
|
163
|
+
console.log(`${prefix} ${msg}`, ...arg);
|
|
164
|
+
};
|
|
165
|
+
if (!options) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
this.setOptions(options);
|
|
169
|
+
}
|
|
170
|
+
setOptions(options = {}) {
|
|
171
|
+
const { httpOptions, url } = options, otherOptions = __rest(options, ["httpOptions", "url"]);
|
|
172
|
+
lodash_1.default.merge(this.options, {
|
|
173
|
+
httpOptions: lodash_1.default.merge({}, DEFAUTL_HTTP_OPTIONS, httpOptions || {}),
|
|
174
|
+
url: Object.assign({ rest: constant_1.REST_URL }, (url || {})),
|
|
175
|
+
});
|
|
176
|
+
if (otherOptions) {
|
|
177
|
+
lodash_1.default.merge(this.options, otherOptions);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
auth(publicKey, privateKey, walletId, passphrase) {
|
|
181
|
+
if (this.options.publicKey && this.options.privateKey) {
|
|
182
|
+
const path = `/api/public/auth`;
|
|
183
|
+
let data = {
|
|
184
|
+
publicKey,
|
|
185
|
+
privateKey,
|
|
186
|
+
};
|
|
187
|
+
if (walletId) {
|
|
188
|
+
data = Object.assign(data, { walletId });
|
|
189
|
+
if (!passphrase) {
|
|
190
|
+
throw new Error("Passphrase is required.");
|
|
191
|
+
}
|
|
192
|
+
data = Object.assign(data, { passphrase });
|
|
193
|
+
}
|
|
194
|
+
return this.request(`${path}`, {
|
|
195
|
+
method: "POST",
|
|
196
|
+
json: data,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
throw new Error("Keys is required.");
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
getToken(isWallet = false) {
|
|
204
|
+
var _a, _b;
|
|
205
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
206
|
+
if (isWallet) {
|
|
207
|
+
if (!this.options.walletId || !this.options.passphrase) {
|
|
208
|
+
throw new Error("WalletId and passphrase is required.");
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const { token } = yield this.auth(this.options.publicKey, this.options.privateKey, (_a = this.options) === null || _a === void 0 ? void 0 : _a.walletId, (_b = this.options) === null || _b === void 0 ? void 0 : _b.passphrase);
|
|
212
|
+
return token;
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
exports.CpaySDKBase = CpaySDKBase;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Auth } from "./auth/auth";
|
|
2
|
+
import Checkout from "./checkout/checkout";
|
|
3
|
+
import { CryptoNowSDKBaseOptions } from "./CryptoNowSDKBase";
|
|
4
|
+
import { Currency } from "./currency/currency";
|
|
5
|
+
import External from "./external/external";
|
|
6
|
+
import { Multisend } from "./multisend/multisend";
|
|
7
|
+
import { Client } from "./client/client";
|
|
8
|
+
import { Swap } from "./swap/swap";
|
|
9
|
+
import Transaction from "./transaction/transaction";
|
|
10
|
+
import { Wallet } from "./wallet/wallet";
|
|
11
|
+
import { Withdrawal } from "./withdrawal/withdrawal";
|
|
12
|
+
export interface CryptoNowSDKOptions extends CryptoNowSDKBaseOptions {
|
|
13
|
+
}
|
|
14
|
+
export declare class CryptoNowSDK {
|
|
15
|
+
/**
|
|
16
|
+
* @param parameters
|
|
17
|
+
*/
|
|
18
|
+
constructor(parameters: CryptoNowSDKOptions);
|
|
19
|
+
wallet: Wallet;
|
|
20
|
+
currency: Currency;
|
|
21
|
+
withdrawal: Withdrawal;
|
|
22
|
+
multisend: Multisend;
|
|
23
|
+
checkout: Checkout;
|
|
24
|
+
transaction: Transaction;
|
|
25
|
+
externalCall: External;
|
|
26
|
+
auth: Auth;
|
|
27
|
+
swap: Swap;
|
|
28
|
+
client: Client;
|
|
29
|
+
}
|
|
30
|
+
export default CryptoNowSDK;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CryptoNowSDK = void 0;
|
|
7
|
+
const auth_1 = require("./auth/auth");
|
|
8
|
+
const checkout_1 = __importDefault(require("./checkout/checkout"));
|
|
9
|
+
const currency_1 = require("./currency/currency");
|
|
10
|
+
const external_1 = __importDefault(require("./external/external"));
|
|
11
|
+
const multisend_1 = require("./multisend/multisend");
|
|
12
|
+
const client_1 = require("./client/client");
|
|
13
|
+
const swap_1 = require("./swap/swap");
|
|
14
|
+
const transaction_1 = __importDefault(require("./transaction/transaction"));
|
|
15
|
+
const wallet_1 = require("./wallet/wallet");
|
|
16
|
+
const withdrawal_1 = require("./withdrawal/withdrawal");
|
|
17
|
+
class CryptoNowSDK {
|
|
18
|
+
/**
|
|
19
|
+
* @param parameters
|
|
20
|
+
*/
|
|
21
|
+
constructor(parameters) {
|
|
22
|
+
this.wallet = new wallet_1.Wallet(parameters);
|
|
23
|
+
this.currency = new currency_1.Currency(parameters);
|
|
24
|
+
this.withdrawal = new withdrawal_1.Withdrawal(parameters);
|
|
25
|
+
this.multisend = new multisend_1.Multisend(parameters);
|
|
26
|
+
this.checkout = new checkout_1.default(parameters);
|
|
27
|
+
this.transaction = new transaction_1.default(parameters);
|
|
28
|
+
this.externalCall = new external_1.default(parameters);
|
|
29
|
+
this.auth = new auth_1.Auth(parameters);
|
|
30
|
+
this.swap = new swap_1.Swap(parameters);
|
|
31
|
+
this.client = new client_1.Client(parameters);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.CryptoNowSDK = CryptoNowSDK;
|
|
35
|
+
exports.default = CryptoNowSDK;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { CryptoNowToken } from "./interfaces/cryptonow.interface";
|
|
2
|
+
import { Options as HttpOptions } from "./utils/httpClient";
|
|
3
|
+
export interface CryptoNowSDKBaseOptions {
|
|
4
|
+
publicKey?: string;
|
|
5
|
+
privateKey?: string;
|
|
6
|
+
walletId?: string;
|
|
7
|
+
passphrase?: string;
|
|
8
|
+
errLogger?: (mssage: string, ...arg: any[]) => void;
|
|
9
|
+
outLogger?: (mssage: string, ...arg: any[]) => void;
|
|
10
|
+
httpOptions?: HttpOptions;
|
|
11
|
+
url?: {
|
|
12
|
+
rest?: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export declare class CryptoNowSDKBase {
|
|
16
|
+
protected options: Required<CryptoNowSDKBaseOptions>;
|
|
17
|
+
constructor(options?: Partial<CryptoNowSDKBaseOptions>);
|
|
18
|
+
protected setOptions(options?: Partial<CryptoNowSDKBaseOptions>): void;
|
|
19
|
+
protected _request: <T>(path: string, options: HttpOptions) => Promise<T>;
|
|
20
|
+
protected request: <T>(path: string, options: HttpOptions) => Promise<T>;
|
|
21
|
+
protected auth_get: <T = any>(path: string, params: Record<string, any>, token: string) => Promise<T>;
|
|
22
|
+
protected auth_post: <T = any>(path: string, data: Record<string, any>, token: string) => Promise<T>;
|
|
23
|
+
protected post: <T = any>(path: string, data: Record<string, any>) => Promise<T>;
|
|
24
|
+
protected auth_delete: <T = any>(path: string, data: Record<string, any>, token: string) => Promise<T>;
|
|
25
|
+
protected auth_patch: <T = any>(path: string, data: Record<string, any>, token: string) => Promise<T>;
|
|
26
|
+
protected errLogger: (msg: string, ...arg: any[]) => void;
|
|
27
|
+
protected outLogger: (msg: string, ...arg: any[]) => void;
|
|
28
|
+
protected auth(publicKey: string, privateKey: string, walletId?: string, passphrase?: string): Promise<CryptoNowToken>;
|
|
29
|
+
protected getToken(isWallet?: boolean): Promise<string>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
12
|
+
var t = {};
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
14
|
+
t[p] = s[p];
|
|
15
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
16
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
17
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18
|
+
t[p[i]] = s[p[i]];
|
|
19
|
+
}
|
|
20
|
+
return t;
|
|
21
|
+
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.CryptoNowSDKBase = void 0;
|
|
27
|
+
const dayjs_1 = __importDefault(require("dayjs"));
|
|
28
|
+
const utc_1 = __importDefault(require("dayjs/plugin/utc"));
|
|
29
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
30
|
+
const constant_1 = require("./constant");
|
|
31
|
+
const httpClient_1 = require("./utils/httpClient");
|
|
32
|
+
dayjs_1.default.extend(utc_1.default);
|
|
33
|
+
const DEFAUTL_HTTP_OPTIONS = {
|
|
34
|
+
headers: {
|
|
35
|
+
"Content-Type": "application/json",
|
|
36
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36",
|
|
37
|
+
},
|
|
38
|
+
timeout: 6000,
|
|
39
|
+
};
|
|
40
|
+
class CryptoNowSDKBase {
|
|
41
|
+
constructor(options) {
|
|
42
|
+
this.options = {};
|
|
43
|
+
this._request = (path, options) => {
|
|
44
|
+
return (0, httpClient_1.request)(path, lodash_1.default.merge({}, this.options.httpOptions, options))
|
|
45
|
+
.then((data) => {
|
|
46
|
+
try {
|
|
47
|
+
const json = JSON.parse(data);
|
|
48
|
+
if (json) {
|
|
49
|
+
return json.data || json;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
this.errLogger(options.method, "-", path, json.data.message);
|
|
53
|
+
return Promise.reject(json.data.message);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
this.errLogger(options.method, "-", path, "Parse Error", error);
|
|
58
|
+
return Promise.reject(error);
|
|
59
|
+
}
|
|
60
|
+
})
|
|
61
|
+
.catch((err) => {
|
|
62
|
+
var _a, _b;
|
|
63
|
+
let response = {
|
|
64
|
+
status: (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.statusCode,
|
|
65
|
+
response: err === null || err === void 0 ? void 0 : err.response,
|
|
66
|
+
};
|
|
67
|
+
try {
|
|
68
|
+
const parseError = JSON.parse(((_b = err === null || err === void 0 ? void 0 : err.response) === null || _b === void 0 ? void 0 : _b.body) || '{"message":"Unknown error"}');
|
|
69
|
+
if (parseError && parseError.data && parseError.data.message) {
|
|
70
|
+
Object.assign(response, {
|
|
71
|
+
message: parseError.data.message,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
console.log(err);
|
|
77
|
+
Object.assign(response, {
|
|
78
|
+
message: "Unknown error",
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return Promise.reject(response);
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
this.request = (path, options) => {
|
|
85
|
+
if (!this.options.url.rest) {
|
|
86
|
+
return Promise.reject("Rest url is required.");
|
|
87
|
+
}
|
|
88
|
+
return this._request(`${this.options.url.rest}${path}`, options);
|
|
89
|
+
};
|
|
90
|
+
this.auth_get = (path, params = {}, token) => {
|
|
91
|
+
if (!this.options.url.rest) {
|
|
92
|
+
return Promise.reject("Rest url is required.");
|
|
93
|
+
}
|
|
94
|
+
const PATH = `${this.options.url.rest}${path}`;
|
|
95
|
+
return this._request(PATH, {
|
|
96
|
+
method: "GET",
|
|
97
|
+
headers: {
|
|
98
|
+
Authorization: `Bearer ${token}`,
|
|
99
|
+
},
|
|
100
|
+
searchParams: params,
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
this.auth_post = (path, data, token) => {
|
|
104
|
+
const PATH = `${this.options.url.rest}${path}`;
|
|
105
|
+
const { idempotencyKey } = data, payload = __rest(data, ["idempotencyKey"]);
|
|
106
|
+
const headers = {
|
|
107
|
+
Authorization: `Bearer ${token}`,
|
|
108
|
+
};
|
|
109
|
+
if (idempotencyKey) {
|
|
110
|
+
headers["idempotency-key"] = idempotencyKey;
|
|
111
|
+
}
|
|
112
|
+
return this._request(PATH, {
|
|
113
|
+
method: "POST",
|
|
114
|
+
headers,
|
|
115
|
+
json: payload,
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
this.post = (path, data) => {
|
|
119
|
+
const PATH = `${this.options.url.rest}${path}`;
|
|
120
|
+
return this._request(PATH, {
|
|
121
|
+
method: "POST",
|
|
122
|
+
json: data,
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
this.auth_delete = (path, data, token) => {
|
|
126
|
+
const PATH = `${this.options.url.rest}${path}`;
|
|
127
|
+
return this._request(PATH, {
|
|
128
|
+
method: "DELETE",
|
|
129
|
+
headers: {
|
|
130
|
+
Authorization: `Bearer ${token}`,
|
|
131
|
+
},
|
|
132
|
+
json: data,
|
|
133
|
+
});
|
|
134
|
+
};
|
|
135
|
+
this.auth_patch = (path, data, token) => {
|
|
136
|
+
const PATH = `${this.options.url.rest}${path}`;
|
|
137
|
+
return this._request(PATH, {
|
|
138
|
+
method: "PATCH",
|
|
139
|
+
headers: {
|
|
140
|
+
Authorization: `Bearer ${token}`,
|
|
141
|
+
},
|
|
142
|
+
json: data,
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
this.errLogger = (msg, ...arg) => {
|
|
146
|
+
if (typeof this.options.errLogger === "function") {
|
|
147
|
+
this.options.errLogger(msg, ...arg);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const prefix = `[${(0, dayjs_1.default)()
|
|
151
|
+
.utcOffset(8)
|
|
152
|
+
.format("YYYY-MM-DD HH:mm:ss")}] [ERROR] `;
|
|
153
|
+
console.error(`${prefix} ${msg}`, ...arg);
|
|
154
|
+
};
|
|
155
|
+
this.outLogger = (msg, ...arg) => {
|
|
156
|
+
if (typeof this.options.outLogger === "function") {
|
|
157
|
+
this.options.outLogger(msg, ...arg);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
const prefix = `[${(0, dayjs_1.default)()
|
|
161
|
+
.utcOffset(8)
|
|
162
|
+
.format("YYYY-MM-DD HH:mm:ss")}] [INFO] `;
|
|
163
|
+
console.log(`${prefix} ${msg}`, ...arg);
|
|
164
|
+
};
|
|
165
|
+
if (!options) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
this.setOptions(options);
|
|
169
|
+
}
|
|
170
|
+
setOptions(options = {}) {
|
|
171
|
+
const { httpOptions, url } = options, otherOptions = __rest(options, ["httpOptions", "url"]);
|
|
172
|
+
lodash_1.default.merge(this.options, {
|
|
173
|
+
httpOptions: lodash_1.default.merge({}, DEFAUTL_HTTP_OPTIONS, httpOptions || {}),
|
|
174
|
+
url: Object.assign({ rest: constant_1.REST_URL }, (url || {})),
|
|
175
|
+
});
|
|
176
|
+
if (otherOptions) {
|
|
177
|
+
lodash_1.default.merge(this.options, otherOptions);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
auth(publicKey, privateKey, walletId, passphrase) {
|
|
181
|
+
if (this.options.publicKey && this.options.privateKey) {
|
|
182
|
+
const path = `/api/public/auth`;
|
|
183
|
+
let data = {
|
|
184
|
+
publicKey,
|
|
185
|
+
privateKey,
|
|
186
|
+
};
|
|
187
|
+
if (walletId) {
|
|
188
|
+
data = Object.assign(data, { walletId });
|
|
189
|
+
if (!passphrase) {
|
|
190
|
+
throw new Error("Passphrase is required.");
|
|
191
|
+
}
|
|
192
|
+
data = Object.assign(data, { passphrase });
|
|
193
|
+
}
|
|
194
|
+
return this.request(`${path}`, {
|
|
195
|
+
method: "POST",
|
|
196
|
+
json: data,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
throw new Error("Keys is required.");
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
getToken(isWallet = false) {
|
|
204
|
+
var _a, _b;
|
|
205
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
206
|
+
if (isWallet) {
|
|
207
|
+
if (!this.options.walletId || !this.options.passphrase) {
|
|
208
|
+
throw new Error("WalletId and passphrase is required.");
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const { token } = yield this.auth(this.options.publicKey, this.options.privateKey, (_a = this.options) === null || _a === void 0 ? void 0 : _a.walletId, (_b = this.options) === null || _b === void 0 ? void 0 : _b.passphrase);
|
|
212
|
+
return token;
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
exports.CryptoNowSDKBase = CryptoNowSDKBase;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Auth } from "./auth/auth";
|
|
2
|
+
import Checkout from "./checkout/checkout";
|
|
3
|
+
import { PaytonzSDKBaseOptions } from "./PaytonzSDKBase";
|
|
4
|
+
import { Currency } from "./currency/currency";
|
|
5
|
+
import External from "./external/external";
|
|
6
|
+
import { Multisend } from "./multisend/multisend";
|
|
7
|
+
import { Swap } from "./swap/swap";
|
|
8
|
+
import Transaction from "./transaction/transaction";
|
|
9
|
+
import { Wallet } from "./wallet/wallet";
|
|
10
|
+
import { Withdrawal } from "./withdrawal/withdrawal";
|
|
11
|
+
export interface PaytonzSDKOptions extends PaytonzSDKBaseOptions {
|
|
12
|
+
}
|
|
13
|
+
export declare class PaytonzSDK {
|
|
14
|
+
/**
|
|
15
|
+
* @param parameters
|
|
16
|
+
*/
|
|
17
|
+
constructor(parameters: PaytonzSDKOptions);
|
|
18
|
+
wallet: Wallet;
|
|
19
|
+
currency: Currency;
|
|
20
|
+
withdrawal: Withdrawal;
|
|
21
|
+
multisend: Multisend;
|
|
22
|
+
checkout: Checkout;
|
|
23
|
+
transaction: Transaction;
|
|
24
|
+
externalCall: External;
|
|
25
|
+
auth: Auth;
|
|
26
|
+
swap: Swap;
|
|
27
|
+
}
|
|
28
|
+
export default PaytonzSDK;
|