[wip] factoring vdk out into several packages

This commit is contained in:
2023-05-25 15:05:48 -06:00
parent 35ef2e0b1d
commit ee30eaaf7f
231 changed files with 13800 additions and 0 deletions
+232
View File
@@ -0,0 +1,232 @@
import * as ae_node from './jex_include/local-parasite-0.2.0/dist/ae_node.js';
import * as awcp from './jex_include/local-awcp-0.2.0/dist/awcp.js';
import * as sk from './jex_include/local-sidekick-0.2.0/dist/sidekick.js';
var pv_address: string;
var pv_spendtx_base64: string;
function
set_pv_address
(new_address: string)
: void
{
pv_address = new_address;
for (let elt of document.getElementsByClassName('pv-address'))
{
elt.innerHTML = new_address;
}
}
function
set_pv_spendtx_base64
(new_address: string)
: void
{
pv_spendtx_base64 = new_address;
for (let elt of document.getElementsByClassName('pv-spendtx-base64'))
{
elt.innerHTML = new_address;
}
}
async function
detect
(logger: sk.Logger)
: Promise<void>
{
let h4 = document.getElementById("detected")!;
let pre = document.getElementById("detect-info")!;
h4.innerHTML = 'detecting...';
h4.style.color = 'GoldenRod';
// try to detect the wallet
// will fail on timeout error
// console logger
let maybe_wallet_info =//: sk.Safe<awcp.EventData_W2A_connection_announcePresence, sk.TimeoutError> =
await sk.detect(sk.TIMEOUT_DEF_DETECT_MS, "failed to detect wallet", logger);
console.log(maybe_wallet_info);
// ok means wallet was detected
if (maybe_wallet_info.ok)
{
h4.innerHTML = "detected";
h4.style.color = "green";
pre.innerHTML = JSON.stringify(maybe_wallet_info.result, undefined, 4);
}
else
{
h4.innerHTML = "error";
h4.style.color = "crimson";
pre.innerHTML = JSON.stringify(maybe_wallet_info.error, undefined, 4);
}
}
async function
connect
(logger: sk.Logger)
: Promise<void>
{
// this is not working
// I am creating and posting an identical message to the working example
// it must be a mismatch in the extraneous properties of the MessageEvent that is causing the problem
let h4 = document.getElementById("connected")!;
let pre = document.getElementById("connect-info")!;
h4.innerHTML = 'connecting...';
h4.style.color = 'GoldenRod';
// try to connect to the wallet
// will fail on timeout error
// console logger
let maybe_wallet_info = await sk.connect(
'ske-connect-1',
{name: 'sidekick examples',
version: 1},
sk.TIMEOUT_DEF_CONNECT_MS,
"failed to connect to wallet",
logger
);
console.log(maybe_wallet_info);
// ok means wallet was connected
if (maybe_wallet_info.ok)
{
h4.innerHTML = "connected";
h4.style.color = "green";
pre.innerHTML = JSON.stringify(maybe_wallet_info.result, undefined, 4);
}
else
{
h4.innerHTML = "error";
h4.style.color = "crimson";
pre.innerHTML = JSON.stringify(maybe_wallet_info.error, undefined, 4);
}
}
async function
address
(logger: sk.Logger)
: Promise<void>
{
// this is not working
// I am creating and posting an identical message to the working example
// it must be a mismatch in the extraneous properties of the MessageEvent that is causing the problem
let h4 = document.getElementById("addressed")!;
let pre = document.getElementById("address-info")!;
h4.innerHTML = 'addressing...';
h4.style.color = 'GoldenRod';
// try to address to the wallet
// will fail on timeout error
// console logger
let maybe_wallet_info = await sk.address(
'ske-address-1',
{type: 'subscribe',
value: 'connected'},
sk.TIMEOUT_DEF_ADDRESS_MS,
"failed to address to wallet",
logger
);
console.log(maybe_wallet_info);
// ok means wallet was addressed
if (maybe_wallet_info.ok)
{
h4.innerHTML = "addressed";
h4.style.color = "green";
pre.innerHTML = JSON.stringify(maybe_wallet_info.result, undefined, 4);
// update global variable
let the_address = Object.keys(maybe_wallet_info.result.address.current)[0];
set_pv_address(the_address);
}
else
{
h4.innerHTML = "error";
h4.style.color = "crimson";
pre.innerHTML = JSON.stringify(maybe_wallet_info.error, undefined, 4);
}
}
async function
form_tx
(logger: sk.Logger)
: Promise<void>
{
// @ts-ignore
let recipient_id = document.getElementById('tx-info-target')!.value;
// @ts-ignore
let amount = parseInt(document.getElementById('tx-info-amount')!.value);
let fee = ae_node.MIN_FEE;
let sender_id = pv_address;
let payload = 'hainana';
let spendtx = {recipient_id : recipient_id,
amount : amount,
fee : fee,
sender_id : sender_id,
payload : payload};
document.getElementById('spendtx-json')!.innerHTML =
JSON.stringify(spendtx, undefined, 4);
let tx = await ae_node.PostSpend(ae_node.URL_TESTNET, spendtx);
// @ts-ignore
set_pv_spendtx_base64(tx.tx);
//document.getElementById('spendtx-base64')!.innerHTML =
// JSON.stringify(tx, undefined, 4);
//
}
async function
sign_tx
(logger: sk.Logger)
: Promise<void>
{
let sign_params = {
tx: pv_spendtx_base64,
// returnsigned: false tells it to propagate the transaction
// returnsigned: true just signs it and returns the signed tx back
returnSigned: true as true,
networkId: "ae_uat"
};
let signedTx = await sk.tx_sign_noprop('sk-tx-sign-1', sign_params, sk.TIMEOUT_DEF_TX_SIGN_NOPROP_MS, 'sign transaction timed out', logger);
document.getElementById("sign-spendtx-result")!.innerHTML = JSON.stringify(signedTx, undefined, 4);
}
async function
sign_msg
(logger: sk.Logger)
: Promise<void>
{
let acc_pubkey : string = pv_address;
// @ts-ignore value property exists because i say so
let msg_text : string = document.getElementById('message-text').value;
let signed_msg = await sk.msg_sign('sk-msg-sign-1', acc_pubkey, msg_text, sk.TIMEOUT_DEF_MSG_SIGN_MS, 'message signing took too long', logger);
console.log('signed message:', signed_msg);
}
function
main
()
{
// want to create a logger down here
let logger = sk.cl();
// custom logger
window.addEventListener('message', function(evt) { if("to_waellet" === evt.data.type) {console.log(evt)} });
// the !s are typescript jizz to turn off the warning that the return value
// of getElementById might be null
document.getElementById('detect')!.onclick = function() { detect(logger); } ;
document.getElementById('connect')!.onclick = function() { connect(logger); };
document.getElementById('address')!.onclick = function() { address(logger); };
document.getElementById('mk-spendtx')!.onclick = function() { form_tx(logger); };
document.getElementById('sign-spendtx')!.onclick = function() { sign_tx(logger); };
document.getElementById('sign-message')!.onclick = function() { sign_msg(logger); };
//set_pv_address("ak_2XhCkjzTwcq1coXSSzHJoMZkUzTwnjH88zmPGkkowUsFNTo9UE");
}
main();
+3
View File
@@ -0,0 +1,3 @@
import * as sk from './jex_include/local-sidekick-0.2.0/dist/sidekick.js';
sk.hello();