@1tokenfe/onetoken-solana-provider 2.2.46

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 (36) hide show
  1. package/LICENSE.md +51 -0
  2. package/README.md +1 -0
  3. package/dist/ProviderSolana.d.ts +156 -0
  4. package/dist/ProviderSolana.js +264 -0
  5. package/dist/ProviderSolanaBase.d.ts +8 -0
  6. package/dist/ProviderSolanaBase.js +12 -0
  7. package/dist/cjs/ProviderSolana.js +270 -0
  8. package/dist/cjs/ProviderSolanaBase.js +15 -0
  9. package/dist/cjs/index.js +19 -0
  10. package/dist/cjs/type-utils.js +2 -0
  11. package/dist/cjs/utils.js +55 -0
  12. package/dist/cjs/wallet-standard/account.js +58 -0
  13. package/dist/cjs/wallet-standard/index.js +7 -0
  14. package/dist/cjs/wallet-standard/register.js +82 -0
  15. package/dist/cjs/wallet-standard/solana.js +17 -0
  16. package/dist/cjs/wallet-standard/types.js +2 -0
  17. package/dist/cjs/wallet-standard/wallet.js +237 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.js +3 -0
  20. package/dist/type-utils.d.ts +5 -0
  21. package/dist/type-utils.js +1 -0
  22. package/dist/utils.d.ts +15 -0
  23. package/dist/utils.js +43 -0
  24. package/dist/wallet-standard/account.d.ts +11 -0
  25. package/dist/wallet-standard/account.js +54 -0
  26. package/dist/wallet-standard/index.d.ts +3 -0
  27. package/dist/wallet-standard/index.js +2 -0
  28. package/dist/wallet-standard/register.d.ts +7 -0
  29. package/dist/wallet-standard/register.js +77 -0
  30. package/dist/wallet-standard/solana.d.ts +8 -0
  31. package/dist/wallet-standard/solana.js +13 -0
  32. package/dist/wallet-standard/types.d.ts +6 -0
  33. package/dist/wallet-standard/types.js +1 -0
  34. package/dist/wallet-standard/wallet.d.ts +22 -0
  35. package/dist/wallet-standard/wallet.js +230 -0
  36. package/package.json +44 -0
