@dynamic-labs/solana 4.0.0-alpha.3 → 4.0.0-alpha.31

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.
Files changed (75) hide show
  1. package/CHANGELOG.md +261 -0
  2. package/package.cjs +8 -0
  3. package/package.js +4 -0
  4. package/package.json +12 -18
  5. package/src/{CoinbaseSolana.cjs → CoinbaseSolana/CoinbaseSolana.cjs} +3 -9
  6. package/src/{CoinbaseSolana.d.ts → CoinbaseSolana/CoinbaseSolana.d.ts} +3 -3
  7. package/src/{CoinbaseSolana.js → CoinbaseSolana/CoinbaseSolana.js} +3 -9
  8. package/src/CoinbaseSolana/index.d.ts +1 -0
  9. package/src/{Phantom.cjs → Phantom/Phantom.cjs} +6 -6
  10. package/src/{Phantom.d.ts → Phantom/Phantom.d.ts} +3 -3
  11. package/src/{Phantom.js → Phantom/Phantom.js} +6 -6
  12. package/src/Phantom/index.d.ts +1 -0
  13. package/src/{solProviderHelper.cjs → SolProviderHelper/SolProviderHelper.cjs} +4 -4
  14. package/src/{solProviderHelper.js → SolProviderHelper/SolProviderHelper.js} +4 -4
  15. package/src/SolProviderHelper/index.d.ts +1 -0
  16. package/src/SolanaWalletConnectors.cjs +23 -0
  17. package/src/SolanaWalletConnectors.d.ts +2 -0
  18. package/src/SolanaWalletConnectors.js +19 -0
  19. package/src/SolanaWalletConnectorsWithConfig/SolanaWalletConnectorsWithConfig.cjs +26 -0
  20. package/src/SolanaWalletConnectorsWithConfig/SolanaWalletConnectorsWithConfig.d.ts +6 -0
  21. package/src/SolanaWalletConnectorsWithConfig/SolanaWalletConnectorsWithConfig.js +22 -0
  22. package/src/SolanaWalletConnectorsWithConfig/index.d.ts +1 -0
  23. package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.cjs +2 -2
  24. package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.d.ts +3 -3
  25. package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.js +3 -3
  26. package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.cjs +2 -2
  27. package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.d.ts +2 -2
  28. package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.js +1 -1
  29. package/src/{Solflare.cjs → Solflare/Solflare.cjs} +2 -2
  30. package/src/{Solflare.d.ts → Solflare/Solflare.d.ts} +3 -3
  31. package/src/{Solflare.js → Solflare/Solflare.js} +2 -2
  32. package/src/Solflare/index.d.ts +1 -0
  33. package/src/index.cjs +19 -18
  34. package/src/index.d.ts +7 -5
  35. package/src/index.js +9 -17
  36. package/src/injected/BackpackSol.d.ts +2 -2
  37. package/src/injected/FallbackSolanaConnector.d.ts +2 -2
  38. package/src/injected/InjectedWalletBase.cjs +7 -7
  39. package/src/injected/InjectedWalletBase.d.ts +3 -3
  40. package/src/injected/InjectedWalletBase.js +7 -7
  41. package/src/injected/PhantomInjected.d.ts +2 -2
  42. package/src/injected/UnknownInjected.d.ts +2 -2
  43. package/src/injected/fetchInjectedWalletConnectors.cjs +2 -2
  44. package/src/injected/fetchInjectedWalletConnectors.js +2 -2
  45. package/src/phantomRedirect/{PhantomRedirect.cjs → PhantomRedirect/PhantomRedirect.cjs} +28 -25
  46. package/src/phantomRedirect/{PhantomRedirect.d.ts → PhantomRedirect/PhantomRedirect.d.ts} +3 -3
  47. package/src/phantomRedirect/{PhantomRedirect.js → PhantomRedirect/PhantomRedirect.js} +10 -7
  48. package/src/phantomRedirect/PhantomRedirect/index.d.ts +1 -0
  49. package/src/phantomRedirect/buildUrl/buildUrl.cjs +8 -0
  50. package/src/phantomRedirect/buildUrl/buildUrl.d.ts +1 -0
  51. package/src/phantomRedirect/buildUrl/buildUrl.js +4 -0
  52. package/src/phantomRedirect/buildUrl/index.d.ts +1 -0
  53. package/src/phantomRedirect/decryptPayload/decryptPayload.cjs +34 -0
  54. package/src/phantomRedirect/decryptPayload/decryptPayload.d.ts +1 -0
  55. package/src/phantomRedirect/decryptPayload/decryptPayload.js +25 -0
  56. package/src/phantomRedirect/decryptPayload/index.d.ts +1 -0
  57. package/src/phantomRedirect/encryptPayload/encryptPayload.cjs +18 -0
  58. package/src/phantomRedirect/encryptPayload/encryptPayload.d.ts +1 -0
  59. package/src/phantomRedirect/encryptPayload/encryptPayload.js +10 -0
  60. package/src/phantomRedirect/encryptPayload/index.d.ts +1 -0
  61. package/src/phantomRedirect/fetchCluster/fetchCluster.cjs +33 -0
  62. package/src/phantomRedirect/fetchCluster/fetchCluster.d.ts +1 -0
  63. package/src/phantomRedirect/fetchCluster/fetchCluster.js +29 -0
  64. package/src/phantomRedirect/fetchCluster/index.d.ts +1 -0
  65. package/src/phantomRedirect/storage/index.d.ts +1 -0
  66. package/src/phantomRedirect/{storage.d.ts → storage/storage.d.ts} +1 -1
  67. package/src/utils/logger.cjs +10 -0
  68. package/src/utils/logger.d.ts +2 -0
  69. package/src/utils/logger.js +6 -0
  70. package/src/phantomRedirect/utils.cjs +0 -56
  71. package/src/phantomRedirect/utils.d.ts +0 -4
  72. package/src/phantomRedirect/utils.js +0 -44
  73. /package/src/{solProviderHelper.d.ts → SolProviderHelper/SolProviderHelper.d.ts} +0 -0
  74. /package/src/phantomRedirect/{storage.cjs → storage/storage.cjs} +0 -0
  75. /package/src/phantomRedirect/{storage.js → storage/storage.js} +0 -0
