Nutritious Pumpkin Meal

    wavelet-client

    1.1.1 • Public • Published

    wavelet-client

    crates.io Discord Chat

    A developer-friendly stateless HTTP client for interacting with a Wavelet node. Wrriten in JavaScript.

    The entire source code of this client was written to just fit within a single JavaScript file to make the underlying code simple and easy to understand. The client has a very minimal set of dependencies that are well-audited.

    The client has been tested to work on both NodeJS alongside on the browser. As a warning, the client uses some newer language features such as big integers which may require a polyfill.

    Setup

    yarn add wavelet-client

    Usage

    const {Wavelet, Contract, TAG_TRANSFER} = require('..');
     
    const JSBI = require('jsbi');
    const BigInt = JSBI.BigInt;
     
    const client = new Wavelet("http://127.0.0.1:9000");
     
    (async () => {
        console.log(await client.getNodeInfo());
     
        console.log(await client.getAccount('400056ee68a7cc2695222df05ea76875bc27ec6e61e8e62317c336157019c405'));
     
        const transfer = await client.getTransaction('805e4ff2a9955b804e32579166c8a54e07e3f1c161702254d8778e4805ea12fc');
        console.log(Wavelet.parseTransaction(transfer.tag, transfer.payload));
     
        const call = await client.getTransaction('9a8746b7bf7a84af7fbd41520a841e96907bee71a88560af7e6996cfb7682891');
        console.log(Wavelet.parseTransaction(call.tag, call.payload));
     
        const stake = await client.getTransaction('673ef140f8a47980d8684a47bf639624d7a4d8470ad30c1a66a4f417f69ab84a');
        console.log(Wavelet.parseTransaction(stake.tag, stake.payload));
     
        const wallet = Wavelet.loadWalletFromPrivateKey('87a6813c3b4cf534b6ae82db9b1409fa7dbd5c13dba5858970b56084c4a930eb400056ee68a7cc2695222df05ea76875bc27ec6e61e8e62317c336157019c405');
        const account = await client.getAccount(Buffer.from(wallet.publicKey).toString("hex"));
     
        const contract = new Contract(client, '52bb52e0440ce0aa7a7d2018f5bac21d6abde64f5b9498615ce2bef332bd487a');
        await contract.init();
     
        console.log(contract.test(wallet, 'balance', BigInt(0),
            {
                type: 'raw',
                value: '400056ee68a7cc2695222df05ea76875bc27ec6e61e8e62317c336157019c405'
            },
        ));
     
        console.log(await contract.call(wallet, 'balance', BigInt(0), BigInt(0), JSBI.subtract(BigInt(account.balance), BigInt(1000000)),
            {
                type: 'raw',
                value: '400056ee68a7cc2695222df05ea76875bc27ec6e61e8e62317c336157019c405'
            },
        ));
     
        const consensusPoll = await client.pollConsensus({onRoundEnded: console.log});
        const transactionsPoll = await client.pollTransactions({onTransactionApplied: console.log}, {tag: TAG_TRANSFER, creator: "400056ee68a7cc2695222df05ea76875bc27ec6e61e8e62317c336157019c405"});
        const accountsPoll = await client.pollAccounts({onAccountUpdated: console.log}, {id: "400056ee68a7cc2695222df05ea76875bc27ec6e61e8e62317c336157019c405"});
     
        for (let i = 0; i < 100; i++) {
            await client.transfer(wallet, 'e49e8be205a00edb45de8183a4374e362efc9a4da56dd7ba17e2dd780501e49f', BigInt(1000000));
        }
    })();

    Install

    npm i wavelet-client

    DownloadsWeekly Downloads

    1

    Version

    1.1.1

    License

    MIT

    Unpacked Size

    1.38 MB

    Total Files

    5

    Last publish

    Collaborators

    • claudiucelfilip
    • iwasaki-kenta
    • ryanswrt