@@ -0,0 +1,230 @@
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
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
11
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
12
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
13
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
14
+ };
15
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
16
+ if (kind === "m") throw new TypeError("Private method is not writable");
17
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
18
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
19
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
20
+ };
21
+ var _OneTokenSolanaStandardWallet_instances, _OneTokenSolanaStandardWallet_listeners, _OneTokenSolanaStandardWallet_version, _OneTokenSolanaStandardWallet_name, _OneTokenSolanaStandardWallet_icon, _OneTokenSolanaStandardWallet_account, _OneTokenSolanaStandardWallet_provider, _OneTokenSolanaStandardWallet_on, _OneTokenSolanaStandardWallet_emit, _OneTokenSolanaStandardWallet_off, _OneTokenSolanaStandardWallet_connected, _OneTokenSolanaStandardWallet_disconnected, _OneTokenSolanaStandardWallet_reconnected, _OneTokenSolanaStandardWallet_connect, _OneTokenSolanaStandardWallet_disconnect, _OneTokenSolanaStandardWallet_signAndSendTransaction, _OneTokenSolanaStandardWallet_signTransaction, _OneTokenSolanaStandardWallet_signMessage;
22
+ import { SolanaSignAndSendTransaction, SolanaSignMessage, SolanaSignTransaction, } from '@solana/wallet-standard-features';
23
+ import { StandardConnect, StandardDisconnect, StandardEvents, } from '@wallet-standard/features';
24
+ import bs58 from 'bs58';
25
+ import { OneTokenSolanaWalletAccount } from './account';
26
+ import { SOLANA_CHAINS, isSolanaChain } from './solana';
27
+ import { bytesEqual, parseToNativeTx } from '../utils';
28
+ export const OneTokenNamespace = 'onetoken:';
29
+ export class OneTokenSolanaStandardWallet {
30
+ get version() {
31
+ return __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_version, "f");
32
+ }
33
+ get name() {
34
+ return __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_name, "f");
35
+ }
36
+ get icon() {
37
+ return __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_icon, "f");
38
+ }
39
+ get chains() {
40
+ return SOLANA_CHAINS.slice();
41
+ }
42
+ get features() {
43
+ return {
44
+ [StandardConnect]: {
45
+ version: '1.0.0',
46
+ connect: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_connect, "f"),
47
+ },
48
+ [StandardDisconnect]: {
49
+ version: '1.0.0',
50
+ disconnect: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_disconnect, "f"),
51
+ },
52
+ [StandardEvents]: {
53
+ version: '1.0.0',
54
+ on: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_on, "f"),
55
+ },
56
+ [SolanaSignAndSendTransaction]: {
57
+ version: '1.0.0',
58
+ supportedTransactionVersions: ['legacy', 0],
59
+ signAndSendTransaction: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_signAndSendTransaction, "f"),
60
+ },
61
+ [SolanaSignTransaction]: {
62
+ version: '1.0.0',
63
+ supportedTransactionVersions: ['legacy', 0],
64
+ signTransaction: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_signTransaction, "f"),
65
+ },
66
+ [SolanaSignMessage]: {
67
+ version: '1.0.0',
68
+ signMessage: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_signMessage, "f"),
69
+ },
70
+ [OneTokenNamespace]: {
71
+ onetoken: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f"),
72
+ },
73
+ };
74
+ }
75
+ get accounts() {
76
+ return __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f") ? [__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f")] : [];
77
+ }
78
+ constructor(provider, options) {
79
+ _OneTokenSolanaStandardWallet_instances.add(this);
80
+ _OneTokenSolanaStandardWallet_listeners.set(this, {});
81
+ _OneTokenSolanaStandardWallet_version.set(this, '1.0.0');
82
+ _OneTokenSolanaStandardWallet_name.set(this, void 0);
83
+ _OneTokenSolanaStandardWallet_icon.set(this, void 0);
84
+ _OneTokenSolanaStandardWallet_account.set(this, null);
85
+ _OneTokenSolanaStandardWallet_provider.set(this, void 0);
86
+ _OneTokenSolanaStandardWallet_on.set(this, (event, listener) => {
87
+ var _a;
88
+ ((_a = __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_listeners, "f")[event]) === null || _a === void 0 ? void 0 : _a.push(listener)) || (__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_listeners, "f")[event] = [listener]);
89
+ return () => __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_instances, "m", _OneTokenSolanaStandardWallet_off).call(this, event, listener);
90
+ });
91
+ _OneTokenSolanaStandardWallet_connected.set(this, () => {
92
+ var _a;
93
+ const address = (_a = __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").publicKey) === null || _a === void 0 ? void 0 : _a.toBase58();
94
+ if (address) {
95
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
96
+ const publicKey = __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").publicKey.toBytes();
97
+ const account = __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f");
98
+ if (!account || account.address !== address || !bytesEqual(account.publicKey, publicKey)) {
99
+ __classPrivateFieldSet(this, _OneTokenSolanaStandardWallet_account, new OneTokenSolanaWalletAccount({ address, publicKey }), "f");
100
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_instances, "m", _OneTokenSolanaStandardWallet_emit).call(this, 'change', { accounts: this.accounts });
101
+ }
102
+ }
103
+ });
104
+ _OneTokenSolanaStandardWallet_disconnected.set(this, () => {
105
+ if (__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f")) {
106
+ __classPrivateFieldSet(this, _OneTokenSolanaStandardWallet_account, null, "f");
107
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_instances, "m", _OneTokenSolanaStandardWallet_emit).call(this, 'change', { accounts: this.accounts });
108
+ }
109
+ });
110
+ _OneTokenSolanaStandardWallet_reconnected.set(this, () => {
111
+ if (__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").publicKey) {
112
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_connected, "f").call(this);
113
+ }
114
+ else {
115
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_disconnected, "f").call(this);
116
+ }
117
+ });
118
+ _OneTokenSolanaStandardWallet_connect.set(this, (...args_1) => __awaiter(this, [...args_1], void 0, function* ({ silent } = {}) {
119
+ if (!__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f")) {
120
+ yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").connect(silent ? { onlyIfTrusted: true } : undefined);
121
+ }
122
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_connected, "f").call(this);
123
+ return { accounts: this.accounts };
124
+ }));
125
+ _OneTokenSolanaStandardWallet_disconnect.set(this, () => __awaiter(this, void 0, void 0, function* () {
126
+ yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").disconnect();
127
+ }));
128
+ _OneTokenSolanaStandardWallet_signAndSendTransaction.set(this, (...inputs) => __awaiter(this, void 0, void 0, function* () {
129
+ if (!__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
130
+ throw new Error('not connected');
131
+ const outputs = [];
132
+ if (inputs.length === 1) {
133
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
134
+ const { transaction, account, chain, options } = inputs[0];
135
+ const { minContextSlot, preflightCommitment, skipPreflight, maxRetries } = options || {};
136
+ if (account !== __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
137
+ throw new Error('invalid account');
138
+ if (!isSolanaChain(chain))
139
+ throw new Error('invalid chain');
140
+ const { signature } = yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").signAndSendTransaction(parseToNativeTx(transaction), {
141
+ preflightCommitment,
142
+ minContextSlot,
143
+ maxRetries,
144
+ skipPreflight,
145
+ });
146
+ outputs.push({ signature: bs58.decode(signature) });
147
+ }
148
+ else if (inputs.length > 1) {
149
+ for (const input of inputs) {
150
+ outputs.push(...(yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_signAndSendTransaction, "f").call(this, input)));
151
+ }
152
+ }
153
+ return outputs;
154
+ }));
155
+ _OneTokenSolanaStandardWallet_signTransaction.set(this, (...inputs) => __awaiter(this, void 0, void 0, function* () {
156
+ if (!__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
157
+ throw new Error('not connected');
158
+ const outputs = [];
159
+ if (inputs.length === 1) {
160
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
161
+ const { transaction, account, chain } = inputs[0];
162
+ if (account !== __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
163
+ throw new Error('invalid account');
164
+ if (chain && !isSolanaChain(chain))
165
+ throw new Error('invalid chain');
166
+ const signedTransaction = yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").signTransaction(parseToNativeTx(transaction));
167
+ outputs.push({ signedTransaction: signedTransaction.serialize({ requireAllSignatures: false }) });
168
+ }
169
+ else if (inputs.length > 1) {
170
+ let chain = undefined;
171
+ for (const input of inputs) {
172
+ if (input.account !== __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
173
+ throw new Error('invalid account');
174
+ if (input.chain) {
175
+ if (!isSolanaChain(input.chain))
176
+ throw new Error('invalid chain');
177
+ if (chain) {
178
+ if (input.chain !== chain)
179
+ throw new Error('conflicting chain');
180
+ }
181
+ else {
182
+ chain = input.chain;
183
+ }
184
+ }
185
+ }
186
+ const transactions = inputs.map(({ transaction }) => parseToNativeTx(transaction));
187
+ const signedTransactions = yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").signAllTransactions(transactions);
188
+ outputs.push(...signedTransactions.map((signedTransaction) => ({ signedTransaction: signedTransaction.serialize({ requireAllSignatures: false }) })));
189
+ }
190
+ return outputs;
191
+ }));
192
+ _OneTokenSolanaStandardWallet_signMessage.set(this, (...inputs) => __awaiter(this, void 0, void 0, function* () {
193
+ if (!__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
194
+ throw new Error('not connected');
195
+ const outputs = [];
196
+ if (inputs.length === 1) {
197
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
198
+ const { message, account } = inputs[0];
199
+ if (account !== __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
200
+ throw new Error('invalid account');
201
+ const { signature } = yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").signMessage(message);
202
+ outputs.push({ signedMessage: message, signature });
203
+ }
204
+ else if (inputs.length > 1) {
205
+ for (const input of inputs) {
206
+ outputs.push(...(yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_signMessage, "f").call(this, input)));
207
+ }
208
+ }
209
+ return outputs;
210
+ }));
211
+ if (new.target === OneTokenSolanaStandardWallet) {
212
+ Object.freeze(this);
213
+ }
214
+ __classPrivateFieldSet(this, _OneTokenSolanaStandardWallet_provider, provider, "f");
215
+ __classPrivateFieldSet(this, _OneTokenSolanaStandardWallet_icon, options.icon, "f");
216
+ __classPrivateFieldSet(this, _OneTokenSolanaStandardWallet_name, options.name || 'OneToken', "f");
217
+ provider.on('connect', __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_connected, "f"));
218
+ provider.on('disconnect', __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_disconnected, "f"));
219
+ provider.on('accountChanged', __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_reconnected, "f"));
220
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_connected, "f").call(this);
221
+ }
222
+ }
223
+ _OneTokenSolanaStandardWallet_listeners = new WeakMap(), _OneTokenSolanaStandardWallet_version = new WeakMap(), _OneTokenSolanaStandardWallet_name = new WeakMap(), _OneTokenSolanaStandardWallet_icon = new WeakMap(), _OneTokenSolanaStandardWallet_account = new WeakMap(), _OneTokenSolanaStandardWallet_provider = new WeakMap(), _OneTokenSolanaStandardWallet_on = new WeakMap(), _OneTokenSolanaStandardWallet_connected = new WeakMap(), _OneTokenSolanaStandardWallet_disconnected = new WeakMap(), _OneTokenSolanaStandardWallet_reconnected = new WeakMap(), _OneTokenSolanaStandardWallet_connect = new WeakMap(), _OneTokenSolanaStandardWallet_disconnect = new WeakMap(), _OneTokenSolanaStandardWallet_signAndSendTransaction = new WeakMap(), _OneTokenSolanaStandardWallet_signTransaction = new WeakMap(), _OneTokenSolanaStandardWallet_signMessage = new WeakMap(), _OneTokenSolanaStandardWallet_instances = new WeakSet(), _OneTokenSolanaStandardWallet_emit = function _OneTokenSolanaStandardWallet_emit(event, ...args) {
224
+ var _a;
225
+ // eslint-disable-next-line prefer-spread
226
+ (_a = __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_listeners, "f")[event]) === null || _a === void 0 ? void 0 : _a.forEach((listener) => listener.apply(null, args));
227
+ }, _OneTokenSolanaStandardWallet_off = function _OneTokenSolanaStandardWallet_off(event, listener) {
228
+ var _a;
229
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_listeners, "f")[event] = (_a = __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_listeners, "f")[event]) === null || _a === void 0 ? void 0 : _a.filter((existingListener) => listener !== existingListener);
230
+ };
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@1tokenfe/onetoken-solana-provider",
3
+ "version": "2.2.46",
4
+ "keywords": [
5
+ "cross-inpage-provider",
6
+ "solona"
7
+ ],
8
+ "author": "dev-fe@onetoken.so",
9
+ "repository": "https://github.com/OneTokenHQ/cross-inpage-provider",
10
+ "license": "Apache-2.0",
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "files": [
15
+ "dist/*"
16
+ ],
17
+ "exports": {
18
+ "types": "./dist/index.d.ts",
19
+ "import": "./dist/index.js",
20
+ "require": "./dist/cjs/index.js"
21
+ },
22
+ "types": "./dist/index.d.ts",
23
+ "module": "./dist/index.js",
24
+ "main": "./dist/cjs/index.js",
25
+ "scripts": {
26
+ "prebuild": "rm -rf dist",
27
+ "build": "tsc && tsc --project tsconfig.cjs.json",
28
+ "start": "tsc --watch"
29
+ },
30
+ "dependencies": {
31
+ "@1tokenfe/cross-inpage-provider-core": "2.2.46",
32
+ "@1tokenfe/cross-inpage-provider-errors": "2.2.46",
33
+ "@1tokenfe/cross-inpage-provider-types": "2.2.46",
34
+ "@1tokenfe/extension-bridge-injected": "2.2.46",
35
+ "@solana/wallet-standard-features": "^1.1.0",
36
+ "@solana/web3.js": "^1.98.0",
37
+ "@wallet-standard/base": "^1.0.1",
38
+ "bs58": "^5.0.0"
39
+ },
40
+ "devDependencies": {
41
+ "@types/bs58": "^4.0.1"
42
+ },
43
+ "gitHead": "dadd71e7e07ab7aaf87961aecc01255586848e16"
44
+ }