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,74 @@
|
|
|
1
|
+
import { EmblemVaultSDK } from '../';
|
|
2
|
+
import { Transaction, VersionedTransaction, PublicKey, SendOptions, Connection } from '@solana/web3.js';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration options for the Emblem Vault Solana Wallet Client
|
|
5
|
+
*/
|
|
6
|
+
export interface EmblemVaultSolanaWalletClientConfig {
|
|
7
|
+
/** The Emblem Vault SDK instance */
|
|
8
|
+
sdk: EmblemVaultSDK;
|
|
9
|
+
/** The Emblem Vault ID to use for signing */
|
|
10
|
+
walletId: string;
|
|
11
|
+
/** Optional Solana connection to use for transaction sending */
|
|
12
|
+
connection?: Connection;
|
|
13
|
+
/** Optional public key to use (if already known) */
|
|
14
|
+
publicKey?: PublicKey;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Emblem Vault Solana Wallet Client
|
|
18
|
+
* Provides Solana wallet functionality using Emblem Vault's TEE signer
|
|
19
|
+
*/
|
|
20
|
+
export interface EmblemVaultSolanaWalletClient {
|
|
21
|
+
/** The type of wallet client */
|
|
22
|
+
type: 'emblemVaultSolanaWalletClient';
|
|
23
|
+
/** The Emblem Vault SDK instance */
|
|
24
|
+
sdk: EmblemVaultSDK;
|
|
25
|
+
/** The Emblem Vault ID used for signing */
|
|
26
|
+
walletId: string;
|
|
27
|
+
/** The Solana connection (if provided) */
|
|
28
|
+
connection?: Connection;
|
|
29
|
+
/** The wallet's public key (if known or retrieved) */
|
|
30
|
+
publicKey?: PublicKey;
|
|
31
|
+
/**
|
|
32
|
+
* Get the public key for this wallet
|
|
33
|
+
* @returns The wallet's public key
|
|
34
|
+
*/
|
|
35
|
+
getPublicKey(): Promise<PublicKey>;
|
|
36
|
+
/**
|
|
37
|
+
* Sign a message using the TEE signer
|
|
38
|
+
* @param message - The message to sign as a Uint8Array or string
|
|
39
|
+
* @returns The signature as a base64 string
|
|
40
|
+
*/
|
|
41
|
+
signMessage(message: Uint8Array | string): Promise<string>;
|
|
42
|
+
/**
|
|
43
|
+
* Sign a transaction using the TEE signer
|
|
44
|
+
* @param transaction - The transaction to sign
|
|
45
|
+
* @returns The signed transaction
|
|
46
|
+
*/
|
|
47
|
+
signTransaction(transaction: Transaction): Promise<Transaction>;
|
|
48
|
+
/**
|
|
49
|
+
* Sign a versioned transaction using the TEE signer
|
|
50
|
+
* @param transaction - The versioned transaction to sign
|
|
51
|
+
* @returns The signed versioned transaction
|
|
52
|
+
*/
|
|
53
|
+
signVersionedTransaction(transaction: VersionedTransaction): Promise<VersionedTransaction>;
|
|
54
|
+
/**
|
|
55
|
+
* Sign and send a transaction
|
|
56
|
+
* @param transaction - The transaction to sign and send
|
|
57
|
+
* @param options - Options for sending the transaction
|
|
58
|
+
* @returns The transaction signature
|
|
59
|
+
*/
|
|
60
|
+
sendTransaction(transaction: Transaction, options?: SendOptions): Promise<string>;
|
|
61
|
+
/**
|
|
62
|
+
* Sign and send a versioned transaction
|
|
63
|
+
* @param transaction - The versioned transaction to sign and send
|
|
64
|
+
* @param options - Options for sending the transaction
|
|
65
|
+
* @returns The transaction signature
|
|
66
|
+
*/
|
|
67
|
+
sendVersionedTransaction(transaction: VersionedTransaction, options?: SendOptions): Promise<string>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Creates an Emblem Vault Solana Wallet Client
|
|
71
|
+
* @param config - Configuration for the wallet client
|
|
72
|
+
* @returns An Emblem Vault Solana Wallet Client instance
|
|
73
|
+
*/
|
|
74
|
+
export declare function createEmblemVaultSolanaWalletClient(config: EmblemVaultSolanaWalletClientConfig): EmblemVaultSolanaWalletClient;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Implementation of Solana Wallet Client for Emblem Vault TEE Signer
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.createEmblemVaultSolanaWalletClient = createEmblemVaultSolanaWalletClient;
|
|
14
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
15
|
+
/**
|
|
16
|
+
* Creates an Emblem Vault Solana Wallet Client
|
|
17
|
+
* @param config - Configuration for the wallet client
|
|
18
|
+
* @returns An Emblem Vault Solana Wallet Client instance
|
|
19
|
+
*/
|
|
20
|
+
function createEmblemVaultSolanaWalletClient(config) {
|
|
21
|
+
const { sdk, walletId, connection, publicKey: initialPublicKey } = config;
|
|
22
|
+
// Internal state
|
|
23
|
+
let cachedPublicKey = initialPublicKey;
|
|
24
|
+
// Client implementation
|
|
25
|
+
const client = {
|
|
26
|
+
type: 'emblemVaultSolanaWalletClient',
|
|
27
|
+
sdk,
|
|
28
|
+
walletId,
|
|
29
|
+
connection,
|
|
30
|
+
publicKey: cachedPublicKey,
|
|
31
|
+
// --- Mocked Actions ---
|
|
32
|
+
getPublicKey() {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
// If we already have the public key, return it
|
|
35
|
+
if (cachedPublicKey) {
|
|
36
|
+
return cachedPublicKey;
|
|
37
|
+
}
|
|
38
|
+
// TODO: Replace with actual API call to get public key from TEE wallet
|
|
39
|
+
// For now, generate a deterministic mock key based on walletId
|
|
40
|
+
const mockSeed = new TextEncoder().encode(`mock_seed_for_${walletId}`);
|
|
41
|
+
const mockKeypair = web3_js_1.Keypair.fromSeed(mockSeed.slice(0, 32));
|
|
42
|
+
cachedPublicKey = mockKeypair.publicKey;
|
|
43
|
+
client.publicKey = cachedPublicKey;
|
|
44
|
+
return cachedPublicKey;
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
signMessage(message) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
// Convert string message to Uint8Array if needed
|
|
50
|
+
const messageBytes = typeof message === 'string'
|
|
51
|
+
? new TextEncoder().encode(message)
|
|
52
|
+
: message;
|
|
53
|
+
// TODO: Replace with actual API call to TEE signer
|
|
54
|
+
// For now, create a mock signature
|
|
55
|
+
const mockSignature = Buffer.from(`mock_signature_for_${walletId}_${Buffer.from(messageBytes).toString('hex')}`);
|
|
56
|
+
// Return base64 encoded signature
|
|
57
|
+
return mockSignature.toString('base64');
|
|
58
|
+
});
|
|
59
|
+
},
|
|
60
|
+
signTransaction(transaction) {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
// Ensure we have a public key
|
|
63
|
+
if (!cachedPublicKey) {
|
|
64
|
+
yield this.getPublicKey();
|
|
65
|
+
}
|
|
66
|
+
// Instead of actually signing the transaction (which requires valid blockhash),
|
|
67
|
+
// we'll just create a mock signed transaction for testing purposes
|
|
68
|
+
// Create a copy of the transaction to avoid modifying the original
|
|
69
|
+
const signedTx = new web3_js_1.Transaction();
|
|
70
|
+
// Copy over the instructions
|
|
71
|
+
if (transaction.instructions) {
|
|
72
|
+
transaction.instructions.forEach((instruction) => {
|
|
73
|
+
signedTx.add(instruction);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
// Set a valid blockhash format for testing
|
|
77
|
+
signedTx.recentBlockhash = 'EETubP5AKHgjPAhzPAFcb8BAY1hMH639CWCFTqi3hq1k';
|
|
78
|
+
// Set the fee payer if provided
|
|
79
|
+
if (transaction.feePayer) {
|
|
80
|
+
signedTx.feePayer = transaction.feePayer;
|
|
81
|
+
}
|
|
82
|
+
else if (cachedPublicKey) {
|
|
83
|
+
signedTx.feePayer = cachedPublicKey;
|
|
84
|
+
}
|
|
85
|
+
// Add a mock signature
|
|
86
|
+
const mockSignature = Buffer.from(`mock_signature_for_${walletId}_${Date.now()}`);
|
|
87
|
+
signedTx.signatures.push({
|
|
88
|
+
publicKey: cachedPublicKey, // Use non-null assertion as we've already checked above
|
|
89
|
+
signature: mockSignature
|
|
90
|
+
});
|
|
91
|
+
return signedTx;
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
signVersionedTransaction(transaction) {
|
|
95
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
+
// Ensure we have a public key
|
|
97
|
+
if (!cachedPublicKey) {
|
|
98
|
+
yield this.getPublicKey();
|
|
99
|
+
}
|
|
100
|
+
// TODO: Replace with actual API call to TEE signer
|
|
101
|
+
// For now, create a mock signature for the versioned transaction
|
|
102
|
+
// Create a deterministic keypair for mock signing
|
|
103
|
+
const mockSeed = new TextEncoder().encode(`mock_seed_for_${walletId}`);
|
|
104
|
+
const mockKeypair = web3_js_1.Keypair.fromSeed(mockSeed.slice(0, 32));
|
|
105
|
+
// For mocking purposes, we'll need to recreate the transaction with signatures
|
|
106
|
+
// This is a simplified approach - in production, you'd send the transaction to the TEE for signing
|
|
107
|
+
const messageBytes = transaction.message.serialize();
|
|
108
|
+
const signature = mockKeypair.secretKey.slice(0, 64); // Use first 64 bytes as mock signature
|
|
109
|
+
// In a real implementation, you would:
|
|
110
|
+
// 1. Serialize the transaction message
|
|
111
|
+
// 2. Send it to the TEE for signing
|
|
112
|
+
// 3. Add the signature to the transaction
|
|
113
|
+
// For now, we're just returning the original transaction
|
|
114
|
+
// In a real implementation, you would create a new VersionedTransaction with the signature
|
|
115
|
+
return transaction;
|
|
116
|
+
});
|
|
117
|
+
},
|
|
118
|
+
sendTransaction(transaction, options) {
|
|
119
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
// Ensure we have a connection
|
|
121
|
+
if (!this.connection) {
|
|
122
|
+
throw new Error("Connection is required to send transactions");
|
|
123
|
+
}
|
|
124
|
+
// TODO: Replace with actual API call to send the transaction
|
|
125
|
+
// For now, create a mock transaction signature
|
|
126
|
+
const mockTxSignature = `mock_tx_signature_${walletId}_${Date.now()}`;
|
|
127
|
+
return mockTxSignature;
|
|
128
|
+
});
|
|
129
|
+
},
|
|
130
|
+
sendVersionedTransaction(transaction, options) {
|
|
131
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
+
// Ensure we have a connection
|
|
133
|
+
if (!this.connection) {
|
|
134
|
+
throw new Error("Connection is required to send transactions");
|
|
135
|
+
}
|
|
136
|
+
// Sign the transaction
|
|
137
|
+
const signedTx = yield this.signVersionedTransaction(transaction);
|
|
138
|
+
// TODO: Replace with actual API call to send the transaction
|
|
139
|
+
// For now, create a mock transaction signature
|
|
140
|
+
const mockTxSignature = `mock_tx_signature_${walletId}_${Date.now()}`;
|
|
141
|
+
return mockTxSignature;
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
// Explicitly set the type property for provider detection
|
|
146
|
+
client.type = 'emblemVaultSolanaWalletClient';
|
|
147
|
+
return client;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=emblemVaultSolanaWalletClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emblemVaultSolanaWalletClient.js","sourceRoot":"","sources":["../../src/clients/emblemVaultSolanaWalletClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { EmblemVaultSDK } from '../';
|
|
2
|
+
import type { Account, Address, Chain, Transport, WalletActions } from 'viem';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for creating an EmblemVaultWalletClient.
|
|
5
|
+
*/
|
|
6
|
+
export interface EmblemVaultWalletClientConfig {
|
|
7
|
+
/** The initialized EmblemVaultSDK instance */
|
|
8
|
+
sdk: EmblemVaultSDK;
|
|
9
|
+
/** Identifier for the specific remote TEE wallet to use (e.g., a wallet ID or label) */
|
|
10
|
+
walletId: string;
|
|
11
|
+
/** Optional viem Chain object if needed for compatibility */
|
|
12
|
+
chain?: Chain;
|
|
13
|
+
/** Optional viem Account object if address is known upfront */
|
|
14
|
+
account?: Account | Address;
|
|
15
|
+
/** Optional Transport (likely unused as we use API, but here for viem compatibility) */
|
|
16
|
+
transport?: Transport;
|
|
17
|
+
/** Optional Key for the client */
|
|
18
|
+
key?: string;
|
|
19
|
+
/** Optional Name for the client */
|
|
20
|
+
name?: string;
|
|
21
|
+
}
|
|
22
|
+
export type EmblemVaultWalletActions = Pick<WalletActions, 'getAddresses' | 'sendTransaction' | 'signMessage' | 'signTypedData'>;
|
|
23
|
+
/**
|
|
24
|
+
* Represents a Wallet Client powered by Emblem Vault's TEE remote signer API.
|
|
25
|
+
* Mimics the viem WalletClient interface for compatibility.
|
|
26
|
+
*/
|
|
27
|
+
export type EmblemVaultWalletClient = EmblemVaultWalletActions & {
|
|
28
|
+
/** The type of the client */
|
|
29
|
+
type: 'emblemVaultWalletClient';
|
|
30
|
+
/** The configured wallet identifier */
|
|
31
|
+
walletId: string;
|
|
32
|
+
/** The configured viem Chain object, if provided */
|
|
33
|
+
chain?: Chain;
|
|
34
|
+
/** The configured viem Account object, if provided */
|
|
35
|
+
account?: Account | Address;
|
|
36
|
+
/** The underlying Emblem Vault SDK instance */
|
|
37
|
+
sdk: EmblemVaultSDK;
|
|
38
|
+
/** Client Key */
|
|
39
|
+
key: string;
|
|
40
|
+
/** Client Name */
|
|
41
|
+
name: string;
|
|
42
|
+
/** Client UID */
|
|
43
|
+
uid: string;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Creates a Wallet Client that interacts with Emblem Vault's TEE remote signer.
|
|
47
|
+
*
|
|
48
|
+
* @param config - Configuration for the Wallet Client.
|
|
49
|
+
* @returns A Wallet Client instance.
|
|
50
|
+
*/
|
|
51
|
+
export declare function createEmblemVaultWalletClient(config: EmblemVaultWalletClientConfig): EmblemVaultWalletClient;
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Placeholder for Emblem Vault Wallet Client implementation
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.createEmblemVaultWalletClient = createEmblemVaultWalletClient;
|
|
25
|
+
// --- Mock Implementation ---
|
|
26
|
+
// Counter for UID generation
|
|
27
|
+
let uid = 0;
|
|
28
|
+
/**
|
|
29
|
+
* Creates a Wallet Client that interacts with Emblem Vault's TEE remote signer.
|
|
30
|
+
*
|
|
31
|
+
* @param config - Configuration for the Wallet Client.
|
|
32
|
+
* @returns A Wallet Client instance.
|
|
33
|
+
*/
|
|
34
|
+
function createEmblemVaultWalletClient(config) {
|
|
35
|
+
const { sdk, walletId, chain, account, key = 'emblemVault', name = 'Emblem Vault Wallet Client', } = config;
|
|
36
|
+
if (!sdk)
|
|
37
|
+
throw new Error('EmblemVaultSDK instance is required in config.');
|
|
38
|
+
if (!walletId)
|
|
39
|
+
throw new Error('walletId is required in config.');
|
|
40
|
+
const client = {
|
|
41
|
+
type: 'emblemVaultWalletClient',
|
|
42
|
+
key,
|
|
43
|
+
name,
|
|
44
|
+
uid: `emblemVaultWalletClient-${uid++}`,
|
|
45
|
+
sdk,
|
|
46
|
+
walletId,
|
|
47
|
+
chain,
|
|
48
|
+
account, // Store the initially provided account
|
|
49
|
+
// --- Mocked Actions ---
|
|
50
|
+
getAddresses() {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
// console.log(`[${name}] MOCK getAddresses for wallet: ${walletId}`);
|
|
53
|
+
// TODO: Replace with actual API call to get addresses associated with the TEE wallet
|
|
54
|
+
// For now, if an account address was provided in config, return that.
|
|
55
|
+
if (account) {
|
|
56
|
+
const address = typeof account === 'string' ? account : account.address;
|
|
57
|
+
return [address];
|
|
58
|
+
}
|
|
59
|
+
// Otherwise, return a mock address based on walletId
|
|
60
|
+
return [`0xMockAddressFor${walletId}`];
|
|
61
|
+
});
|
|
62
|
+
},
|
|
63
|
+
signMessage(_a) {
|
|
64
|
+
return __awaiter(this, arguments, void 0, function* ({ message, account: messageAccount }) {
|
|
65
|
+
const effectiveAccount = messageAccount !== null && messageAccount !== void 0 ? messageAccount : account; // Use account from params or config
|
|
66
|
+
const address = effectiveAccount ? (typeof effectiveAccount === 'string' ? effectiveAccount : effectiveAccount.address) : 'UNKNOWN_ACCOUNT';
|
|
67
|
+
// console.log(`[${name}] MOCK signMessage for wallet: ${walletId}, Account: ${address}`);
|
|
68
|
+
// console.log(`[${name}] Message:`, message);
|
|
69
|
+
// TODO: Replace with actual API call to TEE signer
|
|
70
|
+
const mockSignature = `0x${Buffer.from(`mock_signature_for_${walletId}_${message}`).toString('hex')}`;
|
|
71
|
+
return mockSignature;
|
|
72
|
+
});
|
|
73
|
+
},
|
|
74
|
+
signTypedData(args) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
// Destructure from args according to viem's SignTypedDataParameters
|
|
77
|
+
const { account: messageAccount, domain, message, primaryType, types } = args;
|
|
78
|
+
const effectiveAccount = messageAccount !== null && messageAccount !== void 0 ? messageAccount : account; // Use account from params or config
|
|
79
|
+
const address = effectiveAccount ? (typeof effectiveAccount === 'string' ? effectiveAccount : effectiveAccount.address) : 'UNKNOWN_ACCOUNT';
|
|
80
|
+
// console.log(`[${name}] MOCK signTypedData for wallet: ${walletId}, Account: ${address}`);
|
|
81
|
+
// console.log(`[${name}] Primary Type: ${primaryType}`);
|
|
82
|
+
// Use 'message' which contains the typed data payload, and 'domain' / 'types' if needed for logging/API call
|
|
83
|
+
// console.log(`[${name}] Domain:`, JSON.stringify(domain));
|
|
84
|
+
// console.log(`[${name}] Message Payload:`, JSON.stringify(message));
|
|
85
|
+
// console.log(`[${name}] Types:`, JSON.stringify(types));
|
|
86
|
+
// TODO: Replace with actual API call to TEE signer
|
|
87
|
+
const mockSignature = `0x${Buffer.from(`mock_signature_for_${walletId}_typed_${primaryType}`).toString('hex')}`;
|
|
88
|
+
return mockSignature;
|
|
89
|
+
});
|
|
90
|
+
},
|
|
91
|
+
sendTransaction(args) {
|
|
92
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
93
|
+
// Destructure from args
|
|
94
|
+
const { account: txAccount } = args, txParams = __rest(args, ["account"]);
|
|
95
|
+
const effectiveAccount = txAccount !== null && txAccount !== void 0 ? txAccount : account; // Use account from params or config
|
|
96
|
+
if (!effectiveAccount)
|
|
97
|
+
throw new Error("Cannot send transaction without an account specified.");
|
|
98
|
+
const address = typeof effectiveAccount === 'string' ? effectiveAccount : effectiveAccount.address;
|
|
99
|
+
// console.log(`[${name}] MOCK sendTransaction for wallet: ${walletId}, From Account: ${address}`);
|
|
100
|
+
// console.log(`[${name}] Transaction Params:`, txParams);
|
|
101
|
+
// TODO: Replace with actual API call to TEE signer to sign AND submit the transaction
|
|
102
|
+
// The TEE API might handle submission, or we might need a separate step.
|
|
103
|
+
const mockTxHash = `0x${Buffer.from(`mock_tx_hash_for_${walletId}_${Date.now()}`).toString('hex').slice(0, 64)}`;
|
|
104
|
+
return mockTxHash;
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
return client;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=emblemVaultWalletClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emblemVaultWalletClient.js","sourceRoot":"","sources":["../../src/clients/emblemVaultWalletClient.ts"],"names":[],"mappings":"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"}
|
package/dist/derive.js
CHANGED
|
@@ -38,6 +38,12 @@ const bip39 = __importStar(require("bip39"));
|
|
|
38
38
|
// import bitcoin from "bitcoinjs-lib";
|
|
39
39
|
const ecc = __importStar(require("@bitcoin-js/tiny-secp256k1-asmjs"));
|
|
40
40
|
const bip32 = (0, bip32_1.BIP32Factory)(ecc);
|
|
41
|
+
// let mainnet: any = {"messagePrefix":"\u0018Bitcoin Signed Message:\n","bech32":"bc","bip32":{"public":76067358,"private":76066276},"pubKeyHash":0,"scriptHash":5,"wif":128}
|
|
42
|
+
// declare global {
|
|
43
|
+
// interface Window {
|
|
44
|
+
// bitcoin: any;
|
|
45
|
+
// }
|
|
46
|
+
// }
|
|
41
47
|
const generateTaprootAddressFromMnemonic = (phrase) => __awaiter(void 0, void 0, void 0, function* () {
|
|
42
48
|
let bitcoin = window.bitcoin;
|
|
43
49
|
let mainnet = bitcoin.networks.mainnet;
|
|
@@ -121,3 +127,4 @@ const getPsbtTxnSize = (phrase, psbtBase64) => {
|
|
|
121
127
|
return psbt.extractTransaction().virtualSize();
|
|
122
128
|
};
|
|
123
129
|
exports.getPsbtTxnSize = getPsbtTxnSize;
|
|
130
|
+
//# sourceMappingURL=derive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derive.js","sourceRoot":"","sources":["../src/derive.ts"],"names":[],"mappings":"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"}
|