Compare commits
16 Commits
nymkappa/a
...
knorrium/u
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
541555051b | ||
|
|
5aeaa68259 | ||
|
|
e01898a4c5 | ||
|
|
0568a8c6c1 | ||
|
|
e53e810a55 | ||
|
|
e2c44b6c62 | ||
|
|
36b691e25b | ||
|
|
5f5e96984a | ||
|
|
4a14e8d921 | ||
|
|
4e735cc8b0 | ||
|
|
4520e3fdf2 | ||
|
|
390bbf1097 | ||
|
|
f5a54ae62b | ||
|
|
4da145ff5c | ||
|
|
a898701830 | ||
|
|
72ddb8c6a4 |
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
@@ -9,7 +9,7 @@ jobs:
|
||||
if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
|
||||
strategy:
|
||||
matrix:
|
||||
node: ["20", "21"]
|
||||
node: ["20", "22"]
|
||||
flavor: ["dev", "prod"]
|
||||
fail-fast: false
|
||||
runs-on: "ubuntu-latest"
|
||||
@@ -160,7 +160,7 @@ jobs:
|
||||
if: "!contains(github.event.pull_request.labels.*.name, 'ops') && !contains(github.head_ref, 'ops/')"
|
||||
strategy:
|
||||
matrix:
|
||||
node: ["20", "21"]
|
||||
node: ["20", "22"]
|
||||
flavor: ["dev", "prod"]
|
||||
fail-fast: false
|
||||
runs-on: "ubuntu-latest"
|
||||
@@ -263,7 +263,7 @@ jobs:
|
||||
- name: Setup node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
node-version: 22
|
||||
cache: "npm"
|
||||
cache-dependency-path: ${{ matrix.module }}/frontend/package-lock.json
|
||||
|
||||
|
||||
@@ -1,10 +1,18 @@
|
||||
<div class="box card w-100 accelerate-checkout-inner" [class.input-disabled]="isCheckoutLocked > 0" style="background: var(--box-bg)" id=acceleratePreviewAnchor>
|
||||
@if (accelerateError) {
|
||||
<div class="row mb-1 text-center">
|
||||
<div class="col-sm">
|
||||
<h1 style="font-size: larger;" i18n="accelerator.sorry-error-title">Sorry, something went wrong!</h1>
|
||||
@if (accelerateError.includes('Payment declined')) {
|
||||
<div class="row mb-1 text-center">
|
||||
<div class="col-sm">
|
||||
<h1 style="font-size: larger;">{{ accelerateError }}</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
} @else {
|
||||
<div class="row mb-1 text-center">
|
||||
<div class="col-sm">
|
||||
<h1 style="font-size: larger;" i18n="accelerator.sorry-error-title">Sorry, something went wrong!</h1>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="row text-center mt-1">
|
||||
<div class="col-sm">
|
||||
<div class="d-flex flex-row justify-content-center align-items-center">
|
||||
|
||||
@@ -559,7 +559,7 @@ export class AccelerateCheckout implements OnInit, OnDestroy {
|
||||
// Reset everything by reloading the page :D, can be improved
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
window.location.assign(window.location.toString().replace(`?cash_request_id=${urlParams.get('cash_request_id')}`, ``));
|
||||
}, 3000);
|
||||
}, 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -686,7 +686,7 @@ export class AccelerateCheckout implements OnInit, OnDestroy {
|
||||
// Reset everything by reloading the page :D, can be improved
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
window.location.assign(window.location.toString().replace(`?cash_request_id=${urlParams.get('cash_request_id')}`, ``));
|
||||
}, 3000);
|
||||
}, 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -785,7 +785,7 @@ export class AccelerateCheckout implements OnInit, OnDestroy {
|
||||
// Reset everything by reloading the page :D, can be improved
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
window.location.assign(window.location.toString().replace(`?cash_request_id=${urlParams.get('cash_request_id')}`, ``));
|
||||
}, 3000);
|
||||
}, 10000);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -8,8 +8,10 @@ import { SinglePoolStats } from '../../../interfaces/node-api.interface';
|
||||
|
||||
type MerkleCellType = ' ' | '┬' | '├' | '└' | '│' | '─' | 'leaf';
|
||||
|
||||
|
||||
interface TaggedStratumJob extends StratumJob {
|
||||
tag: string;
|
||||
merkleBranchIds: string[];
|
||||
}
|
||||
|
||||
interface MerkleCell {
|
||||
@@ -46,6 +48,18 @@ function parseTag(scriptSig: string): string {
|
||||
return (ascii.match(/\/.*\//)?.[0] || ascii).trim();
|
||||
}
|
||||
|
||||
function getMerkleBranchIds(merkleBranches: string[], numBranches: number): string[] {
|
||||
let lastHash = '';
|
||||
const ids: string[] = [];
|
||||
for (let i = 0; i < numBranches; i++) {
|
||||
if (merkleBranches[i]) {
|
||||
lastHash = merkleBranches[i];
|
||||
}
|
||||
ids.push(`${i}-${lastHash}`);
|
||||
}
|
||||
return ids;
|
||||
}
|
||||
|
||||
@Component({
|
||||
selector: 'app-stratum-list',
|
||||
templateUrl: './stratum-list.component.html',
|
||||
@@ -81,16 +95,15 @@ export class StratumList implements OnInit, OnDestroy {
|
||||
}
|
||||
|
||||
processJobs(rawJobs: Record<string, StratumJob>): PoolRow[] {
|
||||
const numBranches = Math.max(...Object.values(rawJobs).map(job => job.merkleBranches.length));
|
||||
const jobs: Record<string, TaggedStratumJob> = {};
|
||||
for (const [id, job] of Object.entries(rawJobs)) {
|
||||
jobs[id] = { ...job, tag: parseTag(job.scriptsig) };
|
||||
jobs[id] = { ...job, tag: parseTag(job.scriptsig), merkleBranchIds: getMerkleBranchIds(job.merkleBranches, numBranches) };
|
||||
}
|
||||
if (Object.keys(jobs).length === 0) {
|
||||
return [];
|
||||
}
|
||||
|
||||
const numBranches = Math.max(...Object.values(jobs).map(job => job.merkleBranches.length));
|
||||
|
||||
let trees: MerkleTree[] = Object.keys(jobs).map(job => ({
|
||||
job,
|
||||
size: 1,
|
||||
@@ -100,12 +113,13 @@ export class StratumList implements OnInit, OnDestroy {
|
||||
for (let col = numBranches - 1; col >= 0; col--) {
|
||||
const groups: Record<string, MerkleTree[]> = {};
|
||||
for (const tree of trees) {
|
||||
const hash = jobs[tree.job].merkleBranches[col];
|
||||
if (!groups[hash]) {
|
||||
groups[hash] = [];
|
||||
const branchId = jobs[tree.job].merkleBranchIds[col];
|
||||
if (!groups[branchId]) {
|
||||
groups[branchId] = [];
|
||||
}
|
||||
groups[hash].push(tree);
|
||||
groups[branchId].push(tree);
|
||||
}
|
||||
|
||||
trees = Object.values(groups).map(group => ({
|
||||
hash: jobs[group[0].job].merkleBranches[col],
|
||||
job: group[0].job,
|
||||
|
||||
@@ -7,7 +7,7 @@ import { faFilter, faAngleDown, faAngleUp, faAngleRight, faAngleLeft, faBolt, fa
|
||||
faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft,
|
||||
faFastForward, faWallet, faUserClock, faWrench, faUserFriends, faQuestionCircle, faHistory, faSignOutAlt, faKey, faSuitcase, faIdCardAlt, faNetworkWired, faUserCheck,
|
||||
faCircleCheck, faUserCircle, faCheck, faRocket, faScaleBalanced, faHourglassStart, faHourglassHalf, faHourglassEnd, faWandMagicSparkles, faFaucetDrip, faTimeline,
|
||||
faCircleXmark, faCalendarCheck, faMoneyBillTrendUp, faRobot } from '@fortawesome/free-solid-svg-icons';
|
||||
faCircleXmark, faCalendarCheck, faMoneyBillTrendUp, faRobot, faShareNodes } from '@fortawesome/free-solid-svg-icons';
|
||||
import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
||||
import { MenuComponent } from '@components/menu/menu.component';
|
||||
import { PreviewTitleComponent } from '@components/master-page-preview/preview-title.component';
|
||||
@@ -459,5 +459,6 @@ export class SharedModule {
|
||||
library.addIcons(faCalendarCheck);
|
||||
library.addIcons(faMoneyBillTrendUp);
|
||||
library.addIcons(faRobot);
|
||||
library.addIcons(faShareNodes);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,5 +154,9 @@
|
||||
"WALLETS": {
|
||||
"ENABLED": true,
|
||||
"WALLETS": ["BITB", "3350"]
|
||||
},
|
||||
"STRATUM": {
|
||||
"ENABLED": true,
|
||||
"API": "http://127.0.0.1:81/api/v1/stratum/ws"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,8 +4,7 @@
|
||||
"TESTNET4_ENABLED": true,
|
||||
"LIQUID_ENABLED": false,
|
||||
"LIQUID_TESTNET_ENABLED": false,
|
||||
"BISQ_ENABLED": true,
|
||||
"BISQ_SEPARATE_BACKEND": true,
|
||||
"STRATUM_ENABLED": true,
|
||||
"SIGNET_ENABLED": true,
|
||||
"MEMPOOL_WEBSITE_URL": "https://mempool.space",
|
||||
"LIQUID_WEBSITE_URL": "https://liquid.network",
|
||||
|
||||
Reference in New Issue
Block a user