@arkade-os/skill 0.1.0
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 +116 -0
- package/SKILL.md +269 -0
- package/cli/arkade.mjs +1018 -0
- package/dist/cjs/index.js +88 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/skills/arkadeBitcoin.js +359 -0
- package/dist/cjs/skills/arkadeBitcoin.js.map +1 -0
- package/dist/cjs/skills/index.js +78 -0
- package/dist/cjs/skills/index.js.map +1 -0
- package/dist/cjs/skills/lendaswap.js +458 -0
- package/dist/cjs/skills/lendaswap.js.map +1 -0
- package/dist/cjs/skills/lightning.js +287 -0
- package/dist/cjs/skills/lightning.js.map +1 -0
- package/dist/cjs/skills/types.js +11 -0
- package/dist/cjs/skills/types.js.map +1 -0
- package/dist/esm/index.js +72 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/skills/arkadeBitcoin.js +354 -0
- package/dist/esm/skills/arkadeBitcoin.js.map +1 -0
- package/dist/esm/skills/index.js +69 -0
- package/dist/esm/skills/index.js.map +1 -0
- package/dist/esm/skills/lendaswap.js +453 -0
- package/dist/esm/skills/lendaswap.js.map +1 -0
- package/dist/esm/skills/lightning.js +282 -0
- package/dist/esm/skills/lightning.js.map +1 -0
- package/dist/esm/skills/types.js +10 -0
- package/dist/esm/skills/types.js.map +1 -0
- package/dist/types/index.d.ts +72 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/skills/arkadeBitcoin.d.ts +218 -0
- package/dist/types/skills/arkadeBitcoin.d.ts.map +1 -0
- package/dist/types/skills/index.d.ts +67 -0
- package/dist/types/skills/index.d.ts.map +1 -0
- package/dist/types/skills/lendaswap.d.ts +152 -0
- package/dist/types/skills/lendaswap.d.ts.map +1 -0
- package/dist/types/skills/lightning.d.ts +181 -0
- package/dist/types/skills/lightning.d.ts.map +1 -0
- package/dist/types/skills/types.d.ts +548 -0
- package/dist/types/skills/types.d.ts.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ArkaLightningSkill - Lightning Network payments via Boltz submarine swaps.
|
|
4
|
+
*
|
|
5
|
+
* This skill provides Lightning Network capabilities for Arkade wallets
|
|
6
|
+
* designed for agent integration (CLI-friendly for agents like MoltBot).
|
|
7
|
+
*
|
|
8
|
+
* @module skills/lightning
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.ArkaLightningSkill = void 0;
|
|
12
|
+
exports.createLightningSkill = createLightningSkill;
|
|
13
|
+
const boltz_swap_1 = require("@arkade-os/boltz-swap");
|
|
14
|
+
/**
|
|
15
|
+
* Default Boltz API URLs by network.
|
|
16
|
+
*/
|
|
17
|
+
const BOLTZ_API_URLS = {
|
|
18
|
+
bitcoin: "https://api.boltz.exchange",
|
|
19
|
+
mainnet: "https://api.boltz.exchange",
|
|
20
|
+
testnet: "https://testnet.boltz.exchange/api",
|
|
21
|
+
signet: "https://testnet.boltz.exchange/api",
|
|
22
|
+
regtest: "http://localhost:9001",
|
|
23
|
+
mutinynet: "https://mutinynet.boltz.exchange/api",
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* ArkaLightningSkill provides Lightning Network payment capabilities
|
|
27
|
+
* for Arkade wallets using Boltz submarine swaps.
|
|
28
|
+
*
|
|
29
|
+
* This skill enables:
|
|
30
|
+
* - Receiving Lightning payments into your Arkade wallet (reverse swaps)
|
|
31
|
+
* - Sending Lightning payments from your Arkade wallet (submarine swaps)
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```typescript
|
|
35
|
+
* import { Wallet, SingleKey } from "@arkade-os/sdk";
|
|
36
|
+
* import { ArkaLightningSkill } from "@arkade-os/skill";
|
|
37
|
+
*
|
|
38
|
+
* // Create a wallet
|
|
39
|
+
* const wallet = await Wallet.create({
|
|
40
|
+
* identity: SingleKey.fromHex(privateKeyHex),
|
|
41
|
+
* arkServerUrl: "https://arkade.computer",
|
|
42
|
+
* });
|
|
43
|
+
*
|
|
44
|
+
* // Create the Lightning skill
|
|
45
|
+
* const lightning = new ArkaLightningSkill({
|
|
46
|
+
* wallet,
|
|
47
|
+
* network: "bitcoin",
|
|
48
|
+
* });
|
|
49
|
+
*
|
|
50
|
+
* // Create an invoice to receive Lightning payment
|
|
51
|
+
* const invoice = await lightning.createInvoice({
|
|
52
|
+
* amount: 50000, // 50,000 sats
|
|
53
|
+
* description: "Payment for coffee",
|
|
54
|
+
* });
|
|
55
|
+
* console.log("Pay this invoice:", invoice.bolt11);
|
|
56
|
+
*
|
|
57
|
+
* // Pay a Lightning invoice
|
|
58
|
+
* const result = await lightning.payInvoice({
|
|
59
|
+
* bolt11: "lnbc...",
|
|
60
|
+
* });
|
|
61
|
+
* console.log("Paid! Preimage:", result.preimage);
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
class ArkaLightningSkill {
|
|
65
|
+
/**
|
|
66
|
+
* Creates a new ArkaLightningSkill instance.
|
|
67
|
+
*
|
|
68
|
+
* @param config - Configuration options
|
|
69
|
+
*/
|
|
70
|
+
constructor(config) {
|
|
71
|
+
this.name = "arka-lightning";
|
|
72
|
+
this.description = "Lightning Network payments via Boltz submarine swaps for Arkade wallets";
|
|
73
|
+
this.version = "1.0.0";
|
|
74
|
+
this.network = config.network;
|
|
75
|
+
const boltzApiUrl = config.boltzApiUrl ||
|
|
76
|
+
BOLTZ_API_URLS[config.network] ||
|
|
77
|
+
BOLTZ_API_URLS.bitcoin;
|
|
78
|
+
this.swapProvider = new boltz_swap_1.BoltzSwapProvider({
|
|
79
|
+
apiUrl: boltzApiUrl,
|
|
80
|
+
network: config.network,
|
|
81
|
+
referralId: config.referralId,
|
|
82
|
+
});
|
|
83
|
+
// Cast wallet to any since boltz-swap expects Wallet from @arkade-os/sdk
|
|
84
|
+
// but we have the local Wallet type - they are structurally identical
|
|
85
|
+
this.arkadeLightning = new boltz_swap_1.ArkadeLightning({
|
|
86
|
+
wallet: config.wallet,
|
|
87
|
+
swapProvider: this.swapProvider,
|
|
88
|
+
arkProvider: config.arkProvider,
|
|
89
|
+
indexerProvider: config.indexerProvider,
|
|
90
|
+
swapManager: config.enableSwapManager
|
|
91
|
+
? { enableAutoActions: true, autoStart: true }
|
|
92
|
+
: undefined,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Check if the Lightning skill is available.
|
|
97
|
+
*
|
|
98
|
+
* @returns true if the skill is properly configured
|
|
99
|
+
*/
|
|
100
|
+
async isAvailable() {
|
|
101
|
+
try {
|
|
102
|
+
await this.swapProvider.getFees();
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Create a Lightning invoice for receiving payment.
|
|
111
|
+
*
|
|
112
|
+
* This creates a Boltz reverse swap, which locks funds on Boltz's side
|
|
113
|
+
* when someone pays the invoice. The funds are then claimed into your
|
|
114
|
+
* Arkade wallet as VTXOs.
|
|
115
|
+
*
|
|
116
|
+
* @param params - Invoice parameters
|
|
117
|
+
* @returns The created invoice with payment details
|
|
118
|
+
*/
|
|
119
|
+
async createInvoice(params) {
|
|
120
|
+
const response = await this.arkadeLightning.createLightningInvoice({
|
|
121
|
+
amount: params.amount,
|
|
122
|
+
description: params.description,
|
|
123
|
+
});
|
|
124
|
+
// Extract expiry from invoice
|
|
125
|
+
const decoded = (0, boltz_swap_1.decodeInvoice)(response.invoice);
|
|
126
|
+
return {
|
|
127
|
+
bolt11: response.invoice,
|
|
128
|
+
paymentHash: response.paymentHash,
|
|
129
|
+
amount: response.amount,
|
|
130
|
+
description: params.description,
|
|
131
|
+
expirySeconds: decoded.expiry,
|
|
132
|
+
createdAt: new Date(),
|
|
133
|
+
preimage: response.preimage,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Pay a Lightning invoice.
|
|
138
|
+
*
|
|
139
|
+
* This creates a Boltz submarine swap, which sends funds from your
|
|
140
|
+
* Arkade wallet to a swap address. Boltz then pays the Lightning invoice
|
|
141
|
+
* and you receive the preimage as proof of payment.
|
|
142
|
+
*
|
|
143
|
+
* @param params - Payment parameters
|
|
144
|
+
* @returns Result containing the preimage and transaction details
|
|
145
|
+
*/
|
|
146
|
+
async payInvoice(params) {
|
|
147
|
+
const response = await this.arkadeLightning.sendLightningPayment({
|
|
148
|
+
invoice: params.bolt11,
|
|
149
|
+
});
|
|
150
|
+
return {
|
|
151
|
+
preimage: response.preimage,
|
|
152
|
+
amount: response.amount,
|
|
153
|
+
txid: response.txid,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get fee information for Lightning swaps.
|
|
158
|
+
*
|
|
159
|
+
* @returns Fee structure for submarine and reverse swaps
|
|
160
|
+
*/
|
|
161
|
+
async getFees() {
|
|
162
|
+
return this.arkadeLightning.getFees();
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Get limits for Lightning swaps.
|
|
166
|
+
*
|
|
167
|
+
* @returns Min and max amounts for swaps
|
|
168
|
+
*/
|
|
169
|
+
async getLimits() {
|
|
170
|
+
return this.arkadeLightning.getLimits();
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get pending swaps.
|
|
174
|
+
*
|
|
175
|
+
* @returns Array of pending swap information
|
|
176
|
+
*/
|
|
177
|
+
async getPendingSwaps() {
|
|
178
|
+
const [reverseSwaps, submarineSwaps] = await Promise.all([
|
|
179
|
+
this.arkadeLightning.getPendingReverseSwaps(),
|
|
180
|
+
this.arkadeLightning.getPendingSubmarineSwaps(),
|
|
181
|
+
]);
|
|
182
|
+
return [
|
|
183
|
+
...reverseSwaps.map((swap) => this.mapReverseSwap(swap)),
|
|
184
|
+
...submarineSwaps.map((swap) => this.mapSubmarineSwap(swap)),
|
|
185
|
+
];
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Get swap history.
|
|
189
|
+
*
|
|
190
|
+
* @returns Array of all swaps (pending and completed)
|
|
191
|
+
*/
|
|
192
|
+
async getSwapHistory() {
|
|
193
|
+
const history = await this.arkadeLightning.getSwapHistory();
|
|
194
|
+
return history.map((swap) => swap.type === "reverse"
|
|
195
|
+
? this.mapReverseSwap(swap)
|
|
196
|
+
: this.mapSubmarineSwap(swap));
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Wait for an invoice to be paid and claim the funds.
|
|
200
|
+
*
|
|
201
|
+
* @param pendingSwap - The pending reverse swap from createInvoice
|
|
202
|
+
* @returns Transaction ID of the claimed funds
|
|
203
|
+
*/
|
|
204
|
+
async waitAndClaim(pendingSwap) {
|
|
205
|
+
return this.arkadeLightning.waitAndClaim(pendingSwap);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Get the underlying ArkadeLightning instance for advanced operations.
|
|
209
|
+
*
|
|
210
|
+
* @returns The ArkadeLightning instance
|
|
211
|
+
*/
|
|
212
|
+
getArkadeLightning() {
|
|
213
|
+
return this.arkadeLightning;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Get the swap provider for direct Boltz API access.
|
|
217
|
+
*
|
|
218
|
+
* @returns The BoltzSwapProvider instance
|
|
219
|
+
*/
|
|
220
|
+
getSwapProvider() {
|
|
221
|
+
return this.swapProvider;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Start the background swap manager if enabled.
|
|
225
|
+
*/
|
|
226
|
+
async startSwapManager() {
|
|
227
|
+
await this.arkadeLightning.startSwapManager();
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Stop the background swap manager.
|
|
231
|
+
*/
|
|
232
|
+
async stopSwapManager() {
|
|
233
|
+
await this.arkadeLightning.stopSwapManager();
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Dispose of resources and stop the swap manager.
|
|
237
|
+
*/
|
|
238
|
+
async dispose() {
|
|
239
|
+
await this.arkadeLightning.dispose();
|
|
240
|
+
}
|
|
241
|
+
mapReverseSwap(swap) {
|
|
242
|
+
return {
|
|
243
|
+
id: swap.id,
|
|
244
|
+
type: "reverse",
|
|
245
|
+
status: swap.status,
|
|
246
|
+
amount: swap.response.onchainAmount,
|
|
247
|
+
createdAt: new Date(swap.createdAt),
|
|
248
|
+
invoice: swap.response.invoice,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
mapSubmarineSwap(swap) {
|
|
252
|
+
// Decode invoice to get amount
|
|
253
|
+
let amount = 0;
|
|
254
|
+
try {
|
|
255
|
+
const decoded = (0, boltz_swap_1.decodeInvoice)(swap.request.invoice);
|
|
256
|
+
amount = decoded.amountSats;
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
amount = swap.response.expectedAmount;
|
|
260
|
+
}
|
|
261
|
+
return {
|
|
262
|
+
id: swap.id,
|
|
263
|
+
type: "submarine",
|
|
264
|
+
status: swap.status,
|
|
265
|
+
amount,
|
|
266
|
+
createdAt: new Date(swap.createdAt),
|
|
267
|
+
invoice: swap.request.invoice,
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
exports.ArkaLightningSkill = ArkaLightningSkill;
|
|
272
|
+
/**
|
|
273
|
+
* Create an ArkaLightningSkill from a wallet and network.
|
|
274
|
+
*
|
|
275
|
+
* @param wallet - The Arkade wallet to use
|
|
276
|
+
* @param network - The network name
|
|
277
|
+
* @param options - Optional configuration
|
|
278
|
+
* @returns A new ArkaLightningSkill instance
|
|
279
|
+
*/
|
|
280
|
+
function createLightningSkill(wallet, network, options) {
|
|
281
|
+
return new ArkaLightningSkill({
|
|
282
|
+
wallet,
|
|
283
|
+
network,
|
|
284
|
+
...options,
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=lightning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightning.js","sourceRoot":"","sources":["../../../src/skills/lightning.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Type definitions for Arkade SDK skills.
|
|
4
|
+
*
|
|
5
|
+
* These types define the interfaces for Bitcoin and Lightning skills
|
|
6
|
+
* designed for agent integration.
|
|
7
|
+
*
|
|
8
|
+
* @module skills/types
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/skills/types.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @arkade-os/skill - Arkade SDK Skills for Agent Integration
|
|
3
|
+
*
|
|
4
|
+
* This package provides skills for sending and receiving Bitcoin over
|
|
5
|
+
* Arkade and Lightning, designed for agent integration (CLI-friendly
|
|
6
|
+
* for agents like MoltBot).
|
|
7
|
+
*
|
|
8
|
+
* ## Available Skills
|
|
9
|
+
*
|
|
10
|
+
* - **ArkadeBitcoinSkill**: Send/receive Bitcoin via Arkade with on/off ramp support
|
|
11
|
+
* - **ArkaLightningSkill**: Lightning Network payments via Boltz submarine swaps
|
|
12
|
+
* - **LendaSwapSkill**: USDC/USDT stablecoin swaps via LendaSwap
|
|
13
|
+
*
|
|
14
|
+
* ## Quick Start
|
|
15
|
+
*
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { Wallet, SingleKey } from "@arkade-os/sdk";
|
|
18
|
+
* import {
|
|
19
|
+
* ArkadeBitcoinSkill,
|
|
20
|
+
* ArkaLightningSkill,
|
|
21
|
+
* LendaSwapSkill,
|
|
22
|
+
* } from "@arkade-os/skill";
|
|
23
|
+
*
|
|
24
|
+
* // Create a wallet (default server: arkade.computer)
|
|
25
|
+
* const wallet = await Wallet.create({
|
|
26
|
+
* identity: SingleKey.fromHex(privateKeyHex),
|
|
27
|
+
* arkServerUrl: "https://arkade.computer",
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* // Bitcoin operations
|
|
31
|
+
* const bitcoin = new ArkadeBitcoinSkill(wallet);
|
|
32
|
+
* const balance = await bitcoin.getBalance();
|
|
33
|
+
*
|
|
34
|
+
* // Lightning operations
|
|
35
|
+
* const lightning = new ArkaLightningSkill({ wallet, network: "bitcoin" });
|
|
36
|
+
* const invoice = await lightning.createInvoice({ amount: 50000 });
|
|
37
|
+
*
|
|
38
|
+
* // Stablecoin swaps
|
|
39
|
+
* const lendaswap = new LendaSwapSkill({ wallet, apiKey: "..." });
|
|
40
|
+
* const quote = await lendaswap.getQuoteBtcToStablecoin(100000, "usdc_pol");
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* ## CLI Usage
|
|
44
|
+
*
|
|
45
|
+
* ```bash
|
|
46
|
+
* # Initialize wallet (default server: arkade.computer)
|
|
47
|
+
* arkade init <private-key-hex>
|
|
48
|
+
*
|
|
49
|
+
* # Show addresses
|
|
50
|
+
* arkade address
|
|
51
|
+
* arkade boarding-address
|
|
52
|
+
*
|
|
53
|
+
* # Check balance
|
|
54
|
+
* arkade balance
|
|
55
|
+
*
|
|
56
|
+
* # Send Bitcoin
|
|
57
|
+
* arkade send <ark-address> <amount-sats>
|
|
58
|
+
*
|
|
59
|
+
* # Lightning
|
|
60
|
+
* arkade ln-invoice <amount> [description]
|
|
61
|
+
* arkade ln-pay <bolt11>
|
|
62
|
+
*
|
|
63
|
+
* # Stablecoins
|
|
64
|
+
* arkade swap-quote <amount> <from> <to>
|
|
65
|
+
* arkade swap-pairs
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* @packageDocumentation
|
|
69
|
+
*/
|
|
70
|
+
// Re-export all skills and types
|
|
71
|
+
export * from "./skills";
|
|
72
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AAEH,iCAAiC;AACjC,cAAc,UAAU,CAAC"}
|