@kaleidorg/wallet-engine 1.0.0-beta.36 → 1.0.0-beta.37
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/adapters/RgbAdapter.d.ts +70 -28
- package/dist/adapters/RgbAdapter.d.ts.map +1 -1
- package/dist/adapters/RgbAdapter.js +463 -371
- package/dist/adapters/RgbAdapter.js.map +1 -1
- package/dist/adapters/rgb.d.ts +11 -0
- package/dist/adapters/rgb.d.ts.map +1 -0
- package/dist/adapters/rgb.js +11 -0
- package/dist/adapters/rgb.js.map +1 -0
- package/dist/lib/kaleido-client-manager.d.ts +38 -3
- package/dist/lib/kaleido-client-manager.d.ts.map +1 -1
- package/dist/lib/kaleido-client-manager.js +79 -10
- package/dist/lib/kaleido-client-manager.js.map +1 -1
- package/dist/lib/rgb-converters.d.ts +62 -0
- package/dist/lib/rgb-converters.d.ts.map +1 -0
- package/dist/lib/rgb-converters.js +179 -0
- package/dist/lib/rgb-converters.js.map +1 -0
- package/dist/lib/rgb-fee-policy.d.ts +41 -0
- package/dist/lib/rgb-fee-policy.d.ts.map +1 -0
- package/dist/lib/rgb-fee-policy.js +52 -0
- package/dist/lib/rgb-fee-policy.js.map +1 -0
- package/dist/lib/rgb-helpers.d.ts +54 -0
- package/dist/lib/rgb-helpers.d.ts.map +1 -0
- package/dist/lib/rgb-helpers.js +89 -0
- package/dist/lib/rgb-helpers.js.map +1 -0
- package/package.json +5 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rgb-converters.js","sourceRoot":"","sources":["../../src/lib/rgb-converters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure fee-rate policy for RGB on-chain operations.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from `RgbAdapter#resolveFeeRate` so the priority order +
|
|
5
|
+
* mainnet floors are unit-testable without a live RGB client.
|
|
6
|
+
*
|
|
7
|
+
* The policy ([GL #26]):
|
|
8
|
+
* 1. If the caller passed a positive `provided` rate, honour it. The
|
|
9
|
+
* advanced UI can override the floor when the user knows what they
|
|
10
|
+
* want.
|
|
11
|
+
* 2. Non-mainnet networks (regtest/signet/testnet/null/unknown):
|
|
12
|
+
* return `1 sat/vB`. Cheap, always confirms locally.
|
|
13
|
+
* 3. Mainnet: ask the node for an estimate at the urgency-mapped block
|
|
14
|
+
* target, floor at `MAINNET_FEE_FLOOR[urgency]` so a cold-started
|
|
15
|
+
* node returning `1 sat/vB` doesn't strand mainnet transactions.
|
|
16
|
+
* 4. Mainnet + estimate failure: return the floor.
|
|
17
|
+
*/
|
|
18
|
+
export type FeeUrgency = "low" | "normal" | "high";
|
|
19
|
+
/**
|
|
20
|
+
* Conservative mainnet floors (sat/vB). Well above the dust-attack rate
|
|
21
|
+
* but still cheap relative to any user-facing payment. Tuned for a
|
|
22
|
+
* typical 10-min-block target at "normal" urgency. Adjust here if
|
|
23
|
+
* mainnet conditions shift — every call site reads from this table.
|
|
24
|
+
*/
|
|
25
|
+
export declare const MAINNET_FEE_FLOOR: Record<FeeUrgency, number>;
|
|
26
|
+
export interface ResolveRgbFeeRateInput {
|
|
27
|
+
/** Caller-provided rate (advanced UI override). Wins when > 0. */
|
|
28
|
+
provided: number | undefined;
|
|
29
|
+
/** Urgency tier; maps to a block target + floor. */
|
|
30
|
+
urgency: FeeUrgency;
|
|
31
|
+
/** Active network from the adapter config. `null` = unknown / not connected. */
|
|
32
|
+
network: string | null;
|
|
33
|
+
/**
|
|
34
|
+
* Async estimator. Receives the urgency-mapped block target. Should return
|
|
35
|
+
* the node's `fee_rate` in sat/vB, or `null` on failure. Failures must
|
|
36
|
+
* not throw — the policy needs a value to fall back on.
|
|
37
|
+
*/
|
|
38
|
+
estimateFn: (blocks: number) => Promise<number | null>;
|
|
39
|
+
}
|
|
40
|
+
export declare function resolveRgbFeeRatePolicy(input: ResolveRgbFeeRateInput): Promise<number>;
|
|
41
|
+
//# sourceMappingURL=rgb-fee-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rgb-fee-policy.d.ts","sourceRoot":"","sources":["../../src/lib/rgb-fee-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AASnD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAIxD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,oDAAoD;IACpD,OAAO,EAAE,UAAU,CAAC;IACpB,gFAAgF;IAChF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;OAIG;IACH,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACxD;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB5F"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure fee-rate policy for RGB on-chain operations.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from `RgbAdapter#resolveFeeRate` so the priority order +
|
|
5
|
+
* mainnet floors are unit-testable without a live RGB client.
|
|
6
|
+
*
|
|
7
|
+
* The policy ([GL #26]):
|
|
8
|
+
* 1. If the caller passed a positive `provided` rate, honour it. The
|
|
9
|
+
* advanced UI can override the floor when the user knows what they
|
|
10
|
+
* want.
|
|
11
|
+
* 2. Non-mainnet networks (regtest/signet/testnet/null/unknown):
|
|
12
|
+
* return `1 sat/vB`. Cheap, always confirms locally.
|
|
13
|
+
* 3. Mainnet: ask the node for an estimate at the urgency-mapped block
|
|
14
|
+
* target, floor at `MAINNET_FEE_FLOOR[urgency]` so a cold-started
|
|
15
|
+
* node returning `1 sat/vB` doesn't strand mainnet transactions.
|
|
16
|
+
* 4. Mainnet + estimate failure: return the floor.
|
|
17
|
+
*/
|
|
18
|
+
/** Block-target mapping per urgency. high = next block, low = ~2 hours. */
|
|
19
|
+
const URGENCY_BLOCKS = {
|
|
20
|
+
high: 1,
|
|
21
|
+
normal: 6,
|
|
22
|
+
low: 12,
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Conservative mainnet floors (sat/vB). Well above the dust-attack rate
|
|
26
|
+
* but still cheap relative to any user-facing payment. Tuned for a
|
|
27
|
+
* typical 10-min-block target at "normal" urgency. Adjust here if
|
|
28
|
+
* mainnet conditions shift — every call site reads from this table.
|
|
29
|
+
*/
|
|
30
|
+
export const MAINNET_FEE_FLOOR = {
|
|
31
|
+
low: 5,
|
|
32
|
+
normal: 10,
|
|
33
|
+
high: 25,
|
|
34
|
+
};
|
|
35
|
+
export async function resolveRgbFeeRatePolicy(input) {
|
|
36
|
+
const { provided, urgency, network, estimateFn } = input;
|
|
37
|
+
if (typeof provided === "number" && Number.isFinite(provided) && provided > 0) {
|
|
38
|
+
return provided;
|
|
39
|
+
}
|
|
40
|
+
const isMainnet = network === "mainnet";
|
|
41
|
+
if (!isMainnet) {
|
|
42
|
+
return 1;
|
|
43
|
+
}
|
|
44
|
+
const floor = MAINNET_FEE_FLOOR[urgency];
|
|
45
|
+
const blocks = URGENCY_BLOCKS[urgency];
|
|
46
|
+
const estimate = await estimateFn(blocks);
|
|
47
|
+
if (estimate == null || !Number.isFinite(estimate) || estimate <= 0) {
|
|
48
|
+
return floor;
|
|
49
|
+
}
|
|
50
|
+
return Math.max(Math.floor(estimate), floor);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=rgb-fee-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rgb-fee-policy.js","sourceRoot":"","sources":["../../src/lib/rgb-fee-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,2EAA2E;AAC3E,MAAM,cAAc,GAA+B;IACjD,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,EAAE;CACR,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+B;IAC3D,GAAG,EAAE,CAAC;IACN,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,EAAE;CACT,CAAC;AAiBF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAA6B;IACzE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IACzD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QAC9E,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,CAAC;IACxC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,QAAQ,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure helpers for the RGB adapter.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from src/protocols/rgb/adapter.ts so the adapter file can stay
|
|
5
|
+
* focused on the IProtocolAdapter surface + SDK orchestration. Everything in
|
|
6
|
+
* this module is side-effect free, has no `this` dependencies, and is
|
|
7
|
+
* covered by tests/unit/rgb-helpers.test.ts.
|
|
8
|
+
*
|
|
9
|
+
* Adding to this module: keep helpers pure (no class state, no SDK calls).
|
|
10
|
+
* Anything that needs the kaleido SDK client or the adapter's own config
|
|
11
|
+
* belongs in adapter.ts.
|
|
12
|
+
*/
|
|
13
|
+
import type { TransactionStatus, TransactionType } from "../types/base.js";
|
|
14
|
+
/**
|
|
15
|
+
* Render a raw integer amount in the asset's display precision.
|
|
16
|
+
* Always emits `precision` fractional digits — the caller can trim trailing
|
|
17
|
+
* zeros if it wants a tighter rendering.
|
|
18
|
+
*/
|
|
19
|
+
export declare function formatAmount(amount: number, precision: number): string;
|
|
20
|
+
/**
|
|
21
|
+
* Map the SDK's transfer `kind` field to our unified TransactionType.
|
|
22
|
+
*
|
|
23
|
+
* The SDK is inconsistent about case + naming — both raw lowercase strings
|
|
24
|
+
* and PascalCase ("ReceiveAsset", "SendAsset") have been observed. Defaults
|
|
25
|
+
* to "send" for unknown / undefined input so legacy entries don't display
|
|
26
|
+
* as a confusing third state.
|
|
27
|
+
*/
|
|
28
|
+
export declare function mapTransferType(kind?: string): TransactionType;
|
|
29
|
+
/**
|
|
30
|
+
* Map the SDK's transfer status string to our unified TransactionStatus.
|
|
31
|
+
*
|
|
32
|
+
* SDK casing has drifted between releases; we accept both. "WaitingCounterparty"
|
|
33
|
+
* is RGB-specific (lightning transfer waiting on the receiver) and maps to
|
|
34
|
+
* pending so the UI keeps showing the spinner rather than green-checking too
|
|
35
|
+
* early.
|
|
36
|
+
*/
|
|
37
|
+
export declare function mapTransferStatus(status?: string): TransactionStatus;
|
|
38
|
+
/**
|
|
39
|
+
* Map a Lightning-payment status string to our unified TransactionStatus.
|
|
40
|
+
*
|
|
41
|
+
* Three variants of "succeeded" have shown up in the SDK across versions —
|
|
42
|
+
* we accept all three to insulate the wallet UI from upstream churn.
|
|
43
|
+
*/
|
|
44
|
+
export declare function mapPaymentStatus(status?: string): TransactionStatus;
|
|
45
|
+
/**
|
|
46
|
+
* Map a maker/taker swap status string to our unified TransactionStatus.
|
|
47
|
+
*
|
|
48
|
+
* The SDK historically returned PascalCase ("Completed") and lowercase
|
|
49
|
+
* ("completed", "success", "error") interchangeably depending on whether
|
|
50
|
+
* the response came from the maker or taker side. The mapper accepts both
|
|
51
|
+
* so a refactor of the SDK doesn't quietly flip swaps to "pending".
|
|
52
|
+
*/
|
|
53
|
+
export declare function mapSwapStatus(status?: string): TransactionStatus;
|
|
54
|
+
//# sourceMappingURL=rgb-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rgb-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/rgb-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAExE;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe,CAK9D;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAMpE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAKnE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAKhE"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure helpers for the RGB adapter.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from src/protocols/rgb/adapter.ts so the adapter file can stay
|
|
5
|
+
* focused on the IProtocolAdapter surface + SDK orchestration. Everything in
|
|
6
|
+
* this module is side-effect free, has no `this` dependencies, and is
|
|
7
|
+
* covered by tests/unit/rgb-helpers.test.ts.
|
|
8
|
+
*
|
|
9
|
+
* Adding to this module: keep helpers pure (no class state, no SDK calls).
|
|
10
|
+
* Anything that needs the kaleido SDK client or the adapter's own config
|
|
11
|
+
* belongs in adapter.ts.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Render a raw integer amount in the asset's display precision.
|
|
15
|
+
* Always emits `precision` fractional digits — the caller can trim trailing
|
|
16
|
+
* zeros if it wants a tighter rendering.
|
|
17
|
+
*/
|
|
18
|
+
export function formatAmount(amount, precision) {
|
|
19
|
+
return (amount / Math.pow(10, precision)).toFixed(precision);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Map the SDK's transfer `kind` field to our unified TransactionType.
|
|
23
|
+
*
|
|
24
|
+
* The SDK is inconsistent about case + naming — both raw lowercase strings
|
|
25
|
+
* and PascalCase ("ReceiveAsset", "SendAsset") have been observed. Defaults
|
|
26
|
+
* to "send" for unknown / undefined input so legacy entries don't display
|
|
27
|
+
* as a confusing third state.
|
|
28
|
+
*/
|
|
29
|
+
export function mapTransferType(kind) {
|
|
30
|
+
if (!kind)
|
|
31
|
+
return "send";
|
|
32
|
+
if (kind.includes("receive") || kind.includes("ReceiveAsset"))
|
|
33
|
+
return "receive";
|
|
34
|
+
if (kind.includes("send") || kind.includes("SendAsset"))
|
|
35
|
+
return "send";
|
|
36
|
+
return "send";
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Map the SDK's transfer status string to our unified TransactionStatus.
|
|
40
|
+
*
|
|
41
|
+
* SDK casing has drifted between releases; we accept both. "WaitingCounterparty"
|
|
42
|
+
* is RGB-specific (lightning transfer waiting on the receiver) and maps to
|
|
43
|
+
* pending so the UI keeps showing the spinner rather than green-checking too
|
|
44
|
+
* early.
|
|
45
|
+
*/
|
|
46
|
+
export function mapTransferStatus(status) {
|
|
47
|
+
if (!status)
|
|
48
|
+
return "pending";
|
|
49
|
+
if (status === "Settled" || status === "settled")
|
|
50
|
+
return "confirmed";
|
|
51
|
+
if (status === "Failed" || status === "failed")
|
|
52
|
+
return "failed";
|
|
53
|
+
if (status === "WaitingCounterparty")
|
|
54
|
+
return "pending";
|
|
55
|
+
return "pending";
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Map a Lightning-payment status string to our unified TransactionStatus.
|
|
59
|
+
*
|
|
60
|
+
* Three variants of "succeeded" have shown up in the SDK across versions —
|
|
61
|
+
* we accept all three to insulate the wallet UI from upstream churn.
|
|
62
|
+
*/
|
|
63
|
+
export function mapPaymentStatus(status) {
|
|
64
|
+
if (!status)
|
|
65
|
+
return "pending";
|
|
66
|
+
if (status === "succeeded" || status === "success" || status === "Succeeded")
|
|
67
|
+
return "confirmed";
|
|
68
|
+
if (status === "failed" || status === "Failed")
|
|
69
|
+
return "failed";
|
|
70
|
+
return "pending";
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Map a maker/taker swap status string to our unified TransactionStatus.
|
|
74
|
+
*
|
|
75
|
+
* The SDK historically returned PascalCase ("Completed") and lowercase
|
|
76
|
+
* ("completed", "success", "error") interchangeably depending on whether
|
|
77
|
+
* the response came from the maker or taker side. The mapper accepts both
|
|
78
|
+
* so a refactor of the SDK doesn't quietly flip swaps to "pending".
|
|
79
|
+
*/
|
|
80
|
+
export function mapSwapStatus(status) {
|
|
81
|
+
if (!status)
|
|
82
|
+
return "pending";
|
|
83
|
+
if (status === "completed" || status === "success" || status === "Completed")
|
|
84
|
+
return "confirmed";
|
|
85
|
+
if (status === "failed" || status === "error" || status === "Failed")
|
|
86
|
+
return "failed";
|
|
87
|
+
return "pending";
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=rgb-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rgb-helpers.js","sourceRoot":"","sources":["../../src/lib/rgb-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,SAAiB;IAC5D,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAAa;IAC3C,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;IACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,SAAS,CAAC;IAChF,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC;IACvE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAC/C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IACrE,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAChE,IAAI,MAAM,KAAK,qBAAqB;QAAE,OAAO,SAAS,CAAC;IACvD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAe;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IACjG,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAChE,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IACjG,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACtF,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kaleidorg/wallet-engine",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.37",
|
|
4
4
|
"description": "WDK-based multi-protocol wallet engine (Spark, RGB/RLN, Liquid, Arkade): IProtocolAdapter contract + WDK adapters, cross-protocol router, BIP321 unified receive, and lite/advanced disclosure.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -22,6 +22,10 @@
|
|
|
22
22
|
"types": "./dist/adapters/spark.d.ts",
|
|
23
23
|
"default": "./dist/adapters/spark.js"
|
|
24
24
|
},
|
|
25
|
+
"./adapters/rgb": {
|
|
26
|
+
"types": "./dist/adapters/rgb.d.ts",
|
|
27
|
+
"default": "./dist/adapters/rgb.js"
|
|
28
|
+
},
|
|
25
29
|
"./adapters/wdk": {
|
|
26
30
|
"types": "./dist/adapters/wdk/index.d.ts",
|
|
27
31
|
"default": "./dist/adapters/wdk/index.js"
|