@portal-hq/provider 3.0.4 → 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;
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- const react_native_1 = require("react-native");
13
12
  const utils_1 = require("@portal-hq/utils");
13
+ const react_native_1 = require("react-native");
14
14
  class MpcSigner {
15
15
  get address() {
16
16
  return this.keychain.getAddress(this.isSimulator);
@@ -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;
@@ -7,8 +7,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import { NativeModules } from 'react-native';
11
10
  import { PortalMpcError, } from '@portal-hq/utils';
11
+ import { NativeModules } from 'react-native';
12
12
  class MpcSigner {
13
13
  get address() {
14
14
  return this.keychain.getAddress(this.isSimulator);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@portal-hq/provider",
3
- "version": "3.0.4",
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.4",
23
- "@portal-hq/utils": "^3.0.4"
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": "06ea78f34f46124827901f7a55b9a3dc761a5172"
32
+ }
34
33
  }
@@ -1,3 +1,4 @@
1
+ import PortalConnect from '@portal-hq/connect'
1
2
  import {
2
3
  Events,
3
4
  HttpRequester,
@@ -10,8 +11,8 @@ import {
10
11
  type RequestArguments,
11
12
  RpcErrorCodes,
12
13
  } from '@portal-hq/utils'
14
+ import { RpcErrorOptions } from '@portal-hq/utils/types'
13
15
 
14
- import { MpcSigner, Signer } from '../signers'
15
16
  import {
16
17
  type EventHandler,
17
18
  type GatewayLike,
@@ -19,8 +20,7 @@ import {
19
20
  type RegisteredEventHandler,
20
21
  type SwitchEthereumChainParameter,
21
22
  } from '../../types'
22
- import PortalConnect from '@portal-hq/connect'
23
- import { RpcErrorOptions } from '@portal-hq/utils/types'
23
+ import { MpcSigner, Signer } from '../signers'
24
24
 
25
25
  const passiveSignerMethods = [
26
26
  'eth_accounts',
@@ -1,10 +1,11 @@
1
1
  import { SigningRequestArguments } from '@portal-hq/utils'
2
+
2
3
  import { type SignResult } from '../../types'
3
4
 
4
5
  abstract class Signer {
5
6
  public sign(_: SigningRequestArguments, __?: any): Promise<SignResult> {
6
7
  throw new Error(
7
- '[Portal] sign() method must be implemented in a subclass of Signer'
8
+ '[Portal] sign() method must be implemented in a subclass of Signer',
8
9
  )
9
10
  }
10
11
  }
@@ -1,20 +1,19 @@
1
- import { NativeModules } from 'react-native'
1
+ import { FeatureFlags } from '@portal-hq/core/types'
2
2
  import {
3
3
  IPortalProvider,
4
4
  KeychainAdapter,
5
5
  PortalMpcError,
6
6
  type SigningRequestArguments,
7
7
  } from '@portal-hq/utils'
8
-
9
- import Signer from './abstract'
8
+ import { NativeModules } from 'react-native'
10
9
 
11
10
  import {
12
- PortalMobileMpcMetadata,
13
11
  type MpcSignerOptions,
14
12
  type PortalMobileMpc,
13
+ PortalMobileMpcMetadata,
15
14
  type SigningResponse,
16
15
  } from '../../types'
17
- import { FeatureFlags } from '@portal-hq/core/types'
16
+ import Signer from './abstract'
18
17
 
19
18
  class MpcSigner implements Signer {
20
19
  private isSimulator: boolean
package/types.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  // Types
2
-
3
2
  import PortalConnect from '@portal-hq/connect'
4
3
  import { BackupMethods } from '@portal-hq/core'
5
4
  import { KeychainAdapter, type PortalError } from '@portal-hq/utils'