0xFutures Protocol Implementation

Usage no npm install needed!

<script type="module">
  import 0xfuturesProtocol from 'https://cdn.skypack.dev/@0xfutures/protocol';


npm version Build Status

0xFutures protocol

0xFutures protocol implementation


> npm i -g truffle
> npm i


npm run publish-abi
npm test

Deploy Contracts (local node)

This deployment command will recompile contracts, update ABI, run tests and deploy contracts to the blockchain using a local synchronised Ethereum node.

// eg. kovan
> npm run deploy-kovan

NOTE: the very first time the contracts are deployed to a new network the deployer should run 'npm run deploy-<network>-first-time' instead of 'npm run deploy-<network>' as this will install the permanent Registry contract that all future deployments share. It contains a mapping of all CFDs ever created as well as the address of the most recent CFDFactory contract.

Deploy Contracts (Infura)

Runs the same steps as the 'local node' deploy above but will deploy using a remote infura node.

See config.kovan.infura.json.template for an example configuration. Put your Infura apikey and HD wallet mnemonic phrase in the config file.

// eg. kovan with infura config
> npm run deploy-kovan-infura

See the note about 'first-time' deployment above. This applies to Infura deployment also.

Publish NPM

// ensure repo has latest abi
> npm run publish-abi
> git add abi && git commit -m "updated ABI" abi

// ensure tests are passing
> npm test

// publish NPM
> npm version patch     # bumps the version number and tags the commit
> npm publish           # see package.json scripts prepare - this will run the tests before publishing
> git push --tags


The package is published with the contract ABI JSON files (abi/) and js libraries (lib/) to @0xfutures/protocol.