@kaleidorg/wallet-engine 1.0.0-beta.12 → 1.0.0-beta.14
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 +13 -5
- package/dist/adapters/RgbAdapter.d.ts.map +1 -1
- package/dist/adapters/RgbAdapter.js +45 -45
- package/dist/adapters/RgbAdapter.js.map +1 -1
- package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts +3 -11
- package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts.map +1 -1
- package/dist/adapters/wdk/ArkadeWdkAdapter.js +22 -36
- package/dist/adapters/wdk/ArkadeWdkAdapter.js.map +1 -1
- package/dist/adapters/wdk/BaseWdkAdapter.d.ts +40 -0
- package/dist/adapters/wdk/BaseWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/BaseWdkAdapter.js +71 -0
- package/dist/adapters/wdk/BaseWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/LiquidWdkAdapter.d.ts +2 -9
- package/dist/adapters/wdk/LiquidWdkAdapter.d.ts.map +1 -1
- package/dist/adapters/wdk/LiquidWdkAdapter.js +5 -27
- package/dist/adapters/wdk/LiquidWdkAdapter.js.map +1 -1
- package/dist/adapters/wdk/RgbCore.d.ts +55 -0
- package/dist/adapters/wdk/RgbCore.d.ts.map +1 -0
- package/dist/adapters/wdk/RgbCore.js +93 -0
- package/dist/adapters/wdk/RgbCore.js.map +1 -0
- package/dist/adapters/wdk/RgbLibWasmAdapter.d.ts +129 -0
- package/dist/adapters/wdk/RgbLibWasmAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/RgbLibWasmAdapter.js +308 -0
- package/dist/adapters/wdk/RgbLibWasmAdapter.js.map +1 -0
- package/dist/adapters/wdk/RgbLibWdkAdapter.d.ts +104 -0
- package/dist/adapters/wdk/RgbLibWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/RgbLibWdkAdapter.js +249 -0
- package/dist/adapters/wdk/RgbLibWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/RlnWdkAdapter.d.ts +4 -12
- package/dist/adapters/wdk/RlnWdkAdapter.d.ts.map +1 -1
- package/dist/adapters/wdk/RlnWdkAdapter.js +55 -86
- package/dist/adapters/wdk/RlnWdkAdapter.js.map +1 -1
- package/dist/adapters/wdk/SparkWdkAdapter.d.ts +2 -10
- package/dist/adapters/wdk/SparkWdkAdapter.d.ts.map +1 -1
- package/dist/adapters/wdk/SparkWdkAdapter.js +3 -29
- package/dist/adapters/wdk/SparkWdkAdapter.js.map +1 -1
- package/dist/adapters/wdk/index.d.ts +2 -0
- package/dist/adapters/wdk/index.d.ts.map +1 -1
- package/dist/adapters/wdk/index.js +2 -0
- package/dist/adapters/wdk/index.js.map +1 -1
- package/dist/capabilities/index.d.ts.map +1 -1
- package/dist/capabilities/index.js +17 -2
- package/dist/capabilities/index.js.map +1 -1
- package/dist/capabilities/operations.d.ts.map +1 -1
- package/dist/capabilities/operations.js +8 -1
- package/dist/capabilities/operations.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/manager/ProtocolManager.d.ts +1 -1
- package/dist/manager/ProtocolManager.d.ts.map +1 -1
- package/dist/manager/ProtocolManager.js +16 -16
- package/dist/manager/ProtocolManager.js.map +1 -1
- package/dist/receive/unifiedReceive.d.ts +12 -0
- package/dist/receive/unifiedReceive.d.ts.map +1 -1
- package/dist/receive/unifiedReceive.js +35 -4
- package/dist/receive/unifiedReceive.js.map +1 -1
- package/dist/registry/createWdkRegistry.d.ts +8 -0
- package/dist/registry/createWdkRegistry.d.ts.map +1 -1
- package/dist/registry/createWdkRegistry.js +9 -2
- package/dist/registry/createWdkRegistry.js.map +1 -1
- package/dist/router/destination.d.ts +1 -1
- package/dist/router/destination.d.ts.map +1 -1
- package/dist/router/destination.js +29 -11
- package/dist/router/destination.js.map +1 -1
- package/dist/router/index.d.ts +36 -0
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +111 -2
- package/dist/router/index.js.map +1 -1
- package/dist/router/preference.d.ts +53 -0
- package/dist/router/preference.d.ts.map +1 -0
- package/dist/router/preference.js +81 -0
- package/dist/router/preference.js.map +1 -0
- package/dist/swap/KaleidoswapSwap.d.ts.map +1 -1
- package/dist/swap/KaleidoswapSwap.js +35 -18
- package/dist/swap/KaleidoswapSwap.js.map +1 -1
- package/dist/types/base.d.ts +1 -1
- package/dist/types/base.d.ts.map +1 -1
- package/dist/types/base.js.map +1 -1
- package/dist/types/rgb.d.ts +1 -1
- package/dist/types/rgb.d.ts.map +1 -1
- package/dist/utils.js +2 -2
- package/dist/utils.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RgbLibWasmAdapter
|
|
3
|
+
* -----------------
|
|
4
|
+
* RGB-L1 (on-chain) backed by the BROWSER/WASM rgb-lib build
|
|
5
|
+
* (`@utexo/rgb-lib-wasm`) instead of the native addon used by
|
|
6
|
+
* `RgbLibWdkAdapter`. Same protocol surface (BTC on-chain + RGB assets on-chain,
|
|
7
|
+
* NO Lightning/channels/swaps), same `RgbCore` translation — only the backing
|
|
8
|
+
* differs, so the two cannot drift on asset/balance shape.
|
|
9
|
+
*
|
|
10
|
+
* Why a separate adapter: the native `@utexo/wdk-wallet-rgb` needs a filesystem
|
|
11
|
+
* `dataDir` + a Node/Bare runtime and cannot load in a browser / MV3 service
|
|
12
|
+
* worker. The wasm build is a wasm-bindgen `--target web` module that persists to
|
|
13
|
+
* IndexedDB and uses only fetch / crypto / WebAssembly — so it runs node-less in
|
|
14
|
+
* the extension (and on mobile). It is the path that makes self-custodial RGB-L1
|
|
15
|
+
* possible without an rgb-lightning-node.
|
|
16
|
+
*
|
|
17
|
+
* Runtime-agnostic: the host injects an ALREADY-wasm-initialized module via
|
|
18
|
+
* `registerWdkModule('@utexo/rgb-lib-wasm', () => initializedModule)`. The host
|
|
19
|
+
* owns where the 13 MB `_bg.wasm` comes from (`chrome.runtime.getURL(...)` in the
|
|
20
|
+
* extension; a bundled asset on mobile) and must have awaited the default
|
|
21
|
+
* `init(...)` export before injecting. This adapter never touches `fetch`/URLs.
|
|
22
|
+
*
|
|
23
|
+
* Discipline: no rgb-lib/wasm types cross the contract — the module + wallet are
|
|
24
|
+
* read as `any` and translated. Field names are read defensively and should be
|
|
25
|
+
* smoke-tested on-device (validated offline: keys, wallet, address, listAssets).
|
|
26
|
+
*
|
|
27
|
+
* WasmWallet API used (from @utexo/rgb-lib-wasm@1.0.0-beta.2):
|
|
28
|
+
* static create(walletDataJson) → WasmWallet (IndexedDB-restoring)
|
|
29
|
+
* goOnline(skipConsistencyCheck, indexerUrl) → online
|
|
30
|
+
* getAddress() · getBtcBalance() · getAssetBalance(id) · listAssets(schemas[])
|
|
31
|
+
* blindReceive(assetId|null, assignment, duration|null, transportEndpoints, minConf)
|
|
32
|
+
* sendBegin(online, recipientMap, donation, feeRate, minConf) · signPsbt(psbt)
|
|
33
|
+
* · sendEnd(online, signedPsbt, skipSync)
|
|
34
|
+
* sendBtcBegin/sendBtcEnd · createUtxosBegin/createUtxosEnd · refresh · sync
|
|
35
|
+
* listTransactions() · listTransfers(assetId?)
|
|
36
|
+
* Top-level: init() (panic/log hook) · restoreKeys(network, mnemonic) → keys.
|
|
37
|
+
*/
|
|
38
|
+
import { IProtocolAdapter, BaseProtocolConfig } from '../IProtocolAdapter.js';
|
|
39
|
+
import { ProtocolType, Layer, UnifiedAsset, UnifiedTransaction, InvoiceRequest, Invoice, DecodedInvoice, PaymentRequest, PaymentResult, PaymentStatus, Address, ConnectionInfo, TransactionFilter, NodeInfo } from '../../types/base.js';
|
|
40
|
+
import { BaseWdkAdapter } from './BaseWdkAdapter.js';
|
|
41
|
+
export interface RgbLibWasmAdapterConfig extends BaseProtocolConfig {
|
|
42
|
+
protocol: 'RGB_L1';
|
|
43
|
+
/** BIP-39 mnemonic for this wallet. */
|
|
44
|
+
mnemonic: string;
|
|
45
|
+
/** RGB indexer (electrum/esplora) URL — required to go online. */
|
|
46
|
+
indexerUrl: string;
|
|
47
|
+
/**
|
|
48
|
+
* RGB proxy / transport endpoints used when generating blinded receive
|
|
49
|
+
* invoices. Optional; rgb-lib uses its defaults when omitted.
|
|
50
|
+
*/
|
|
51
|
+
transportEndpoints?: string[];
|
|
52
|
+
/**
|
|
53
|
+
* Namespace key for this wallet's IndexedDB store (rgb-lib's `dataDir`). Lets
|
|
54
|
+
* multiple wallets/networks coexist; defaults to a network-scoped name.
|
|
55
|
+
*/
|
|
56
|
+
dataDir?: string;
|
|
57
|
+
/** Max allocations per UTXO (rgb-lib tuning). Defaults to 5. */
|
|
58
|
+
maxAllocationsPerUtxo?: number;
|
|
59
|
+
}
|
|
60
|
+
export declare class RgbLibWasmAdapter extends BaseWdkAdapter implements IProtocolAdapter {
|
|
61
|
+
readonly protocolName: ProtocolType;
|
|
62
|
+
readonly capabilities: readonly import("../../index.js").ProtocolCapability[];
|
|
63
|
+
readonly supportedLayers: Layer[];
|
|
64
|
+
readonly version = "0.1.0-wasm";
|
|
65
|
+
/** The rgb-lib `online` handle returned by goOnline(); required by network ops. */
|
|
66
|
+
private online;
|
|
67
|
+
private transportEndpoints;
|
|
68
|
+
connect(config: BaseProtocolConfig): Promise<void>;
|
|
69
|
+
getConnectionInfo(): Promise<ConnectionInfo>;
|
|
70
|
+
getReceiveAddress(assetId?: string): Promise<Address>;
|
|
71
|
+
getBtcBalance(): Promise<{
|
|
72
|
+
confirmed: number;
|
|
73
|
+
unconfirmed: number;
|
|
74
|
+
total: number;
|
|
75
|
+
}>;
|
|
76
|
+
refreshBalances(): Promise<void>;
|
|
77
|
+
listAssets(): Promise<UnifiedAsset[]>;
|
|
78
|
+
getAssetBalance(assetId: string): Promise<UnifiedAsset['balance']>;
|
|
79
|
+
getAsset(assetId: string): Promise<UnifiedAsset>;
|
|
80
|
+
createInvoice(request: InvoiceRequest): Promise<Invoice>;
|
|
81
|
+
decodeInvoice(_invoice: string): Promise<DecodedInvoice>;
|
|
82
|
+
sendPayment(_request: PaymentRequest): Promise<PaymentResult>;
|
|
83
|
+
getPaymentStatus(_paymentHash: string): Promise<PaymentStatus>;
|
|
84
|
+
listTransactions(_filter?: TransactionFilter): Promise<UnifiedTransaction[]>;
|
|
85
|
+
getTransaction(txId: string): Promise<UnifiedTransaction>;
|
|
86
|
+
getNodeInfo(): Promise<NodeInfo>;
|
|
87
|
+
listChannels(): Promise<unknown[]>;
|
|
88
|
+
listPayments(): Promise<unknown>;
|
|
89
|
+
listTransfers(options?: {
|
|
90
|
+
asset_id?: string;
|
|
91
|
+
}): Promise<unknown>;
|
|
92
|
+
createRgbInvoice(params: {
|
|
93
|
+
assetId?: string;
|
|
94
|
+
amount?: number;
|
|
95
|
+
durationSeconds?: number;
|
|
96
|
+
minConfirmations?: number;
|
|
97
|
+
}): Promise<any>;
|
|
98
|
+
/** Generate a blinded receive invoice (RGB UTXO-based receive). */
|
|
99
|
+
private blindReceive;
|
|
100
|
+
signPsbt(psbtHex: string): Promise<{
|
|
101
|
+
psbt: string;
|
|
102
|
+
unchanged: boolean;
|
|
103
|
+
}>;
|
|
104
|
+
createRgbUtxos(params: {
|
|
105
|
+
num?: number;
|
|
106
|
+
size?: number;
|
|
107
|
+
feeRate?: number;
|
|
108
|
+
upTo?: boolean;
|
|
109
|
+
}): Promise<{
|
|
110
|
+
success: boolean;
|
|
111
|
+
}>;
|
|
112
|
+
sendAsset(params: {
|
|
113
|
+
token: string;
|
|
114
|
+
recipient: string;
|
|
115
|
+
amount: number;
|
|
116
|
+
feeRate?: number;
|
|
117
|
+
minConfirmations?: number;
|
|
118
|
+
donation?: boolean;
|
|
119
|
+
}): Promise<any>;
|
|
120
|
+
sendBtcOnchain(params: {
|
|
121
|
+
address: string;
|
|
122
|
+
amount: number;
|
|
123
|
+
feeRate?: number;
|
|
124
|
+
}): Promise<any>;
|
|
125
|
+
/** Encrypted wallet backup bytes (rgb-lib's own format). */
|
|
126
|
+
backup(password: string): Promise<Uint8Array>;
|
|
127
|
+
disconnect(): Promise<void>;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=RgbLibWasmAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RgbLibWasmAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wdk/RgbLibWasmAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RgbLibWasmAdapter
|
|
3
|
+
* -----------------
|
|
4
|
+
* RGB-L1 (on-chain) backed by the BROWSER/WASM rgb-lib build
|
|
5
|
+
* (`@utexo/rgb-lib-wasm`) instead of the native addon used by
|
|
6
|
+
* `RgbLibWdkAdapter`. Same protocol surface (BTC on-chain + RGB assets on-chain,
|
|
7
|
+
* NO Lightning/channels/swaps), same `RgbCore` translation — only the backing
|
|
8
|
+
* differs, so the two cannot drift on asset/balance shape.
|
|
9
|
+
*
|
|
10
|
+
* Why a separate adapter: the native `@utexo/wdk-wallet-rgb` needs a filesystem
|
|
11
|
+
* `dataDir` + a Node/Bare runtime and cannot load in a browser / MV3 service
|
|
12
|
+
* worker. The wasm build is a wasm-bindgen `--target web` module that persists to
|
|
13
|
+
* IndexedDB and uses only fetch / crypto / WebAssembly — so it runs node-less in
|
|
14
|
+
* the extension (and on mobile). It is the path that makes self-custodial RGB-L1
|
|
15
|
+
* possible without an rgb-lightning-node.
|
|
16
|
+
*
|
|
17
|
+
* Runtime-agnostic: the host injects an ALREADY-wasm-initialized module via
|
|
18
|
+
* `registerWdkModule('@utexo/rgb-lib-wasm', () => initializedModule)`. The host
|
|
19
|
+
* owns where the 13 MB `_bg.wasm` comes from (`chrome.runtime.getURL(...)` in the
|
|
20
|
+
* extension; a bundled asset on mobile) and must have awaited the default
|
|
21
|
+
* `init(...)` export before injecting. This adapter never touches `fetch`/URLs.
|
|
22
|
+
*
|
|
23
|
+
* Discipline: no rgb-lib/wasm types cross the contract — the module + wallet are
|
|
24
|
+
* read as `any` and translated. Field names are read defensively and should be
|
|
25
|
+
* smoke-tested on-device (validated offline: keys, wallet, address, listAssets).
|
|
26
|
+
*
|
|
27
|
+
* WasmWallet API used (from @utexo/rgb-lib-wasm@1.0.0-beta.2):
|
|
28
|
+
* static create(walletDataJson) → WasmWallet (IndexedDB-restoring)
|
|
29
|
+
* goOnline(skipConsistencyCheck, indexerUrl) → online
|
|
30
|
+
* getAddress() · getBtcBalance() · getAssetBalance(id) · listAssets(schemas[])
|
|
31
|
+
* blindReceive(assetId|null, assignment, duration|null, transportEndpoints, minConf)
|
|
32
|
+
* sendBegin(online, recipientMap, donation, feeRate, minConf) · signPsbt(psbt)
|
|
33
|
+
* · sendEnd(online, signedPsbt, skipSync)
|
|
34
|
+
* sendBtcBegin/sendBtcEnd · createUtxosBegin/createUtxosEnd · refresh · sync
|
|
35
|
+
* listTransactions() · listTransfers(assetId?)
|
|
36
|
+
* Top-level: init() (panic/log hook) · restoreKeys(network, mnemonic) → keys.
|
|
37
|
+
*/
|
|
38
|
+
import { ProtocolError, } from '../../types/base.js';
|
|
39
|
+
import { getCapabilities } from '../../capabilities/index.js';
|
|
40
|
+
import { PROTOCOL_OPERATIONS } from '../../capabilities/operations.js';
|
|
41
|
+
import { loadWdkModule } from './moduleLoader.js';
|
|
42
|
+
import { rgbBtcAsset, rgbNiaAsset, rgbAssetBalance, RGB_L1_PROFILE } from './RgbCore.js';
|
|
43
|
+
import { BaseWdkAdapter } from './BaseWdkAdapter.js';
|
|
44
|
+
/** Map the engine network string → rgb-lib's network enum casing. */
|
|
45
|
+
function toRgbNetwork(network) {
|
|
46
|
+
switch (network.toLowerCase()) {
|
|
47
|
+
case 'mainnet':
|
|
48
|
+
case 'bitcoin':
|
|
49
|
+
return 'Mainnet';
|
|
50
|
+
case 'testnet':
|
|
51
|
+
return 'Testnet';
|
|
52
|
+
case 'signet':
|
|
53
|
+
return 'Signet';
|
|
54
|
+
case 'regtest':
|
|
55
|
+
return 'Regtest';
|
|
56
|
+
default:
|
|
57
|
+
return 'Mainnet';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export class RgbLibWasmAdapter extends BaseWdkAdapter {
|
|
61
|
+
constructor() {
|
|
62
|
+
super(...arguments);
|
|
63
|
+
this.protocolName = 'RGB_L1';
|
|
64
|
+
this.capabilities = PROTOCOL_OPERATIONS.RGB_L1;
|
|
65
|
+
this.supportedLayers = getCapabilities('RGB_L1').layers;
|
|
66
|
+
this.version = '0.1.0-wasm';
|
|
67
|
+
/** The rgb-lib `online` handle returned by goOnline(); required by network ops. */
|
|
68
|
+
this.online = null;
|
|
69
|
+
this.transportEndpoints = [];
|
|
70
|
+
}
|
|
71
|
+
// --- Connection ---------------------------------------------------------
|
|
72
|
+
async connect(config) {
|
|
73
|
+
const cfg = config;
|
|
74
|
+
if (!cfg.mnemonic)
|
|
75
|
+
throw new ProtocolError('RgbLibWasmAdapter requires a mnemonic', 'RGB_L1', 'CONFIG');
|
|
76
|
+
if (!cfg.indexerUrl)
|
|
77
|
+
throw new ProtocolError('RgbLibWasmAdapter requires an indexerUrl', 'RGB_L1', 'CONFIG');
|
|
78
|
+
this.network = cfg.network ?? 'mainnet';
|
|
79
|
+
this.transportEndpoints = cfg.transportEndpoints ?? [];
|
|
80
|
+
const rgbNetwork = toRgbNetwork(this.network);
|
|
81
|
+
// The host injects an already-wasm-initialized module; the inline import is
|
|
82
|
+
// the Node/Vite fallback. `init()` is rgb-lib's panic/log hook (idempotent).
|
|
83
|
+
// @ts-ignore — declared as an optional dep; resolved at runtime.
|
|
84
|
+
const mod = await loadWdkModule('@utexo/rgb-lib-wasm', () => import('@utexo/rgb-lib-wasm'));
|
|
85
|
+
try {
|
|
86
|
+
mod.init?.();
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
/* already initialized */
|
|
90
|
+
}
|
|
91
|
+
const keys = mod.restoreKeys(rgbNetwork, cfg.mnemonic);
|
|
92
|
+
const walletData = {
|
|
93
|
+
dataDir: cfg.dataDir ?? `rgb-l1-${this.network}`,
|
|
94
|
+
bitcoinNetwork: rgbNetwork,
|
|
95
|
+
databaseType: 'Sqlite', // the enum value the wasm build accepts; IndexedDB is the actual backing
|
|
96
|
+
maxAllocationsPerUtxo: cfg.maxAllocationsPerUtxo ?? 5,
|
|
97
|
+
mnemonic: keys.mnemonic ?? cfg.mnemonic,
|
|
98
|
+
masterFingerprint: keys.masterFingerprint ?? keys.master_fingerprint,
|
|
99
|
+
accountXpubVanilla: keys.accountXpubVanilla ?? keys.account_xpub_vanilla,
|
|
100
|
+
accountXpubColored: keys.accountXpubColored ?? keys.account_xpub_colored,
|
|
101
|
+
vanillaKeychain: null,
|
|
102
|
+
supportedSchemas: ['Nia', 'Ifa'],
|
|
103
|
+
};
|
|
104
|
+
const WasmWallet = mod.WasmWallet;
|
|
105
|
+
this.account = WasmWallet.create
|
|
106
|
+
? await WasmWallet.create(JSON.stringify(walletData))
|
|
107
|
+
: new WasmWallet(JSON.stringify(walletData));
|
|
108
|
+
this.online = await this.account.goOnline(false, cfg.indexerUrl);
|
|
109
|
+
this.connected = true;
|
|
110
|
+
}
|
|
111
|
+
async getConnectionInfo() {
|
|
112
|
+
this.assertConnected();
|
|
113
|
+
return { protocol: 'RGB_L1', connected: this.connected, network: this.network };
|
|
114
|
+
}
|
|
115
|
+
// --- Address / receive --------------------------------------------------
|
|
116
|
+
async getReceiveAddress(assetId) {
|
|
117
|
+
this.assertConnected();
|
|
118
|
+
if (assetId) {
|
|
119
|
+
const inv = await this.blindReceive(assetId);
|
|
120
|
+
return { address: inv?.invoice ?? inv?.recipient_id ?? '', format: 'RGB_INVOICE', asset: assetId };
|
|
121
|
+
}
|
|
122
|
+
const address = this.account.getAddress();
|
|
123
|
+
return { address, format: 'BTC_ADDRESS' };
|
|
124
|
+
}
|
|
125
|
+
// --- Balance ------------------------------------------------------------
|
|
126
|
+
async getBtcBalance() {
|
|
127
|
+
this.assertConnected();
|
|
128
|
+
const v = this.account.getBtcBalance() ?? {};
|
|
129
|
+
const vanilla = v.vanilla ?? v;
|
|
130
|
+
const settled = Number(vanilla.settled ?? 0);
|
|
131
|
+
const spendable = Number(vanilla.spendable ?? settled);
|
|
132
|
+
const future = Number(vanilla.future ?? spendable);
|
|
133
|
+
return { confirmed: settled, unconfirmed: Math.max(0, future - settled), total: spendable };
|
|
134
|
+
}
|
|
135
|
+
async refreshBalances() {
|
|
136
|
+
this.assertConnected();
|
|
137
|
+
try {
|
|
138
|
+
await this.account.refresh(this.online, null, [], false);
|
|
139
|
+
await this.account.sync(this.online);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
/* best-effort */
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async listAssets() {
|
|
146
|
+
this.assertConnected();
|
|
147
|
+
const { total } = await this.getBtcBalance();
|
|
148
|
+
const out = [rgbBtcAsset(total, RGB_L1_PROFILE)];
|
|
149
|
+
const res = this.account.listAssets([]);
|
|
150
|
+
const assets = Array.isArray(res) ? res : [...(res?.nia ?? []), ...(res?.ifa ?? [])];
|
|
151
|
+
for (const a of assets)
|
|
152
|
+
out.push(rgbNiaAsset(normalizeAsset(a), RGB_L1_PROFILE));
|
|
153
|
+
return out;
|
|
154
|
+
}
|
|
155
|
+
async getAssetBalance(assetId) {
|
|
156
|
+
this.assertConnected();
|
|
157
|
+
try {
|
|
158
|
+
const raw = this.account.getAssetBalance(assetId);
|
|
159
|
+
return rgbAssetBalance(raw);
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
const a = (await this.listAssets()).find((x) => x.id === assetId);
|
|
163
|
+
return a?.balance ?? rgbAssetBalance({});
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
async getAsset(assetId) {
|
|
167
|
+
const found = (await this.listAssets()).find((a) => a.id === assetId);
|
|
168
|
+
if (!found)
|
|
169
|
+
throw new ProtocolError(`Unknown asset ${assetId}`, 'RGB_L1', 'NO_ASSET');
|
|
170
|
+
return found;
|
|
171
|
+
}
|
|
172
|
+
// --- Invoices -----------------------------------------------------------
|
|
173
|
+
async createInvoice(request) {
|
|
174
|
+
this.assertConnected();
|
|
175
|
+
if (!request.asset || request.asset === 'BTC') {
|
|
176
|
+
throw new ProtocolError('RGB-L1 has no Lightning invoices; use getReceiveAddress for BTC', 'RGB_L1', 'NOT_SUPPORTED');
|
|
177
|
+
}
|
|
178
|
+
const inv = await this.blindReceive(request.asset, request.assetAmount, request.expirySeconds);
|
|
179
|
+
return {
|
|
180
|
+
invoice: inv?.invoice ?? '',
|
|
181
|
+
paymentHash: inv?.recipientId ?? inv?.recipient_id ?? '',
|
|
182
|
+
amount: request.assetAmount,
|
|
183
|
+
expiresAt: inv?.expirationTimestamp ? inv.expirationTimestamp * 1000 : Date.now() + (request.expirySeconds ?? 3600) * 1000,
|
|
184
|
+
description: request.description,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
async decodeInvoice(_invoice) {
|
|
188
|
+
throw new ProtocolError('RGB-L1 adapter does not decode invoices', 'RGB_L1', 'NOT_SUPPORTED');
|
|
189
|
+
}
|
|
190
|
+
// --- Send (Lightning not supported) -------------------------------------
|
|
191
|
+
async sendPayment(_request) {
|
|
192
|
+
throw new ProtocolError('RGB-L1 has no Lightning send; use sendAsset or sendBtcOnchain', 'RGB_L1', 'NOT_SUPPORTED');
|
|
193
|
+
}
|
|
194
|
+
async getPaymentStatus(_paymentHash) {
|
|
195
|
+
throw new ProtocolError('RGB-L1 has no Lightning payment status', 'RGB_L1', 'NOT_SUPPORTED');
|
|
196
|
+
}
|
|
197
|
+
// --- Transactions -------------------------------------------------------
|
|
198
|
+
async listTransactions(_filter) {
|
|
199
|
+
this.assertConnected();
|
|
200
|
+
const raw = this.account.listTransactions();
|
|
201
|
+
const txs = Array.isArray(raw) ? raw : raw?.transactions ?? [];
|
|
202
|
+
return txs.map((t) => {
|
|
203
|
+
const received = Number(t.received ?? 0);
|
|
204
|
+
const sent = Number(t.sent ?? 0);
|
|
205
|
+
const confTime = t.confirmationTime ?? t.confirmation_time;
|
|
206
|
+
return {
|
|
207
|
+
id: t.txid ?? t.transactionId ?? t.transaction_id ?? '',
|
|
208
|
+
type: (received >= sent ? 'receive' : 'send'),
|
|
209
|
+
status: (confTime ? 'confirmed' : 'pending'),
|
|
210
|
+
timestamp: Number(confTime?.timestamp ?? 0) * 1000,
|
|
211
|
+
amount: Math.abs(received - sent) || received || sent,
|
|
212
|
+
amountDisplay: '',
|
|
213
|
+
asset: undefined,
|
|
214
|
+
protocolData: t,
|
|
215
|
+
};
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
async getTransaction(txId) {
|
|
219
|
+
const found = (await this.listTransactions()).find((t) => t.id === txId);
|
|
220
|
+
if (!found)
|
|
221
|
+
throw new ProtocolError(`Unknown tx ${txId}`, 'RGB_L1', 'NO_TX');
|
|
222
|
+
return found;
|
|
223
|
+
}
|
|
224
|
+
async getNodeInfo() {
|
|
225
|
+
return {};
|
|
226
|
+
}
|
|
227
|
+
async listChannels() {
|
|
228
|
+
return [];
|
|
229
|
+
}
|
|
230
|
+
async listPayments() {
|
|
231
|
+
return [];
|
|
232
|
+
}
|
|
233
|
+
async listTransfers(options) {
|
|
234
|
+
this.assertConnected();
|
|
235
|
+
return this.account.listTransfers(options?.asset_id ?? null);
|
|
236
|
+
}
|
|
237
|
+
// --- RGB-specific hooks (used by the RGB host surface) ------------------
|
|
238
|
+
async createRgbInvoice(params) {
|
|
239
|
+
this.assertConnected();
|
|
240
|
+
return this.blindReceive(params.assetId, params.amount, params.durationSeconds, params.minConfirmations);
|
|
241
|
+
}
|
|
242
|
+
/** Generate a blinded receive invoice (RGB UTXO-based receive). */
|
|
243
|
+
async blindReceive(assetId, amount, durationSeconds, minConfirmations = 1) {
|
|
244
|
+
const assignment = amount != null ? { Fungible: BigInt(amount) } : null;
|
|
245
|
+
return this.account.blindReceive(assetId ?? null, assignment, durationSeconds ?? null, this.transportEndpoints, minConfirmations);
|
|
246
|
+
}
|
|
247
|
+
async signPsbt(psbtHex) {
|
|
248
|
+
this.assertConnected();
|
|
249
|
+
const signed = this.account.signPsbt(psbtHex);
|
|
250
|
+
return { psbt: signed ?? psbtHex, unchanged: !signed || signed === psbtHex };
|
|
251
|
+
}
|
|
252
|
+
async createRgbUtxos(params) {
|
|
253
|
+
this.assertConnected();
|
|
254
|
+
const feeRate = BigInt(Math.round(params.feeRate ?? 1));
|
|
255
|
+
const unsigned = await this.account.createUtxosBegin(this.online, params.upTo ?? false, params.num ?? null, params.size ?? null, feeRate, false);
|
|
256
|
+
const signed = this.account.signPsbt(unsigned);
|
|
257
|
+
await this.account.createUtxosEnd(this.online, signed, false);
|
|
258
|
+
return { success: true };
|
|
259
|
+
}
|
|
260
|
+
async sendAsset(params) {
|
|
261
|
+
this.assertConnected();
|
|
262
|
+
// recipient map: { [assetId]: [{ recipientId, witnessData?, amount, transportEndpoints }] }
|
|
263
|
+
const recipientMap = {
|
|
264
|
+
[params.token]: [
|
|
265
|
+
{
|
|
266
|
+
recipientId: params.recipient,
|
|
267
|
+
amount: BigInt(params.amount),
|
|
268
|
+
transportEndpoints: this.transportEndpoints,
|
|
269
|
+
},
|
|
270
|
+
],
|
|
271
|
+
};
|
|
272
|
+
const feeRate = BigInt(Math.round(params.feeRate ?? 1));
|
|
273
|
+
const unsigned = await this.account.sendBegin(this.online, recipientMap, params.donation ?? false, feeRate, params.minConfirmations ?? 1);
|
|
274
|
+
const signed = this.account.signPsbt(unsigned);
|
|
275
|
+
return this.account.sendEnd(this.online, signed, false);
|
|
276
|
+
}
|
|
277
|
+
async sendBtcOnchain(params) {
|
|
278
|
+
this.assertConnected();
|
|
279
|
+
const feeRate = BigInt(Math.round(params.feeRate ?? 1));
|
|
280
|
+
const unsigned = await this.account.sendBtcBegin(this.online, params.address, BigInt(params.amount), feeRate, false);
|
|
281
|
+
const signed = this.account.signPsbt(unsigned);
|
|
282
|
+
const txid = await this.account.sendBtcEnd(this.online, signed, false);
|
|
283
|
+
return { ok: true, txid };
|
|
284
|
+
}
|
|
285
|
+
/** Encrypted wallet backup bytes (rgb-lib's own format). */
|
|
286
|
+
async backup(password) {
|
|
287
|
+
this.assertConnected();
|
|
288
|
+
return this.account.backup(password);
|
|
289
|
+
}
|
|
290
|
+
async disconnect() {
|
|
291
|
+
this.online = null;
|
|
292
|
+
await super.disconnect();
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Normalize an rgb-lib-wasm asset record into the shape `RgbCore.rgbNiaAsset`
|
|
297
|
+
* expects (it may use camelCase `assetId` or snake_case `asset_id`).
|
|
298
|
+
*/
|
|
299
|
+
function normalizeAsset(a) {
|
|
300
|
+
return {
|
|
301
|
+
asset_id: a?.assetId ?? a?.asset_id ?? a?.id ?? '',
|
|
302
|
+
name: a?.name,
|
|
303
|
+
ticker: a?.ticker,
|
|
304
|
+
precision: a?.precision,
|
|
305
|
+
balance: a?.balance,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=RgbLibWasmAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RgbLibWasmAdapter.js","sourceRoot":"","sources":["../../../src/adapters/wdk/RgbLibWasmAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RgbLibWdkAdapter
|
|
3
|
+
* ----------------
|
|
4
|
+
* Wraps the local rgb-lib WDK module (@utexo/wdk-wallet-rgb) onto the stable
|
|
5
|
+
* `IProtocolAdapter` contract as the RGB-L1 (on-chain) path: BTC on-chain + RGB
|
|
6
|
+
* assets on-chain, with NO Lightning, channels, or swaps. It is the on-chain
|
|
7
|
+
* subset of the node-backed `RlnWdkAdapter`; the two share their asset/balance/
|
|
8
|
+
* status translation via `RgbCore` so they cannot drift.
|
|
9
|
+
*
|
|
10
|
+
* Unlike the RLN adapter (which talks to a remote rgb-lightning-node over HTTP),
|
|
11
|
+
* this runs rgb-lib locally and holds keys in-process — that's why it lives in
|
|
12
|
+
* the wallet engine rather than in the remote-client kaleido-sdk.
|
|
13
|
+
*
|
|
14
|
+
* Discipline: no WDK/rgb-lib types cross the contract — domain types only; the
|
|
15
|
+
* module account is read as `any` and translated.
|
|
16
|
+
*
|
|
17
|
+
* Wired against @utexo/wdk-wallet-rgb@2.0.3's published types:
|
|
18
|
+
* - WalletManagerRgb(seed, RgbWalletConfig).getAccount() → WalletAccountRgb
|
|
19
|
+
* - account: getAddress / registerWallet()→{address,btcBalance} / listAssets()
|
|
20
|
+
* (sync array) / receiveAsset / transfer(TransferOptions) / createUtxos /
|
|
21
|
+
* signPsbt / refreshWallet / syncWallet / listTransfers / listTransactions.
|
|
22
|
+
* - NO invoice decoder, NO Lightning, NO swaps on the WDK account surface.
|
|
23
|
+
* Per-asset balance rides on listAssets(); BTC balance rides on registerWallet().
|
|
24
|
+
* Response field names (InvoiceReceiveData, BtcBalance, ListAssetsResponse) are
|
|
25
|
+
* read defensively and should still be smoke-tested on-device.
|
|
26
|
+
*/
|
|
27
|
+
import { IProtocolAdapter, BaseProtocolConfig } from '../IProtocolAdapter.js';
|
|
28
|
+
import { ProtocolType, Layer, UnifiedAsset, UnifiedTransaction, InvoiceRequest, Invoice, DecodedInvoice, PaymentRequest, PaymentResult, PaymentStatus, Address, ConnectionInfo, TransactionFilter, NodeInfo } from '../../types/base.js';
|
|
29
|
+
import { BaseWdkAdapter } from './BaseWdkAdapter.js';
|
|
30
|
+
export interface RgbLibAdapterConfig extends BaseProtocolConfig {
|
|
31
|
+
protocol: 'RGB_L1';
|
|
32
|
+
/** BIP-39 mnemonic for this wallet. */
|
|
33
|
+
mnemonic: string;
|
|
34
|
+
/** Persistent directory for the rgb-lib SQLite wallet + data. */
|
|
35
|
+
dataDir: string;
|
|
36
|
+
/** RGB indexer (electrum/esplora) URL. */
|
|
37
|
+
indexerUrl?: string;
|
|
38
|
+
/** RGB proxy / transport endpoint. */
|
|
39
|
+
transportEndpoint?: string;
|
|
40
|
+
}
|
|
41
|
+
export declare class RgbLibWdkAdapter extends BaseWdkAdapter implements IProtocolAdapter {
|
|
42
|
+
readonly protocolName: ProtocolType;
|
|
43
|
+
readonly capabilities: readonly import("../../index.js").ProtocolCapability[];
|
|
44
|
+
readonly supportedLayers: Layer[];
|
|
45
|
+
connect(config: BaseProtocolConfig): Promise<void>;
|
|
46
|
+
getConnectionInfo(): Promise<ConnectionInfo>;
|
|
47
|
+
getReceiveAddress(assetId?: string): Promise<Address>;
|
|
48
|
+
getBtcBalance(): Promise<{
|
|
49
|
+
confirmed: number;
|
|
50
|
+
unconfirmed: number;
|
|
51
|
+
total: number;
|
|
52
|
+
}>;
|
|
53
|
+
refreshBalances(): Promise<void>;
|
|
54
|
+
listAssets(): Promise<UnifiedAsset[]>;
|
|
55
|
+
getAssetBalance(assetId: string): Promise<UnifiedAsset['balance']>;
|
|
56
|
+
getAsset(assetId: string): Promise<UnifiedAsset>;
|
|
57
|
+
createInvoice(request: InvoiceRequest): Promise<Invoice>;
|
|
58
|
+
decodeInvoice(_invoice: string): Promise<DecodedInvoice>;
|
|
59
|
+
sendPayment(_request: PaymentRequest): Promise<PaymentResult>;
|
|
60
|
+
getPaymentStatus(_paymentHash: string): Promise<PaymentStatus>;
|
|
61
|
+
/**
|
|
62
|
+
* BTC-L1 (vanilla) transaction history from rgb-lib. `listTransactions()` is
|
|
63
|
+
* synchronous and returns the wallet's Bitcoin transactions; RGB asset detail
|
|
64
|
+
* is per-asset via `listTransfers({ asset_id })`. Fields are read defensively.
|
|
65
|
+
*/
|
|
66
|
+
listTransactions(_filter?: TransactionFilter): Promise<UnifiedTransaction[]>;
|
|
67
|
+
getTransaction(txId: string): Promise<UnifiedTransaction>;
|
|
68
|
+
getNodeInfo(): Promise<NodeInfo>;
|
|
69
|
+
listChannels(): Promise<unknown[]>;
|
|
70
|
+
listPayments(): Promise<unknown>;
|
|
71
|
+
listTransfers(options?: {
|
|
72
|
+
asset_id?: string;
|
|
73
|
+
}): Promise<unknown>;
|
|
74
|
+
createRgbInvoice(params: any): Promise<any>;
|
|
75
|
+
/**
|
|
76
|
+
* Sign a PSBT with the wallet's keys (rgb-lib signs wallet-owned inputs).
|
|
77
|
+
* Returns the contract's `{ psbt, unchanged }` shape.
|
|
78
|
+
*/
|
|
79
|
+
signPsbt(psbtHex: string): Promise<{
|
|
80
|
+
psbt: string;
|
|
81
|
+
unchanged: boolean;
|
|
82
|
+
}>;
|
|
83
|
+
createRgbUtxos(params: {
|
|
84
|
+
num?: number;
|
|
85
|
+
size?: number;
|
|
86
|
+
feeRate?: number;
|
|
87
|
+
upTo?: boolean;
|
|
88
|
+
}): Promise<{
|
|
89
|
+
success: boolean;
|
|
90
|
+
}>;
|
|
91
|
+
sendAsset(params: {
|
|
92
|
+
token: string;
|
|
93
|
+
recipient: string;
|
|
94
|
+
amount: number;
|
|
95
|
+
feeRate?: number;
|
|
96
|
+
minConfirmations?: number;
|
|
97
|
+
}): Promise<any>;
|
|
98
|
+
sendBtcOnchain(params: {
|
|
99
|
+
address: string;
|
|
100
|
+
amount: number;
|
|
101
|
+
feeRate?: number;
|
|
102
|
+
}): Promise<any>;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=RgbLibWdkAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RgbLibWdkAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wdk/RgbLibWdkAdapter.ts"],"names":[],"mappings":"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"}
|