@portal-hq/provider 3.0.5 → 3.0.6-rcb
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.
|
@@ -0,0 +1,52 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const utils_1 = require("@portal-hq/utils");
|
|
13
|
+
class HttpRequester {
|
|
14
|
+
constructor({ baseUrl }) {
|
|
15
|
+
this.baseUrl = baseUrl.startsWith('https://')
|
|
16
|
+
? baseUrl
|
|
17
|
+
: `https://${baseUrl}`;
|
|
18
|
+
}
|
|
19
|
+
get(path, options) {
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
const requestOptions = {
|
|
22
|
+
method: 'GET',
|
|
23
|
+
url: `${this.baseUrl}${path}`,
|
|
24
|
+
};
|
|
25
|
+
if (options && options.headers) {
|
|
26
|
+
requestOptions.headers = this.buildHeaders(options.headers);
|
|
27
|
+
}
|
|
28
|
+
const request = new utils_1.HttpRequest(requestOptions);
|
|
29
|
+
const response = (yield request.send());
|
|
30
|
+
return response;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
post(path, options) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
const requestOptions = {
|
|
36
|
+
method: 'POST',
|
|
37
|
+
url: `${this.baseUrl}${path}`,
|
|
38
|
+
};
|
|
39
|
+
requestOptions.headers = this.buildHeaders(options && options.headers ? options.headers : {});
|
|
40
|
+
if (options && options.body) {
|
|
41
|
+
requestOptions.body = options.body;
|
|
42
|
+
}
|
|
43
|
+
const request = new utils_1.HttpRequest(requestOptions);
|
|
44
|
+
const response = (yield request.send());
|
|
45
|
+
return response;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
buildHeaders(headers) {
|
|
49
|
+
return Object.assign({ 'Content-Type': 'application/json' }, headers);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.default = HttpRequester;
|
|
@@ -0,0 +1,8 @@
|
|
|
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.HttpRequester = void 0;
|
|
7
|
+
var http_1 = require("./http");
|
|
8
|
+
Object.defineProperty(exports, "HttpRequester", { enumerable: true, get: function () { return __importDefault(http_1).default; } });
|
|
@@ -0,0 +1,56 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const utils_1 = require("@portal-hq/utils");
|
|
13
|
+
class HttpSigner {
|
|
14
|
+
constructor(opts) {
|
|
15
|
+
if (!opts.portal) {
|
|
16
|
+
throw new utils_1.MissingOptionError({
|
|
17
|
+
className: 'HttpSigner',
|
|
18
|
+
option: 'portal',
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
this.keychain = opts.keychain;
|
|
22
|
+
this.portal = opts.portal;
|
|
23
|
+
}
|
|
24
|
+
sign(message, provider) {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
const address = yield this.keychain.getAddress();
|
|
27
|
+
const { chainId, method, params } = message;
|
|
28
|
+
switch (method) {
|
|
29
|
+
case 'eth_requestAccounts':
|
|
30
|
+
return [address];
|
|
31
|
+
case 'eth_accounts':
|
|
32
|
+
return [address];
|
|
33
|
+
default:
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
console.log(`[Portal:HttpSigner] Requesting signature from exchange for:`, JSON.stringify({
|
|
37
|
+
chainId,
|
|
38
|
+
method,
|
|
39
|
+
params: JSON.stringify([params]),
|
|
40
|
+
}, null, 2));
|
|
41
|
+
const signatureResponse = yield this.portal.post('/api/v1/clients/transactions/sign', {
|
|
42
|
+
body: {
|
|
43
|
+
chainId,
|
|
44
|
+
method,
|
|
45
|
+
params: JSON.stringify([params]),
|
|
46
|
+
},
|
|
47
|
+
headers: {
|
|
48
|
+
Authorization: `Bearer ${provider.apiKey}`,
|
|
49
|
+
'Content-Type': 'application/json',
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
return signatureResponse;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.default = HttpSigner;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { HttpRequest, } from '@portal-hq/utils';
|
|
11
|
+
class HttpRequester {
|
|
12
|
+
constructor({ baseUrl }) {
|
|
13
|
+
this.baseUrl = baseUrl.startsWith('https://')
|
|
14
|
+
? baseUrl
|
|
15
|
+
: `https://${baseUrl}`;
|
|
16
|
+
}
|
|
17
|
+
get(path, options) {
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
const requestOptions = {
|
|
20
|
+
method: 'GET',
|
|
21
|
+
url: `${this.baseUrl}${path}`,
|
|
22
|
+
};
|
|
23
|
+
if (options && options.headers) {
|
|
24
|
+
requestOptions.headers = this.buildHeaders(options.headers);
|
|
25
|
+
}
|
|
26
|
+
const request = new HttpRequest(requestOptions);
|
|
27
|
+
const response = (yield request.send());
|
|
28
|
+
return response;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
post(path, options) {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
const requestOptions = {
|
|
34
|
+
method: 'POST',
|
|
35
|
+
url: `${this.baseUrl}${path}`,
|
|
36
|
+
};
|
|
37
|
+
requestOptions.headers = this.buildHeaders(options && options.headers ? options.headers : {});
|
|
38
|
+
if (options && options.body) {
|
|
39
|
+
requestOptions.body = options.body;
|
|
40
|
+
}
|
|
41
|
+
const request = new HttpRequest(requestOptions);
|
|
42
|
+
const response = (yield request.send());
|
|
43
|
+
return response;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
buildHeaders(headers) {
|
|
47
|
+
return Object.assign({ 'Content-Type': 'application/json' }, headers);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export default HttpRequester;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as HttpRequester } from './http';
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { MissingOptionError, } from '@portal-hq/utils';
|
|
11
|
+
class HttpSigner {
|
|
12
|
+
constructor(opts) {
|
|
13
|
+
if (!opts.portal) {
|
|
14
|
+
throw new MissingOptionError({
|
|
15
|
+
className: 'HttpSigner',
|
|
16
|
+
option: 'portal',
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
this.keychain = opts.keychain;
|
|
20
|
+
this.portal = opts.portal;
|
|
21
|
+
}
|
|
22
|
+
sign(message, provider) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
const address = yield this.keychain.getAddress();
|
|
25
|
+
const { chainId, method, params } = message;
|
|
26
|
+
switch (method) {
|
|
27
|
+
case 'eth_requestAccounts':
|
|
28
|
+
return [address];
|
|
29
|
+
case 'eth_accounts':
|
|
30
|
+
return [address];
|
|
31
|
+
default:
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
console.log(`[Portal:HttpSigner] Requesting signature from exchange for:`, JSON.stringify({
|
|
35
|
+
chainId,
|
|
36
|
+
method,
|
|
37
|
+
params: JSON.stringify([params]),
|
|
38
|
+
}, null, 2));
|
|
39
|
+
const signatureResponse = yield this.portal.post('/api/v1/clients/transactions/sign', {
|
|
40
|
+
body: {
|
|
41
|
+
chainId,
|
|
42
|
+
method,
|
|
43
|
+
params: JSON.stringify([params]),
|
|
44
|
+
},
|
|
45
|
+
headers: {
|
|
46
|
+
Authorization: `Bearer ${provider.apiKey}`,
|
|
47
|
+
'Content-Type': 'application/json',
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
return signatureResponse;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export default HttpSigner;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@portal-hq/provider",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.6-rcb",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/esm/index",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"test": "jest"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@portal-hq/connect": "^3.0.
|
|
23
|
-
"@portal-hq/utils": "^3.0.
|
|
22
|
+
"@portal-hq/connect": "^3.0.6-rcb",
|
|
23
|
+
"@portal-hq/utils": "^3.0.6-rcb"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@babel/preset-typescript": "^7.18.6",
|
|
@@ -29,6 +29,5 @@
|
|
|
29
29
|
"jest-environment-jsdom": "^29.2.2",
|
|
30
30
|
"ts-jest": "^29.0.3",
|
|
31
31
|
"typescript": "^4.8.4"
|
|
32
|
-
}
|
|
33
|
-
"gitHead": "58faddeac81625fcb230357540e7f4663f8c810c"
|
|
32
|
+
}
|
|
34
33
|
}
|