FRE-600: Fix code review blockers

- Consolidated duplicate UndoManagers to single instance
- Fixed connection promise to only resolve on 'connected' status
- Fixed WebSocketProvider import (WebsocketProvider)
- Added proper doc.destroy() cleanup
- Renamed isPresenceInitialized property to avoid conflict

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-04-25 00:08:01 -04:00
parent 65b552bb08
commit 7c684a42cc
48450 changed files with 5679671 additions and 383 deletions

View File

@@ -0,0 +1,134 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseWalletAdapter = exports.WalletReadyState = exports.EventEmitter = void 0;
exports.scopePollingDetectionStrategy = scopePollingDetectionStrategy;
exports.isIosAndRedirectable = isIosAndRedirectable;
const eventemitter3_1 = __importDefault(require("eventemitter3"));
exports.EventEmitter = eventemitter3_1.default;
const errors_js_1 = require("./errors.js");
/**
* A wallet's readiness describes a series of states that the wallet can be in,
* depending on what kind of wallet it is. An installable wallet (eg. a browser
* extension like Phantom) might be `Installed` if we've found the Phantom API
* in the global scope, or `NotDetected` otherwise. A loadable, zero-install
* runtime (eg. Torus Wallet) might simply signal that it's `Loadable`. Use this
* metadata to personalize the wallet list for each user (eg. to show their
* installed wallets first).
*/
var WalletReadyState;
(function (WalletReadyState) {
/**
* User-installable wallets can typically be detected by scanning for an API
* that they've injected into the global context. If such an API is present,
* we consider the wallet to have been installed.
*/
WalletReadyState["Installed"] = "Installed";
WalletReadyState["NotDetected"] = "NotDetected";
/**
* Loadable wallets are always available to you. Since you can load them at
* any time, it's meaningless to say that they have been detected.
*/
WalletReadyState["Loadable"] = "Loadable";
/**
* If a wallet is not supported on a given platform (eg. server-rendering, or
* mobile) then it will stay in the `Unsupported` state.
*/
WalletReadyState["Unsupported"] = "Unsupported";
})(WalletReadyState || (exports.WalletReadyState = WalletReadyState = {}));
class BaseWalletAdapter extends eventemitter3_1.default {
get connected() {
return !!this.publicKey;
}
autoConnect() {
return __awaiter(this, void 0, void 0, function* () {
yield this.connect();
});
}
prepareTransaction(transaction_1, connection_1) {
return __awaiter(this, arguments, void 0, function* (transaction, connection, options = {}) {
const publicKey = this.publicKey;
if (!publicKey)
throw new errors_js_1.WalletNotConnectedError();
transaction.feePayer = transaction.feePayer || publicKey;
transaction.recentBlockhash =
transaction.recentBlockhash ||
(yield connection.getLatestBlockhash({
commitment: options.preflightCommitment,
minContextSlot: options.minContextSlot,
})).blockhash;
return transaction;
});
}
}
exports.BaseWalletAdapter = BaseWalletAdapter;
function scopePollingDetectionStrategy(detect) {
// Early return when server-side rendering
if (typeof window === 'undefined' || typeof document === 'undefined')
return;
const disposers = [];
function detectAndDispose() {
const detected = detect();
if (detected) {
for (const dispose of disposers) {
dispose();
}
}
}
// Strategy #1: Try detecting every second.
const interval =
// TODO: #334 Replace with idle callback strategy.
setInterval(detectAndDispose, 1000);
disposers.push(() => clearInterval(interval));
// Strategy #2: Detect as soon as the DOM becomes 'ready'/'interactive'.
if (
// Implies that `DOMContentLoaded` has not yet fired.
document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', detectAndDispose, { once: true });
disposers.push(() => document.removeEventListener('DOMContentLoaded', detectAndDispose));
}
// Strategy #3: Detect after the `window` has fully loaded.
if (
// If the `complete` state has been reached, we're too late.
document.readyState !== 'complete') {
window.addEventListener('load', detectAndDispose, { once: true });
disposers.push(() => window.removeEventListener('load', detectAndDispose));
}
// Strategy #4: Detect synchronously, now.
detectAndDispose();
}
/**
* Users on iOS can be redirected into a wallet's in-app browser automatically,
* if that wallet has a universal link configured to do so
* But should not be redirected from within a webview, eg. if they're already
* inside a wallet's browser
* This function can be used to identify users who are on iOS and can be redirected
*
* @returns true if the user can be redirected
*/
function isIosAndRedirectable() {
// SSR: return false
if (!navigator)
return false;
const userAgent = navigator.userAgent.toLowerCase();
// if on iOS the user agent will contain either iPhone or iPad
// caveat: if requesting desktop site then this won't work
const isIos = userAgent.includes('iphone') || userAgent.includes('ipad');
// if in a webview then it will not include Safari
// note that other iOS browsers also include Safari
// so we will redirect only if Safari is also included
const isSafari = userAgent.includes('safari');
return isIos && isSafari;
}
//# sourceMappingURL=adapter.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,131 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.WalletWindowClosedError = exports.WalletWindowBlockedError = exports.WalletTimeoutError = exports.WalletSignInError = exports.WalletSignMessageError = exports.WalletSignTransactionError = exports.WalletSendTransactionError = exports.WalletNotConnectedError = exports.WalletKeypairError = exports.WalletPublicKeyError = exports.WalletAccountError = exports.WalletDisconnectionError = exports.WalletDisconnectedError = exports.WalletConnectionError = exports.WalletConfigError = exports.WalletLoadError = exports.WalletNotReadyError = exports.WalletError = void 0;
class WalletError extends Error {
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
constructor(message, error) {
super(message);
this.error = error;
}
}
exports.WalletError = WalletError;
class WalletNotReadyError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletNotReadyError';
}
}
exports.WalletNotReadyError = WalletNotReadyError;
class WalletLoadError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletLoadError';
}
}
exports.WalletLoadError = WalletLoadError;
class WalletConfigError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletConfigError';
}
}
exports.WalletConfigError = WalletConfigError;
class WalletConnectionError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletConnectionError';
}
}
exports.WalletConnectionError = WalletConnectionError;
class WalletDisconnectedError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletDisconnectedError';
}
}
exports.WalletDisconnectedError = WalletDisconnectedError;
class WalletDisconnectionError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletDisconnectionError';
}
}
exports.WalletDisconnectionError = WalletDisconnectionError;
class WalletAccountError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletAccountError';
}
}
exports.WalletAccountError = WalletAccountError;
class WalletPublicKeyError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletPublicKeyError';
}
}
exports.WalletPublicKeyError = WalletPublicKeyError;
class WalletKeypairError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletKeypairError';
}
}
exports.WalletKeypairError = WalletKeypairError;
class WalletNotConnectedError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletNotConnectedError';
}
}
exports.WalletNotConnectedError = WalletNotConnectedError;
class WalletSendTransactionError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletSendTransactionError';
}
}
exports.WalletSendTransactionError = WalletSendTransactionError;
class WalletSignTransactionError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletSignTransactionError';
}
}
exports.WalletSignTransactionError = WalletSignTransactionError;
class WalletSignMessageError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletSignMessageError';
}
}
exports.WalletSignMessageError = WalletSignMessageError;
class WalletSignInError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletSignInError';
}
}
exports.WalletSignInError = WalletSignInError;
class WalletTimeoutError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletTimeoutError';
}
}
exports.WalletTimeoutError = WalletTimeoutError;
class WalletWindowBlockedError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletWindowBlockedError';
}
}
exports.WalletWindowBlockedError = WalletWindowBlockedError;
class WalletWindowClosedError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletWindowClosedError';
}
}
exports.WalletWindowClosedError = WalletWindowClosedError;
//# sourceMappingURL=errors.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAY,SAAQ,KAAK;IAGlC,6EAA6E;IAC7E,YAAY,OAAgB,EAAE,KAAW;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ;AARD,kCAQC;AAED,MAAa,mBAAoB,SAAQ,WAAW;IAApD;;QACI,SAAI,GAAG,qBAAqB,CAAC;IACjC,CAAC;CAAA;AAFD,kDAEC;AAED,MAAa,eAAgB,SAAQ,WAAW;IAAhD;;QACI,SAAI,GAAG,iBAAiB,CAAC;IAC7B,CAAC;CAAA;AAFD,0CAEC;AAED,MAAa,iBAAkB,SAAQ,WAAW;IAAlD;;QACI,SAAI,GAAG,mBAAmB,CAAC;IAC/B,CAAC;CAAA;AAFD,8CAEC;AAED,MAAa,qBAAsB,SAAQ,WAAW;IAAtD;;QACI,SAAI,GAAG,uBAAuB,CAAC;IACnC,CAAC;CAAA;AAFD,sDAEC;AAED,MAAa,uBAAwB,SAAQ,WAAW;IAAxD;;QACI,SAAI,GAAG,yBAAyB,CAAC;IACrC,CAAC;CAAA;AAFD,0DAEC;AAED,MAAa,wBAAyB,SAAQ,WAAW;IAAzD;;QACI,SAAI,GAAG,0BAA0B,CAAC;IACtC,CAAC;CAAA;AAFD,4DAEC;AAED,MAAa,kBAAmB,SAAQ,WAAW;IAAnD;;QACI,SAAI,GAAG,oBAAoB,CAAC;IAChC,CAAC;CAAA;AAFD,gDAEC;AAED,MAAa,oBAAqB,SAAQ,WAAW;IAArD;;QACI,SAAI,GAAG,sBAAsB,CAAC;IAClC,CAAC;CAAA;AAFD,oDAEC;AAED,MAAa,kBAAmB,SAAQ,WAAW;IAAnD;;QACI,SAAI,GAAG,oBAAoB,CAAC;IAChC,CAAC;CAAA;AAFD,gDAEC;AAED,MAAa,uBAAwB,SAAQ,WAAW;IAAxD;;QACI,SAAI,GAAG,yBAAyB,CAAC;IACrC,CAAC;CAAA;AAFD,0DAEC;AAED,MAAa,0BAA2B,SAAQ,WAAW;IAA3D;;QACI,SAAI,GAAG,4BAA4B,CAAC;IACxC,CAAC;CAAA;AAFD,gEAEC;AAED,MAAa,0BAA2B,SAAQ,WAAW;IAA3D;;QACI,SAAI,GAAG,4BAA4B,CAAC;IACxC,CAAC;CAAA;AAFD,gEAEC;AAED,MAAa,sBAAuB,SAAQ,WAAW;IAAvD;;QACI,SAAI,GAAG,wBAAwB,CAAC;IACpC,CAAC;CAAA;AAFD,wDAEC;AAED,MAAa,iBAAkB,SAAQ,WAAW;IAAlD;;QACI,SAAI,GAAG,mBAAmB,CAAC;IAC/B,CAAC;CAAA;AAFD,8CAEC;AAED,MAAa,kBAAmB,SAAQ,WAAW;IAAnD;;QACI,SAAI,GAAG,oBAAoB,CAAC;IAChC,CAAC;CAAA;AAFD,gDAEC;AAED,MAAa,wBAAyB,SAAQ,WAAW;IAAzD;;QACI,SAAI,GAAG,0BAA0B,CAAC;IACtC,CAAC;CAAA;AAFD,4DAEC;AAED,MAAa,uBAAwB,SAAQ,WAAW;IAAxD;;QACI,SAAI,GAAG,yBAAyB,CAAC;IACrC,CAAC;CAAA;AAFD,0DAEC"}

