@lendasat/lendaswap-sdk 0.1.0 → 0.1.3
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/README.md +260 -37
- package/dist/api.d.ts +100 -28
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +139 -21
- package/dist/api.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/price-feed.d.ts +10 -10
- package/dist/price-feed.d.ts.map +1 -1
- package/dist/storage/dexieSwapStorage.d.ts +2 -2
- package/dist/storage/dexieSwapStorage.js +2 -2
- package/dist/storage/dexieWalletStorage.d.ts +2 -2
- package/dist/storage/dexieWalletStorage.js +2 -2
- package/dist/usd-price.d.ts +83 -0
- package/dist/usd-price.d.ts.map +1 -0
- package/dist/usd-price.js +157 -0
- package/dist/usd-price.js.map +1 -0
- package/package.json +15 -16
- package/dist/storage/indexedDB.d.ts +0 -30
- package/dist/storage/indexedDB.d.ts.map +0 -1
- package/dist/storage/indexedDB.js +0 -108
- package/dist/storage/indexedDB.js.map +0 -1
- package/dist/storage/localStorage.d.ts +0 -32
- package/dist/storage/localStorage.d.ts.map +0 -1
- package/dist/storage/localStorage.js +0 -58
- package/dist/storage/localStorage.js.map +0 -1
- package/dist/storage/memory.d.ts +0 -35
- package/dist/storage/memory.d.ts.map +0 -1
- package/dist/storage/memory.js +0 -50
- package/dist/storage/memory.js.map +0 -1
- package/dist/wallet.d.ts +0 -108
- package/dist/wallet.d.ts.map +0 -1
- package/dist/wallet.js +0 -188
- package/dist/wallet.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lendasat/lendaswap-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Lendaswap Client SDK for TypeScript/JavaScript",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -16,18 +16,6 @@
|
|
|
16
16
|
"dist",
|
|
17
17
|
"wasm"
|
|
18
18
|
],
|
|
19
|
-
"scripts": {
|
|
20
|
-
"build:wasm": "cd ../wasm-sdk && wasm-pack build --target web --out-dir ../ts-sdk/wasm",
|
|
21
|
-
"build:wasm:release": "cd ../wasm-sdk && wasm-pack build --target web --release --out-dir ../ts-sdk/wasm",
|
|
22
|
-
"build:ts": "tsc",
|
|
23
|
-
"build": "pnpm run build:wasm && pnpm run build:ts",
|
|
24
|
-
"build:release": "pnpm run build:wasm:release && pnpm run build:ts",
|
|
25
|
-
"test": "vitest",
|
|
26
|
-
"clean": "rm -rf dist wasm",
|
|
27
|
-
"prepublishOnly": "pnpm run build:release",
|
|
28
|
-
"publish:npm": "pnpm run build:release && pnpm publish --access public",
|
|
29
|
-
"publish:npm:dry-run": "pnpm run build:release && pnpm publish --access public --dry-run"
|
|
30
|
-
},
|
|
31
19
|
"dependencies": {
|
|
32
20
|
"dexie": "^4.0.0"
|
|
33
21
|
},
|
|
@@ -49,10 +37,21 @@
|
|
|
49
37
|
"license": "MIT",
|
|
50
38
|
"repository": {
|
|
51
39
|
"type": "git",
|
|
52
|
-
"url": "https://github.com/lendasat/lendaswap.git",
|
|
53
|
-
"directory": "
|
|
40
|
+
"url": "https://github.com/lendasat/lendaswap-sdk.git",
|
|
41
|
+
"directory": "ts-sdk"
|
|
54
42
|
},
|
|
55
43
|
"publishConfig": {
|
|
56
44
|
"access": "public"
|
|
45
|
+
},
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build:wasm": "cd ../wasm-sdk && wasm-pack build --target web --out-dir ../ts-sdk/wasm",
|
|
48
|
+
"build:wasm:release": "cd ../wasm-sdk && wasm-pack build --target web --release --out-dir ../ts-sdk/wasm",
|
|
49
|
+
"build:ts": "tsc",
|
|
50
|
+
"build": "pnpm run build:wasm && pnpm run build:ts",
|
|
51
|
+
"build:release": "pnpm run build:wasm:release && pnpm run build:ts",
|
|
52
|
+
"test": "vitest",
|
|
53
|
+
"clean": "rm -rf dist wasm",
|
|
54
|
+
"publish:npm": "pnpm run build:release && pnpm publish --access public",
|
|
55
|
+
"publish:npm:dry-run": "pnpm run build:release && pnpm publish --access public --dry-run"
|
|
57
56
|
}
|
|
58
|
-
}
|
|
57
|
+
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IndexedDB-based storage provider.
|
|
3
|
-
*
|
|
4
|
-
* IndexedDB is more robust than localStorage for larger amounts of data
|
|
5
|
-
* and provides better async operations.
|
|
6
|
-
*/
|
|
7
|
-
import type { Storage } from "./index.js";
|
|
8
|
-
/**
|
|
9
|
-
* Storage provider using IndexedDB.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* const storage = new IndexedDBProvider();
|
|
14
|
-
* await storage.set('key', 'value');
|
|
15
|
-
* const value = await storage.get('key'); // 'value'
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export declare class IndexedDBProvider implements Storage {
|
|
19
|
-
private dbPromise;
|
|
20
|
-
/**
|
|
21
|
-
* Get or create the IndexedDB database.
|
|
22
|
-
*/
|
|
23
|
-
private getDB;
|
|
24
|
-
get(key: string): Promise<string | null>;
|
|
25
|
-
set(key: string, value: string): Promise<void>;
|
|
26
|
-
remove(key: string): Promise<void>;
|
|
27
|
-
has(key: string): Promise<boolean>;
|
|
28
|
-
clear(): Promise<void>;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=indexedDB.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexedDB.d.ts","sourceRoot":"","sources":["../../src/storage/indexedDB.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAO1C;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,YAAW,OAAO;IAC/C,OAAO,CAAC,SAAS,CAAqC;IAEtD;;OAEG;IACH,OAAO,CAAC,KAAK;IA6BP,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmBxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAgB7B"}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* IndexedDB-based storage provider.
|
|
3
|
-
*
|
|
4
|
-
* IndexedDB is more robust than localStorage for larger amounts of data
|
|
5
|
-
* and provides better async operations.
|
|
6
|
-
*/
|
|
7
|
-
// FIXME: TODO: this shouldn't be v1.2, in fact, we probably shouldn't be using this file at all
|
|
8
|
-
const DB_NAME = "lendaswap-v1.2";
|
|
9
|
-
const DB_VERSION = 1;
|
|
10
|
-
const STORE_NAME = "keyvalue";
|
|
11
|
-
/**
|
|
12
|
-
* Storage provider using IndexedDB.
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* const storage = new IndexedDBProvider();
|
|
17
|
-
* await storage.set('key', 'value');
|
|
18
|
-
* const value = await storage.get('key'); // 'value'
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
export class IndexedDBProvider {
|
|
22
|
-
dbPromise = null;
|
|
23
|
-
/**
|
|
24
|
-
* Get or create the IndexedDB database.
|
|
25
|
-
*/
|
|
26
|
-
getDB() {
|
|
27
|
-
if (this.dbPromise) {
|
|
28
|
-
return this.dbPromise;
|
|
29
|
-
}
|
|
30
|
-
this.dbPromise = new Promise((resolve, reject) => {
|
|
31
|
-
const request = indexedDB.open(DB_NAME, DB_VERSION);
|
|
32
|
-
request.onerror = () => {
|
|
33
|
-
reject(new Error(`Failed to open IndexedDB: ${request.error?.message}`));
|
|
34
|
-
};
|
|
35
|
-
request.onsuccess = () => {
|
|
36
|
-
resolve(request.result);
|
|
37
|
-
};
|
|
38
|
-
request.onupgradeneeded = (event) => {
|
|
39
|
-
const db = event.target.result;
|
|
40
|
-
if (!db.objectStoreNames.contains(STORE_NAME)) {
|
|
41
|
-
db.createObjectStore(STORE_NAME);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
});
|
|
45
|
-
return this.dbPromise;
|
|
46
|
-
}
|
|
47
|
-
async get(key) {
|
|
48
|
-
const db = await this.getDB();
|
|
49
|
-
return new Promise((resolve, reject) => {
|
|
50
|
-
const transaction = db.transaction(STORE_NAME, "readonly");
|
|
51
|
-
const store = transaction.objectStore(STORE_NAME);
|
|
52
|
-
const request = store.get(key);
|
|
53
|
-
request.onerror = () => {
|
|
54
|
-
reject(new Error(`Failed to get key "${key}": ${request.error?.message}`));
|
|
55
|
-
};
|
|
56
|
-
request.onsuccess = () => {
|
|
57
|
-
resolve(request.result ?? null);
|
|
58
|
-
};
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
async set(key, value) {
|
|
62
|
-
const db = await this.getDB();
|
|
63
|
-
return new Promise((resolve, reject) => {
|
|
64
|
-
const transaction = db.transaction(STORE_NAME, "readwrite");
|
|
65
|
-
const store = transaction.objectStore(STORE_NAME);
|
|
66
|
-
const request = store.put(value, key);
|
|
67
|
-
request.onerror = () => {
|
|
68
|
-
reject(new Error(`Failed to set key "${key}": ${request.error?.message}`));
|
|
69
|
-
};
|
|
70
|
-
request.onsuccess = () => {
|
|
71
|
-
resolve();
|
|
72
|
-
};
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
async remove(key) {
|
|
76
|
-
const db = await this.getDB();
|
|
77
|
-
return new Promise((resolve, reject) => {
|
|
78
|
-
const transaction = db.transaction(STORE_NAME, "readwrite");
|
|
79
|
-
const store = transaction.objectStore(STORE_NAME);
|
|
80
|
-
const request = store.delete(key);
|
|
81
|
-
request.onerror = () => {
|
|
82
|
-
reject(new Error(`Failed to remove key "${key}": ${request.error?.message}`));
|
|
83
|
-
};
|
|
84
|
-
request.onsuccess = () => {
|
|
85
|
-
resolve();
|
|
86
|
-
};
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
async has(key) {
|
|
90
|
-
const value = await this.get(key);
|
|
91
|
-
return value !== null;
|
|
92
|
-
}
|
|
93
|
-
async clear() {
|
|
94
|
-
const db = await this.getDB();
|
|
95
|
-
return new Promise((resolve, reject) => {
|
|
96
|
-
const transaction = db.transaction(STORE_NAME, "readwrite");
|
|
97
|
-
const store = transaction.objectStore(STORE_NAME);
|
|
98
|
-
const request = store.clear();
|
|
99
|
-
request.onerror = () => {
|
|
100
|
-
reject(new Error(`Failed to clear storage: ${request.error?.message}`));
|
|
101
|
-
};
|
|
102
|
-
request.onsuccess = () => {
|
|
103
|
-
resolve();
|
|
104
|
-
};
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=indexedDB.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"indexedDB.js","sourceRoot":"","sources":["../../src/storage/indexedDB.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* localStorage-based storage provider.
|
|
3
|
-
*
|
|
4
|
-
* This is the simplest storage option, suitable for most browser environments.
|
|
5
|
-
* Data persists across page refreshes and browser sessions.
|
|
6
|
-
*/
|
|
7
|
-
import type { Storage } from "./index.js";
|
|
8
|
-
/**
|
|
9
|
-
* Storage provider using browser localStorage.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* const storage = new LocalStorageProvider();
|
|
14
|
-
* await storage.set('key', 'value');
|
|
15
|
-
* const value = await storage.get('key'); // 'value'
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export declare class LocalStorageProvider implements Storage {
|
|
19
|
-
private prefix;
|
|
20
|
-
/**
|
|
21
|
-
* Create a new localStorage provider.
|
|
22
|
-
* @param prefix - Optional prefix for all keys (default: '')
|
|
23
|
-
*/
|
|
24
|
-
constructor(prefix?: string);
|
|
25
|
-
private getKey;
|
|
26
|
-
get(key: string): Promise<string | null>;
|
|
27
|
-
set(key: string, value: string): Promise<void>;
|
|
28
|
-
remove(key: string): Promise<void>;
|
|
29
|
-
has(key: string): Promise<boolean>;
|
|
30
|
-
clear(): Promise<void>;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=localStorage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"localStorage.d.ts","sourceRoot":"","sources":["../../src/storage/localStorage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,YAAW,OAAO;IAClD,OAAO,CAAC,MAAM,CAAS;IAEvB;;;OAGG;gBACS,MAAM,GAAE,MAAW;IAI/B,OAAO,CAAC,MAAM;IAIR,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAe7B"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* localStorage-based storage provider.
|
|
3
|
-
*
|
|
4
|
-
* This is the simplest storage option, suitable for most browser environments.
|
|
5
|
-
* Data persists across page refreshes and browser sessions.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Storage provider using browser localStorage.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```typescript
|
|
12
|
-
* const storage = new LocalStorageProvider();
|
|
13
|
-
* await storage.set('key', 'value');
|
|
14
|
-
* const value = await storage.get('key'); // 'value'
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
export class LocalStorageProvider {
|
|
18
|
-
prefix;
|
|
19
|
-
/**
|
|
20
|
-
* Create a new localStorage provider.
|
|
21
|
-
* @param prefix - Optional prefix for all keys (default: '')
|
|
22
|
-
*/
|
|
23
|
-
constructor(prefix = "") {
|
|
24
|
-
this.prefix = prefix;
|
|
25
|
-
}
|
|
26
|
-
getKey(key) {
|
|
27
|
-
return this.prefix + key;
|
|
28
|
-
}
|
|
29
|
-
async get(key) {
|
|
30
|
-
return localStorage.getItem(this.getKey(key));
|
|
31
|
-
}
|
|
32
|
-
async set(key, value) {
|
|
33
|
-
localStorage.setItem(this.getKey(key), value);
|
|
34
|
-
}
|
|
35
|
-
async remove(key) {
|
|
36
|
-
localStorage.removeItem(this.getKey(key));
|
|
37
|
-
}
|
|
38
|
-
async has(key) {
|
|
39
|
-
return localStorage.getItem(this.getKey(key)) !== null;
|
|
40
|
-
}
|
|
41
|
-
async clear() {
|
|
42
|
-
if (this.prefix) {
|
|
43
|
-
// Only clear keys with our prefix
|
|
44
|
-
const keysToRemove = [];
|
|
45
|
-
for (let i = 0; i < localStorage.length; i++) {
|
|
46
|
-
const key = localStorage.key(i);
|
|
47
|
-
if (key && key.startsWith(this.prefix)) {
|
|
48
|
-
keysToRemove.push(key);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
keysToRemove.forEach((key) => localStorage.removeItem(key));
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
localStorage.clear();
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=localStorage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"localStorage.js","sourceRoot":"","sources":["../../src/storage/localStorage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;GASG;AACH,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAAS;IAEvB;;;OAGG;IACH,YAAY,SAAiB,EAAE;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,MAAM,CAAC,GAAW;QACxB,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa;QAClC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,kCAAkC;YAClC,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;CACF"}
|
package/dist/storage/memory.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* In-memory storage provider.
|
|
3
|
-
*
|
|
4
|
-
* This is useful for testing or environments where persistent storage
|
|
5
|
-
* is not available. Data is lost when the page is refreshed.
|
|
6
|
-
*/
|
|
7
|
-
import type { Storage } from "./index.js";
|
|
8
|
-
/**
|
|
9
|
-
* In-memory storage provider for testing.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* const storage = new MemoryStorageProvider();
|
|
14
|
-
* await storage.set('key', 'value');
|
|
15
|
-
* const value = await storage.get('key'); // 'value'
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export declare class MemoryStorageProvider implements Storage {
|
|
19
|
-
private data;
|
|
20
|
-
constructor();
|
|
21
|
-
get(key: string): Promise<string | null>;
|
|
22
|
-
set(key: string, value: string): Promise<void>;
|
|
23
|
-
remove(key: string): Promise<void>;
|
|
24
|
-
has(key: string): Promise<boolean>;
|
|
25
|
-
clear(): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* Get all keys in storage (for debugging).
|
|
28
|
-
*/
|
|
29
|
-
keys(): string[];
|
|
30
|
-
/**
|
|
31
|
-
* Get the number of items in storage.
|
|
32
|
-
*/
|
|
33
|
-
get size(): number;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/storage/memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;GASG;AACH,qBAAa,qBAAsB,YAAW,OAAO;IACnD,OAAO,CAAC,IAAI,CAAsB;;IAM5B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACH,IAAI,IAAI,MAAM,EAAE;IAIhB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
|
package/dist/storage/memory.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* In-memory storage provider.
|
|
3
|
-
*
|
|
4
|
-
* This is useful for testing or environments where persistent storage
|
|
5
|
-
* is not available. Data is lost when the page is refreshed.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* In-memory storage provider for testing.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```typescript
|
|
12
|
-
* const storage = new MemoryStorageProvider();
|
|
13
|
-
* await storage.set('key', 'value');
|
|
14
|
-
* const value = await storage.get('key'); // 'value'
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
export class MemoryStorageProvider {
|
|
18
|
-
data;
|
|
19
|
-
constructor() {
|
|
20
|
-
this.data = new Map();
|
|
21
|
-
}
|
|
22
|
-
async get(key) {
|
|
23
|
-
return this.data.get(key) ?? null;
|
|
24
|
-
}
|
|
25
|
-
async set(key, value) {
|
|
26
|
-
this.data.set(key, value);
|
|
27
|
-
}
|
|
28
|
-
async remove(key) {
|
|
29
|
-
this.data.delete(key);
|
|
30
|
-
}
|
|
31
|
-
async has(key) {
|
|
32
|
-
return this.data.has(key);
|
|
33
|
-
}
|
|
34
|
-
async clear() {
|
|
35
|
-
this.data.clear();
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Get all keys in storage (for debugging).
|
|
39
|
-
*/
|
|
40
|
-
keys() {
|
|
41
|
-
return Array.from(this.data.keys());
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Get the number of items in storage.
|
|
45
|
-
*/
|
|
46
|
-
get size() {
|
|
47
|
-
return this.data.size;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=memory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/storage/memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;GASG;AACH,MAAM,OAAO,qBAAqB;IACxB,IAAI,CAAsB;IAElC;QACE,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa;QAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxB,CAAC;CACF"}
|
package/dist/wallet.d.ts
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* High-level Wallet class wrapping the WASM SDK.
|
|
3
|
-
*
|
|
4
|
-
* This is the main entry point for using the Lendaswap Client SDK.
|
|
5
|
-
*/
|
|
6
|
-
import type { WalletStorageProvider } from "./api.js";
|
|
7
|
-
import type { Network, SwapParams } from "./types.js";
|
|
8
|
-
/**
|
|
9
|
-
* Initialize the WASM module.
|
|
10
|
-
*
|
|
11
|
-
* This is called automatically when creating a Wallet, but can be called
|
|
12
|
-
* explicitly for eager initialization.
|
|
13
|
-
*
|
|
14
|
-
* @param wasmPath - Optional path to the WASM file (for Node.js environments)
|
|
15
|
-
*/
|
|
16
|
-
export declare function initWasm(wasmPath?: string): Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* High-level Wallet class for the Lendaswap Client SDK.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* import { Wallet, type WalletStorageProvider } from '@lendaswap/sdk';
|
|
23
|
-
*
|
|
24
|
-
* // Create a wallet storage provider using localStorage
|
|
25
|
-
* const walletStorage: WalletStorageProvider = {
|
|
26
|
-
* getMnemonic: async () => localStorage.getItem('mnemonic'),
|
|
27
|
-
* setMnemonic: async (mnemonic) => localStorage.setItem('mnemonic', mnemonic),
|
|
28
|
-
* getKeyIndex: async () => parseInt(localStorage.getItem('key_index') ?? '0'),
|
|
29
|
-
* setKeyIndex: async (index) => localStorage.setItem('key_index', index.toString()),
|
|
30
|
-
* };
|
|
31
|
-
* const wallet = await Wallet.create(walletStorage, 'bitcoin');
|
|
32
|
-
*
|
|
33
|
-
* // Generate or get existing mnemonic
|
|
34
|
-
* const mnemonic = await wallet.generateOrGetMnemonic();
|
|
35
|
-
*
|
|
36
|
-
* // Derive swap parameters
|
|
37
|
-
* const params = await wallet.deriveSwapParams();
|
|
38
|
-
* console.log(params.preimageHash);
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
export declare class Wallet {
|
|
42
|
-
private wasmWallet;
|
|
43
|
-
private storage;
|
|
44
|
-
private network;
|
|
45
|
-
private constructor();
|
|
46
|
-
/**
|
|
47
|
-
* Create a new Wallet instance.
|
|
48
|
-
*
|
|
49
|
-
* @param storage - Wallet storage provider for persisting mnemonic and key index
|
|
50
|
-
* @param network - Bitcoin network ('bitcoin', 'testnet', 'regtest', 'mutinynet')
|
|
51
|
-
* @param wasmPath - Optional path to the WASM file (for Node.js environments)
|
|
52
|
-
* @returns A new Wallet instance
|
|
53
|
-
*/
|
|
54
|
-
static create(storage: WalletStorageProvider, network: Network, wasmPath?: string): Promise<Wallet>;
|
|
55
|
-
/**
|
|
56
|
-
* Get the network this wallet is configured for.
|
|
57
|
-
*/
|
|
58
|
-
getNetwork(): Network;
|
|
59
|
-
/**
|
|
60
|
-
* Get the underlying storage provider.
|
|
61
|
-
*/
|
|
62
|
-
getStorage(): WalletStorageProvider;
|
|
63
|
-
/**
|
|
64
|
-
* Generate a new mnemonic or return existing one.
|
|
65
|
-
*
|
|
66
|
-
* If a mnemonic already exists in storage, it is returned.
|
|
67
|
-
* Otherwise, a new 12-word mnemonic is generated and stored.
|
|
68
|
-
*
|
|
69
|
-
* @returns The mnemonic phrase
|
|
70
|
-
*/
|
|
71
|
-
generateOrGetMnemonic(): Promise<string>;
|
|
72
|
-
/**
|
|
73
|
-
* Get the stored mnemonic (for backup display).
|
|
74
|
-
*
|
|
75
|
-
* @returns The mnemonic phrase, or null if not generated
|
|
76
|
-
*/
|
|
77
|
-
getMnemonic(): Promise<string | null>;
|
|
78
|
-
/**
|
|
79
|
-
* Import a mnemonic phrase (replaces existing).
|
|
80
|
-
*
|
|
81
|
-
* @param phrase - The mnemonic phrase to import
|
|
82
|
-
*/
|
|
83
|
-
importMnemonic(phrase: string): Promise<void>;
|
|
84
|
-
/**
|
|
85
|
-
* Derive swap parameters for a new swap.
|
|
86
|
-
*
|
|
87
|
-
* This automatically increments the key derivation index.
|
|
88
|
-
*
|
|
89
|
-
* @returns The derived swap parameters
|
|
90
|
-
*/
|
|
91
|
-
deriveSwapParams(): Promise<SwapParams>;
|
|
92
|
-
/**
|
|
93
|
-
* Derive swap parameters at a specific index (for recovery).
|
|
94
|
-
*
|
|
95
|
-
* This does not modify the stored key index.
|
|
96
|
-
*
|
|
97
|
-
* @param index - The derivation index to use
|
|
98
|
-
* @returns The derived swap parameters
|
|
99
|
-
*/
|
|
100
|
-
deriveSwapParamsAtIndex(index: number): Promise<SwapParams>;
|
|
101
|
-
/**
|
|
102
|
-
* Get the user ID Xpub for wallet recovery.
|
|
103
|
-
*
|
|
104
|
-
* @returns The extended public key, or null if no mnemonic
|
|
105
|
-
*/
|
|
106
|
-
getUserIdXpub(): Promise<string | null>;
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=wallet.d.ts.map
|
package/dist/wallet.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKtD;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C/D;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO;IAUP;;;;;;;OAOG;WACU,MAAM,CACjB,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC;IAelB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,qBAAqB;IAInC;;;;;;;OAOG;IACG,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9C;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK3C;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD;;;;;;OAMG;IACG,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;IAY7C;;;;;;;OAOG;IACG,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAYjE;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAI9C"}
|