@portal-hq/provider 0.3.8 → 1.0.1
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/lib/commonjs/providers/index.js +1 -1
- package/lib/commonjs/signers/mpc.js +2 -2
- package/lib/esm/providers/index.js +1 -1
- package/lib/esm/signers/mpc.js +2 -2
- package/package.json +3 -3
- package/src/providers/index.ts +1 -1
- package/src/signers/mpc.ts +2 -2
- package/lib/commonjs/requesters/http.js +0 -52
- package/lib/commonjs/requesters/index.js +0 -8
- package/lib/commonjs/signers/http.js +0 -56
- package/lib/esm/requesters/http.js +0 -50
- package/lib/esm/requesters/index.js +0 -1
- package/lib/esm/signers/http.js +0 -54
|
@@ -32,7 +32,7 @@ class Provider {
|
|
|
32
32
|
// Required options
|
|
33
33
|
apiKey, chainId, keychain,
|
|
34
34
|
// Optional options
|
|
35
|
-
apiUrl = 'api.portalhq.io', autoApprove = false, mpcUrl = 'mpc.portalhq.io', mpcVersion = '
|
|
35
|
+
apiUrl = 'api.portalhq.io', autoApprove = false, mpcUrl = 'mpc.portalhq.io', mpcVersion = 'v4', gatewayConfig = {}, }) {
|
|
36
36
|
// Handle required fields
|
|
37
37
|
if (!apiKey || apiKey.length === 0) {
|
|
38
38
|
throw new utils_1.InvalidApiKeyError();
|
|
@@ -12,8 +12,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
const react_native_1 = require("react-native");
|
|
13
13
|
const utils_1 = require("@portal-hq/utils");
|
|
14
14
|
class MpcSigner {
|
|
15
|
-
constructor({ keychain, mpcUrl, mpcVersion = '
|
|
16
|
-
this.mpcVersion = '
|
|
15
|
+
constructor({ keychain, mpcUrl, mpcVersion = 'v4' }) {
|
|
16
|
+
this.mpcVersion = 'v4';
|
|
17
17
|
this.buildParams = (method, txParams) => {
|
|
18
18
|
let params = txParams;
|
|
19
19
|
switch (method) {
|
|
@@ -30,7 +30,7 @@ class Provider {
|
|
|
30
30
|
// Required options
|
|
31
31
|
apiKey, chainId, keychain,
|
|
32
32
|
// Optional options
|
|
33
|
-
apiUrl = 'api.portalhq.io', autoApprove = false, mpcUrl = 'mpc.portalhq.io', mpcVersion = '
|
|
33
|
+
apiUrl = 'api.portalhq.io', autoApprove = false, mpcUrl = 'mpc.portalhq.io', mpcVersion = 'v4', gatewayConfig = {}, }) {
|
|
34
34
|
// Handle required fields
|
|
35
35
|
if (!apiKey || apiKey.length === 0) {
|
|
36
36
|
throw new InvalidApiKeyError();
|
package/lib/esm/signers/mpc.js
CHANGED
|
@@ -10,8 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import { NativeModules } from 'react-native';
|
|
11
11
|
import { PortalMpcError, } from '@portal-hq/utils';
|
|
12
12
|
class MpcSigner {
|
|
13
|
-
constructor({ keychain, mpcUrl, mpcVersion = '
|
|
14
|
-
this.mpcVersion = '
|
|
13
|
+
constructor({ keychain, mpcUrl, mpcVersion = 'v4' }) {
|
|
14
|
+
this.mpcVersion = 'v4';
|
|
15
15
|
this.buildParams = (method, txParams) => {
|
|
16
16
|
let params = txParams;
|
|
17
17
|
switch (method) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@portal-hq/provider",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/esm/index",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"test": "jest"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@portal-hq/utils": "^0.
|
|
22
|
+
"@portal-hq/utils": "^1.0.1"
|
|
23
23
|
},
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@babel/preset-typescript": "^7.18.6",
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"ts-jest": "^29.0.3",
|
|
30
30
|
"typescript": "^4.8.4"
|
|
31
31
|
},
|
|
32
|
-
"gitHead": "
|
|
32
|
+
"gitHead": "3d6be3c95922b6bed09fcc59351806fd63557fa3"
|
|
33
33
|
}
|
package/src/providers/index.ts
CHANGED
package/src/signers/mpc.ts
CHANGED
|
@@ -20,9 +20,9 @@ class MpcSigner implements Signer {
|
|
|
20
20
|
public address?: string
|
|
21
21
|
public keychain: KeychainAdapter
|
|
22
22
|
public mpcUrl: string // should we add a default here mpc.portalhq.io
|
|
23
|
-
public mpcVersion: string = '
|
|
23
|
+
public mpcVersion: string = 'v4'
|
|
24
24
|
|
|
25
|
-
constructor({ keychain, mpcUrl, mpcVersion = '
|
|
25
|
+
constructor({ keychain, mpcUrl, mpcVersion = 'v4' }: MpcSignerOptions) {
|
|
26
26
|
this.keychain = keychain
|
|
27
27
|
this.mpc = NativeModules.PortalMobileMpc
|
|
28
28
|
this.mpcUrl = mpcUrl
|
|
@@ -1,52 +0,0 @@
|
|
|
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;
|
|
@@ -1,8 +0,0 @@
|
|
|
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; } });
|
|
@@ -1,56 +0,0 @@
|
|
|
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;
|
|
@@ -1,50 +0,0 @@
|
|
|
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;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as HttpRequester } from './http';
|
package/lib/esm/signers/http.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
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;
|