View File

@@ -0,0 +1,23 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./adapter.js"), exports);
__exportStar(require("./errors.js"), exports);
__exportStar(require("./signer.js"), exports);
__exportStar(require("./standard.js"), exports);
__exportStar(require("./transaction.js"), exports);
__exportStar(require("./types.js"), exports);
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,8CAA4B;AAC5B,8CAA4B;AAC5B,gDAA8B;AAC9B,mDAAiC;AACjC,6CAA2B"}

View File

@@ -0,0 +1 @@
{ "type": "commonjs" }

View File

@@ -0,0 +1,103 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseSignInMessageSignerWalletAdapter = exports.BaseMessageSignerWalletAdapter = exports.BaseSignerWalletAdapter = void 0;
const adapter_js_1 = require("./adapter.js");
const errors_js_1 = require("./errors.js");
const transaction_js_1 = require("./transaction.js");
class BaseSignerWalletAdapter extends adapter_js_1.BaseWalletAdapter {
sendTransaction(transaction_1, connection_1) {
return __awaiter(this, arguments, void 0, function* (transaction, connection, options = {}) {
let emit = true;
try {
if ((0, transaction_js_1.isVersionedTransaction)(transaction)) {
if (!this.supportedTransactionVersions)
throw new errors_js_1.WalletSendTransactionError(`Sending versioned transactions isn't supported by this wallet`);
if (!this.supportedTransactionVersions.has(transaction.version))
throw new errors_js_1.WalletSendTransactionError(`Sending transaction version ${transaction.version} isn't supported by this wallet`);
try {
transaction = yield this.signTransaction(transaction);
const rawTransaction = transaction.serialize();
return yield connection.sendRawTransaction(rawTransaction, options);
}
catch (error) {
// If the error was thrown by `signTransaction`, rethrow it and don't emit a duplicate event
if (error instanceof errors_js_1.WalletSignTransactionError) {
emit = false;
throw error;
}
throw new errors_js_1.WalletSendTransactionError(error === null || error === void 0 ? void 0 : error.message, error);
}
}
else {
try {
const { signers } = options, sendOptions = __rest(options, ["signers"]);
transaction = yield this.prepareTransaction(transaction, connection, sendOptions);
(signers === null || signers === void 0 ? void 0 : signers.length) && transaction.partialSign(...signers);
transaction = yield this.signTransaction(transaction);
const rawTransaction = transaction.serialize();
return yield connection.sendRawTransaction(rawTransaction, sendOptions);
}
catch (error) {
// If the error was thrown by `signTransaction`, rethrow it and don't emit a duplicate event
if (error instanceof errors_js_1.WalletSignTransactionError) {
emit = false;
throw error;
}
throw new errors_js_1.WalletSendTransactionError(error === null || error === void 0 ? void 0 : error.message, error);
}
}
}
catch (error) {
if (emit) {
this.emit('error', error);
}
throw error;
}
});
}
signAllTransactions(transactions) {
return __awaiter(this, void 0, void 0, function* () {
for (const transaction of transactions) {
if ((0, transaction_js_1.isVersionedTransaction)(transaction)) {
if (!this.supportedTransactionVersions)
throw new errors_js_1.WalletSignTransactionError(`Signing versioned transactions isn't supported by this wallet`);
if (!this.supportedTransactionVersions.has(transaction.version))
throw new errors_js_1.WalletSignTransactionError(`Signing transaction version ${transaction.version} isn't supported by this wallet`);
}
}
const signedTransactions = [];
for (const transaction of transactions) {
signedTransactions.push(yield this.signTransaction(transaction));
}
return signedTransactions;
});
}
}
exports.BaseSignerWalletAdapter = BaseSignerWalletAdapter;
class BaseMessageSignerWalletAdapter extends BaseSignerWalletAdapter {
}
exports.BaseMessageSignerWalletAdapter = BaseMessageSignerWalletAdapter;
class BaseSignInMessageSignerWalletAdapter extends BaseMessageSignerWalletAdapter {
}
exports.BaseSignInMessageSignerWalletAdapter = BaseSignInMessageSignerWalletAdapter;
//# sourceMappingURL=signer.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,11 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isWalletAdapterCompatibleStandardWallet = isWalletAdapterCompatibleStandardWallet;
const wallet_standard_features_1 = require("@solana/wallet-standard-features");
const features_1 = require("@wallet-standard/features");
function isWalletAdapterCompatibleStandardWallet(wallet) {
return (features_1.StandardConnect in wallet.features &&
features_1.StandardEvents in wallet.features &&
(wallet_standard_features_1.SolanaSignAndSendTransaction in wallet.features || wallet_standard_features_1.SolanaSignTransaction in wallet.features));
}
//# sourceMappingURL=standard.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"standard.js","sourceRoot":"","sources":["../../src/standard.ts"],"names":[],"mappings":";;AAiCA,0FAQC;AAzCD,+EAO0C;AAE1C,wDAMmC;AAkBnC,SAAgB,uCAAuC,CACnD,MAAsB;IAEtB,OAAO,CACH,0BAAe,IAAI,MAAM,CAAC,QAAQ;QAClC,yBAAc,IAAI,MAAM,CAAC,QAAQ;QACjC,CAAC,uDAA4B,IAAI,MAAM,CAAC,QAAQ,IAAI,gDAAqB,IAAI,MAAM,CAAC,QAAQ,CAAC,CAChG,CAAC;AACN,CAAC"}

