@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,429 @@
1
+ // Import the encoding functions from txEncoder.js
2
+ const Encode = require('./txEncoder'); // Update the path to your txEncoder.js file
3
+
4
+ // Import the decoding functions from txDecoder.js
5
+ const Decode = require('./txDecoder'); // Update the path to your txDecoder.js file
6
+ const Validity = require('./validity');
7
+ const TxUtils = require('./txUtils')
8
+ const TxIndex = require('./txIndex.js')
9
+ const BigNumber = require('bignumber.js')
10
+
11
+ const Types = {
12
+ // Function to encode a payload based on the transaction ID and parameters
13
+ encodePayload: (transactionId, params) => {
14
+ let payload = "tl"
15
+ payload+=transactionId.toString(36);
16
+ console.log(transactionId)
17
+ switch (transactionId) {
18
+ case 0:
19
+ payload += Encode.encodeActivateTradeLayer(params);
20
+ break;
21
+ case 1:
22
+ payload += Encode.encodeTokenIssue(params);
23
+ break;
24
+ case 2:
25
+ payload += Encode.encodeSend(params);
26
+ break;
27
+ case 3:
28
+ payload += Encode.encodeTradeTokenForUTXO(params);
29
+ break;
30
+ case 4:
31
+ payload += Encode.encodeCommitToken(params);
32
+ break;
33
+ case 5:
34
+ payload += Encode.encodeOnChainTokenForToken(params);
35
+ break;
36
+ case 6:
37
+ payload += Encode.encodeCancelOrder(params)
38
+ break;
39
+ case 7:
40
+ payload += Encode.encodeCreateWhitelist(params);
41
+ break;
42
+ case 8:
43
+ payload += Encode.encodeUpdateAdmin(params);
44
+ break;
45
+ case 9:
46
+ payload += Encode.encodeIssueOrRevokeAttestation(params);
47
+ break;
48
+ case 10:
49
+ payload += Encode.encodeAMMPool(params);
50
+ break;
51
+ case 11:
52
+ payload += Encode.encodeGrantManagedToken(params);
53
+ break;
54
+ case 12:
55
+ payload += Encode.encodeRedeemManagedToken(params);
56
+ break;
57
+ case 13:
58
+ payload += Encode.encodeCreateOracle(params);
59
+ break;
60
+ case 14:
61
+ payload += Encode.encodePublishOracleData(params);
62
+ break;
63
+ case 15:
64
+ payload += Encode.encodeCloseOracle();
65
+ break;
66
+ case 16:
67
+ payload += Encode.encodeCreateFutureContractSeries(params);
68
+ break;
69
+ case 17:
70
+ payload += Encode.encodeExerciseDerivative(params);
71
+ break;
72
+ case 18:
73
+ payload += Encode.encodeTradeContractOnchain(params);
74
+ break;
75
+ case 19:
76
+ payload += Encode.encodeTradeContractChannel(params);
77
+ break;
78
+ case 20:
79
+ payload += Encode.encodeTradeTokensChannel(params);
80
+ break;
81
+ case 21:
82
+ payload += Encode.encodeWithdrawal(params);
83
+ break;
84
+ case 22:
85
+ payload += Encode.encodeTransfer(params);
86
+ break;
87
+ case 23:
88
+ payload += Encode.encodeSettleChannelPNL(params);
89
+ break;
90
+ case 24:
91
+ payload += Encode.encodeMintSynthetic(params);
92
+ break;
93
+ case 25:
94
+ payload += Encode.encodeRedeemSynthetic(params);
95
+ break;
96
+ case 26:
97
+ payload += Encode.encodePayToTokens(params);
98
+ break;
99
+
100
+ default:
101
+ throw new Error('Unknown transaction type');
102
+ }
103
+
104
+ return payload;
105
+ },
106
+
107
+ // Function to decode a payload based on the transaction ID and encoded payload
108
+ decodePayload: async (txId, type, marker, encodedPayload,sender,reference, senderAmount,referenceAmount, block) => {
109
+ let index = 0;
110
+ let params = {};
111
+
112
+ if (marker !='tl'){
113
+ return Error('Invalid payload');
114
+ }
115
+ console.log('checking that type is here '+type+' '+block)
116
+ switch (type) {
117
+ case 0:
118
+ console.log('decoding activate '+encodedPayload)
119
+ params = Decode.decodeActivateTradeLayer(encodedPayload.substr(index));
120
+ console.log('validating activate '+JSON.stringify(params))
121
+ params.block=block
122
+ params = await Validity.validateActivateTradeLayer(sender, params,txId)
123
+ //console.log('back from validity function'+JSON.stringify(params)+' validated '+params.valid + ' reason '+params.reason)
124
+ break;
125
+ case 1:
126
+ //console.log('decoding issuance '+params)
127
+ params = Decode.decodeTokenIssue(encodedPayload.substr(index));
128
+ params.senderAddress = sender
129
+ //console.log('validating issuance '+JSON.stringify(params))
130
+ params.block=block
131
+ params = await Validity.validateTokenIssue(sender, params,txId)
132
+ //console.log(JSON.stringify(params)+' validated '+params.valid + ' reason '+params.reason)
133
+ break;
134
+ case 2:
135
+ //console.log('decoding send '+params)
136
+ params = Decode.decodeSend(encodedPayload.substr(index));
137
+ console.log('validating send '+JSON.stringify(params))
138
+ params.senderAddress= sender
139
+ params.txid = txId
140
+ params.block=block
141
+ params = await Validity.validateSend(sender, params, txId)
142
+ console.log(JSON.stringify(params)+' validated '+params.valid + ' reason '+params.reason)
143
+ break;
144
+ case 3:
145
+ // This one is a bit different because we're also looking at TxUtil deconstruction of the UTXOs
146
+ // If we're working in API mode, we may need a flag to check, like if(params.API){outcall}else{TxUtils.decode}
147
+ console.log('inside case for type 3 '+encodedPayload)
148
+ params = Decode.decodeTradeTokenForUTXO(encodedPayload.substr(index));
149
+ console.log(JSON.stringify(params))
150
+ params.senderAddress = sender;
151
+ params.txid = txId;
152
+ params.block=block
153
+ // Find the payment address and delivery address from the reference data
154
+ console.log('inside type for utxo trade '+reference)
155
+ const paymentReference = reference.find(ref => ref.vout === params.payToAddress);
156
+ const tokenDeliveryReference = reference.find(ref => ref.vout === params.tokenOutput);
157
+ console.log('inside types for UTXO '+JSON.stringify(paymentReference)+' '+JSON.stringify(tokenDeliveryReference))
158
+ if(params.tagWithdraw!=null&&Number.isInteger(params.tagWithdraw)){
159
+ const coldWithdrawObject = reference.find(ref => ref.vout === params.tagWithdraw);
160
+
161
+ if (coldWithdrawObject) {
162
+ // Assign the address of the matching object
163
+ params.tagWithdraw = coldWithdrawObject.address;
164
+ console.log(`Cold withdraw address: ${coldWithdrawAddress}`);
165
+ } else {
166
+ console.log(`No matching vout found for tagWithdraw: ${params.tagWithdraw}`);
167
+ }
168
+ }
169
+
170
+ if (paymentReference && tokenDeliveryReference) {
171
+ params.satsPaymentAddress = paymentReference.address;
172
+ params.satsDelivered = new BigNumber(paymentReference.satoshis).dividedBy(1e8).toNumber(); // Convert satoshis to LTC or token equivalent
173
+ params.tokenDeliveryAddress = tokenDeliveryReference.address;
174
+ console.log('params '+params.satsPaymentAddress+ ' '+params.satsDelivered+' '+params.tokenDeliveryAddress)
175
+ // Call the validate function with the updated params
176
+ params = await Validity.validateTradeTokenForUTXO(sender, params, txId, reference);
177
+ } else {
178
+ params.valid = false
179
+ params.reason = "Missing outputs"
180
+ }
181
+
182
+ break;
183
+
184
+ case 4:
185
+ params = Decode.decodeCommitToken(encodedPayload.substr(index));
186
+ console.log('in type decode '+JSON.stringify(params))
187
+ params.senderAddress= sender
188
+ params.txid = txId
189
+ params.block=block
190
+ params = await Validity.validateCommit(sender, params, txId)
191
+ console.log('after validity '+JSON.stringify(params))
192
+ break;
193
+ case 5:
194
+ params = Decode.decodeOnChainTokenForToken(encodedPayload.substr(index));
195
+ console.log('validating token trade '+JSON.stringify(params))
196
+ params.senderAddress= sender
197
+ params.txid=txId
198
+ params.block=block
199
+ params = await Validity.validateOnChainTokenForToken(sender, params, txId)
200
+ console.log(JSON.stringify(params)+' validated '+params.valid + ' reason '+params.reason)
201
+ break;
202
+ case 6:
203
+ params = Decode.decodeCancelOrder(encodedPayload.substr(index))
204
+ params.senderAddress= sender
205
+ params.txid=txId
206
+ params.block=block
207
+ params = await Validity.validateCancelOrder(sender, params, txId)
208
+ console.log(JSON.stringify(params)+' validated '+params.valid + ' reason '+params.reason)
209
+ break;
210
+ case 7:
211
+ params = Decode.decodeCreateWhitelist(encodedPayload.substr(index));
212
+ params.block=block
213
+ params.senderAddress = sender
214
+ params.txid = txId
215
+ params = await Validity.validateCreateWhitelist(sender, params, txId)
216
+ break;
217
+ case 8:
218
+ params = Decode.decodeUpdateAdmin(encodedPayload.substr(index));
219
+ params.block=block
220
+ params.senderAddress = sender
221
+ params.txid = txId
222
+ params = await Validity.validateUpdateAdmin(sender, params, txId)
223
+ break;
224
+ case 9:
225
+ params = Decode.decodeIssueOrRevokeAttestation(encodedPayload.substr(index));
226
+ params.block=block
227
+ params.senderAddress = sender
228
+ params.txid = txId
229
+ params = await Validity.validateIssueOrRevokeAttestation(sender, params, txId)
230
+ break;
231
+ case 10:
232
+ params = Decode.decodeAMMPool(encodedPayload.substr(index));
233
+ params.senderAddress= sender
234
+ params.txid=txId
235
+ params.block=block
236
+ params = await Validity.validateAMMPool(sender, params, txId)
237
+ break;
238
+ case 11:
239
+ params = Decode.decodeGrantManagedToken(encodedPayload.substr(index));
240
+ params.senderAddress= sender
241
+ params.txid=txId
242
+ params.block=block
243
+ params = await Validity.validateGrantManagedToken(sender, params, txId)
244
+ console.log(JSON.stringify(params)+' validated '+params.valid + ' reason '+params.reason)
245
+ break;
246
+ case 12:
247
+ params = Decode.decodeRedeemManagedToken(encodedPayload.substr(index));
248
+ params.senderAddress= sender
249
+ params.txid=txId
250
+ params.block=block
251
+ params = await Validity.validateRedeemManagedToken(sender, params, txId)
252
+ console.log(JSON.stringify(params)+' validated '+params.valid + ' reason '+params.reason)
253
+ break;
254
+ case 13:
255
+ params = Decode.decodeCreateOracle(encodedPayload.substr(index));
256
+ params.senderAddress= sender
257
+ params.txid=txId
258
+ params.block=block
259
+ console.log('validating create Oracle '+JSON.stringify(params))
260
+ params = await Validity.validateCreateOracle(sender, params, txId)
261
+ console.log('validated oracle params '+JSON.stringify(params))
262
+ break;
263
+ case 14:
264
+ params = Decode.decodePublishOracleData(encodedPayload.substr(index));
265
+ console.log('publish oracle params '+ JSON.stringify(params))
266
+ params.senderAddress= sender
267
+ console.log('publish oracle sender '+sender)
268
+ params.txid=txId
269
+ params.block=block
270
+ params = await Validity.validatePublishOracleData(sender, params, txId)
271
+ break;
272
+ case 15:
273
+ params.block=block
274
+ params = Decode.decodeCloseOracle(encodedPayload.substr(index));
275
+ params = await Validity.validatePublishOracleData(sender, params, txId)
276
+ break;
277
+ case 16:
278
+ params = Decode.decodeCreateFutureContractSeries(encodedPayload.substr(index));
279
+ console.log('validating contract creation '+JSON.stringify(params))
280
+ params.senderAddress= sender
281
+ params.txid=txId
282
+ params.block=block
283
+ params = await Validity.validateCreateContractSeries(sender, params, txId)
284
+ console.log(JSON.stringify(params)+' validated '+params.valid + ' reason '+params.reason)
285
+ break;
286
+ case 17:
287
+ params = Decode.decodeExerciseDerivative(encodedPayload.substr(index));
288
+ params.senderAddress= sender
289
+ params.txid=txId
290
+ params.block=block
291
+ params = await Validity.validateExerciseDerivative(sender, params, txId)
292
+ break;
293
+ case 18:
294
+ params = Decode.decodeTradeContractOnchain(encodedPayload.substr(index));
295
+ console.log('initially decoded contract trade params '+JSON.stringify(params))
296
+ params.block=block
297
+ params.senderAddress= sender
298
+ params.txid=txId
299
+ params = await Validity.validateTradeContractOnchain(sender,params, txId)
300
+ break;
301
+ case 19:
302
+ params = Decode.decodeTradeContractChannel(encodedPayload.substr(index));
303
+ params.block=block
304
+ //console.log('inside case 19 type decode '+params.block+' '+JSON.stringify(params))
305
+ params.senderAddress= sender
306
+ params.txid=txId
307
+ params = await Validity.validateTradeContractChannel(sender, params, txId)
308
+ //console.log('finishing types 19 '+JSON.stringify(params))
309
+ break;
310
+ case 20:
311
+ params = Decode.decodeTradeTokensChannel(encodedPayload.substr(index));
312
+ params.block=block
313
+ params.senderAddress= sender
314
+ params.txid=txId
315
+ params = await Validity.validateTradeTokensChannel(sender, params,txId)
316
+ break;
317
+ case 21:
318
+ params = Decode.decodeWithdrawal(encodedPayload.substr(index));
319
+ params.block=block
320
+ params.senderAddress= sender
321
+ params.txid=txId
322
+ params = await Validity.validateWithdrawal(sender, params, txId)
323
+ break;
324
+ case 22:
325
+ params = Decode.decodeTransfer(encodedPayload.substr(index));
326
+ params.block=block
327
+ params.senderAddress= sender
328
+ params.txid=txId
329
+ params = await Validity.validateTransfer(sender, params, txId)
330
+ break;
331
+ case 23:
332
+ params = Decode.decodeSettleChannelPNL(encodedPayload.substr(index));
333
+ params.block=block
334
+ params.senderAddress= sender
335
+ params.txid=txId
336
+ params = await Validity.validateSettleChannelPNL(sender, params, txId)
337
+ break;
338
+ case 24:
339
+ params = Decode.decodeMintSynthetic(encodedPayload.substr(index));
340
+ params.block=block
341
+ params.senderAddress= sender
342
+ params.txid=txId
343
+ params = await Validity.validateMintSynthetic(sender, params, txId)
344
+ break;
345
+ case 25:
346
+ params = Decode.decodeRedeemSynthetic(encodedPayload.substr(index));
347
+ params.block=block
348
+ params.senderAddress= sender
349
+ params.txid=txId
350
+ params = await Validity.validateRedeemSynthetic(sender, params, txId)
351
+ break;
352
+ case 26:
353
+ params = Decode.decodePayToTokens(encodedPayload.substr(index));
354
+ params.block=block
355
+ params.senderAddress= sender
356
+ params.txid=txId
357
+ params = await Validity.validatePayToTokens(sender, params, txId)
358
+ break;
359
+ case 27:
360
+ params = Decode.decodeOptionTrade(encodedPayload.substr(index));
361
+ params.block=block
362
+ params.senderAddress= sender
363
+ params.txid=txId
364
+ params = await Validity.validateOptionTrade(sender, params, txId)
365
+ break;
366
+ case 28:
367
+ params = Decode.decodeTradeBaiUrbun(encodedPayload.substr(index));
368
+ params.block=block
369
+ params.senderAddress= sender
370
+ params.txid=txId
371
+ params = await Validity.validateTradeBaiUrbun(sender, params, txId)
372
+ break;
373
+ case 29:
374
+ params = Decode.decodeTradeMurabaha(encodedPayload.substr(index));
375
+ params.block=block
376
+ params.senderAddress= sender
377
+ params.txid=txId
378
+ params = await Validity.validateTradeMurabaha(sender, params, txId)
379
+ break;
380
+ case 30:
381
+ params = Decode.stakeFraudProof(encodedPayload.substr(index));
382
+ params.block=block
383
+ params.senderAddress= sender
384
+ params.txid=txId
385
+ params = await Validity.validateStake(sender, params, txId)
386
+ break;
387
+ case 31:
388
+ params = Decode.decodeBatchSettlement(encodedPayload.substr(index));
389
+ params.block=block
390
+ params.senderAddress= sender
391
+ params.txid=txId
392
+ //params = await Validity.validatePublishNewTx(sender, params, block)
393
+ break;
394
+ case 32:
395
+ params = Decode.decodeBatchMoveZkRollup(encodedPayload.substr(index));
396
+ params.block=block
397
+ params.senderAddress= sender
398
+ params.txid=txId
399
+ //params = await Validity.validateBatchMoveZkRollup(sender, params, block)
400
+ break;
401
+ case 33:
402
+ params = Decode.decodeColoredCoin(encodedPayload.substr(index));
403
+ params.block=block
404
+ params.senderAddress= sender
405
+ params.txid=txId
406
+ //params = await Validity.validateColoredCoin(sender, params, block)
407
+ break;
408
+ case 34:
409
+ params = Decode.decodeCrossLayerBridge(encodedPayload.substr(index));
410
+ params.block=block
411
+ params.senderAddress= sender
412
+ params.txid=txId
413
+ //params = await Validity.validateCrossLayerBridge(sender, params, block)
414
+ break;
415
+ case 35:
416
+ params = Decode.decodeSmartContractBind(encodedPayload.substr(index));
417
+ params.block=block
418
+ params.senderAddress= sender
419
+ params.txid=txId
420
+ //params = await Validity.validateSmartContractBind(sender, params, block)
421
+ break;
422
+ default:
423
+ return new Error('Unknown transaction type');
424
+ }
425
+ return params
426
+ }
427
+ };
428
+
429
+ module.exports = Types;