emblem-vault-sdk 2.3.6 → 3.0.0-experimental
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.
- package/.traces/blockchain-provider-abstraction-plan.md +302 -0
- package/.traces/notes.md +43 -0
- package/.traces/readme-verification-trace.md +988 -0
- package/.traces/test-migration-status.md +227 -0
- package/.traces/tests-consolidated-trace.md +667 -0
- package/dist/abi/abi.json +53 -0
- package/dist/bundle.js +21602 -17419
- package/dist/clients/emblemVaultSolanaWalletClient.d.ts +74 -0
- package/dist/clients/emblemVaultSolanaWalletClient.js +149 -0
- package/dist/clients/emblemVaultSolanaWalletClient.js.map +1 -0
- package/dist/clients/emblemVaultWalletClient.d.ts +52 -0
- package/dist/clients/emblemVaultWalletClient.js +110 -0
- package/dist/clients/emblemVaultWalletClient.js.map +1 -0
- package/dist/derive.js +7 -0
- package/dist/derive.js.map +1 -0
- package/dist/index.js +319 -114
- package/dist/index.js.map +1 -0
- package/dist/providers/ProviderManager.d.ts +57 -0
- package/dist/providers/ProviderManager.js +283 -0
- package/dist/providers/ProviderManager.js.map +1 -0
- package/dist/providers.d.ts +101 -0
- package/dist/providers.js +96 -0
- package/dist/providers.js.map +1 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.js +61 -58
- package/dist/utils.js.map +1 -0
- package/docs/bundle.js +21602 -17419
- package/docs/index.html +150 -13
- package/docs/local.html +385 -0
- package/docs/steps.html +420 -53
- package/package.json +22 -13
- package/readme.md +795 -21
- package/src/abi/abi.json +54 -1
- package/src/clients/emblemVaultSolanaWalletClient.ts +257 -0
- package/src/clients/emblemVaultWalletClient.ts +159 -0
- package/src/derive.ts +5 -5
- package/src/index.ts +320 -102
- package/src/providers/ProviderManager.ts +254 -0
- package/src/providers.ts +163 -0
- package/src/types.ts +50 -0
- package/src/utils.ts +63 -62
- package/test/.mocharc.js +8 -0
- package/test/README.md +212 -0
- package/test/fixtures/ethscriptions/balance-with-native-first.json +24 -0
- package/test/fixtures/ethscriptions/balance-with-native.json +23 -0
- package/test/fixtures/ethscriptions/balance.json +18 -0
- package/test/helpers/sdkLoader.js +88 -0
- package/test/helpers/setup.js +55 -0
- package/test/integration/ApiOperations.spec.js +102 -0
- package/test/integration/VaultAI.spec.js +57 -0
- package/test/integration/VaultCreation.spec.js +95 -0
- package/test/mocks.js +127 -0
- package/test/tsconfig.json +25 -0
- package/test/unit/AllowedBells.spec.js +53 -0
- package/test/unit/AllowedBitcoinDeGods.spec.js +53 -0
- package/test/unit/AllowedBitcoinOrdinals.spec.js +46 -0
- package/test/unit/AllowedCounterparty.spec.js +66 -0
- package/test/unit/AllowedCursedOrdinals.spec.js +68 -0
- package/test/unit/AllowedEmbells.spec.js +11 -0
- package/test/unit/AllowedEmbels.spec.js +11 -0
- package/test/unit/AllowedEmblemOpen.spec.js +20 -0
- package/test/unit/AllowedEthscriptions.spec.js +53 -0
- package/test/unit/AllowedHardcodedNfts.spec.js +77 -0
- package/test/unit/AllowedNamecoin.spec.js +33 -0
- package/test/unit/AllowedOrdi.spec.js +46 -0
- package/test/unit/AllowedOxbt.spec.js +46 -0
- package/test/unit/AllowedProjectCollection.spec.js +51 -0
- package/test/unit/AllowedProtocolCollection.spec.js +44 -0
- package/test/unit/AllowedStamps.spec.js +78 -0
- package/test/unit/DarkfarmsMetadata.spec.js +10 -0
- package/test/unit/EmblemVaultSdk.spec.js +188 -0
- package/test/unit/Providers.spec.js +290 -0
- package/test/unit/ResourceMonitor.spec.js +111 -0
- package/test/unit/SDKMemoryLeaks.spec.js +176 -0
- package/test/unit/Signing.spec.js +321 -0
- package/test/unit/VaultAI.spec.js +140 -0
- package/test/unit/clients/EmblemVaultSolanaWalletClient.spec.js +296 -0
- package/test/unit/clients/EmblemVaultWalletClient.spec.js +246 -0
- package/test/utils/ResourceMonitor.js +169 -0
- package/test/windsurf-rules.md +68 -0
- package/tsconfig.json +7 -3
- package/types/derive.d.ts +0 -5
- package/types/index.d.ts +152 -32
- package/types/types.d.ts +43 -0
- package/types/utils.d.ts +7 -1
- package/dist/abi/quote.js +0 -29
- package/dist/abi/quote.json +0 -26
- package/jest.config.js +0 -6
- package/tests/AllowedBells.test.ts +0 -53
- package/tests/AllowedBitcoinDeGods.test.ts +0 -53
- package/tests/AllowedBitcoinOrdinals.test.ts +0 -46
- package/tests/AllowedCounterparty.test.ts +0 -45
- package/tests/AllowedCursedOrdinals.test.ts +0 -68
- package/tests/AllowedEmbells.test.ts +0 -12
- package/tests/AllowedEmbels.test.ts +0 -16
- package/tests/AllowedEmblemOpen.test.ts +0 -20
- package/tests/AllowedEthscriptions.test.ts +0 -39
- package/tests/AllowedHardcodedNfts.test.ts +0 -78
- package/tests/AllowedNamecoin.test.ts +0 -33
- package/tests/AllowedOrdi.test.ts +0 -47
- package/tests/AllowedOxbt.test.ts +0 -47
- package/tests/AllowedProjectlCollection.test.ts +0 -51
- package/tests/AllowedProtocolCollection.test.ts +0 -44
- package/tests/AllowedStamps.test.ts +0 -73
- package/tests/DarkfarmsMetadata.test.ts +0 -10
- package/tests/EmblemVaultSdk.test.ts +0 -124
- package/tests/fixtures/embels/balance.json +0 -10
- package/tests/fixtures/ethscriptions/balance-with-native-first.json +0 -69
- package/tests/fixtures/ethscriptions/balance-with-native.json +0 -37
- package/tests/fixtures/ethscriptions/balance.json +0 -64
- /package/{tests → test}/fixtures/bells/balance-with-non-bell-first.json +0 -0
- /package/{tests → test}/fixtures/bells/balance-with-non-bell.json +0 -0
- /package/{tests → test}/fixtures/bells/balance.json +0 -0
- /package/{tests → test}/fixtures/bitcoin-degods/balance-with-non-degods-first.json +0 -0
- /package/{tests → test}/fixtures/bitcoin-degods/balance-with-non-degods.json +0 -0
- /package/{tests → test}/fixtures/bitcoin-degods/balance.json +0 -0
- /package/{tests → test}/fixtures/bitcoin-ordinals/balance-with-native-first.json +0 -0
- /package/{tests → test}/fixtures/bitcoin-ordinals/balance-with-only-native.json +0 -0
- /package/{tests → test}/fixtures/bitcoin-ordinals/balance.json +0 -0
- /package/{tests → test}/fixtures/counterparty/balance-with-multiple.json +0 -0
- /package/{tests → test}/fixtures/counterparty/balance.json +0 -0
- /package/{tests → test}/fixtures/cursed-ordinals/balance-with-native-first.json +0 -0
- /package/{tests → test}/fixtures/cursed-ordinals/balance-with-native.json +0 -0
- /package/{tests → test}/fixtures/cursed-ordinals/balance.json +0 -0
- /package/{tests → test}/fixtures/dogeparty/balance-with-non-dogeparty-first.json +0 -0
- /package/{tests → test}/fixtures/dogeparty/balance-with-non-dogeparty.json +0 -0
- /package/{tests → test}/fixtures/dogeparty/balance.json +0 -0
- /package/{tests → test}/fixtures/emblem-open/balance.json +0 -0
- /package/{tests → test}/fixtures/hardcoded-nfts/balance-witn-non-hardcoded-first.json +0 -0
- /package/{tests → test}/fixtures/hardcoded-nfts/balance-witn-non-hardcoded.json +0 -0
- /package/{tests → test}/fixtures/hardcoded-nfts/balance.json +0 -0
- /package/{tests → test}/fixtures/megapunks/balance-with-non-megapunk-first.json +0 -0
- /package/{tests → test}/fixtures/megapunks/balance-with-non-megapunk.json +0 -0
- /package/{tests → test}/fixtures/megapunks/balance.json +0 -0
- /package/{tests → test}/fixtures/namecoin/balance-with-native-first.json +0 -0
- /package/{tests → test}/fixtures/namecoin/balance-with-native.json +0 -0
- /package/{tests → test}/fixtures/namecoin/balance.json +0 -0
- /package/{tests → test}/fixtures/ordi/balance-with-native-first.json +0 -0
- /package/{tests → test}/fixtures/ordi/balance-with-native.json +0 -0
- /package/{tests → test}/fixtures/ordi/balance.json +0 -0
- /package/{tests → test}/fixtures/oxbt/balance-with-native-first.json +0 -0
- /package/{tests → test}/fixtures/oxbt/balance-with-native.json +0 -0
- /package/{tests → test}/fixtures/oxbt/balance.json +0 -0
- /package/{tests → test}/fixtures/stamps/balance-with-non-stamps-first.json +0 -0
- /package/{tests → test}/fixtures/stamps/balance-with-non-stamps.json +0 -0
- /package/{tests → test}/fixtures/stamps/balance.json +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { BlockchainProvider, BlockchainType } from '../providers';
|
|
2
|
+
import { WalletConfig } from '../types';
|
|
3
|
+
export declare class ProviderManager {
|
|
4
|
+
private providers;
|
|
5
|
+
private walletConfig?;
|
|
6
|
+
private selectedProvider;
|
|
7
|
+
constructor(walletConfig?: WalletConfig);
|
|
8
|
+
/**
|
|
9
|
+
* Applies auto-connect settings based on the wallet configuration.
|
|
10
|
+
* Defaults to auto-connect off unless specified in config.
|
|
11
|
+
*/
|
|
12
|
+
private applyAutoConnectSettings;
|
|
13
|
+
/**
|
|
14
|
+
* Disconnects the currently selected wallet provider, if applicable.
|
|
15
|
+
*/
|
|
16
|
+
disconnect(): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Register a blockchain provider for a specific blockchain type
|
|
19
|
+
* @param type The blockchain type
|
|
20
|
+
* @param provider The provider instance
|
|
21
|
+
*/
|
|
22
|
+
registerProvider(type: BlockchainType, provider: BlockchainProvider): void;
|
|
23
|
+
/**
|
|
24
|
+
* Get a registered provider for a specific blockchain type
|
|
25
|
+
* @param type The blockchain type
|
|
26
|
+
* @returns The provider instance or undefined if not registered
|
|
27
|
+
*/
|
|
28
|
+
getProvider(type: BlockchainType): BlockchainProvider | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Check if a provider is registered for a specific blockchain type
|
|
31
|
+
* @param type The blockchain type
|
|
32
|
+
* @returns True if a provider is registered for the specified type
|
|
33
|
+
*/
|
|
34
|
+
hasProvider(type: BlockchainType): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Try to connect to a specific wallet by its identifier.
|
|
37
|
+
* @param walletId The identifier of the wallet (e.g., 'phantom', 'metamask').
|
|
38
|
+
* @param type The blockchain type ('solana' or 'ethereum').
|
|
39
|
+
* @returns The provider instance if connection is successful, otherwise null.
|
|
40
|
+
*/
|
|
41
|
+
private tryConnectWalletById;
|
|
42
|
+
/**
|
|
43
|
+
* Get or detect a provider for a specific blockchain type
|
|
44
|
+
* If a provider is registered, it will be returned
|
|
45
|
+
* Otherwise, it will try to detect a provider in the environment, respecting priority config.
|
|
46
|
+
* @param type The blockchain type
|
|
47
|
+
* @returns A promise that resolves to the provider instance
|
|
48
|
+
* @throws Error if no provider is available
|
|
49
|
+
*/
|
|
50
|
+
getOrDetectProvider(type: BlockchainType): Promise<BlockchainProvider>;
|
|
51
|
+
/**
|
|
52
|
+
* Helper function for general provider detection.
|
|
53
|
+
* @param type The blockchain type
|
|
54
|
+
* @returns A promise that resolves to the detected provider instance or null.
|
|
55
|
+
*/
|
|
56
|
+
private _detectGenericProvider;
|
|
57
|
+
}
|
|
@@ -0,0 +1,283 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.ProviderManager = void 0;
|
|
36
|
+
const providers_1 = require("../providers");
|
|
37
|
+
class ProviderManager {
|
|
38
|
+
constructor(walletConfig) {
|
|
39
|
+
this.providers = new Map();
|
|
40
|
+
this.selectedProvider = null; // Allow null and initialize
|
|
41
|
+
this.walletConfig = walletConfig;
|
|
42
|
+
this.applyAutoConnectSettings(); // Call the new method
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Applies auto-connect settings based on the wallet configuration.
|
|
46
|
+
* Defaults to auto-connect off unless specified in config.
|
|
47
|
+
*/
|
|
48
|
+
applyAutoConnectSettings() {
|
|
49
|
+
// Default: Turn off known auto-connect behaviors if possible
|
|
50
|
+
// We might not need an explicit 'set autoConnect false' if the default is already false
|
|
51
|
+
// or if connect({ onlyIfTrusted: true }) is used later. Let's refine as needed.
|
|
52
|
+
var _a;
|
|
53
|
+
// Apply specific auto-connect settings from config
|
|
54
|
+
if (((_a = this.walletConfig) === null || _a === void 0 ? void 0 : _a.autoConnectWallets) && Array.isArray(this.walletConfig.autoConnectWallets)) {
|
|
55
|
+
this.walletConfig.autoConnectWallets.forEach((walletType) => {
|
|
56
|
+
switch (walletType) {
|
|
57
|
+
case 'solana': // Use string literal
|
|
58
|
+
// Attempt to enable auto-connect for Solana wallets if supported
|
|
59
|
+
// Note: Direct 'autoConnect: true' might not be standard.
|
|
60
|
+
// Often, auto-connect happens if the wallet was previously connected/trusted.
|
|
61
|
+
// This might be handled during the actual connect() call later.
|
|
62
|
+
console.log("Attempting to configure Solana for potential auto-connect (behavior depends on wallet implementation)");
|
|
63
|
+
break;
|
|
64
|
+
case 'ethereum': // Use string literal
|
|
65
|
+
// MetaMask/Ethereum auto-connect is usually handled by checking
|
|
66
|
+
// accounts on page load and potentially calling eth_requestAccounts.
|
|
67
|
+
console.log("Ethereum auto-connect enabled in config. Actual connection attempt should happen later.");
|
|
68
|
+
break;
|
|
69
|
+
case 'bitcoin': // Use string literal
|
|
70
|
+
// Bitcoin wallet auto-connect mechanisms vary greatly.
|
|
71
|
+
console.log("Bitcoin auto-connect enabled in config. Actual connection attempt should happen later.");
|
|
72
|
+
break;
|
|
73
|
+
// Add cases for other blockchain types as needed
|
|
74
|
+
default:
|
|
75
|
+
console.warn(`Auto-connect configuration not implemented for type: ${walletType}`);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
// If no config is provided, or the array is empty, the default behavior (typically auto-connect off) applies.
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Disconnects the currently selected wallet provider, if applicable.
|
|
83
|
+
*/
|
|
84
|
+
disconnect() {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
if (!this.selectedProvider) {
|
|
87
|
+
console.log("No provider currently selected to disconnect.");
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
console.log(`Disconnecting from ${this.selectedProvider.type} provider...`);
|
|
91
|
+
// Check if the provider has a specific disconnect method (e.g., Solana)
|
|
92
|
+
if (typeof this.selectedProvider.disconnect === 'function') {
|
|
93
|
+
try {
|
|
94
|
+
yield this.selectedProvider.disconnect(); // Cast to SolanaProvider for type safety if needed
|
|
95
|
+
console.log(`${this.selectedProvider.type} provider disconnected successfully.`);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.error(`Error disconnecting ${this.selectedProvider.type} provider:`, error);
|
|
99
|
+
// Decide if we should still nullify the provider even if disconnect fails
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
console.log(`Provider type ${this.selectedProvider.type} does not have a specific disconnect method. Clearing selection.`);
|
|
104
|
+
// For providers like Ethereum/Metamask, there's often no explicit 'disconnect' API.
|
|
105
|
+
// The app usually manages connection state by no longer using the provider.
|
|
106
|
+
}
|
|
107
|
+
// Always clear the selected provider reference
|
|
108
|
+
this.selectedProvider = null;
|
|
109
|
+
console.log("Provider selection cleared.");
|
|
110
|
+
// Optionally, emit an event here
|
|
111
|
+
// this.emit('disconnected');
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Register a blockchain provider for a specific blockchain type
|
|
116
|
+
* @param type The blockchain type
|
|
117
|
+
* @param provider The provider instance
|
|
118
|
+
*/
|
|
119
|
+
registerProvider(type, provider) {
|
|
120
|
+
this.providers.set(type, provider);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get a registered provider for a specific blockchain type
|
|
124
|
+
* @param type The blockchain type
|
|
125
|
+
* @returns The provider instance or undefined if not registered
|
|
126
|
+
*/
|
|
127
|
+
getProvider(type) {
|
|
128
|
+
return this.providers.get(type);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Check if a provider is registered for a specific blockchain type
|
|
132
|
+
* @param type The blockchain type
|
|
133
|
+
* @returns True if a provider is registered for the specified type
|
|
134
|
+
*/
|
|
135
|
+
hasProvider(type) {
|
|
136
|
+
return this.providers.has(type);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Try to connect to a specific wallet by its identifier.
|
|
140
|
+
* @param walletId The identifier of the wallet (e.g., 'phantom', 'metamask').
|
|
141
|
+
* @param type The blockchain type ('solana' or 'ethereum').
|
|
142
|
+
* @returns The provider instance if connection is successful, otherwise null.
|
|
143
|
+
*/
|
|
144
|
+
tryConnectWalletById(walletId, type) {
|
|
145
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
146
|
+
var _a;
|
|
147
|
+
if (typeof window === 'undefined')
|
|
148
|
+
return null;
|
|
149
|
+
let specificProvider = null; // Corrected type
|
|
150
|
+
// Mapping walletId to potential provider objects in window
|
|
151
|
+
const walletProviderMap = {
|
|
152
|
+
'phantom': (_a = window.phantom) === null || _a === void 0 ? void 0 : _a.solana, // Access the solana property if phantom exists
|
|
153
|
+
'solflare': window.solflare,
|
|
154
|
+
'metamask': window.ethereum, // Assuming MetaMask uses window.ethereum
|
|
155
|
+
'trust': window.trustWallet,
|
|
156
|
+
'coinbase': window.coinbaseWalletExtension,
|
|
157
|
+
'bitcoin': window.HiroWalletProvider, // Add mappings for other wallets as needed
|
|
158
|
+
};
|
|
159
|
+
const targetProvider = walletProviderMap[walletId.toLowerCase()];
|
|
160
|
+
if (targetProvider) {
|
|
161
|
+
try {
|
|
162
|
+
if (type === 'ethereum' && (targetProvider.isMetaMask || targetProvider.isCoinbaseWallet)) { // Check for common ethereum wallet flags
|
|
163
|
+
yield targetProvider.request({ method: 'eth_requestAccounts' });
|
|
164
|
+
const { default: Web3 } = yield Promise.resolve().then(() => __importStar(require('web3')));
|
|
165
|
+
specificProvider = new providers_1.Web3ProviderAdapter(new Web3(targetProvider));
|
|
166
|
+
}
|
|
167
|
+
else if (type === 'solana' && (targetProvider.isPhantom || targetProvider.isSolflare)) {
|
|
168
|
+
yield targetProvider.connect({ onlyIfTrusted: false }); // Force prompt
|
|
169
|
+
// Ensure the connected provider matches the SolanaProvider interface structure
|
|
170
|
+
if ('publicKey' in targetProvider && 'signTransaction' in targetProvider) {
|
|
171
|
+
specificProvider = targetProvider;
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
console.warn(`Detected Solana provider ${walletId} does not fully match SolanaProvider interface.`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Add conditions for other wallets and types
|
|
178
|
+
if (specificProvider) {
|
|
179
|
+
console.log(`Successfully connected to prioritized wallet: ${walletId}`);
|
|
180
|
+
return specificProvider;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
console.warn(`Failed to connect to prioritized wallet ${walletId}:`, error);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return null;
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Get or detect a provider for a specific blockchain type
|
|
192
|
+
* If a provider is registered, it will be returned
|
|
193
|
+
* Otherwise, it will try to detect a provider in the environment, respecting priority config.
|
|
194
|
+
* @param type The blockchain type
|
|
195
|
+
* @returns A promise that resolves to the provider instance
|
|
196
|
+
* @throws Error if no provider is available
|
|
197
|
+
*/
|
|
198
|
+
getOrDetectProvider(type) {
|
|
199
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
200
|
+
var _a, _b;
|
|
201
|
+
let provider = this.providers.get(type);
|
|
202
|
+
if (provider)
|
|
203
|
+
return provider;
|
|
204
|
+
// Try connecting prioritized wallets first
|
|
205
|
+
if ((_b = (_a = this.walletConfig) === null || _a === void 0 ? void 0 : _a.priority) === null || _b === void 0 ? void 0 : _b.length) {
|
|
206
|
+
for (const walletId of this.walletConfig.priority) {
|
|
207
|
+
const prioritizedProvider = yield this.tryConnectWalletById(walletId, type);
|
|
208
|
+
if (prioritizedProvider) {
|
|
209
|
+
console.log(`Using prioritized wallet: ${walletId} for type: ${type}`);
|
|
210
|
+
this.registerProvider(type, prioritizedProvider); // Type should now match
|
|
211
|
+
this.selectedProvider = prioritizedProvider; // Set the selected provider
|
|
212
|
+
return prioritizedProvider;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
console.log(`Prioritized wallets (${this.walletConfig.priority.join(', ')}) not found or connection failed. Proceeding with general detection.`);
|
|
216
|
+
}
|
|
217
|
+
// If prioritized connection failed or no priority set, proceed with general detection
|
|
218
|
+
const detectedProvider = yield this._detectGenericProvider(type); // Assign to a new const
|
|
219
|
+
if (detectedProvider) { // Check if not null
|
|
220
|
+
this.registerProvider(type, detectedProvider); // Register the non-null provider
|
|
221
|
+
this.selectedProvider = detectedProvider; // Set the selected provider
|
|
222
|
+
return detectedProvider; // Return the non-null provider
|
|
223
|
+
}
|
|
224
|
+
throw new Error(`No provider available for ${type}`);
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Helper function for general provider detection.
|
|
229
|
+
* @param type The blockchain type
|
|
230
|
+
* @returns A promise that resolves to the detected provider instance or null.
|
|
231
|
+
*/
|
|
232
|
+
_detectGenericProvider(type) {
|
|
233
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
234
|
+
var _a, _b, _c;
|
|
235
|
+
if (typeof window === 'undefined')
|
|
236
|
+
return null;
|
|
237
|
+
let detectedProvider = null;
|
|
238
|
+
try {
|
|
239
|
+
switch (type) {
|
|
240
|
+
case 'ethereum':
|
|
241
|
+
if (window.ethereum) {
|
|
242
|
+
yield window.ethereum.request({ method: 'eth_requestAccounts' });
|
|
243
|
+
const { default: Web3 } = yield Promise.resolve().then(() => __importStar(require('web3')));
|
|
244
|
+
detectedProvider = new providers_1.Web3ProviderAdapter(new Web3(window.ethereum));
|
|
245
|
+
}
|
|
246
|
+
else if (window.web3) { // Handle legacy web3
|
|
247
|
+
const { default: Web3 } = yield Promise.resolve().then(() => __importStar(require('web3')));
|
|
248
|
+
detectedProvider = new providers_1.Web3ProviderAdapter(new Web3(window.web3.currentProvider));
|
|
249
|
+
}
|
|
250
|
+
break;
|
|
251
|
+
case 'solana':
|
|
252
|
+
// Prefer Phantom, then Solflare, etc. Add more detections if needed.
|
|
253
|
+
if ((_b = (_a = window.phantom) === null || _a === void 0 ? void 0 : _a.solana) === null || _b === void 0 ? void 0 : _b.isPhantom) {
|
|
254
|
+
yield window.phantom.solana.connect({ onlyIfTrusted: false });
|
|
255
|
+
detectedProvider = window.phantom.solana;
|
|
256
|
+
}
|
|
257
|
+
else if ((_c = window.solflare) === null || _c === void 0 ? void 0 : _c.isSolflare) {
|
|
258
|
+
yield window.solflare.connect({ onlyIfTrusted: false });
|
|
259
|
+
detectedProvider = window.solflare;
|
|
260
|
+
}
|
|
261
|
+
// Add more Solana wallet detections here
|
|
262
|
+
break;
|
|
263
|
+
case 'bitcoin':
|
|
264
|
+
// Example: Check for a specific Bitcoin provider like Xverse or Leather
|
|
265
|
+
// if (window.btcProvider?.isXverse) { ... }
|
|
266
|
+
// For now, just return null if no specific provider detected
|
|
267
|
+
console.warn("Generic Bitcoin provider detection not implemented yet.");
|
|
268
|
+
break;
|
|
269
|
+
default:
|
|
270
|
+
console.warn(`Generic detection for type ${type} not implemented.`);
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
catch (error) {
|
|
275
|
+
console.error(`Error during generic detection for ${type}:`, error);
|
|
276
|
+
// Don't throw here, let getOrDetectProvider handle the final error
|
|
277
|
+
}
|
|
278
|
+
return detectedProvider;
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
exports.ProviderManager = ProviderManager;
|
|
283
|
+
//# sourceMappingURL=ProviderManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderManager.js","sourceRoot":"","sources":["../../src/providers/ProviderManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Blockchain Provider Abstraction
|
|
3
|
+
*
|
|
4
|
+
* This file defines interfaces and utilities for working with different blockchain providers
|
|
5
|
+
* in a consistent way, regardless of the underlying implementation.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Supported blockchain types
|
|
9
|
+
*/
|
|
10
|
+
export type BlockchainType = 'ethereum' | 'solana' | 'bitcoin' | 'other';
|
|
11
|
+
/**
|
|
12
|
+
* Base interface for all blockchain providers
|
|
13
|
+
*/
|
|
14
|
+
export interface BlockchainProviderBase {
|
|
15
|
+
type: BlockchainType;
|
|
16
|
+
isConnected(): Promise<boolean>;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Ethereum provider interface
|
|
20
|
+
* Compatible with EIP-1193 and Web3.js
|
|
21
|
+
*/
|
|
22
|
+
export interface EthereumProvider extends BlockchainProviderBase {
|
|
23
|
+
type: 'ethereum';
|
|
24
|
+
request(args: {
|
|
25
|
+
method: string;
|
|
26
|
+
params?: any[];
|
|
27
|
+
}): Promise<any>;
|
|
28
|
+
eth?: {
|
|
29
|
+
Contract?: any;
|
|
30
|
+
getAccounts?: () => Promise<string[]>;
|
|
31
|
+
getChainId?: () => Promise<string>;
|
|
32
|
+
getBalance?: (address: string) => Promise<string>;
|
|
33
|
+
personal?: {
|
|
34
|
+
sign?: (message: string, address: string, password?: string) => Promise<string>;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Solana provider interface
|
|
40
|
+
*/
|
|
41
|
+
export interface SolanaProvider extends BlockchainProviderBase {
|
|
42
|
+
type: 'solana';
|
|
43
|
+
connect(): Promise<{
|
|
44
|
+
publicKey: string;
|
|
45
|
+
}>;
|
|
46
|
+
disconnect(): Promise<void>;
|
|
47
|
+
signTransaction?(transaction: any): Promise<any>;
|
|
48
|
+
signAllTransactions?(transactions: any[]): Promise<any[]>;
|
|
49
|
+
signMessage?(message: Uint8Array): Promise<{
|
|
50
|
+
signature: Uint8Array;
|
|
51
|
+
}>;
|
|
52
|
+
publicKey?: any;
|
|
53
|
+
connection?: any;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Bitcoin provider interface
|
|
57
|
+
*/
|
|
58
|
+
export interface BitcoinProvider extends BlockchainProviderBase {
|
|
59
|
+
type: 'bitcoin';
|
|
60
|
+
getAddress?(): Promise<string>;
|
|
61
|
+
signMessage?(message: string, address: string): Promise<string>;
|
|
62
|
+
signPsbt?(psbtBase64: string): Promise<string>;
|
|
63
|
+
network?: any;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Union type of all provider interfaces
|
|
67
|
+
*/
|
|
68
|
+
export type BlockchainProvider = EthereumProvider | SolanaProvider | BitcoinProvider;
|
|
69
|
+
/**
|
|
70
|
+
* Web3 provider adapter
|
|
71
|
+
* This wraps a Web3 instance to make it conform to our EthereumProvider interface
|
|
72
|
+
*/
|
|
73
|
+
export declare class Web3ProviderAdapter implements EthereumProvider {
|
|
74
|
+
private web3;
|
|
75
|
+
type: 'ethereum';
|
|
76
|
+
constructor(web3: any);
|
|
77
|
+
request(args: {
|
|
78
|
+
method: string;
|
|
79
|
+
params?: any[];
|
|
80
|
+
}): Promise<any>;
|
|
81
|
+
isConnected(): Promise<boolean>;
|
|
82
|
+
get eth(): any;
|
|
83
|
+
getRawWeb3(): any;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Utility to detect the type of a provider based on its properties
|
|
87
|
+
*/
|
|
88
|
+
export declare function detectProviderType(provider: any): BlockchainType;
|
|
89
|
+
/**
|
|
90
|
+
* Utility to check if a provider is of a specific type
|
|
91
|
+
*/
|
|
92
|
+
export declare function isProviderType<T extends BlockchainProvider>(provider: any, type: BlockchainType): provider is T;
|
|
93
|
+
export declare function asProvider(provider: BlockchainProvider): BlockchainProvider;
|
|
94
|
+
export {};
|
|
95
|
+
declare global {
|
|
96
|
+
interface Window {
|
|
97
|
+
ethereum?: any;
|
|
98
|
+
solana?: any;
|
|
99
|
+
web3?: any;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Blockchain Provider Abstraction
|
|
4
|
+
*
|
|
5
|
+
* This file defines interfaces and utilities for working with different blockchain providers
|
|
6
|
+
* in a consistent way, regardless of the underlying implementation.
|
|
7
|
+
*/
|
|
8
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.Web3ProviderAdapter = void 0;
|
|
19
|
+
exports.detectProviderType = detectProviderType;
|
|
20
|
+
exports.isProviderType = isProviderType;
|
|
21
|
+
exports.asProvider = asProvider;
|
|
22
|
+
/**
|
|
23
|
+
* Web3 provider adapter
|
|
24
|
+
* This wraps a Web3 instance to make it conform to our EthereumProvider interface
|
|
25
|
+
*/
|
|
26
|
+
class Web3ProviderAdapter {
|
|
27
|
+
constructor(web3) {
|
|
28
|
+
this.web3 = web3;
|
|
29
|
+
this.type = 'ethereum';
|
|
30
|
+
}
|
|
31
|
+
request(args) {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
var _a, _b, _c, _d;
|
|
34
|
+
switch (args.method) {
|
|
35
|
+
case 'eth_accounts':
|
|
36
|
+
return this.web3.eth.getAccounts();
|
|
37
|
+
case 'eth_chainId':
|
|
38
|
+
return this.web3.eth.getChainId();
|
|
39
|
+
case 'eth_getBalance':
|
|
40
|
+
return this.web3.eth.getBalance((_a = args.params) === null || _a === void 0 ? void 0 : _a[0]);
|
|
41
|
+
case 'personal_sign':
|
|
42
|
+
return this.web3.eth.personal.sign((_b = args.params) === null || _b === void 0 ? void 0 : _b[0], (_c = args.params) === null || _c === void 0 ? void 0 : _c[1], (_d = args.params) === null || _d === void 0 ? void 0 : _d[2]);
|
|
43
|
+
default:
|
|
44
|
+
throw new Error(`Method ${args.method} not implemented`);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
isConnected() {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
try {
|
|
51
|
+
const accounts = yield this.web3.eth.getAccounts();
|
|
52
|
+
return Array.isArray(accounts) && accounts.length > 0;
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// Expose the original web3 instance
|
|
60
|
+
get eth() {
|
|
61
|
+
return this.web3.eth;
|
|
62
|
+
}
|
|
63
|
+
// Get the raw web3 instance
|
|
64
|
+
getRawWeb3() {
|
|
65
|
+
return this.web3;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.Web3ProviderAdapter = Web3ProviderAdapter;
|
|
69
|
+
/**
|
|
70
|
+
* Utility to detect the type of a provider based on its properties
|
|
71
|
+
*/
|
|
72
|
+
function detectProviderType(provider) {
|
|
73
|
+
if (!provider)
|
|
74
|
+
return 'other';
|
|
75
|
+
if (provider.eth || (provider.request && typeof provider.request === 'function')) {
|
|
76
|
+
return 'ethereum';
|
|
77
|
+
}
|
|
78
|
+
if (provider.publicKey || provider.connection || provider.isPhantom || (provider.signAllTransactions && typeof provider.signAllTransactions === 'function') || (provider.signTransaction && typeof provider.signTransaction === 'function')) {
|
|
79
|
+
return 'solana';
|
|
80
|
+
}
|
|
81
|
+
if (provider.network ||
|
|
82
|
+
(provider.signPsbt && typeof provider.signPsbt === 'function')) {
|
|
83
|
+
return 'bitcoin';
|
|
84
|
+
}
|
|
85
|
+
return 'other';
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Utility to check if a provider is of a specific type
|
|
89
|
+
*/
|
|
90
|
+
function isProviderType(provider, type) {
|
|
91
|
+
return detectProviderType(provider) === type;
|
|
92
|
+
}
|
|
93
|
+
function asProvider(provider) {
|
|
94
|
+
return provider;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|