View File

@@ -0,0 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isVersionedTransaction = isVersionedTransaction;
function isVersionedTransaction(transaction) {
return 'version' in transaction;
}
//# sourceMappingURL=transaction.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":";;AAQA,wDAIC;AAJD,SAAgB,sBAAsB,CAClC,WAA+C;IAE/C,OAAO,SAAS,IAAI,WAAW,CAAC;AACpC,CAAC"}

View File

@@ -0,0 +1 @@
{"root":["../../src/adapter.ts","../../src/errors.ts","../../src/index.ts","../../src/signer.ts","../../src/standard.ts","../../src/transaction.ts","../../src/types.ts"],"version":"5.8.3"}

View File

@@ -0,0 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.WalletAdapterNetwork = void 0;
var WalletAdapterNetwork;
(function (WalletAdapterNetwork) {
WalletAdapterNetwork["Mainnet"] = "mainnet-beta";
WalletAdapterNetwork["Testnet"] = "testnet";
WalletAdapterNetwork["Devnet"] = "devnet";
})(WalletAdapterNetwork || (exports.WalletAdapterNetwork = WalletAdapterNetwork = {}));
//# sourceMappingURL=types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAWA,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC5B,gDAAwB,CAAA;IACxB,2CAAmB,CAAA;IACnB,yCAAiB,CAAA;AACrB,CAAC,EAJW,oBAAoB,oCAApB,oBAAoB,QAI/B"}

