Skip to content

OCamlPro/liquidity-js

Repository files navigation

liquidity-js

A pure JavaScript Liquidity compiler and client.

This library can be used either with NodeJs or in the browser.

Installation

From then NPM repository:

npm install liquidity-js

Install the latest version from this repository:

npm install OCamlPro/liquidity-js

Alternatively, the minified JavaScript files are also available in the dist directory:

Usage

As a Node Module

const liquidity = require("liquidity-js");
(async () => {
    await liquidity.ready;

    // Setting options
    liquidity.options.private_key = "edsk3impUREDjtAvDvz8MWQsY7JQyFHhBfVoU6CztBUCLw3ocuqqJ7";
    liquidity.options.node = "http://testnet-node.dunscan.io";
    
    // Compile
    var my_contract = 
        `type storage = (key_hash, tez) big_map
         let%init storage = BigMap []
         let%entry default (addr, a) s =
           [Account.transfer addr a], Map.add addr a s`;
    console.log(liquidity.compiler.compile(my_contract));

    // Simulate contract
    console.dir(await liquidity.client.run({
        code: my_contract,
        amount: 9.008,
        entrypoint: "default",
        parameter: "(dn1HieGdCFcT8Lg9jDANfEGbJyt6arqEuSJb, 100DUN)",
        storage: "BigMap []"
    }), {depth: null});

    // Deploy contract
    var op = await liquidity.client.deploy({
        code: my_contract,
        balance: 0
    });
    console.log("Operation hash:", op.operation_hash);
    console.log("Originated contract:", op.contract);
    
})().catch(console.error);

In a Web Browser

<script src="./liquidity.browser.js" type="text/javascript" async></script>
<script type="text/javascript" async>
  window.onload = async () => {
    await liquidity.ready;

    // Setting options
    liquidity.options.private_key = "edsk3impUREDjtAvDvz8MWQsY7JQyFHhBfVoU6CztBUCLw3ocuqqJ7";
    liquidity.options.node = "http://testnet-node.dunscan.io";

    // Compile
    var my_contract = 
      `type storage = int
       let%init storage x = 2 * (x:int) + 1
       let%entry default () x = [], x + 1`;
    console.log(liquidity.compiler.compile(my_contract));

    // Deploy contract
    liquidity.client.deploy({
      code: my_contract,
      arguments: ["1"],
      balance: 0
    }).then(console.log).catch(console.error);

  }
</script>

About

A pure JavaScript Liquidity compiler and client.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published