@tradelayerprotocol/tradelayer 1.9.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 (249) hide show
  1. package/.claude/settings.local.json +13 -0
  2. package/.claude/skills/tl-algo/SKILL.md +255 -0
  3. package/.gitattributes +2 -0
  4. package/.github/workflows/publish.yaml +26 -0
  5. package/4mm.js +163 -0
  6. package/LICENSE +21 -0
  7. package/NPMSwapRefactor.zip +0 -0
  8. package/README.md +217 -0
  9. package/address.sh +26 -0
  10. package/algoAPI.js +581 -0
  11. package/analyzepsbt.js +92 -0
  12. package/apiEx.js +99 -0
  13. package/bb_hyperscalper.js +290 -0
  14. package/bbo_demo.js +111 -0
  15. package/buyer.js +622 -0
  16. package/client.js +50 -0
  17. package/createTxTest.js +26 -0
  18. package/createWallet.js +75 -0
  19. package/daytrader.js +531 -0
  20. package/decodeTest.js +69 -0
  21. package/fundingManager.js +144 -0
  22. package/index.js +4 -0
  23. package/listener.js +27 -0
  24. package/litecoreTxBuilder.js +1128 -0
  25. package/mmEx.js +356 -0
  26. package/networks.js +51 -0
  27. package/orderbook.js +200 -0
  28. package/package.json +34 -0
  29. package/perTradeQueue.js +36 -0
  30. package/projectsTLNPMTLNPM/package-lock.json +162 -0
  31. package/projectsTLNPMTLNPM/package.json +5 -0
  32. package/quick.js +32 -0
  33. package/quickFut.js +37 -0
  34. package/quickSell.js +37 -0
  35. package/relayerClient.js +117 -0
  36. package/run4mm.js +80 -0
  37. package/run_bbo_tracker.js +241 -0
  38. package/seller.js +443 -0
  39. package/session.js +45 -0
  40. package/setup-lin-ltc.sh +139 -0
  41. package/setup-lin.sh +203 -0
  42. package/setup-win-ltc.bat +108 -0
  43. package/setup-win.bat +167 -0
  44. package/spam_screamer_futures.js +222 -0
  45. package/tradelayer.js/.gitattributes +2 -0
  46. package/tradelayer.js/README.md +2 -0
  47. package/tradelayer.js/oldTests/activationTest.js +6 -0
  48. package/tradelayer.js/oldTests/base58.test.js +23 -0
  49. package/tradelayer.js/oldTests/base64Decode.test.js +16 -0
  50. package/tradelayer.js/oldTests/blocksRefactor.js +140 -0
  51. package/tradelayer.js/oldTests/checkVestBalance.js +25 -0
  52. package/tradelayer.js/oldTests/consensusHashProto.js +151 -0
  53. package/tradelayer.js/oldTests/contractOrderbook.js +243 -0
  54. package/tradelayer.js/oldTests/createPayload.js +0 -0
  55. package/tradelayer.js/oldTests/createTestnetAddr.js +43 -0
  56. package/tradelayer.js/oldTests/decode.js +205 -0
  57. package/tradelayer.js/oldTests/decodeTest.js +50 -0
  58. package/tradelayer.js/oldTests/displayTallyMap.js +19 -0
  59. package/tradelayer.js/oldTests/encodeDecode.js +340 -0
  60. package/tradelayer.js/oldTests/expressTest.js +29 -0
  61. package/tradelayer.js/oldTests/extractBlocksVanilla.js +214 -0
  62. package/tradelayer.js/oldTests/extractBlocksVanillaa.js +179 -0
  63. package/tradelayer.js/oldTests/extractPubkeyTest.js +60 -0
  64. package/tradelayer.js/oldTests/fillInputCacheProto.js +111 -0
  65. package/tradelayer.js/oldTests/getRawTxTest.js +22 -0
  66. package/tradelayer.js/oldTests/indexTest.js +26 -0
  67. package/tradelayer.js/oldTests/initTokensTest.js +32 -0
  68. package/tradelayer.js/oldTests/interfaceChild.js +129 -0
  69. package/tradelayer.js/oldTests/listenerChild.js +112 -0
  70. package/tradelayer.js/oldTests/opdecode.js +26 -0
  71. package/tradelayer.js/oldTests/options.js +79 -0
  72. package/tradelayer.js/oldTests/optxtest.js +116 -0
  73. package/tradelayer.js/oldTests/optxtest1.js +64 -0
  74. package/tradelayer.js/oldTests/oracle.test.js +32 -0
  75. package/tradelayer.js/oldTests/orderbook.test.js +36 -0
  76. package/tradelayer.js/oldTests/parsing.js +93 -0
  77. package/tradelayer.js/oldTests/payload.js +13 -0
  78. package/tradelayer.js/oldTests/persistenceUnitTest.js +23 -0
  79. package/tradelayer.js/oldTests/property.test.js +53 -0
  80. package/tradelayer.js/oldTests/propertyLevel.js +75 -0
  81. package/tradelayer.js/oldTests/propertyTest.js +32 -0
  82. package/tradelayer.js/oldTests/queryAddressTest.js +17 -0
  83. package/tradelayer.js/oldTests/salter.js +14 -0
  84. package/tradelayer.js/oldTests/tally.js +81 -0
  85. package/tradelayer.js/oldTests/tally.test.js +48 -0
  86. package/tradelayer.js/oldTests/tally2.js +124 -0
  87. package/tradelayer.js/oldTests/tally3.js +142 -0
  88. package/tradelayer.js/oldTests/tallyDiag.js +38 -0
  89. package/tradelayer.js/oldTests/testGetRaw.js +40 -0
  90. package/tradelayer.js/oldTests/testHexConvert.js +47 -0
  91. package/tradelayer.js/oldTests/testNewEncoding.js +96 -0
  92. package/tradelayer.js/oldTests/testNewEncoding2.js +113 -0
  93. package/tradelayer.js/oldTests/testNewEncoding3 +112 -0
  94. package/tradelayer.js/oldTests/testNewEncoding3.js +168 -0
  95. package/tradelayer.js/oldTests/testOPReturn.js +102 -0
  96. package/tradelayer.js/oldTests/testPayload.js +23 -0
  97. package/tradelayer.js/oldTests/testRaw.js +50 -0
  98. package/tradelayer.js/oldTests/testSendTooMuch.js +20 -0
  99. package/tradelayer.js/oldTests/testTxBuild +28 -0
  100. package/tradelayer.js/oldTests/testTxBuild.js +42 -0
  101. package/tradelayer.js/oldTests/tokenOrderbook.js +243 -0
  102. package/tradelayer.js/oldTests/txUtilsA.js +515 -0
  103. package/tradelayer.js/oldTests/validityUnitTest.js +53 -0
  104. package/tradelayer.js/oldTests/vaults.js +72 -0
  105. package/tradelayer.js/oldTests/volumeIndex.js +117 -0
  106. package/tradelayer.js/oldTests/volumeIndex2.js +88 -0
  107. package/tradelayer.js/output_base64.txt +1 -0
  108. package/tradelayer.js/package-lock.json +9967 -0
  109. package/tradelayer.js/package.json +61 -0
  110. package/tradelayer.js/server/index.js +88 -0
  111. package/tradelayer.js/server/litecoind.exe +0 -0
  112. package/tradelayer.js/src/activation.js +303 -0
  113. package/tradelayer.js/src/adjuster.js +77 -0
  114. package/tradelayer.js/src/amm.js +400 -0
  115. package/tradelayer.js/src/base256.js +55 -0
  116. package/tradelayer.js/src/base94.js +79 -0
  117. package/tradelayer.js/src/channels.js +1163 -0
  118. package/tradelayer.js/src/clearing.js +3109 -0
  119. package/tradelayer.js/src/clearlist.js +364 -0
  120. package/tradelayer.js/src/client.js +295 -0
  121. package/tradelayer.js/src/consensus.js +613 -0
  122. package/tradelayer.js/src/contractRegistry.js +964 -0
  123. package/tradelayer.js/src/db.js +89 -0
  124. package/tradelayer.js/src/init.js +24 -0
  125. package/tradelayer.js/src/insurance.js +347 -0
  126. package/tradelayer.js/src/interface.js +218 -0
  127. package/tradelayer.js/src/interfaceExpress.js +178 -0
  128. package/tradelayer.js/src/iou.js +509 -0
  129. package/tradelayer.js/src/listener.js +226 -0
  130. package/tradelayer.js/src/logic.js +1702 -0
  131. package/tradelayer.js/src/main.js +927 -0
  132. package/tradelayer.js/src/marginMap.js +2165 -0
  133. package/tradelayer.js/src/options.js +126 -0
  134. package/tradelayer.js/src/oracle.js +394 -0
  135. package/tradelayer.js/src/orderbook.js +4123 -0
  136. package/tradelayer.js/src/persistence.js +554 -0
  137. package/tradelayer.js/src/property.js +411 -0
  138. package/tradelayer.js/src/reOrg.js +41 -0
  139. package/tradelayer.js/src/scaling.js +145 -0
  140. package/tradelayer.js/src/tally.js +1275 -0
  141. package/tradelayer.js/src/tradeHistoryManager.js +552 -0
  142. package/tradelayer.js/src/txDecoder.js +584 -0
  143. package/tradelayer.js/src/txEncoder.js +610 -0
  144. package/tradelayer.js/src/txIndex.js +502 -0
  145. package/tradelayer.js/src/txUtils.js +1392 -0
  146. package/tradelayer.js/src/types.js +429 -0
  147. package/tradelayer.js/src/validity.js +3077 -0
  148. package/tradelayer.js/src/vaults.js +430 -0
  149. package/tradelayer.js/src/vesting.js +491 -0
  150. package/tradelayer.js/src/volumeIndex.js +618 -0
  151. package/tradelayer.js/src/walletInterface.js +220 -0
  152. package/tradelayer.js/src/walletListener.js +665 -0
  153. package/tradelayer.js/tests/256decode.js +82 -0
  154. package/tradelayer.js/tests/UTXOracle.js +205 -0
  155. package/tradelayer.js/tests/base94test.js +23 -0
  156. package/tradelayer.js/tests/cancelTxTest.js +62 -0
  157. package/tradelayer.js/tests/contractInterfaceTest.js +48 -0
  158. package/tradelayer.js/tests/decimalTest.js +65 -0
  159. package/tradelayer.js/tests/decoderTest.js +100 -0
  160. package/tradelayer.js/tests/deltaCount.js +47 -0
  161. package/tradelayer.js/tests/deltaCount2.js +60 -0
  162. package/tradelayer.js/tests/interfaceTest.js +37 -0
  163. package/tradelayer.js/tests/mainTest.js +53 -0
  164. package/tradelayer.js/tests/makeActivationTest.js +24 -0
  165. package/tradelayer.js/tests/maxHeightTest.js +49 -0
  166. package/tradelayer.js/tests/reverseHash.js +72 -0
  167. package/tradelayer.js/tests/sensitiveConsoleOutput.txt +267 -0
  168. package/tradelayer.js/tests/tallyTest.js +40 -0
  169. package/tradelayer.js/tests/testBuybacks.js +46 -0
  170. package/tradelayer.js/tests/testCodeHash.js +49 -0
  171. package/tradelayer.js/tests/testConsensusHash.js +91 -0
  172. package/tradelayer.js/tests/testDecode.js +30 -0
  173. package/tradelayer.js/tests/testEncodingLengths.js +129 -0
  174. package/tradelayer.js/tests/testGetTx +32 -0
  175. package/tradelayer.js/tests/testGetTx.js +32 -0
  176. package/tradelayer.js/tests/testHexHash.js +32 -0
  177. package/tradelayer.js/tests/testIndexHash.js +35 -0
  178. package/tradelayer.js/tests/testInitContracts.js +38 -0
  179. package/tradelayer.js/tests/testMaxConsensus.js +12 -0
  180. package/tradelayer.js/tests/testMaxSynth.js +44 -0
  181. package/tradelayer.js/tests/testMint.js +21 -0
  182. package/tradelayer.js/tests/testNetwork.js +33 -0
  183. package/tradelayer.js/tests/testOrderbookLoad.js +62 -0
  184. package/tradelayer.js/tests/testRebates.js +32 -0
  185. package/tradelayer.js/tests/testRedeem.js +22 -0
  186. package/tradelayer.js/tests/testTokenTrade.js +39 -0
  187. package/tradelayer.js/tests/testTxBuild.js +42 -0
  188. package/tradelayer.js/tests/testUTXOTrade.js +27 -0
  189. package/tradelayer.js/tests/tokenTradeHistory.js +27 -0
  190. package/tradelayer.js/tests/tradeFutures.js +40 -0
  191. package/tradelayer.js/tests/tradeHistoryExample.js +35 -0
  192. package/tradelayer.js/tests/tradeHistoryLoad.js +15 -0
  193. package/tradelayer.js/tests/txScanTest.js +134 -0
  194. package/tradelayer.js/tests/validateTest.js +136 -0
  195. package/tradelayer.js/tests/vestingTest.js +37 -0
  196. package/tradelayer.js/utils/activateMainnet.js +59 -0
  197. package/tradelayer.js/utils/activateMainnetDoge.js +63 -0
  198. package/tradelayer.js/utils/autocompactdb.js +23 -0
  199. package/tradelayer.js/utils/base64toHex.js +32 -0
  200. package/tradelayer.js/utils/broadcastDoge.js +38 -0
  201. package/tradelayer.js/utils/calcRedeem.js +19 -0
  202. package/tradelayer.js/utils/checkNetwork.js +27 -0
  203. package/tradelayer.js/utils/createAddress.js +48 -0
  204. package/tradelayer.js/utils/createAttestation.js +133 -0
  205. package/tradelayer.js/utils/createContract.js +118 -0
  206. package/tradelayer.js/utils/createOracle.js +94 -0
  207. package/tradelayer.js/utils/createwallet.js +20 -0
  208. package/tradelayer.js/utils/crossFuturesTrades.js +57 -0
  209. package/tradelayer.js/utils/crossTokenTrades.js +62 -0
  210. package/tradelayer.js/utils/dumpPriv.js +29 -0
  211. package/tradelayer.js/utils/generateChannel.js +34 -0
  212. package/tradelayer.js/utils/getInfo.js +21 -0
  213. package/tradelayer.js/utils/hardWipe.js +20 -0
  214. package/tradelayer.js/utils/hexTo64.js +16 -0
  215. package/tradelayer.js/utils/importAddress.js +28 -0
  216. package/tradelayer.js/utils/importpriv.js +20 -0
  217. package/tradelayer.js/utils/issueOracleContract.js +67 -0
  218. package/tradelayer.js/utils/issueTokens.js +41 -0
  219. package/tradelayer.js/utils/listunspent.js +66 -0
  220. package/tradelayer.js/utils/litecoinClient.js +30 -0
  221. package/tradelayer.js/utils/loadwallet.js +20 -0
  222. package/tradelayer.js/utils/publishOracle.js +113 -0
  223. package/tradelayer.js/utils/sendActivation.js +21 -0
  224. package/tradelayer.js/utils/sendChannelContractTrade.js +34 -0
  225. package/tradelayer.js/utils/sendChannelTokenTrade.js +34 -0
  226. package/tradelayer.js/utils/sendCommit.js +24 -0
  227. package/tradelayer.js/utils/sendDoge.js +62 -0
  228. package/tradelayer.js/utils/sendDogeMain.js +67 -0
  229. package/tradelayer.js/utils/sendDogeTx.js +46 -0
  230. package/tradelayer.js/utils/sendLTC.js +63 -0
  231. package/tradelayer.js/utils/sendMainnet.js +62 -0
  232. package/tradelayer.js/utils/sendTransfer.js +19 -0
  233. package/tradelayer.js/utils/sendVestTest.js +88 -0
  234. package/tradelayer.js/utils/sendWithdrawal.js +26 -0
  235. package/tradelayer.js/utils/simpleStart.js +8 -0
  236. package/tradelayer.js/utils/startStop.js +27 -0
  237. package/tradelayer.js/utils/structuredTrades.js +136 -0
  238. package/tradelayer.js/utils/verifySignature.js +90 -0
  239. package/tradelayer.js/utils/verifyWitnessAndScriptPubkey.js +41 -0
  240. package/tradelayer.js/utils/walletCache.js +172 -0
  241. package/tradelayer.js/utils/walletContractInterface.js +48 -0
  242. package/tradelayer.js/utils/walletFetchTxs.js +66 -0
  243. package/tradelayer.js/utils/walletUtils.js +97 -0
  244. package/tradelayer.js/utils/wipeDB.js +55 -0
  245. package/tradelayer.js/utils/wipeDBNotTx.js +50 -0
  246. package/txEncoder.js +529 -0
  247. package/utility.js +28 -0
  248. package/verifymessage.js +38 -0
  249. package/ws-transport.js +311 -0
