var simplified_resolve_scalar_contract = (function(){ var div = document.getElementById("simplified_resolve_scalar_contract"); var display = document.createElement("p"); div.appendChild(display); var MaxMeasurable = 4294967295; var cid_input = text_input("contract id: ", div); cid_input.value = "dD76riHgEABZxODlZHgy74/3V8In7gk+xoPjUieUB2M="; div.appendChild(br()); var oid_input = text_input("oracle id: ", div); oid_input.value = "ue+zjAleNWlqlGABLT5mvQC7Ggk0EiC24AksomSNo0o="; div.appendChild(br()); var button = button_maker2("resolve", doit); div.appendChild(button); div.appendChild(br()); async function doit(){ var cid = cid_input.value; var oid = oid_input.value; var contract = await rpc.apost(["read", 3, cid], get_ip(), 8090); var oracle_question = atob(contract[1]); var max_price = contract[3]; var oracle = await rpc.apost(["oracles", oid]); var oracle_height = oracle[4]; var question_hash = oracle[3]; var text = await rpc.apost(["oracle", 2, question_hash]); console.log(oracle_question); console.log(atob(text)); var is = atob(text).match(/max.0, min.MaxVal, .B . MaxVal . MaxPrice.. is \d*/)[0].match(/\d*$/)[0]; var final_price = parseInt(is, 10); final_price = Math.round(is*max_price/MaxMeasurable); return(resolve( oracle_question, oracle_height, max_price, final_price, oid)); return(0); } async function resolve(Text, Start, MP, FP, oid0){ var FullText = scalar_oracle_creation.fulltext( FP.toString(), MP.toString(), Text); var oid = id_maker(Start, 0,0, FullText); if(!(oid === oid0)){ console.log("OIDs do not match!"); return(0); }; var contract = scalar_derivative.maker( Text, MP, Start); var CH = scalar_derivative.hash(contract); var cid = merkle.contract_id_maker(CH, 2); var c = await merkle.arequest_proof("contracts", cid); if(c=="empty"){ display.innerHTML = "that contract does not exist ".concat(cid); return(0); }; var oracle = await merkle.arequest_proof("oracles", oid); if(oracle == "empty"){ display.innerHTML = "oracle does not exist"; console.log(oid); return(0); }; var Acc = await rpc.apost(["account", keys.pub()]); var Nonce = Acc[2] + 1; var fee = 152050; var tx0 = ["oracle_close", keys.pub(), Nonce, fee, oid]; var stx0 = keys.sign(tx0); var evidence = ([0]) .concat(integer_to_array(Math.round(MaxMeasurable*FP/MP), 4)) .concat([0]) .concat(integer_to_array(Start, 4)); var evidence = btoa(array_to_string(evidence)); var tx1 = ["contract_evidence_tx", keys.pub(), Nonce+1, fee*2, contract, cid, evidence,//"AJmZmZk=", [-6, ["oracles", oid]]]; var stx1 = keys.sign(tx1); var tx2 = ["contract_timeout_tx2", keys.pub(), Nonce+2, fee, cid, 0, 0, 0, 0]; var stx2 = keys.sign(tx2); var msg0 = await apost_txs([stx0]); display.innerHTML = msg0; var msg = await apost_txs([stx1]); display.innerHTML = msg0 .concat("
") .concat(msg); var msg2 = await apost_txs([stx2]); display.innerHTML = msg0 .concat("
") .concat(msg) .concat("
") .concat(msg2); }; return({ cid: function(x){cid_input.value = x}, oid: function(x){oid_input.value = x} }); })();