@kaleidorg/wallet-engine 1.0.0-beta.12
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/LICENSE +21 -0
- package/README.md +247 -0
- package/dist/adapters/ArkadeAdapter.d.ts +49 -0
- package/dist/adapters/ArkadeAdapter.d.ts.map +1 -0
- package/dist/adapters/ArkadeAdapter.js +316 -0
- package/dist/adapters/ArkadeAdapter.js.map +1 -0
- package/dist/adapters/IProtocolAdapter.d.ts +217 -0
- package/dist/adapters/IProtocolAdapter.d.ts.map +1 -0
- package/dist/adapters/IProtocolAdapter.js +33 -0
- package/dist/adapters/IProtocolAdapter.js.map +1 -0
- package/dist/adapters/RgbAdapter.d.ts +71 -0
- package/dist/adapters/RgbAdapter.d.ts.map +1 -0
- package/dist/adapters/RgbAdapter.js +820 -0
- package/dist/adapters/RgbAdapter.js.map +1 -0
- package/dist/adapters/SparkAdapter.d.ts +48 -0
- package/dist/adapters/SparkAdapter.d.ts.map +1 -0
- package/dist/adapters/SparkAdapter.js +395 -0
- package/dist/adapters/SparkAdapter.js.map +1 -0
- package/dist/adapters/native.d.ts +16 -0
- package/dist/adapters/native.d.ts.map +1 -0
- package/dist/adapters/native.js +16 -0
- package/dist/adapters/native.js.map +1 -0
- package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts +85 -0
- package/dist/adapters/wdk/ArkadeWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/ArkadeWdkAdapter.js +313 -0
- package/dist/adapters/wdk/ArkadeWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/LiquidWdkAdapter.d.ts +88 -0
- package/dist/adapters/wdk/LiquidWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/LiquidWdkAdapter.js +276 -0
- package/dist/adapters/wdk/LiquidWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/RlnWdkAdapter.d.ts +86 -0
- package/dist/adapters/wdk/RlnWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/RlnWdkAdapter.js +310 -0
- package/dist/adapters/wdk/RlnWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/SparkWdkAdapter.d.ts +81 -0
- package/dist/adapters/wdk/SparkWdkAdapter.d.ts.map +1 -0
- package/dist/adapters/wdk/SparkWdkAdapter.js +417 -0
- package/dist/adapters/wdk/SparkWdkAdapter.js.map +1 -0
- package/dist/adapters/wdk/index.d.ts +15 -0
- package/dist/adapters/wdk/index.d.ts.map +1 -0
- package/dist/adapters/wdk/index.js +15 -0
- package/dist/adapters/wdk/index.js.map +1 -0
- package/dist/adapters/wdk/moduleLoader.d.ts +22 -0
- package/dist/adapters/wdk/moduleLoader.d.ts.map +1 -0
- package/dist/adapters/wdk/moduleLoader.js +31 -0
- package/dist/adapters/wdk/moduleLoader.js.map +1 -0
- package/dist/capabilities/index.d.ts +46 -0
- package/dist/capabilities/index.d.ts.map +1 -0
- package/dist/capabilities/index.js +102 -0
- package/dist/capabilities/index.js.map +1 -0
- package/dist/capabilities/operations.d.ts +22 -0
- package/dist/capabilities/operations.d.ts.map +1 -0
- package/dist/capabilities/operations.js +55 -0
- package/dist/capabilities/operations.js.map +1 -0
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/disclosure/index.d.ts +51 -0
- package/dist/disclosure/index.d.ts.map +1 -0
- package/dist/disclosure/index.js +64 -0
- package/dist/disclosure/index.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/arkade-client-manager.d.ts +47 -0
- package/dist/lib/arkade-client-manager.d.ts.map +1 -0
- package/dist/lib/arkade-client-manager.js +121 -0
- package/dist/lib/arkade-client-manager.js.map +1 -0
- package/dist/lib/bolt11.d.ts +18 -0
- package/dist/lib/bolt11.d.ts.map +1 -0
- package/dist/lib/bolt11.js +31 -0
- package/dist/lib/bolt11.js.map +1 -0
- package/dist/lib/flashnet-client-manager.d.ts +29 -0
- package/dist/lib/flashnet-client-manager.d.ts.map +1 -0
- package/dist/lib/flashnet-client-manager.js +116 -0
- package/dist/lib/flashnet-client-manager.js.map +1 -0
- package/dist/lib/kaleido-client-manager.d.ts +26 -0
- package/dist/lib/kaleido-client-manager.d.ts.map +1 -0
- package/dist/lib/kaleido-client-manager.js +55 -0
- package/dist/lib/kaleido-client-manager.js.map +1 -0
- package/dist/lib/spark-client-manager.d.ts +41 -0
- package/dist/lib/spark-client-manager.d.ts.map +1 -0
- package/dist/lib/spark-client-manager.js +101 -0
- package/dist/lib/spark-client-manager.js.map +1 -0
- package/dist/manager/ProtocolManager.d.ts +108 -0
- package/dist/manager/ProtocolManager.d.ts.map +1 -0
- package/dist/manager/ProtocolManager.js +305 -0
- package/dist/manager/ProtocolManager.js.map +1 -0
- package/dist/ports/index.d.ts +49 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +31 -0
- package/dist/ports/index.js.map +1 -0
- package/dist/receive/unifiedReceive.d.ts +54 -0
- package/dist/receive/unifiedReceive.d.ts.map +1 -0
- package/dist/receive/unifiedReceive.js +102 -0
- package/dist/receive/unifiedReceive.js.map +1 -0
- package/dist/registry/createWdkRegistry.d.ts +20 -0
- package/dist/registry/createWdkRegistry.d.ts.map +1 -0
- package/dist/registry/createWdkRegistry.js +32 -0
- package/dist/registry/createWdkRegistry.js.map +1 -0
- package/dist/router/destination.d.ts +28 -0
- package/dist/router/destination.d.ts.map +1 -0
- package/dist/router/destination.js +72 -0
- package/dist/router/destination.js.map +1 -0
- package/dist/router/index.d.ts +55 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +67 -0
- package/dist/router/index.js.map +1 -0
- package/dist/swap/KaleidoswapSwap.d.ts +44 -0
- package/dist/swap/KaleidoswapSwap.d.ts.map +1 -0
- package/dist/swap/KaleidoswapSwap.js +123 -0
- package/dist/swap/KaleidoswapSwap.js.map +1 -0
- package/dist/swap/index.d.ts +8 -0
- package/dist/swap/index.d.ts.map +1 -0
- package/dist/swap/index.js +8 -0
- package/dist/swap/index.js.map +1 -0
- package/dist/types/arkade.d.ts +40 -0
- package/dist/types/arkade.d.ts.map +1 -0
- package/dist/types/arkade.js +6 -0
- package/dist/types/arkade.js.map +1 -0
- package/dist/types/base.d.ts +228 -0
- package/dist/types/base.d.ts.map +1 -0
- package/dist/types/base.js +53 -0
- package/dist/types/base.js.map +1 -0
- package/dist/types/cross-l2.d.ts +108 -0
- package/dist/types/cross-l2.d.ts.map +1 -0
- package/dist/types/cross-l2.js +16 -0
- package/dist/types/cross-l2.js.map +1 -0
- package/dist/types/flashnet.d.ts +31 -0
- package/dist/types/flashnet.d.ts.map +1 -0
- package/dist/types/flashnet.js +23 -0
- package/dist/types/flashnet.js.map +1 -0
- package/dist/types/rgb.d.ts +105 -0
- package/dist/types/rgb.d.ts.map +1 -0
- package/dist/types/rgb.js +6 -0
- package/dist/types/rgb.js.map +1 -0
- package/dist/types/spark.d.ts +59 -0
- package/dist/types/spark.d.ts.map +1 -0
- package/dist/types/spark.js +6 -0
- package/dist/types/spark.js.map +1 -0
- package/dist/utils.d.ts +10 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +23 -0
- package/dist/utils.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ArkadeWdkAdapter
|
|
3
|
+
* ----------------
|
|
4
|
+
* Wraps the Arkade WDK module (@arkade-os/wdk, over @arkade-os/sdk + boltz-swap)
|
|
5
|
+
* onto the stable `IProtocolAdapter` contract. Arkade is a VTXO-based Bitcoin L2:
|
|
6
|
+
* off-chain Ark transfers, an on-chain "boarding" address for funding, and Lightning
|
|
7
|
+
* receive via Boltz reverse submarine swaps.
|
|
8
|
+
*
|
|
9
|
+
* Discipline: no WDK/@arkade-os types cross the contract — domain types only;
|
|
10
|
+
* module objects are read as `any`.
|
|
11
|
+
*
|
|
12
|
+
* Arkade WDK surface (from JSDoc in the cloned source, v0.1.3):
|
|
13
|
+
* read-only: getAddress(): string (Ark address, inherited), getBoardingAddress(): string,
|
|
14
|
+
* getBalance(): bigint, getTokenBalance(id): bigint, getTransactionHistory()
|
|
15
|
+
* account: sendTransaction({to,value}), transfer({token,recipient,amount}),
|
|
16
|
+
* createLightningInvoice(amountSats, description?): {invoice,paymentHash},
|
|
17
|
+
* waitForLightningPayment(invoice): {txid}, getLightningLimits/Fees,
|
|
18
|
+
* subscribeToIncomingFunds, sign, dispose
|
|
19
|
+
* NOTE: Lightning *send* (pay a BOLT11) is not exposed as a simple method in v0.1.3.
|
|
20
|
+
*/
|
|
21
|
+
import { IProtocolAdapter, BaseProtocolConfig } from '../IProtocolAdapter.js';
|
|
22
|
+
import { ProtocolType, Layer, UnifiedAsset, UnifiedTransaction, InvoiceRequest, Invoice, DecodedInvoice, PaymentRequest, PaymentResult, PaymentStatus, Address, ConnectionInfo, TransactionFilter } from '../../types/base.js';
|
|
23
|
+
export interface ArkadeAdapterConfig extends BaseProtocolConfig {
|
|
24
|
+
protocol: 'ARKADE';
|
|
25
|
+
/** BIP-39 mnemonic for this wallet. */
|
|
26
|
+
mnemonic: string;
|
|
27
|
+
/** BIP-44 account index (default 0). */
|
|
28
|
+
accountIndex?: number;
|
|
29
|
+
/** Arkade wallet config (ark server URL, indexer URL, swap provider URL, …) passed through to the module. */
|
|
30
|
+
arkadeConfig?: Record<string, any>;
|
|
31
|
+
}
|
|
32
|
+
export declare class ArkadeWdkAdapter implements IProtocolAdapter {
|
|
33
|
+
readonly protocolName: ProtocolType;
|
|
34
|
+
readonly capabilities: readonly import("../../index.js").ProtocolCapability[];
|
|
35
|
+
readonly supportedLayers: Layer[];
|
|
36
|
+
readonly version = "0.1.0-wdk";
|
|
37
|
+
private manager;
|
|
38
|
+
private account;
|
|
39
|
+
private connected;
|
|
40
|
+
private network;
|
|
41
|
+
connect(config: BaseProtocolConfig): Promise<void>;
|
|
42
|
+
disconnect(): Promise<void>;
|
|
43
|
+
isConnected(): boolean;
|
|
44
|
+
getConnectionInfo(): Promise<ConnectionInfo>;
|
|
45
|
+
/** Default Ark address. For the on-chain boarding address use `getBoardingAddress`. */
|
|
46
|
+
getReceiveAddress(_assetId?: string): Promise<Address>;
|
|
47
|
+
/** On-chain BTC boarding address for funding the Arkade account. */
|
|
48
|
+
getBoardingAddress(): Promise<Address>;
|
|
49
|
+
getBtcBalance(): Promise<{
|
|
50
|
+
confirmed: number;
|
|
51
|
+
unconfirmed: number;
|
|
52
|
+
total: number;
|
|
53
|
+
}>;
|
|
54
|
+
refreshBalances(): Promise<void>;
|
|
55
|
+
listAssets(): Promise<UnifiedAsset[]>;
|
|
56
|
+
getAssetBalance(assetId: string): Promise<UnifiedAsset['balance']>;
|
|
57
|
+
getAsset(assetId: string): Promise<UnifiedAsset>;
|
|
58
|
+
createInvoice(request: InvoiceRequest): Promise<Invoice>;
|
|
59
|
+
decodeInvoice(invoice: string): Promise<DecodedInvoice>;
|
|
60
|
+
sendPayment(request: PaymentRequest): Promise<PaymentResult>;
|
|
61
|
+
/** Arkade BTC send/offboard. Bitcoin destinations settle on-chain asynchronously. */
|
|
62
|
+
sendBtcOnchain(params: {
|
|
63
|
+
address: string;
|
|
64
|
+
amount: number;
|
|
65
|
+
feeRate?: number;
|
|
66
|
+
}): Promise<PaymentResult>;
|
|
67
|
+
/** Arkade asset transfer (token). */
|
|
68
|
+
sendAsset(params: {
|
|
69
|
+
token: string;
|
|
70
|
+
recipient: string;
|
|
71
|
+
amount: number;
|
|
72
|
+
}): Promise<any>;
|
|
73
|
+
getPaymentStatus(paymentHash: string): Promise<PaymentStatus>;
|
|
74
|
+
listTransactions(_filter?: TransactionFilter): Promise<UnifiedTransaction[]>;
|
|
75
|
+
getTransaction(txId: string): Promise<UnifiedTransaction>;
|
|
76
|
+
getNodeInfo(): Promise<any>;
|
|
77
|
+
listChannels(): Promise<any[]>;
|
|
78
|
+
listPayments(): Promise<any>;
|
|
79
|
+
listTransfers(): Promise<any>;
|
|
80
|
+
supportsSwaps(): boolean;
|
|
81
|
+
/** Escape hatch for Arkade-specific ops (waitForLightningPayment, getLightningLimits, …). */
|
|
82
|
+
executeProtocolOperation(operation: string, params: any): Promise<any>;
|
|
83
|
+
private assertConnected;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=ArkadeWdkAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArkadeWdkAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wdk/ArkadeWdkAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ArkadeWdkAdapter
|
|
3
|
+
* ----------------
|
|
4
|
+
* Wraps the Arkade WDK module (@arkade-os/wdk, over @arkade-os/sdk + boltz-swap)
|
|
5
|
+
* onto the stable `IProtocolAdapter` contract. Arkade is a VTXO-based Bitcoin L2:
|
|
6
|
+
* off-chain Ark transfers, an on-chain "boarding" address for funding, and Lightning
|
|
7
|
+
* receive via Boltz reverse submarine swaps.
|
|
8
|
+
*
|
|
9
|
+
* Discipline: no WDK/@arkade-os types cross the contract — domain types only;
|
|
10
|
+
* module objects are read as `any`.
|
|
11
|
+
*
|
|
12
|
+
* Arkade WDK surface (from JSDoc in the cloned source, v0.1.3):
|
|
13
|
+
* read-only: getAddress(): string (Ark address, inherited), getBoardingAddress(): string,
|
|
14
|
+
* getBalance(): bigint, getTokenBalance(id): bigint, getTransactionHistory()
|
|
15
|
+
* account: sendTransaction({to,value}), transfer({token,recipient,amount}),
|
|
16
|
+
* createLightningInvoice(amountSats, description?): {invoice,paymentHash},
|
|
17
|
+
* waitForLightningPayment(invoice): {txid}, getLightningLimits/Fees,
|
|
18
|
+
* subscribeToIncomingFunds, sign, dispose
|
|
19
|
+
* NOTE: Lightning *send* (pay a BOLT11) is not exposed as a simple method in v0.1.3.
|
|
20
|
+
*/
|
|
21
|
+
import { ProtocolError, } from '../../types/base.js';
|
|
22
|
+
import { getCapabilities } from '../../capabilities/index.js';
|
|
23
|
+
import { PROTOCOL_OPERATIONS } from '../../capabilities/operations.js';
|
|
24
|
+
import { loadWdkModule } from './moduleLoader.js';
|
|
25
|
+
import { decodeBolt11, isBolt11 } from '../../lib/bolt11.js';
|
|
26
|
+
const isBitcoinAddress = (value) => /^(bc1|tb1|bcrt1)/i.test(value.trim());
|
|
27
|
+
export class ArkadeWdkAdapter {
|
|
28
|
+
constructor() {
|
|
29
|
+
this.protocolName = 'ARKADE';
|
|
30
|
+
this.capabilities = PROTOCOL_OPERATIONS.ARKADE;
|
|
31
|
+
this.supportedLayers = getCapabilities('ARKADE').layers;
|
|
32
|
+
this.version = '0.1.0-wdk';
|
|
33
|
+
this.manager = null;
|
|
34
|
+
this.account = null;
|
|
35
|
+
this.connected = false;
|
|
36
|
+
this.network = 'mainnet';
|
|
37
|
+
}
|
|
38
|
+
// --- Connection ---------------------------------------------------------
|
|
39
|
+
async connect(config) {
|
|
40
|
+
const cfg = config;
|
|
41
|
+
if (!cfg.mnemonic)
|
|
42
|
+
throw new ProtocolError('ArkadeWdkAdapter requires a mnemonic', 'ARKADE', 'CONFIG');
|
|
43
|
+
this.network = cfg.network ?? 'mainnet';
|
|
44
|
+
// @ts-ignore — external module, resolved at runtime in the consuming app.
|
|
45
|
+
const mod = await loadWdkModule('@arkade-os/wdk', () => import('@arkade-os/wdk'));
|
|
46
|
+
const WalletManagerArkade = mod.default ?? mod.WalletManagerArkade ?? mod;
|
|
47
|
+
this.manager = new WalletManagerArkade(cfg.mnemonic, cfg.arkadeConfig ?? {});
|
|
48
|
+
this.account = await this.manager.getAccount(cfg.accountIndex ?? 0);
|
|
49
|
+
this.connected = true;
|
|
50
|
+
}
|
|
51
|
+
async disconnect() {
|
|
52
|
+
try {
|
|
53
|
+
this.account?.dispose?.();
|
|
54
|
+
await this.manager?.dispose?.();
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
this.account = null;
|
|
58
|
+
this.manager = null;
|
|
59
|
+
this.connected = false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
isConnected() {
|
|
63
|
+
return this.connected;
|
|
64
|
+
}
|
|
65
|
+
async getConnectionInfo() {
|
|
66
|
+
return { protocol: 'ARKADE', connected: this.connected, network: this.network };
|
|
67
|
+
}
|
|
68
|
+
// --- Address / receive --------------------------------------------------
|
|
69
|
+
/** Default Ark address. For the on-chain boarding address use `getBoardingAddress`. */
|
|
70
|
+
async getReceiveAddress(_assetId) {
|
|
71
|
+
this.assertConnected();
|
|
72
|
+
const address = await this.account.getAddress();
|
|
73
|
+
return { address, format: 'ARKADE_ADDRESS' };
|
|
74
|
+
}
|
|
75
|
+
/** On-chain BTC boarding address for funding the Arkade account. */
|
|
76
|
+
async getBoardingAddress() {
|
|
77
|
+
this.assertConnected();
|
|
78
|
+
const address = await this.account.getBoardingAddress();
|
|
79
|
+
return { address, format: 'BTC_ADDRESS' };
|
|
80
|
+
}
|
|
81
|
+
// --- Balance ------------------------------------------------------------
|
|
82
|
+
async getBtcBalance() {
|
|
83
|
+
this.assertConnected();
|
|
84
|
+
const bal = await this.account.getBalance();
|
|
85
|
+
const total = Number(bal);
|
|
86
|
+
return { confirmed: total, unconfirmed: 0, total };
|
|
87
|
+
}
|
|
88
|
+
async refreshBalances() {
|
|
89
|
+
// Arkade syncs against the indexer on read; no explicit sync call.
|
|
90
|
+
}
|
|
91
|
+
async listAssets() {
|
|
92
|
+
this.assertConnected();
|
|
93
|
+
const { total } = await this.getBtcBalance();
|
|
94
|
+
const btc = {
|
|
95
|
+
id: 'BTC',
|
|
96
|
+
name: 'Bitcoin',
|
|
97
|
+
ticker: 'BTC',
|
|
98
|
+
precision: 8,
|
|
99
|
+
protocol: 'ARKADE',
|
|
100
|
+
layer: 'BTC_ARKADE',
|
|
101
|
+
balance: { total, available: total, pending: 0, totalDisplay: String(total), availableDisplay: String(total) },
|
|
102
|
+
capabilities: { canSend: true, canReceive: true, canSwap: false, supportsLightning: true, supportsOnchain: true },
|
|
103
|
+
};
|
|
104
|
+
const out = [btc];
|
|
105
|
+
// Arkade tokens. Per the extension's working adapter, the wallet's
|
|
106
|
+
// `getBalance()` already includes `assets: { assetId, amount }[]` — token
|
|
107
|
+
// discovery does NOT come from getVtxos(). Resolve metadata (decimals /
|
|
108
|
+
// ticker / name) via `assetManager.getAssetDetails(assetId).metadata`.
|
|
109
|
+
try {
|
|
110
|
+
const wallet = this.account?._wallet;
|
|
111
|
+
const rawBalance = wallet?.getBalance ? await wallet.getBalance() : null;
|
|
112
|
+
const rawAssets = Array.isArray(rawBalance?.assets) ? rawBalance.assets : [];
|
|
113
|
+
for (const entry of rawAssets) {
|
|
114
|
+
const assetId = String(entry?.assetId ?? '');
|
|
115
|
+
const amount = Number(entry?.amount ?? 0);
|
|
116
|
+
if (!assetId || amount <= 0)
|
|
117
|
+
continue;
|
|
118
|
+
let meta = {};
|
|
119
|
+
try {
|
|
120
|
+
meta = (await wallet?.assetManager?.getAssetDetails?.(assetId))?.metadata ?? {};
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
// metadata lookup is optional — fall back to the raw id
|
|
124
|
+
}
|
|
125
|
+
const decimals = Number(meta.decimals ?? 0) || 0;
|
|
126
|
+
const ticker = (typeof meta.ticker === 'string' && meta.ticker.trim()) ? meta.ticker : assetId.slice(0, 6);
|
|
127
|
+
const name = (typeof meta.name === 'string' && meta.name.trim()) ? meta.name : ticker;
|
|
128
|
+
out.push({
|
|
129
|
+
id: assetId,
|
|
130
|
+
name,
|
|
131
|
+
ticker,
|
|
132
|
+
precision: decimals,
|
|
133
|
+
protocol: 'ARKADE',
|
|
134
|
+
layer: 'ARKADE_ARKADE',
|
|
135
|
+
balance: {
|
|
136
|
+
total: amount,
|
|
137
|
+
available: amount,
|
|
138
|
+
pending: 0,
|
|
139
|
+
totalDisplay: String(amount),
|
|
140
|
+
availableDisplay: String(amount),
|
|
141
|
+
},
|
|
142
|
+
icon: typeof meta.icon === 'string' ? meta.icon : undefined,
|
|
143
|
+
capabilities: { canSend: true, canReceive: true, canSwap: false, supportsLightning: false, supportsOnchain: false },
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
// token enumeration is best-effort — keep BTC even if balance is unavailable
|
|
149
|
+
}
|
|
150
|
+
return out;
|
|
151
|
+
}
|
|
152
|
+
async getAssetBalance(assetId) {
|
|
153
|
+
this.assertConnected();
|
|
154
|
+
const bal = await this.account.getTokenBalance(assetId);
|
|
155
|
+
const n = Number(bal);
|
|
156
|
+
return { total: n, available: n, pending: 0, totalDisplay: String(n), availableDisplay: String(n) };
|
|
157
|
+
}
|
|
158
|
+
async getAsset(assetId) {
|
|
159
|
+
const assets = await this.listAssets();
|
|
160
|
+
const found = assets.find((a) => a.id === assetId);
|
|
161
|
+
if (!found)
|
|
162
|
+
throw new ProtocolError(`Unknown asset ${assetId}`, 'ARKADE', 'NO_ASSET');
|
|
163
|
+
return found;
|
|
164
|
+
}
|
|
165
|
+
// --- Invoices -----------------------------------------------------------
|
|
166
|
+
async createInvoice(request) {
|
|
167
|
+
this.assertConnected();
|
|
168
|
+
if (request.layer === 'BTC_LN' || request.amount != null) {
|
|
169
|
+
// createLightningInvoice(amountSats, description?) — POSITIONAL args; via Boltz reverse swap.
|
|
170
|
+
const r = await this.account.createLightningInvoice(request.amount ?? 0, request.description);
|
|
171
|
+
return {
|
|
172
|
+
invoice: r?.invoice ?? '',
|
|
173
|
+
paymentHash: r?.paymentHash ?? '',
|
|
174
|
+
amount: request.amount,
|
|
175
|
+
expiresAt: Date.now() + (request.expirySeconds ?? 3600) * 1000,
|
|
176
|
+
description: request.description,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
throw new ProtocolError('Arkade on-chain receive uses getReceiveAddress/getBoardingAddress', 'ARKADE', 'NOT_SUPPORTED');
|
|
180
|
+
}
|
|
181
|
+
async decodeInvoice(invoice) {
|
|
182
|
+
const dest = invoice.trim();
|
|
183
|
+
if (isBolt11(dest)) {
|
|
184
|
+
const { amountSat } = decodeBolt11(dest);
|
|
185
|
+
return { paymentHash: '', amount: amountSat, expiresAt: 0, destination: dest };
|
|
186
|
+
}
|
|
187
|
+
return { paymentHash: '', expiresAt: 0, destination: dest };
|
|
188
|
+
}
|
|
189
|
+
// --- Send ---------------------------------------------------------------
|
|
190
|
+
async sendPayment(request) {
|
|
191
|
+
this.assertConnected();
|
|
192
|
+
const dest = request.invoice.trim();
|
|
193
|
+
if (/^ln(bc|tb|bcrt)/i.test(dest)) {
|
|
194
|
+
// Lightning send via Boltz submarine swap is not exposed as a simple method in v0.1.3.
|
|
195
|
+
throw new ProtocolError('Arkade Lightning send not available in this module version', 'ARKADE', 'NOT_SUPPORTED');
|
|
196
|
+
}
|
|
197
|
+
if (request.amount == null) {
|
|
198
|
+
throw new ProtocolError('Arkade send requires an explicit amount', 'ARKADE', 'NO_AMOUNT');
|
|
199
|
+
}
|
|
200
|
+
// Bitcoin destination → on-chain offboard. Route through sendBtcOnchain so the
|
|
201
|
+
// missing-tx-id guard and async `pending` status apply regardless of entry point
|
|
202
|
+
// (otherwise a BTC offboard with no hash would falsely report success).
|
|
203
|
+
if (isBitcoinAddress(dest)) {
|
|
204
|
+
return this.sendBtcOnchain({ address: dest, amount: request.amount });
|
|
205
|
+
}
|
|
206
|
+
// Off-chain Ark transfer to an Ark address (settles immediately, zero-conf UX).
|
|
207
|
+
const r = await this.account.sendTransaction({ to: dest, value: request.amount });
|
|
208
|
+
const hash = r?.hash ?? '';
|
|
209
|
+
return {
|
|
210
|
+
paymentHash: hash,
|
|
211
|
+
txid: hash,
|
|
212
|
+
amount: request.amount,
|
|
213
|
+
fee: Number(r?.fee ?? 0),
|
|
214
|
+
status: 'confirmed',
|
|
215
|
+
timestamp: Date.now(),
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
/** Arkade BTC send/offboard. Bitcoin destinations settle on-chain asynchronously. */
|
|
219
|
+
async sendBtcOnchain(params) {
|
|
220
|
+
this.assertConnected();
|
|
221
|
+
const r = await this.account.sendTransaction({ to: params.address.trim(), value: params.amount });
|
|
222
|
+
const hash = r?.hash ?? '';
|
|
223
|
+
if (!hash) {
|
|
224
|
+
throw new ProtocolError('Arkade offboard did not return a transaction ID', 'ARKADE', 'SEND_ERROR');
|
|
225
|
+
}
|
|
226
|
+
return {
|
|
227
|
+
txid: hash,
|
|
228
|
+
paymentHash: hash,
|
|
229
|
+
amount: params.amount,
|
|
230
|
+
fee: Number(r?.fee ?? 0),
|
|
231
|
+
status: 'pending',
|
|
232
|
+
timestamp: Date.now(),
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/** Arkade asset transfer (token). */
|
|
236
|
+
async sendAsset(params) {
|
|
237
|
+
this.assertConnected();
|
|
238
|
+
return this.account.transfer({ token: params.token, recipient: params.recipient, amount: params.amount });
|
|
239
|
+
}
|
|
240
|
+
async getPaymentStatus(paymentHash) {
|
|
241
|
+
this.assertConnected();
|
|
242
|
+
const r = await this.account.getTransactionReceipt?.(paymentHash).catch(() => null);
|
|
243
|
+
const status = (r?.confirmedAt || r?.settled ? 'confirmed' : 'pending');
|
|
244
|
+
return { paymentHash, status };
|
|
245
|
+
}
|
|
246
|
+
// --- Transactions -------------------------------------------------------
|
|
247
|
+
async listTransactions(_filter) {
|
|
248
|
+
this.assertConnected();
|
|
249
|
+
const history = await this.account.getTransactionHistory();
|
|
250
|
+
return (history ?? []).map((t) => {
|
|
251
|
+
// @arkade-os/sdk ArkTransaction shape:
|
|
252
|
+
// { key:{ arkTxid, commitmentTxid, boardingTxid }, type:'SENT'|'RECEIVED',
|
|
253
|
+
// amount(sats, net), settled(boolean), createdAt(ms since epoch) }.
|
|
254
|
+
// The txid lives on `key` (the unused fields are empty strings, so we must
|
|
255
|
+
// pick the first NON-EMPTY one — `??` would stop at `''`). Direction is the
|
|
256
|
+
// explicit `type`, not the amount sign (amount is reported as a magnitude).
|
|
257
|
+
// `createdAt` is already milliseconds; the old `* 1000` pushed every entry
|
|
258
|
+
// ~50k years into the future, breaking sort order and the displayed date.
|
|
259
|
+
const key = t?.key ?? {};
|
|
260
|
+
const id = t?.txid || key.arkTxid || key.commitmentTxid || key.boardingTxid || '';
|
|
261
|
+
const isSend = String(t?.type ?? '').toUpperCase() === 'SENT';
|
|
262
|
+
const createdAt = Number(t?.createdAt ?? 0);
|
|
263
|
+
return {
|
|
264
|
+
id,
|
|
265
|
+
type: isSend ? 'send' : 'receive',
|
|
266
|
+
status: (t?.settled || (!isSend && !key.boardingTxid) ? 'confirmed' : 'pending'),
|
|
267
|
+
timestamp: Number.isFinite(createdAt) && createdAt > 0 ? createdAt : 0,
|
|
268
|
+
amount: Math.abs(Number(t?.amount ?? 0)),
|
|
269
|
+
amountDisplay: '',
|
|
270
|
+
asset: undefined,
|
|
271
|
+
protocolData: t,
|
|
272
|
+
};
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
async getTransaction(txId) {
|
|
276
|
+
const all = await this.listTransactions();
|
|
277
|
+
const found = all.find((t) => t.id === txId);
|
|
278
|
+
if (!found)
|
|
279
|
+
throw new ProtocolError(`Unknown tx ${txId}`, 'ARKADE', 'NO_TX');
|
|
280
|
+
return found;
|
|
281
|
+
}
|
|
282
|
+
async getNodeInfo() {
|
|
283
|
+
return { protocol: 'ARKADE', network: this.network };
|
|
284
|
+
}
|
|
285
|
+
async listChannels() {
|
|
286
|
+
return []; // Arkade has no LN channels (LN via Boltz swaps)
|
|
287
|
+
}
|
|
288
|
+
async listPayments() {
|
|
289
|
+
return this.listTransactions();
|
|
290
|
+
}
|
|
291
|
+
async listTransfers() {
|
|
292
|
+
return this.account.getTransactionHistory();
|
|
293
|
+
}
|
|
294
|
+
supportsSwaps() {
|
|
295
|
+
return getCapabilities('ARKADE').supportsSwaps;
|
|
296
|
+
}
|
|
297
|
+
/** Escape hatch for Arkade-specific ops (waitForLightningPayment, getLightningLimits, …). */
|
|
298
|
+
async executeProtocolOperation(operation, params) {
|
|
299
|
+
this.assertConnected();
|
|
300
|
+
const fn = this.account[operation];
|
|
301
|
+
if (typeof fn !== 'function') {
|
|
302
|
+
throw new ProtocolError(`Unknown Arkade operation '${operation}'`, 'ARKADE', 'NO_OP');
|
|
303
|
+
}
|
|
304
|
+
return fn.call(this.account, params);
|
|
305
|
+
}
|
|
306
|
+
// --- helpers ------------------------------------------------------------
|
|
307
|
+
assertConnected() {
|
|
308
|
+
if (!this.connected || !this.account) {
|
|
309
|
+
throw new ProtocolError('ArkadeWdkAdapter not connected', 'ARKADE', 'NOT_CONNECTED');
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
//# sourceMappingURL=ArkadeWdkAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArkadeWdkAdapter.js","sourceRoot":"","sources":["../../../src/adapters/wdk/ArkadeWdkAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAeL,aAAa,GACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEzD,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;AAY3F,MAAM,OAAO,gBAAgB;IAA7B;QACW,iBAAY,GAAiB,QAAQ,CAAA;QACrC,iBAAY,GAAG,mBAAmB,CAAC,MAAM,CAAA;QACzC,oBAAe,GAAY,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAA;QAC3D,YAAO,GAAG,WAAW,CAAA;QAEtB,YAAO,GAAQ,IAAI,CAAA;QACnB,YAAO,GAAQ,IAAI,CAAA;QACnB,cAAS,GAAG,KAAK,CAAA;QACjB,YAAO,GAAG,SAAS,CAAA;IAuS7B,CAAC;IArSC,2EAA2E;IAC3E,KAAK,CAAC,OAAO,CAAC,MAA0B;QACtC,MAAM,GAAG,GAAG,MAA6B,CAAA;QACzC,IAAI,CAAC,GAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,aAAa,CAAC,sCAAsC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACtG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,SAAS,CAAA;QACvC,0EAA0E;QAC1E,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAA;QACjF,MAAM,mBAAmB,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAA;QACzE,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;QAC5E,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAA;QACnE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAA;YACzB,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAA;QACjC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;QACxB,CAAC;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAA;IACjF,CAAC;IAED,2EAA2E;IAC3E,uFAAuF;IACvF,KAAK,CAAC,iBAAiB,CAAC,QAAiB;QACvC,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,MAAM,OAAO,GAAW,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAA;QACvD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;IAC9C,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,MAAM,OAAO,GAAW,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAA;QAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;IAC3C,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,aAAa;QACjB,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,MAAM,GAAG,GAAW,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAA;QACnD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACzB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,CAAA;IACpD,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,mEAAmE;IACrE,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAC5C,MAAM,GAAG,GAAiB;YACxB,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9G,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;SAClH,CAAA;QACD,MAAM,GAAG,GAAmB,CAAC,GAAG,CAAC,CAAA;QAEjC,mEAAmE;QACnE,0EAA0E;QAC1E,wEAAwE;QACxE,uEAAuE;QACvE,IAAI,CAAC;YACH,MAAM,MAAM,GAAS,IAAI,CAAC,OAAe,EAAE,OAAO,CAAA;YAClD,MAAM,UAAU,GAAQ,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;YAC7E,MAAM,SAAS,GAAU,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;YACnF,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC,CAAA;gBAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,CAAA;gBACzC,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC;oBAAE,SAAQ;gBACrC,IAAI,IAAI,GAAQ,EAAE,CAAA;gBAClB,IAAI,CAAC;oBACH,IAAI,GAAG,CAAC,MAAM,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAA;gBACjF,CAAC;gBAAC,MAAM,CAAC;oBACP,wDAAwD;gBAC1D,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAA;gBAChD,MAAM,MAAM,GAAG,CAAC,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC1G,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;gBACrF,GAAG,CAAC,IAAI,CAAC;oBACP,EAAE,EAAE,OAAO;oBACX,IAAI;oBACJ,MAAM;oBACN,SAAS,EAAE,QAAQ;oBACnB,QAAQ,EAAE,QAAQ;oBAClB,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE;wBACP,KAAK,EAAE,MAAM;wBACb,SAAS,EAAE,MAAM;wBACjB,OAAO,EAAE,CAAC;wBACV,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;wBAC5B,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC;qBACjC;oBACD,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;oBAC3D,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE;iBACpH,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,6EAA6E;QAC/E,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,MAAM,GAAG,GAAW,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC/D,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACrB,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IACrG,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;QAClD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,aAAa,CAAC,iBAAiB,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;QACrF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,aAAa,CAAC,OAAuB;QACzC,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACzD,8FAA8F;YAC9F,MAAM,CAAC,GAAQ,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;YAClG,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,OAAO,IAAI,EAAE;gBACzB,WAAW,EAAE,CAAC,EAAE,WAAW,IAAI,EAAE;gBACjC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,GAAG,IAAI;gBAC9D,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAA;QACH,CAAC;QACD,MAAM,IAAI,aAAa,CAAC,mEAAmE,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAA;IACzH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;QAC3B,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;YACxC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;QAChF,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;IAC7D,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,WAAW,CAAC,OAAuB;QACvC,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QACnC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,uFAAuF;YACvF,MAAM,IAAI,aAAa,CAAC,4DAA4D,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAA;QAClH,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YAC3B,MAAM,IAAI,aAAa,CAAC,yCAAyC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;QAC3F,CAAC;QACD,+EAA+E;QAC/E,iFAAiF;QACjF,wEAAwE;QACxE,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QACvE,CAAC;QACD,gFAAgF;QAChF,MAAM,CAAC,GAAQ,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QACtF,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,CAAA;QAC1B,OAAO;YACL,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;YACxB,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAA;IACH,CAAC;IAED,qFAAqF;IACrF,KAAK,CAAC,cAAc,CAAC,MAA6D;QAChF,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,MAAM,CAAC,GAAQ,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;QACtG,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,aAAa,CAAC,iDAAiD,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAA;QACpG,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;YACxB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAA;IACH,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,SAAS,CAAC,MAA4D;QAC1E,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;IAC3G,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,WAAmB;QACxC,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,MAAM,CAAC,GAAQ,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;QACxF,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,WAAW,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAsB,CAAA;QAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAA;IAChC,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,gBAAgB,CAAC,OAA2B;QAChD,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,MAAM,OAAO,GAAU,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAA;QACjE,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC/B,uCAAuC;YACvC,6EAA6E;YAC7E,wEAAwE;YACxE,2EAA2E;YAC3E,4EAA4E;YAC5E,4EAA4E;YAC5E,2EAA2E;YAC3E,0EAA0E;YAC1E,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,CAAA;YACxB,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,CAAA;YACjF,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAA;YAC7D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,EAAE,SAAS,IAAI,CAAC,CAAC,CAAA;YAC3C,OAAO;gBACL,EAAE;gBACF,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACjC,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAsB;gBACrG,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACtE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;gBACxC,aAAa,EAAE,EAAE;gBACjB,KAAK,EAAE,SAAoC;gBAC3C,YAAY,EAAE,CAAC;aAChB,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY;QAC/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACzC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAA;QAC5C,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,aAAa,CAAC,cAAc,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC5E,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,EAAE,CAAA,CAAC,iDAAiD;IAC7D,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAA;IAC7C,CAAC;IAED,aAAa;QACX,OAAO,eAAe,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAA;IAChD,CAAC;IAED,6FAA6F;IAC7F,KAAK,CAAC,wBAAwB,CAAC,SAAiB,EAAE,MAAW;QAC3D,IAAI,CAAC,eAAe,EAAE,CAAA;QACtB,MAAM,EAAE,GAAI,IAAI,CAAC,OAAe,CAAC,SAAS,CAAC,CAAA;QAC3C,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,aAAa,CAAC,6BAA6B,SAAS,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;QACvF,CAAC;QACD,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACtC,CAAC;IAED,2EAA2E;IACnE,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,IAAI,aAAa,CAAC,gCAAgC,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAA;QACtF,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LiquidWdkAdapter
|
|
3
|
+
* ----------------
|
|
4
|
+
* Wraps the WDK Liquid module (@kaleidorg/wdk-wallet-liquid, over lwk / Liquid Wallet
|
|
5
|
+
* Kit) onto the stable `IProtocolAdapter` contract. This is the "USD" path: USDt on
|
|
6
|
+
* Liquid is the lite-mode "USD" asset.
|
|
7
|
+
*
|
|
8
|
+
* Liquid is on-chain only — no Lightning, no invoices. Receive = an address.
|
|
9
|
+
* Unlike Spark, the module exposes `listAssets()` + `getTokenBalance()`, so asset
|
|
10
|
+
* enumeration (incl. USDt) works natively with no upstream gap.
|
|
11
|
+
*
|
|
12
|
+
* Discipline: no WDK/lwk types cross the contract — everything returned is a domain
|
|
13
|
+
* type from ../types/base; WDK objects are held as `any`.
|
|
14
|
+
*
|
|
15
|
+
* WDK Liquid surface (from types/index.d.ts):
|
|
16
|
+
* manager: getAccount, getAccountByPath, getFeeRates({normal,fast}: bigint), dispose
|
|
17
|
+
* account: getAddress(): string, getBalance(): bigint, getTokenBalance(id): bigint,
|
|
18
|
+
* transfer({recipient,amount,feeRate?}), sendAsset({assetId,recipient,amount,feeRate?}),
|
|
19
|
+
* listAssets(): {asset_id,balance}[], listUnspents, listTransactions,
|
|
20
|
+
* getNetworkInfo(): {network,policy_asset,address,tip_height}, sign, dispose
|
|
21
|
+
*/
|
|
22
|
+
import { IProtocolAdapter, BaseProtocolConfig } from '../IProtocolAdapter.js';
|
|
23
|
+
import { ProtocolType, Layer, UnifiedAsset, UnifiedTransaction, InvoiceRequest, Invoice, DecodedInvoice, PaymentRequest, PaymentResult, PaymentStatus, Address, ConnectionInfo, TransactionFilter } from '../../types/base.js';
|
|
24
|
+
export { LIQUID_USDT_ASSET_ID } from '../../constants.js';
|
|
25
|
+
export interface LiquidAdapterConfig extends BaseProtocolConfig {
|
|
26
|
+
protocol: 'LIQUID';
|
|
27
|
+
/** BIP-39 mnemonic for this wallet. */
|
|
28
|
+
mnemonic: string;
|
|
29
|
+
/** BIP-44 account index (default 0). */
|
|
30
|
+
accountIndex?: number;
|
|
31
|
+
/** Optional Esplora base URL override. */
|
|
32
|
+
esploraUrl?: string;
|
|
33
|
+
}
|
|
34
|
+
export declare class LiquidWdkAdapter implements IProtocolAdapter {
|
|
35
|
+
readonly protocolName: ProtocolType;
|
|
36
|
+
readonly capabilities: readonly import("../../index.js").ProtocolCapability[];
|
|
37
|
+
readonly supportedLayers: Layer[];
|
|
38
|
+
readonly version = "0.1.0-wdk";
|
|
39
|
+
private manager;
|
|
40
|
+
private account;
|
|
41
|
+
private connected;
|
|
42
|
+
private network;
|
|
43
|
+
private policyAsset;
|
|
44
|
+
connect(config: BaseProtocolConfig): Promise<void>;
|
|
45
|
+
disconnect(): Promise<void>;
|
|
46
|
+
isConnected(): boolean;
|
|
47
|
+
getConnectionInfo(): Promise<ConnectionInfo>;
|
|
48
|
+
getReceiveAddress(assetId?: string): Promise<Address>;
|
|
49
|
+
getBtcBalance(): Promise<{
|
|
50
|
+
confirmed: number;
|
|
51
|
+
unconfirmed: number;
|
|
52
|
+
total: number;
|
|
53
|
+
}>;
|
|
54
|
+
refreshBalances(): Promise<void>;
|
|
55
|
+
listAssets(): Promise<UnifiedAsset[]>;
|
|
56
|
+
getAssetBalance(assetId: string): Promise<UnifiedAsset['balance']>;
|
|
57
|
+
getAsset(assetId: string): Promise<UnifiedAsset>;
|
|
58
|
+
/** L-BTC send. `invoice` carries the recipient Liquid address for on-chain protocols. */
|
|
59
|
+
sendPayment(request: PaymentRequest): Promise<PaymentResult>;
|
|
60
|
+
/** Liquid asset send (e.g. USDt). */
|
|
61
|
+
sendAsset(params: {
|
|
62
|
+
assetId: string;
|
|
63
|
+
address: string;
|
|
64
|
+
amount: number;
|
|
65
|
+
feeRate?: number;
|
|
66
|
+
}): Promise<any>;
|
|
67
|
+
/** L-BTC on-chain send (alias of sendPayment's transfer). */
|
|
68
|
+
sendBtcOnchain(params: {
|
|
69
|
+
address: string;
|
|
70
|
+
amount: number;
|
|
71
|
+
feeRate?: number;
|
|
72
|
+
}): Promise<any>;
|
|
73
|
+
listTransactions(_filter?: TransactionFilter): Promise<UnifiedTransaction[]>;
|
|
74
|
+
getTransaction(txId: string): Promise<UnifiedTransaction>;
|
|
75
|
+
getPaymentStatus(paymentHash: string): Promise<PaymentStatus>;
|
|
76
|
+
getNodeInfo(): Promise<any>;
|
|
77
|
+
getBtcBalanceConfirmed(): Promise<number>;
|
|
78
|
+
createInvoice(_request: InvoiceRequest): Promise<Invoice>;
|
|
79
|
+
decodeInvoice(_invoice: string): Promise<DecodedInvoice>;
|
|
80
|
+
listChannels(): Promise<any[]>;
|
|
81
|
+
listPayments(): Promise<any>;
|
|
82
|
+
listTransfers(): Promise<any>;
|
|
83
|
+
supportsSwaps(): boolean;
|
|
84
|
+
private getPolicyAsset;
|
|
85
|
+
private toUnifiedAsset;
|
|
86
|
+
private assertConnected;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=LiquidWdkAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiquidWdkAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/wdk/LiquidWdkAdapter.ts"],"names":[],"mappings":"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"}
|