algosdk 1.13.0-beta.1 → 1.13.0-beta.2
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 +4 -4
- package/dist/browser/algosdk.min.js +1 -1
- package/dist/browser/algosdk.min.js.map +1 -1
- package/dist/cjs/src/abi/abi_type.js +75 -47
- package/dist/cjs/src/abi/abi_type.js.map +1 -1
- package/dist/cjs/src/abi/contract.js +6 -4
- package/dist/cjs/src/abi/contract.js.map +1 -1
- package/dist/cjs/src/abi/index.js +2 -0
- package/dist/cjs/src/abi/index.js.map +1 -1
- package/dist/cjs/src/abi/interface.js +2 -0
- package/dist/cjs/src/abi/interface.js.map +1 -1
- package/dist/cjs/src/abi/method.js +5 -8
- package/dist/cjs/src/abi/method.js.map +1 -1
- package/dist/cjs/src/abi/reference.js +25 -0
- package/dist/cjs/src/abi/reference.js.map +1 -0
- package/dist/cjs/src/abi/transaction.js +52 -0
- package/dist/cjs/src/abi/transaction.js.map +1 -0
- package/dist/cjs/src/client/baseHTTPClient.js +3 -0
- package/dist/cjs/src/client/baseHTTPClient.js.map +1 -0
- package/dist/cjs/src/client/client.js +165 -104
- package/dist/cjs/src/client/client.js.map +1 -1
- package/dist/cjs/src/client/urlTokenBaseHTTPClient.js +138 -0
- package/dist/cjs/src/client/urlTokenBaseHTTPClient.js.map +1 -0
- package/dist/cjs/src/client/v2/algod/algod.js +7 -2
- package/dist/cjs/src/client/v2/algod/algod.js.map +1 -1
- package/dist/cjs/src/client/v2/indexer/indexer.js +7 -2
- package/dist/cjs/src/client/v2/indexer/indexer.js.map +1 -1
- package/dist/cjs/src/client/v2/serviceClient.js +17 -8
- package/dist/cjs/src/client/v2/serviceClient.js.map +1 -1
- package/dist/cjs/src/composer.js +154 -34
- package/dist/cjs/src/composer.js.map +1 -1
- package/dist/cjs/src/main.js.map +1 -1
- package/dist/cjs/src/transaction.js +4 -2
- package/dist/cjs/src/transaction.js.map +1 -1
- package/dist/cjs/src/wait.js +21 -8
- package/dist/cjs/src/wait.js.map +1 -1
- package/dist/esm/src/abi/abi_type.js +75 -47
- package/dist/esm/src/abi/abi_type.js.map +1 -1
- package/dist/esm/src/abi/contract.js +6 -4
- package/dist/esm/src/abi/contract.js.map +1 -1
- package/dist/esm/src/abi/index.js +2 -0
- package/dist/esm/src/abi/index.js.map +1 -1
- package/dist/esm/src/abi/interface.js +2 -0
- package/dist/esm/src/abi/interface.js.map +1 -1
- package/dist/esm/src/abi/method.js +3 -5
- package/dist/esm/src/abi/method.js.map +1 -1
- package/dist/esm/src/abi/reference.js +21 -0
- package/dist/esm/src/abi/reference.js.map +1 -0
- package/dist/esm/src/abi/transaction.js +47 -0
- package/dist/esm/src/abi/transaction.js.map +1 -0
- package/dist/esm/src/client/baseHTTPClient.js +2 -0
- package/dist/esm/src/client/baseHTTPClient.js.map +1 -0
- package/dist/esm/src/client/client.js +165 -101
- package/dist/esm/src/client/client.js.map +1 -1
- package/dist/esm/src/client/urlTokenBaseHTTPClient.js +112 -0
- package/dist/esm/src/client/urlTokenBaseHTTPClient.js.map +1 -0
- package/dist/esm/src/client/v2/algod/algod.js +7 -2
- package/dist/esm/src/client/v2/algod/algod.js.map +1 -1
- package/dist/esm/src/client/v2/indexer/indexer.js +7 -2
- package/dist/esm/src/client/v2/indexer/indexer.js.map +1 -1
- package/dist/esm/src/client/v2/serviceClient.js +17 -8
- package/dist/esm/src/client/v2/serviceClient.js.map +1 -1
- package/dist/esm/src/composer.js +155 -35
- package/dist/esm/src/composer.js.map +1 -1
- package/dist/esm/src/main.js.map +1 -1
- package/dist/esm/src/transaction.js +4 -2
- package/dist/esm/src/transaction.js.map +1 -1
- package/dist/esm/src/wait.js +21 -8
- package/dist/esm/src/wait.js.map +1 -1
- package/dist/types/src/abi/abi_type.d.ts +19 -19
- package/dist/types/src/abi/contract.d.ts +10 -2
- package/dist/types/src/abi/index.d.ts +2 -0
- package/dist/types/src/abi/interface.d.ts +2 -0
- package/dist/types/src/abi/method.d.ts +14 -12
- package/dist/types/src/abi/reference.d.ts +15 -0
- package/dist/types/src/abi/transaction.d.ts +33 -0
- package/dist/types/src/client/baseHTTPClient.d.ts +41 -0
- package/dist/types/src/client/client.d.ts +67 -31
- package/dist/types/src/client/kmd.d.ts +1 -1
- package/dist/types/src/client/urlTokenBaseHTTPClient.d.ts +44 -0
- package/dist/types/src/client/v2/algod/algod.d.ts +8 -2
- package/dist/types/src/client/v2/indexer/indexer.d.ts +8 -2
- package/dist/types/src/client/v2/serviceClient.d.ts +4 -2
- package/dist/types/src/composer.d.ts +17 -3
- package/dist/types/src/main.d.ts +1 -0
- package/package.json +5 -3
|
@@ -1,47 +1,7 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
import * as request from 'superagent';
|
|
3
|
-
import Url from 'url-parse';
|
|
4
1
|
import * as utils from '../utils/utils';
|
|
5
|
-
import
|
|
6
|
-
function createJSONParser(options) {
|
|
7
|
-
return (res,
|
|
8
|
-
// eslint-disable-next-line no-unused-vars
|
|
9
|
-
fnOrStr
|
|
10
|
-
// eslint-disable-next-line consistent-return
|
|
11
|
-
) => {
|
|
12
|
-
if (typeof fnOrStr === 'string') {
|
|
13
|
-
// in browser
|
|
14
|
-
return fnOrStr && utils.parseJSON(fnOrStr, options);
|
|
15
|
-
}
|
|
16
|
-
// in node
|
|
17
|
-
// based off https://github.com/visionmedia/superagent/blob/1277a880c32191e300b229e352e0633e421046c8/src/node/parsers/json.js
|
|
18
|
-
res.text = '';
|
|
19
|
-
res.setEncoding('utf8');
|
|
20
|
-
res.on('data', (chunk) => {
|
|
21
|
-
res.text += chunk;
|
|
22
|
-
});
|
|
23
|
-
res.on('end', () => {
|
|
24
|
-
let body;
|
|
25
|
-
let err;
|
|
26
|
-
try {
|
|
27
|
-
body = res.text && utils.parseJSON(res.text, options);
|
|
28
|
-
}
|
|
29
|
-
catch (err_) {
|
|
30
|
-
err = err_;
|
|
31
|
-
// issue #675: return the raw response if the response parsing fails
|
|
32
|
-
err.rawResponse = res.text || null;
|
|
33
|
-
// issue #876: return the http status code if the response parsing fails
|
|
34
|
-
err.statusCode = res.status;
|
|
35
|
-
}
|
|
36
|
-
finally {
|
|
37
|
-
fnOrStr(err, body);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
};
|
|
41
|
-
}
|
|
2
|
+
import { URLTokenBaseHTTPClient } from './urlTokenBaseHTTPClient';
|
|
42
3
|
/**
|
|
43
4
|
* Remove falsy values or values with a length of 0 from an object.
|
|
44
|
-
* @param obj
|
|
45
5
|
*/
|
|
46
6
|
function removeFalsyOrEmpty(obj) {
|
|
47
7
|
for (const key in obj) {
|
|
@@ -53,10 +13,19 @@ function removeFalsyOrEmpty(obj) {
|
|
|
53
13
|
}
|
|
54
14
|
return obj;
|
|
55
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Create a new object with lower-case keys
|
|
18
|
+
* See https://codereview.stackexchange.com/a/162418
|
|
19
|
+
* Used to ensure all headers are lower-case and to work more easily with them
|
|
20
|
+
*/
|
|
21
|
+
function tolowerCaseKeys(o) {
|
|
22
|
+
/* eslint-disable no-param-reassign,no-return-assign,no-sequences */
|
|
23
|
+
return Object.keys(o).reduce((c, k) => ((c[k.toLowerCase()] = o[k]), c), {});
|
|
24
|
+
/* eslint-enable no-param-reassign,no-return-assign,no-sequences */
|
|
25
|
+
}
|
|
56
26
|
/**
|
|
57
27
|
* getAcceptFormat returns the correct Accept header depending on the
|
|
58
28
|
* requested format.
|
|
59
|
-
* @param query
|
|
60
29
|
*/
|
|
61
30
|
function getAcceptFormat(query) {
|
|
62
31
|
if (query !== undefined &&
|
|
@@ -72,29 +41,129 @@ function getAcceptFormat(query) {
|
|
|
72
41
|
else
|
|
73
42
|
return 'application/json';
|
|
74
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Check is a response is JSON or not
|
|
46
|
+
* Inspired from superagent code
|
|
47
|
+
*/
|
|
48
|
+
function isResponseJSON(res) {
|
|
49
|
+
let contentType = tolowerCaseKeys(res.headers)['content-type'];
|
|
50
|
+
if (contentType) {
|
|
51
|
+
/* eslint-disable prefer-destructuring */
|
|
52
|
+
contentType = contentType.split(';')[0];
|
|
53
|
+
/* eslint-enable prefer-destructuring */
|
|
54
|
+
}
|
|
55
|
+
// regex should match /json or +json
|
|
56
|
+
// but not /json-seq
|
|
57
|
+
// from https://github.com/visionmedia/superagent/blob/048cf185d954028b1dccde0717d2488b2284c297/src/client.js#L276
|
|
58
|
+
return /[/+]json($|[^-\w])/i.test(contentType);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Check is a response is text
|
|
62
|
+
* Inspired from superagent code
|
|
63
|
+
*/
|
|
64
|
+
function isResponseText(res) {
|
|
65
|
+
const contentType = tolowerCaseKeys(res.headers)['content-type'] || 'text/plain';
|
|
66
|
+
return /^\w*text\//i.test(contentType);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* HTTPClient is a wrapper around a BaseHTTPClient
|
|
70
|
+
* It takes care of setting the proper "Accept" header and of
|
|
71
|
+
* decoding the JSON outputs.
|
|
72
|
+
*/
|
|
75
73
|
export default class HTTPClient {
|
|
76
|
-
constructor(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
if (baseServerURL.protocol.length === 0) {
|
|
84
|
-
throw new Error('Invalid base server URL, protocol must be defined.');
|
|
85
|
-
}
|
|
86
|
-
this.baseURL = baseServerURL;
|
|
87
|
-
this.defaultHeaders = defaultHeaders;
|
|
88
|
-
this.tokenHeader = tokenHeader;
|
|
74
|
+
constructor(bcOrTokenHeader, baseServer, port, defaultHeaders = {}) {
|
|
75
|
+
if (baseServer !== undefined) {
|
|
76
|
+
this.bc = new URLTokenBaseHTTPClient(bcOrTokenHeader, baseServer, port, defaultHeaders);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.bc = bcOrTokenHeader;
|
|
80
|
+
}
|
|
89
81
|
}
|
|
90
82
|
/**
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
*
|
|
83
|
+
* Parse JSON using either the built-in JSON.parse or utils.parseJSON
|
|
84
|
+
* depending on whether jsonOptions are provided or not
|
|
85
|
+
*
|
|
86
|
+
* @param text JSON data
|
|
87
|
+
* @param status Status of the response (used in case parseJSON fails)
|
|
88
|
+
* @param jsonOptions Options object to use to decode JSON responses. See
|
|
89
|
+
* utils.parseJSON for the options available.
|
|
90
|
+
* @private
|
|
94
91
|
*/
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
92
|
+
static parseJSON(text, status, jsonOptions = {}) {
|
|
93
|
+
try {
|
|
94
|
+
if (Object.keys(jsonOptions).length !== 0) {
|
|
95
|
+
return text && JSON.parse(text);
|
|
96
|
+
}
|
|
97
|
+
return text && utils.parseJSON(text, jsonOptions);
|
|
98
|
+
}
|
|
99
|
+
catch (err_) {
|
|
100
|
+
const err = err_;
|
|
101
|
+
// return the raw response if the response parsing fails
|
|
102
|
+
err.rawResponse = text || null;
|
|
103
|
+
// return the http status code if the response parsing fails
|
|
104
|
+
err.statusCode = status;
|
|
105
|
+
throw err;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Serialize the data according to the requestHeaders
|
|
110
|
+
* Assumes that requestHeaders contain a key "content-type"
|
|
111
|
+
* If the content-type is "application/json", data is JSON serialized
|
|
112
|
+
* Otherwise, data needs to be either an UTF-8 string that is converted to an Uint8Array
|
|
113
|
+
* or an Uint8Array
|
|
114
|
+
* @private
|
|
115
|
+
*/
|
|
116
|
+
static serializeData(data, requestHeaders) {
|
|
117
|
+
if (!data) {
|
|
118
|
+
return new Uint8Array(0); // empty Uint8Array
|
|
119
|
+
}
|
|
120
|
+
if (requestHeaders['content-type'] === 'application/json') {
|
|
121
|
+
return new Uint8Array(Buffer.from(JSON.stringify(data)));
|
|
122
|
+
}
|
|
123
|
+
if (typeof data === 'string') {
|
|
124
|
+
return new Uint8Array(Buffer.from(data));
|
|
125
|
+
}
|
|
126
|
+
if (data instanceof Uint8Array) {
|
|
127
|
+
return data;
|
|
128
|
+
}
|
|
129
|
+
throw new Error('provided data is neither a string nor a Uint8Array and content-type is not application/json');
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Convert a BaseHTTPClientResponse into a full HTTPClientResponse
|
|
133
|
+
* Parse the body in
|
|
134
|
+
* Modifies in place res and return the result
|
|
135
|
+
*/
|
|
136
|
+
static prepareResponse(res, jsonOptions = {}) {
|
|
137
|
+
let { body } = res;
|
|
138
|
+
let text;
|
|
139
|
+
if (isResponseJSON(res)) {
|
|
140
|
+
text = (body && new TextDecoder().decode(body)) || '';
|
|
141
|
+
body = HTTPClient.parseJSON(text, res.status, jsonOptions);
|
|
142
|
+
}
|
|
143
|
+
else if (isResponseText(res)) {
|
|
144
|
+
text = (body && new TextDecoder().decode(body)) || '';
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
...res,
|
|
148
|
+
body,
|
|
149
|
+
text,
|
|
150
|
+
ok: Math.trunc(res.status / 100) === 2,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Prepare an error with a response
|
|
155
|
+
* (the type of errors BaseHTTPClient are supposed to throw)
|
|
156
|
+
* by adding the status and preparing the internal response
|
|
157
|
+
* @private
|
|
158
|
+
*/
|
|
159
|
+
static prepareResponseError(err) {
|
|
160
|
+
if (err.response) {
|
|
161
|
+
// eslint-disable-next-line no-param-reassign
|
|
162
|
+
err.response = HTTPClient.prepareResponse(err.response);
|
|
163
|
+
// eslint-disable-next-line no-param-reassign
|
|
164
|
+
err.status = err.response.status;
|
|
165
|
+
}
|
|
166
|
+
return err;
|
|
98
167
|
}
|
|
99
168
|
/**
|
|
100
169
|
* Send a GET request.
|
|
@@ -107,50 +176,45 @@ export default class HTTPClient {
|
|
|
107
176
|
*/
|
|
108
177
|
async get(relativePath, query, requestHeaders = {}, jsonOptions = {}) {
|
|
109
178
|
const format = getAcceptFormat(query);
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
.
|
|
113
|
-
.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
.
|
|
117
|
-
|
|
118
|
-
r = r.responseType('arraybuffer');
|
|
119
|
-
}
|
|
120
|
-
else if (format === 'application/json' &&
|
|
121
|
-
Object.keys(jsonOptions).length !== 0) {
|
|
122
|
-
if (utils.isNode()) {
|
|
123
|
-
// in node, need to set buffer
|
|
124
|
-
r = r.buffer(true);
|
|
125
|
-
}
|
|
126
|
-
r = r.parse(createJSONParser(jsonOptions));
|
|
127
|
-
}
|
|
128
|
-
const res = await r;
|
|
129
|
-
if (Buffer.isBuffer(res.body)) {
|
|
130
|
-
// In node res.body will be a Buffer, but in the browser it will be an ArrayBuffer
|
|
131
|
-
// (thanks superagent...), so convert it to an ArrayBuffer for consistency.
|
|
132
|
-
const underlyingArrayBuffer = res.body.buffer;
|
|
133
|
-
const start = res.body.byteOffset;
|
|
134
|
-
const end = start + res.body.byteLength;
|
|
135
|
-
res.body = underlyingArrayBuffer.slice(start, end);
|
|
136
|
-
}
|
|
137
|
-
return res;
|
|
179
|
+
const fullHeaders = { ...requestHeaders, accept: format };
|
|
180
|
+
try {
|
|
181
|
+
const res = await this.bc.get(relativePath, removeFalsyOrEmpty(query), fullHeaders);
|
|
182
|
+
return HTTPClient.prepareResponse(res, jsonOptions);
|
|
183
|
+
}
|
|
184
|
+
catch (err) {
|
|
185
|
+
throw HTTPClient.prepareResponseError(err);
|
|
186
|
+
}
|
|
138
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Send a POST request.
|
|
190
|
+
* If no content-type present, adds the header "content-type: application/json"
|
|
191
|
+
* and data is serialized in JSON (if not empty)
|
|
192
|
+
*/
|
|
139
193
|
async post(relativePath, data, requestHeaders = {}) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
.
|
|
194
|
+
const fullHeaders = {
|
|
195
|
+
'content-type': 'application/json',
|
|
196
|
+
...tolowerCaseKeys(requestHeaders),
|
|
197
|
+
};
|
|
198
|
+
try {
|
|
199
|
+
const res = await this.bc.post(relativePath, HTTPClient.serializeData(data, fullHeaders), undefined, fullHeaders);
|
|
200
|
+
return HTTPClient.prepareResponse(res);
|
|
201
|
+
}
|
|
202
|
+
catch (err) {
|
|
203
|
+
throw HTTPClient.prepareResponseError(err);
|
|
204
|
+
}
|
|
146
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* Send a DELETE request.
|
|
208
|
+
* If no content-type present, adds the header "content-type: application/json"
|
|
209
|
+
* and data is serialized in JSON (if not empty)
|
|
210
|
+
*/
|
|
147
211
|
async delete(relativePath, data, requestHeaders = {}) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
212
|
+
const fullHeaders = {
|
|
213
|
+
'content-type': 'application/json',
|
|
214
|
+
...tolowerCaseKeys(requestHeaders),
|
|
215
|
+
};
|
|
216
|
+
const res = await this.bc.delete(relativePath, HTTPClient.serializeData(data, fullHeaders), undefined, fullHeaders);
|
|
217
|
+
return HTTPClient.prepareResponse(res);
|
|
154
218
|
}
|
|
155
219
|
}
|
|
156
220
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/client/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import Url from 'url-parse';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import * as request from 'superagent';
|
|
4
|
+
/**
|
|
5
|
+
* Implementation of BaseHTTPClient that uses a URL and a token
|
|
6
|
+
* and make the REST queries using superagent.
|
|
7
|
+
* This is the default implementation of BaseHTTPClient.
|
|
8
|
+
*/
|
|
9
|
+
export class URLTokenBaseHTTPClient {
|
|
10
|
+
constructor(tokenHeader, baseServer, port, defaultHeaders = {}) {
|
|
11
|
+
this.defaultHeaders = defaultHeaders;
|
|
12
|
+
const baseServerURL = new Url(baseServer, {});
|
|
13
|
+
if (typeof port !== 'undefined') {
|
|
14
|
+
baseServerURL.set('port', port.toString());
|
|
15
|
+
}
|
|
16
|
+
if (baseServerURL.protocol.length === 0) {
|
|
17
|
+
throw new Error('Invalid base server URL, protocol must be defined.');
|
|
18
|
+
}
|
|
19
|
+
this.baseURL = baseServerURL;
|
|
20
|
+
this.tokenHeader = tokenHeader;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Compute the URL for a path relative to the instance's address
|
|
24
|
+
* @param relativePath - A path string
|
|
25
|
+
* @returns A URL string
|
|
26
|
+
*/
|
|
27
|
+
addressWithPath(relativePath) {
|
|
28
|
+
const address = new Url(path.posix.join(this.baseURL.pathname, relativePath), this.baseURL);
|
|
29
|
+
return address.toString();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Convert a superagent response to a valid BaseHTTPClientResponse
|
|
33
|
+
* Modify the superagent response
|
|
34
|
+
* @private
|
|
35
|
+
*/
|
|
36
|
+
static superagentToHTTPClientResponse(res) {
|
|
37
|
+
if (res.body instanceof ArrayBuffer) {
|
|
38
|
+
// Handle the case where the body is an arraybuffer which happens in the browser
|
|
39
|
+
res.body = new Uint8Array(res.body);
|
|
40
|
+
}
|
|
41
|
+
return res;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Make a superagent error more readable. For more info, see https://github.com/visionmedia/superagent/issues/1074
|
|
45
|
+
*/
|
|
46
|
+
static formatSuperagentError(err) {
|
|
47
|
+
if (err.response) {
|
|
48
|
+
try {
|
|
49
|
+
const decoded = JSON.parse(Buffer.from(err.response.body).toString());
|
|
50
|
+
// eslint-disable-next-line no-param-reassign
|
|
51
|
+
err.message = `Network request error. Received status ${err.response.status}: ${decoded.message}`;
|
|
52
|
+
}
|
|
53
|
+
catch (err2) {
|
|
54
|
+
// ignore any error that happened while we are formatting the original error
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return err;
|
|
58
|
+
}
|
|
59
|
+
async get(relativePath, query, requestHeaders = {}) {
|
|
60
|
+
const r = request
|
|
61
|
+
.get(this.addressWithPath(relativePath))
|
|
62
|
+
.set(this.tokenHeader)
|
|
63
|
+
.set(this.defaultHeaders)
|
|
64
|
+
.set(requestHeaders)
|
|
65
|
+
.responseType('arraybuffer')
|
|
66
|
+
.query(query);
|
|
67
|
+
try {
|
|
68
|
+
const res = await r;
|
|
69
|
+
return URLTokenBaseHTTPClient.superagentToHTTPClientResponse(res);
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
throw URLTokenBaseHTTPClient.formatSuperagentError(err);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async post(relativePath, data, query, requestHeaders = {}) {
|
|
76
|
+
const r = request
|
|
77
|
+
.post(this.addressWithPath(relativePath))
|
|
78
|
+
.set(this.tokenHeader)
|
|
79
|
+
.set(this.defaultHeaders)
|
|
80
|
+
.set(requestHeaders)
|
|
81
|
+
.query(query)
|
|
82
|
+
.serialize((o) => o) // disable serialization from superagent
|
|
83
|
+
.responseType('arraybuffer')
|
|
84
|
+
.send(Buffer.from(data)); // Buffer.from necessary for superagent
|
|
85
|
+
try {
|
|
86
|
+
const res = await r;
|
|
87
|
+
return URLTokenBaseHTTPClient.superagentToHTTPClientResponse(res);
|
|
88
|
+
}
|
|
89
|
+
catch (err) {
|
|
90
|
+
throw URLTokenBaseHTTPClient.formatSuperagentError(err);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async delete(relativePath, data, query, requestHeaders = {}) {
|
|
94
|
+
const r = request
|
|
95
|
+
.delete(this.addressWithPath(relativePath))
|
|
96
|
+
.set(this.tokenHeader)
|
|
97
|
+
.set(this.defaultHeaders)
|
|
98
|
+
.set(requestHeaders)
|
|
99
|
+
.query(query)
|
|
100
|
+
.serialize((o) => o) // disable serialization from superagent
|
|
101
|
+
.responseType('arraybuffer')
|
|
102
|
+
.send(Buffer.from(data)); // Buffer.from necessary for superagent
|
|
103
|
+
try {
|
|
104
|
+
const res = await r;
|
|
105
|
+
return URLTokenBaseHTTPClient.superagentToHTTPClientResponse(res);
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
throw URLTokenBaseHTTPClient.formatSuperagentError(err);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=urlTokenBaseHTTPClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urlTokenBaseHTTPClient.js","sourceRoot":"","sources":["../../../../src/client/urlTokenBaseHTTPClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,13 @@ import Versions from './versions';
|
|
|
18
18
|
import Genesis from './genesis';
|
|
19
19
|
import Proof from './proof';
|
|
20
20
|
export default class AlgodClient extends ServiceClient {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Create an AlgodClient from
|
|
23
|
+
* * either a token, baseServer, port, and optional headers
|
|
24
|
+
* * or a base client server for interoperability with external dApp wallets
|
|
25
|
+
*/
|
|
26
|
+
constructor(tokenOrBaseClient, baseServer = 'http://r2.algorand.network', port = 4180, headers = {}) {
|
|
27
|
+
super('X-Algo-API-Token', tokenOrBaseClient, baseServer, port, headers);
|
|
23
28
|
}
|
|
24
29
|
healthCheck() {
|
|
25
30
|
return new HealthCheck(this.c);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"algod.js","sourceRoot":"","sources":["../../../../../../src/client/v2/algod/algod.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"algod.js","sourceRoot":"","sources":["../../../../../../src/client/v2/algod/algod.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,6BAA6B,MAAM,iCAAiC,CAAC;AAC5E,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,MAAM,SAAS,CAAC;AAO5B,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,aAAa;IACpD;;;;OAIG;IACH,YACE,iBAIkB,EAClB,UAAU,GAAG,4BAA4B,EACzC,OAAwB,IAAI,EAC5B,UAAkC,EAAE;QAEpC,KAAK,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW;QACT,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,aAAa;QACX,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,kBAAkB,CAAC,SAAoC;QACrD,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,OAAe;QAChC,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAmB;QACvB,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,6BAA6B,CAAC,IAAY;QACxC,OAAO,IAAI,6BAA6B,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,8BAA8B;QAC5B,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,2BAA2B,CAAC,OAAe;QACzC,OAAO,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,KAAa;QAC5B,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,CAAC,MAA2B;QACjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,EAA0B;QAC/B,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,YAAY,CAAC,KAAa;QACxB,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,KAAa;QAC9B,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,KAAa,EAAE,IAAY;QAClC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;CACF"}
|
|
@@ -14,8 +14,13 @@ import SearchForTransactions from './searchForTransactions';
|
|
|
14
14
|
import SearchForAssets from './searchForAssets';
|
|
15
15
|
import SearchForApplications from './searchForApplications';
|
|
16
16
|
export default class IndexerClient extends ServiceClient {
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Create an IndexerClient from
|
|
19
|
+
* * either a token, baseServer, port, and optional headers
|
|
20
|
+
* * or a base client server for interoperability with external dApp wallets
|
|
21
|
+
*/
|
|
22
|
+
constructor(tokenOrBaseClient, baseServer = 'http://127.0.0.1', port = 8080, headers = {}) {
|
|
23
|
+
super('X-Indexer-API-Token', tokenOrBaseClient, baseServer, port, headers);
|
|
19
24
|
}
|
|
20
25
|
/**
|
|
21
26
|
* Returns the health object for the service.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../../../../../src/client/v2/indexer/indexer.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../../../../../src/client/v2/indexer/indexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,21 +10,30 @@ function convertTokenStringToTokenHeader(token = '', headerIdentifier) {
|
|
|
10
10
|
tokenHeader[headerIdentifier] = token;
|
|
11
11
|
return tokenHeader;
|
|
12
12
|
}
|
|
13
|
+
function isBaseHTTPClient(tbc) {
|
|
14
|
+
return typeof tbc.get === 'function';
|
|
15
|
+
}
|
|
13
16
|
/**
|
|
14
17
|
* Abstract service client to encapsulate shared AlgodClient and IndexerClient logic
|
|
15
18
|
*/
|
|
16
19
|
export default class ServiceClient {
|
|
17
|
-
constructor(tokenHeaderIdentifier,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (typeof tokenHeaderOrStr === 'string') {
|
|
22
|
-
tokenHeader = convertTokenStringToTokenHeader(tokenHeaderOrStr, tokenHeaderIdentifier);
|
|
20
|
+
constructor(tokenHeaderIdentifier, tokenHeaderOrStrOrBaseClient, baseServer, port, defaultHeaders = {}) {
|
|
21
|
+
if (isBaseHTTPClient(tokenHeaderOrStrOrBaseClient)) {
|
|
22
|
+
// we are using a base client
|
|
23
|
+
this.c = new HTTPClient(tokenHeaderOrStrOrBaseClient);
|
|
23
24
|
}
|
|
24
25
|
else {
|
|
25
|
-
|
|
26
|
+
// Accept token header as string or object
|
|
27
|
+
// - workaround to allow backwards compatibility for multiple headers
|
|
28
|
+
let tokenHeader;
|
|
29
|
+
if (typeof tokenHeaderOrStrOrBaseClient === 'string') {
|
|
30
|
+
tokenHeader = convertTokenStringToTokenHeader(tokenHeaderOrStrOrBaseClient, tokenHeaderIdentifier);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
tokenHeader = tokenHeaderOrStrOrBaseClient;
|
|
34
|
+
}
|
|
35
|
+
this.c = new HTTPClient(tokenHeader, baseServer, port, defaultHeaders);
|
|
26
36
|
}
|
|
27
|
-
this.c = new HTTPClient(tokenHeader, baseServer, port, defaultHeaders);
|
|
28
37
|
this.intDecoding = IntDecoding.DEFAULT;
|
|
29
38
|
}
|
|
30
39
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serviceClient.js","sourceRoot":"","sources":["../../../../../src/client/v2/serviceClient.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"serviceClient.js","sourceRoot":"","sources":["../../../../../src/client/v2/serviceClient.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,WAAW,CAAC;AACnC,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAUlD;;;;GAIG;AACH,SAAS,+BAA+B,CACtC,QAAgB,EAAE,EAClB,gBAAuC;IAEvC,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,WAAW,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;IACtC,OAAO,WAA0B,CAAC;AACpC,CAAC;AAED,SAAS,gBAAgB,CACvB,GAA0C;IAE1C,OAAO,OAAQ,GAAsB,CAAC,GAAG,KAAK,UAAU,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAgB,aAAa;IAIzC,YACE,qBAA4C,EAC5C,4BAAmE,EACnE,UAAkB,EAClB,IAAsB,EACtB,iBAAsC,EAAE;QAExC,IAAI,gBAAgB,CAAC,4BAA4B,CAAC,EAAE;YAClD,6BAA6B;YAC7B,IAAI,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,4BAA4B,CAAC,CAAC;SACvD;aAAM;YACL,0CAA0C;YAC1C,qEAAqE;YACrE,IAAI,WAAwB,CAAC;YAC7B,IAAI,OAAO,4BAA4B,KAAK,QAAQ,EAAE;gBACpD,WAAW,GAAG,+BAA+B,CAC3C,4BAA4B,EAC5B,qBAAqB,CACtB,CAAC;aACH;iBAAM;gBACL,WAAW,GAAG,4BAA4B,CAAC;aAC5C;YAED,IAAI,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;SACxE;QAED,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,MAAmB;QAChC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF"}
|