@bsv/wallet-toolbox 1.7.19 → 1.7.22
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/docs/client.md +26 -2
- package/docs/services.md +13 -1
- package/docs/storage.md +13 -1
- package/docs/wallet.md +26 -2
- package/out/src/WalletPermissionsManager.d.ts +6 -0
- package/out/src/WalletPermissionsManager.d.ts.map +1 -1
- package/out/src/WalletPermissionsManager.js +241 -74
- package/out/src/WalletPermissionsManager.js.map +1 -1
- package/out/src/services/__tests/getRawTx.test.js +3 -0
- package/out/src/services/__tests/getRawTx.test.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.d.ts +1 -1
- package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js +3 -1
- package/out/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.js.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +12 -0
- package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
- package/out/src/storage/StorageProvider.d.ts +16 -2
- package/out/src/storage/StorageProvider.d.ts.map +1 -1
- package/out/src/storage/StorageProvider.js +33 -4
- package/out/src/storage/StorageProvider.js.map +1 -1
- package/out/src/storage/methods/__test/offsetKey.test.js +266 -100
- package/out/src/storage/methods/__test/offsetKey.test.js.map +1 -1
- package/out/src/storage/methods/getBeefForTransaction.js +1 -1
- package/out/src/storage/methods/getBeefForTransaction.js.map +1 -1
- package/out/src/storage/methods/internalizeAction.d.ts.map +1 -1
- package/out/src/storage/methods/internalizeAction.js +2 -2
- package/out/src/storage/methods/internalizeAction.js.map +1 -1
- package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js +4 -0
- package/out/src/storage/schema/entities/__tests/ProvenTxTests.test.js.map +1 -1
- package/out/tsconfig.all.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/WalletPermissionsManager.ts +302 -71
- package/src/services/__tests/getRawTx.test.ts +2 -0
- package/src/services/chaintracker/chaintracks/Ingest/BulkIngestorWhatsOnChainCdn.ts +1 -1
- package/src/services/chaintracker/chaintracks/__tests/Chaintracks.test.ts +2 -1
- package/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.ts +12 -0
- package/src/storage/StorageProvider.ts +38 -5
- package/src/storage/methods/__test/offsetKey.test.ts +299 -103
- package/src/storage/methods/getBeefForTransaction.ts +3 -1
- package/src/storage/methods/internalizeAction.ts +4 -3
- package/src/storage/schema/entities/__tests/ProvenTxTests.test.ts +2 -0
package/docs/client.md
CHANGED
|
@@ -814,7 +814,7 @@ enableCache: boolean
|
|
|
814
814
|
|
|
815
815
|
###### Property idleWait
|
|
816
816
|
|
|
817
|
-
Maximum
|
|
817
|
+
Maximum msecs of "normal" pause with no new data arriving.
|
|
818
818
|
|
|
819
819
|
```ts
|
|
820
820
|
idleWait: number | undefined
|
|
@@ -13218,7 +13218,7 @@ export abstract class StorageProvider extends StorageReaderWriter implements Wal
|
|
|
13218
13218
|
async listCertificates(auth: AuthId, args: Validation.ValidListCertificatesArgs): Promise<ListCertificatesResult>
|
|
13219
13219
|
async verifyKnownValidTransaction(txid: string, trx?: TrxToken): Promise<boolean>
|
|
13220
13220
|
async getValidBeefForKnownTxid(txid: string, mergeToBeef?: Beef, trustSelf?: TrustSelf, knownTxids?: string[], trx?: TrxToken, requiredLevels?: number): Promise<Beef>
|
|
13221
|
-
async getValidBeefForTxid(txid: string, mergeToBeef?: Beef, trustSelf?: TrustSelf, knownTxids?: string[], trx?: TrxToken, requiredLevels?: number): Promise<Beef | undefined>
|
|
13221
|
+
async getValidBeefForTxid(txid: string, mergeToBeef?: Beef, trustSelf?: TrustSelf, knownTxids?: string[], trx?: TrxToken, requiredLevels?: number, chainTracker?: ChainTracker, skipInvalidProofs?: boolean): Promise<Beef | undefined>
|
|
13222
13222
|
async getBeefForTransaction(txid: string, options: StorageGetBeefOptions): Promise<Beef>
|
|
13223
13223
|
async findMonitorEventById(id: number, trx?: TrxToken): Promise<TableMonitorEvent | undefined>
|
|
13224
13224
|
async relinquishCertificate(auth: AuthId, args: RelinquishCertificateArgs): Promise<number>
|
|
@@ -13279,6 +13279,18 @@ async getReqsAndBeefToShareWithWorld(txids: string[], knownTxids: string[], trx?
|
|
|
13279
13279
|
```
|
|
13280
13280
|
See also: [GetReqsAndBeefResult](./storage.md#interface-getreqsandbeefresult), [TrxToken](./client.md#interface-trxtoken)
|
|
13281
13281
|
|
|
13282
|
+
###### Method getValidBeefForKnownTxid
|
|
13283
|
+
|
|
13284
|
+
Pulls data from storage to build a valid beef for a txid.
|
|
13285
|
+
|
|
13286
|
+
Optionally merges the data into an existing beef.
|
|
13287
|
+
Optionally requires a minimum number of proof levels.
|
|
13288
|
+
|
|
13289
|
+
```ts
|
|
13290
|
+
async getValidBeefForKnownTxid(txid: string, mergeToBeef?: Beef, trustSelf?: TrustSelf, knownTxids?: string[], trx?: TrxToken, requiredLevels?: number): Promise<Beef>
|
|
13291
|
+
```
|
|
13292
|
+
See also: [TrxToken](./client.md#interface-trxtoken)
|
|
13293
|
+
|
|
13282
13294
|
###### Method updateProvenTxReqWithNewProvenTx
|
|
13283
13295
|
|
|
13284
13296
|
Handles storage changes when a valid MerklePath and mined block header are found for a ProvenTxReq txid.
|
|
@@ -19665,6 +19677,18 @@ validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
19665
19677
|
prevHash: "00000000000000000e7dcc27c06ee353bd37260b2e7e664314c204f0324a5087",
|
|
19666
19678
|
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
|
19667
19679
|
validated: true
|
|
19680
|
+
},
|
|
19681
|
+
{
|
|
19682
|
+
chain: "main",
|
|
19683
|
+
count: 31772,
|
|
19684
|
+
fileHash: "NuVsRUrI5QnjILbYy4LS3A/Udl6PH/m8Y9uVguEsekM=",
|
|
19685
|
+
fileName: "mainNet_9.headers",
|
|
19686
|
+
firstHeight: 900000,
|
|
19687
|
+
lastChainWork: "0000000000000000000000000000000000000000016ab16bb9b31430588788d3",
|
|
19688
|
+
lastHash: "0000000000000000024a2f1caef4b0ffdc1a036b09f9ed7f48b538f619f32ef2",
|
|
19689
|
+
prevChainWork: "000000000000000000000000000000000000000001664db1f2d50327928007e0",
|
|
19690
|
+
prevHash: "00000000000000000e7dcc27c06ee353bd37260b2e7e664314c204f0324a5087",
|
|
19691
|
+
sourceUrl: "https://cdn.projectbabbage.com/blockheaders"
|
|
19668
19692
|
}
|
|
19669
19693
|
]
|
|
19670
19694
|
```
|
package/docs/services.md
CHANGED
|
@@ -610,7 +610,7 @@ enableCache: boolean
|
|
|
610
610
|
|
|
611
611
|
###### Property idleWait
|
|
612
612
|
|
|
613
|
-
Maximum
|
|
613
|
+
Maximum msecs of "normal" pause with no new data arriving.
|
|
614
614
|
|
|
615
615
|
```ts
|
|
616
616
|
idleWait: number | undefined
|
|
@@ -6364,6 +6364,18 @@ validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
6364
6364
|
prevHash: "00000000000000000e7dcc27c06ee353bd37260b2e7e664314c204f0324a5087",
|
|
6365
6365
|
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
|
6366
6366
|
validated: true
|
|
6367
|
+
},
|
|
6368
|
+
{
|
|
6369
|
+
chain: "main",
|
|
6370
|
+
count: 31772,
|
|
6371
|
+
fileHash: "NuVsRUrI5QnjILbYy4LS3A/Udl6PH/m8Y9uVguEsekM=",
|
|
6372
|
+
fileName: "mainNet_9.headers",
|
|
6373
|
+
firstHeight: 900000,
|
|
6374
|
+
lastChainWork: "0000000000000000000000000000000000000000016ab16bb9b31430588788d3",
|
|
6375
|
+
lastHash: "0000000000000000024a2f1caef4b0ffdc1a036b09f9ed7f48b538f619f32ef2",
|
|
6376
|
+
prevChainWork: "000000000000000000000000000000000000000001664db1f2d50327928007e0",
|
|
6377
|
+
prevHash: "00000000000000000e7dcc27c06ee353bd37260b2e7e664314c204f0324a5087",
|
|
6378
|
+
sourceUrl: "https://cdn.projectbabbage.com/blockheaders"
|
|
6367
6379
|
}
|
|
6368
6380
|
]
|
|
6369
6381
|
```
|
package/docs/storage.md
CHANGED
|
@@ -3949,7 +3949,7 @@ export abstract class StorageProvider extends StorageReaderWriter implements Wal
|
|
|
3949
3949
|
async listCertificates(auth: AuthId, args: Validation.ValidListCertificatesArgs): Promise<ListCertificatesResult>
|
|
3950
3950
|
async verifyKnownValidTransaction(txid: string, trx?: TrxToken): Promise<boolean>
|
|
3951
3951
|
async getValidBeefForKnownTxid(txid: string, mergeToBeef?: Beef, trustSelf?: TrustSelf, knownTxids?: string[], trx?: TrxToken, requiredLevels?: number): Promise<Beef>
|
|
3952
|
-
async getValidBeefForTxid(txid: string, mergeToBeef?: Beef, trustSelf?: TrustSelf, knownTxids?: string[], trx?: TrxToken, requiredLevels?: number): Promise<Beef | undefined>
|
|
3952
|
+
async getValidBeefForTxid(txid: string, mergeToBeef?: Beef, trustSelf?: TrustSelf, knownTxids?: string[], trx?: TrxToken, requiredLevels?: number, chainTracker?: ChainTracker, skipInvalidProofs?: boolean): Promise<Beef | undefined>
|
|
3953
3953
|
async getBeefForTransaction(txid: string, options: StorageGetBeefOptions): Promise<Beef>
|
|
3954
3954
|
async findMonitorEventById(id: number, trx?: TrxToken): Promise<TableMonitorEvent | undefined>
|
|
3955
3955
|
async relinquishCertificate(auth: AuthId, args: RelinquishCertificateArgs): Promise<number>
|
|
@@ -4010,6 +4010,18 @@ async getReqsAndBeefToShareWithWorld(txids: string[], knownTxids: string[], trx?
|
|
|
4010
4010
|
```
|
|
4011
4011
|
See also: [GetReqsAndBeefResult](./storage.md#interface-getreqsandbeefresult), [TrxToken](./client.md#interface-trxtoken)
|
|
4012
4012
|
|
|
4013
|
+
###### Method getValidBeefForKnownTxid
|
|
4014
|
+
|
|
4015
|
+
Pulls data from storage to build a valid beef for a txid.
|
|
4016
|
+
|
|
4017
|
+
Optionally merges the data into an existing beef.
|
|
4018
|
+
Optionally requires a minimum number of proof levels.
|
|
4019
|
+
|
|
4020
|
+
```ts
|
|
4021
|
+
async getValidBeefForKnownTxid(txid: string, mergeToBeef?: Beef, trustSelf?: TrustSelf, knownTxids?: string[], trx?: TrxToken, requiredLevels?: number): Promise<Beef>
|
|
4022
|
+
```
|
|
4023
|
+
See also: [TrxToken](./client.md#interface-trxtoken)
|
|
4024
|
+
|
|
4013
4025
|
###### Method updateProvenTxReqWithNewProvenTx
|
|
4014
4026
|
|
|
4015
4027
|
Handles storage changes when a valid MerklePath and mined block header are found for a ProvenTxReq txid.
|
package/docs/wallet.md
CHANGED
|
@@ -813,7 +813,7 @@ enableCache: boolean
|
|
|
813
813
|
|
|
814
814
|
###### Property idleWait
|
|
815
815
|
|
|
816
|
-
Maximum
|
|
816
|
+
Maximum msecs of "normal" pause with no new data arriving.
|
|
817
817
|
|
|
818
818
|
```ts
|
|
819
819
|
idleWait: number | undefined
|
|
@@ -13217,7 +13217,7 @@ export abstract class StorageProvider extends StorageReaderWriter implements Wal
|
|
|
13217
13217
|
async listCertificates(auth: AuthId, args: Validation.ValidListCertificatesArgs): Promise<ListCertificatesResult>
|
|
13218
13218
|
async verifyKnownValidTransaction(txid: string, trx?: TrxToken): Promise<boolean>
|
|
13219
13219
|
async getValidBeefForKnownTxid(txid: string, mergeToBeef?: Beef, trustSelf?: TrustSelf, knownTxids?: string[], trx?: TrxToken, requiredLevels?: number): Promise<Beef>
|
|
13220
|
-
async getValidBeefForTxid(txid: string, mergeToBeef?: Beef, trustSelf?: TrustSelf, knownTxids?: string[], trx?: TrxToken, requiredLevels?: number): Promise<Beef | undefined>
|
|
13220
|
+
async getValidBeefForTxid(txid: string, mergeToBeef?: Beef, trustSelf?: TrustSelf, knownTxids?: string[], trx?: TrxToken, requiredLevels?: number, chainTracker?: ChainTracker, skipInvalidProofs?: boolean): Promise<Beef | undefined>
|
|
13221
13221
|
async getBeefForTransaction(txid: string, options: StorageGetBeefOptions): Promise<Beef>
|
|
13222
13222
|
async findMonitorEventById(id: number, trx?: TrxToken): Promise<TableMonitorEvent | undefined>
|
|
13223
13223
|
async relinquishCertificate(auth: AuthId, args: RelinquishCertificateArgs): Promise<number>
|
|
@@ -13278,6 +13278,18 @@ async getReqsAndBeefToShareWithWorld(txids: string[], knownTxids: string[], trx?
|
|
|
13278
13278
|
```
|
|
13279
13279
|
See also: [GetReqsAndBeefResult](./storage.md#interface-getreqsandbeefresult), [TrxToken](./client.md#interface-trxtoken)
|
|
13280
13280
|
|
|
13281
|
+
###### Method getValidBeefForKnownTxid
|
|
13282
|
+
|
|
13283
|
+
Pulls data from storage to build a valid beef for a txid.
|
|
13284
|
+
|
|
13285
|
+
Optionally merges the data into an existing beef.
|
|
13286
|
+
Optionally requires a minimum number of proof levels.
|
|
13287
|
+
|
|
13288
|
+
```ts
|
|
13289
|
+
async getValidBeefForKnownTxid(txid: string, mergeToBeef?: Beef, trustSelf?: TrustSelf, knownTxids?: string[], trx?: TrxToken, requiredLevels?: number): Promise<Beef>
|
|
13290
|
+
```
|
|
13291
|
+
See also: [TrxToken](./client.md#interface-trxtoken)
|
|
13292
|
+
|
|
13281
13293
|
###### Method updateProvenTxReqWithNewProvenTx
|
|
13282
13294
|
|
|
13283
13295
|
Handles storage changes when a valid MerklePath and mined block header are found for a ProvenTxReq txid.
|
|
@@ -19664,6 +19676,18 @@ validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
19664
19676
|
prevHash: "00000000000000000e7dcc27c06ee353bd37260b2e7e664314c204f0324a5087",
|
|
19665
19677
|
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
|
19666
19678
|
validated: true
|
|
19679
|
+
},
|
|
19680
|
+
{
|
|
19681
|
+
chain: "main",
|
|
19682
|
+
count: 31772,
|
|
19683
|
+
fileHash: "NuVsRUrI5QnjILbYy4LS3A/Udl6PH/m8Y9uVguEsekM=",
|
|
19684
|
+
fileName: "mainNet_9.headers",
|
|
19685
|
+
firstHeight: 900000,
|
|
19686
|
+
lastChainWork: "0000000000000000000000000000000000000000016ab16bb9b31430588788d3",
|
|
19687
|
+
lastHash: "0000000000000000024a2f1caef4b0ffdc1a036b09f9ed7f48b538f619f32ef2",
|
|
19688
|
+
prevChainWork: "000000000000000000000000000000000000000001664db1f2d50327928007e0",
|
|
19689
|
+
prevHash: "00000000000000000e7dcc27c06ee353bd37260b2e7e664314c204f0324a5087",
|
|
19690
|
+
sourceUrl: "https://cdn.projectbabbage.com/blockheaders"
|
|
19667
19691
|
}
|
|
19668
19692
|
]
|
|
19669
19693
|
```
|
|
@@ -605,6 +605,12 @@ export declare class WalletPermissionsManager implements WalletInterface {
|
|
|
605
605
|
* @param amount For DSAP, the authorized spending limit
|
|
606
606
|
*/
|
|
607
607
|
private createPermissionOnChain;
|
|
608
|
+
private mapWithConcurrency;
|
|
609
|
+
private runBestEffortBatches;
|
|
610
|
+
private runBestEffortChunk;
|
|
611
|
+
private buildPermissionOutput;
|
|
612
|
+
private createPermissionTokensBestEffort;
|
|
613
|
+
private renewPermissionTokensBestEffort;
|
|
608
614
|
private coalescePermissionTokens;
|
|
609
615
|
/**
|
|
610
616
|
* Renews a permission token by spending the old token as input and creating a new token output.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletPermissionsManager.d.ts","sourceRoot":"","sources":["../../src/WalletPermissionsManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WalletPermissionsManager.d.ts","sourceRoot":"","sources":["../../src/WalletPermissionsManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAKf,cAAc,EACd,YAAY,EACZ,SAAS,EAeV,MAAM,UAAU,CAAA;AAiCjB;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAE/F;;;;;;OAMG;IACH,UAAU,CACR,GAAG,EAAE,GAAG,EACR,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAA;QACd,UAAU,EAAE,MAAM,CAAA;KACnB,GACA,OAAO,CAAC,GAAG,CAAC,CAAA;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qBAAqB,CAAC,EAAE;QACtB,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,mBAAmB,CAAC,EAAE,KAAK,CAAC;QAC1B,UAAU,EAAE,cAAc,CAAA;QAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;IACF,YAAY,CAAC,EAAE,KAAK,CAAC;QACnB,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;IACF,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,IAAI,EAAE,MAAM,CAAA;QACZ,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,iBAAiB,EAAE,MAAM,CAAA;QACzB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;CACH;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,kBAAkB,CAAA;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEvG,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,KAAK,CAAC;QACf,UAAU,EAAE,cAAc,CAAA;QAC1B,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,SAAS,CAAA;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,uBAAuB,CAAA;CACrC;AAED,MAAM,MAAM,kCAAkC,GAAG,CAAC,OAAO,EAAE,6BAA6B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEjH;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAA;IACxD,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,WAAW,CAAC,EAAE;QAEZ,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,EAAE,CAAA;KACjB,CAAA;IAED,QAAQ,CAAC,EAAE;QAET,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,KAAK,CAAC;YAChB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;YAChC,WAAW,EAAE,MAAM,CAAA;YACnB,QAAQ,EAAE,MAAM,CAAA;SACjB,CAAC,CAAA;KACH,CAAA;IAED,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,aAAa,CAAC,EAAE,eAAe,CAAA;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,iBAAiB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEjH;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAA;IAEZ,uDAAuD;IACvD,EAAE,EAAE,MAAM,EAAE,CAAA;IAEZ,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAA;IAEnB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAA;IAEpB,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAA;IAEhB,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAA;IAElB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB,iIAAiI;IACjI,MAAM,EAAE,MAAM,CAAA;IAEd,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAEzB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IAErB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAcD;;;GAGG;AACH,MAAM,WAAW,iCAAiC;IAChD,6BAA6B,CAAC,EAAE,sBAAsB,EAAE,CAAA;IACxD,uBAAuB,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAClD,4BAA4B,CAAC,EAAE,sBAAsB,EAAE,CAAA;IACvD,gCAAgC,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAC3D,4BAA4B,CAAC,EAAE,6BAA6B,EAAE,CAAA;IAC9D,iCAAiC,CAAC,EAAE,kCAAkC,EAAE,CAAA;CACzE;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;IAErD;;;OAGG;IACH,iCAAiC,CAAC,EAAE,OAAO,CAAA;IAE3C;;;OAGG;IACH,oCAAoC,CAAC,EAAE,OAAO,CAAA;IAE9C;;;OAGG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAA;IAExC;;;OAGG;IACH,sCAAsC,CAAC,EAAE,OAAO,CAAA;IAEhD;;;OAGG;IACH,qCAAqC,CAAC,EAAE,OAAO,CAAA;IAE/C;;OAEG;IACH,uCAAuC,CAAC,EAAE,OAAO,CAAA;IAEjD;;;OAGG;IACH,oCAAoC,CAAC,EAAE,OAAO,CAAA;IAE9C;;;OAGG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAA;IAExC;;OAEG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAA;IAEtC;;OAEG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAA;IAEtC;;OAEG;IACH,sCAAsC,CAAC,EAAE,OAAO,CAAA;IAEhD;;OAEG;IACH,uCAAuC,CAAC,EAAE,OAAO,CAAA;IAEjD;;;OAGG;IACH,oCAAoC,CAAC,EAAE,OAAO,CAAA;IAE9C;;OAEG;IACH,qCAAqC,CAAC,EAAE,OAAO,CAAA;IAE/C;;OAEG;IACH,wCAAwC,CAAC,EAAE,OAAO,CAAA;IAElD;;OAEG;IACH,iCAAiC,CAAC,EAAE,OAAO,CAAA;IAE3C;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAE/B;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAEjC;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAE/B;;;;;OAKG;IACH,iCAAiC,CAAC,EAAE,OAAO,CAAA;CAC5C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,wBAAyB,YAAW,eAAe;IAC9D,kDAAkD;IAClD,OAAO,CAAC,UAAU,CAAiB;IAEnC,8EAA8E;IAC9E,OAAO,CAAC,eAAe,CAAQ;IAE/B;;;OAGG;IACH,OAAO,CAAC,SAAS,CAOhB;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc,CAkBT;IAEb,sEAAsE;IACtE,OAAO,CAAC,eAAe,CAA+D;IACtF,OAAO,CAAC,YAAY,CAAiC;IAErD,OAAO,CAAC,aAAa,CAOR;IACb,OAAO,CAAC,uBAAuB,CAGlB;IACb,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAgB;IAE7D,OAAO,CAAC,oBAAoB,CAAiC;IAE7D,8DAA8D;IAC9D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAgB;IACpD,0FAA0F;IAC1F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAY;IAEzD,6DAA6D;IAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAGpC;IAED;;OAEG;IACH,OAAO,CAAC,MAAM,CAA0B;IAExC;;;;;;OAMG;gBACS,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAE,wBAA6B;IAkC7G;;;;;;;;;;OAUG;YACW,yBAAyB;IAoCvC;;OAEG;YACW,0BAA0B;IAiBxC;;;;;;OAMG;IACI,YAAY,CACjB,SAAS,EAAE,MAAM,iCAAiC,EAClD,OAAO,EAAE,sBAAsB,GAAG,6BAA6B,GAAG,kCAAkC,GACnG,MAAM;IAMT;;;;;;;OAOG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,iCAAiC,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO;IAmBhH;;;;;;;OAOG;YACW,SAAS;IAiBvB;;;;;;;;OAQG;IACU,eAAe,CAAC,MAAM,EAAE;QACnC,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CjB;;;;;OAKG;IACU,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7D;;;;;OAKG;IACU,sBAAsB,CAAC,MAAM,EAAE;QAC1C,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;QACpC,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwHjB;;;OAGG;IACU,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAavD,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1D,2BAA2B,CAAC,MAAM,EAAE;QAC/C,SAAS,EAAE,MAAM,CAAA;QACjB,OAAO,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAA;QACzC,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmEJ,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBzE;;;OAGG;IACU,wBAAwB,CAAC,EACpC,UAAU,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,MAAM,EACN,cAAqB,EACrB,SAAS,EACV,EAAE;QACD,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,OAAO,CAAA;QACnB,UAAU,EAAE,cAAc,CAAA;QAC1B,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,SAAS,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,mBAAmB,GAAG,SAAS,CAAA;KAC7G,GAAG,OAAO,CAAC,OAAO,CAAC;IAoGpB;;;OAGG;IACU,kBAAkB,CAAC,EAC9B,UAAU,EACV,MAAM,EACN,MAAM,EACN,cAAqB,EACrB,SAAS,EACV,EAAE;QACD,UAAU,EAAE,MAAM,CAAA;QAClB,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,SAAS,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAA;KAC/C,GAAG,OAAO,CAAC,OAAO,CAAC;IAoDpB;;;OAGG;IACU,uBAAuB,CAAC,EACnC,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,cAAqB,EACrB,SAAS,EACV,EAAE;QACD,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,OAAO,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,SAAS,EAAE,YAAY,CAAA;KACxB,GAAG,OAAO,CAAC,OAAO,CAAC;IAkEpB;;;OAGG;IACU,2BAA2B,CAAC,EACvC,UAAU,EACV,QAAQ,EACR,SAAS,EACT,MAAM,EACN,cAAqB,EACtB,EAAE;QACD,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,KAAK,CAAC;YAChB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;YAChC,WAAW,EAAE,MAAM,CAAA;YACnB,QAAQ,EAAE,MAAM,CAAA;SACjB,CAAC,CAAA;QACF,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,cAAc,CAAC,EAAE,OAAO,CAAA;KACzB,GAAG,OAAO,CAAC,OAAO,CAAC;IAkDpB;;;OAGG;IACU,iBAAiB,CAAC,EAC7B,UAAU,EACV,KAAK,EACL,MAAM,EACN,cAAqB,EACrB,SAAS,EACV,EAAE;QACD,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,SAAS,EAAE,OAAO,GAAG,MAAM,CAAA;KAC5B,GAAG,OAAO,CAAC,OAAO,CAAC;IAyCpB,OAAO,CAAC,+BAA+B;YAoBzB,wBAAwB;YAgDxB,6BAA6B;YAK7B,+BAA+B;IA2D7C,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,qCAAqC;IAK7C,OAAO,CAAC,0CAA0C;YAKpC,kBAAkB;IA+BhC,OAAO,CAAC,mBAAmB;YAKb,gBAAgB;YA4GhB,gDAAgD;YAmHhD,qCAAqC;IAgCnD,OAAO,CAAC,mCAAmC;YAuC7B,8BAA8B;IAiD5C;;;;;;OAMG;YACW,qBAAqB;IA2EnC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAGrD;IAED;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAGnD;IAED,oFAAoF;YACtE,2BAA2B;YAa3B,2BAA2B;IAgBzC;;;;OAIG;YACW,oBAAoB;IAelC;;;;OAIG;YACW,oBAAoB;IAgBlC,wDAAwD;IACxD,OAAO,CAAC,cAAc;IAKtB,6FAA6F;YAC/E,iBAAiB;IAyF/B,qHAAqH;YACvG,qBAAqB;IA4FnC,4DAA4D;YAC9C,eAAe;IAuD7B,+FAA+F;YACjF,oBAAoB;IAyElC,6EAA6E;YAC/D,iBAAiB;IA+C/B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;OAEG;IACU,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAsBrE;;;;;;;;OAQG;YACW,uBAAuB;YA6CvB,kBAAkB;YAelB,oBAAoB;YAcpB,kBAAkB;YAelB,qBAAqB;YAoCrB,gCAAgC;YAoBhC,+BAA+B;YAiE/B,wBAAwB;IA8EtC;;;;;;;;OAQG;YACW,sBAAsB;IAyFpC;;;OAGG;YACW,mBAAmB;IA0CjC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAkC3B;;;;;;;;OAQG;IACU,uBAAuB,CAAC,EACnC,UAAU,EACV,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACb,GAAE;QACD,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,qBAAqB,CAAC,EAAE,MAAM,CAAA;QAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;KACjB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAiFnC;;;OAGG;IACU,qBAAqB,CAAC,MAAM,EAAE;QACzC,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,OAAO,CAAA;QACnB,UAAU,EAAE,cAAc,CAAA;QAC1B,YAAY,EAAE,MAAM,CAAA;KACrB,GAAG,OAAO,CAAC,OAAO,CAAC;IAcpB;;;;;OAKG;IACU,gBAAgB,CAAC,MAAM,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA4DhH;;OAEG;IACU,eAAe,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAc9F;;OAEG;IACU,0BAA0B,CAAC,MAAM,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAyCpG;;;OAGG;IACU,wBAAwB,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAazG;;;;;;;OAOG;IACU,qBAAqB,CAChC,MAAM,GAAE;QACN,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,QAAQ,CAAC,EAAE,YAAY,CAAA;QACvB,QAAQ,CAAC,EAAE,SAAS,CAAA;KAChB,GACL,OAAO,CAAC,eAAe,EAAE,CAAC;IA2E7B;;;OAGG;IACU,oBAAoB,CAAC,MAAM,EAAE;QACxC,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,OAAO,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,EAAE,CAAA;KACjB,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpB;;;OAGG;IACU,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAiG1D,YAAY,CACvB,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EACpD,UAAU,CAAC,EAAE,MAAM,GAClB,UAAU,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IAyOjC,UAAU,CACrB,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,GACjD,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAI/B,WAAW,CACtB,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,GAClD,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAIhC,WAAW,CACtB,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,GAClD,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAgDhC,iBAAiB,CAC5B,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,GACxD,UAAU,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAwCtC,WAAW,CACtB,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,GAClD,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IAgChC,gBAAgB,CAC3B,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,GACvD,UAAU,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;IA0BrC,YAAY,CACvB,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,GACnD,UAAU,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IA4CjC,4BAA4B,CACvC,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,8BAA8B,CAAC,CAAC,GACnE,UAAU,CAAC,eAAe,CAAC,8BAA8B,CAAC,CAAC;IAajD,wBAAwB,CACnC,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,0BAA0B,CAAC,CAAC,GAC/D,UAAU,CAAC,eAAe,CAAC,0BAA0B,CAAC,CAAC;IAgB7C,OAAO,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IA0BhG,OAAO,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IA0BhG,UAAU,CACrB,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,GACjD,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IA0B/B,UAAU,CACrB,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,GACjD,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IA0B/B,eAAe,CAC1B,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,GACtD,UAAU,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IA0BpC,eAAe,CAC1B,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,GACtD,UAAU,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IA0BpC,kBAAkB,CAC7B,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,GACzD,UAAU,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAevC,gBAAgB,CAC3B,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,GACvD,UAAU,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAerC,gBAAgB,CAC3B,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,GACvD,UAAU,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAcrC,qBAAqB,CAChC,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC,GAC5D,UAAU,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;IAe1C,qBAAqB,CAChC,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC,GAC5D,UAAU,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;IAe1C,oBAAoB,CAC/B,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC,GAC3D,UAAU,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;IAezC,eAAe,CAC1B,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,GACtD,UAAU,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAIpC,qBAAqB,CAChC,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC,GAC5D,UAAU,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;IAgD1C,SAAS,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAItG,kBAAkB,CAC7B,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC,GACzD,UAAU,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAIvC,UAAU,CACrB,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,GACjD,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAI/B,UAAU,CACrB,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,GACjD,UAAU,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAQ5C,oEAAoE;IACpE,OAAO,CAAC,iBAAiB;IAIzB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAOpB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAMrB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAc1B,6EAA6E;IAC7E,OAAO,CAAC,eAAe;IAIvB,mGAAmG;IACnG,OAAO,CAAC,eAAe;IAOvB,oGAAoG;IACpG,OAAO,CAAC,iBAAiB;IAUzB,8FAA8F;IAC9F,OAAO,CAAC,mBAAmB;IA6B3B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAWnC;;;OAGG;IACH,OAAO,CAAC,eAAe;CAaxB"}
|
|
@@ -334,62 +334,67 @@ class WalletPermissionsManager {
|
|
|
334
334
|
}
|
|
335
335
|
// --- End Validation ---
|
|
336
336
|
const expiry = params.expiry || 0; // default: never expires
|
|
337
|
+
const toCreate = [];
|
|
338
|
+
const toRenew = [];
|
|
337
339
|
if (params.granted.spendingAuthorization) {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
+
toCreate.push({
|
|
341
|
+
request: {
|
|
342
|
+
type: 'spending',
|
|
343
|
+
originator,
|
|
344
|
+
spending: { satoshis: params.granted.spendingAuthorization.amount },
|
|
345
|
+
reason: params.granted.spendingAuthorization.description
|
|
346
|
+
},
|
|
347
|
+
expiry: 0,
|
|
348
|
+
amount: params.granted.spendingAuthorization.amount
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
const grantedProtocols = params.granted.protocolPermissions || [];
|
|
352
|
+
const protocolTokens = await this.mapWithConcurrency(grantedProtocols, 8, async (p) => {
|
|
353
|
+
const token = await this.findProtocolToken(originator, false, p.protocolID, p.counterparty || 'self', true, originLookupValues);
|
|
354
|
+
return { p, token };
|
|
355
|
+
});
|
|
356
|
+
for (const { p, token } of protocolTokens) {
|
|
357
|
+
const request = {
|
|
358
|
+
type: 'protocol',
|
|
340
359
|
originator,
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
for (const p of params.granted.protocolPermissions || []) {
|
|
347
|
-
const token = await this.findProtocolToken(originator, false, // No privileged protocols allowed in groups for added security.
|
|
348
|
-
p.protocolID, p.counterparty || 'self', true, originLookupValues);
|
|
360
|
+
privileged: false,
|
|
361
|
+
protocolID: p.protocolID,
|
|
362
|
+
counterparty: p.counterparty || 'self',
|
|
363
|
+
reason: p.description
|
|
364
|
+
};
|
|
349
365
|
if (token) {
|
|
350
|
-
|
|
351
|
-
type: 'protocol',
|
|
352
|
-
originator,
|
|
353
|
-
privileged: false, // No privileged protocols allowed in groups for added security.
|
|
354
|
-
protocolID: p.protocolID,
|
|
355
|
-
counterparty: p.counterparty || 'self',
|
|
356
|
-
reason: p.description
|
|
357
|
-
};
|
|
358
|
-
await this.renewPermissionOnChain(token, request, expiry);
|
|
359
|
-
this.markRecentGrant(request);
|
|
366
|
+
toRenew.push({ oldToken: token, request, expiry });
|
|
360
367
|
}
|
|
361
368
|
else {
|
|
362
|
-
|
|
363
|
-
type: 'protocol',
|
|
364
|
-
originator,
|
|
365
|
-
privileged: false, // No privileged protocols allowed in groups for added security.
|
|
366
|
-
protocolID: p.protocolID,
|
|
367
|
-
counterparty: p.counterparty || 'self',
|
|
368
|
-
reason: p.description
|
|
369
|
-
};
|
|
370
|
-
await this.createPermissionOnChain(request, expiry);
|
|
371
|
-
this.markRecentGrant(request);
|
|
369
|
+
toCreate.push({ request, expiry });
|
|
372
370
|
}
|
|
373
371
|
}
|
|
374
372
|
for (const b of params.granted.basketAccess || []) {
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
373
|
+
toCreate.push({
|
|
374
|
+
request: { type: 'basket', originator, basket: b.basket, reason: b.description },
|
|
375
|
+
expiry
|
|
376
|
+
});
|
|
378
377
|
}
|
|
379
378
|
for (const c of params.granted.certificateAccess || []) {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
379
|
+
toCreate.push({
|
|
380
|
+
request: {
|
|
381
|
+
type: 'certificate',
|
|
382
|
+
originator,
|
|
383
|
+
privileged: false,
|
|
384
|
+
certificate: {
|
|
385
|
+
verifier: c.verifierPublicKey,
|
|
386
|
+
certType: c.type,
|
|
387
|
+
fields: c.fields
|
|
388
|
+
},
|
|
389
|
+
reason: c.description
|
|
388
390
|
},
|
|
389
|
-
|
|
390
|
-
};
|
|
391
|
-
|
|
392
|
-
|
|
391
|
+
expiry
|
|
392
|
+
});
|
|
393
|
+
}
|
|
394
|
+
const created = await this.createPermissionTokensBestEffort(toCreate);
|
|
395
|
+
const renewed = await this.renewPermissionTokensBestEffort(toRenew);
|
|
396
|
+
for (const req of [...created, ...renewed]) {
|
|
397
|
+
this.markRecentGrant(req);
|
|
393
398
|
}
|
|
394
399
|
// Resolve all pending promises for this request
|
|
395
400
|
for (const p of matching.pending) {
|
|
@@ -436,34 +441,34 @@ class WalletPermissionsManager {
|
|
|
436
441
|
throw new Error('Granted protocol permissions are not a subset of the original request.');
|
|
437
442
|
}
|
|
438
443
|
const expiry = params.expiry || 0;
|
|
439
|
-
|
|
444
|
+
const toCreate = [];
|
|
445
|
+
const toRenew = [];
|
|
446
|
+
const grantedProtocols = params.granted.protocols || [];
|
|
447
|
+
const protocolTokens = await this.mapWithConcurrency(grantedProtocols, 8, async (p) => {
|
|
440
448
|
const token = await this.findProtocolToken(originator, false, p.protocolID, counterparty, true, originLookupValues);
|
|
449
|
+
return { p, token };
|
|
450
|
+
});
|
|
451
|
+
for (const { p, token } of protocolTokens) {
|
|
452
|
+
const request = {
|
|
453
|
+
type: 'protocol',
|
|
454
|
+
originator,
|
|
455
|
+
privileged: false,
|
|
456
|
+
protocolID: p.protocolID,
|
|
457
|
+
counterparty,
|
|
458
|
+
reason: p.description
|
|
459
|
+
};
|
|
441
460
|
if (token) {
|
|
442
|
-
|
|
443
|
-
type: 'protocol',
|
|
444
|
-
originator,
|
|
445
|
-
privileged: false,
|
|
446
|
-
protocolID: p.protocolID,
|
|
447
|
-
counterparty,
|
|
448
|
-
reason: p.description
|
|
449
|
-
};
|
|
450
|
-
await this.renewPermissionOnChain(token, request, expiry);
|
|
451
|
-
this.markRecentGrant(request);
|
|
461
|
+
toRenew.push({ oldToken: token, request, expiry });
|
|
452
462
|
}
|
|
453
463
|
else {
|
|
454
|
-
|
|
455
|
-
type: 'protocol',
|
|
456
|
-
originator,
|
|
457
|
-
privileged: false,
|
|
458
|
-
protocolID: p.protocolID,
|
|
459
|
-
counterparty,
|
|
460
|
-
reason: p.description
|
|
461
|
-
};
|
|
462
|
-
await this.createPermissionOnChain(request, expiry);
|
|
463
|
-
this.markRecentGrant(request);
|
|
464
|
+
toCreate.push({ request, expiry });
|
|
464
465
|
}
|
|
465
466
|
}
|
|
466
|
-
this.
|
|
467
|
+
const created = await this.createPermissionTokensBestEffort(toCreate);
|
|
468
|
+
const renewed = await this.renewPermissionTokensBestEffort(toRenew);
|
|
469
|
+
for (const req of [...created, ...renewed]) {
|
|
470
|
+
this.markRecentGrant(req);
|
|
471
|
+
}
|
|
467
472
|
for (const p of matching.pending) {
|
|
468
473
|
p.resolve(true);
|
|
469
474
|
}
|
|
@@ -1742,10 +1747,128 @@ class WalletPermissionsManager {
|
|
|
1742
1747
|
}
|
|
1743
1748
|
],
|
|
1744
1749
|
options: {
|
|
1745
|
-
acceptDelayedBroadcast:
|
|
1750
|
+
acceptDelayedBroadcast: true
|
|
1746
1751
|
}
|
|
1747
1752
|
}, this.adminOriginator);
|
|
1748
1753
|
}
|
|
1754
|
+
async mapWithConcurrency(items, concurrency, fn) {
|
|
1755
|
+
if (!items.length)
|
|
1756
|
+
return [];
|
|
1757
|
+
const results = new Array(items.length);
|
|
1758
|
+
let i = 0;
|
|
1759
|
+
const worker = async () => {
|
|
1760
|
+
while (true) {
|
|
1761
|
+
const idx = i++;
|
|
1762
|
+
if (idx >= items.length)
|
|
1763
|
+
return;
|
|
1764
|
+
results[idx] = await fn(items[idx]);
|
|
1765
|
+
}
|
|
1766
|
+
};
|
|
1767
|
+
await Promise.all(Array.from({ length: Math.min(concurrency, items.length) }, () => worker()));
|
|
1768
|
+
return results;
|
|
1769
|
+
}
|
|
1770
|
+
async runBestEffortBatches(items, chunkSize, runChunk) {
|
|
1771
|
+
if (!items.length)
|
|
1772
|
+
return [];
|
|
1773
|
+
const out = [];
|
|
1774
|
+
for (let i = 0; i < items.length; i += chunkSize) {
|
|
1775
|
+
const chunk = items.slice(i, i + chunkSize);
|
|
1776
|
+
out.push(...(await this.runBestEffortChunk(chunk, runChunk)));
|
|
1777
|
+
}
|
|
1778
|
+
return out;
|
|
1779
|
+
}
|
|
1780
|
+
async runBestEffortChunk(chunk, runChunk) {
|
|
1781
|
+
try {
|
|
1782
|
+
return await runChunk(chunk);
|
|
1783
|
+
}
|
|
1784
|
+
catch (e) {
|
|
1785
|
+
if (chunk.length <= 1) {
|
|
1786
|
+
console.error('Permission batch failed:', e);
|
|
1787
|
+
return [];
|
|
1788
|
+
}
|
|
1789
|
+
const mid = Math.ceil(chunk.length / 2);
|
|
1790
|
+
const left = await this.runBestEffortChunk(chunk.slice(0, mid), runChunk);
|
|
1791
|
+
const right = await this.runBestEffortChunk(chunk.slice(mid), runChunk);
|
|
1792
|
+
return [...left, ...right];
|
|
1793
|
+
}
|
|
1794
|
+
}
|
|
1795
|
+
async buildPermissionOutput(r, expiry, amount) {
|
|
1796
|
+
const normalizedOriginator = this.normalizeOriginator(r.originator) || r.originator;
|
|
1797
|
+
r.originator = normalizedOriginator;
|
|
1798
|
+
const basketName = BASKET_MAP[r.type];
|
|
1799
|
+
if (!basketName) {
|
|
1800
|
+
throw new Error(`Unsupported permission type: ${r.type}`);
|
|
1801
|
+
}
|
|
1802
|
+
const fields = await this.buildPushdropFields(r, expiry, amount);
|
|
1803
|
+
const script = await new sdk_1.PushDrop(this.underlying).lock(fields, WalletPermissionsManager.PERM_TOKEN_ENCRYPTION_PROTOCOL, '1', 'self', true, true);
|
|
1804
|
+
const tags = this.buildTagsForRequest(r);
|
|
1805
|
+
return {
|
|
1806
|
+
request: r,
|
|
1807
|
+
output: {
|
|
1808
|
+
lockingScript: script.toHex(),
|
|
1809
|
+
satoshis: 1,
|
|
1810
|
+
outputDescription: `${r.type} permission token`,
|
|
1811
|
+
basket: basketName,
|
|
1812
|
+
tags
|
|
1813
|
+
}
|
|
1814
|
+
};
|
|
1815
|
+
}
|
|
1816
|
+
async createPermissionTokensBestEffort(items) {
|
|
1817
|
+
const CHUNK = 25;
|
|
1818
|
+
return this.runBestEffortBatches(items, CHUNK, async (chunk) => {
|
|
1819
|
+
const built = await this.mapWithConcurrency(chunk, 8, c => this.buildPermissionOutput(c.request, c.expiry, c.amount));
|
|
1820
|
+
await this.createAction({
|
|
1821
|
+
description: `Grant ${built.length} permissions`,
|
|
1822
|
+
outputs: built.map(b => b.output),
|
|
1823
|
+
options: { acceptDelayedBroadcast: true }
|
|
1824
|
+
}, this.adminOriginator);
|
|
1825
|
+
return built.map(b => b.request);
|
|
1826
|
+
});
|
|
1827
|
+
}
|
|
1828
|
+
async renewPermissionTokensBestEffort(items) {
|
|
1829
|
+
const CHUNK = 15;
|
|
1830
|
+
return this.runBestEffortBatches(items, CHUNK, async (chunk) => {
|
|
1831
|
+
const built = await this.mapWithConcurrency(chunk, 8, c => this.buildPermissionOutput(c.request, c.expiry, c.amount));
|
|
1832
|
+
const inputBeef = new sdk_1.Beef();
|
|
1833
|
+
for (const c of chunk) {
|
|
1834
|
+
inputBeef.mergeBeef(sdk_1.Beef.fromBinary(c.oldToken.tx));
|
|
1835
|
+
}
|
|
1836
|
+
const { signableTransaction } = await this.createAction({
|
|
1837
|
+
description: `Renew ${chunk.length} permissions`,
|
|
1838
|
+
inputBEEF: inputBeef.toBinary(),
|
|
1839
|
+
inputs: chunk.map((c, i) => ({
|
|
1840
|
+
outpoint: `${c.oldToken.txid}.${c.oldToken.outputIndex}`,
|
|
1841
|
+
unlockingScriptLength: 73,
|
|
1842
|
+
inputDescription: `Consume old permission token #${i + 1}`
|
|
1843
|
+
})),
|
|
1844
|
+
outputs: built.map(b => b.output),
|
|
1845
|
+
options: {
|
|
1846
|
+
acceptDelayedBroadcast: true,
|
|
1847
|
+
randomizeOutputs: false,
|
|
1848
|
+
signAndProcess: false
|
|
1849
|
+
}
|
|
1850
|
+
}, this.adminOriginator);
|
|
1851
|
+
if (!(signableTransaction === null || signableTransaction === void 0 ? void 0 : signableTransaction.reference) || !signableTransaction.tx) {
|
|
1852
|
+
throw new Error('Failed to create signable transaction');
|
|
1853
|
+
}
|
|
1854
|
+
const partialTx = sdk_1.Transaction.fromAtomicBEEF(signableTransaction.tx);
|
|
1855
|
+
const pushdrop = new sdk_1.PushDrop(this.underlying);
|
|
1856
|
+
const spends = {};
|
|
1857
|
+
for (let i = 0; i < chunk.length; i++) {
|
|
1858
|
+
const token = chunk[i].oldToken;
|
|
1859
|
+
const unlocker = pushdrop.unlock(WalletPermissionsManager.PERM_TOKEN_ENCRYPTION_PROTOCOL, '1', 'self', 'all', false, 1, sdk_1.LockingScript.fromHex(token.outputScript));
|
|
1860
|
+
const unlockingScript = await unlocker.sign(partialTx, i);
|
|
1861
|
+
spends[i] = { unlockingScript: unlockingScript.toHex() };
|
|
1862
|
+
}
|
|
1863
|
+
const { txid } = await this.underlying.signAction({
|
|
1864
|
+
reference: signableTransaction.reference,
|
|
1865
|
+
spends
|
|
1866
|
+
});
|
|
1867
|
+
if (!txid)
|
|
1868
|
+
throw new Error('Failed to finalize renewal transaction');
|
|
1869
|
+
return built.map(b => b.request);
|
|
1870
|
+
});
|
|
1871
|
+
}
|
|
1749
1872
|
async coalescePermissionTokens(oldTokens, newScript, opts) {
|
|
1750
1873
|
var _a;
|
|
1751
1874
|
if (!(oldTokens === null || oldTokens === void 0 ? void 0 : oldTokens.length))
|
|
@@ -1776,7 +1899,7 @@ class WalletPermissionsManager {
|
|
|
1776
1899
|
}
|
|
1777
1900
|
],
|
|
1778
1901
|
options: {
|
|
1779
|
-
acceptDelayedBroadcast:
|
|
1902
|
+
acceptDelayedBroadcast: true,
|
|
1780
1903
|
randomizeOutputs: false,
|
|
1781
1904
|
signAndProcess: false
|
|
1782
1905
|
}
|
|
@@ -1855,7 +1978,7 @@ class WalletPermissionsManager {
|
|
|
1855
1978
|
}
|
|
1856
1979
|
],
|
|
1857
1980
|
options: {
|
|
1858
|
-
acceptDelayedBroadcast:
|
|
1981
|
+
acceptDelayedBroadcast: true
|
|
1859
1982
|
}
|
|
1860
1983
|
}, this.adminOriginator);
|
|
1861
1984
|
const tx = sdk_1.Transaction.fromBEEF(signableTransaction.tx);
|
|
@@ -1991,7 +2114,7 @@ class WalletPermissionsManager {
|
|
|
1991
2114
|
tags,
|
|
1992
2115
|
tagQueryMode: 'all',
|
|
1993
2116
|
include: 'entire transactions',
|
|
1994
|
-
limit:
|
|
2117
|
+
limit: 10000
|
|
1995
2118
|
}, this.adminOriginator);
|
|
1996
2119
|
for (const out of result.outputs) {
|
|
1997
2120
|
if (seen.has(out.outpoint))
|
|
@@ -2296,16 +2419,60 @@ class WalletPermissionsManager {
|
|
|
2296
2419
|
}
|
|
2297
2420
|
],
|
|
2298
2421
|
options: {
|
|
2299
|
-
acceptDelayedBroadcast:
|
|
2422
|
+
acceptDelayedBroadcast: true
|
|
2300
2423
|
}
|
|
2301
2424
|
}, this.adminOriginator);
|
|
2302
2425
|
const tx = sdk_1.Transaction.fromBEEF(signableTransaction.tx);
|
|
2426
|
+
const normalizeTxid = (txid) => (txid !== null && txid !== void 0 ? txid : '').toLowerCase();
|
|
2427
|
+
const reverseHexTxid = (txid) => {
|
|
2428
|
+
const hex = normalizeTxid(txid);
|
|
2429
|
+
if (!/^[0-9a-f]{64}$/.test(hex))
|
|
2430
|
+
return hex;
|
|
2431
|
+
const bytes = hex.match(/../g);
|
|
2432
|
+
return bytes ? bytes.reverse().join('') : hex;
|
|
2433
|
+
};
|
|
2434
|
+
const matchesOutpointString = (outpoint) => {
|
|
2435
|
+
const dot = outpoint.lastIndexOf('.');
|
|
2436
|
+
const colon = outpoint.lastIndexOf(':');
|
|
2437
|
+
const sep = dot > colon ? dot : colon;
|
|
2438
|
+
if (sep === -1)
|
|
2439
|
+
return false;
|
|
2440
|
+
const txidPart = outpoint.slice(0, sep);
|
|
2441
|
+
const indexPart = outpoint.slice(sep + 1);
|
|
2442
|
+
const vout = Number(indexPart);
|
|
2443
|
+
if (!Number.isFinite(vout))
|
|
2444
|
+
return false;
|
|
2445
|
+
return normalizeTxid(txidPart) === normalizeTxid(oldToken.txid) && vout === oldToken.outputIndex;
|
|
2446
|
+
};
|
|
2447
|
+
let permInputIndex = tx.inputs.findIndex((input) => {
|
|
2448
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
2449
|
+
const txidCandidate = (_g = (_f = (_e = (_d = (_c = (_b = (_a = input === null || input === void 0 ? void 0 : input.sourceTXID) !== null && _a !== void 0 ? _a : input === null || input === void 0 ? void 0 : input.sourceTxid) !== null && _b !== void 0 ? _b : input === null || input === void 0 ? void 0 : input.sourceTxId) !== null && _c !== void 0 ? _c : input === null || input === void 0 ? void 0 : input.prevTxId) !== null && _d !== void 0 ? _d : input === null || input === void 0 ? void 0 : input.prevTxid) !== null && _e !== void 0 ? _e : input === null || input === void 0 ? void 0 : input.prevTXID) !== null && _f !== void 0 ? _f : input === null || input === void 0 ? void 0 : input.txid) !== null && _g !== void 0 ? _g : input === null || input === void 0 ? void 0 : input.txID;
|
|
2450
|
+
const voutCandidate = (_l = (_k = (_j = (_h = input === null || input === void 0 ? void 0 : input.sourceOutputIndex) !== null && _h !== void 0 ? _h : input === null || input === void 0 ? void 0 : input.sourceOutput) !== null && _j !== void 0 ? _j : input === null || input === void 0 ? void 0 : input.outputIndex) !== null && _k !== void 0 ? _k : input === null || input === void 0 ? void 0 : input.vout) !== null && _l !== void 0 ? _l : input === null || input === void 0 ? void 0 : input.prevOutIndex;
|
|
2451
|
+
if (typeof txidCandidate === 'string' && typeof voutCandidate === 'number') {
|
|
2452
|
+
const cand = normalizeTxid(txidCandidate);
|
|
2453
|
+
const target = normalizeTxid(oldToken.txid);
|
|
2454
|
+
if (cand === target && voutCandidate === oldToken.outputIndex)
|
|
2455
|
+
return true;
|
|
2456
|
+
if (cand === reverseHexTxid(oldToken.txid) && voutCandidate === oldToken.outputIndex)
|
|
2457
|
+
return true;
|
|
2458
|
+
}
|
|
2459
|
+
const outpointCandidate = (_o = (_m = input === null || input === void 0 ? void 0 : input.outpoint) !== null && _m !== void 0 ? _m : input === null || input === void 0 ? void 0 : input.sourceOutpoint) !== null && _o !== void 0 ? _o : input === null || input === void 0 ? void 0 : input.prevOutpoint;
|
|
2460
|
+
if (typeof outpointCandidate === 'string' && matchesOutpointString(outpointCandidate))
|
|
2461
|
+
return true;
|
|
2462
|
+
return false;
|
|
2463
|
+
});
|
|
2464
|
+
if (permInputIndex === -1 && tx.inputs.length === 1) {
|
|
2465
|
+
permInputIndex = 0;
|
|
2466
|
+
}
|
|
2467
|
+
if (permInputIndex === -1) {
|
|
2468
|
+
throw new Error('Unable to locate permission token input for revocation.');
|
|
2469
|
+
}
|
|
2303
2470
|
const unlocker = new sdk_1.PushDrop(this.underlying).unlock(WalletPermissionsManager.PERM_TOKEN_ENCRYPTION_PROTOCOL, '1', 'self', 'all', false, 1, sdk_1.LockingScript.fromHex(oldToken.outputScript));
|
|
2304
|
-
const unlockingScript = await unlocker.sign(tx,
|
|
2471
|
+
const unlockingScript = await unlocker.sign(tx, permInputIndex);
|
|
2305
2472
|
await this.underlying.signAction({
|
|
2306
2473
|
reference: signableTransaction.reference,
|
|
2307
2474
|
spends: {
|
|
2308
|
-
|
|
2475
|
+
[permInputIndex]: {
|
|
2309
2476
|
unlockingScript: unlockingScript.toHex()
|
|
2310
2477
|
}
|
|
2311
2478
|
}
|