Nonsense Placement Mandatory

    @waves/waves-repl
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.1 • Public • Published

    REPL

    About

    This repository contains javascript console for waves blockchain. It is built on top of jsconsole and have predefined functions to work with waves

    Builtin functions

    JS lib

    Console uses waves-transactions library. Top level library functions are bound to console global scope. The difference is that in console, seed argument is equal to env.SEED by default. You need to pass null explicitly if you only want to create transaction and not to sign it E.x.:

    Console
    const signedTx = transfer({amount: 100, recipient: '3MyAGEBuZGDKZDzYn6sbh2noqk9uYHy4kjw', senderPublicKey: '8ViwGfvyyN1teUKV4Uvk2orK6XiYB4S4VuM2DqJ9Mj5b'}, null)
    
    //returns tx with no proofs
    {
      "type": 4,
      "version": 2,
      "fee": 100000,
      "senderPublicKey": "8ViwGfvyyN1teUKV4Uvk2orK6XiYB4S4VuM2DqJ9Mj5b",
      "timestamp": 1542640481876,
      "proofs": [],
      "id": "CveeKH16XQcshV5GZP2RXppg3snxcKqRsM4wE5gxcuzc",
      "chainId": "T",
      "amount": 100,
      "recipient": "3MyAGEBuZGDKZDzYn6sbh2noqk9uYHy4kjw"
    }

    Additional functions

    Broadcast signed tx using node from global variable

    const resp = await broadcast(signedTx)

    Deploy current open contract using node from global variable

    const resp = deploy()

    Sign arbitrary transaction

    const tx = transfer({amount: 100, recipient: '3MyAGEBuZGDKZDzYn6sbh2noqk9uYHy4kjw', senderPublicKey: '8ViwGfvyyN1teUKV4Uvk2orK6XiYB4S4VuM2DqJ9Mj5b'}, null)
    const signedTx = signTx(tx)

    Compile contract. Returns base64

    const compiled = compile(contractText)

    Get contract text by tab name. Used inside web-ide or vscode plugin

    const contractText = file(tabName)

    Get contract text from currently open tab. Used inside web-ide or vscode plugin

    const contractText = contract()

    Keys

    address(seed = env.SEED) // Address from seed. 
    keyPair(seed = env.SEED) // Keypair from seed
    publicKey(seed = env.SEED) // Public key from seed
    privateKey(seed = env.SEED) // Private key from seed

    Global object env

    env.SEED // Default seed
    env.CHAIN_ID // Default network byte
    env.API_BASE // Node url 
    env.editors // Open editor tabs info

    Usage

    Dev server:

    npm start
    

    Starts dev server

    React component

    import * as React from 'react';
    import {render} from 'react-dom';
    import {Repl} from 'waves-repl';
    
    class App extends React.Component {
        public consoleRef = React.createRef<Repl>();
    
        componentDidMount(){
            // Get console instance
            const console = this.consoleRef.current!;
            
            // Access to console api
            (global as any)['updateEnv'] = console.updateEnv;
            (global as any)['API'] = console.API;
            (global as any)['methods'] = console.methods;
    
            (global as any)['updateEnv']({
                SEED: 'abracadabra',
                API_BASE: 'https://nodes-testnet.wavesnodes.com',
                CHAIN_ID: 'T',
                file: () => 'Placeholder file content'
            });
    
        }
        render(){
            return <Repl theme="dark" ref={this.consoleRef}/>
        }
    }
    render(<App/>, document.getElementById('root'));

    Keywords

    none

    Install

    npm i @waves/waves-repl

    DownloadsWeekly Downloads

    3

    Version

    3.0.1

    License

    MIT

    Unpacked Size

    216 kB

    Total Files

    116

    Last publish

    Collaborators

    • vsuharnikov
    • gakhramanov
    • tsigel
    • ebceu4
    • vba2000
    • msmolyakov-waves
    • wavesadmin
    • dvshur
    • jlewka
    • kozhevnikov.peter
    • axepuff
    • okanishcheva
    • vladislav.petushkov
    • d.lobanov
    • emera1d