NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Spectrum++ // @namespace http://twitter.com/dodo021_ // @version 0.3.2 // @description Add usefull informations on Spectrum Protocol website // @author dodo021 // @match https://terra.spec.finance/vaults // @icon https://www.google.com/s2/favicons?domain=spec.finance // @grant none // @license MIT // @updateURL https://openuserjs.org/meta/dodo021/Spectrum++.meta.js // ==/UserScript== // If you want to send any tips, you can send them to terra1acp2rn4fw2fglycgmy9ggpy7u4a4l08fv0rvj7 (function() { 'use strict'; function insertBefore(referenceNode, newNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.previousSibling); } setInterval(function() { let $modalOpen = document.querySelector('.cdk-overlay-pane') ? true : false; if($modalOpen == false) { return; } const $grid = document.querySelector('.cdk-overlay-pane > mdb-modal-container > div > div > app-vault-dialog > div.modal-body > div.row.g-1'); const $formRow = document.querySelector('.cdk-overlay-pane > mdb-modal-container > div > div > app-vault-dialog > div.modal-body > div > div.row.tab-container.g-0'); const $poolApr = document.querySelector('.cdk-overlay-pane > mdb-modal-container > div > div > app-vault-dialog > div.modal-body > div > div.col-12.col-md-4 > div > div > h3 > div > span.ng-star-inserted > span > span'); const $poolApy = document.querySelector('.cdk-overlay-pane > mdb-modal-container > div > div > app-vault-dialog > div.modal-body > div > div.col-12.col-md-4 > div > div > h3 > div > span.fs-6.fw-bold.text-primary'); const $valueDeposited = document.querySelector('.cdk-overlay-pane > mdb-modal-container > div > div > app-vault-dialog > div.modal-body > div > div:nth-child(4) > div > div > h3 > span'); if($valueDeposited == null) { return; } const valueDeposited = Number($valueDeposited.innerText.replace('(', '').replace(')', '').replace('$', '').replace(',', '')); const poolApr = Number($poolApr.innerText.replace('%', '').replace(',', '')); const poolApy = Number($poolApy.innerText.replace('%', '').replace(',', '')); let dailyUSTRewards = 0; let dailySpecRewards = 0; let yearlyUSTRewards = 0; dailyUSTRewards = valueDeposited * (poolApr / 100) / 365; yearlyUSTRewards = valueDeposited * (poolApy / 100); let $extraInfoRow = document.querySelector('.cdk-overlay-pane > mdb-modal-container > div > div > app-vault-dialog > div.modal-body > div > div.row-extra-info'); if(!$extraInfoRow) { $extraInfoRow = document.createElement('div') $extraInfoRow.classList.add('mt-1'); $extraInfoRow.classList.add('col-12'); $extraInfoRow.classList.add('row-extra-info'); $extraInfoRow.innerHTML = `<div class="row g-1"> <div class="col col-mb"> <div class="card box-left"> <div class="card-body"> <p class="card-text sub-topic">Current daily auto-compounded value</p> <h3 class="card-title">$${dailyUSTRewards.toFixed(3)}</h3> </div> </div> </div> <div class="col col-mb"> <div class="card box-left"> <div class="card-body"> <p class="card-text sub-topic">Estimated annual reward</p> <h3 class="card-title">$${yearlyUSTRewards.toFixed(3)}</h3> </div> </div> </div> </div>`; insertBefore($formRow, $extraInfoRow); } }, 1000); })();