Guest User

Bitcoin stratum test

a guest
Apr 30th, 2025
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 2.42 KB | Cryptocurrency | 0 0
  1. describe("----- STRATUM -----", () => {
  2.     return;
  3.  
  4.     it("MOCK DATA", function (done) {
  5.         const jobScheduler = new JobScheduler({
  6.             onBlockFound: (blockParams) => {
  7.                 console.log("SHARE FOUND!" + "\n" + JSON.stringify(blockParams, null, 2));
  8.  
  9.                 const {jobId, extraNonce2, nTime, nonce, hash} = blockParams;
  10.                 expect(jobId).equal("6408f9ba00000070");
  11.                 expect(extraNonce2).equal("83e7363018d66318");
  12.                 expect(nTime).equal("64090657");
  13.                 expect(nonce).equal("00171a05");
  14.                 expect(hash).equal("16b73c0211848a829f31d90dcbc378374cdad8fcd17f5403b7aaf0f20131a81e");
  15.  
  16.                 JobScheduler.clear();
  17.                 done();
  18.             },
  19.             onHashRate: (hashRate) => {},
  20.             maxCPUs: 1
  21.         });
  22.  
  23.         //Mock data from server
  24.         const data = [
  25.             "6408f9ba00000070",
  26.             "fcd4ba3be555a155db4bcfda38412ee066eacf0825513afd3a59454e00000000",
  27.             "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff3203aafa24000444060964044699292b0c",
  28.             "0a636b706f6f6c0e2f6d696e656420627920616a732fffffffff02be24280000000000160014800953e1f5cd355198e46eb6d9b994259d169cb00000000000000000266a24aa21a9ed6a8e980c6ef75466936022be977edf548fee24037dc17b3422eb7c320f078f8600000000",
  29.             [
  30.                 "1c2cd37d8e8c6e5baf774f21d5af6ee7c0c5bf649bf2678bdb71141e4b3d8d69",
  31.                 "abafa48853234d75ad7d53b7a07bdf7aabf4b9e36fc47586f828d143ae861d9e",
  32.                 "343f1fb6417332ebd4995d48ea00dbb9204ff731f5eb074da23e98de795f0f8f",
  33.                 "2203f4b6458c351dc93755913745f68ec665c2a3830e3f01c0a893ad8643ccef",
  34.                 "09b1cc3bf1c47e6c044add6ca842e8efc7d8778f9e05419a805ae89bf5133088"
  35.             ],
  36.             "20000000",
  37.             "192a0b9d",
  38.             "64090644",
  39.             false
  40.         ];
  41.  
  42.         const [jobId, prevHash, coinb1, coinb2, merkleBranch, version, nBits, nTime, cleanJobs] = data;
  43.         handler_stratum_notify({
  44.             jobId,
  45.             prevHash,
  46.             coinb1,
  47.             coinb2,
  48.             merkleBranch,
  49.             version,
  50.             nBits,
  51.             nTime: "64090657",
  52.             cleanJobs,
  53.             extraNonce1: "bbf90864",
  54.             extraNonce2Size: 8,
  55.             difficulty: 2,
  56.             testExtraNonce2: "83e7363018d66318",
  57.             testNonce: 0x00171a05
  58.         });
  59.  
  60.         //Stratum received data needed to pass to Miner
  61.         function handler_stratum_notify({jobId, cleanJobs, ...data}) {
  62.             //Clear all jobs
  63.             if (cleanJobs) {
  64.                 console.log("CLEAR JOBS");
  65.                 jobScheduler.clear({ignore: jobId});
  66.             }
  67.  
  68.             //Get/Create miner
  69.             if (!jobScheduler.exists(jobId)) {
  70.                 console.log("NEW JOB", jobId);
  71.             } else {
  72.                 console.log("UPDATE JOB", jobId);
  73.             }
  74.             jobScheduler.update(jobId, data);
  75.         }
  76.     });
Advertisement
Add Comment
Please, Sign In to add comment