View File

@@ -0,0 +1,112 @@
import EventEmitter from 'eventemitter3';
import { WalletNotConnectedError } from './errors.js';
export { EventEmitter };
/**
* A wallet's readiness describes a series of states that the wallet can be in,
* depending on what kind of wallet it is. An installable wallet (eg. a browser
* extension like Phantom) might be `Installed` if we've found the Phantom API
* in the global scope, or `NotDetected` otherwise. A loadable, zero-install
* runtime (eg. Torus Wallet) might simply signal that it's `Loadable`. Use this
* metadata to personalize the wallet list for each user (eg. to show their
* installed wallets first).
*/
export var WalletReadyState;
(function (WalletReadyState) {
/**
* User-installable wallets can typically be detected by scanning for an API
* that they've injected into the global context. If such an API is present,
* we consider the wallet to have been installed.
*/
WalletReadyState["Installed"] = "Installed";
WalletReadyState["NotDetected"] = "NotDetected";
/**
* Loadable wallets are always available to you. Since you can load them at
* any time, it's meaningless to say that they have been detected.
*/
WalletReadyState["Loadable"] = "Loadable";
/**
* If a wallet is not supported on a given platform (eg. server-rendering, or
* mobile) then it will stay in the `Unsupported` state.
*/
WalletReadyState["Unsupported"] = "Unsupported";
})(WalletReadyState || (WalletReadyState = {}));
export class BaseWalletAdapter extends EventEmitter {
get connected() {
return !!this.publicKey;
}
async autoConnect() {
await this.connect();
}
async prepareTransaction(transaction, connection, options = {}) {
const publicKey = this.publicKey;
if (!publicKey)
throw new WalletNotConnectedError();
transaction.feePayer = transaction.feePayer || publicKey;
transaction.recentBlockhash =
transaction.recentBlockhash ||
(await connection.getLatestBlockhash({
commitment: options.preflightCommitment,
minContextSlot: options.minContextSlot,
})).blockhash;
return transaction;
}
}
export function scopePollingDetectionStrategy(detect) {
// Early return when server-side rendering
if (typeof window === 'undefined' || typeof document === 'undefined')
return;
const disposers = [];
function detectAndDispose() {
const detected = detect();
if (detected) {
for (const dispose of disposers) {
dispose();
}
}
}
// Strategy #1: Try detecting every second.
const interval =
// TODO: #334 Replace with idle callback strategy.
setInterval(detectAndDispose, 1000);
disposers.push(() => clearInterval(interval));
// Strategy #2: Detect as soon as the DOM becomes 'ready'/'interactive'.
if (
// Implies that `DOMContentLoaded` has not yet fired.
document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', detectAndDispose, { once: true });
disposers.push(() => document.removeEventListener('DOMContentLoaded', detectAndDispose));
}
// Strategy #3: Detect after the `window` has fully loaded.
if (
// If the `complete` state has been reached, we're too late.
document.readyState !== 'complete') {
window.addEventListener('load', detectAndDispose, { once: true });
disposers.push(() => window.removeEventListener('load', detectAndDispose));
}
// Strategy #4: Detect synchronously, now.
detectAndDispose();
}
/**
* Users on iOS can be redirected into a wallet's in-app browser automatically,
* if that wallet has a universal link configured to do so
* But should not be redirected from within a webview, eg. if they're already
* inside a wallet's browser
* This function can be used to identify users who are on iOS and can be redirected
*
* @returns true if the user can be redirected
*/
export function isIosAndRedirectable() {
// SSR: return false
if (!navigator)
return false;
const userAgent = navigator.userAgent.toLowerCase();
// if on iOS the user agent will contain either iPhone or iPad
// caveat: if requesting desktop site then this won't work
const isIos = userAgent.includes('iphone') || userAgent.includes('ipad');
// if in a webview then it will not include Safari
// note that other iOS browsers also include Safari
// so we will redirect only if Safari is also included
const isSafari = userAgent.includes('safari');
return isIos && isSafari;
}
//# sourceMappingURL=adapter.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,110 @@
export class WalletError extends Error {
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
constructor(message, error) {
super(message);
this.error = error;
}
}
export class WalletNotReadyError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletNotReadyError';
}
}
export class WalletLoadError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletLoadError';
}
}
export class WalletConfigError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletConfigError';
}
}
export class WalletConnectionError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletConnectionError';
}
}
export class WalletDisconnectedError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletDisconnectedError';
}
}
export class WalletDisconnectionError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletDisconnectionError';
}
}
export class WalletAccountError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletAccountError';
}
}
export class WalletPublicKeyError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletPublicKeyError';
}
}
export class WalletKeypairError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletKeypairError';
}
}
export class WalletNotConnectedError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletNotConnectedError';
}
}
export class WalletSendTransactionError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletSendTransactionError';
}
}
export class WalletSignTransactionError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletSignTransactionError';
}
}
export class WalletSignMessageError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletSignMessageError';
}
}
export class WalletSignInError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletSignInError';
}
}
export class WalletTimeoutError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletTimeoutError';
}
}
export class WalletWindowBlockedError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletWindowBlockedError';
}
}
export class WalletWindowClosedError extends WalletError {
constructor() {
super(...arguments);
this.name = 'WalletWindowClosedError';
}
}
//# sourceMappingURL=errors.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAY,SAAQ,KAAK;IAGlC,6EAA6E;IAC7E,YAAY,OAAgB,EAAE,KAAW;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ;AAED,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAApD;;QACI,SAAI,GAAG,qBAAqB,CAAC;IACjC,CAAC;CAAA;AAED,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAAhD;;QACI,SAAI,GAAG,iBAAiB,CAAC;IAC7B,CAAC;CAAA;AAED,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAAlD;;QACI,SAAI,GAAG,mBAAmB,CAAC;IAC/B,CAAC;CAAA;AAED,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IAAtD;;QACI,SAAI,GAAG,uBAAuB,CAAC;IACnC,CAAC;CAAA;AAED,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IAAxD;;QACI,SAAI,GAAG,yBAAyB,CAAC;IACrC,CAAC;CAAA;AAED,MAAM,OAAO,wBAAyB,SAAQ,WAAW;IAAzD;;QACI,SAAI,GAAG,0BAA0B,CAAC;IACtC,CAAC;CAAA;AAED,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAAnD;;QACI,SAAI,GAAG,oBAAoB,CAAC;IAChC,CAAC;CAAA;AAED,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAArD;;QACI,SAAI,GAAG,sBAAsB,CAAC;IAClC,CAAC;CAAA;AAED,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAAnD;;QACI,SAAI,GAAG,oBAAoB,CAAC;IAChC,CAAC;CAAA;AAED,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IAAxD;;QACI,SAAI,GAAG,yBAAyB,CAAC;IACrC,CAAC;CAAA;AAED,MAAM,OAAO,0BAA2B,SAAQ,WAAW;IAA3D;;QACI,SAAI,GAAG,4BAA4B,CAAC;IACxC,CAAC;CAAA;AAED,MAAM,OAAO,0BAA2B,SAAQ,WAAW;IAA3D;;QACI,SAAI,GAAG,4BAA4B,CAAC;IACxC,CAAC;CAAA;AAED,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IAAvD;;QACI,SAAI,GAAG,wBAAwB,CAAC;IACpC,CAAC;CAAA;AAED,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAAlD;;QACI,SAAI,GAAG,mBAAmB,CAAC;IAC/B,CAAC;CAAA;AAED,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IAAnD;;QACI,SAAI,GAAG,oBAAoB,CAAC;IAChC,CAAC;CAAA;AAED,MAAM,OAAO,wBAAyB,SAAQ,WAAW;IAAzD;;QACI,SAAI,GAAG,0BAA0B,CAAC;IACtC,CAAC;CAAA;AAED,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IAAxD;;QACI,SAAI,GAAG,yBAAyB,CAAC;IACrC,CAAC;CAAA"}

