@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.
- package/.claude/settings.local.json +13 -0
- package/.claude/skills/tl-algo/SKILL.md +255 -0
- package/.gitattributes +2 -0
- package/.github/workflows/publish.yaml +26 -0
- package/4mm.js +163 -0
- package/LICENSE +21 -0
- package/NPMSwapRefactor.zip +0 -0
- package/README.md +217 -0
- package/address.sh +26 -0
- package/algoAPI.js +581 -0
- package/analyzepsbt.js +92 -0
- package/apiEx.js +99 -0
- package/bb_hyperscalper.js +290 -0
- package/bbo_demo.js +111 -0
- package/buyer.js +622 -0
- package/client.js +50 -0
- package/createTxTest.js +26 -0
- package/createWallet.js +75 -0
- package/daytrader.js +531 -0
- package/decodeTest.js +69 -0
- package/fundingManager.js +144 -0
- package/index.js +4 -0
- package/listener.js +27 -0
- package/litecoreTxBuilder.js +1128 -0
- package/mmEx.js +356 -0
- package/networks.js +51 -0
- package/orderbook.js +200 -0
- package/package.json +34 -0
- package/perTradeQueue.js +36 -0
- package/projectsTLNPMTLNPM/package-lock.json +162 -0
- package/projectsTLNPMTLNPM/package.json +5 -0
- package/quick.js +32 -0
- package/quickFut.js +37 -0
- package/quickSell.js +37 -0
- package/relayerClient.js +117 -0
- package/run4mm.js +80 -0
- package/run_bbo_tracker.js +241 -0
- package/seller.js +443 -0
- package/session.js +45 -0
- package/setup-lin-ltc.sh +139 -0
- package/setup-lin.sh +203 -0
- package/setup-win-ltc.bat +108 -0
- package/setup-win.bat +167 -0
- package/spam_screamer_futures.js +222 -0
- package/tradelayer.js/.gitattributes +2 -0
- package/tradelayer.js/README.md +2 -0
- package/tradelayer.js/oldTests/activationTest.js +6 -0
- package/tradelayer.js/oldTests/base58.test.js +23 -0
- package/tradelayer.js/oldTests/base64Decode.test.js +16 -0
- package/tradelayer.js/oldTests/blocksRefactor.js +140 -0
- package/tradelayer.js/oldTests/checkVestBalance.js +25 -0
- package/tradelayer.js/oldTests/consensusHashProto.js +151 -0
- package/tradelayer.js/oldTests/contractOrderbook.js +243 -0
- package/tradelayer.js/oldTests/createPayload.js +0 -0
- package/tradelayer.js/oldTests/createTestnetAddr.js +43 -0
- package/tradelayer.js/oldTests/decode.js +205 -0
- package/tradelayer.js/oldTests/decodeTest.js +50 -0
- package/tradelayer.js/oldTests/displayTallyMap.js +19 -0
- package/tradelayer.js/oldTests/encodeDecode.js +340 -0
- package/tradelayer.js/oldTests/expressTest.js +29 -0
- package/tradelayer.js/oldTests/extractBlocksVanilla.js +214 -0
- package/tradelayer.js/oldTests/extractBlocksVanillaa.js +179 -0
- package/tradelayer.js/oldTests/extractPubkeyTest.js +60 -0
- package/tradelayer.js/oldTests/fillInputCacheProto.js +111 -0
- package/tradelayer.js/oldTests/getRawTxTest.js +22 -0
- package/tradelayer.js/oldTests/indexTest.js +26 -0
- package/tradelayer.js/oldTests/initTokensTest.js +32 -0
- package/tradelayer.js/oldTests/interfaceChild.js +129 -0
- package/tradelayer.js/oldTests/listenerChild.js +112 -0
- package/tradelayer.js/oldTests/opdecode.js +26 -0
- package/tradelayer.js/oldTests/options.js +79 -0
- package/tradelayer.js/oldTests/optxtest.js +116 -0
- package/tradelayer.js/oldTests/optxtest1.js +64 -0
- package/tradelayer.js/oldTests/oracle.test.js +32 -0
- package/tradelayer.js/oldTests/orderbook.test.js +36 -0
- package/tradelayer.js/oldTests/parsing.js +93 -0
- package/tradelayer.js/oldTests/payload.js +13 -0
- package/tradelayer.js/oldTests/persistenceUnitTest.js +23 -0
- package/tradelayer.js/oldTests/property.test.js +53 -0
- package/tradelayer.js/oldTests/propertyLevel.js +75 -0
- package/tradelayer.js/oldTests/propertyTest.js +32 -0
- package/tradelayer.js/oldTests/queryAddressTest.js +17 -0
- package/tradelayer.js/oldTests/salter.js +14 -0
- package/tradelayer.js/oldTests/tally.js +81 -0
- package/tradelayer.js/oldTests/tally.test.js +48 -0
- package/tradelayer.js/oldTests/tally2.js +124 -0
- package/tradelayer.js/oldTests/tally3.js +142 -0
- package/tradelayer.js/oldTests/tallyDiag.js +38 -0
- package/tradelayer.js/oldTests/testGetRaw.js +40 -0
- package/tradelayer.js/oldTests/testHexConvert.js +47 -0
- package/tradelayer.js/oldTests/testNewEncoding.js +96 -0
- package/tradelayer.js/oldTests/testNewEncoding2.js +113 -0
- package/tradelayer.js/oldTests/testNewEncoding3 +112 -0
- package/tradelayer.js/oldTests/testNewEncoding3.js +168 -0
- package/tradelayer.js/oldTests/testOPReturn.js +102 -0
- package/tradelayer.js/oldTests/testPayload.js +23 -0
- package/tradelayer.js/oldTests/testRaw.js +50 -0
- package/tradelayer.js/oldTests/testSendTooMuch.js +20 -0
- package/tradelayer.js/oldTests/testTxBuild +28 -0
- package/tradelayer.js/oldTests/testTxBuild.js +42 -0
- package/tradelayer.js/oldTests/tokenOrderbook.js +243 -0
- package/tradelayer.js/oldTests/txUtilsA.js +515 -0
- package/tradelayer.js/oldTests/validityUnitTest.js +53 -0
- package/tradelayer.js/oldTests/vaults.js +72 -0
- package/tradelayer.js/oldTests/volumeIndex.js +117 -0
- package/tradelayer.js/oldTests/volumeIndex2.js +88 -0
- package/tradelayer.js/output_base64.txt +1 -0
- package/tradelayer.js/package-lock.json +9967 -0
- package/tradelayer.js/package.json +61 -0
- package/tradelayer.js/server/index.js +88 -0
- package/tradelayer.js/server/litecoind.exe +0 -0
- package/tradelayer.js/src/activation.js +303 -0
- package/tradelayer.js/src/adjuster.js +77 -0
- package/tradelayer.js/src/amm.js +400 -0
- package/tradelayer.js/src/base256.js +55 -0
- package/tradelayer.js/src/base94.js +79 -0
- package/tradelayer.js/src/channels.js +1163 -0
- package/tradelayer.js/src/clearing.js +3109 -0
- package/tradelayer.js/src/clearlist.js +364 -0
- package/tradelayer.js/src/client.js +295 -0
- package/tradelayer.js/src/consensus.js +613 -0
- package/tradelayer.js/src/contractRegistry.js +964 -0
- package/tradelayer.js/src/db.js +89 -0
- package/tradelayer.js/src/init.js +24 -0
- package/tradelayer.js/src/insurance.js +347 -0
- package/tradelayer.js/src/interface.js +218 -0
- package/tradelayer.js/src/interfaceExpress.js +178 -0
- package/tradelayer.js/src/iou.js +509 -0
- package/tradelayer.js/src/listener.js +226 -0
- package/tradelayer.js/src/logic.js +1702 -0
- package/tradelayer.js/src/main.js +927 -0
- package/tradelayer.js/src/marginMap.js +2165 -0
- package/tradelayer.js/src/options.js +126 -0
- package/tradelayer.js/src/oracle.js +394 -0
- package/tradelayer.js/src/orderbook.js +4123 -0
- package/tradelayer.js/src/persistence.js +554 -0
- package/tradelayer.js/src/property.js +411 -0
- package/tradelayer.js/src/reOrg.js +41 -0
- package/tradelayer.js/src/scaling.js +145 -0
- package/tradelayer.js/src/tally.js +1275 -0
- package/tradelayer.js/src/tradeHistoryManager.js +552 -0
- package/tradelayer.js/src/txDecoder.js +584 -0
- package/tradelayer.js/src/txEncoder.js +610 -0
- package/tradelayer.js/src/txIndex.js +502 -0
- package/tradelayer.js/src/txUtils.js +1392 -0
- package/tradelayer.js/src/types.js +429 -0
- package/tradelayer.js/src/validity.js +3077 -0
- package/tradelayer.js/src/vaults.js +430 -0
- package/tradelayer.js/src/vesting.js +491 -0
- package/tradelayer.js/src/volumeIndex.js +618 -0
- package/tradelayer.js/src/walletInterface.js +220 -0
- package/tradelayer.js/src/walletListener.js +665 -0
- package/tradelayer.js/tests/256decode.js +82 -0
- package/tradelayer.js/tests/UTXOracle.js +205 -0
- package/tradelayer.js/tests/base94test.js +23 -0
- package/tradelayer.js/tests/cancelTxTest.js +62 -0
- package/tradelayer.js/tests/contractInterfaceTest.js +48 -0
- package/tradelayer.js/tests/decimalTest.js +65 -0
- package/tradelayer.js/tests/decoderTest.js +100 -0
- package/tradelayer.js/tests/deltaCount.js +47 -0
- package/tradelayer.js/tests/deltaCount2.js +60 -0
- package/tradelayer.js/tests/interfaceTest.js +37 -0
- package/tradelayer.js/tests/mainTest.js +53 -0
- package/tradelayer.js/tests/makeActivationTest.js +24 -0
- package/tradelayer.js/tests/maxHeightTest.js +49 -0
- package/tradelayer.js/tests/reverseHash.js +72 -0
- package/tradelayer.js/tests/sensitiveConsoleOutput.txt +267 -0
- package/tradelayer.js/tests/tallyTest.js +40 -0
- package/tradelayer.js/tests/testBuybacks.js +46 -0
- package/tradelayer.js/tests/testCodeHash.js +49 -0
- package/tradelayer.js/tests/testConsensusHash.js +91 -0
- package/tradelayer.js/tests/testDecode.js +30 -0
- package/tradelayer.js/tests/testEncodingLengths.js +129 -0
- package/tradelayer.js/tests/testGetTx +32 -0
- package/tradelayer.js/tests/testGetTx.js +32 -0
- package/tradelayer.js/tests/testHexHash.js +32 -0
- package/tradelayer.js/tests/testIndexHash.js +35 -0
- package/tradelayer.js/tests/testInitContracts.js +38 -0
- package/tradelayer.js/tests/testMaxConsensus.js +12 -0
- package/tradelayer.js/tests/testMaxSynth.js +44 -0
- package/tradelayer.js/tests/testMint.js +21 -0
- package/tradelayer.js/tests/testNetwork.js +33 -0
- package/tradelayer.js/tests/testOrderbookLoad.js +62 -0
- package/tradelayer.js/tests/testRebates.js +32 -0
- package/tradelayer.js/tests/testRedeem.js +22 -0
- package/tradelayer.js/tests/testTokenTrade.js +39 -0
- package/tradelayer.js/tests/testTxBuild.js +42 -0
- package/tradelayer.js/tests/testUTXOTrade.js +27 -0
- package/tradelayer.js/tests/tokenTradeHistory.js +27 -0
- package/tradelayer.js/tests/tradeFutures.js +40 -0
- package/tradelayer.js/tests/tradeHistoryExample.js +35 -0
- package/tradelayer.js/tests/tradeHistoryLoad.js +15 -0
- package/tradelayer.js/tests/txScanTest.js +134 -0
- package/tradelayer.js/tests/validateTest.js +136 -0
- package/tradelayer.js/tests/vestingTest.js +37 -0
- package/tradelayer.js/utils/activateMainnet.js +59 -0
- package/tradelayer.js/utils/activateMainnetDoge.js +63 -0
- package/tradelayer.js/utils/autocompactdb.js +23 -0
- package/tradelayer.js/utils/base64toHex.js +32 -0
- package/tradelayer.js/utils/broadcastDoge.js +38 -0
- package/tradelayer.js/utils/calcRedeem.js +19 -0
- package/tradelayer.js/utils/checkNetwork.js +27 -0
- package/tradelayer.js/utils/createAddress.js +48 -0
- package/tradelayer.js/utils/createAttestation.js +133 -0
- package/tradelayer.js/utils/createContract.js +118 -0
- package/tradelayer.js/utils/createOracle.js +94 -0
- package/tradelayer.js/utils/createwallet.js +20 -0
- package/tradelayer.js/utils/crossFuturesTrades.js +57 -0
- package/tradelayer.js/utils/crossTokenTrades.js +62 -0
- package/tradelayer.js/utils/dumpPriv.js +29 -0
- package/tradelayer.js/utils/generateChannel.js +34 -0
- package/tradelayer.js/utils/getInfo.js +21 -0
- package/tradelayer.js/utils/hardWipe.js +20 -0
- package/tradelayer.js/utils/hexTo64.js +16 -0
- package/tradelayer.js/utils/importAddress.js +28 -0
- package/tradelayer.js/utils/importpriv.js +20 -0
- package/tradelayer.js/utils/issueOracleContract.js +67 -0
- package/tradelayer.js/utils/issueTokens.js +41 -0
- package/tradelayer.js/utils/listunspent.js +66 -0
- package/tradelayer.js/utils/litecoinClient.js +30 -0
- package/tradelayer.js/utils/loadwallet.js +20 -0
- package/tradelayer.js/utils/publishOracle.js +113 -0
- package/tradelayer.js/utils/sendActivation.js +21 -0
- package/tradelayer.js/utils/sendChannelContractTrade.js +34 -0
- package/tradelayer.js/utils/sendChannelTokenTrade.js +34 -0
- package/tradelayer.js/utils/sendCommit.js +24 -0
- package/tradelayer.js/utils/sendDoge.js +62 -0
- package/tradelayer.js/utils/sendDogeMain.js +67 -0
- package/tradelayer.js/utils/sendDogeTx.js +46 -0
- package/tradelayer.js/utils/sendLTC.js +63 -0
- package/tradelayer.js/utils/sendMainnet.js +62 -0
- package/tradelayer.js/utils/sendTransfer.js +19 -0
- package/tradelayer.js/utils/sendVestTest.js +88 -0
- package/tradelayer.js/utils/sendWithdrawal.js +26 -0
- package/tradelayer.js/utils/simpleStart.js +8 -0
- package/tradelayer.js/utils/startStop.js +27 -0
- package/tradelayer.js/utils/structuredTrades.js +136 -0
- package/tradelayer.js/utils/verifySignature.js +90 -0
- package/tradelayer.js/utils/verifyWitnessAndScriptPubkey.js +41 -0
- package/tradelayer.js/utils/walletCache.js +172 -0
- package/tradelayer.js/utils/walletContractInterface.js +48 -0
- package/tradelayer.js/utils/walletFetchTxs.js +66 -0
- package/tradelayer.js/utils/walletUtils.js +97 -0
- package/tradelayer.js/utils/wipeDB.js +55 -0
- package/tradelayer.js/utils/wipeDBNotTx.js +50 -0
- package/txEncoder.js +529 -0
- package/utility.js +28 -0
- package/verifymessage.js +38 -0
- package/ws-transport.js +311 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
const ClientWrapper = require('./client.js');
|
|
2
|
+
const express = require('express');
|
|
3
|
+
const TallyMap = require('./tally.js');
|
|
4
|
+
const PropertyManager = require('./property.js');
|
|
5
|
+
const Main = require('./main.js');
|
|
6
|
+
const Activations = require('./activation.js')
|
|
7
|
+
const Orderbook = require('./orderbook.js')
|
|
8
|
+
const ContractRegistry = require('./contractRegistry.js')
|
|
9
|
+
var activationsInstance = Activations.getInstance()
|
|
10
|
+
const OracleList = require('./oracle.js')
|
|
11
|
+
const MarginMap = require('./marginMap.js')
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
let isInitialized = false; // A flag to track the initialization status
|
|
15
|
+
const app = express();
|
|
16
|
+
const port = 3000; // Choose a port that suits your setup
|
|
17
|
+
|
|
18
|
+
app.use(express.json()); // Middleware to parse JSON bodies
|
|
19
|
+
|
|
20
|
+
app.post('/initMain', async (req, res) => {
|
|
21
|
+
try {
|
|
22
|
+
console.log('Initializing');
|
|
23
|
+
const mainProcessor = await Main.getInstance(req.body.test); // Use req.body for arguments
|
|
24
|
+
mainProcessor.initialize();
|
|
25
|
+
console.log('initialized')
|
|
26
|
+
res.status(200).send('Main process initialized successfully');
|
|
27
|
+
} catch (error) {
|
|
28
|
+
res.status(500).send('Error in listener init: ' + error.message);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
app.post('/getAllBalancesForAddress', async (req, res) => {
|
|
33
|
+
console.log('trying to load balances' +req.body.address)
|
|
34
|
+
|
|
35
|
+
try {
|
|
36
|
+
const tallyMapInstance = await TallyMap.getInstance();
|
|
37
|
+
if (!tallyMapInstance) {
|
|
38
|
+
throw new Error("Failed to get TallyMap instance");
|
|
39
|
+
}
|
|
40
|
+
await tallyMapInstance.loadFromDB(); // Wait for the tally map to load
|
|
41
|
+
const balances = tallyMapInstance.getAddressBalances(req.body.address);
|
|
42
|
+
res.status(200).json(balances);
|
|
43
|
+
} catch (error) {
|
|
44
|
+
console.error(error); // Log the full error for debugging
|
|
45
|
+
res.status(500).send('Error: ' + error.message);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
app.post('/listProperties', async (req, res) => {
|
|
50
|
+
try {
|
|
51
|
+
console.log('express calling property list');
|
|
52
|
+
const propertiesArray = await PropertyManager.getPropertyIndex(); // Await the getPropertyIndex method
|
|
53
|
+
res.json(propertiesArray); // Send the array representation of the properties
|
|
54
|
+
} catch (error) {
|
|
55
|
+
console.error('Error fetching property list:', error);
|
|
56
|
+
res.status(500).send('Error: ' + error.message);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
app.get('/addressesWithProperty/:propertyId', async (req, res) => {
|
|
61
|
+
try {
|
|
62
|
+
const propertyId = parseInt(req.params.propertyId);
|
|
63
|
+
const addresses = await TallyMap.getAddressesWithBalanceForProperty(propertyId);
|
|
64
|
+
res.json(addresses);
|
|
65
|
+
} catch (error) {
|
|
66
|
+
res.status(500).send(error.message);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
app.post('/getActivations', async (req, res) => {
|
|
71
|
+
try {
|
|
72
|
+
console.log('express calling activations');
|
|
73
|
+
const activations = await activationsInstance.loadActivationsList(); // Await the getPropertyIndex method
|
|
74
|
+
res.json(activations); // Send the array representation of the properties
|
|
75
|
+
} catch (error) {
|
|
76
|
+
console.error('Error fetching activations:', error);
|
|
77
|
+
res.status(500).send('Error: ' + error.message);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
// Endpoint to check the initialization status
|
|
83
|
+
app.get('/initStatus', (req, res) => {
|
|
84
|
+
res.json({ initialized: isInitialized });
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
app.post('/getOrderBook', async (req, res) => {
|
|
88
|
+
try {
|
|
89
|
+
const { propertyId1, propertyId2 } = req.body;
|
|
90
|
+
const orderBookKey = `${propertyId1}-${propertyId2}`;
|
|
91
|
+
|
|
92
|
+
// Instantiate your Orderbook class with the specific orderBookKey
|
|
93
|
+
const orderbook = new Orderbook(orderBookKey);
|
|
94
|
+
await orderbook.loadOrCreateOrderBook(); // Load or create the specific order book
|
|
95
|
+
|
|
96
|
+
// Retrieve the specific order book data
|
|
97
|
+
const orderBookData = orderbook.orderBooks[orderBookKey] || {};
|
|
98
|
+
res.json(orderBookData);
|
|
99
|
+
} catch (error) {
|
|
100
|
+
console.error('Error fetching order book:', error);
|
|
101
|
+
res.status(500).send('Error: ' + error.message);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
app.post('/getContractOrderBook', async (req, res) => {
|
|
106
|
+
try {
|
|
107
|
+
const { contractId } = req.body;
|
|
108
|
+
const orderBookKey = `contract-${contractId}`;
|
|
109
|
+
|
|
110
|
+
// Instantiate your Orderbook class with the specific contractId
|
|
111
|
+
const orderbook = new Orderbook(orderBookKey);
|
|
112
|
+
// Load or create the specific order book
|
|
113
|
+
|
|
114
|
+
// Retrieve the specific order book data
|
|
115
|
+
const orderBookData = await orderbook.loadOrderBook(orderBookKey);
|
|
116
|
+
res.json(orderBookData);
|
|
117
|
+
} catch (error) {
|
|
118
|
+
console.error('Error fetching contract order book:', error);
|
|
119
|
+
res.status(500).send('Error: ' + error.message);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
app.post('/listContractSeries', async (req, res) => {
|
|
125
|
+
try {
|
|
126
|
+
console.log('Fetching contract series list');
|
|
127
|
+
//const contractsRegistry = ContractRegistry.getInstance(); // Access singleton instance
|
|
128
|
+
//console.log(JSON.stringify(contractsRegistry))
|
|
129
|
+
// Assuming loadContractsFromDB is a static method
|
|
130
|
+
//ContractRegistry.loadContractsFromDB(); // Load contracts from the database
|
|
131
|
+
//console.log('contract series array '+contractSeriesArray)
|
|
132
|
+
// Assuming getAllContracts is a static method
|
|
133
|
+
const contractSeriesArray = await ContractRegistry.getAllContracts(); // Get all contract series
|
|
134
|
+
console.log('contract series array '+JSON.stringify(contractSeriesArray))
|
|
135
|
+
res.json(contractSeriesArray);
|
|
136
|
+
} catch (error) {
|
|
137
|
+
console.error('Error fetching contract series:', error);
|
|
138
|
+
res.status(500).send('Error: ' + error.message);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
// Endpoint to list all oracles
|
|
143
|
+
app.post('/listOracles', async (req, res) => {
|
|
144
|
+
try {
|
|
145
|
+
console.log('Fetching oracle list');
|
|
146
|
+
const oracleArray = await OracleList.getAllOracles(); // Implement this in OracleRegistry
|
|
147
|
+
res.json(oracleArray);
|
|
148
|
+
} catch (error) {
|
|
149
|
+
console.error('Error fetching oracle list:', error);
|
|
150
|
+
res.status(500).send('Error: ' + error.message);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
app.get('/contractTradeHistory/:contractId', async (req, res) => {
|
|
155
|
+
const { contractId } = req.params;
|
|
156
|
+
const contractTradeHistory = await Orderbook.getContractTradeHistoryByContractId(contractId);
|
|
157
|
+
res.json(contractTradeHistory);
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
app.get('/tradeHistory/:propertyId1/:propertyId2', async (req, res) => {
|
|
161
|
+
const { propertyId1, propertyId2 } = req.params;
|
|
162
|
+
const tradeHistory = await Orderbook.getTradeHistoryByPropertyIdPair(propertyId1, propertyId2);
|
|
163
|
+
console.log('returning trade history '+JSON.stringify(tradeHistory))
|
|
164
|
+
res.json(tradeHistory);
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
app.get('/fundingHistory/:contractId', async (req, res) => {
|
|
168
|
+
const { contractId } = req.params;
|
|
169
|
+
const fundingHistory = await ContractsRegistry.loadFundingEvents(contractId);
|
|
170
|
+
res.json(fundingHistory);
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
app.get('/oracleHistory/:contractId', async (req, res) => {
|
|
174
|
+
// Assuming you have an Oracles class
|
|
175
|
+
const { contractId } = req.params;
|
|
176
|
+
const oracleHistory = await Oracles.getHistory(contractId);
|
|
177
|
+
res.json(oracleHistory);
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
app.get('/contractPosition/:address/:contractId', async (req, res) => {
|
|
182
|
+
const { address, contractId } = req.params;
|
|
183
|
+
try {
|
|
184
|
+
const marginMap = await MarginMap.getInstance(contractId);
|
|
185
|
+
const position = marginMap.getPositionForAddress(address);
|
|
186
|
+
res.json(position);
|
|
187
|
+
} catch (error) {
|
|
188
|
+
res.status(500).send('Error: ' + error.message);
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
app.get('/clearingHistory/:contractId', async (req, res) => {
|
|
193
|
+
// Implement logic to retrieve clearing history
|
|
194
|
+
const { contractId } = req.params;
|
|
195
|
+
// const clearingHistory = ...
|
|
196
|
+
res.json(clearingHistory);
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
app.get('/walletPositions/:address', async (req, res) => {
|
|
200
|
+
const { address } = req.params;
|
|
201
|
+
const positions = await WalletCache.getPositions(address);
|
|
202
|
+
res.json(positions);
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
app.get('/walletBalances/:address', async (req, res) => {
|
|
206
|
+
const { address } = req.params;
|
|
207
|
+
const balances = await WalletCache.getBalance(address);
|
|
208
|
+
res.json(balances);
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
app.get('/walletPosition/:address/:contractId', async (req, res) => {
|
|
212
|
+
const { address, contractId } = req.params;
|
|
213
|
+
try {
|
|
214
|
+
const position = await WalletCache.getContractPositionForAddressAndContractId(address, contractId);
|
|
215
|
+
res.json(position);
|
|
216
|
+
} catch (error) {
|
|
217
|
+
res.status(500).send(error.message);
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
// ... Add other endpoints ...
|
|
223
|
+
|
|
224
|
+
app.listen(port, () => {
|
|
225
|
+
console.log(`Express server running on port ${port}`);
|
|
226
|
+
});
|