@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,237 @@
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
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
12
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
13
+ 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");
14
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
15
+ };
16
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
17
+ if (kind === "m") throw new TypeError("Private method is not writable");
18
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
19
+ 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");
20
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ 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;
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.OneTokenSolanaStandardWallet = exports.OneTokenNamespace = void 0;
28
+ const wallet_standard_features_1 = require("@solana/wallet-standard-features");
29
+ const features_1 = require("@wallet-standard/features");
30
+ const bs58_1 = __importDefault(require("bs58"));
31
+ const account_1 = require("./account");
32
+ const solana_1 = require("./solana");
33
+ const utils_1 = require("../utils");
34
+ exports.OneTokenNamespace = 'onetoken:';
35
+ class OneTokenSolanaStandardWallet {
36
+ get version() {
37
+ return __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_version, "f");
38
+ }
39
+ get name() {
40
+ return __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_name, "f");
41
+ }
42
+ get icon() {
43
+ return __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_icon, "f");
44
+ }
45
+ get chains() {
46
+ return solana_1.SOLANA_CHAINS.slice();
47
+ }
48
+ get features() {
49
+ return {
50
+ [features_1.StandardConnect]: {
51
+ version: '1.0.0',
52
+ connect: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_connect, "f"),
53
+ },
54
+ [features_1.StandardDisconnect]: {
55
+ version: '1.0.0',
56
+ disconnect: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_disconnect, "f"),
57
+ },
58
+ [features_1.StandardEvents]: {
59
+ version: '1.0.0',
60
+ on: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_on, "f"),
61
+ },
62
+ [wallet_standard_features_1.SolanaSignAndSendTransaction]: {
63
+ version: '1.0.0',
64
+ supportedTransactionVersions: ['legacy', 0],
65
+ signAndSendTransaction: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_signAndSendTransaction, "f"),
66
+ },
67
+ [wallet_standard_features_1.SolanaSignTransaction]: {
68
+ version: '1.0.0',
69
+ supportedTransactionVersions: ['legacy', 0],
70
+ signTransaction: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_signTransaction, "f"),
71
+ },
72
+ [wallet_standard_features_1.SolanaSignMessage]: {
73
+ version: '1.0.0',
74
+ signMessage: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_signMessage, "f"),
75
+ },
76
+ [exports.OneTokenNamespace]: {
77
+ onetoken: __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f"),
78
+ },
79
+ };
80
+ }
81
+ get accounts() {
82
+ return __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f") ? [__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f")] : [];
83
+ }
84
+ constructor(provider, options) {
85
+ _OneTokenSolanaStandardWallet_instances.add(this);
86
+ _OneTokenSolanaStandardWallet_listeners.set(this, {});
87
+ _OneTokenSolanaStandardWallet_version.set(this, '1.0.0');
88
+ _OneTokenSolanaStandardWallet_name.set(this, void 0);
89
+ _OneTokenSolanaStandardWallet_icon.set(this, void 0);
90
+ _OneTokenSolanaStandardWallet_account.set(this, null);
91
+ _OneTokenSolanaStandardWallet_provider.set(this, void 0);
92
+ _OneTokenSolanaStandardWallet_on.set(this, (event, listener) => {
93
+ var _a;
94
+ ((_a = __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_listeners, "f")[event]) === null || _a === void 0 ? void 0 : _a.push(listener)) || (__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_listeners, "f")[event] = [listener]);
95
+ return () => __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_instances, "m", _OneTokenSolanaStandardWallet_off).call(this, event, listener);
96
+ });
97
+ _OneTokenSolanaStandardWallet_connected.set(this, () => {
98
+ var _a;
99
+ const address = (_a = __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").publicKey) === null || _a === void 0 ? void 0 : _a.toBase58();
100
+ if (address) {
101
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
102
+ const publicKey = __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").publicKey.toBytes();
103
+ const account = __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f");
104
+ if (!account || account.address !== address || !(0, utils_1.bytesEqual)(account.publicKey, publicKey)) {
105
+ __classPrivateFieldSet(this, _OneTokenSolanaStandardWallet_account, new account_1.OneTokenSolanaWalletAccount({ address, publicKey }), "f");
106
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_instances, "m", _OneTokenSolanaStandardWallet_emit).call(this, 'change', { accounts: this.accounts });
107
+ }
108
+ }
109
+ });
110
+ _OneTokenSolanaStandardWallet_disconnected.set(this, () => {
111
+ if (__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f")) {
112
+ __classPrivateFieldSet(this, _OneTokenSolanaStandardWallet_account, null, "f");
113
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_instances, "m", _OneTokenSolanaStandardWallet_emit).call(this, 'change', { accounts: this.accounts });
114
+ }
115
+ });
116
+ _OneTokenSolanaStandardWallet_reconnected.set(this, () => {
117
+ if (__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").publicKey) {
118
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_connected, "f").call(this);
119
+ }
120
+ else {
121
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_disconnected, "f").call(this);
122
+ }
123
+ });
124
+ _OneTokenSolanaStandardWallet_connect.set(this, (...args_1) => __awaiter(this, [...args_1], void 0, function* ({ silent } = {}) {
125
+ if (!__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f")) {
126
+ yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").connect(silent ? { onlyIfTrusted: true } : undefined);
127
+ }
128
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_connected, "f").call(this);
129
+ return { accounts: this.accounts };
130
+ }));
131
+ _OneTokenSolanaStandardWallet_disconnect.set(this, () => __awaiter(this, void 0, void 0, function* () {
132
+ yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").disconnect();
133
+ }));
134
+ _OneTokenSolanaStandardWallet_signAndSendTransaction.set(this, (...inputs) => __awaiter(this, void 0, void 0, function* () {
135
+ if (!__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
136
+ throw new Error('not connected');
137
+ const outputs = [];
138
+ if (inputs.length === 1) {
139
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
140
+ const { transaction, account, chain, options } = inputs[0];
141
+ const { minContextSlot, preflightCommitment, skipPreflight, maxRetries } = options || {};
142
+ if (account !== __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
143
+ throw new Error('invalid account');
144
+ if (!(0, solana_1.isSolanaChain)(chain))
145
+ throw new Error('invalid chain');
146
+ const { signature } = yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").signAndSendTransaction((0, utils_1.parseToNativeTx)(transaction), {
147
+ preflightCommitment,
148
+ minContextSlot,
149
+ maxRetries,
150
+ skipPreflight,
151
+ });
152
+ outputs.push({ signature: bs58_1.default.decode(signature) });
153
+ }
154
+ else if (inputs.length > 1) {
155
+ for (const input of inputs) {
156
+ outputs.push(...(yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_signAndSendTransaction, "f").call(this, input)));
157
+ }
158
+ }
159
+ return outputs;
160
+ }));
161
+ _OneTokenSolanaStandardWallet_signTransaction.set(this, (...inputs) => __awaiter(this, void 0, void 0, function* () {
162
+ if (!__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
163
+ throw new Error('not connected');
164
+ const outputs = [];
165
+ if (inputs.length === 1) {
166
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
167
+ const { transaction, account, chain } = inputs[0];
168
+ if (account !== __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
169
+ throw new Error('invalid account');
170
+ if (chain && !(0, solana_1.isSolanaChain)(chain))
171
+ throw new Error('invalid chain');
172
+ const signedTransaction = yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").signTransaction((0, utils_1.parseToNativeTx)(transaction));
173
+ outputs.push({ signedTransaction: signedTransaction.serialize({ requireAllSignatures: false }) });
174
+ }
175
+ else if (inputs.length > 1) {
176
+ let chain = undefined;
177
+ for (const input of inputs) {
178
+ if (input.account !== __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
179
+ throw new Error('invalid account');
180
+ if (input.chain) {
181
+ if (!(0, solana_1.isSolanaChain)(input.chain))
182
+ throw new Error('invalid chain');
183
+ if (chain) {
184
+ if (input.chain !== chain)
185
+ throw new Error('conflicting chain');
186
+ }
187
+ else {
188
+ chain = input.chain;
189
+ }
190
+ }
191
+ }
192
+ const transactions = inputs.map(({ transaction }) => (0, utils_1.parseToNativeTx)(transaction));
193
+ const signedTransactions = yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").signAllTransactions(transactions);
194
+ outputs.push(...signedTransactions.map((signedTransaction) => ({ signedTransaction: signedTransaction.serialize({ requireAllSignatures: false }) })));
195
+ }
196
+ return outputs;
197
+ }));
198
+ _OneTokenSolanaStandardWallet_signMessage.set(this, (...inputs) => __awaiter(this, void 0, void 0, function* () {
199
+ if (!__classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
200
+ throw new Error('not connected');
201
+ const outputs = [];
202
+ if (inputs.length === 1) {
203
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
204
+ const { message, account } = inputs[0];
205
+ if (account !== __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_account, "f"))
206
+ throw new Error('invalid account');
207
+ const { signature } = yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_provider, "f").signMessage(message);
208
+ outputs.push({ signedMessage: message, signature });
209
+ }
210
+ else if (inputs.length > 1) {
211
+ for (const input of inputs) {
212
+ outputs.push(...(yield __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_signMessage, "f").call(this, input)));
213
+ }
214
+ }
215
+ return outputs;
216
+ }));
217
+ if (new.target === OneTokenSolanaStandardWallet) {
218
+ Object.freeze(this);
219
+ }
220
+ __classPrivateFieldSet(this, _OneTokenSolanaStandardWallet_provider, provider, "f");
221
+ __classPrivateFieldSet(this, _OneTokenSolanaStandardWallet_icon, options.icon, "f");
222
+ __classPrivateFieldSet(this, _OneTokenSolanaStandardWallet_name, options.name || 'OneToken', "f");
223
+ provider.on('connect', __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_connected, "f"));
224
+ provider.on('disconnect', __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_disconnected, "f"));
225
+ provider.on('accountChanged', __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_reconnected, "f"));
226
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_connected, "f").call(this);
227
+ }
228
+ }
229
+ exports.OneTokenSolanaStandardWallet = OneTokenSolanaStandardWallet;
230
+ _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) {
231
+ var _a;
232
+ // eslint-disable-next-line prefer-spread
233
+ (_a = __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_listeners, "f")[event]) === null || _a === void 0 ? void 0 : _a.forEach((listener) => listener.apply(null, args));
234
+ }, _OneTokenSolanaStandardWallet_off = function _OneTokenSolanaStandardWallet_off(event, listener) {
235
+ var _a;
236
+ __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_listeners, "f")[event] = (_a = __classPrivateFieldGet(this, _OneTokenSolanaStandardWallet_listeners, "f")[event]) === null || _a === void 0 ? void 0 : _a.filter((existingListener) => listener !== existingListener);
237
+ };
@@ -0,0 +1,3 @@
1
+ export * from './ProviderSolana';
2
+ export * from './ProviderSolanaBase';
3
+ export * from './wallet-standard/index';
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './ProviderSolana';
2
+ export * from './ProviderSolanaBase';
3
+ export * from './wallet-standard/index';
@@ -0,0 +1,5 @@
1
+ import type { Transaction, PublicKey } from '@solana/web3.js';
2
+ export type WireStringified<T> = T extends Transaction | PublicKey ? string : T extends Array<infer P> ? Array<WireStringified<P>> : T extends object ? {
3
+ [K in keyof T]: WireStringified<T[K]>;
4
+ } : T;
5
+ export type ResolvePromise<T> = T extends Promise<infer P> ? P : T;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ import { Transaction, VersionedTransaction } from '@solana/web3.js';
2
+ interface Indexed<T> {
3
+ length: number;
4
+ [index: number]: T;
5
+ }
6
+ export declare const encodeTransaction: (transaction: Transaction | VersionedTransaction) => string;
7
+ export declare const decodeSignedTransaction: ({ message, onlyVersionedTx, }: {
8
+ message: string;
9
+ onlyVersionedTx?: boolean;
10
+ }) => Transaction | VersionedTransaction;
11
+ export declare function isWalletEventMethodMatch(method: string, name: string): boolean;
12
+ export declare function bytesEqual(a: Uint8Array, b: Uint8Array): boolean;
13
+ export declare function arraysEqual<T>(a: Indexed<T>, b: Indexed<T>): boolean;
14
+ export declare function parseToNativeTx(txByte: Uint8Array): Transaction | VersionedTransaction;
15
+ export {};
package/dist/utils.js ADDED
@@ -0,0 +1,43 @@
1
+ import { Transaction, VersionedTransaction } from '@solana/web3.js';
2
+ import base58 from 'bs58';
3
+ export const encodeTransaction = (transaction) => {
4
+ return base58.encode(transaction.serialize({ requireAllSignatures: false }));
5
+ };
6
+ export const decodeSignedTransaction = ({ message, onlyVersionedTx, }) => {
7
+ const txByte = base58.decode(message);
8
+ if (onlyVersionedTx) {
9
+ return VersionedTransaction.deserialize(txByte);
10
+ }
11
+ try {
12
+ return Transaction.from(txByte);
13
+ }
14
+ catch (_a) {
15
+ return VersionedTransaction.deserialize(txByte);
16
+ }
17
+ };
18
+ export function isWalletEventMethodMatch(method, name) {
19
+ return method === `metamask_${name}` || method === `wallet_events_${name}`;
20
+ }
21
+ export function bytesEqual(a, b) {
22
+ return arraysEqual(a, b);
23
+ }
24
+ export function arraysEqual(a, b) {
25
+ if (a === b)
26
+ return true;
27
+ const length = a.length;
28
+ if (length !== b.length)
29
+ return false;
30
+ for (let i = 0; i < length; i++) {
31
+ if (a[i] !== b[i])
32
+ return false;
33
+ }
34
+ return true;
35
+ }
36
+ export function parseToNativeTx(txByte) {
37
+ try {
38
+ return Transaction.from(txByte);
39
+ }
40
+ catch (e) {
41
+ return VersionedTransaction.deserialize(txByte);
42
+ }
43
+ }
@@ -0,0 +1,11 @@
1
+ import type { WalletAccount } from '@wallet-standard/base';
2
+ export declare class OneTokenSolanaWalletAccount implements WalletAccount {
3
+ #private;
4
+ get address(): string;
5
+ get publicKey(): Uint8Array<ArrayBuffer>;
6
+ get chains(): `${string}:${string}`[];
7
+ get features(): `${string}:${string}`[];
8
+ get label(): string | undefined;
9
+ get icon(): `data:image/svg+xml;base64,${string}` | `data:image/webp;base64,${string}` | `data:image/png;base64,${string}` | `data:image/gif;base64,${string}` | undefined;
10
+ constructor({ address, publicKey, label, icon }: Omit<WalletAccount, 'chains' | 'features'>);
11
+ }
@@ -0,0 +1,54 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ 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");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ 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");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _OneTokenSolanaWalletAccount_address, _OneTokenSolanaWalletAccount_publicKey, _OneTokenSolanaWalletAccount_chains, _OneTokenSolanaWalletAccount_features, _OneTokenSolanaWalletAccount_label, _OneTokenSolanaWalletAccount_icon;
13
+ import { SolanaSignAndSendTransaction, SolanaSignMessage, SolanaSignTransaction, } from '@solana/wallet-standard-features';
14
+ import { SOLANA_CHAINS } from './solana';
15
+ const chains = SOLANA_CHAINS;
16
+ const features = [SolanaSignAndSendTransaction, SolanaSignTransaction, SolanaSignMessage];
17
+ export class OneTokenSolanaWalletAccount {
18
+ get address() {
19
+ return __classPrivateFieldGet(this, _OneTokenSolanaWalletAccount_address, "f");
20
+ }
21
+ get publicKey() {
22
+ return __classPrivateFieldGet(this, _OneTokenSolanaWalletAccount_publicKey, "f").slice();
23
+ }
24
+ get chains() {
25
+ return __classPrivateFieldGet(this, _OneTokenSolanaWalletAccount_chains, "f").slice();
26
+ }
27
+ get features() {
28
+ return __classPrivateFieldGet(this, _OneTokenSolanaWalletAccount_features, "f").slice();
29
+ }
30
+ get label() {
31
+ return __classPrivateFieldGet(this, _OneTokenSolanaWalletAccount_label, "f");
32
+ }
33
+ get icon() {
34
+ return __classPrivateFieldGet(this, _OneTokenSolanaWalletAccount_icon, "f");
35
+ }
36
+ constructor({ address, publicKey, label, icon }) {
37
+ _OneTokenSolanaWalletAccount_address.set(this, void 0);
38
+ _OneTokenSolanaWalletAccount_publicKey.set(this, void 0);
39
+ _OneTokenSolanaWalletAccount_chains.set(this, void 0);
40
+ _OneTokenSolanaWalletAccount_features.set(this, void 0);
41
+ _OneTokenSolanaWalletAccount_label.set(this, void 0);
42
+ _OneTokenSolanaWalletAccount_icon.set(this, void 0);
43
+ if (new.target === OneTokenSolanaWalletAccount) {
44
+ Object.freeze(this);
45
+ }
46
+ __classPrivateFieldSet(this, _OneTokenSolanaWalletAccount_address, address, "f");
47
+ __classPrivateFieldSet(this, _OneTokenSolanaWalletAccount_publicKey, publicKey, "f");
48
+ __classPrivateFieldSet(this, _OneTokenSolanaWalletAccount_chains, chains, "f");
49
+ __classPrivateFieldSet(this, _OneTokenSolanaWalletAccount_features, features, "f");
50
+ __classPrivateFieldSet(this, _OneTokenSolanaWalletAccount_label, label, "f");
51
+ __classPrivateFieldSet(this, _OneTokenSolanaWalletAccount_icon, icon, "f");
52
+ }
53
+ }
54
+ _OneTokenSolanaWalletAccount_address = new WeakMap(), _OneTokenSolanaWalletAccount_publicKey = new WeakMap(), _OneTokenSolanaWalletAccount_chains = new WeakMap(), _OneTokenSolanaWalletAccount_features = new WeakMap(), _OneTokenSolanaWalletAccount_label = new WeakMap(), _OneTokenSolanaWalletAccount_icon = new WeakMap();
@@ -0,0 +1,3 @@
1
+ export { registerSolanaWallet } from './register.js';
2
+ export { OneTokenSolanaStandardWallet } from './wallet.js';
3
+ export { WalletIcon } from './types.js';
@@ -0,0 +1,2 @@
1
+ export { registerSolanaWallet } from './register.js';
2
+ export { OneTokenSolanaStandardWallet } from './wallet.js';
@@ -0,0 +1,7 @@
1
+ import type { Wallet } from '@wallet-standard/base';
2
+ import { ProviderSolana } from '../ProviderSolana';
3
+ import { WalletInfo } from './types';
4
+ export declare function registerWallet(wallet: Wallet): void;
5
+ /** @deprecated */
6
+ export declare function DEPRECATED_registerWallet(wallet: Wallet): void;
7
+ export declare function registerSolanaWallet(provider: ProviderSolana, options: WalletInfo): void;
@@ -0,0 +1,77 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ 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");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ 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");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _RegisterWalletEvent_detail;
13
+ import { OneTokenSolanaStandardWallet } from './wallet';
14
+ export function registerWallet(wallet) {
15
+ const callback = ({ register }) => register(wallet);
16
+ try {
17
+ window.dispatchEvent(new RegisterWalletEvent(callback));
18
+ }
19
+ catch (error) {
20
+ console.error('wallet-standard:register-wallet event could not be dispatched\n', error);
21
+ }
22
+ try {
23
+ window.addEventListener('wallet-standard:app-ready', ({ detail: api }) => callback(api));
24
+ }
25
+ catch (error) {
26
+ console.error('wallet-standard:app-ready event listener could not be added\n', error);
27
+ }
28
+ }
29
+ class RegisterWalletEvent extends Event {
30
+ get detail() {
31
+ return __classPrivateFieldGet(this, _RegisterWalletEvent_detail, "f");
32
+ }
33
+ get type() {
34
+ return 'wallet-standard:register-wallet';
35
+ }
36
+ constructor(callback) {
37
+ super('wallet-standard:register-wallet', {
38
+ bubbles: false,
39
+ cancelable: false,
40
+ composed: false,
41
+ });
42
+ _RegisterWalletEvent_detail.set(this, void 0);
43
+ __classPrivateFieldSet(this, _RegisterWalletEvent_detail, callback, "f");
44
+ }
45
+ /** @deprecated */
46
+ preventDefault() {
47
+ throw new Error('preventDefault cannot be called');
48
+ }
49
+ /** @deprecated */
50
+ stopImmediatePropagation() {
51
+ throw new Error('stopImmediatePropagation cannot be called');
52
+ }
53
+ /** @deprecated */
54
+ stopPropagation() {
55
+ throw new Error('stopPropagation cannot be called');
56
+ }
57
+ }
58
+ _RegisterWalletEvent_detail = new WeakMap();
59
+ /** @deprecated */
60
+ export function DEPRECATED_registerWallet(wallet) {
61
+ var _a;
62
+ registerWallet(wallet);
63
+ try {
64
+ ((_a = window.navigator).wallets || (_a.wallets = [])).push(({ register }) => register(wallet));
65
+ }
66
+ catch (error) {
67
+ console.error('window.navigator.wallets could not be pushed\n', error);
68
+ }
69
+ }
70
+ export function registerSolanaWallet(provider, options) {
71
+ try {
72
+ registerWallet(new OneTokenSolanaStandardWallet(provider, options));
73
+ }
74
+ catch (error) {
75
+ console.error(error);
76
+ }
77
+ }
@@ -0,0 +1,8 @@
1
+ import type { IdentifierString } from '@wallet-standard/base';
2
+ export declare const SOLANA_MAINNET_CHAIN = "solana:mainnet";
3
+ export declare const SOLANA_DEVNET_CHAIN = "solana:devnet";
4
+ export declare const SOLANA_TESTNET_CHAIN = "solana:testnet";
5
+ export declare const SOLANA_LOCALNET_CHAIN = "solana:localnet";
6
+ export declare const SOLANA_CHAINS: readonly ["solana:mainnet", "solana:devnet", "solana:testnet", "solana:localnet"];
7
+ export type SolanaChain = typeof SOLANA_CHAINS[number];
8
+ export declare function isSolanaChain(chain: IdentifierString): chain is SolanaChain;
@@ -0,0 +1,13 @@
1
+ export const SOLANA_MAINNET_CHAIN = 'solana:mainnet';
2
+ export const SOLANA_DEVNET_CHAIN = 'solana:devnet';
3
+ export const SOLANA_TESTNET_CHAIN = 'solana:testnet';
4
+ export const SOLANA_LOCALNET_CHAIN = 'solana:localnet';
5
+ export const SOLANA_CHAINS = [
6
+ SOLANA_MAINNET_CHAIN,
7
+ SOLANA_DEVNET_CHAIN,
8
+ SOLANA_TESTNET_CHAIN,
9
+ SOLANA_LOCALNET_CHAIN,
10
+ ];
11
+ export function isSolanaChain(chain) {
12
+ return SOLANA_CHAINS.includes(chain);
13
+ }
@@ -0,0 +1,6 @@
1
+ import { WalletIcon } from '@wallet-standard/base';
2
+ export type WalletInfo = {
3
+ name?: string;
4
+ icon: WalletIcon;
5
+ };
6
+ export { WalletIcon };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,22 @@
1
+ import { type SolanaSignAndSendTransactionFeature, type SolanaSignMessageFeature, type SolanaSignTransactionFeature } from '@solana/wallet-standard-features';
2
+ import type { Wallet } from '@wallet-standard/base';
3
+ import { type StandardConnectFeature, type StandardDisconnectFeature, type StandardEventsFeature } from '@wallet-standard/features';
4
+ import { OneTokenSolanaWalletAccount } from './account';
5
+ import { ProviderSolana } from '../ProviderSolana';
6
+ import { WalletInfo } from './types';
7
+ export declare const OneTokenNamespace = "onetoken:";
8
+ export type OneTokenFeature = {
9
+ [OneTokenNamespace]: {
10
+ onetoken: ProviderSolana;
11
+ };
12
+ };
13
+ export declare class OneTokenSolanaStandardWallet implements Wallet {
14
+ #private;
15
+ get version(): "1.0.0";
16
+ get name(): string;
17
+ get icon(): `data:image/svg+xml;base64,${string}` | `data:image/webp;base64,${string}` | `data:image/png;base64,${string}` | `data:image/gif;base64,${string}`;
18
+ get chains(): ("solana:mainnet" | "solana:devnet" | "solana:testnet" | "solana:localnet")[];
19
+ get features(): StandardConnectFeature & StandardDisconnectFeature & StandardEventsFeature & SolanaSignAndSendTransactionFeature & SolanaSignTransactionFeature & SolanaSignMessageFeature & OneTokenFeature;
20
+ get accounts(): OneTokenSolanaWalletAccount[];
21
+ constructor(provider: ProviderSolana, options: WalletInfo);
22
+ }