@@ -1,13 +1,16 @@
1
1
  'use client'
2
- import { __awaiter } from '../../_virtual/_tslib.js';
3
- import nacl from 'tweetnacl';
4
- import bs58 from 'bs58';
2
+ import { __awaiter } from '../../../_virtual/_tslib.js';
5
3
  import { PublicKey, Transaction } from '@solana/web3.js';
6
- import { SolWalletConnector } from '@dynamic-labs/solana-core';
7
- import { fetchCluster, buildUrl, decryptPayload, encryptPayload } from './utils.js';
8
- import { storage, clearStorage } from './storage.js';
4
+ import bs58 from 'bs58';
5
+ import nacl from 'tweetnacl';
6
+ import { SolanaWalletConnector } from '@dynamic-labs/solana-core';
7
+ import { buildUrl } from '../buildUrl/buildUrl.js';
8
+ import { decryptPayload } from '../decryptPayload/decryptPayload.js';
9
+ import { encryptPayload } from '../encryptPayload/encryptPayload.js';
10
+ import { fetchCluster } from '../fetchCluster/fetchCluster.js';
11
+ import { storage, clearStorage } from '../storage/storage.js';
9
12
 
10
- class PhantomRedirect extends SolWalletConnector {
13
+ class PhantomRedirect extends SolanaWalletConnector {
11
14
  constructor(props) {
12
15
  super(Object.assign({}, props));
13
16
  this.name = 'Phantom';
@@ -0,0 +1 @@
1
+ export * from './PhantomRedirect';
@@ -0,0 +1,8 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const buildUrl = (path, params) => `https://phantom.app/ul/v1/${path}?${params.toString()}`;
7
+
8
+ exports.buildUrl = buildUrl;
@@ -0,0 +1 @@
1
+ export declare const buildUrl: (path: string, params: URLSearchParams) => string;
@@ -0,0 +1,4 @@
1
+ 'use client'
2
+ const buildUrl = (path, params) => `https://phantom.app/ul/v1/${path}?${params.toString()}`;
3
+
4
+ export { buildUrl };
@@ -0,0 +1 @@
1
+ export * from './buildUrl';
@@ -0,0 +1,34 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var bs58 = require('bs58');
7
+ var nacl = require('tweetnacl');
8
+ var logger = require('../../utils/logger.cjs');
9
+
10
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
+
12
+ var bs58__default = /*#__PURE__*/_interopDefaultLegacy(bs58);
13
+ var nacl__default = /*#__PURE__*/_interopDefaultLegacy(nacl);
14
+
15
+ const failForMissingParam = (paramName, param) => {
16
+ const message = `Failed to decrypt phantom redirect payload: ${paramName} was invalid (${param})`;
17
+ logger.logger.error(message);
18
+ throw new Error(message);
19
+ };
20
+ const decryptPayload = (data, nonce, sharedSecret) => {
21
+ if (!data)
22
+ failForMissingParam('data', data);
23
+ if (!nonce)
24
+ failForMissingParam('nonce', nonce);
25
+ if (!sharedSecret)
26
+ failForMissingParam('sharedSecret', sharedSecret);
27
+ const decryptedData = nacl__default["default"].box.open.after(bs58__default["default"].decode(data), bs58__default["default"].decode(nonce), sharedSecret);
28
+ if (!decryptedData) {
29
+ throw new Error('Unable to decrypt data');
30
+ }
31
+ return JSON.parse(Buffer.from(decryptedData).toString('utf8'));
32
+ };
33
+
34
+ exports.decryptPayload = decryptPayload;
@@ -0,0 +1 @@
1
+ export declare const decryptPayload: (data: string, nonce: string, sharedSecret: Uint8Array) => any;
@@ -0,0 +1,25 @@
1
+ 'use client'
2
+ import bs58 from 'bs58';
3
+ import nacl from 'tweetnacl';
4
+ import { logger } from '../../utils/logger.js';
5
+
6
+ const failForMissingParam = (paramName, param) => {
7
+ const message = `Failed to decrypt phantom redirect payload: ${paramName} was invalid (${param})`;
8
+ logger.error(message);
9
+ throw new Error(message);
10
+ };
11
+ const decryptPayload = (data, nonce, sharedSecret) => {
12
+ if (!data)
13
+ failForMissingParam('data', data);
14
+ if (!nonce)
15
+ failForMissingParam('nonce', nonce);
16
+ if (!sharedSecret)
17
+ failForMissingParam('sharedSecret', sharedSecret);
18
+ const decryptedData = nacl.box.open.after(bs58.decode(data), bs58.decode(nonce), sharedSecret);
19
+ if (!decryptedData) {
20
+ throw new Error('Unable to decrypt data');
21
+ }
22
+ return JSON.parse(Buffer.from(decryptedData).toString('utf8'));
23
+ };
24
+
25
+ export { decryptPayload };
@@ -0,0 +1 @@
1
+ export * from './decryptPayload';
@@ -0,0 +1,18 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var nacl = require('tweetnacl');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ var nacl__default = /*#__PURE__*/_interopDefaultLegacy(nacl);
11
+
12
+ const encryptPayload = (payload, sharedSecret) => {
13
+ const nonce = nacl__default["default"].randomBytes(24);
14
+ const encryptedPayload = nacl__default["default"].box.after(Buffer.from(JSON.stringify(payload)), nonce, sharedSecret);
15
+ return [nonce, encryptedPayload];
16
+ };
17
+
18
+ exports.encryptPayload = encryptPayload;
@@ -0,0 +1 @@
1
+ export declare const encryptPayload: (payload: any, sharedSecret: Uint8Array) => Uint8Array[];
@@ -0,0 +1,10 @@
1
+ 'use client'
2
+ import nacl from 'tweetnacl';
3
+
4
+ const encryptPayload = (payload, sharedSecret) => {
5
+ const nonce = nacl.randomBytes(24);
6
+ const encryptedPayload = nacl.box.after(Buffer.from(JSON.stringify(payload)), nonce, sharedSecret);
7
+ return [nonce, encryptedPayload];
8
+ };
9
+
10
+ export { encryptPayload };
@@ -0,0 +1 @@
1
+ export * from './encryptPayload';
@@ -0,0 +1,33 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../_virtual/_tslib.cjs');
7
+
8
+ const GENESIS_HASHES = {
9
+ '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY': 'testnet',
10
+ '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d': 'mainnet-beta',
11
+ EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG: 'devnet',
12
+ };
13
+ const fetchCluster = (rpc) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
14
+ try {
15
+ const { result } = yield (yield fetch(rpc, {
16
+ body: JSON.stringify({
17
+ id: 1,
18
+ jsonrpc: '2.0',
19
+ method: 'getGenesisHash',
20
+ }),
21
+ headers: {
22
+ 'Content-Type': 'application/json',
23
+ },
24
+ method: 'POST',
25
+ })).json();
26
+ return GENESIS_HASHES[result];
27
+ }
28
+ catch (err) {
29
+ return 'mainnet-beta';
30
+ }
31
+ });
32
+
33
+ exports.fetchCluster = fetchCluster;
@@ -0,0 +1 @@
1
+ export declare const fetchCluster: (rpc: string) => Promise<string>;
@@ -0,0 +1,29 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../_virtual/_tslib.js';
3
+
4
+ const GENESIS_HASHES = {
5
+ '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY': 'testnet',
6
+ '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d': 'mainnet-beta',
7
+ EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG: 'devnet',
8
+ };
9
+ const fetchCluster = (rpc) => __awaiter(void 0, void 0, void 0, function* () {
10
+ try {
11
+ const { result } = yield (yield fetch(rpc, {
12
+ body: JSON.stringify({
13
+ id: 1,
14
+ jsonrpc: '2.0',
15
+ method: 'getGenesisHash',
16
+ }),
17
+ headers: {
18
+ 'Content-Type': 'application/json',
19
+ },
20
+ method: 'POST',
21
+ })).json();
22
+ return GENESIS_HASHES[result];
23
+ }
24
+ catch (err) {
25
+ return 'mainnet-beta';
26
+ }
27
+ });
28
+
29
+ export { fetchCluster };
@@ -0,0 +1 @@
1
+ export * from './fetchCluster';
@@ -0,0 +1 @@
1
+ export * from './storage';
@@ -1,5 +1,5 @@
1
1
  import { PublicKey } from '@solana/web3.js';
2
- import { Method } from './types';
2
+ import { Method } from '../types';
3
3
  export declare const storage: {
4
4
  address: {
5
5
  get: () => string | undefined;
@@ -0,0 +1,10 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var logger$1 = require('@dynamic-labs/logger');
7
+
8
+ const logger = new logger$1.Logger('solana');
9
+
10
+ exports.logger = logger;
@@ -0,0 +1,2 @@
1
+ import { Logger } from '@dynamic-labs/logger';
2
+ export declare const logger: Logger;
@@ -0,0 +1,6 @@
1
+ 'use client'
2
+ import { Logger } from '@dynamic-labs/logger';
3
+
4
+ const logger = new Logger('solana');
5
+
6
+ export { logger };
@@ -1,56 +0,0 @@
1
- 'use client'
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var _tslib = require('../../_virtual/_tslib.cjs');
7
- var nacl = require('tweetnacl');
8
- var bs58 = require('bs58');
9
-
10
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
-
12
- var nacl__default = /*#__PURE__*/_interopDefaultLegacy(nacl);
13
- var bs58__default = /*#__PURE__*/_interopDefaultLegacy(bs58);
14
-
15
- const buildUrl = (path, params) => `https://phantom.app/ul/v1/${path}?${params.toString()}`;
16
- const decryptPayload = (data, nonce, sharedSecret) => {
17
- const decryptedData = nacl__default["default"].box.open.after(bs58__default["default"].decode(data), bs58__default["default"].decode(nonce), sharedSecret);
18
- if (!decryptedData) {
19
- throw new Error('Unable to decrypt data');
20
- }
21
- return JSON.parse(Buffer.from(decryptedData).toString('utf8'));
22
- };
23
- const encryptPayload = (payload, sharedSecret) => {
24
- const nonce = nacl__default["default"].randomBytes(24);
25
- const encryptedPayload = nacl__default["default"].box.after(Buffer.from(JSON.stringify(payload)), nonce, sharedSecret);
26
- return [nonce, encryptedPayload];
27
- };
28
- const GENESIS_HASHES = {
29
- '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY': 'testnet',
30
- '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d': 'mainnet-beta',
31
- EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG: 'devnet',
32
- };
33
- const fetchCluster = (rpc) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
34
- try {
35
- const { result } = yield (yield fetch(rpc, {
36
- body: JSON.stringify({
37
- id: 1,
38
- jsonrpc: '2.0',
39
- method: 'getGenesisHash',
40
- }),
41
- headers: {
42
- 'Content-Type': 'application/json',
43
- },
44
- method: 'POST',
45
- })).json();
46
- return GENESIS_HASHES[result];
47
- }
48
- catch (err) {
49
- return 'mainnet-beta';
50
- }
51
- });
52
-
53
- exports.buildUrl = buildUrl;
54
- exports.decryptPayload = decryptPayload;
55
- exports.encryptPayload = encryptPayload;
56
- exports.fetchCluster = fetchCluster;
@@ -1,4 +0,0 @@
1
- export declare const buildUrl: (path: string, params: URLSearchParams) => string;
2
- export declare const decryptPayload: (data: string, nonce: string, sharedSecret: Uint8Array) => any;
3
- export declare const encryptPayload: (payload: any, sharedSecret: Uint8Array) => Uint8Array[];
4
- export declare const fetchCluster: (rpc: string) => Promise<string>;
@@ -1,44 +0,0 @@
1
- 'use client'
2
- import { __awaiter } from '../../_virtual/_tslib.js';
3
- import nacl from 'tweetnacl';
4
- import bs58 from 'bs58';
5
-
6
- const buildUrl = (path, params) => `https://phantom.app/ul/v1/${path}?${params.toString()}`;
7
- const decryptPayload = (data, nonce, sharedSecret) => {
8
- const decryptedData = nacl.box.open.after(bs58.decode(data), bs58.decode(nonce), sharedSecret);
9
- if (!decryptedData) {
10
- throw new Error('Unable to decrypt data');
11
- }
12
- return JSON.parse(Buffer.from(decryptedData).toString('utf8'));
13
- };
14
- const encryptPayload = (payload, sharedSecret) => {
15
- const nonce = nacl.randomBytes(24);
16
- const encryptedPayload = nacl.box.after(Buffer.from(JSON.stringify(payload)), nonce, sharedSecret);
17
- return [nonce, encryptedPayload];
18
- };
19
- const GENESIS_HASHES = {
20
- '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3zQawwpjk2NsNY': 'testnet',
21
- '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d': 'mainnet-beta',
22
- EtWTRABZaYq6iMfeYKouRu166VU2xqa1wcaWoxPkrZBG: 'devnet',
23
- };
24
- const fetchCluster = (rpc) => __awaiter(void 0, void 0, void 0, function* () {
25
- try {
26
- const { result } = yield (yield fetch(rpc, {
27
- body: JSON.stringify({
28
- id: 1,
29
- jsonrpc: '2.0',
30
- method: 'getGenesisHash',
31
- }),
32
- headers: {
33
- 'Content-Type': 'application/json',
34
- },
35
- method: 'POST',
36
- })).json();
37
- return GENESIS_HASHES[result];
38
- }
39
- catch (err) {
40
- return 'mainnet-beta';
41
- }
42
- });
43
-
44
- export { buildUrl, decryptPayload, encryptPayload, fetchCluster };