View File

@@ -0,0 +1,7 @@
export * from './adapter.js';
export * from './errors.js';
export * from './signer.js';
export * from './standard.js';
export * from './transaction.js';
export * from './types.js';
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}

View File

@@ -0,0 +1,73 @@
import { BaseWalletAdapter, } from './adapter.js';
import { WalletSendTransactionError, WalletSignTransactionError } from './errors.js';
import { isVersionedTransaction } from './transaction.js';
export class BaseSignerWalletAdapter extends BaseWalletAdapter {
async sendTransaction(transaction, connection, options = {}) {
let emit = true;
try {
if (isVersionedTransaction(transaction)) {
if (!this.supportedTransactionVersions)
throw new WalletSendTransactionError(`Sending versioned transactions isn't supported by this wallet`);
if (!this.supportedTransactionVersions.has(transaction.version))
throw new WalletSendTransactionError(`Sending transaction version ${transaction.version} isn't supported by this wallet`);
try {
transaction = await this.signTransaction(transaction);
const rawTransaction = transaction.serialize();
return await connection.sendRawTransaction(rawTransaction, options);
}
catch (error) {
// If the error was thrown by `signTransaction`, rethrow it and don't emit a duplicate event
if (error instanceof WalletSignTransactionError) {
emit = false;
throw error;
}
throw new WalletSendTransactionError(error?.message, error);
}
}
else {
try {
const { signers, ...sendOptions } = options;
transaction = await this.prepareTransaction(transaction, connection, sendOptions);
signers?.length && transaction.partialSign(...signers);
transaction = await this.signTransaction(transaction);
const rawTransaction = transaction.serialize();
return await connection.sendRawTransaction(rawTransaction, sendOptions);
}
catch (error) {
// If the error was thrown by `signTransaction`, rethrow it and don't emit a duplicate event
if (error instanceof WalletSignTransactionError) {
emit = false;
throw error;
}
throw new WalletSendTransactionError(error?.message, error);
}
}
}
catch (error) {
if (emit) {
this.emit('error', error);
}
throw error;
}
}
async signAllTransactions(transactions) {
for (const transaction of transactions) {
if (isVersionedTransaction(transaction)) {
if (!this.supportedTransactionVersions)
throw new WalletSignTransactionError(`Signing versioned transactions isn't supported by this wallet`);
if (!this.supportedTransactionVersions.has(transaction.version))
throw new WalletSignTransactionError(`Signing transaction version ${transaction.version} isn't supported by this wallet`);
}
}
const signedTransactions = [];
for (const transaction of transactions) {
signedTransactions.push(await this.signTransaction(transaction));
}
return signedTransactions;
}
}
export class BaseMessageSignerWalletAdapter extends BaseSignerWalletAdapter {
}
export class BaseSignInMessageSignerWalletAdapter extends BaseMessageSignerWalletAdapter {
}
//# sourceMappingURL=signer.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,8 @@
import { SolanaSignAndSendTransaction, SolanaSignTransaction, } from '@solana/wallet-standard-features';
import { StandardConnect, StandardEvents, } from '@wallet-standard/features';
export function isWalletAdapterCompatibleStandardWallet(wallet) {
return (StandardConnect in wallet.features &&
StandardEvents in wallet.features &&
(SolanaSignAndSendTransaction in wallet.features || SolanaSignTransaction in wallet.features));
}
//# sourceMappingURL=standard.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"standard.js","sourceRoot":"","sources":["../../src/standard.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,4BAA4B,EAI5B,qBAAqB,GAExB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACH,eAAe,EAGf,cAAc,GAEjB,MAAM,2BAA2B,CAAC;AAkBnC,MAAM,UAAU,uCAAuC,CACnD,MAAsB;IAEtB,OAAO,CACH,eAAe,IAAI,MAAM,CAAC,QAAQ;QAClC,cAAc,IAAI,MAAM,CAAC,QAAQ;QACjC,CAAC,4BAA4B,IAAI,MAAM,CAAC,QAAQ,IAAI,qBAAqB,IAAI,MAAM,CAAC,QAAQ,CAAC,CAChG,CAAC;AACN,CAAC"}

