@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,270 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ProviderSolana = void 0;
16
+ const web3_js_1 = require("@solana/web3.js");
17
+ const extension_bridge_injected_1 = require("@1tokenfe/extension-bridge-injected");
18
+ const bs58_1 = __importDefault(require("bs58"));
19
+ const ProviderSolanaBase_1 = require("./ProviderSolanaBase");
20
+ const utils_1 = require("./utils");
21
+ const PROVIDER_EVENTS = {
22
+ 'connect': 'connect',
23
+ 'disconnect': 'disconnect',
24
+ 'accountChanged': 'accountChanged',
25
+ 'message_low_level': 'message_low_level',
26
+ };
27
+ class ProviderSolana extends ProviderSolanaBase_1.ProviderSolanaBase {
28
+ get publicKey() {
29
+ return this._publicKey;
30
+ }
31
+ get isConnected() {
32
+ return this._publicKey !== null;
33
+ }
34
+ constructor(props) {
35
+ super(Object.assign(Object.assign({}, props), { bridge: props.bridge || (0, extension_bridge_injected_1.getOrCreateExtInjectedJsBridge)({ timeout: props.timeout }) }));
36
+ this.isPhantom = true;
37
+ this.isSolflare = true;
38
+ this._publicKey = null;
39
+ this._registerEvents = this._registerEvents.bind(this);
40
+ this._callBridge = this._callBridge.bind(this);
41
+ this._handleAccountChange = this._handleAccountChange.bind(this);
42
+ this._handleConnected = this._handleConnected.bind(this);
43
+ this._handleDisconnected = this._handleDisconnected.bind(this);
44
+ this._handleSignAndSendTransaction = this._handleSignAndSendTransaction.bind(this);
45
+ this._handleSignTransaction = this._handleSignTransaction.bind(this);
46
+ this._handleSignAllTransactions = this._handleSignAllTransactions.bind(this);
47
+ this._handleSignMessage = this._handleSignMessage.bind(this);
48
+ this.request = this.request.bind(this);
49
+ this.connect = this.connect.bind(this);
50
+ this.disconnect = this.disconnect.bind(this);
51
+ this.signAndSendTransaction = this.signAndSendTransaction.bind(this);
52
+ this.signTransaction = this.signTransaction.bind(this);
53
+ this.signAllTransactions = this.signAllTransactions.bind(this);
54
+ this.signMessage = this.signMessage.bind(this);
55
+ this.isAccountsChanged = this.isAccountsChanged.bind(this);
56
+ this.bridgeRequest = this.bridgeRequest.bind(this);
57
+ this._registerEvents();
58
+ }
59
+ _registerEvents() {
60
+ window.addEventListener('onetoken_bridge_disconnect', () => {
61
+ this._handleDisconnected();
62
+ });
63
+ this.on(PROVIDER_EVENTS.message_low_level, (payload) => {
64
+ const { method, params } = payload;
65
+ if ((0, utils_1.isWalletEventMethodMatch)(method, PROVIDER_EVENTS.accountChanged)) {
66
+ this._handleAccountChange(params);
67
+ }
68
+ });
69
+ }
70
+ _callBridge(params) {
71
+ return this.bridgeRequest(params);
72
+ }
73
+ postMessage(param) {
74
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
75
+ return this._callBridge(param);
76
+ }
77
+ connect(options) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ if (this.publicKey) {
80
+ return { publicKey: this.publicKey };
81
+ }
82
+ // TODO: pass options to connect
83
+ const result = yield this._callBridge({
84
+ method: 'connect',
85
+ params: options,
86
+ });
87
+ const publicKey = new web3_js_1.PublicKey(result.publicKey);
88
+ this._handleConnected(publicKey, { emit: true });
89
+ return { publicKey };
90
+ });
91
+ }
92
+ _handleConnected(publicKey, options = { emit: true }) {
93
+ this._publicKey = publicKey;
94
+ if (options.emit && this.isConnectionStatusChanged('connected')) {
95
+ this.connectionStatus = 'connected';
96
+ this.emit('connect', publicKey);
97
+ this.emit('accountChanged', publicKey);
98
+ }
99
+ }
100
+ disconnect() {
101
+ return __awaiter(this, void 0, void 0, function* () {
102
+ yield this._callBridge({
103
+ method: 'disconnect',
104
+ params: void 0,
105
+ });
106
+ this._handleDisconnected();
107
+ });
108
+ }
109
+ _handleDisconnected(options = { emit: true }) {
110
+ this._publicKey = null;
111
+ if (options.emit && this.isConnectionStatusChanged('disconnected')) {
112
+ this.connectionStatus = 'disconnected';
113
+ this.emit('disconnect');
114
+ this.emit('accountChanged', null);
115
+ }
116
+ }
117
+ isAccountsChanged(account) {
118
+ var _a;
119
+ return (account === null || account === void 0 ? void 0 : account.publicKey) !== ((_a = this._publicKey) === null || _a === void 0 ? void 0 : _a.toBase58());
120
+ }
121
+ // trigger by bridge account change event
122
+ _handleAccountChange(payload) {
123
+ const account = payload.accounts[0];
124
+ let publicKey;
125
+ try {
126
+ publicKey = new web3_js_1.PublicKey(account.publicKey);
127
+ }
128
+ catch (error) {
129
+ // noop
130
+ }
131
+ if (this.isAccountsChanged(account)) {
132
+ this.emit('accountChanged', publicKey || null);
133
+ }
134
+ if (!account) {
135
+ this._handleDisconnected();
136
+ return;
137
+ }
138
+ if (publicKey) {
139
+ this._handleConnected(publicKey, { emit: false });
140
+ }
141
+ }
142
+ signAndSendTransaction(transaction, options) {
143
+ return __awaiter(this, void 0, void 0, function* () {
144
+ return this._handleSignAndSendTransaction({
145
+ message: (0, utils_1.encodeTransaction)(transaction),
146
+ options,
147
+ });
148
+ });
149
+ }
150
+ _handleSignAndSendTransaction(params) {
151
+ return __awaiter(this, void 0, void 0, function* () {
152
+ const result = yield this._callBridge({
153
+ method: 'signAndSendTransaction',
154
+ params,
155
+ });
156
+ return result;
157
+ });
158
+ }
159
+ signTransaction(transaction) {
160
+ return __awaiter(this, void 0, void 0, function* () {
161
+ const hasVersionedTx = 'version' in transaction;
162
+ return this._handleSignTransaction({
163
+ message: (0, utils_1.encodeTransaction)(transaction),
164
+ }, {
165
+ onlyVersionedTx: hasVersionedTx,
166
+ });
167
+ });
168
+ }
169
+ _handleSignTransaction(params, options) {
170
+ return __awaiter(this, void 0, void 0, function* () {
171
+ const { onlyVersionedTx } = options || {};
172
+ const result = yield this._callBridge({
173
+ method: 'signTransaction',
174
+ params,
175
+ });
176
+ return (0, utils_1.decodeSignedTransaction)({
177
+ message: result,
178
+ onlyVersionedTx,
179
+ });
180
+ });
181
+ }
182
+ signAllTransactions(transactions) {
183
+ return __awaiter(this, void 0, void 0, function* () {
184
+ return this._handleSignAllTransactions({
185
+ message: transactions.map(utils_1.encodeTransaction),
186
+ });
187
+ });
188
+ }
189
+ _handleSignAllTransactions(params) {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ const result = yield this._callBridge({
192
+ method: 'signAllTransactions',
193
+ params,
194
+ });
195
+ return result.map((message) => (0, utils_1.decodeSignedTransaction)({ message }));
196
+ });
197
+ }
198
+ signMessage(message, display) {
199
+ return __awaiter(this, void 0, void 0, function* () {
200
+ return this._handleSignMessage({ message, display });
201
+ });
202
+ }
203
+ solSignOffchainMessage(message, version) {
204
+ return __awaiter(this, void 0, void 0, function* () {
205
+ const result = yield this._callBridge({
206
+ method: 'solSignOffchainMessage',
207
+ params: {
208
+ message: typeof message === 'string' ? message : bs58_1.default.encode(message),
209
+ version,
210
+ },
211
+ });
212
+ return {
213
+ signature: bs58_1.default.decode(result.signature),
214
+ publicKey: new web3_js_1.PublicKey(result.publicKey),
215
+ };
216
+ });
217
+ }
218
+ _handleSignMessage(params) {
219
+ return __awaiter(this, void 0, void 0, function* () {
220
+ const { message, display } = params;
221
+ const result = yield this._callBridge({
222
+ method: 'signMessage',
223
+ params: {
224
+ message: typeof message === 'string' ? message : bs58_1.default.encode(message),
225
+ display,
226
+ },
227
+ });
228
+ return {
229
+ signature: bs58_1.default.decode(result.signature),
230
+ publicKey: new web3_js_1.PublicKey(result.publicKey),
231
+ };
232
+ });
233
+ }
234
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
235
+ request(...args) {
236
+ let method;
237
+ let params;
238
+ if (typeof args[0] === 'string') {
239
+ method = args[0];
240
+ params = args[1];
241
+ }
242
+ else {
243
+ const payload = args[0];
244
+ method = payload.method;
245
+ params = payload.params;
246
+ }
247
+ switch (method) {
248
+ case 'connect':
249
+ return this.connect(params);
250
+ case 'disconnect':
251
+ return this.disconnect();
252
+ case 'signTransaction':
253
+ return this._handleSignTransaction(params);
254
+ case 'signAllTransactions':
255
+ return this._handleSignAllTransactions(params);
256
+ case 'signMessage':
257
+ return this._handleSignMessage(params);
258
+ case 'signAndSendTransaction':
259
+ return this._handleSignAndSendTransaction(params);
260
+ }
261
+ return this._callBridge({ method, params });
262
+ }
263
+ on(event, listener) {
264
+ return super.on(event, listener);
265
+ }
266
+ emit(event, ...args) {
267
+ return super.emit(event, ...args);
268
+ }
269
+ }
270
+ exports.ProviderSolana = ProviderSolana;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProviderSolanaBase = void 0;
4
+ const cross_inpage_provider_types_1 = require("@1tokenfe/cross-inpage-provider-types");
5
+ const cross_inpage_provider_core_1 = require("@1tokenfe/cross-inpage-provider-core");
6
+ class ProviderSolanaBase extends cross_inpage_provider_core_1.ProviderBase {
7
+ constructor(props) {
8
+ super(props);
9
+ this.providerName = cross_inpage_provider_types_1.IInjectedProviderNames.solana;
10
+ }
11
+ request(data) {
12
+ return this.bridgeRequest(data);
13
+ }
14
+ }
15
+ exports.ProviderSolanaBase = ProviderSolanaBase;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ProviderSolana"), exports);
18
+ __exportStar(require("./ProviderSolanaBase"), exports);
19
+ __exportStar(require("./wallet-standard/index"), exports);
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,55 @@
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.decodeSignedTransaction = exports.encodeTransaction = void 0;
7
+ exports.isWalletEventMethodMatch = isWalletEventMethodMatch;
8
+ exports.bytesEqual = bytesEqual;
9
+ exports.arraysEqual = arraysEqual;
10
+ exports.parseToNativeTx = parseToNativeTx;
11
+ const web3_js_1 = require("@solana/web3.js");
12
+ const bs58_1 = __importDefault(require("bs58"));
13
+ const encodeTransaction = (transaction) => {
14
+ return bs58_1.default.encode(transaction.serialize({ requireAllSignatures: false }));
15
+ };
16
+ exports.encodeTransaction = encodeTransaction;
17
+ const decodeSignedTransaction = ({ message, onlyVersionedTx, }) => {
18
+ const txByte = bs58_1.default.decode(message);
19
+ if (onlyVersionedTx) {
20
+ return web3_js_1.VersionedTransaction.deserialize(txByte);
21
+ }
22
+ try {
23
+ return web3_js_1.Transaction.from(txByte);
24
+ }
25
+ catch (_a) {
26
+ return web3_js_1.VersionedTransaction.deserialize(txByte);
27
+ }
28
+ };
29
+ exports.decodeSignedTransaction = decodeSignedTransaction;
30
+ function isWalletEventMethodMatch(method, name) {
31
+ return method === `metamask_${name}` || method === `wallet_events_${name}`;
32
+ }
33
+ function bytesEqual(a, b) {
34
+ return arraysEqual(a, b);
35
+ }
36
+ function arraysEqual(a, b) {
37
+ if (a === b)
38
+ return true;
39
+ const length = a.length;
40
+ if (length !== b.length)
41
+ return false;
42
+ for (let i = 0; i < length; i++) {
43
+ if (a[i] !== b[i])
44
+ return false;
45
+ }
46
+ return true;
47
+ }
48
+ function parseToNativeTx(txByte) {
49
+ try {
50
+ return web3_js_1.Transaction.from(txByte);
51
+ }
52
+ catch (e) {
53
+ return web3_js_1.VersionedTransaction.deserialize(txByte);
54
+ }
55
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ 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");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ 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");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var _OneTokenSolanaWalletAccount_address, _OneTokenSolanaWalletAccount_publicKey, _OneTokenSolanaWalletAccount_chains, _OneTokenSolanaWalletAccount_features, _OneTokenSolanaWalletAccount_label, _OneTokenSolanaWalletAccount_icon;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.OneTokenSolanaWalletAccount = void 0;
16
+ const wallet_standard_features_1 = require("@solana/wallet-standard-features");
17
+ const solana_1 = require("./solana");
18
+ const chains = solana_1.SOLANA_CHAINS;
19
+ const features = [wallet_standard_features_1.SolanaSignAndSendTransaction, wallet_standard_features_1.SolanaSignTransaction, wallet_standard_features_1.SolanaSignMessage];
20
+ class OneTokenSolanaWalletAccount {
21
+ get address() {
22
+ return __classPrivateFieldGet(this, _OneTokenSolanaWalletAccount_address, "f");
23
+ }
24
+ get publicKey() {
25
+ return __classPrivateFieldGet(this, _OneTokenSolanaWalletAccount_publicKey, "f").slice();
26
+ }
27
+ get chains() {
28
+ return __classPrivateFieldGet(this, _OneTokenSolanaWalletAccount_chains, "f").slice();
29
+ }
30
+ get features() {
31
+ return __classPrivateFieldGet(this, _OneTokenSolanaWalletAccount_features, "f").slice();
32
+ }
33
+ get label() {
34
+ return __classPrivateFieldGet(this, _OneTokenSolanaWalletAccount_label, "f");
35
+ }
36
+ get icon() {
37
+ return __classPrivateFieldGet(this, _OneTokenSolanaWalletAccount_icon, "f");
38
+ }
39
+ constructor({ address, publicKey, label, icon }) {
40
+ _OneTokenSolanaWalletAccount_address.set(this, void 0);
41
+ _OneTokenSolanaWalletAccount_publicKey.set(this, void 0);
42
+ _OneTokenSolanaWalletAccount_chains.set(this, void 0);
43
+ _OneTokenSolanaWalletAccount_features.set(this, void 0);
44
+ _OneTokenSolanaWalletAccount_label.set(this, void 0);
45
+ _OneTokenSolanaWalletAccount_icon.set(this, void 0);
46
+ if (new.target === OneTokenSolanaWalletAccount) {
47
+ Object.freeze(this);
48
+ }
49
+ __classPrivateFieldSet(this, _OneTokenSolanaWalletAccount_address, address, "f");
50
+ __classPrivateFieldSet(this, _OneTokenSolanaWalletAccount_publicKey, publicKey, "f");
51
+ __classPrivateFieldSet(this, _OneTokenSolanaWalletAccount_chains, chains, "f");
52
+ __classPrivateFieldSet(this, _OneTokenSolanaWalletAccount_features, features, "f");
53
+ __classPrivateFieldSet(this, _OneTokenSolanaWalletAccount_label, label, "f");
54
+ __classPrivateFieldSet(this, _OneTokenSolanaWalletAccount_icon, icon, "f");
55
+ }
56
+ }
57
+ exports.OneTokenSolanaWalletAccount = OneTokenSolanaWalletAccount;
58
+ _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,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OneTokenSolanaStandardWallet = exports.registerSolanaWallet = void 0;
4
+ var register_js_1 = require("./register.js");
5
+ Object.defineProperty(exports, "registerSolanaWallet", { enumerable: true, get: function () { return register_js_1.registerSolanaWallet; } });
6
+ var wallet_js_1 = require("./wallet.js");
7
+ Object.defineProperty(exports, "OneTokenSolanaStandardWallet", { enumerable: true, get: function () { return wallet_js_1.OneTokenSolanaStandardWallet; } });
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
+ 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");
5
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
+ };
7
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
+ if (kind === "m") throw new TypeError("Private method is not writable");
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
+ 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");
11
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
+ };
13
+ var _RegisterWalletEvent_detail;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.registerWallet = registerWallet;
16
+ exports.DEPRECATED_registerWallet = DEPRECATED_registerWallet;
17
+ exports.registerSolanaWallet = registerSolanaWallet;
18
+ const wallet_1 = require("./wallet");
19
+ function registerWallet(wallet) {
20
+ const callback = ({ register }) => register(wallet);
21
+ try {
22
+ window.dispatchEvent(new RegisterWalletEvent(callback));
23
+ }
24
+ catch (error) {
25
+ console.error('wallet-standard:register-wallet event could not be dispatched\n', error);
26
+ }
27
+ try {
28
+ window.addEventListener('wallet-standard:app-ready', ({ detail: api }) => callback(api));
29
+ }
30
+ catch (error) {
31
+ console.error('wallet-standard:app-ready event listener could not be added\n', error);
32
+ }
33
+ }
34
+ class RegisterWalletEvent extends Event {
35
+ get detail() {
36
+ return __classPrivateFieldGet(this, _RegisterWalletEvent_detail, "f");
37
+ }
38
+ get type() {
39
+ return 'wallet-standard:register-wallet';
40
+ }
41
+ constructor(callback) {
42
+ super('wallet-standard:register-wallet', {
43
+ bubbles: false,
44
+ cancelable: false,
45
+ composed: false,
46
+ });
47
+ _RegisterWalletEvent_detail.set(this, void 0);
48
+ __classPrivateFieldSet(this, _RegisterWalletEvent_detail, callback, "f");
49
+ }
50
+ /** @deprecated */
51
+ preventDefault() {
52
+ throw new Error('preventDefault cannot be called');
53
+ }
54
+ /** @deprecated */
55
+ stopImmediatePropagation() {
56
+ throw new Error('stopImmediatePropagation cannot be called');
57
+ }
58
+ /** @deprecated */
59
+ stopPropagation() {
60
+ throw new Error('stopPropagation cannot be called');
61
+ }
62
+ }
63
+ _RegisterWalletEvent_detail = new WeakMap();
64
+ /** @deprecated */
65
+ function DEPRECATED_registerWallet(wallet) {
66
+ var _a;
67
+ registerWallet(wallet);
68
+ try {
69
+ ((_a = window.navigator).wallets || (_a.wallets = [])).push(({ register }) => register(wallet));
70
+ }
71
+ catch (error) {
72
+ console.error('window.navigator.wallets could not be pushed\n', error);
73
+ }
74
+ }
75
+ function registerSolanaWallet(provider, options) {
76
+ try {
77
+ registerWallet(new wallet_1.OneTokenSolanaStandardWallet(provider, options));
78
+ }
79
+ catch (error) {
80
+ console.error(error);
81
+ }
82
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SOLANA_CHAINS = exports.SOLANA_LOCALNET_CHAIN = exports.SOLANA_TESTNET_CHAIN = exports.SOLANA_DEVNET_CHAIN = exports.SOLANA_MAINNET_CHAIN = void 0;
4
+ exports.isSolanaChain = isSolanaChain;
5
+ exports.SOLANA_MAINNET_CHAIN = 'solana:mainnet';
6
+ exports.SOLANA_DEVNET_CHAIN = 'solana:devnet';
7
+ exports.SOLANA_TESTNET_CHAIN = 'solana:testnet';
8
+ exports.SOLANA_LOCALNET_CHAIN = 'solana:localnet';
9
+ exports.SOLANA_CHAINS = [
10
+ exports.SOLANA_MAINNET_CHAIN,
11
+ exports.SOLANA_DEVNET_CHAIN,
12
+ exports.SOLANA_TESTNET_CHAIN,
13
+ exports.SOLANA_LOCALNET_CHAIN,
14
+ ];
15
+ function isSolanaChain(chain) {
16
+ return exports.SOLANA_CHAINS.includes(chain);
17
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });