@sats-connect/core 0.0.6-92acf81 → 0.0.7-3dc7c89
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/dist/index.d.mts +27 -0
- package/dist/index.mjs +101 -3
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -437,6 +437,14 @@ type GetOrderResponse = {
|
|
|
437
437
|
reason?: string;
|
|
438
438
|
createdAt: string;
|
|
439
439
|
};
|
|
440
|
+
type RPFOrderRequest = {
|
|
441
|
+
orderId: string;
|
|
442
|
+
newFeeRate: number;
|
|
443
|
+
};
|
|
444
|
+
type RPFOrderResponse = {
|
|
445
|
+
rbfCost: number;
|
|
446
|
+
fundingAddress: string;
|
|
447
|
+
};
|
|
440
448
|
|
|
441
449
|
interface EstimateRunesMintParams extends EstimateMintOrderRequest {
|
|
442
450
|
network?: BitcoinNetworkType;
|
|
@@ -449,6 +457,7 @@ interface MintRunesParams extends CreateMintOrderRequest {
|
|
|
449
457
|
type MintRunesResult = {
|
|
450
458
|
orderId: string;
|
|
451
459
|
fundTransactionId: string;
|
|
460
|
+
fundingAddress: string;
|
|
452
461
|
};
|
|
453
462
|
type MintRunes = MethodParamsAndResult<MintRunesParams, MintRunesResult>;
|
|
454
463
|
interface EstimateRunesEtchParams extends EstimateEtchOrderRequest {
|
|
@@ -462,12 +471,26 @@ interface EtchRunesParams extends CreateEtchOrderRequest {
|
|
|
462
471
|
type EtchRunesResult = {
|
|
463
472
|
orderId: string;
|
|
464
473
|
fundTransactionId: string;
|
|
474
|
+
fundingAddress: string;
|
|
465
475
|
};
|
|
466
476
|
type EtchRunes = MethodParamsAndResult<EtchRunesParams, EtchRunesResult>;
|
|
467
477
|
interface GetOrderParams extends GetOrderRequest {
|
|
468
478
|
network?: BitcoinNetworkType;
|
|
469
479
|
}
|
|
470
480
|
type GetOrder = MethodParamsAndResult<GetOrderParams, GetOrderResponse>;
|
|
481
|
+
interface EstimateRpfOrderParams extends RPFOrderRequest {
|
|
482
|
+
network?: BitcoinNetworkType;
|
|
483
|
+
}
|
|
484
|
+
type EstimateRpfOrder = MethodParamsAndResult<EstimateRpfOrderParams, RPFOrderResponse>;
|
|
485
|
+
interface RpfOrderParams extends RPFOrderRequest {
|
|
486
|
+
network?: BitcoinNetworkType;
|
|
487
|
+
}
|
|
488
|
+
interface RpfOrderResult {
|
|
489
|
+
orderId: string;
|
|
490
|
+
fundRBFTransactionId: string;
|
|
491
|
+
fundingAddress: string;
|
|
492
|
+
}
|
|
493
|
+
type RpfOrder = MethodParamsAndResult<RpfOrderParams, RpfOrderResult>;
|
|
471
494
|
|
|
472
495
|
interface Pubkey {
|
|
473
496
|
/**
|
|
@@ -675,6 +698,8 @@ interface RunesRequests {
|
|
|
675
698
|
runes_estimateEtch: EstimateRunesEtch;
|
|
676
699
|
runes_etch: EtchRunes;
|
|
677
700
|
runes_getOrder: GetOrder;
|
|
701
|
+
runes_estimateRpfOrder: EstimateRpfOrder;
|
|
702
|
+
runes_rpfOrder: RpfOrder;
|
|
678
703
|
}
|
|
679
704
|
type RunesRequestMethod = keyof RunesRequests;
|
|
680
705
|
type Requests = BtcRequests & StxRequests & RunesRequests;
|
|
@@ -690,6 +715,8 @@ declare abstract class SatsConnectAdapter {
|
|
|
690
715
|
private estimateMint;
|
|
691
716
|
private estimateEtch;
|
|
692
717
|
private getOrder;
|
|
718
|
+
private estimateRpfOrder;
|
|
719
|
+
private rpfOrder;
|
|
693
720
|
request<Method extends keyof Requests>(method: Method, params: Params<Method>): Promise<RpcResult<Method> | undefined>;
|
|
694
721
|
protected abstract requestInternal<Method extends keyof Requests>(method: Method, params: Params<Method>): Promise<RpcResult<Method> | undefined>;
|
|
695
722
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -134,6 +134,22 @@ var RunesApi = class {
|
|
|
134
134
|
};
|
|
135
135
|
}
|
|
136
136
|
};
|
|
137
|
+
rpfOrder = async (rpfRequest) => {
|
|
138
|
+
const { orderId, newFeeRate } = rpfRequest;
|
|
139
|
+
try {
|
|
140
|
+
const response = await this.client.post(`/orders/${orderId}/rbf-estimate`, {
|
|
141
|
+
newFeeRate
|
|
142
|
+
});
|
|
143
|
+
return {
|
|
144
|
+
data: response.data
|
|
145
|
+
};
|
|
146
|
+
} catch (error) {
|
|
147
|
+
const err = error;
|
|
148
|
+
return {
|
|
149
|
+
error: this.parseError(err)
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
};
|
|
137
153
|
};
|
|
138
154
|
var testnetClient = new RunesApi("Testnet" /* Testnet */);
|
|
139
155
|
var mainnetClient = new RunesApi("Mainnet" /* Mainnet */);
|
|
@@ -187,7 +203,8 @@ var SatsConnectAdapter = class {
|
|
|
187
203
|
status: "success",
|
|
188
204
|
result: {
|
|
189
205
|
orderId: orderResponse.data.orderId,
|
|
190
|
-
fundTransactionId: paymentResponse.result.txid
|
|
206
|
+
fundTransactionId: paymentResponse.result.txid,
|
|
207
|
+
fundingAddress: orderResponse.data.fundAddress
|
|
191
208
|
}
|
|
192
209
|
};
|
|
193
210
|
} catch (error) {
|
|
@@ -252,7 +269,8 @@ var SatsConnectAdapter = class {
|
|
|
252
269
|
status: "success",
|
|
253
270
|
result: {
|
|
254
271
|
orderId: orderResponse.data.orderId,
|
|
255
|
-
fundTransactionId: paymentResponse.result.txid
|
|
272
|
+
fundTransactionId: paymentResponse.result.txid,
|
|
273
|
+
fundingAddress: orderResponse.data.fundAddress
|
|
256
274
|
}
|
|
257
275
|
};
|
|
258
276
|
} catch (error) {
|
|
@@ -337,6 +355,80 @@ var SatsConnectAdapter = class {
|
|
|
337
355
|
}
|
|
338
356
|
};
|
|
339
357
|
}
|
|
358
|
+
async estimateRpfOrder(params) {
|
|
359
|
+
const rpfOrderRequest = {
|
|
360
|
+
newFeeRate: params.newFeeRate,
|
|
361
|
+
orderId: params.orderId
|
|
362
|
+
};
|
|
363
|
+
const response = await getRunesApiClient(params.network).rpfOrder(rpfOrderRequest);
|
|
364
|
+
if (response.data) {
|
|
365
|
+
return {
|
|
366
|
+
status: "success",
|
|
367
|
+
result: {
|
|
368
|
+
fundingAddress: response.data.fundingAddress,
|
|
369
|
+
rbfCost: response.data.rbfCost
|
|
370
|
+
}
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
return {
|
|
374
|
+
status: "error",
|
|
375
|
+
error: {
|
|
376
|
+
code: response.error.code === 400 ? -32600 /* INVALID_REQUEST */ : -32603 /* INTERNAL_ERROR */,
|
|
377
|
+
message: response.error.message
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
async rpfOrder(params) {
|
|
382
|
+
try {
|
|
383
|
+
const rpfOrderRequest = {
|
|
384
|
+
newFeeRate: params.newFeeRate,
|
|
385
|
+
orderId: params.orderId
|
|
386
|
+
};
|
|
387
|
+
const orderResponse = await getRunesApiClient(params.network).rpfOrder(rpfOrderRequest);
|
|
388
|
+
if (!orderResponse.data) {
|
|
389
|
+
return {
|
|
390
|
+
status: "error",
|
|
391
|
+
error: {
|
|
392
|
+
code: orderResponse.error.code === 400 ? -32600 /* INVALID_REQUEST */ : -32603 /* INTERNAL_ERROR */,
|
|
393
|
+
message: orderResponse.error.message
|
|
394
|
+
}
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
const paymentResponse = await this.requestInternal("sendTransfer", {
|
|
398
|
+
recipients: [
|
|
399
|
+
{
|
|
400
|
+
address: orderResponse.data.fundingAddress,
|
|
401
|
+
amount: orderResponse.data.rbfCost
|
|
402
|
+
}
|
|
403
|
+
]
|
|
404
|
+
});
|
|
405
|
+
if (paymentResponse?.status !== "success") {
|
|
406
|
+
return {
|
|
407
|
+
status: "error",
|
|
408
|
+
error: {
|
|
409
|
+
code: -32e3 /* USER_REJECTION */,
|
|
410
|
+
message: "User rejected the payment request"
|
|
411
|
+
}
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
return {
|
|
415
|
+
status: "success",
|
|
416
|
+
result: {
|
|
417
|
+
fundingAddress: orderResponse.data.fundingAddress,
|
|
418
|
+
orderId: rpfOrderRequest.orderId,
|
|
419
|
+
fundRBFTransactionId: paymentResponse.result.txid
|
|
420
|
+
}
|
|
421
|
+
};
|
|
422
|
+
} catch (error) {
|
|
423
|
+
return {
|
|
424
|
+
status: "error",
|
|
425
|
+
error: {
|
|
426
|
+
code: -32603 /* INTERNAL_ERROR */,
|
|
427
|
+
message: error.message
|
|
428
|
+
}
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
}
|
|
340
432
|
async request(method, params) {
|
|
341
433
|
switch (method) {
|
|
342
434
|
case "runes_mint":
|
|
@@ -350,6 +442,12 @@ var SatsConnectAdapter = class {
|
|
|
350
442
|
case "runes_getOrder": {
|
|
351
443
|
return this.getOrder(params);
|
|
352
444
|
}
|
|
445
|
+
case "runes_estimateRpfOrder": {
|
|
446
|
+
return this.estimateRpfOrder(params);
|
|
447
|
+
}
|
|
448
|
+
case "runes_rpfOrder": {
|
|
449
|
+
return this.rpfOrder(params);
|
|
450
|
+
}
|
|
353
451
|
default:
|
|
354
452
|
return this.requestInternal(method, params);
|
|
355
453
|
}
|
|
@@ -498,7 +596,7 @@ var UnisatAdapter = class extends SatsConnectAdapter {
|
|
|
498
596
|
id = DefaultAdaptersInfo.unisat.id;
|
|
499
597
|
async getAccounts(params) {
|
|
500
598
|
const { purposes } = params;
|
|
501
|
-
if (
|
|
599
|
+
if (purposes.includes("stacks" /* Stacks */)) {
|
|
502
600
|
throw new Error("Only bitcoin addresses are supported");
|
|
503
601
|
}
|
|
504
602
|
const accounts = await window.unisat.requestAccounts();
|