diff --git a/Caddyfile b/Caddyfile index d79ca3b6f..81975a3c6 100644 --- a/Caddyfile +++ b/Caddyfile @@ -30,6 +30,7 @@ header @html Content-Security-Policy " connect-src 'self' media.deso.org node.deso.org + *.deso.run amp.deso.org bithunt.deso.org bitclout.com:* diff --git a/Dockerfile b/Dockerfile index 2fa82a1b8..e3d6991e7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -40,7 +40,7 @@ COPY ./src/environments/environment.$environment.ts ./src/environments/environme RUN npm run build_prod # build minified version of frontend, served using caddy -FROM caddy:2.3.0-alpine +FROM caddy:2.7.6-alpine WORKDIR /frontend diff --git a/package-lock.json b/package-lock.json index 00ee8ebce..023e84a9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6642,6 +6642,15 @@ "node": ">=8" } }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, "node_modules/bl": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", @@ -12168,6 +12177,12 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, "node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -16774,6 +16789,12 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "node_modules/nan": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", + "optional": true + }, "node_modules/nano-json-stream-parser": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", @@ -33239,6 +33260,15 @@ "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "devOptional": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bl": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", @@ -37590,6 +37620,12 @@ } } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -41194,6 +41230,12 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "nan": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", + "optional": true + }, "nano-json-stream-parser": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", diff --git a/src/app/dao-coins/transfer-lockup-dao-coin-modal/transfer-lockup-dao-coin-modal.component.ts b/src/app/dao-coins/transfer-lockup-dao-coin-modal/transfer-lockup-dao-coin-modal.component.ts index a33042335..e7dfd4038 100644 --- a/src/app/dao-coins/transfer-lockup-dao-coin-modal/transfer-lockup-dao-coin-modal.component.ts +++ b/src/app/dao-coins/transfer-lockup-dao-coin-modal/transfer-lockup-dao-coin-modal.component.ts @@ -162,6 +162,7 @@ export class TransferLockupDaoCoinModalComponent { minute: '2-digit', hour12: false, }; + //@ts-ignore return new Intl.DateTimeFormat('default', options).format(date) } } diff --git a/src/app/dao-coins/unlock-dao-coin-modal/unlock-dao-coin-modal.component.ts b/src/app/dao-coins/unlock-dao-coin-modal/unlock-dao-coin-modal.component.ts index 53cf5706e..36686b4aa 100644 --- a/src/app/dao-coins/unlock-dao-coin-modal/unlock-dao-coin-modal.component.ts +++ b/src/app/dao-coins/unlock-dao-coin-modal/unlock-dao-coin-modal.component.ts @@ -81,6 +81,7 @@ export class UnlockDaoCoinModalComponent { minute: '2-digit', hour12: false, }; + // @ts-ignore return new Intl.DateTimeFormat('default', options).format(date) } } diff --git a/src/app/network-info/network-info.component.html b/src/app/network-info/network-info.component.html index a44918e81..d94b7b9ee 100644 --- a/src/app/network-info/network-info.component.html +++ b/src/app/network-info/network-info.component.html @@ -211,6 +211,44 @@ DeSo Node Info +
+ Remote Node Connections + + + + + + + + + + + + +
IPStatusValidator Info
+ {{ connection.PeerResponse ? connection.PeerResponse.IP + ':' + connection.PeerResponse.ProtocolPort : 'N/A' }} + + {{ connection.RemoteNodeStatus }} + + + + + {{ connection.ValidatorResponse.ValidatorPublicKeyBase58Check }} + +
+
Updating DeSo peers...
diff --git a/src/app/network-info/network-info.component.ts b/src/app/network-info/network-info.component.ts index cb17eb22b..a47722a78 100644 --- a/src/app/network-info/network-info.component.ts +++ b/src/app/network-info/network-info.component.ts @@ -34,6 +34,7 @@ export class NetworkInfoComponent implements OnInit { updatingDeSoPeer = false; manualBitcoinPeer = ''; updatingBitcoinPeer = false; + pubKeyCopiedMap = {}; constructor( public globalVars: GlobalVarsService, @@ -324,4 +325,12 @@ export class NetworkInfoComponent implements OnInit { }, }); } + + _copyPublicKey(publicKey: string) { + this.globalVars._copyText(publicKey); + this.pubKeyCopiedMap[publicKey] = true; + setInterval(() => { + delete this.pubKeyCopiedMap[publicKey]; + }, 1000); + } }