@@ -0,0 +1,60 @@
1
+ const dbInstance = require('./db');
2
+
3
+ // Load tallyMapDelta database
4
+ const tallyMapDeltaDB = dbInstance.getDatabase('tallyMapDelta');
5
+
6
+ // Function to tally amounts and calculate balance for each type and property ID
7
+ async function calculateBalanceForAddress(address) {
8
+ try {
9
+ // Find all delta records for the given address
10
+ const deltaRecords = await tallyMapDeltaDB.findAsync({ 'data.address': address });
11
+
12
+ // Create a map to store totals for each type, property ID, and cumulative amounts
13
+ const totalsByTypeAndProperty = {};
14
+
15
+ // Iterate through delta records and tally totals for each type, property ID, and cumulative amounts
16
+ deltaRecords.forEach(delta => {
17
+ const { type, property, avail, res, mar, vest } = delta.data;
18
+
19
+ // Update totals
20
+ totalsByTypeAndProperty[type] = totalsByTypeAndProperty[type] || {};
21
+ totalsByTypeAndProperty[type][property] = totalsByTypeAndProperty[type][property] || {
22
+ count: 0,
23
+ cumulativeAmounts: { avail: 0, res: 0, mar: 0, vest: 0 }
24
+ };
25
+
26
+ // Increment count
27
+ totalsByTypeAndProperty[type][property].count++;
28
+
29
+ // Update cumulative amounts
30
+ totalsByTypeAndProperty[type][property].cumulativeAmounts.avail += avail || 0;
31
+ totalsByTypeAndProperty[type][property].cumulativeAmounts.res += res || 0;
32
+ totalsByTypeAndProperty[type][property].cumulativeAmounts.mar += mar || 0;
33
+ totalsByTypeAndProperty[type][property].cumulativeAmounts.vest += vest || 0;
34
+ });
35
+
36
+ // Display totals by type, property ID, and cumulative amounts
37
+ console.log(`Totals by type, property ID, and cumulative amounts for address ${address}:`);
38
+ Object.entries(totalsByTypeAndProperty).forEach(([type, propertyTotals]) => {
39
+ console.log(`Type: ${type}`);
40
+ Object.entries(propertyTotals).forEach(([property, { count, cumulativeAmounts }]) => {
41
+ console.log(` Property ID ${property} - Count: ${count}`);
42
+ console.log(` Avail: ${cumulativeAmounts.avail}`);
43
+ console.log(` Res: ${cumulativeAmounts.res}`);
44
+ console.log(` Mar: ${cumulativeAmounts.mar}`);
45
+ console.log(` Vest: ${cumulativeAmounts.vest}`);
46
+ });
47
+ });
48
+
49
+ return totalsByTypeAndProperty;
50
+ } catch (error) {
51
+ console.error('Error calculating balance:', error);
52
+ throw error;
53
+ }
54
+ }
55
+
56
+ // Example: Replace 'your_address_here' with the actual address you want to calculate the balance for
57
+ const addressToCalculate = 'tltc1qa0kd2d39nmeph3hvcx8ytv65ztcywg5sazhtw8';
58
+
59
+ // Call the function to calculate and display the totals by type, property ID, and cumulative amounts
60
+ calculateBalanceForAddress(addressToCalculate);
@@ -0,0 +1,37 @@
1
+ const adminAddress = "tltc1qa0kd2d39nmeph3hvcx8ytv65ztcywg5sazhtw8";
2
+
3
+ async function delay(ms) {
4
+ return new Promise(resolve => setTimeout(resolve, ms));
5
+ }
6
+
7
+ const expressInterface = require('./interfaceExpress.js');
8
+
9
+ async function runTest() {
10
+ await expressInterface.initMain();
11
+ await delay(2000)
12
+ const balance = await expressInterface.getAllBalancesForAddress(adminAddress);
13
+ console.log(`Balance for ${adminAddress}:`, balance);
14
+ const balance2 = await expressInterface.getAllBalancesForAddress('LNmiS6p8z3KuHHx3q6Jf6x6TfcyptE68oP');
15
+ console.log(`Balance for LNmiS6p8z3KuHHx3q6Jf6x6TfcyptE68oP:`, balance2);
16
+ const properties = await expressInterface.listProperties();
17
+ console.log('Properties:', properties);
18
+ const activations = await expressInterface.getActivations()
19
+ console.log('Activations:', activations)
20
+
21
+ // Load order books
22
+ const orderBook34 = await expressInterface.getOrderBook(3, 4);
23
+ console.log('Order Book for Property IDs 3 and 4:', orderBook34);
24
+ const orderBook43 = await expressInterface.getOrderBook(4, 3);
25
+ console.log('Order Book for Property IDs 4 and 3:', orderBook43);
26
+
27
+
28
+ // New calls
29
+ const contractSeries = await expressInterface.listContractSeries();
30
+ console.log('Contract Series:', contractSeries);
31
+
32
+ const oracles = await expressInterface.listOracles();
33
+ console.log('Oracles:', oracles);
34
+
35
+ }
36
+
37
+ runTest();
@@ -0,0 +1,53 @@
1
+ const assert = require('assert');
2
+ const MainClass = require('./main.js');
3
+
4
+ describe('Main Blockchain Processing', function() {
5
+ let mainProcessor;
6
+
7
+ before(async function() {
8
+ // Initialize the main processor with the test flag set to true
9
+ mainProcessor = new MainClass(true);
10
+ });
11
+
12
+ describe('Initialization', function() {
13
+ it('should initialize or load the transaction index', async function() {
14
+ await mainProcessor.initOrLoadTxIndex();
15
+ // Add assertions to check if the txIndex is initialized correctly
16
+ });
17
+
18
+ it('should construct or load consensus', async function() {
19
+ let consensus = await mainProcessor.constructOrLoadConsensus();
20
+ // Add assertions to check if the consensus is constructed or loaded correctly
21
+ });
22
+ });
23
+
24
+ describe('Synchronization', function() {
25
+ it('should synchronize the transaction index', async function() {
26
+ await mainProcessor.syncIndex();
27
+ // Add assertions to verify synchronization
28
+ });
29
+
30
+ it('should construct consensus from index', async function() {
31
+ let consensus = await mainProcessor.constructConsensusFromIndex(/* startHeight */);
32
+ // Add assertions related to consensus construction
33
+ });
34
+
35
+ it('should check and handle block lag', async function() {
36
+ let blockLag = await mainProcessor.checkBlockLag();
37
+ // Assert block lag calculation
38
+ // Optionally, trigger sync and processing based on block lag
39
+ });
40
+ });
41
+
42
+ describe('Block Processing', function() {
43
+ it('should process incoming blocks', async function() {
44
+ // This might be a complex test depending on how `processIncomingBlocks` is implemented
45
+ // Mock or simulate incoming blocks and assert correct processing
46
+ });
47
+
48
+ // Additional tests for `processBlock`, `blockHandlerBegin`, `blockHandlerMiddle`, and `blockHandlerEnd`
49
+ // Ensure each part of the block processing is covered
50
+ });
51
+
52
+ // Additional tests for any other critical functions in your main class
53
+ });
@@ -0,0 +1,24 @@
1
+ const TxUtils = require('./txUtils.js');
2
+ const Encode = require('./txEncoder.js');
3
+ const types= require('./types.js')
4
+
5
+ const fromAddress = "tltc1qa0kd2d39nmeph3hvcx8ytv65ztcywg5sazhtw8";
6
+ const toAddress = "tltc1qa0kd2d39nmeph3hvcx8ytv65ztcywg5sazhtw8"; // Update this to the desired destination address
7
+ const amount = 0; // Set the amount for the transaction
8
+
9
+ async function makeActivationTest() {
10
+ try {
11
+ const activationParam = 15;
12
+ const encodedData = types.encodePayload(0,{ code: activationParam });
13
+
14
+ // Send the transaction
15
+ const txid = await TxUtils.sendTransaction(fromAddress, null, amount, encodedData);
16
+
17
+ // Log the transaction ID
18
+ console.log('Activation transaction created successfully:', txid);
19
+ } catch (error) {
20
+ console.error('Error in makeActivationTest:', error);
21
+ }
22
+ }
23
+
24
+ makeActivationTest();
@@ -0,0 +1,49 @@
1
+ const Datastore = require('nedb');
2
+ const path = require('path');
3
+ const util = require('util');
4
+ const txIndex = require('./txIndex.js'); // Ensure this is the correct path to your TxIndex class
5
+ const dbInstance = require('./db.js'); // Import the dbInstance from your db.js file
6
+
7
+ async function updateMaxHeight(chainTip) {
8
+ try {
9
+ const txIndexDB = dbInstance.getDatabase('txIndex'); // Retrieve the txIndex database using dbInstance
10
+ console.log(`Updating MaxHeight to ${chainTip}`);
11
+ await txIndexDB.updateAsync(
12
+ { _id: 'MaxHeight' },
13
+ { _id: 'MaxHeight', value: chainTip },
14
+ { upsert: true }
15
+ );
16
+ console.log('MaxHeight updated successfully.');
17
+ } catch (error) {
18
+ console.error('Error updating MaxHeight:', error);
19
+ throw error;
20
+ }
21
+ }
22
+
23
+ async function fetchMaxHeight() {
24
+ try {
25
+ const txIndexDB = dbInstance.getDatabase('txIndex'); // Retrieve the txIndex database using dbInstance
26
+ const maxHeightDoc = await txIndexDB.findOneAsync({ _id: 'MaxHeight' });
27
+ if (maxHeightDoc) {
28
+ console.log(`MaxHeight fetched from DB: ${maxHeightDoc.value}`);
29
+ } else {
30
+ console.log('MaxHeight not found in DB.');
31
+ }
32
+ } catch (error) {
33
+ console.error('Error fetching MaxHeight:', error);
34
+ throw error;
35
+ }
36
+ }
37
+
38
+ async function runTest() {
39
+ try {
40
+ const chainTip = await txIndex.getInstance().fetchChainTip(); // Ensure this is the correct way to get chainTip
41
+ await updateMaxHeight(chainTip);
42
+ await fetchMaxHeight();
43
+ console.log('Test completed successfully');
44
+ } catch (error) {
45
+ console.error('Test failed:', error);
46
+ }
47
+ }
48
+
49
+ runTest();
@@ -0,0 +1,72 @@
1
+ const axios = require('axios');
2
+ const crypto = require('crypto');
3
+
4
+ // Litecoin Core RPC Configuration
5
+ const rpcConfig = {
6
+ url: 'http://127.0.0.1:18332', // Default Litecoin RPC port for testnet is 19332
7
+ auth: {
8
+ username: 'user', // Replace with your Litecoin RPC username
9
+ password: 'pass' // Replace with your Litecoin RPC password
10
+ }
11
+ };
12
+
13
+ // Function to make RPC calls
14
+ async function callRpc(method, params = []) {
15
+ try {
16
+ const response = await axios.post(rpcConfig.url, {
17
+ jsonrpc: '1.0',
18
+ id: 'curltext',
19
+ method,
20
+ params
21
+ }, { auth: rpcConfig.auth });
22
+ return response.data.result;
23
+ } catch (error) {
24
+ console.error(`RPC call error: ${error.message}`);
25
+ return null;
26
+ }
27
+ }
28
+
29
+ // Function to compute double SHA-256 hash and derive txid
30
+ function doubleSHA256(buffer) {
31
+ const hash1 = crypto.createHash('sha256').update(buffer).digest();
32
+ const hash2 = crypto.createHash('sha256').update(hash1).digest();
33
+ return hash2;
34
+ }
35
+
36
+ // Function to reverse byte order for display
37
+ function reverseBytes(buffer) {
38
+ return Buffer.from(buffer).reverse();
39
+ }
40
+
41
+ // Function to get txid from raw hex
42
+ function getTxidFromRawHex(rawHex) {
43
+ const rawBuffer = Buffer.from(rawHex, 'hex');
44
+ const hash = doubleSHA256(rawBuffer);
45
+ return reverseBytes(hash).toString('hex');
46
+ }
47
+
48
+ // Main function to fetch, decode, and validate transaction
49
+ async function fetchAndDecodeTransaction(txid) {
50
+ // Fetch raw transaction hex
51
+ const rawHex = await callRpc('getrawtransaction', [txid, false]);
52
+ if (!rawHex) {
53
+ console.error('Failed to fetch raw transaction hex.');
54
+ return;
55
+ }
56
+
57
+ // Calculate txid from raw hex
58
+ const calculatedTxid = getTxidFromRawHex(rawHex);
59
+ console.log(`Calculated Txid: ${calculatedTxid}`);
60
+
61
+ // Decode raw transaction
62
+ const decodedTx = await callRpc('decoderawtransaction', [rawHex]);
63
+ if (decodedTx) {
64
+ console.log('Decoded Transaction:', JSON.stringify(decodedTx, null, 2));
65
+ } else {
66
+ console.error('Failed to decode transaction.');
67
+ }
68
+ }
69
+
70
+ // Example usage
71
+ const exampleTxid = 'your_transaction_id_here'; // Replace with a valid transaction ID
72
+ fetchAndDecodeTransaction(exampleTxid);
@@ -0,0 +1,267 @@
1
+
2
+ market data 746c tl 31,lfls,0,8hk,0,1
3
+ Pre-decoded and Decoded Payload: 6a13746c33312c6c666c732c302c38686b2c302c31 31,lfls,0,8hk,0,1 decoding the whole thing jtl31,lfls,0,8hk,0,1
4
+ payload 31,lfls,0,8hk,0,1[{"sender":{"senderAddress":"tltc1qvy5ku429xdrad74nlpueeft3th80s3era8y6e08uezpxpvy09rwqjwgmr3","amount":0.000056},"reference":[{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195429520,"vout":0},{"address":"tltc1qvlwcnwlhnja7wlj685ptwxej75mms9nyv7vuy8","satoshis":11000,"vout":1}],"payload":"31,lfls,0,8hk,0,1","decodedParams":{},"marker":"tl","txId":"24b54beee90f642c0c9d2f1e500ad2481a28dee9a2c1ae33b6c3ac48229710ca"}]
5
+ market data 746c tl 41,lfls,ref:0
6
+ Pre-decoded and Decoded Payload: 6a0f746c34312c6c666c732c7265663a30 41,lfls,ref:0 decoding the whole thing jtl41,lfls,ref:0
7
+ payload 41,lfls,ref:0[{"sender":{"senderAddress":"tltc1qvy5ku429xdrad74nlpueeft3th80s3era8y6e08uezpxpvy09rwqjwgmr3","amount":0.000056},"reference":[{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195429520,"vout":0},{"address":"tltc1qvlwcnwlhnja7wlj685ptwxej75mms9nyv7vuy8","satoshis":11000,"vout":1}],"payload":"31,lfls,0,8hk,0,1","decodedParams":{},"marker":"tl","txId":"24b54beee90f642c0c9d2f1e500ad2481a28dee9a2c1ae33b6c3ac48229710ca"},{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9542952},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195422060,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"c45354aa2ff0e7142dde22f0e98470036006a77f9b1d7d0dcc132f5e0b82e6f8"}]
8
+ processing new tx [{"sender":{"senderAddress":"tltc1qvy5ku429xdrad74nlpueeft3th80s3era8y6e08uezpxpvy09rwqjwgmr3","amount":0.000056},"reference":[{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195429520,"vout":0},{"address":"tltc1qvlwcnwlhnja7wlj685ptwxej75mms9nyv7vuy8","satoshis":11000,"vout":1}],"payload":"31,lfls,0,8hk,0,1","decodedParams":{},"marker":"tl","txId":"24b54beee90f642c0c9d2f1e500ad2481a28dee9a2c1ae33b6c3ac48229710ca"},{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9542952},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195422060,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"c45354aa2ff0e7142dde22f0e98470036006a77f9b1d7d0dcc132f5e0b82e6f8"}]
9
+ funding tx []
10
+ funding tx [{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9542952},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195422060,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"c45354aa2ff0e7142dde22f0e98470036006a77f9b1d7d0dcc132f5e0b82e6f8"}]
11
+ tx data in real-time{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9542952},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195422060,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"c45354aa2ff0e7142dde22f0e98470036006a77f9b1d7d0dcc132f5e0b82e6f8"}
12
+ params to go in during consensus builder 4 1,lfls,ref:0 tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t3496378
13
+ checking that type is here 4 3496378
14
+ params.channelAddress tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex
15
+ about to check tally for commit tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01
16
+ return obj {"amount":null,"available":37.69,"reserved":0,"margin":0,"vesting":0,"channel":0}
17
+ Checking senderTally in has hasSufficientBalance tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01 {"amount":null,"available":37.69,"reserved":0,"margin":0,"vesting":0,"channel":0}
18
+ checking balance in commit {"hasSufficient":true,"reason":""}0.01
19
+ Activations list loaded successfully.
20
+ true
21
+ 1
22
+ true true undefined
23
+ in getChannel 2nd hit undefined
24
+ valid tx going in for processing 4{"propertyId":1,"amount":0.01,"channelAddress":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","ref":"0","payEnabled":false,"clearLists":[],"isColoredOutput":false,"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","txid":"c45354aa2ff0e7142dde22f0e98470036006a77f9b1d7d0dcc132f5e0b82e6f8","block":3496378,"reason":"","valid":true} c45354aa2ff0e7142dde22f0e98470036006a77f9b1d7d0dcc132f5e0b82e6f8blockHeight 3496378
25
+ tx number and params 4 {
26
+ propertyId: 1,
27
+ amount: 0.01,
28
+ channelAddress: 'tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex',
29
+ ref: '0',
30
+ payEnabled: false,
31
+ clearLists: [],
32
+ isColoredOutput: false,
33
+ senderAddress: 'tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t',
34
+ txid: 'c45354aa2ff0e7142dde22f0e98470036006a77f9b1d7d0dcc132f5e0b82e6f8',
35
+ block: 3496378,
36
+ reason: '',
37
+ valid: true
38
+ }
39
+ commiting tokens 0.01 3496378
40
+ inside updateBalance for tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 -0.01 0 0 0 commit 3496378
41
+ avail. balance change 37.69 37.68 -0.01
42
+ reserve. balance change 0 0 -0.01
43
+ saving delta {"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","block":3496378,"property":1,"total":null,"avail":-0.01,"res":0,"mar":0,"vest":0,"channel":0,"type":"commit"}
44
+ saving tallymap
45
+ saving delta {"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","block":3496378,"property":1,"total":null,"avail":0,"res":0,"mar":0,"vest":0,"channel":0.01,"type":"channelReceive"}
46
+ saving tallymap
47
+ inside record Commit tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01 3496378
48
+ {"participants":{"A":"","B":""},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[],"A":{},"B":{},"lastCommitmentTime":3496378,"lastUsedColumn":null}
49
+ last char in assign column based on last character t
50
+ false
51
+ {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496378,"lastUsedColumn":"B"}
52
+ Committed 0.01 of propertyId 1 to B in channel for tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t
53
+ Committed 0.01 tokens of propertyId 1 from tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t to channel tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex
54
+ Processed funding txs for block 3496378
55
+ tx Data for block 3496378txData[{"sender":{"senderAddress":"tltc1qvy5ku429xdrad74nlpueeft3th80s3era8y6e08uezpxpvy09rwqjwgmr3","amount":0.000056},"reference":[{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195429520,"vout":0},{"address":"tltc1qvlwcnwlhnja7wlj685ptwxej75mms9nyv7vuy8","satoshis":11000,"vout":1}],"payload":"31,lfls,0,8hk,0,1","decodedParams":{},"marker":"tl","txId":"24b54beee90f642c0c9d2f1e500ad2481a28dee9a2c1ae33b6c3ac48229710ca"}]
56
+ tx data in real-time{"sender":{"senderAddress":"tltc1qvy5ku429xdrad74nlpueeft3th80s3era8y6e08uezpxpvy09rwqjwgmr3","amount":0.000056},"reference":[{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195429520,"vout":0},{"address":"tltc1qvlwcnwlhnja7wlj685ptwxej75mms9nyv7vuy8","satoshis":11000,"vout":1}],"payload":"31,lfls,0,8hk,0,1","decodedParams":{},"marker":"tl","txId":"24b54beee90f642c0c9d2f1e500ad2481a28dee9a2c1ae33b6c3ac48229710ca"}
57
+ params to go in during consensus builder 3 1,lfls,0,8hk,0,1 tltc1qvy5ku429xdrad74nlpueeft3th80s3era8y6e08uezpxpvy09rwqjwgmr33496378
58
+ checking that type is here 3 3496378
59
+ inside case for type 3 1,lfls,0,8hk,0,1
60
+ {"propertyId":1,"amount":0.01,"columnA":false,"satsExpected":0.01,"tokenOutput":0,"payToAddress":1,"isColoredOutput":false}
61
+ inside type for utxo trade [object Object],[object Object]
62
+ inside types for UTXO {"address":"tltc1qvlwcnwlhnja7wlj685ptwxej75mms9nyv7vuy8","satoshis":11000,"vout":1} {"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195429520,"vout":0}
63
+ params tltc1qvlwcnwlhnja7wlj685ptwxej75mms9nyv7vuy8 0.00011 tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t
64
+ inside validate UTXO outputs [{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195429520,"vout":0},{"address":"tltc1qvlwcnwlhnja7wlj685ptwxej75mms9nyv7vuy8","satoshis":11000,"vout":1}]
65
+ Activations list loaded successfully.
66
+ true
67
+ 1
68
+ Checking senderTally in has hasSufficientChannel tltc1qvy5ku429xdrad74nlpueeft3th80s3era8y6e08uezpxpvy09rwqjwgmr3 1 0.01 0
69
+ {"hasSufficient":false,"reason":"undefined"}
70
+ reducing tokens to available 0.01 undefined
71
+ true true undefined
72
+ in getChannel 2nd hit undefined
73
+ Channel is null or undefined for sender: tltc1qvy5ku429xdrad74nlpueeft3th80s3era8y6e08uezpxpvy09rwqjwgmr3
74
+ invalid tx Channel not found for the sender
75
+ Processed block 3496378 successfully...
76
+ market data 746c tl 41,lfls,ref:0
77
+ Pre-decoded and Decoded Payload: 6a0f746c34312c6c666c732c7265663a30 41,lfls,ref:0 decoding the whole thing jtl41,lfls,ref:0
78
+ payload 41,lfls,ref:0[{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9542206},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195414600,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"285b8bffad54bf18f729e519b83508c638be49adc28fc4e3e33e3225fc2d855b"}]
79
+ market data 746c tl 41,lfls,ref:0
80
+ Pre-decoded and Decoded Payload: 6a0f746c34312c6c666c732c7265663a30 41,lfls,ref:0 decoding the whole thing jtl41,lfls,ref:0
81
+ payload 41,lfls,ref:0[{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9542206},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195414600,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"285b8bffad54bf18f729e519b83508c638be49adc28fc4e3e33e3225fc2d855b"},{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.954146},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195407140,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"630aab21d5d472c051a800bac4e00d9d66a1264ce0ef6ef7f113ac2b4ddf930a"}]
82
+ market data 746c tl 41,lfls,ref:0
83
+ Pre-decoded and Decoded Payload: 6a0f746c34312c6c666c732c7265663a30 41,lfls,ref:0 decoding the whole thing jtl41,lfls,ref:0
84
+ payload 41,lfls,ref:0[{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9542206},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195414600,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"285b8bffad54bf18f729e519b83508c638be49adc28fc4e3e33e3225fc2d855b"},{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.954146},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195407140,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"630aab21d5d472c051a800bac4e00d9d66a1264ce0ef6ef7f113ac2b4ddf930a"},{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9540714},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195399680,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"3b4546ad93a7d77ee684ec1ae01ad7eb3f67183459cd41da92ed0f1940eba1f1"}]
85
+ processing new tx [{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9542206},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195414600,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"285b8bffad54bf18f729e519b83508c638be49adc28fc4e3e33e3225fc2d855b"},{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.954146},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195407140,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"630aab21d5d472c051a800bac4e00d9d66a1264ce0ef6ef7f113ac2b4ddf930a"},{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9540714},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195399680,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"3b4546ad93a7d77ee684ec1ae01ad7eb3f67183459cd41da92ed0f1940eba1f1"}]
86
+ funding tx [{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9542206},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195414600,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"285b8bffad54bf18f729e519b83508c638be49adc28fc4e3e33e3225fc2d855b"}]
87
+ funding tx [{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9542206},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195414600,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"285b8bffad54bf18f729e519b83508c638be49adc28fc4e3e33e3225fc2d855b"},{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.954146},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195407140,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"630aab21d5d472c051a800bac4e00d9d66a1264ce0ef6ef7f113ac2b4ddf930a"}]
88
+ funding tx [{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9542206},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195414600,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"285b8bffad54bf18f729e519b83508c638be49adc28fc4e3e33e3225fc2d855b"},{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.954146},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195407140,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"630aab21d5d472c051a800bac4e00d9d66a1264ce0ef6ef7f113ac2b4ddf930a"},{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9540714},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195399680,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"3b4546ad93a7d77ee684ec1ae01ad7eb3f67183459cd41da92ed0f1940eba1f1"}]
89
+ tx data in real-time{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9542206},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195414600,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"285b8bffad54bf18f729e519b83508c638be49adc28fc4e3e33e3225fc2d855b"}
90
+ params to go in during consensus builder 4 1,lfls,ref:0 tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t3496379
91
+ checking that type is here 4 3496379
92
+ params.channelAddress tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex
93
+ about to check tally for commit tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01
94
+ return obj {"amount":null,"available":37.68,"reserved":0,"margin":0,"vesting":0,"channel":0}
95
+ Checking senderTally in has hasSufficientBalance tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01 {"amount":null,"available":37.68,"reserved":0,"margin":0,"vesting":0,"channel":0}
96
+ checking balance in commit {"hasSufficient":true,"reason":""}0.01
97
+ Activations list loaded successfully.
98
+ true
99
+ 1
100
+ false false {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496378,"lastUsedColumn":"B"}
101
+ {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496378,"lastUsedColumn":"B"}
102
+ valid tx going in for processing 4{"propertyId":1,"amount":0.01,"channelAddress":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","ref":"0","payEnabled":false,"clearLists":[],"isColoredOutput":false,"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","txid":"285b8bffad54bf18f729e519b83508c638be49adc28fc4e3e33e3225fc2d855b","block":3496379,"reason":"","valid":true} 285b8bffad54bf18f729e519b83508c638be49adc28fc4e3e33e3225fc2d855bblockHeight 3496379
103
+ tx number and params 4 {
104
+ propertyId: 1,
105
+ amount: 0.01,
106
+ channelAddress: 'tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex',
107
+ ref: '0',
108
+ payEnabled: false,
109
+ clearLists: [],
110
+ isColoredOutput: false,
111
+ senderAddress: 'tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t',
112
+ txid: '285b8bffad54bf18f729e519b83508c638be49adc28fc4e3e33e3225fc2d855b',
113
+ block: 3496379,
114
+ reason: '',
115
+ valid: true
116
+ }
117
+ commiting tokens 0.01 3496379
118
+ inside updateBalance for tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 -0.01 0 0 0 commit 3496379
119
+ avail. balance change 37.68 37.67 -0.01
120
+ reserve. balance change 0 0 -0.01
121
+ saving delta {"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","block":3496379,"property":1,"total":null,"avail":-0.01,"res":0,"mar":0,"vest":0,"channel":0,"type":"commit"}
122
+ saving tallymap
123
+ saving delta {"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","block":3496379,"property":1,"total":null,"avail":0,"res":0,"mar":0,"vest":0,"channel":0.01,"type":"channelReceive"}
124
+ saving tallymap
125
+ inside record Commit tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01 3496379
126
+ {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496378,"lastUsedColumn":"B"}
127
+ last char in assign column based on last character t
128
+ false
129
+ {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496379,"lastUsedColumn":"B"}
130
+ Committed 0.01 of propertyId 1 to B in channel for tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t
131
+ Committed 0.01 tokens of propertyId 1 from tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t to channel tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex
132
+ tx data in real-time{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.954146},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195407140,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"630aab21d5d472c051a800bac4e00d9d66a1264ce0ef6ef7f113ac2b4ddf930a"}
133
+ params to go in during consensus builder 4 1,lfls,ref:0 tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t3496379
134
+ checking that type is here 4 3496379
135
+ params.channelAddress tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex
136
+ about to check tally for commit tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01
137
+ return obj {"amount":null,"available":37.67,"reserved":0,"margin":0,"vesting":0,"channel":0}
138
+ Checking senderTally in has hasSufficientBalance tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01 {"amount":null,"available":37.67,"reserved":0,"margin":0,"vesting":0,"channel":0}
139
+ checking balance in commit {"hasSufficient":true,"reason":""}0.01
140
+ Activations list loaded successfully.
141
+ true
142
+ 1
143
+ false false {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496379,"lastUsedColumn":"B"}
144
+ {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496379,"lastUsedColumn":"B"}
145
+ valid tx going in for processing 4{"propertyId":1,"amount":0.01,"channelAddress":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","ref":"0","payEnabled":false,"clearLists":[],"isColoredOutput":false,"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","txid":"630aab21d5d472c051a800bac4e00d9d66a1264ce0ef6ef7f113ac2b4ddf930a","block":3496379,"reason":"","valid":true} 630aab21d5d472c051a800bac4e00d9d66a1264ce0ef6ef7f113ac2b4ddf930ablockHeight 3496379
146
+ tx number and params 4 {
147
+ propertyId: 1,
148
+ amount: 0.01,
149
+ channelAddress: 'tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex',
150
+ ref: '0',
151
+ payEnabled: false,
152
+ clearLists: [],
153
+ isColoredOutput: false,
154
+ senderAddress: 'tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t',
155
+ txid: '630aab21d5d472c051a800bac4e00d9d66a1264ce0ef6ef7f113ac2b4ddf930a',
156
+ block: 3496379,
157
+ reason: '',
158
+ valid: true
159
+ }
160
+ commiting tokens 0.01 3496379
161
+ inside updateBalance for tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 -0.01 0 0 0 commit 3496379
162
+ avail. balance change 37.67 37.66 -0.01
163
+ reserve. balance change 0 0 -0.01
164
+ saving delta {"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","block":3496379,"property":1,"total":null,"avail":-0.01,"res":0,"mar":0,"vest":0,"channel":0,"type":"commit"}
165
+ saving tallymap
166
+ saving delta {"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","block":3496379,"property":1,"total":null,"avail":0,"res":0,"mar":0,"vest":0,"channel":0.01,"type":"channelReceive"}
167
+ saving tallymap
168
+ inside record Commit tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01 3496379
169
+ {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496379,"lastUsedColumn":"B"}
170
+ last char in assign column based on last character t
171
+ false
172
+ {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496379,"lastUsedColumn":"B"}
173
+ Committed 0.01 of propertyId 1 to B in channel for tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t
174
+ Committed 0.01 tokens of propertyId 1 from tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t to channel tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex
175
+ tx data in real-time{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9540714},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195399680,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"3b4546ad93a7d77ee684ec1ae01ad7eb3f67183459cd41da92ed0f1940eba1f1"}
176
+ params to go in during consensus builder 4 1,lfls,ref:0 tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t3496379
177
+ checking that type is here 4 3496379
178
+ params.channelAddress tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex
179
+ about to check tally for commit tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01
180
+ return obj {"amount":null,"available":37.66,"reserved":0,"margin":0,"vesting":0,"channel":0}
181
+ Checking senderTally in has hasSufficientBalance tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01 {"amount":null,"available":37.66,"reserved":0,"margin":0,"vesting":0,"channel":0}
182
+ checking balance in commit {"hasSufficient":true,"reason":""}0.01
183
+ Activations list loaded successfully.
184
+ true
185
+ 1
186
+ false false {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496379,"lastUsedColumn":"B"}
187
+ {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496379,"lastUsedColumn":"B"}
188
+ valid tx going in for processing 4{"propertyId":1,"amount":0.01,"channelAddress":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","ref":"0","payEnabled":false,"clearLists":[],"isColoredOutput":false,"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","txid":"3b4546ad93a7d77ee684ec1ae01ad7eb3f67183459cd41da92ed0f1940eba1f1","block":3496379,"reason":"","valid":true} 3b4546ad93a7d77ee684ec1ae01ad7eb3f67183459cd41da92ed0f1940eba1f1blockHeight 3496379
189
+ tx number and params 4 {
190
+ propertyId: 1,
191
+ amount: 0.01,
192
+ channelAddress: 'tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex',
193
+ ref: '0',
194
+ payEnabled: false,
195
+ clearLists: [],
196
+ isColoredOutput: false,
197
+ senderAddress: 'tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t',
198
+ txid: '3b4546ad93a7d77ee684ec1ae01ad7eb3f67183459cd41da92ed0f1940eba1f1',
199
+ block: 3496379,
200
+ reason: '',
201
+ valid: true
202
+ }
203
+ commiting tokens 0.01 3496379
204
+ inside updateBalance for tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 -0.01 0 0 0 commit 3496379
205
+ avail. balance change 37.66 37.65 -0.01
206
+ reserve. balance change 0 0 -0.01
207
+ saving delta {"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","block":3496379,"property":1,"total":null,"avail":-0.01,"res":0,"mar":0,"vest":0,"channel":0,"type":"commit"}
208
+ saving tallymap
209
+ saving delta {"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","block":3496379,"property":1,"total":null,"avail":0,"res":0,"mar":0,"vest":0,"channel":0.01,"type":"channelReceive"}
210
+ saving tallymap
211
+ inside record Commit tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01 3496379
212
+ {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496379,"lastUsedColumn":"B"}
213
+ last char in assign column based on last character t
214
+ false
215
+ {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496379,"lastUsedColumn":"B"}
216
+ Committed 0.01 of propertyId 1 to B in channel for tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t
217
+ Committed 0.01 tokens of propertyId 1 from tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t to channel tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex
218
+ Processed funding txs for block 3496379
219
+ Processed block 3496379 successfully...
220
+ market data 746c tl 41,lfls,ref:0
221
+ Pre-decoded and Decoded Payload: 6a0f746c34312c6c666c732c7265663a30 41,lfls,ref:0 decoding the whole thing jtl41,lfls,ref:0
222
+ payload 41,lfls,ref:0[{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9539968},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195392220,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"b9857ded99c93ebd704548598dee1f375f13f006c7d68c4864d5e144a0b0353c"}]
223
+ processing new tx [{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9539968},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195392220,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"b9857ded99c93ebd704548598dee1f375f13f006c7d68c4864d5e144a0b0353c"}]
224
+ funding tx [{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9539968},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195392220,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"b9857ded99c93ebd704548598dee1f375f13f006c7d68c4864d5e144a0b0353c"}]
225
+ tx data in real-time{"sender":{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","amount":1.9539968},"reference":[{"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","satoshis":5460,"vout":0},{"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","satoshis":195392220,"vout":1}],"payload":"41,lfls,ref:0","decodedParams":{},"marker":"tl","txId":"b9857ded99c93ebd704548598dee1f375f13f006c7d68c4864d5e144a0b0353c"}
226
+ params to go in during consensus builder 4 1,lfls,ref:0 tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t3496380
227
+ checking that type is here 4 3496380
228
+ params.channelAddress tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex
229
+ about to check tally for commit tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01
230
+ return obj {"amount":null,"available":37.65,"reserved":0,"margin":0,"vesting":0,"channel":0}
231
+ Checking senderTally in has hasSufficientBalance tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01 {"amount":null,"available":37.65,"reserved":0,"margin":0,"vesting":0,"channel":0}
232
+ checking balance in commit {"hasSufficient":true,"reason":""}0.01
233
+ Activations list loaded successfully.
234
+ true
235
+ 1
236
+ false false {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496379,"lastUsedColumn":"B"}
237
+ {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496379,"lastUsedColumn":"B"}
238
+ valid tx going in for processing 4{"propertyId":1,"amount":0.01,"channelAddress":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","ref":"0","payEnabled":false,"clearLists":[],"isColoredOutput":false,"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","txid":"b9857ded99c93ebd704548598dee1f375f13f006c7d68c4864d5e144a0b0353c","block":3496380,"reason":"","valid":true} b9857ded99c93ebd704548598dee1f375f13f006c7d68c4864d5e144a0b0353cblockHeight 3496380
239
+ tx number and params 4 {
240
+ propertyId: 1,
241
+ amount: 0.01,
242
+ channelAddress: 'tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex',
243
+ ref: '0',
244
+ payEnabled: false,
245
+ clearLists: [],
246
+ isColoredOutput: false,
247
+ senderAddress: 'tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t',
248
+ txid: 'b9857ded99c93ebd704548598dee1f375f13f006c7d68c4864d5e144a0b0353c',
249
+ block: 3496380,
250
+ reason: '',
251
+ valid: true
252
+ }
253
+ commiting tokens 0.01 3496380
254
+ inside updateBalance for tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 -0.01 0 0 0 commit 3496380
255
+ avail. balance change 37.65 37.64 -0.01
256
+ reserve. balance change 0 0 -0.01
257
+ saving delta {"address":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","block":3496380,"property":1,"total":null,"avail":-0.01,"res":0,"mar":0,"vest":0,"channel":0,"type":"commit"}
258
+ saving tallymap
259
+ saving delta {"address":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","block":3496380,"property":1,"total":null,"avail":0,"res":0,"mar":0,"vest":0,"channel":0.01,"type":"channelReceive"}
260
+ saving tallymap
261
+ inside record Commit tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t 1 0.01 3496380
262
+ {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496379,"lastUsedColumn":"B"}
263
+ last char in assign column based on last character t
264
+ false
265
+ {"participants":{"A":"","B":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t"},"channel":"tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex","commits":[{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496378,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496379,"columnAssigned":"B","payEnabled":false},{"senderAddress":"tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t","propertyId":1,"tokenAmount":0.01,"block":3496380,"columnAssigned":"B","payEnabled":false}],"A":{},"B":{"1":0},"lastCommitmentTime":3496380,"lastUsedColumn":"B"}
266
+ Committed 0.01 of propertyId 1 to B in channel for tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t
267
+ Committed 0.01 tokens of propertyId 1 from tltc1q89kkgaslk0lt8l90jkl3cgwg7dkkszn73u4d2t to channel tltc1qy8gyqm0hd225yq57lresv6uua68l628ukqhh86gxgl5fltls9pvsv73rex