View File

@@ -0,0 +1,4 @@
export function isVersionedTransaction(transaction) {
return 'version' in transaction;
}
//# sourceMappingURL=transaction.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,sBAAsB,CAClC,WAA+C;IAE/C,OAAO,SAAS,IAAI,WAAW,CAAC;AACpC,CAAC"}

View File

@@ -0,0 +1 @@
{"root":["../../src/adapter.ts","../../src/errors.ts","../../src/index.ts","../../src/signer.ts","../../src/standard.ts","../../src/transaction.ts","../../src/types.ts"],"version":"5.8.3"}

View File

@@ -0,0 +1,7 @@
export var WalletAdapterNetwork;
(function (WalletAdapterNetwork) {
WalletAdapterNetwork["Mainnet"] = "mainnet-beta";
WalletAdapterNetwork["Testnet"] = "testnet";
WalletAdapterNetwork["Devnet"] = "devnet";
})(WalletAdapterNetwork || (WalletAdapterNetwork = {}));
//# sourceMappingURL=types.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAWA,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC5B,gDAAwB,CAAA;IACxB,2CAAmB,CAAA;IACnB,yCAAiB,CAAA;AACrB,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B"}

View File

@@ -0,0 +1,87 @@
import type { Connection, PublicKey, SendOptions, Signer, Transaction, TransactionSignature } from '@solana/web3.js';
import EventEmitter from 'eventemitter3';
import { type WalletError } from './errors.js';
import type { SupportedTransactionVersions, TransactionOrVersionedTransaction } from './transaction.js';
export { EventEmitter };
export interface WalletAdapterEvents {
connect(publicKey: PublicKey): void;
disconnect(): void;
error(error: WalletError): void;
readyStateChange(readyState: WalletReadyState): void;
}
export interface SendTransactionOptions extends SendOptions {
signers?: Signer[];
}
export type WalletName<T extends string = string> = T & {
__brand__: 'WalletName';
};
export interface WalletAdapterProps<Name extends string = string> {
name: WalletName<Name>;
url: string;
icon: string;
readyState: WalletReadyState;
publicKey: PublicKey | null;
connecting: boolean;
connected: boolean;
supportedTransactionVersions?: SupportedTransactionVersions;
autoConnect(): Promise<void>;
connect(): Promise<void>;
disconnect(): Promise<void>;
sendTransaction(transaction: TransactionOrVersionedTransaction<this['supportedTransactionVersions']>, connection: Connection, options?: SendTransactionOptions): Promise<TransactionSignature>;
}
export type WalletAdapter<Name extends string = string> = WalletAdapterProps<Name> & EventEmitter<WalletAdapterEvents>;
/**
* A wallet's readiness describes a series of states that the wallet can be in,
* depending on what kind of wallet it is. An installable wallet (eg. a browser
* extension like Phantom) might be `Installed` if we've found the Phantom API
* in the global scope, or `NotDetected` otherwise. A loadable, zero-install
* runtime (eg. Torus Wallet) might simply signal that it's `Loadable`. Use this
* metadata to personalize the wallet list for each user (eg. to show their
* installed wallets first).
*/
export declare enum WalletReadyState {
/**
* User-installable wallets can typically be detected by scanning for an API
* that they've injected into the global context. If such an API is present,
* we consider the wallet to have been installed.
*/
Installed = "Installed",
NotDetected = "NotDetected",
/**
* Loadable wallets are always available to you. Since you can load them at
* any time, it's meaningless to say that they have been detected.
*/
Loadable = "Loadable",
/**
* If a wallet is not supported on a given platform (eg. server-rendering, or
* mobile) then it will stay in the `Unsupported` state.
*/
Unsupported = "Unsupported"
}
export declare abstract class BaseWalletAdapter<Name extends string = string> extends EventEmitter<WalletAdapterEvents> implements WalletAdapter<Name> {
abstract name: WalletName<Name>;
abstract url: string;
abstract icon: string;
abstract readyState: WalletReadyState;
abstract publicKey: PublicKey | null;
abstract connecting: boolean;
abstract supportedTransactionVersions?: SupportedTransactionVersions;
get connected(): boolean;
autoConnect(): Promise<void>;
abstract connect(): Promise<void>;
abstract disconnect(): Promise<void>;
abstract sendTransaction(transaction: TransactionOrVersionedTransaction<this['supportedTransactionVersions']>, connection: Connection, options?: SendTransactionOptions): Promise<TransactionSignature>;
protected prepareTransaction(transaction: Transaction, connection: Connection, options?: SendOptions): Promise<Transaction>;
}
export declare function scopePollingDetectionStrategy(detect: () => boolean): void;
/**
* Users on iOS can be redirected into a wallet's in-app browser automatically,
* if that wallet has a universal link configured to do so
* But should not be redirected from within a webview, eg. if they're already
* inside a wallet's browser
* This function can be used to identify users who are on iOS and can be redirected
*
* @returns true if the user can be redirected
*/
export declare function isIosAndRedirectable(): boolean;
//# sourceMappingURL=adapter.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,56 @@
export declare class WalletError extends Error {
error: any;
constructor(message?: string, error?: any);
}
export declare class WalletNotReadyError extends WalletError {
name: string;
}
export declare class WalletLoadError extends WalletError {
name: string;
}
export declare class WalletConfigError extends WalletError {
name: string;
}
export declare class WalletConnectionError extends WalletError {
name: string;
}
export declare class WalletDisconnectedError extends WalletError {
name: string;
}
export declare class WalletDisconnectionError extends WalletError {
name: string;
}
export declare class WalletAccountError extends WalletError {
name: string;
}
export declare class WalletPublicKeyError extends WalletError {
name: string;
}
export declare class WalletKeypairError extends WalletError {
name: string;
}
export declare class WalletNotConnectedError extends WalletError {
name: string;
}
export declare class WalletSendTransactionError extends WalletError {
name: string;
}
export declare class WalletSignTransactionError extends WalletError {
name: string;
}
export declare class WalletSignMessageError extends WalletError {
name: string;
}
export declare class WalletSignInError extends WalletError {
name: string;
}
export declare class WalletTimeoutError extends WalletError {
name: string;
}
export declare class WalletWindowBlockedError extends WalletError {
name: string;
}
export declare class WalletWindowClosedError extends WalletError {
name: string;
}
//# sourceMappingURL=errors.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,KAAK;IAClC,KAAK,EAAE,GAAG,CAAC;gBAGC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;CAI5C;AAED,qBAAa,mBAAoB,SAAQ,WAAW;IAChD,IAAI,SAAyB;CAChC;AAED,qBAAa,eAAgB,SAAQ,WAAW;IAC5C,IAAI,SAAqB;CAC5B;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAC9C,IAAI,SAAuB;CAC9B;AAED,qBAAa,qBAAsB,SAAQ,WAAW;IAClD,IAAI,SAA2B;CAClC;AAED,qBAAa,uBAAwB,SAAQ,WAAW;IACpD,IAAI,SAA6B;CACpC;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACrD,IAAI,SAA8B;CACrC;AAED,qBAAa,kBAAmB,SAAQ,WAAW;IAC/C,IAAI,SAAwB;CAC/B;AAED,qBAAa,oBAAqB,SAAQ,WAAW;IACjD,IAAI,SAA0B;CACjC;AAED,qBAAa,kBAAmB,SAAQ,WAAW;IAC/C,IAAI,SAAwB;CAC/B;AAED,qBAAa,uBAAwB,SAAQ,WAAW;IACpD,IAAI,SAA6B;CACpC;AAED,qBAAa,0BAA2B,SAAQ,WAAW;IACvD,IAAI,SAAgC;CACvC;AAED,qBAAa,0BAA2B,SAAQ,WAAW;IACvD,IAAI,SAAgC;CACvC;AAED,qBAAa,sBAAuB,SAAQ,WAAW;IACnD,IAAI,SAA4B;CACnC;AAED,qBAAa,iBAAkB,SAAQ,WAAW;IAC9C,IAAI,SAAuB;CAC9B;AAED,qBAAa,kBAAmB,SAAQ,WAAW;IAC/C,IAAI,SAAwB;CAC/B;AAED,qBAAa,wBAAyB,SAAQ,WAAW;IACrD,IAAI,SAA8B;CACrC;AAED,qBAAa,uBAAwB,SAAQ,WAAW;IACpD,IAAI,SAA6B;CACpC"}

