SC CODE: // Copyright 2024. Civilware. All rights reserved.
// TELA Decentralized Web Document (TELA-DOC-1)
Function InitializePrivate() Uint64
10 IF init() == 0 THEN GOTO 30
20 RETURN 1
30 STORE("nameHdr", "helpers.js")
31 STORE("descrHdr", "Helpers")
32 STORE("iconURLHdr", "")
33 STORE("dURL", "helpers.js")
34 STORE("docType", "TELA-JS-1")
35 STORE("subDir", "")
36 STORE("fileCheckC", "d66f7d41312933a345f31f8e29ae9217605bff389b3e6309773fd0ce86319a0")
37 STORE("fileCheckS", "2587a2942ba0abbad6429541be3a076319d38f1ebf5c3489d10aee755b2d3b61")
100 RETURN 0
End Function
Function init() Uint64
10 IF EXISTS("owner") == 0 THEN GOTO 30
20 RETURN 1
30 STORE("owner", address())
50 STORE("docVersion", "1.0.0")
60 STORE("hash", HEX(TXID()))
70 STORE("likes", 0)
80 STORE("dislikes", 0)
100 RETURN 0
End Function
Function address() String
10 DIM s as String
20 LET s = SIGNER()
30 IF IS_ADDRESS_VALID(s) THEN GOTO 50
40 RETURN "anon"
50 RETURN ADDRESS_STRING(s)
End Function
Function Rate(r Uint64) Uint64
10 DIM addr as String
15 LET addr = address()
16 IF r < 100 && EXISTS(addr) == 0 && addr != "anon" THEN GOTO 30
20 RETURN 1
30 STORE(addr, ""+r+"_"+BLOCK_HEIGHT())
40 IF r < 50 THEN GOTO 70
50 STORE("likes", LOAD("likes")+1)
60 RETURN 0
70 STORE("dislikes", LOAD("dislikes")+1)
100 RETURN 0
End Function
/*//functions
function randomString(length) {
let array = new Uint8Array(length);
array = crypto.getRandomValues(array);
return Array.from(array, (byte) => String.fromCharCode(33 + (byte % 94))).join('');
}
function hexToUtf8(s){
return decodeURIComponent(
s.replace(/\s+/g, '') // remove spaces
.replace(/[0-9a-f]{2}/g, '%$&') // add '%' before each 2 characters
);
}
function nowInSeconds(){
return(Math.floor(Date.now() / 1000));
}
function niceRound(number){
return Math.round(number*100000000)/100000000;
}
function getByteLength(str) {
return new Blob([str]).size;
}
function createMakerDownloadLink(id,deroscid,plscid){
let link = document.createElement("a")
link.download = 'telatomic-contract-ids-'+id+'.txt'
link.innerHTML = "Download"
let download = "swapid:" + id + " deroscid:" +deroscid+ " plsscid:" + plscid;
let blob = new Blob([download], { type: 'text/plain' });
link.href = URL.createObjectURL(blob);
return link;
}
function createDownloadLink(id,key,scid){
let link = document.createElement("a")
link.download = 'telatomic-swap-receipt-'+id+'.txt'
link.innerHTML = "Download"
let download = "id:" + id + " key:" +key+ " scid:" + scid;
let blob = new Blob([download], { type: 'text/plain' });
link.href = URL.createObjectURL(blob);
return link;
}
dero_input.addEventListener('input', validateAmount, false);
dero_input.addEventListener('keyup', validateAmount, false);
dero_input.addEventListener('focusout', validateAmount, false);
pls_input.addEventListener('input', validateAmount, false);
pls_input.addEventListener('keyup', validateAmount, false);
pls_input.addEventListener('focusout', validateAmount, false);
function validateAmount(type){
let decimals = 5;
let togranular = 100000;
let tonormal = .00001;
if(event.target.id =="pls_bid_amt"){
decimals = 0;
togranular = 1;
tonormal = 1;
}
let amount = event.target.value;
amount = amount.replace(/[^0-9\.]/gi, '');
if(amount == ".."){
amount = ".";
//return;
}
//returns "" or a fixed result (.00000)
let new_amt_str = "";
amount = (amount).toString()
if (amount.length > 1) {
let chars = amount.split(".");
if(amount.indexOf('.') != -1){
slice_end = chars[1].length;
if(slice_end > decimals){
slice_end = decimals;
}
new_amt_str = chars[0] + "." + chars[1].slice(0,slice_end);
}
}
if (new_amt_str != "") {
amount = new_amt_str;
}
event.target.value =amount;
}
function convertToAtomicUnits(amount){
deri = parseFloat(amount);
deri = 100000 * deri;
return parseInt(deri);
}
function convertToDeroUnits(amount) {
if (amount == 0) {
return "0"
}
dero = amount * .00001;
s = dero.toFixed(5);
return rtrim(rtrim(s, "0"),".");
}
function fromPLSAtomicUnits(amount) {
return amount.toString().slice(0, -18);// * .00000000000000001;
}
function toPLSAtomicUnits(amount) {
return amount + "000000000000000000" ;// * 100000000000000000;
}
function rtrim(str, ch){
let i = str.length;
while (i-- && str.charAt(i) === ch);
return str.substring(0, i + 1);
}
function filterOffers(offer,offers){
offer.dratio = parseFloat(offer.deroamt) / parseFloat(offer.plsamt);
offer.pratio = parseFloat(offer.plsamt) / parseFloat(offer.deroamt);
if(show_p_d && offer.from_to == "pls-dero" || show_d_p && offer.from_to == "dero-pls" ){
//filtering
if(filters.all_offers){
if(offer.accepted_dero_address == ""){
offers.push(offer);
}
}else if(filters.my_offers){
if(offer.dero_bid_address == connected_dero_account){
offers.push(offer);
}
}else if(filters.my_taken){
if(
offer.accepted_dero_address == connected_dero_account
){
offers.push(offer);
}
}else if(filters.my_active){
if(offer.dero_bid_address == connected_dero_account ||
offer.accepted_dero_address == connected_dero_account
){
offers.push(offer);
}
}
}
}
function sortOffers(offers){
if(latest_first){
offers.sort(function(a, b) {
return parseFloat(b.id) - parseFloat(a.id);
});
}
//ordering
if(best_first && offers.length !== 0){
let minp = offers.reduce(function(prev, current) {
return (prev && prev.pratio < current.pratio) ? prev : current
})
let maxp = offers.reduce(function(prev, current) {
return (prev && prev.pratio > current.pratio) ? prev : current
})
let mind = offers.reduce(function(prev, current) {
return (prev && prev.dratio < current.dratio) ? prev : current
})
let maxd = offers.reduce(function(prev, current) {
return (prev && prev.dratio > current.dratio) ? prev : current
})
let deltap = maxp.pratio - minp.pratio;
let deltad = maxd.dratio - mind.dratio;
for (let i in offers) {
if(offers[i].from_to == "pls-dero"){
offers[i].dealRating = 1 - ((deltap / offers[i].pratio)*.01);
}else{
offers[i].dealRating = 1 - ((deltad / offers[i].dratio)*.01);
}
}
offers.sort(function(a, b) {
return parseFloat(b.dealRating) - parseFloat(a.dealRating);
});
}
if(largest_first && offers.length !== 0){
let minp = offers.reduce(function(prev, current) {
return (prev && prev.plsamt < current.plsamt) ? prev : current
})
let maxp = offers.reduce(function(prev, current) {
return (prev && prev.plsamt > current.plsamt) ? prev : current
})
let mind = offers.reduce(function(prev, current) {
return (prev && prev.deroamt < current.deroamt) ? prev : current
})
let maxd = offers.reduce(function(prev, current) {
return (prev && prev.deroamt > current.deroamt) ? prev : current
})
let deltap = maxp.plsamt - minp.plsamt;
let deltad = maxd.deroamt - mind.deroamt;
for (let i in offers) {
if(offers[i].from_to == "pls-dero"){
offers[i].size = 1 - (deltap / offers[i].plsamt);
}else{
offers[i].size = 1 - (deltad / offers[i].deroamt);
}
}
offers.sort(function(a, b) {
return parseFloat(b.size) - parseFloat(a.size);
});
}
}
*/ |
SC Arguments: [Name:SC_ACTION Type:uint64 Value:'1' Name:SC_CODE Type:string Value:'// Copyright 2024. Civilware. All rights reserved.
// TELA Decentralized Web Document (TELA-DOC-1)
Function InitializePrivate() Uint64
10 IF init() == 0 THEN GOTO 30
20 RETURN 1
30 STORE("nameHdr", "helpers.js")
31 STORE("descrHdr", "Helpers")
32 STORE("iconURLHdr", "")
33 STORE("dURL", "helpers.js")
34 STORE("docType", "TELA-JS-1")
35 STORE("subDir", "")
36 STORE("fileCheckC", "d66f7d41312933a345f31f8e29ae9217605bff389b3e6309773fd0ce86319a0")
37 STORE("fileCheckS", "2587a2942ba0abbad6429541be3a076319d38f1ebf5c3489d10aee755b2d3b61")
100 RETURN 0
End Function
Function init() Uint64
10 IF EXISTS("owner") == 0 THEN GOTO 30
20 RETURN 1
30 STORE("owner", address())
50 STORE("docVersion", "1.0.0")
60 STORE("hash", HEX(TXID()))
70 STORE("likes", 0)
80 STORE("dislikes", 0)
100 RETURN 0
End Function
Function address() String
10 DIM s as String
20 LET s = SIGNER()
30 IF IS_ADDRESS_VALID(s) THEN GOTO 50
40 RETURN "anon"
50 RETURN ADDRESS_STRING(s)
End Function
Function Rate(r Uint64) Uint64
10 DIM addr as String
15 LET addr = address()
16 IF r < 100 && EXISTS(addr) == 0 && addr != "anon" THEN GOTO 30
20 RETURN 1
30 STORE(addr, ""+r+"_"+BLOCK_HEIGHT())
40 IF r < 50 THEN GOTO 70
50 STORE("likes", LOAD("likes")+1)
60 RETURN 0
70 STORE("dislikes", LOAD("dislikes")+1)
100 RETURN 0
End Function
/*//functions
function randomString(length) {
let array = new Uint8Array(length);
array = crypto.getRandomValues(array);
return Array.from(array, (byte) => String.fromCharCode(33 + (byte % 94))).join('');
}
function hexToUtf8(s){
return decodeURIComponent(
s.replace(/\s+/g, '') // remove spaces
.replace(/[0-9a-f]{2}/g, '%$&') // add '%' before each 2 characters
);
}
function nowInSeconds(){
return(Math.floor(Date.now() / 1000));
}
function niceRound(number){
return Math.round(number*100000000)/100000000;
}
function getByteLength(str) {
return new Blob([str]).size;
}
function createMakerDownloadLink(id,deroscid,plscid){
let link = document.createElement("a")
link.download = 'telatomic-contract-ids-'+id+'.txt'
link.innerHTML = "Download"
let download = "swapid:" + id + " deroscid:" +deroscid+ " plsscid:" + plscid;
let blob = new Blob([download], { type: 'text/plain' });
link.href = URL.createObjectURL(blob);
return link;
}
function createDownloadLink(id,key,scid){
let link = document.createElement("a")
link.download = 'telatomic-swap-receipt-'+id+'.txt'
link.innerHTML = "Download"
let download = "id:" + id + " key:" +key+ " scid:" + scid;
let blob = new Blob([download], { type: 'text/plain' });
link.href = URL.createObjectURL(blob);
return link;
}
dero_input.addEventListener('input', validateAmount, false);
dero_input.addEventListener('keyup', validateAmount, false);
dero_input.addEventListener('focusout', validateAmount, false);
pls_input.addEventListener('input', validateAmount, false);
pls_input.addEventListener('keyup', validateAmount, false);
pls_input.addEventListener('focusout', validateAmount, false);
function validateAmount(type){
let decimals = 5;
let togranular = 100000;
let tonormal = .00001;
if(event.target.id =="pls_bid_amt"){
decimals = 0;
togranular = 1;
tonormal = 1;
}
let amount = event.target.value;
amount = amount.replace(/[^0-9\.]/gi, '');
if(amount == ".."){
amount = ".";
//return;
}
//returns "" or a fixed result (.00000)
let new_amt_str = "";
amount = (amount).toString()
if (amount.length > 1) {
let chars = amount.split(".");
if(amount.indexOf('.') != -1){
slice_end = chars[1].length;
if(slice_end > decimals){
slice_end = decimals;
}
new_amt_str = chars[0] + "." + chars[1].slice(0,slice_end);
}
}
if (new_amt_str != "") {
amount = new_amt_str;
}
event.target.value =amount;
}
function convertToAtomicUnits(amount){
deri = parseFloat(amount);
deri = 100000 * deri;
return parseInt(deri);
}
function convertToDeroUnits(amount) {
if (amount == 0) {
return "0"
}
dero = amount * .00001;
s = dero.toFixed(5);
return rtrim(rtrim(s, "0"),".");
}
function fromPLSAtomicUnits(amount) {
return amount.toString().slice(0, -18);// * .00000000000000001;
}
function toPLSAtomicUnits(amount) {
return amount + "000000000000000000" ;// * 100000000000000000;
}
function rtrim(str, ch){
let i = str.length;
while (i-- && str.charAt(i) === ch);
return str.substring(0, i + 1);
}
function filterOffers(offer,offers){
offer.dratio = parseFloat(offer.deroamt) / parseFloat(offer.plsamt);
offer.pratio = parseFloat(offer.plsamt) / parseFloat(offer.deroamt);
if(show_p_d && offer.from_to == "pls-dero" || show_d_p && offer.from_to == "dero-pls" ){
//filtering
if(filters.all_offers){
if(offer.accepted_dero_address == ""){
offers.push(offer);
}
}else if(filters.my_offers){
if(offer.dero_bid_address == connected_dero_account){
offers.push(offer);
}
}else if(filters.my_taken){
if(
offer.accepted_dero_address == connected_dero_account
){
offers.push(offer);
}
}else if(filters.my_active){
if(offer.dero_bid_address == connected_dero_account ||
offer.accepted_dero_address == connected_dero_account
){
offers.push(offer);
}
}
}
}
function sortOffers(offers){
if(latest_first){
offers.sort(function(a, b) {
return parseFloat(b.id) - parseFloat(a.id);
});
}
//ordering
if(best_first && offers.length !== 0){
let minp = offers.reduce(function(prev, current) {
return (prev && prev.pratio < current.pratio) ? prev : current
})
let maxp = offers.reduce(function(prev, current) {
return (prev && prev.pratio > current.pratio) ? prev : current
})
let mind = offers.reduce(function(prev, current) {
return (prev && prev.dratio < current.dratio) ? prev : current
})
let maxd = offers.reduce(function(prev, current) {
return (prev && prev.dratio > current.dratio) ? prev : current
})
let deltap = maxp.pratio - minp.pratio;
let deltad = maxd.dratio - mind.dratio;
for (let i in offers) {
if(offers[i].from_to == "pls-dero"){
offers[i].dealRating = 1 - ((deltap / offers[i].pratio)*.01);
}else{
offers[i].dealRating = 1 - ((deltad / offers[i].dratio)*.01);
}
}
offers.sort(function(a, b) {
return parseFloat(b.dealRating) - parseFloat(a.dealRating);
});
}
if(largest_first && offers.length !== 0){
let minp = offers.reduce(function(prev, current) {
return (prev && prev.plsamt < current.plsamt) ? prev : current
})
let maxp = offers.reduce(function(prev, current) {
return (prev && prev.plsamt > current.plsamt) ? prev : current
})
let mind = offers.reduce(function(prev, current) {
return (prev && prev.deroamt < current.deroamt) ? prev : current
})
let maxd = offers.reduce(function(prev, current) {
return (prev && prev.deroamt > current.deroamt) ? prev : current
})
let deltap = maxp.plsamt - minp.plsamt;
let deltad = maxd.deroamt - mind.deroamt;
for (let i in offers) {
if(offers[i].from_to == "pls-dero"){
offers[i].size = 1 - (deltap / offers[i].plsamt);
}else{
offers[i].size = 1 - (deltad / offers[i].deroamt);
}
}
offers.sort(function(a, b) {
return parseFloat(b.size) - parseFloat(a.size);
});
}
}
*/'] |