@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,610 @@
|
|
|
1
|
+
const BigNumber = require('bignumber.js');
|
|
2
|
+
const base94 = require('./base94.js');
|
|
3
|
+
const base256 = require('./base256.js');
|
|
4
|
+
const marker = 'tl';
|
|
5
|
+
|
|
6
|
+
const Encode = {
|
|
7
|
+
|
|
8
|
+
encodeAmount: (amt) => {
|
|
9
|
+
const scaledAmt = new BigNumber(amt).times(1e8);
|
|
10
|
+
const isWholeNumber = amt % 1 === 0;
|
|
11
|
+
|
|
12
|
+
return isWholeNumber
|
|
13
|
+
? amt?.toString(36) ?? '0' // Base36 encoding for whole numbers
|
|
14
|
+
: scaledAmt.integerValue()?.toString(36) ?? '0' + '~'; // Base36 with `~` flag for decimals
|
|
15
|
+
},
|
|
16
|
+
// Encode Simple Token Issue Transaction
|
|
17
|
+
encodeActivateTradeLayer(params) {
|
|
18
|
+
const txTypeEncoded = Array.isArray(params.txTypeToActivate)
|
|
19
|
+
? params.txTypeToActivate.join(';')
|
|
20
|
+
: params.txTypeToActivate;
|
|
21
|
+
const base36hex = BigInt('0x' + params.codeHash)?.toString(36) ?? '0'; // Hex to Base 36
|
|
22
|
+
//const base94Encoded = base94.hexToBase94(params.codeHash);
|
|
23
|
+
const type = 0;
|
|
24
|
+
return marker + type + txTypeEncoded + ',' + base36hex//base94Encoded;
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
// Encode Token Issue Transaction
|
|
29
|
+
encodeTokenIssue(params) {
|
|
30
|
+
const payload = [
|
|
31
|
+
params.initialAmount?.toString(36) ?? '0',
|
|
32
|
+
params.ticker,
|
|
33
|
+
params.whitelists.map(val => val?.toString(36) ?? '0').join(','),
|
|
34
|
+
params.managed ? '1' : '0', //turn into enum
|
|
35
|
+
params.backupAddress,
|
|
36
|
+
params.nft ? '1' : '0',
|
|
37
|
+
];
|
|
38
|
+
const type = 1;
|
|
39
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
40
|
+
return marker + typeStr + payload.join(',');
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
// Encode Send Transaction
|
|
44
|
+
encodeSend(params){
|
|
45
|
+
const { sendAll, address, propertyId, amount } = params;
|
|
46
|
+
|
|
47
|
+
if (sendAll) return `1;${address}`;
|
|
48
|
+
|
|
49
|
+
// Function to encode amounts using bimodal encoding
|
|
50
|
+
const encodeAmount = (amt) => {
|
|
51
|
+
const scaledAmt = new BigNumber(amt).times(1e8);
|
|
52
|
+
const isWholeNumber = Boolean(amt%1==0);
|
|
53
|
+
|
|
54
|
+
return isWholeNumber
|
|
55
|
+
? amt?.toString(36) ?? '0' // Normal base36 encoding
|
|
56
|
+
: scaledAmt.integerValue()?.toString(36) ?? '0' + '~'; // Base36 with `~` flag
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
if (Array.isArray(propertyId) && Array.isArray(amount)) {
|
|
60
|
+
const payload = [
|
|
61
|
+
'0',
|
|
62
|
+
'',
|
|
63
|
+
propertyId.map(id => id?.toString(36) ?? '0').join(','),
|
|
64
|
+
amount.map(encodeAmount).join(',')
|
|
65
|
+
];
|
|
66
|
+
return payload.join(';');
|
|
67
|
+
} else {
|
|
68
|
+
const amountValue = Array.isArray(amount) ? amount[0] : amount;
|
|
69
|
+
const payload = [
|
|
70
|
+
'0',
|
|
71
|
+
address,
|
|
72
|
+
propertyId?.toString(36) ?? '0',
|
|
73
|
+
encodeAmount(amountValue)
|
|
74
|
+
];
|
|
75
|
+
const txNumber = 2;
|
|
76
|
+
const txNumber36 = txNumber?.toString(36) ?? '0';
|
|
77
|
+
return `tl${txNumber36}${payload.join(';')}`;
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
encodePropertyId(propertyId) {
|
|
82
|
+
if (typeof propertyId === 'string' && propertyId.startsWith('s-')) {
|
|
83
|
+
const [_, collateralId, contractId] = propertyId.split('-');
|
|
84
|
+
const encodedCollateralId = parseInt(collateralId)?.toString(36) ?? '0';
|
|
85
|
+
const encodedContractId = parseInt(contractId)?.toString(36) ?? '0';
|
|
86
|
+
return `s-${encodedCollateralId}-${encodedContractId}`;
|
|
87
|
+
} else {
|
|
88
|
+
return propertyId?.toString(36) ?? '0';
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
|
|
92
|
+
// Encode Trade Token for UTXO Transaction
|
|
93
|
+
encodeTradeTokenForUTXO: (params) => {
|
|
94
|
+
const amount = new BigNumber(params.amount).times(1e8).toNumber();
|
|
95
|
+
const sats = new BigNumber(params.satsExpected).times(1e8).toNumber();
|
|
96
|
+
const isColoredOutput = params.isColoredOutput ? '1' : '0';
|
|
97
|
+
const payload = [
|
|
98
|
+
params.propertyId?.toString(36) ?? '0',
|
|
99
|
+
amount?.toString(36) ?? '0',
|
|
100
|
+
params.columnA,
|
|
101
|
+
sats?.toString(36) ?? '0',
|
|
102
|
+
params.tokenOutput,
|
|
103
|
+
params.payToAddress,
|
|
104
|
+
isColoredOutput,
|
|
105
|
+
];
|
|
106
|
+
const type = 3;
|
|
107
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
108
|
+
return marker + typeStr + payload.join(',');
|
|
109
|
+
},
|
|
110
|
+
|
|
111
|
+
// Encode Commit Token Transaction
|
|
112
|
+
encodeCommit: (params) => {
|
|
113
|
+
const amount = new BigNumber(params.amount).times(1e8)?.toString(36) ?? '0';
|
|
114
|
+
const channelAddress = params.channelAddress.length > 42 ? `ref:${params.ref || 0}` : params.channelAddress;
|
|
115
|
+
const payEnabled = params.payEnabled ? '1' : '0';
|
|
116
|
+
let clearLists = '';
|
|
117
|
+
if (params.clearLists) {
|
|
118
|
+
if (Array.isArray(params.clearLists)) {
|
|
119
|
+
clearLists = `[${params.clearLists.map(num => num?.toString(36) ?? '0').join(',')}]`;
|
|
120
|
+
} else {
|
|
121
|
+
clearLists = params.clearLists?.toString(36) ?? '0';
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const isColoredOutput = params.isColoredOutput ? '1' : '0';
|
|
126
|
+
const payload = [
|
|
127
|
+
params.propertyId?.toString(36) ?? '0',
|
|
128
|
+
amount,
|
|
129
|
+
channelAddress,
|
|
130
|
+
payEnabled,
|
|
131
|
+
clearLists,
|
|
132
|
+
isColoredOutput,
|
|
133
|
+
];
|
|
134
|
+
const type = 4;
|
|
135
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
136
|
+
return marker + typeStr + payload.join(',');
|
|
137
|
+
},
|
|
138
|
+
|
|
139
|
+
// Encode On-chain Token for Token Transaction
|
|
140
|
+
encodeOnChainTokenForToken: (params) => {
|
|
141
|
+
const amountOffered = new BigNumber(params.amountOffered).times(1e8).toNumber();
|
|
142
|
+
const amountExpected = new BigNumber(params.amountExpected).times(1e8).toNumber();
|
|
143
|
+
const payload = [
|
|
144
|
+
params.propertyIdOffered?.toString(36) ?? '0',
|
|
145
|
+
params.propertyIdDesired?.toString(36) ?? '0',
|
|
146
|
+
amountOffered?.toString(36) ?? '0',
|
|
147
|
+
amountExpected?.toString(36) ?? '0',
|
|
148
|
+
params.stop ? '1' : '0',
|
|
149
|
+
params.post ? '1' : '0',
|
|
150
|
+
];
|
|
151
|
+
const type = 5;
|
|
152
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
153
|
+
return marker + typeStr + payload.join(',');
|
|
154
|
+
},
|
|
155
|
+
|
|
156
|
+
// Encode function to handle cancel orders
|
|
157
|
+
encodeCancelOrder: (params) => {
|
|
158
|
+
let encodedTx = params.isContract;
|
|
159
|
+
|
|
160
|
+
if (params.isContract) {
|
|
161
|
+
encodedTx += `,${params.contractId?.toString(36) ?? '0'},${params.cancelAll ? 1 : 0}`;
|
|
162
|
+
} else {
|
|
163
|
+
encodedTx += `,${params.offeredPropertyId?.toString(36) ?? '0'},${params.desiredPropertyId?.toString(36) ?? '0'},${params.cancelAll ? 1 : 0}`;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
let priceEncoded;
|
|
167
|
+
if (params.cancelParams && params.cancelParams.price !== undefined) {
|
|
168
|
+
if (params.isContract == 0 || params.isContract == false) {
|
|
169
|
+
priceEncoded = new BigNumber(params.cancelParams.price).times(8)?.toString(36) ?? '0';
|
|
170
|
+
} else if (params.isContract == 1 || params.isContract == true) {
|
|
171
|
+
priceEncoded = params.cancelParams.price?.toString(36) ?? '0';
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
encodedTx += `,${priceEncoded}`;
|
|
175
|
+
encodedTx += `,${params.cancelParams.side?.toString(36) ?? '0'}`;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
if (params.cancelParams && params.cancelParams.txid) {
|
|
179
|
+
encodedTx += `,${params.cancelParams.txid}`;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const type = 6;
|
|
183
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
184
|
+
return marker + typeStr + encodedTx;
|
|
185
|
+
},
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
// Encode Create Whitelist Transaction
|
|
189
|
+
encodeCreateWhitelist: (params) => {
|
|
190
|
+
const payload = [
|
|
191
|
+
params.backupAddress,
|
|
192
|
+
params.name,
|
|
193
|
+
params.url,
|
|
194
|
+
params.description,
|
|
195
|
+
];
|
|
196
|
+
const type = 7;
|
|
197
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
198
|
+
return marker + typeStr + payload.join(',');
|
|
199
|
+
},
|
|
200
|
+
|
|
201
|
+
encodeUpdateAdmin: (params) => {
|
|
202
|
+
const payload = [
|
|
203
|
+
params.newAddress,
|
|
204
|
+
params.whitelist ? '1' : '0',
|
|
205
|
+
params.oracle ? '1' : '0',
|
|
206
|
+
params.token ? '1' : '0',
|
|
207
|
+
params.id?.toString(36) ?? '0',
|
|
208
|
+
params.updateBackup ? '1' : '0'
|
|
209
|
+
];
|
|
210
|
+
const type = 8;
|
|
211
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
212
|
+
return marker + typeStr + payload.join(',');
|
|
213
|
+
},
|
|
214
|
+
|
|
215
|
+
// Encode Issue Or Revoke Attestation Transaction
|
|
216
|
+
encodeIssueOrRevokeAttestation: (params) => {
|
|
217
|
+
const payload = [
|
|
218
|
+
params.revoke,
|
|
219
|
+
params.id?.toString(36) ?? '0',
|
|
220
|
+
params.targetAddress,
|
|
221
|
+
params.metaData
|
|
222
|
+
];
|
|
223
|
+
const type = 9;
|
|
224
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
225
|
+
return marker + typeStr + payload.join(',');
|
|
226
|
+
},
|
|
227
|
+
|
|
228
|
+
// Encode AMM Pool Transaction
|
|
229
|
+
encodeAMMPool: (params) => {
|
|
230
|
+
const payload = [
|
|
231
|
+
params.isRedeem,
|
|
232
|
+
params.isContract,
|
|
233
|
+
params.id,
|
|
234
|
+
params.amount,
|
|
235
|
+
params.id2,
|
|
236
|
+
params.amount2,
|
|
237
|
+
];
|
|
238
|
+
const type = 10;
|
|
239
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
240
|
+
return marker + typeStr + payload.join(',');
|
|
241
|
+
},
|
|
242
|
+
|
|
243
|
+
// Encode Create Oracle Transaction
|
|
244
|
+
encodeCreateOracle: (params) => {
|
|
245
|
+
const payload = [
|
|
246
|
+
params.ticker,
|
|
247
|
+
params.url,
|
|
248
|
+
params.backupAddress,
|
|
249
|
+
params.whitelists.map(whitelist => whitelist?.toString(36) ?? '0').join(','),
|
|
250
|
+
params.lag?.toString(36) ?? '0',
|
|
251
|
+
params.enum
|
|
252
|
+
];
|
|
253
|
+
const type = 13;
|
|
254
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
255
|
+
return marker + typeStr + payload.join(',');
|
|
256
|
+
},
|
|
257
|
+
|
|
258
|
+
// Encode Grant Managed Token Transaction
|
|
259
|
+
encodeGrantManagedToken: (params) => {
|
|
260
|
+
const amountGranted = new BigNumber(params.amountGranted).times(1e8).toNumber();
|
|
261
|
+
const payload = [
|
|
262
|
+
params.propertyid?.toString(36) ?? '0',
|
|
263
|
+
amountGranted?.toString(36) ?? '0',
|
|
264
|
+
params.addressToGrantTo,
|
|
265
|
+
params?.dlcHash
|
|
266
|
+
];
|
|
267
|
+
const type = 11;
|
|
268
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
269
|
+
return marker + typeStr + payload.join(',');
|
|
270
|
+
},
|
|
271
|
+
|
|
272
|
+
// Encode Redeem Managed Token Transaction
|
|
273
|
+
encodeRedeemManagedToken: (params) => {
|
|
274
|
+
const amountGranted = new BigNumber(params.amountGranted).times(1e8).toNumber();
|
|
275
|
+
const payload = [
|
|
276
|
+
params.propertyid?.toString(36) ?? '0',
|
|
277
|
+
amountGranted?.toString(36) ?? '0',
|
|
278
|
+
params.addressToGrantTo,
|
|
279
|
+
];
|
|
280
|
+
const type = 12;
|
|
281
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
282
|
+
return marker + typeStr + payload.join(',');
|
|
283
|
+
},
|
|
284
|
+
|
|
285
|
+
// Encode Publish Oracle Data Transaction
|
|
286
|
+
encodePublishOracleData: (params) => {
|
|
287
|
+
const formattedPrice = new BigNumber(params.price).times(1e4).toNumber()
|
|
288
|
+
const payload = [
|
|
289
|
+
params.oracleid?.toString(36) ?? '0',
|
|
290
|
+
formattedPrice?.toString(36) ?? '0',
|
|
291
|
+
];
|
|
292
|
+
if (params.high !== undefined) {
|
|
293
|
+
payload.push(params.high?.toString(36) ?? '0');
|
|
294
|
+
}
|
|
295
|
+
if (params.low !== undefined) {
|
|
296
|
+
payload.push(params.low?.toString(36) ?? '0');
|
|
297
|
+
}
|
|
298
|
+
if (params.close !== undefined) {
|
|
299
|
+
payload.push(params.close?.toString(36) ?? '0');
|
|
300
|
+
}
|
|
301
|
+
const type = 14;
|
|
302
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
303
|
+
return marker + typeStr + payload.join(',');
|
|
304
|
+
},
|
|
305
|
+
|
|
306
|
+
// Encode Close Oracle Transaction
|
|
307
|
+
encodeCloseOracle(id) {
|
|
308
|
+
const type = 15
|
|
309
|
+
const typeStr =type?.toString(36) ?? '0'
|
|
310
|
+
return marker+typeStr?.toString(36) ?? '0'+id?.toString(36) ?? '0'; // No parameters
|
|
311
|
+
},
|
|
312
|
+
|
|
313
|
+
encodeCreateFutureContractSeries: (params) => {
|
|
314
|
+
const onChainData = params.onChainData && params.onChainData.length > 0 ?
|
|
315
|
+
params.onChainData.map(data => `${data[0][0]?.toString(36) ?? '0'}:${data[0][1]?.toString(36) ?? '0'}`).join(';')
|
|
316
|
+
: '';
|
|
317
|
+
|
|
318
|
+
const payload = [
|
|
319
|
+
params.native ? '1' : '0',
|
|
320
|
+
params.underlyingOracleId?.toString(36) ?? '0',
|
|
321
|
+
onChainData, // Use '' if empty or falsy; adjust as needed
|
|
322
|
+
params.notionalPropertyId?.toString(36) ?? '0',
|
|
323
|
+
params.notionalValue?.toString(36) ?? '0',
|
|
324
|
+
params.collateralPropertyId?.toString(36) ?? '0',
|
|
325
|
+
params.leverage,
|
|
326
|
+
params.expiryPeriod !== undefined ? params.expiryPeriod?.toString(36) ?? '0' : '0',
|
|
327
|
+
params.series?.toString(36) ?? '0',
|
|
328
|
+
params.inverse ? '1' : '0',
|
|
329
|
+
params.fee !== undefined ? params.fee ? '1' : '0' : '0'
|
|
330
|
+
];
|
|
331
|
+
const type = 16;
|
|
332
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
333
|
+
return marker + typeStr + payload.join(',');
|
|
334
|
+
},
|
|
335
|
+
|
|
336
|
+
// Encode Exercise Derivative Transaction
|
|
337
|
+
encodeExerciseDerivative: (params) => {
|
|
338
|
+
const payload = [
|
|
339
|
+
params.derivativeContractId?.toString(36) ?? '0',
|
|
340
|
+
params.amount?.toString(36) ?? '0',
|
|
341
|
+
];
|
|
342
|
+
const type = 17;
|
|
343
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
344
|
+
return marker + typeStr + payload.join(',');
|
|
345
|
+
},
|
|
346
|
+
|
|
347
|
+
// Encode Trade Contract On-chain Transaction
|
|
348
|
+
// **✅ Encode Trade Contract Onchain**
|
|
349
|
+
encodeTradeContractOnchain: (params) => {
|
|
350
|
+
console.log('encoding payload for trade '+JSON.stringify(params))
|
|
351
|
+
const payload = [
|
|
352
|
+
params.contractId?.toString(36) ?? '0',
|
|
353
|
+
new BigNumber(params.price).times(1e8).integerValue().toString(36),
|
|
354
|
+
params.amount?.toString(36) ?? '0',
|
|
355
|
+
params.sell ? '1' : '0',
|
|
356
|
+
params.insurance ? '1' : '0',
|
|
357
|
+
params.reduce ? '1' : '0',
|
|
358
|
+
params.post ? '1' : '0',
|
|
359
|
+
params.stop ? '1' : '0'
|
|
360
|
+
];
|
|
361
|
+
const type = 18;
|
|
362
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
363
|
+
return marker + typeStr + payload.join(',');
|
|
364
|
+
},
|
|
365
|
+
|
|
366
|
+
// Encode Trade Contract in Channel Transaction
|
|
367
|
+
encodeTradeContractChannel: (params) => {
|
|
368
|
+
const payload = [
|
|
369
|
+
params.contractId?.toString(36) ?? '0',
|
|
370
|
+
new BigNumber(params.price).times(1e8).integerValue().toString(36),
|
|
371
|
+
params.amount?.toString(36) ?? '0',
|
|
372
|
+
params.columnAIsSeller ? '1' : '0',
|
|
373
|
+
params.expiryBlock?.toString(36) ?? '0',
|
|
374
|
+
params.insurance ? '1' : '0',
|
|
375
|
+
params.columnAIsMaker ? '1' : '0'
|
|
376
|
+
];
|
|
377
|
+
const type = 19;
|
|
378
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
379
|
+
return marker + typeStr + payload.join(',');
|
|
380
|
+
},
|
|
381
|
+
|
|
382
|
+
// Encode Trade Tokens in Channel Transaction
|
|
383
|
+
encodeTradeTokensChannel: (params) => {
|
|
384
|
+
const amountOffered = new BigNumber(params.amountOffered1).times(1e8).toNumber();
|
|
385
|
+
const amountDesired = new BigNumber(params.amountDesired2).times(1e8).toNumber();
|
|
386
|
+
const payload = [
|
|
387
|
+
params.propertyId1?.toString(36) ?? '0',
|
|
388
|
+
params.propertyId2?.toString(36) ?? '0',
|
|
389
|
+
amountOffered?.toString(36) ?? '0',
|
|
390
|
+
amountDesired?.toString(36) ?? '0',
|
|
391
|
+
params.columnAIsOfferer ? '1' : '0',
|
|
392
|
+
params.expiryBlock?.toString(36) ?? '0',
|
|
393
|
+
params.columnAIsMaker ? '1' : '0',
|
|
394
|
+
params.Id1ColoredOutput ? '1' : '0',
|
|
395
|
+
params.Id2ColoredOutput ? '1' : '0'
|
|
396
|
+
];
|
|
397
|
+
const type = 20;
|
|
398
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
399
|
+
return marker + typeStr + payload.join(',');
|
|
400
|
+
},
|
|
401
|
+
|
|
402
|
+
// Encode Withdrawal Transaction
|
|
403
|
+
encodeWithdrawal: (params) => {
|
|
404
|
+
const amounts = new BigNumber(params.amountOffered).times(1e8).toNumber().toString();
|
|
405
|
+
const withdrawAll = params.withdrawAll;
|
|
406
|
+
const propertyIds = params.propertyId?.toString(36) ?? '0';
|
|
407
|
+
const column = params.column; // 0 is A, 1 is B
|
|
408
|
+
const channelAddress = params.channelAddress.length > 42 ? `ref:${params.ref || 0}` : params.channelAddress;
|
|
409
|
+
const payload = [withdrawAll, propertyIds, amounts, column, channelAddress].join(',');
|
|
410
|
+
const type = 21;
|
|
411
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
412
|
+
return marker + typeStr + payload;
|
|
413
|
+
},
|
|
414
|
+
|
|
415
|
+
// Encode Transfer Transaction
|
|
416
|
+
encodeTransfer: (params) => {
|
|
417
|
+
const propertyId = params.propertyId?.toString(36) ?? '0';
|
|
418
|
+
const amounts = new BigNumber(params.amount).times(1e8)?.toString(36) ?? '0';
|
|
419
|
+
const isColumnA = params.isColumnA ? 1 : 0;
|
|
420
|
+
const pay = params.pay ? 1 : 0;
|
|
421
|
+
const payRef = params.payRef || '';
|
|
422
|
+
const destinationAddr = params.destinationAddr.length > 42 ? `ref:${params.ref || 0}` : params.destinationAddr;
|
|
423
|
+
const payload = [propertyId, amounts, isColumnA, destinationAddr, pay, payRef].join(',');
|
|
424
|
+
const type = 22;
|
|
425
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
426
|
+
return marker + typeStr + payload;
|
|
427
|
+
},
|
|
428
|
+
|
|
429
|
+
// Encode Settle Channel PNL Transaction
|
|
430
|
+
encodeSettleChannelPNL: (params) => {
|
|
431
|
+
const base256Encoded1 = Base256Converter.hexToBase256(params.tradeid);
|
|
432
|
+
const base256Encoded2 = Base256Converter.hexToBase256(params.settleid);
|
|
433
|
+
const base94Encoded = Base94Converter.decimalToBase94(params.markPrice);
|
|
434
|
+
const payload = [
|
|
435
|
+
base256Encoded1,
|
|
436
|
+
base256Encoded2,
|
|
437
|
+
base94Encoded,
|
|
438
|
+
params.close ? '1' : '0'
|
|
439
|
+
];
|
|
440
|
+
const type = 23;
|
|
441
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
442
|
+
return marker + typeStr + payload.join(',');
|
|
443
|
+
},
|
|
444
|
+
|
|
445
|
+
// Encode Mint Synthetic Transaction
|
|
446
|
+
encodeMintSynthetic: (params) => {
|
|
447
|
+
const payload = [
|
|
448
|
+
params.propertyIdUsed?.toString(36) ?? '0',
|
|
449
|
+
params.contractIdUsed?.toString(36) ?? '0',
|
|
450
|
+
params.amount?.toString(36) ?? '0',
|
|
451
|
+
];
|
|
452
|
+
const type = 24;
|
|
453
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
454
|
+
return marker + typeStr + payload.join(',');
|
|
455
|
+
},
|
|
456
|
+
|
|
457
|
+
// Encode Redeem Synthetic Transaction
|
|
458
|
+
encodeRedeemSynthetic: (params) =>{
|
|
459
|
+
const payload = [
|
|
460
|
+
params.propertyIdUsed?.toString(36) ?? '0',
|
|
461
|
+
params.contractIdUsed?.toString(36) ?? '0',
|
|
462
|
+
params.amount?.toString(36) ?? '0',
|
|
463
|
+
];
|
|
464
|
+
const type = 25;
|
|
465
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
466
|
+
return marker + typeStr + payload.join(',');
|
|
467
|
+
},
|
|
468
|
+
|
|
469
|
+
// Encode Pay to Tokens Transaction
|
|
470
|
+
encodePayToTokens: (params) =>{
|
|
471
|
+
const payload = [
|
|
472
|
+
params.propertyIdTarget?.toString(36) ?? '0',
|
|
473
|
+
params.propertyIdUsed?.toString(36) ?? '0',
|
|
474
|
+
params.amount?.toString(36) ?? '0',
|
|
475
|
+
];
|
|
476
|
+
const type = 26;
|
|
477
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
478
|
+
return marker + typeStr + payload.join(',');
|
|
479
|
+
},
|
|
480
|
+
|
|
481
|
+
// Encode Create Option Chain Transaction
|
|
482
|
+
encodeOptionTrade: (params) => {
|
|
483
|
+
// params: { ticker, price, amount, seller, expiryBlock, isMaker, comboTicker?, comboPrice?, comboAmount? }
|
|
484
|
+
const payload = [
|
|
485
|
+
params.contractId,
|
|
486
|
+
Encode.encodeAmount(params.price)?.toString(36) ?? '0',
|
|
487
|
+
params.amount?.toString(36) ?? '0',
|
|
488
|
+
params.columnAIsSeller,
|
|
489
|
+
params.expiryBlock?.toString(36) ?? '0',
|
|
490
|
+
params.columnAIsMaker ? '1' : '0'
|
|
491
|
+
];
|
|
492
|
+
|
|
493
|
+
if (params.comboTicker && params.comboAmount) {
|
|
494
|
+
payload.push(params.comboTicker);
|
|
495
|
+
payload.push(Encode.encodeAmount(params.comboPrice)?.toString(36) ?? '0');
|
|
496
|
+
payload.push(params.comboAmount?.toString(36) ?? '0');
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
const type = 27;
|
|
500
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
501
|
+
return marker + typeStr + payload.join(',');
|
|
502
|
+
},
|
|
503
|
+
|
|
504
|
+
// Encode Trade Bai Urbun Transaction
|
|
505
|
+
encodeTradeBaiUrbun: (params) => {
|
|
506
|
+
const payload = [
|
|
507
|
+
params.propertyIdDownPayment?.toString(36) ?? '0',
|
|
508
|
+
params.propertyIdToBeSold?.toString(36) ?? '0',
|
|
509
|
+
params.price?.toString(36) ?? '0',
|
|
510
|
+
params.amount?.toString(36) ?? '0',
|
|
511
|
+
params.expiryBlock?.toString(36) ?? '0',
|
|
512
|
+
params.tradeExpiryBlock?.toString(36) ?? '0',
|
|
513
|
+
];
|
|
514
|
+
const type = 28;
|
|
515
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
516
|
+
return marker + typeStr + payload.join(',');
|
|
517
|
+
},
|
|
518
|
+
|
|
519
|
+
// Encode Trade Murabaha Transaction
|
|
520
|
+
encodeTradeMurabaha: (params) => {
|
|
521
|
+
const payload = [
|
|
522
|
+
params.propertyIdDownPayment?.toString(36) ?? '0',
|
|
523
|
+
params.downPaymentPercent?.toString(36) ?? '0',
|
|
524
|
+
params.propertyIdToBeSold?.toString(36) ?? '0',
|
|
525
|
+
params.price?.toString(36) ?? '0',
|
|
526
|
+
params.amount?.toString(36) ?? '0',
|
|
527
|
+
params.expiryBlock?.toString(36) ?? '0',
|
|
528
|
+
params.installmentInterval?.toString(36) ?? '0',
|
|
529
|
+
params.tradeExpiryBlock?.toString(36) ?? '0',
|
|
530
|
+
];
|
|
531
|
+
const type = 29;
|
|
532
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
533
|
+
return marker + typeStr + payload.join(',');
|
|
534
|
+
},
|
|
535
|
+
|
|
536
|
+
// Encode Issue Invoice Transaction
|
|
537
|
+
encodeStakeFraudProof: (params) => {
|
|
538
|
+
const payload = [
|
|
539
|
+
params.propertyIdToReceivePayment?.toString(36) ?? '0',
|
|
540
|
+
params.amount?.toString(36) ?? '0',
|
|
541
|
+
params.dueDateBlock?.toString(36) ?? '0',
|
|
542
|
+
params.optionalPropertyIdCollateral ? params.optionalPropertyIdCollateral?.toString(36) ?? '0' : '0',
|
|
543
|
+
params.receivesPayToToken ? '1' : '0',
|
|
544
|
+
];
|
|
545
|
+
const type = 30;
|
|
546
|
+
const typeStr = type?.toString(36) ?? '0';
|
|
547
|
+
return marker + typeStr + payload.join(',');
|
|
548
|
+
},
|
|
549
|
+
|
|
550
|
+
encodeBatchSettlement: (params)=> {},
|
|
551
|
+
// Encode Batch Move Zk Rollup Transaction
|
|
552
|
+
encodeBatchMoveZkRollup: (params) => {
|
|
553
|
+
// Assuming params.payments is an array of payment objects
|
|
554
|
+
const paymentsPayload = params.payments.map(payment => {
|
|
555
|
+
const paymentDetails = [
|
|
556
|
+
payment.fromAddress,
|
|
557
|
+
payment.propertyIds.map(id => id?.toString(36) ?? '0').join(':'),
|
|
558
|
+
payment.amounts.map(amt => amt?.toString(36) ?? '0').join(':'),
|
|
559
|
+
payment.toAddress,
|
|
560
|
+
payment.sentPropertyIds.map(id => id?.toString(36) ?? '0').join(':'),
|
|
561
|
+
payment.sentAmounts.map(amt => amt?.toString(36) ?? '0').join(':'),
|
|
562
|
+
];
|
|
563
|
+
return paymentDetails.join(',');
|
|
564
|
+
}).join(';');
|
|
565
|
+
const payload = [
|
|
566
|
+
params.proof,
|
|
567
|
+
paymentsPayload,
|
|
568
|
+
JSON.stringify(params.miscLogic),
|
|
569
|
+
JSON.stringify(params.miscData),
|
|
570
|
+
];
|
|
571
|
+
return payload.join('|');
|
|
572
|
+
},
|
|
573
|
+
|
|
574
|
+
|
|
575
|
+
// Encode Create Derivative of LRC20 or RGB
|
|
576
|
+
encodeColoredCoin: (params) => {
|
|
577
|
+
const payload = [
|
|
578
|
+
params.encodeDecodeRecode, //0, decode, 1 encode, 2 repairs a channel theft/unauthorized UTXO movement
|
|
579
|
+
params.propertyId?.toString(36) ?? '0', //the TL account token being encoded
|
|
580
|
+
params.SatsRatio?.toString(36) ?? '0', //how many sats of the account token are rounded to be encoded in 1 UTXO sat e.g. 100, 1000, 10000000
|
|
581
|
+
params.homeAddress //optional param to cite an addr such as a bridge or AMM depositee where this can recode if interrupted
|
|
582
|
+
];
|
|
583
|
+
return payload.join(',');
|
|
584
|
+
},
|
|
585
|
+
|
|
586
|
+
|
|
587
|
+
// Encode cross TL chain bridging tx
|
|
588
|
+
encodeAbstractionBridge: (params) => {
|
|
589
|
+
const payload = [
|
|
590
|
+
params.propertyId?.toString(36) ?? '0',
|
|
591
|
+
params.amount?.toString(36) ?? '0',
|
|
592
|
+
params.destinationAddr
|
|
593
|
+
];
|
|
594
|
+
return payload.join(',');
|
|
595
|
+
},
|
|
596
|
+
|
|
597
|
+
encodeBindSmartContract:(params)=> {
|
|
598
|
+
const payload = [
|
|
599
|
+
params.contractHash,
|
|
600
|
+
params.type,
|
|
601
|
+
params.hostChain
|
|
602
|
+
];
|
|
603
|
+
//these are all going to be corroborated by an additional ordinal reveal,
|
|
604
|
+
//containing the code of the contract, the OP_Return should be included
|
|
605
|
+
return payload.join(',');
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
module.exports = Encode;
|