View File

@@ -0,0 +1,7 @@
export * from './adapter.js';
export * from './errors.js';
export * from './signer.js';
export * from './standard.js';
export * from './transaction.js';
export * from './types.js';
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}

View File

@@ -0,0 +1,29 @@
import type { SolanaSignInInput, SolanaSignInOutput } from '@solana/wallet-standard-features';
import type { Connection, TransactionSignature } from '@solana/web3.js';
import { BaseWalletAdapter, type SendTransactionOptions, type WalletAdapter, type WalletAdapterProps } from './adapter.js';
import { type TransactionOrVersionedTransaction } from './transaction.js';
export interface SignerWalletAdapterProps<Name extends string = string> extends WalletAdapterProps<Name> {
signTransaction<T extends TransactionOrVersionedTransaction<this['supportedTransactionVersions']>>(transaction: T): Promise<T>;
signAllTransactions<T extends TransactionOrVersionedTransaction<this['supportedTransactionVersions']>>(transactions: T[]): Promise<T[]>;
}
export type SignerWalletAdapter<Name extends string = string> = WalletAdapter<Name> & SignerWalletAdapterProps<Name>;
export declare abstract class BaseSignerWalletAdapter<Name extends string = string> extends BaseWalletAdapter<Name> implements SignerWalletAdapter<Name> {
sendTransaction(transaction: TransactionOrVersionedTransaction<this['supportedTransactionVersions']>, connection: Connection, options?: SendTransactionOptions): Promise<TransactionSignature>;
abstract signTransaction<T extends TransactionOrVersionedTransaction<this['supportedTransactionVersions']>>(transaction: T): Promise<T>;
signAllTransactions<T extends TransactionOrVersionedTransaction<this['supportedTransactionVersions']>>(transactions: T[]): Promise<T[]>;
}
export interface MessageSignerWalletAdapterProps<Name extends string = string> extends WalletAdapterProps<Name> {
signMessage(message: Uint8Array): Promise<Uint8Array>;
}
export type MessageSignerWalletAdapter<Name extends string = string> = WalletAdapter<Name> & MessageSignerWalletAdapterProps<Name>;
export declare abstract class BaseMessageSignerWalletAdapter<Name extends string = string> extends BaseSignerWalletAdapter<Name> implements MessageSignerWalletAdapter<Name> {
abstract signMessage(message: Uint8Array): Promise<Uint8Array>;
}
export interface SignInMessageSignerWalletAdapterProps<Name extends string = string> extends WalletAdapterProps<Name> {
signIn(input?: SolanaSignInInput): Promise<SolanaSignInOutput>;
}
export type SignInMessageSignerWalletAdapter<Name extends string = string> = WalletAdapter<Name> & SignInMessageSignerWalletAdapterProps<Name>;
export declare abstract class BaseSignInMessageSignerWalletAdapter<Name extends string = string> extends BaseMessageSignerWalletAdapter<Name> implements SignInMessageSignerWalletAdapter<Name> {
abstract signIn(input?: SolanaSignInInput): Promise<SolanaSignInOutput>;
}
//# sourceMappingURL=signer.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"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"}

