mainnet-js 4.0.0-next.11 → 4.0.0-next.13
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/module/db/EncryptedStorageProvider.d.ts +137 -0
- package/dist/module/db/EncryptedStorageProvider.d.ts.map +1 -0
- package/dist/module/db/EncryptedStorageProvider.js +403 -0
- package/dist/module/db/EncryptedStorageProvider.js.map +1 -0
- package/dist/module/db/StorageProvider.d.ts +6 -0
- package/dist/module/db/StorageProvider.d.ts.map +1 -1
- package/dist/module/db/StorageProvider.js.map +1 -1
- package/dist/module/history/getHistory.js +1 -1
- package/dist/module/history/getHistory.js.map +1 -1
- package/dist/module/index.d.ts.map +1 -1
- package/dist/module/index.js +2 -0
- package/dist/module/index.js.map +1 -1
- package/dist/module/transaction/Wif.d.ts +11 -4
- package/dist/module/transaction/Wif.d.ts.map +1 -1
- package/dist/module/transaction/Wif.js +82 -35
- package/dist/module/transaction/Wif.js.map +1 -1
- package/dist/module/transaction/coin-control/fee.d.ts +32 -0
- package/dist/module/transaction/coin-control/fee.d.ts.map +1 -0
- package/dist/module/transaction/coin-control/fee.js +37 -0
- package/dist/module/transaction/coin-control/fee.js.map +1 -0
- package/dist/module/transaction/coin-control/index.d.ts +6 -0
- package/dist/module/transaction/coin-control/index.d.ts.map +1 -0
- package/dist/module/transaction/coin-control/index.js +5 -0
- package/dist/module/transaction/coin-control/index.js.map +1 -0
- package/dist/module/transaction/coin-control/input-order.d.ts +22 -0
- package/dist/module/transaction/coin-control/input-order.d.ts.map +1 -0
- package/dist/module/transaction/coin-control/input-order.js +54 -0
- package/dist/module/transaction/coin-control/input-order.js.map +1 -0
- package/dist/module/transaction/coin-control/output-order.d.ts +22 -0
- package/dist/module/transaction/coin-control/output-order.d.ts.map +1 -0
- package/dist/module/transaction/coin-control/output-order.js +77 -0
- package/dist/module/transaction/coin-control/output-order.js.map +1 -0
- package/dist/module/transaction/coin-control/selection.d.ts +54 -0
- package/dist/module/transaction/coin-control/selection.d.ts.map +1 -0
- package/dist/module/transaction/coin-control/selection.js +135 -0
- package/dist/module/transaction/coin-control/selection.js.map +1 -0
- package/dist/module/transaction/coin-control/types.d.ts +62 -0
- package/dist/module/transaction/coin-control/types.d.ts.map +1 -0
- package/dist/module/transaction/coin-control/types.js +2 -0
- package/dist/module/transaction/coin-control/types.js.map +1 -0
- package/dist/module/wallet/Base.d.ts.map +1 -1
- package/dist/module/wallet/Base.js +10 -2
- package/dist/module/wallet/Base.js.map +1 -1
- package/dist/module/wallet/interface.d.ts +9 -0
- package/dist/module/wallet/interface.d.ts.map +1 -1
- package/package.json +13 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAIrE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,cAAc,wBAAwB,CAAC;AAEvC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,YAAY,EACV,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,aAAa,GACd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC1F,YAAY,EACV,sBAAsB,EACtB,mCAAmC,EACnC,qCAAqC,GACtC,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/E,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE1D,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EACL,QAAQ,EACR,eAAe,EACf,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,MAAM,EACN,SAAS,GACV,MAAM,iBAAiB,CAAC"}
|
package/dist/module/index.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
export { Config } from "./config.js";
|
|
3
3
|
// db
|
|
4
4
|
export { default as StorageProvider } from "./db/StorageProvider.js";
|
|
5
|
+
// EncryptedStorageProvider is available via the sub-entry "mainnet-js/encrypted-storage"
|
|
6
|
+
// so it stays out of the main bundle for consumers that don't use it.
|
|
5
7
|
// Enum
|
|
6
8
|
export { NetworkType, UnitEnum } from "./enum.js";
|
|
7
9
|
// history
|
package/dist/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,KAAK;AACL,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO;AACP,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAClD,UAAU;AACV,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,aAAa;AACb,cAAc,gBAAgB,CAAC;AAC/B,6CAA6C;AAC7C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAKxC,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO;AACP,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,UAAU;AACV,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAO1F,iBAAiB;AACjB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1D,QAAQ;AACR,cAAc,iBAAiB,CAAC;AAChC,8CAA8C;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,gFAAgF;AAChF,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EACL,QAAQ,EACR,eAAe,EACf,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,wBAAwB;AACxB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,MAAM,EACN,SAAS,GACV,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,KAAK;AACL,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACrE,yFAAyF;AACzF,sEAAsE;AACtE,OAAO;AACP,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAClD,UAAU;AACV,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,cAAc,wBAAwB,CAAC;AACvC,aAAa;AACb,cAAc,gBAAgB,CAAC;AAC/B,6CAA6C;AAC7C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAKxC,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO;AACP,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,aAAa,GACd,MAAM,yBAAyB,CAAC;AACjC,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,UAAU;AACV,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAO1F,iBAAiB;AACjB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1D,QAAQ;AACR,cAAc,iBAAiB,CAAC;AAChC,8CAA8C;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,gFAAgF;AAChF,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EACL,QAAQ,EACR,eAAe,EACf,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,wBAAwB;AACxB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,MAAM,EACN,SAAS,GACV,MAAM,iBAAiB,CAAC"}
|
|
@@ -3,9 +3,10 @@ import { WalletCache } from "../cache/walletCache.js";
|
|
|
3
3
|
import { Utxo } from "../interface.js";
|
|
4
4
|
import { FeePaidByEnum } from "../wallet/enum.js";
|
|
5
5
|
import { OpReturnData, SendRequest, SendRequestType, SourceOutput, TokenSendRequest } from "../wallet/model.js";
|
|
6
|
+
import type { CoinSelectionFn, FeeFn, OutputOrderingFn } from "./coin-control/types.js";
|
|
6
7
|
export declare const placeholderPrivateKey = "0000000000000000000000000000000000000000000000000000000000000001";
|
|
7
8
|
export declare const placeholderPrivateKeyBin: Uint8Array;
|
|
8
|
-
export declare function buildP2pkhNonHdTransaction({ inputs, outputs, signingKey, fee, discardChange, feePaidBy, changeAddress, walletCache, }: {
|
|
9
|
+
export declare function buildP2pkhNonHdTransaction({ inputs, outputs, signingKey, fee, discardChange, feePaidBy, changeAddress, walletCache, outputOrdering, }: {
|
|
9
10
|
inputs: Utxo[];
|
|
10
11
|
outputs: Array<SendRequest | TokenSendRequest | OpReturnData>;
|
|
11
12
|
signingKey?: Uint8Array;
|
|
@@ -14,6 +15,7 @@ export declare function buildP2pkhNonHdTransaction({ inputs, outputs, signingKey
|
|
|
14
15
|
feePaidBy?: FeePaidByEnum;
|
|
15
16
|
changeAddress?: string;
|
|
16
17
|
walletCache: WalletCache;
|
|
18
|
+
outputOrdering?: OutputOrderingFn;
|
|
17
19
|
}): Promise<{
|
|
18
20
|
transaction: import("@bitauth/libauth").TransactionCommon<import("@bitauth/libauth").Input<Uint8Array, Uint8Array>, Output<Uint8Array, Uint8Array, bigint>>;
|
|
19
21
|
sourceOutputs: any[];
|
|
@@ -56,7 +58,10 @@ export declare function prepareTokenOutputs(request: TokenSendRequest): Output;
|
|
|
56
58
|
*
|
|
57
59
|
* @returns A promise to a list of unspent outputs
|
|
58
60
|
*/
|
|
59
|
-
export declare function getSuitableUtxos(inputs: Utxo[], amountRequired: bigint | undefined, bestHeight: number, feePaidBy: FeePaidByEnum, requests: SendRequestType[], ensureUtxos?: Utxo[], tokenOperation?: "send" | "genesis" | "mint" | "burn"
|
|
61
|
+
export declare function getSuitableUtxos(inputs: Utxo[], amountRequired: bigint | undefined, bestHeight: number, feePaidBy: FeePaidByEnum, requests: SendRequestType[], ensureUtxos?: Utxo[], tokenOperation?: "send" | "genesis" | "mint" | "burn", coinControl?: {
|
|
62
|
+
coinSelection?: CoinSelectionFn;
|
|
63
|
+
feePerByte?: number;
|
|
64
|
+
}): Promise<Utxo[]>;
|
|
60
65
|
export declare function getFeeAmountSimple({ utxos, sendRequests, relayFeePerByteInSatoshi, discardChange, }: {
|
|
61
66
|
utxos: Utxo[];
|
|
62
67
|
sendRequests: Array<SendRequest | TokenSendRequest | OpReturnData>;
|
|
@@ -65,7 +70,7 @@ export declare function getFeeAmountSimple({ utxos, sendRequests, relayFeePerByt
|
|
|
65
70
|
feePaidBy: FeePaidByEnum;
|
|
66
71
|
discardChange?: boolean;
|
|
67
72
|
}): Promise<bigint>;
|
|
68
|
-
export declare function getFeeAmount({ utxos, sendRequests, sourceAddress, relayFeePerByteInSatoshi, feePaidBy, discardChange, walletCache, }: {
|
|
73
|
+
export declare function getFeeAmount({ utxos, sendRequests, sourceAddress, relayFeePerByteInSatoshi, feePaidBy, discardChange, walletCache, fee: feeStrategy, }: {
|
|
69
74
|
utxos: Utxo[];
|
|
70
75
|
sendRequests: Array<SendRequest | TokenSendRequest | OpReturnData>;
|
|
71
76
|
sourceAddress: string;
|
|
@@ -73,8 +78,9 @@ export declare function getFeeAmount({ utxos, sendRequests, sourceAddress, relay
|
|
|
73
78
|
feePaidBy: FeePaidByEnum;
|
|
74
79
|
discardChange?: boolean;
|
|
75
80
|
walletCache: WalletCache;
|
|
81
|
+
fee?: FeeFn;
|
|
76
82
|
}): Promise<bigint>;
|
|
77
|
-
export declare function buildEncodedTransaction({ inputs, outputs, signingKey, fee, discardChange, feePaidBy, changeAddress, buildUnsigned, walletCache, }: {
|
|
83
|
+
export declare function buildEncodedTransaction({ inputs, outputs, signingKey, fee, discardChange, feePaidBy, changeAddress, buildUnsigned, walletCache, outputOrdering, }: {
|
|
78
84
|
inputs: Utxo[];
|
|
79
85
|
outputs: Array<SendRequest | TokenSendRequest | OpReturnData>;
|
|
80
86
|
signingKey: Uint8Array;
|
|
@@ -84,6 +90,7 @@ export declare function buildEncodedTransaction({ inputs, outputs, signingKey, f
|
|
|
84
90
|
changeAddress?: string;
|
|
85
91
|
buildUnsigned?: boolean;
|
|
86
92
|
walletCache: WalletCache;
|
|
93
|
+
outputOrdering?: OutputOrderingFn;
|
|
87
94
|
}): Promise<{
|
|
88
95
|
encodedTransaction: Uint8Array;
|
|
89
96
|
sourceOutputs: any[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wif.d.ts","sourceRoot":"","sources":["../../../src/transaction/Wif.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EAChC,qBAAqB,EACrB,QAAQ,EAOR,MAAM,EAKP,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAyB,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,eAAe,EACf,YAAY,EACZ,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"Wif.d.ts","sourceRoot":"","sources":["../../../src/transaction/Wif.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,12 @@ import { NFTCapability } from "../interface.js";
|
|
|
4
4
|
import { sumSendRequestAmounts } from "../util/sumSendRequestAmounts.js";
|
|
5
5
|
import { sumUtxoValue } from "../util/sumUtxoValue.js";
|
|
6
6
|
import { FeePaidByEnum } from "../wallet/enum.js";
|
|
7
|
-
import { OpReturnData, TokenSendRequest, } from "../wallet/model.js";
|
|
7
|
+
import { OpReturnData, SendRequest, TokenSendRequest, } from "../wallet/model.js";
|
|
8
8
|
import { allocateFee } from "./allocateFee.js";
|
|
9
9
|
export const placeholderPrivateKey = "0000000000000000000000000000000000000000000000000000000000000001";
|
|
10
10
|
export const placeholderPrivateKeyBin = hexToBin(placeholderPrivateKey);
|
|
11
11
|
// Build a transaction for a p2pkh transaction for a non HD wallet
|
|
12
|
-
export async function buildP2pkhNonHdTransaction({ inputs, outputs, signingKey, fee = 0n, discardChange = false, feePaidBy = FeePaidByEnum.change, changeAddress = "", walletCache, }) {
|
|
12
|
+
export async function buildP2pkhNonHdTransaction({ inputs, outputs, signingKey, fee = 0n, discardChange = false, feePaidBy = FeePaidByEnum.change, changeAddress = "", walletCache, outputOrdering, }) {
|
|
13
13
|
if (!signingKey) {
|
|
14
14
|
throw new Error("Missing signing key when building transaction");
|
|
15
15
|
}
|
|
@@ -22,22 +22,24 @@ export async function buildP2pkhNonHdTransaction({ inputs, outputs, signingKey,
|
|
|
22
22
|
const sendAmount = await sumSendRequestAmounts(outputs);
|
|
23
23
|
const changeAmount = BigInt(inputAmount) - BigInt(sendAmount) - BigInt(fee);
|
|
24
24
|
outputs = allocateFee(outputs, fee, feePaidBy, changeAmount);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (discardChange !== true) {
|
|
30
|
-
if (
|
|
31
|
-
|
|
32
|
-
if (typeof changeLockingBytecode === "string") {
|
|
33
|
-
throw Error(changeLockingBytecode);
|
|
34
|
-
}
|
|
35
|
-
lockedOutputs.push({
|
|
36
|
-
lockingBytecode: changeLockingBytecode.bytecode,
|
|
37
|
-
valueSatoshis: BigInt(changeAmount),
|
|
38
|
-
});
|
|
25
|
+
// Append change as a SendRequest so user-supplied output ordering can act on
|
|
26
|
+
// the complete output list. Skipped when discardChange is set or the change
|
|
27
|
+
// would be below the dust threshold.
|
|
28
|
+
let changeOutputIndex;
|
|
29
|
+
if (discardChange !== true && changeAmount > DUST_UTXO_THRESHOLD) {
|
|
30
|
+
if (!changeAddress) {
|
|
31
|
+
changeAddress = inputs[0].address;
|
|
39
32
|
}
|
|
33
|
+
outputs = [
|
|
34
|
+
...outputs,
|
|
35
|
+
new SendRequest({ cashaddr: changeAddress, value: BigInt(changeAmount) }),
|
|
36
|
+
];
|
|
37
|
+
changeOutputIndex = outputs.length - 1;
|
|
40
38
|
}
|
|
39
|
+
if (outputOrdering) {
|
|
40
|
+
outputs = outputOrdering({ outputs, changeOutputIndex });
|
|
41
|
+
}
|
|
42
|
+
const lockedOutputs = await prepareOutputs(outputs);
|
|
41
43
|
const { preparedInputs, sourceOutputs } = prepareInputs({
|
|
42
44
|
inputs,
|
|
43
45
|
compiler,
|
|
@@ -198,7 +200,7 @@ export function prepareTokenOutputs(request) {
|
|
|
198
200
|
*
|
|
199
201
|
* @returns A promise to a list of unspent outputs
|
|
200
202
|
*/
|
|
201
|
-
export async function getSuitableUtxos(inputs, amountRequired, bestHeight, feePaidBy, requests, ensureUtxos = [], tokenOperation = "send") {
|
|
203
|
+
export async function getSuitableUtxos(inputs, amountRequired, bestHeight, feePaidBy, requests, ensureUtxos = [], tokenOperation = "send", coinControl = {}) {
|
|
202
204
|
const utxoKey = (u) => `${u.txid}:${u.vout}`;
|
|
203
205
|
const selectedSet = new Set();
|
|
204
206
|
const suitableUtxos = [];
|
|
@@ -311,23 +313,61 @@ export async function getSuitableUtxos(inputs, amountRequired, bestHeight, feePa
|
|
|
311
313
|
throw Error(`No suitable token utxos available to send token with id "${request.category}", capability "${request.nft?.capability}", commitment "${request.nft?.commitment}"`);
|
|
312
314
|
}
|
|
313
315
|
}
|
|
314
|
-
//
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
316
|
+
// Find plain BCH outputs to top up the transaction. When the caller
|
|
317
|
+
// supplied a coin-selection strategy we delegate to it; otherwise we run
|
|
318
|
+
// the historical natural-order accumulation inline so the coin-control
|
|
319
|
+
// module isn't pulled into the bundle of consumers that never opt in.
|
|
320
|
+
const alreadyEnough = amountRequired !== undefined && amountAvailable >= amountRequired;
|
|
321
|
+
if (!alreadyEnough) {
|
|
322
|
+
if (coinControl.coinSelection) {
|
|
323
|
+
const available = [];
|
|
324
|
+
for (let i = 0; i < inputs.length; i++) {
|
|
325
|
+
if (usedIndices.has(i))
|
|
326
|
+
continue;
|
|
327
|
+
const u = inputs[i];
|
|
328
|
+
if (u.token)
|
|
329
|
+
continue;
|
|
330
|
+
const key = utxoKey(u);
|
|
331
|
+
if (selectedSet.has(key))
|
|
332
|
+
continue;
|
|
333
|
+
available.push(u);
|
|
334
|
+
}
|
|
335
|
+
const stillNeeded = amountRequired === undefined
|
|
336
|
+
? BigInt(Number.MAX_SAFE_INTEGER)
|
|
337
|
+
: amountRequired - amountAvailable;
|
|
338
|
+
const picked = coinControl.coinSelection({
|
|
339
|
+
available,
|
|
340
|
+
pinned: [...suitableUtxos],
|
|
341
|
+
amountRequired: stillNeeded,
|
|
342
|
+
feePerByte: coinControl.feePerByte ?? 1,
|
|
343
|
+
bestHeight,
|
|
344
|
+
});
|
|
345
|
+
for (const u of picked) {
|
|
346
|
+
const key = utxoKey(u);
|
|
347
|
+
if (selectedSet.has(key))
|
|
348
|
+
continue;
|
|
349
|
+
selectedSet.add(key);
|
|
350
|
+
suitableUtxos.push(u);
|
|
351
|
+
amountAvailable += BigInt(u.satoshis);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
for (let i = 0; i < inputs.length; i++) {
|
|
356
|
+
if (amountRequired && amountAvailable > amountRequired)
|
|
357
|
+
break;
|
|
358
|
+
if (usedIndices.has(i))
|
|
359
|
+
continue;
|
|
360
|
+
const u = inputs[i];
|
|
361
|
+
if (u.token)
|
|
362
|
+
continue;
|
|
363
|
+
const key = utxoKey(u);
|
|
364
|
+
if (selectedSet.has(key))
|
|
365
|
+
continue;
|
|
366
|
+
selectedSet.add(key);
|
|
367
|
+
suitableUtxos.push(u);
|
|
368
|
+
amountAvailable += BigInt(u.satoshis);
|
|
369
|
+
}
|
|
319
370
|
}
|
|
320
|
-
if (usedIndices.has(i))
|
|
321
|
-
continue;
|
|
322
|
-
const u = inputs[i];
|
|
323
|
-
if (u.token)
|
|
324
|
-
continue;
|
|
325
|
-
const key = utxoKey(u);
|
|
326
|
-
if (selectedSet.has(key))
|
|
327
|
-
continue;
|
|
328
|
-
selectedSet.add(key);
|
|
329
|
-
suitableUtxos.push(u);
|
|
330
|
-
amountAvailable += BigInt(u.satoshis);
|
|
331
371
|
}
|
|
332
372
|
// if the fee is split with a feePaidBy option, skip checking change.
|
|
333
373
|
if (feePaidBy && feePaidBy != FeePaidByEnum.change) {
|
|
@@ -382,7 +422,7 @@ export async function getFeeAmountSimple({ utxos, sendRequests, relayFeePerByteI
|
|
|
382
422
|
return BigInt(Math.ceil((inputTotalSize + outputTotalSize + 16) * relayFeePerByteInSatoshi));
|
|
383
423
|
}
|
|
384
424
|
// precise fee estimation
|
|
385
|
-
export async function getFeeAmount({ utxos, sendRequests, sourceAddress, relayFeePerByteInSatoshi, feePaidBy, discardChange, walletCache, }) {
|
|
425
|
+
export async function getFeeAmount({ utxos, sendRequests, sourceAddress, relayFeePerByteInSatoshi, feePaidBy, discardChange, walletCache, fee: feeStrategy, }) {
|
|
386
426
|
// build transaction
|
|
387
427
|
if (utxos) {
|
|
388
428
|
// Build the transaction to get the approximate size
|
|
@@ -396,6 +436,12 @@ export async function getFeeAmount({ utxos, sendRequests, sourceAddress, relayFe
|
|
|
396
436
|
changeAddress: "",
|
|
397
437
|
walletCache,
|
|
398
438
|
});
|
|
439
|
+
if (feeStrategy) {
|
|
440
|
+
return feeStrategy({
|
|
441
|
+
txSizeBytes: draftTransaction.length,
|
|
442
|
+
relayFeePerByte: relayFeePerByteInSatoshi,
|
|
443
|
+
});
|
|
444
|
+
}
|
|
399
445
|
return BigInt(Math.ceil(draftTransaction.length * relayFeePerByteInSatoshi + 1));
|
|
400
446
|
}
|
|
401
447
|
else {
|
|
@@ -403,7 +449,7 @@ export async function getFeeAmount({ utxos, sendRequests, sourceAddress, relayFe
|
|
|
403
449
|
}
|
|
404
450
|
}
|
|
405
451
|
// Build encoded transaction
|
|
406
|
-
export async function buildEncodedTransaction({ inputs, outputs, signingKey, fee = 0n, discardChange = false, feePaidBy = FeePaidByEnum.change, changeAddress = "", buildUnsigned = false, walletCache, }) {
|
|
452
|
+
export async function buildEncodedTransaction({ inputs, outputs, signingKey, fee = 0n, discardChange = false, feePaidBy = FeePaidByEnum.change, changeAddress = "", buildUnsigned = false, walletCache, outputOrdering, }) {
|
|
407
453
|
const { transaction, sourceOutputs } = await buildP2pkhNonHdTransaction({
|
|
408
454
|
inputs,
|
|
409
455
|
outputs,
|
|
@@ -413,6 +459,7 @@ export async function buildEncodedTransaction({ inputs, outputs, signingKey, fee
|
|
|
413
459
|
feePaidBy,
|
|
414
460
|
changeAddress,
|
|
415
461
|
walletCache,
|
|
462
|
+
outputOrdering,
|
|
416
463
|
});
|
|
417
464
|
if (buildUnsigned === true) {
|
|
418
465
|
transaction.inputs.forEach((input) => (input.unlockingBytecode = Uint8Array.from([])));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wif.js","sourceRoot":"","sources":["../../../src/transaction/Wif.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Wif.js","sourceRoot":"","sources":["../../../src/transaction/Wif.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,QAAQ,EACR,oBAAoB,EAGpB,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAgB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,WAAW,EAGX,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C,MAAM,CAAC,MAAM,qBAAqB,GAChC,kEAAkE,CAAC;AACrE,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAExE,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAC/C,MAAM,EACN,OAAO,EACP,UAAU,EACV,GAAG,GAAG,EAAE,EACR,aAAa,GAAG,KAAK,EACrB,SAAS,GAAG,aAAa,CAAC,MAAM,EAChC,aAAa,GAAG,EAAE,EAClB,WAAW,EACX,cAAc,GAWf;IACC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;IAChE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,QAAQ,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEzC,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAExD,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAE5E,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAE7D,6EAA6E;IAC7E,4EAA4E;IAC5E,qCAAqC;IACrC,IAAI,iBAAqC,CAAC;IAC1C,IAAI,aAAa,KAAK,IAAI,IAAI,YAAY,GAAG,mBAAmB,EAAE,CAAC;QACjE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACpC,CAAC;QACD,OAAO,GAAG;YACR,GAAG,OAAO;YACV,IAAI,WAAW,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;SAC1E,CAAC;QACF,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,GAAG,cAAc,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAEpD,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;QACtD,MAAM;QACN,QAAQ;QACR,UAAU;QACV,WAAW;KACZ,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,mBAAmB,CAAC;QACjC,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE,CAAC;KACX,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,qBAAqB,GAAG,uBAAuB,CACnD,MAAM,CAAC,WAAW,EAClB,aAAa,EACb,EAAE,4BAA4B,EAAE,EAAE,EAAE,CACrC,CAAC;IACF,IAAI,qBAAqB,KAAK,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,qBAAqB,CAAC;IAC9B,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAC5B,MAAM,EACN,QAAQ,EACR,UAAU,EACV,WAAW,GAUZ;IACC,MAAM,cAAc,GAAU,EAAE,CAAC;IACjC,MAAM,aAAa,GAAU,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC;QAChC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC;QACzB,yCAAyC;QACzC,MAAM,2BAA2B,GAAG,IAAI,UAAU,CAChD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAC3D,CAAC;QACF,0BAA0B;QAC1B,yCAAyC;QACzC,IAAI,CAAC,2BAA2B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,IAAI;YAC9B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;YAC9B,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;YACpC,GAAG,EACD,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,KAAK,SAAS;gBACrC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,KAAK,SAAS;gBACnC,CAAC,CAAC;oBACE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU;oBACnC,UAAU,EACR,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,KAAK,SAAS;wBACrC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,UAAW,CAAC;iBACrC;gBACH,CAAC,CAAC,SAAS;SAChB,CAAC;QACF,MAAM,GAAG,GACP,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU;YACtC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG;YACf,aAAa,EAAE,SAAS;YACxB,uBAAuB,EAAE,2BAA2B;YACpD,cAAc,EAAE,CAAC;YACjB,iBAAiB,EAAE;gBACjB,QAAQ;gBACR,IAAI,EAAE;oBACJ,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;iBACpC;gBACD,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC;gBACnC,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,YAAY;aACpB;SACF,CAAC;QAEF,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9B,MAAM,eAAe,GAAG,4BAA4B,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;YACxC,MAAM,eAAe,CAAC;QACxB,CAAC;QAED,aAAa,CAAC,IAAI,CAAC;YACjB,aAAa,EAAE,SAAS;YACxB,uBAAuB,EAAE,2BAA2B;YACpD,cAAc,EAAE,CAAC;YACjB,iBAAiB,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAEtC,oCAAoC;YACpC,eAAe,EAAE,eAAe,CAAC,QAAQ;YACzC,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC;YACnC,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA6D;IAE7D,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,YAAY,gBAAgB,EAAE,CAAC;YACvC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YAChD,SAAS;QACX,CAAC;QAED,IAAI,MAAM,YAAY,YAAY,EAAE,CAAC;YACnC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;YAClD,SAAS;QACX,CAAC;QAED,MAAM,qBAAqB,GAAG,4BAA4B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,OAAO,qBAAqB,KAAK,QAAQ;YAC3C,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAEzC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,KAAK,CACT,eAAe,UAAU,+EAA+E,CACzG,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAW;YAC3B,eAAe,EAAE,qBAAqB,CAAC,QAAQ;YAC/C,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC;SAClC,CAAC;QACF,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAqB;IACzD,OAAO;QACL,eAAe,EAAE,OAAO,CAAC,MAAM;QAC/B,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;KACzB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAyB;IAC3D,MAAM,KAAK,GAAW,OAAO,CAAC;IAC9B,MAAM,qBAAqB,GAAG,4BAA4B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7E,IAAI,OAAO,qBAAqB,KAAK,QAAQ;QAC3C,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAEzC,MAAM,YAAY,GAAG;QACnB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5B,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC;QAClC,GAAG,EACD,KAAK,CAAC,GAAG,EAAE,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,EAAE,UAAU,KAAK,SAAS;YACxE,CAAC,CAAC;gBACE,UAAU,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU;gBACjC,UAAU,EACR,KAAK,CAAC,GAAG,EAAE,UAAU,KAAK,SAAS;oBACnC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,UAAW,CAAC;aACnC;YACH,CAAC,CAAC,SAAS;KAChB,CAAC;IAEF,OAAO;QACL,eAAe,EAAE,qBAAqB,CAAC,QAAQ;QAC/C,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;QAC5C,KAAK,EAAE,YAAY;KACV,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,cAAkC,EAClC,UAAkB,EAClB,SAAwB,EACxB,QAA2B,EAC3B,cAAsB,EAAE,EACxB,iBAAuD,MAAM,EAC7D,cAGI,EAAE;IAEN,MAAM,OAAO,GAAG,CAAC,CAAO,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,aAAa,GAAW,EAAE,CAAC;IAEjC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,IAAI,eAAe,GAAG,aAAa,CAAC,MAAM,CACxC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EACpC,MAAM,CAAC,CAAC,CAAC,CACV,CAAC;IACF,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CACnC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,YAAY,gBAAgB,CACnB,CAAC;IAExB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEtC,0EAA0E;IAC1E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE/C,0CAA0C;IAC1C,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;YACpC,wEAAwE;YACxE,MAAM,eAAe,GAAG,CAAC,GAAS,EAAE,EAAE,CACpC,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ;gBACxC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,GAAG,EAAE,UAAU;gBACtD,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;YAEzD,2DAA2D;YAC3D,oEAAoE;YACpE,MAAM,cAAc,GAClB,OAAO,CAAC,GAAG,EAAE,UAAU,KAAK,SAAS;gBACrC,OAAO,CAAC,GAAG,EAAE,UAAU,KAAK,SAAS,CAAC;YAExC,kEAAkE;YAClE,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,cAAc,EAAE,CAAC;gBACnB,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,6DAA6D;gBAC7D,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;oBAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;wBAAE,SAAS;oBACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBACzB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAC1C,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;wBACjB,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;wBAClC,KAAK,GAAG,IAAI,CAAC;wBACb,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,oDAAoD;gBACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;wBAAE,SAAS;oBACjC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACtB,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ;wBAAE,SAAS;oBACvD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;wBAAE,SAAS;oBACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,SAAS;oBAEnC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrB,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACxB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACnB,eAAe,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBACxC,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC3B,CAAC;oBACD,KAAK,GAAG,IAAI,CAAC;oBACb,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,KAAK;gBAAE,SAAS;YAEpB,IACE,OAAO,CAAC,GAAG,EAAE,UAAU,KAAK,aAAa,CAAC,OAAO;gBACjD,OAAO,CAAC,GAAG,EAAE,UAAU,KAAK,aAAa,CAAC,OAAO,EACjD,CAAC;gBACD,8CAA8C;gBAC9C,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CACnC,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ;oBACxC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,GAAG,EAAE,UAAU,CACzD,CAAC;gBACF,IAAI,UAAU;oBAAE,SAAS;gBAEzB,IAAI,eAAe,GAAG,KAAK,CAAC;gBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;wBAAE,SAAS;oBACjC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACtB,IACE,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ;wBACxC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,GAAG,EAAE,UAAU,EACtD,CAAC;wBACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;wBACzB,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;4BAAE,SAAS;wBAEnC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACrB,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACxB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACnB,eAAe,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACxC,eAAe,GAAG,IAAI,CAAC;wBACvB,MAAM;oBACR,CAAC;gBACH,CAAC;gBACD,IAAI,eAAe;oBAAE,SAAS;YAChC,CAAC;YAED,4DAA4D;YAC5D,IACE,OAAO,CAAC,GAAG,EAAE,UAAU,KAAK,SAAS;gBACrC,OAAO,CAAC,GAAG,EAAE,UAAU,KAAK,SAAS,EACrC,CAAC;gBACD,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAC9C,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAClD,CAAC;gBACF,MAAM,mBAAmB,GACvB,CAAC,qBAAqB;oBACtB,MAAM,CAAC,IAAI,CACT,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CACT,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,QAAQ,CAClE,CAAC;gBACJ,IAAI,qBAAqB,IAAI,mBAAmB,EAAE,CAAC;oBACjD,SAAS;gBACX,CAAC;YACH,CAAC;YAED,MAAM,KAAK,CACT,4DAA4D,OAAO,CAAC,QAAQ,kBAAkB,OAAO,CAAC,GAAG,EAAE,UAAU,kBAAkB,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,CAClK,CAAC;QACJ,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,yEAAyE;IACzE,uEAAuE;IACvE,sEAAsE;IACtE,MAAM,aAAa,GACjB,cAAc,KAAK,SAAS,IAAI,eAAe,IAAI,cAAc,CAAC;IACpE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;YAC9B,MAAM,SAAS,GAAW,EAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,SAAS;gBACjC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,KAAK;oBAAE,SAAS;gBACtB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACnC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YACD,MAAM,WAAW,GACf,cAAc,KAAK,SAAS;gBAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBACjC,CAAC,CAAC,cAAc,GAAG,eAAe,CAAC;YACvC,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC;gBACvC,SAAS;gBACT,MAAM,EAAE,CAAC,GAAG,aAAa,CAAC;gBAC1B,cAAc,EAAE,WAAW;gBAC3B,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,CAAC;gBACvC,UAAU;aACX,CAAC,CAAC;YACH,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACnC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACrB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtB,eAAe,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAI,cAAc,IAAI,eAAe,GAAG,cAAc;oBAAE,MAAM;gBAC9D,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,SAAS;gBACjC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,CAAC,KAAK;oBAAE,SAAS;gBACtB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACnC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACrB,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtB,eAAe,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,IAAI,SAAS,IAAI,SAAS,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QACnD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,6DAA6D;IAC7D,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;QAC1C,OAAO,aAAa,CAAC;IACvB,CAAC;SAAM,IAAI,eAAe,GAAG,cAAc,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,KAAK,CACb,gCAAgC,cAAc,qBAAqB,eAAe,qBAAqB,CACxG,CAAC;QACF,CAAC,CAAC,MAAM,CAAC,GAAG;YACV,QAAQ,EAAE,cAAc;YACxB,SAAS,EAAE,eAAe;SAC3B,CAAC;QACF,MAAM,CAAC,CAAC;IACV,CAAC;SAAM,CAAC;QACN,OAAO,aAAa,CAAC;IACvB,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,EACvC,KAAK,EACL,YAAY,EACZ,wBAAwB,EACxB,aAAa,GAQd;IACC,MAAM,cAAc,GAAG,GAAG,CAAC;IAC3B,MAAM,eAAe,GAAG,EAAE,CAAC;IAE3B,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CACjC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CACb,IAAI;QACJ,CAAC,IAAI,CAAC,KAAK;YACT,CAAC,CAAC,cAAc;gBACd,CAAC;gBACD,EAAE;gBACF,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC7D,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,cAAc,CAAC,EACrB,CAAC,CACF,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,WAA4B,EAAE,EAAE;QAClD,IAAI,WAAW,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3C,MAAM,YAAY,GAAG,WAA+B,CAAC;YACrD,OAAO,CACL,eAAe;gBACf,CAAC;gBACD,EAAE;gBACF,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/D,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9B,CAAC;QACJ,CAAC;aAAM,IAAI,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChD,OAAO,CAAC,GAAI,WAA4B,CAAC,MAAM,CAAC,MAAM,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GACnB,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAExC,OAAO,MAAM,CACX,IAAI,CAAC,IAAI,CACP,CAAC,cAAc,GAAG,eAAe,GAAG,EAAE,CAAC,GAAG,wBAAwB,CACnE,CACF,CAAC;AACJ,CAAC;AAED,yBAAyB;AACzB,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,KAAK,EACL,YAAY,EACZ,aAAa,EACb,wBAAwB,EACxB,SAAS,EACT,aAAa,EACb,WAAW,EACX,GAAG,EAAE,WAAW,GAUjB;IACC,oBAAoB;IACpB,IAAI,KAAK,EAAE,CAAC;QACV,oDAAoD;QACpD,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,GAC5C,MAAM,uBAAuB,CAAC;YAC5B,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,YAAY;YACrB,UAAU,EAAE,wBAAwB;YACpC,GAAG,EAAE,EAAE,EAAE,qBAAqB;YAC9B,aAAa,EAAE,aAAa,IAAI,KAAK;YACrC,SAAS;YACT,aAAa,EAAE,EAAE;YACjB,WAAW;SACZ,CAAC,CAAC;QAEL,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC;gBACjB,WAAW,EAAE,gBAAgB,CAAC,MAAM;gBACpC,eAAe,EAAE,wBAAwB;aAC1C,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,wBAAwB,GAAG,CAAC,CAAC,CAClE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,CACT,qEAAqE,CACtE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,4BAA4B;AAC5B,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,EAC5C,MAAM,EACN,OAAO,EACP,UAAU,EACV,GAAG,GAAG,EAAE,EACR,aAAa,GAAG,KAAK,EACrB,SAAS,GAAG,aAAa,CAAC,MAAM,EAChC,aAAa,GAAG,EAAE,EAClB,aAAa,GAAG,KAAK,EACrB,WAAW,EACX,cAAc,GAYf;IACC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,MAAM,0BAA0B,CAAC;QACtE,MAAM;QACN,OAAO;QACP,UAAU;QACV,GAAG;QACH,aAAa;QACb,SAAS;QACT,aAAa;QACb,WAAW;QACX,cAAc;KACf,CAAC,CAAC;IAEH,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,WAAW,CAAC,MAAM,CAAC,OAAO,CACxB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAC3D,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAgC,EAChC,aAA6B,EAC7B,UAAsB;IAEtB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,OAAO,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;IAChE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,QAAQ,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,mBAAmB,GAErB,EAAE,GAAG,OAAO,EAAE,CAAC;IACnB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACtD,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;YAClC,GAAG,KAAK;YACR,iBAAiB,EAAE;gBACjB,QAAQ;gBACR,IAAI,EAAE;oBACJ,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;iBAC3C;gBACD,aAAa,EAAE,YAAY,CAAC,aAAa;gBACzC,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,YAAY,CAAC,KAAK;aAC1B;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,CAAC,MAAM,CAAC;IACtB,CAAC;IAED,OAAO,iBAAiB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { FeeFn } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Default fee strategy: relayFeePerByte * txSizeBytes, rounded up. Matches
|
|
4
|
+
* the historical behaviour of mainnet-js when no `fee` option is supplied.
|
|
5
|
+
*/
|
|
6
|
+
export declare const feeFromRelay: FeeFn;
|
|
7
|
+
/**
|
|
8
|
+
* Factory: charge a fixed rate (sats per byte) regardless of the network's
|
|
9
|
+
* advertised relay fee. Useful when the caller wants to prioritise a tx
|
|
10
|
+
* (higher rate) or save fees (lower, at the risk of slower propagation).
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* send(requests, { fee: feeFixedPerByte(2) });
|
|
14
|
+
*/
|
|
15
|
+
export declare function feeFixedPerByte(satsPerByte: number): FeeFn;
|
|
16
|
+
/**
|
|
17
|
+
* Factory: charge a fixed rate expressed in sats per kilobyte.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* send(requests, { fee: feeFixedPerKb(1000) }); // ~1 sat/byte
|
|
21
|
+
*/
|
|
22
|
+
export declare function feeFixedPerKb(satsPerKb: number): FeeFn;
|
|
23
|
+
/**
|
|
24
|
+
* Factory: pay a fixed absolute fee, ignoring transaction size. Caller takes
|
|
25
|
+
* responsibility for the fee being large enough to relay; under-paying can
|
|
26
|
+
* lead to the transaction being rejected by the network.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* send(requests, { fee: feeAbsolute(500n) });
|
|
30
|
+
*/
|
|
31
|
+
export declare function feeAbsolute(sats: bigint): FeeFn;
|
|
32
|
+
//# sourceMappingURL=fee.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fee.d.ts","sourceRoot":"","sources":["../../../../src/transaction/coin-control/fee.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,KAC+B,CAAC;AAE3D;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAE/C"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default fee strategy: relayFeePerByte * txSizeBytes, rounded up. Matches
|
|
3
|
+
* the historical behaviour of mainnet-js when no `fee` option is supplied.
|
|
4
|
+
*/
|
|
5
|
+
export const feeFromRelay = (ctx) => BigInt(Math.ceil(ctx.txSizeBytes * ctx.relayFeePerByte));
|
|
6
|
+
/**
|
|
7
|
+
* Factory: charge a fixed rate (sats per byte) regardless of the network's
|
|
8
|
+
* advertised relay fee. Useful when the caller wants to prioritise a tx
|
|
9
|
+
* (higher rate) or save fees (lower, at the risk of slower propagation).
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* send(requests, { fee: feeFixedPerByte(2) });
|
|
13
|
+
*/
|
|
14
|
+
export function feeFixedPerByte(satsPerByte) {
|
|
15
|
+
return (ctx) => BigInt(Math.ceil(ctx.txSizeBytes * satsPerByte));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Factory: charge a fixed rate expressed in sats per kilobyte.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* send(requests, { fee: feeFixedPerKb(1000) }); // ~1 sat/byte
|
|
22
|
+
*/
|
|
23
|
+
export function feeFixedPerKb(satsPerKb) {
|
|
24
|
+
return (ctx) => BigInt(Math.ceil((ctx.txSizeBytes * satsPerKb) / 1000));
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Factory: pay a fixed absolute fee, ignoring transaction size. Caller takes
|
|
28
|
+
* responsibility for the fee being large enough to relay; under-paying can
|
|
29
|
+
* lead to the transaction being rejected by the network.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* send(requests, { fee: feeAbsolute(500n) });
|
|
33
|
+
*/
|
|
34
|
+
export function feeAbsolute(sats) {
|
|
35
|
+
return () => sats;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=fee.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fee.js","sourceRoot":"","sources":["../../../../src/transaction/coin-control/fee.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAU,CAAC,GAAG,EAAE,EAAE,CACzC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { feeAbsolute, feeFixedPerByte, feeFixedPerKb, feeFromRelay, } from "./fee.js";
|
|
2
|
+
export { inputOrderBip69, inputOrderNatural, inputOrderRandom, } from "./input-order.js";
|
|
3
|
+
export { outputOrderBip69, outputOrderNatural, outputOrderRandom, } from "./output-order.js";
|
|
4
|
+
export { selectAccumulative, selectBranchAndBound, selectLargestFirst, selectNatural, selectNewestFirst, selectOldestFirst, selectRandom, selectSmallestFirst, } from "./selection.js";
|
|
5
|
+
export type { CoinSelectionContext, CoinSelectionFn, FeeContext, FeeFn, InputOrderingContext, InputOrderingFn, OutputOrderingContext, OutputOrderingFn, TxOutput, } from "./types.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/transaction/coin-control/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,KAAK,EACL,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,QAAQ,GACT,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { feeAbsolute, feeFixedPerByte, feeFixedPerKb, feeFromRelay, } from "./fee.js";
|
|
2
|
+
export { inputOrderBip69, inputOrderNatural, inputOrderRandom, } from "./input-order.js";
|
|
3
|
+
export { outputOrderBip69, outputOrderNatural, outputOrderRandom, } from "./output-order.js";
|
|
4
|
+
export { selectAccumulative, selectBranchAndBound, selectLargestFirst, selectNatural, selectNewestFirst, selectOldestFirst, selectRandom, selectSmallestFirst, } from "./selection.js";
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/transaction/coin-control/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,GACpB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { InputOrderingFn } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Preserve the selection order. This is the default when no `inputOrdering`
|
|
4
|
+
* option is supplied.
|
|
5
|
+
*/
|
|
6
|
+
export declare const inputOrderNatural: InputOrderingFn;
|
|
7
|
+
/**
|
|
8
|
+
* BIP69 input ordering: sort lexicographically by reversed txid then by
|
|
9
|
+
* vout ascending. This matches the convention used by Bitcoin Core and
|
|
10
|
+
* many other wallets.
|
|
11
|
+
*
|
|
12
|
+
* Note: Bitcoin transactions internally serialize txids in reverse byte
|
|
13
|
+
* order, which is what BIP69 sorts on. The `Utxo.txid` field in mainnet-js
|
|
14
|
+
* is in the user-facing big-endian hex form, so we compare its byte-reversal.
|
|
15
|
+
*/
|
|
16
|
+
export declare const inputOrderBip69: InputOrderingFn;
|
|
17
|
+
/**
|
|
18
|
+
* Shuffle the inputs. Improves privacy by hiding the upstream selection
|
|
19
|
+
* order (which can leak the chosen selection strategy).
|
|
20
|
+
*/
|
|
21
|
+
export declare const inputOrderRandom: InputOrderingFn;
|
|
22
|
+
//# sourceMappingURL=input-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-order.d.ts","sourceRoot":"","sources":["../../../../src/transaction/coin-control/input-order.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAAqC,CAAC;AAEtE;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,eACY,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAA8C,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Preserve the selection order. This is the default when no `inputOrdering`
|
|
3
|
+
* option is supplied.
|
|
4
|
+
*/
|
|
5
|
+
export const inputOrderNatural = (ctx) => ctx.inputs;
|
|
6
|
+
/**
|
|
7
|
+
* BIP69 input ordering: sort lexicographically by reversed txid then by
|
|
8
|
+
* vout ascending. This matches the convention used by Bitcoin Core and
|
|
9
|
+
* many other wallets.
|
|
10
|
+
*
|
|
11
|
+
* Note: Bitcoin transactions internally serialize txids in reverse byte
|
|
12
|
+
* order, which is what BIP69 sorts on. The `Utxo.txid` field in mainnet-js
|
|
13
|
+
* is in the user-facing big-endian hex form, so we compare its byte-reversal.
|
|
14
|
+
*/
|
|
15
|
+
export const inputOrderBip69 = (ctx) => [...ctx.inputs].sort(compareBip69Inputs);
|
|
16
|
+
/**
|
|
17
|
+
* Shuffle the inputs. Improves privacy by hiding the upstream selection
|
|
18
|
+
* order (which can leak the chosen selection strategy).
|
|
19
|
+
*/
|
|
20
|
+
export const inputOrderRandom = (ctx) => shuffle(ctx.inputs);
|
|
21
|
+
// ----------------------------------------------------------------------------
|
|
22
|
+
// Helpers
|
|
23
|
+
// ----------------------------------------------------------------------------
|
|
24
|
+
function compareBip69Inputs(a, b) {
|
|
25
|
+
// Compare reversed txid bytes (Bitcoin's internal serialization order).
|
|
26
|
+
const ar = reverseHex(a.txid);
|
|
27
|
+
const br = reverseHex(b.txid);
|
|
28
|
+
if (ar < br)
|
|
29
|
+
return -1;
|
|
30
|
+
if (ar > br)
|
|
31
|
+
return 1;
|
|
32
|
+
// Equal txid -> break tie on vout ascending.
|
|
33
|
+
return a.vout - b.vout;
|
|
34
|
+
}
|
|
35
|
+
function reverseHex(hex) {
|
|
36
|
+
// Split into 2-char bytes and reverse. Falls back to lexicographic compare
|
|
37
|
+
// when the string isn't a clean hex tx id.
|
|
38
|
+
if (hex.length % 2 !== 0)
|
|
39
|
+
return hex;
|
|
40
|
+
let out = "";
|
|
41
|
+
for (let i = hex.length - 2; i >= 0; i -= 2) {
|
|
42
|
+
out += hex.slice(i, i + 2);
|
|
43
|
+
}
|
|
44
|
+
return out;
|
|
45
|
+
}
|
|
46
|
+
function shuffle(arr) {
|
|
47
|
+
const out = [...arr];
|
|
48
|
+
for (let i = out.length - 1; i > 0; i--) {
|
|
49
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
50
|
+
[out[i], out[j]] = [out[j], out[i]];
|
|
51
|
+
}
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=input-order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-order.js","sourceRoot":"","sources":["../../../../src/transaction/coin-control/input-order.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAoB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;AAEtE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,eAAe,GAAoB,CAAC,GAAG,EAAE,EAAE,CACtD,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAoB,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAE9E,+EAA+E;AAC/E,UAAU;AACV,+EAA+E;AAE/E,SAAS,kBAAkB,CAAC,CAAO,EAAE,CAAO;IAC1C,wEAAwE;IACxE,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,EAAE,GAAG,EAAE;QAAE,OAAO,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,GAAG,EAAE;QAAE,OAAO,CAAC,CAAC;IACtB,6CAA6C;IAC7C,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACzB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,2EAA2E;IAC3E,2CAA2C;IAC3C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACrC,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAI,GAAQ;IAC1B,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { OutputOrderingFn } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Preserve the order produced by the caller (with change last when present).
|
|
4
|
+
* Default when no `outputOrdering` option is supplied.
|
|
5
|
+
*/
|
|
6
|
+
export declare const outputOrderNatural: OutputOrderingFn;
|
|
7
|
+
/**
|
|
8
|
+
* BIP69 output ordering: sort by output value ascending, breaking ties on
|
|
9
|
+
* locking bytecode bytes ascending. Token data is intentionally not part of
|
|
10
|
+
* the comparison key -- strict BIP69 is defined only for the value and the
|
|
11
|
+
* `scriptPubKey`.
|
|
12
|
+
*
|
|
13
|
+
* The change output (if present) takes part in the sort like any other
|
|
14
|
+
* output.
|
|
15
|
+
*/
|
|
16
|
+
export declare const outputOrderBip69: OutputOrderingFn;
|
|
17
|
+
/**
|
|
18
|
+
* Shuffle the outputs. Improves privacy by making the change position
|
|
19
|
+
* unguessable.
|
|
20
|
+
*/
|
|
21
|
+
export declare const outputOrderRandom: OutputOrderingFn;
|
|
22
|
+
//# sourceMappingURL=output-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output-order.d.ts","sourceRoot":"","sources":["../../../../src/transaction/coin-control/output-order.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAY,MAAM,YAAY,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,gBAAuC,CAAC;AAEzE;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBACa,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,gBACV,CAAC"}
|