@bsv/wallet-toolbox 2.0.4 → 2.0.5-beta.1

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.
Files changed (123) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/docs/client.md +39 -36
  3. package/docs/services.md +9 -20
  4. package/docs/setup.md +1 -1
  5. package/docs/wallet.md +39 -36
  6. package/out/src/Setup.js +1 -1
  7. package/out/src/Setup.js.map +1 -1
  8. package/out/src/Wallet.d.ts.map +1 -1
  9. package/out/src/Wallet.js +2 -0
  10. package/out/src/Wallet.js.map +1 -1
  11. package/out/src/index.all.d.ts +1 -0
  12. package/out/src/index.all.d.ts.map +1 -1
  13. package/out/src/index.all.js +1 -0
  14. package/out/src/index.all.js.map +1 -1
  15. package/out/src/mockchain/MockChainMigrations.d.ts +20 -0
  16. package/out/src/mockchain/MockChainMigrations.d.ts.map +1 -0
  17. package/out/src/mockchain/MockChainMigrations.js +67 -0
  18. package/out/src/mockchain/MockChainMigrations.js.map +1 -0
  19. package/out/src/mockchain/MockChainStorage.d.ts +58 -0
  20. package/out/src/mockchain/MockChainStorage.d.ts.map +1 -0
  21. package/out/src/mockchain/MockChainStorage.js +101 -0
  22. package/out/src/mockchain/MockChainStorage.js.map +1 -0
  23. package/out/src/mockchain/MockChainTracker.d.ts +28 -0
  24. package/out/src/mockchain/MockChainTracker.d.ts.map +1 -0
  25. package/out/src/mockchain/MockChainTracker.js +95 -0
  26. package/out/src/mockchain/MockChainTracker.js.map +1 -0
  27. package/out/src/mockchain/MockMiner.d.ts +16 -0
  28. package/out/src/mockchain/MockMiner.d.ts.map +1 -0
  29. package/out/src/mockchain/MockMiner.js +136 -0
  30. package/out/src/mockchain/MockMiner.js.map +1 -0
  31. package/out/src/mockchain/MockServices.d.ts +44 -0
  32. package/out/src/mockchain/MockServices.d.ts.map +1 -0
  33. package/out/src/mockchain/MockServices.js +504 -0
  34. package/out/src/mockchain/MockServices.js.map +1 -0
  35. package/out/src/mockchain/index.d.ts +9 -0
  36. package/out/src/mockchain/index.d.ts.map +1 -0
  37. package/out/src/mockchain/index.js +18 -0
  38. package/out/src/mockchain/index.js.map +1 -0
  39. package/out/src/mockchain/merkleTree.d.ts +13 -0
  40. package/out/src/mockchain/merkleTree.d.ts.map +1 -0
  41. package/out/src/mockchain/merkleTree.js +113 -0
  42. package/out/src/mockchain/merkleTree.js.map +1 -0
  43. package/out/src/monitor/Monitor.d.ts +3 -3
  44. package/out/src/monitor/Monitor.d.ts.map +1 -1
  45. package/out/src/monitor/Monitor.js +7 -0
  46. package/out/src/monitor/Monitor.js.map +1 -1
  47. package/out/src/monitor/MonitorDaemon.js +1 -1
  48. package/out/src/monitor/MonitorDaemon.js.map +1 -1
  49. package/out/src/monitor/tasks/TaskMineBlock.d.ts +13 -0
  50. package/out/src/monitor/tasks/TaskMineBlock.d.ts.map +1 -0
  51. package/out/src/monitor/tasks/TaskMineBlock.js +29 -0
  52. package/out/src/monitor/tasks/TaskMineBlock.js.map +1 -0
  53. package/out/src/sdk/WalletServices.interfaces.d.ts +5 -3
  54. package/out/src/sdk/WalletServices.interfaces.d.ts.map +1 -1
  55. package/out/src/sdk/types.d.ts +1 -1
  56. package/out/src/sdk/types.d.ts.map +1 -1
  57. package/out/src/services/Services.d.ts +4 -3
  58. package/out/src/services/Services.d.ts.map +1 -1
  59. package/out/src/services/Services.js +101 -28
  60. package/out/src/services/Services.js.map +1 -1
  61. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.d.ts.map +1 -1
  62. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js +24 -6
  63. package/out/src/services/chaintracker/chaintracks/Ingest/WhatsOnChainIngestorWs.js.map +1 -1
  64. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.js +1 -1
  65. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/BulkIngestorCDNBabbage.test.js.map +1 -1
  66. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.d.ts +2 -0
  67. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.d.ts.map +1 -0
  68. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.js +102 -0
  69. package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.js.map +1 -0
  70. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageMemory.js +2 -2
  71. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.d.ts.map +1 -1
  72. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js +8 -8
  73. package/out/src/services/chaintracker/chaintracks/Storage/ChaintracksStorageNoDb.js.map +1 -1
  74. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.js +1 -1
  75. package/out/src/services/chaintracker/chaintracks/Storage/__tests/ChaintracksStorageKnex.test.js.map +1 -1
  76. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js +1 -1
  77. package/out/src/services/chaintracker/chaintracks/createDefaultKnexChaintracksOptions.js.map +1 -1
  78. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.js +1 -1
  79. package/out/src/services/chaintracker/chaintracks/util/__tests/BulkFileDataManager.test.js.map +1 -1
  80. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.d.ts.map +1 -1
  81. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js +27 -21
  82. package/out/src/services/chaintracker/chaintracks/util/blockHeaderUtilities.js.map +1 -1
  83. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.d.ts.map +1 -1
  84. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js +4 -15
  85. package/out/src/services/chaintracker/chaintracks/util/validBulkHeaderFilesByFileHash.js.map +1 -1
  86. package/out/src/services/createDefaultWalletServicesOptions.d.ts.map +1 -1
  87. package/out/src/services/createDefaultWalletServicesOptions.js +19 -4
  88. package/out/src/services/createDefaultWalletServicesOptions.js.map +1 -1
  89. package/out/src/services/providers/Bitails.d.ts.map +1 -1
  90. package/out/src/services/providers/Bitails.js +10 -1
  91. package/out/src/services/providers/Bitails.js.map +1 -1
  92. package/out/src/services/providers/SdkWhatsOnChain.d.ts +1 -1
  93. package/out/src/services/providers/SdkWhatsOnChain.d.ts.map +1 -1
  94. package/out/src/services/providers/SdkWhatsOnChain.js.map +1 -1
  95. package/out/src/services/providers/WhatsOnChain.d.ts.map +1 -1
  96. package/out/src/services/providers/WhatsOnChain.js +2 -0
  97. package/out/src/services/providers/WhatsOnChain.js.map +1 -1
  98. package/out/src/services/providers/exchangeRates.d.ts +1 -1
  99. package/out/src/services/providers/exchangeRates.d.ts.map +1 -1
  100. package/out/src/services/providers/exchangeRates.js +20 -14
  101. package/out/src/services/providers/exchangeRates.js.map +1 -1
  102. package/out/src/storage/StorageIdb.d.ts.map +1 -1
  103. package/out/src/storage/StorageIdb.js +39 -26
  104. package/out/src/storage/StorageIdb.js.map +1 -1
  105. package/out/src/storage/StorageKnex.d.ts.map +1 -1
  106. package/out/src/storage/StorageKnex.js +45 -9
  107. package/out/src/storage/StorageKnex.js.map +1 -1
  108. package/out/src/storage/methods/createAction.js +16 -9
  109. package/out/src/storage/methods/createAction.js.map +1 -1
  110. package/out/src/storage/remoting/StorageServer.d.ts.map +1 -1
  111. package/out/src/storage/remoting/StorageServer.js +2 -1
  112. package/out/src/storage/remoting/StorageServer.js.map +1 -1
  113. package/out/src/storage/remoting/__test/StorageClient.man.test.d.ts +2 -0
  114. package/out/src/storage/remoting/__test/StorageClient.man.test.d.ts.map +1 -0
  115. package/out/src/storage/remoting/__test/StorageClient.man.test.js +223 -0
  116. package/out/src/storage/remoting/__test/StorageClient.man.test.js.map +1 -0
  117. package/out/src/storage/schema/KnexMigrations.d.ts.map +1 -1
  118. package/out/src/storage/schema/KnexMigrations.js +2 -1
  119. package/out/src/storage/schema/KnexMigrations.js.map +1 -1
  120. package/out/src/utility/utilityHelpers.d.ts.map +1 -1
  121. package/out/src/utility/utilityHelpers.js +10 -1
  122. package/out/src/utility/utilityHelpers.js.map +1 -1
  123. package/package.json +3 -7
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MockMiner = void 0;
4
+ exports.createCoinbaseTransaction = createCoinbaseTransaction;
5
+ const sdk_1 = require("@bsv/sdk");
6
+ const MockChainStorage_1 = require("./MockChainStorage");
7
+ const merkleTree_1 = require("./merkleTree");
8
+ const Services_1 = require("../services/Services");
9
+ const utilityHelpers_1 = require("../utility/utilityHelpers");
10
+ const utilityHelpers_noBuffer_1 = require("../utility/utilityHelpers.noBuffer");
11
+ /**
12
+ * Creates a coinbase transaction for the given block height.
13
+ * Uses OP_TRUE (0x51) as the output script so anyone can spend it.
14
+ */
15
+ function createCoinbaseTransaction(height) {
16
+ const tx = new sdk_1.Transaction();
17
+ // BIP34: height in scriptSig
18
+ // Encode height as a minimally-encoded script number pushed in the unlocking script
19
+ const heightBytes = [];
20
+ let h = height;
21
+ if (h === 0) {
22
+ heightBytes.push(0);
23
+ }
24
+ else {
25
+ while (h > 0) {
26
+ heightBytes.push(h & 0xff);
27
+ h >>= 8;
28
+ }
29
+ // If the high bit is set, add a 0x00 byte to keep it positive
30
+ if (heightBytes[heightBytes.length - 1] & 0x80) {
31
+ heightBytes.push(0);
32
+ }
33
+ }
34
+ const scriptSigBytes = [heightBytes.length, ...heightBytes];
35
+ const unlockingScript = sdk_1.Script.fromBinary(scriptSigBytes);
36
+ tx.addInput({
37
+ sourceTXID: '00'.repeat(32),
38
+ sourceOutputIndex: 0xffffffff,
39
+ unlockingScript,
40
+ sequence: 0xffffffff
41
+ });
42
+ tx.addOutput({
43
+ satoshis: 5000000000,
44
+ lockingScript: sdk_1.Script.fromHex('51') // OP_TRUE
45
+ });
46
+ return tx;
47
+ }
48
+ class MockMiner {
49
+ /**
50
+ * Mine a new block containing all unmined transactions.
51
+ * Returns the new block header.
52
+ */
53
+ async mineBlock(storage) {
54
+ const tip = await storage.getChainTip();
55
+ const newHeight = tip ? tip.height + 1 : 0;
56
+ const previousHash = tip ? tip.hash : '00'.repeat(32);
57
+ const unminedTxs = await storage.getUnminedTransactions();
58
+ const coinbaseTx = createCoinbaseTransaction(newHeight);
59
+ const coinbaseTxid = coinbaseTx.id('hex');
60
+ const coinbaseRawTx = Array.from(coinbaseTx.toBinary());
61
+ const txids = [coinbaseTxid, ...unminedTxs.map(t => t.txid)];
62
+ const merkleRoot = (0, merkleTree_1.computeMerkleRoot)(txids);
63
+ const time = Math.floor(Date.now() / 1000);
64
+ const bits = 0x207fffff;
65
+ const nonce = Math.floor(Math.random() * 0xffffffff);
66
+ const headerObj = {
67
+ version: 1,
68
+ previousHash,
69
+ merkleRoot,
70
+ time,
71
+ bits,
72
+ nonce
73
+ };
74
+ const headerBinary = (0, Services_1.toBinaryBaseBlockHeader)(headerObj);
75
+ const hash = (0, utilityHelpers_noBuffer_1.asString)((0, utilityHelpers_1.doubleSha256BE)(headerBinary));
76
+ // Compute script hash for the coinbase output (OP_TRUE = 0x51)
77
+ const coinbaseOutputScript = [0x51];
78
+ const coinbaseScriptHash = (0, utilityHelpers_noBuffer_1.asString)((0, utilityHelpers_1.sha256Hash)(coinbaseOutputScript));
79
+ // Wrap in a knex transaction for atomicity
80
+ await storage.knex.transaction(async (trx) => {
81
+ const trxStorage = new MockChainStorage_1.MockChainStorage(trx);
82
+ // Insert coinbase tx
83
+ await trxStorage.knex('mockchain_transactions').insert({
84
+ txid: coinbaseTxid,
85
+ rawTx: Buffer.from(coinbaseRawTx),
86
+ blockHeight: newHeight,
87
+ blockIndex: 0
88
+ });
89
+ // Insert coinbase UTXO
90
+ await trxStorage.knex('mockchain_utxos').insert({
91
+ txid: coinbaseTxid,
92
+ vout: 0,
93
+ lockingScript: Buffer.from(coinbaseOutputScript),
94
+ satoshis: 5000000000,
95
+ scriptHash: coinbaseScriptHash,
96
+ spentByTxid: null,
97
+ isCoinbase: true,
98
+ blockHeight: newHeight
99
+ });
100
+ // Update unmined txs with block height and sequential block index
101
+ for (let i = 0; i < unminedTxs.length; i++) {
102
+ await trxStorage
103
+ .knex('mockchain_transactions')
104
+ .where({ txid: unminedTxs[i].txid })
105
+ .update({ blockHeight: newHeight, blockIndex: i + 1 });
106
+ // Update blockHeight on UTXOs belonging to these transactions
107
+ await trxStorage.knex('mockchain_utxos').where({ txid: unminedTxs[i].txid }).update({ blockHeight: newHeight });
108
+ }
109
+ // Insert block header
110
+ const headerRow = {
111
+ height: newHeight,
112
+ hash,
113
+ previousHash,
114
+ merkleRoot,
115
+ version: 1,
116
+ time,
117
+ bits,
118
+ nonce,
119
+ coinbaseTxid
120
+ };
121
+ await trxStorage.knex('mockchain_block_headers').insert(headerRow);
122
+ });
123
+ return {
124
+ height: newHeight,
125
+ hash,
126
+ previousHash,
127
+ merkleRoot,
128
+ version: 1,
129
+ time,
130
+ bits,
131
+ nonce
132
+ };
133
+ }
134
+ }
135
+ exports.MockMiner = MockMiner;
136
+ //# sourceMappingURL=MockMiner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockMiner.js","sourceRoot":"","sources":["../../../src/mockchain/MockMiner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { Beef, ChainTracker, Transaction as BsvTransaction } from '@bsv/sdk';
2
+ import { Knex } from 'knex';
3
+ import { Chain } from '../sdk/types';
4
+ import { BlockHeader, FiatExchangeRates, GetMerklePathResult, GetRawTxResult, GetScriptHashHistoryResult, GetStatusForTxidsResult, GetUtxoStatusOutputFormat, GetUtxoStatusResult, PostBeefResult, ServicesCallHistory, WalletServices } from '../sdk/WalletServices.interfaces';
5
+ import type { FiatCurrencyCode } from '../sdk/WalletServices.interfaces';
6
+ import { TableOutput } from '../storage/schema/tables/TableOutput';
7
+ import { MockChainStorage } from './MockChainStorage';
8
+ import { MockChainTracker } from './MockChainTracker';
9
+ import { MockMiner } from './MockMiner';
10
+ export interface ReorgResult {
11
+ oldTip: BlockHeader;
12
+ newTip: BlockHeader;
13
+ deactivatedHeaders: BlockHeader[];
14
+ }
15
+ export declare class MockServices implements WalletServices {
16
+ knex: Knex;
17
+ chain: Chain;
18
+ storage: MockChainStorage;
19
+ tracker: MockChainTracker;
20
+ miner: MockMiner;
21
+ constructor(knex: Knex);
22
+ initialize(): Promise<void>;
23
+ mineBlock(): Promise<BlockHeader>;
24
+ postBeef(beef: Beef, txids: string[]): Promise<PostBeefResult[]>;
25
+ reorg(startingHeight: number, numBlocks: number, txidMap?: Record<string, number>): Promise<ReorgResult>;
26
+ getRawTx(txid: string): Promise<GetRawTxResult>;
27
+ getMerklePath(txid: string): Promise<GetMerklePathResult>;
28
+ getUtxoStatus(output: string, outputFormat?: GetUtxoStatusOutputFormat, outpoint?: string): Promise<GetUtxoStatusResult>;
29
+ getStatusForTxids(txids: string[]): Promise<GetStatusForTxidsResult>;
30
+ getScriptHashHistory(hash: string): Promise<GetScriptHashHistoryResult>;
31
+ getChainTracker(): Promise<ChainTracker>;
32
+ getHeaderForHeight(height: number): Promise<number[]>;
33
+ getHeight(): Promise<number>;
34
+ hashToHeader(hash: string): Promise<BlockHeader>;
35
+ hashOutputScript(script: string): string;
36
+ isUtxo(output: TableOutput): Promise<boolean>;
37
+ getBsvExchangeRate(): Promise<number>;
38
+ getFiatExchangeRate(currency: FiatCurrencyCode, base?: FiatCurrencyCode): Promise<number>;
39
+ getFiatExchangeRates(targetCurrencies: FiatCurrencyCode[]): Promise<FiatExchangeRates>;
40
+ nLockTimeIsFinal(tx: string | number[] | BsvTransaction | number): Promise<boolean>;
41
+ getBeefForTxid(txid: string): Promise<Beef>;
42
+ getServicesCallHistory(): ServicesCallHistory;
43
+ }
44
+ //# sourceMappingURL=MockServices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockServices.d.ts","sourceRoot":"","sources":["../../../src/mockchain/MockServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAc,WAAW,IAAI,cAAc,EAAgC,MAAM,UAAU,CAAA;AACtH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACpC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACf,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAA;AAKlE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,EAAE,WAAW,CAAA;IACnB,kBAAkB,EAAE,WAAW,EAAE,CAAA;CAClC;AAED,qBAAa,YAAa,YAAW,cAAc;IAM9B,IAAI,EAAE,IAAI;IAL7B,KAAK,EAAE,KAAK,CAAS;IACrB,OAAO,EAAE,gBAAgB,CAAA;IACzB,OAAO,EAAE,gBAAgB,CAAA;IACzB,KAAK,EAAE,SAAS,CAAA;gBAEG,IAAI,EAAE,IAAI;IAMvB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC;IAIjC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA2IhE,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAmIxG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAY/C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAezD,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,yBAAyB,EACxC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,mBAAmB,CAAC;IAgCzB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgBpE,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IASvE,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC;IAIxC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMrD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAMtD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKlC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAS7C,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzF,oBAAoB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAUtF,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BnF,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CjD,sBAAsB,IAAI,mBAAmB;CAY9C"}