View File

@@ -0,0 +1,12 @@
import { type SolanaSignAndSendTransactionFeature, type SolanaSignInFeature, type SolanaSignMessageFeature, type SolanaSignTransactionFeature } from '@solana/wallet-standard-features';
import type { Wallet as StandardWallet, WalletWithFeatures as StandardWalletWithFeatures } from '@wallet-standard/base';
import { type StandardConnectFeature, type StandardDisconnectFeature, type StandardEventsFeature } from '@wallet-standard/features';
import type { WalletAdapter, WalletAdapterProps } from './adapter.js';
export type WalletAdapterCompatibleStandardWallet = StandardWalletWithFeatures<StandardConnectFeature & StandardEventsFeature & (SolanaSignAndSendTransactionFeature | SolanaSignTransactionFeature) & (StandardDisconnectFeature | SolanaSignMessageFeature | SolanaSignInFeature | object)>;
export interface StandardWalletAdapterProps<Name extends string = string> extends WalletAdapterProps<Name> {
wallet: WalletAdapterCompatibleStandardWallet;
standard: true;
}
export type StandardWalletAdapter<Name extends string = string> = WalletAdapter<Name> & StandardWalletAdapterProps<Name>;
export declare function isWalletAdapterCompatibleStandardWallet(wallet: StandardWallet): wallet is WalletAdapterCompatibleStandardWallet;
//# sourceMappingURL=standard.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"standard.d.ts","sourceRoot":"","sources":["../../src/standard.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,mCAAmC,EACxC,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAE7B,KAAK,4BAA4B,EACpC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,IAAI,cAAc,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAEH,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAE9B,KAAK,qBAAqB,EAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEtE,MAAM,MAAM,qCAAqC,GAAG,0BAA0B,CAC1E,sBAAsB,GAClB,qBAAqB,GACrB,CAAC,mCAAmC,GAAG,4BAA4B,CAAC,GACpE,CAAC,yBAAyB,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,MAAM,CAAC,CAC5F,CAAC;AAEF,MAAM,WAAW,0BAA0B,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,kBAAkB,CAAC,IAAI,CAAC;IACtG,MAAM,EAAE,qCAAqC,CAAC;IAC9C,QAAQ,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,MAAM,qBAAqB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,GACjF,0BAA0B,CAAC,IAAI,CAAC,CAAC;AAErC,wBAAgB,uCAAuC,CACnD,MAAM,EAAE,cAAc,GACvB,MAAM,IAAI,qCAAqC,CAMjD"}

View File

@@ -0,0 +1,5 @@
import type { Transaction, TransactionVersion, VersionedTransaction } from '@solana/web3.js';
export type SupportedTransactionVersions = ReadonlySet<TransactionVersion> | null | undefined;
export type TransactionOrVersionedTransaction<S extends SupportedTransactionVersions> = S extends null | undefined ? Transaction : Transaction | VersionedTransaction;
export declare function isVersionedTransaction(transaction: Transaction | VersionedTransaction): transaction is VersionedTransaction;
//# sourceMappingURL=transaction.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,MAAM,MAAM,4BAA4B,GAAG,WAAW,CAAC,kBAAkB,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9F,MAAM,MAAM,iCAAiC,CAAC,CAAC,SAAS,4BAA4B,IAAI,CAAC,SAAS,IAAI,GAAG,SAAS,GAC5G,WAAW,GACX,WAAW,GAAG,oBAAoB,CAAC;AAEzC,wBAAgB,sBAAsB,CAClC,WAAW,EAAE,WAAW,GAAG,oBAAoB,GAChD,WAAW,IAAI,oBAAoB,CAErC"}

View File

@@ -0,0 +1,10 @@
import type { WalletAdapter } from './adapter.js';
import type { MessageSignerWalletAdapter, SignerWalletAdapter, SignInMessageSignerWalletAdapter } from './signer.js';
import type { StandardWalletAdapter } from './standard.js';
export type Adapter = WalletAdapter | SignerWalletAdapter | MessageSignerWalletAdapter | SignInMessageSignerWalletAdapter | StandardWalletAdapter;
export declare enum WalletAdapterNetwork {
Mainnet = "mainnet-beta",
Testnet = "testnet",
Devnet = "devnet"
}
//# sourceMappingURL=types.d.ts.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AACrH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,MAAM,OAAO,GACb,aAAa,GACb,mBAAmB,GACnB,0BAA0B,GAC1B,gCAAgC,GAChC,qBAAqB,CAAC;AAE5B,oBAAY,oBAAoB;IAC5B,OAAO,iBAAiB;IACxB,OAAO,YAAY;IACnB,MAAM,WAAW;CACpB"}