0.0.2 • Published 3 years ago

adamoracle-contracts v0.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

⚠️ Migration Notice

This package stores all of adamoracle's smart contracts, previously known as the evm/ directory. The previous package was called Adamoracle, now it is adamoracle-contracts.

Installation

# via Yarn
$ yarn add adamoracle-contracts

# via npm
$ npm install adamoracle-contracts --save

Directory Structure

This package makes use of adamoracle-contracts/belt to output artifacts along with ethers.js and truffle contract abstractions from the smart contracts stored within src. The resulting structure of the package when published looks like:

contracts
├── abi # abi output from src/
│   ├── v0.1
├── ethers # ethers contract abstractions codegenned from abis
│   ├── v0.1
├── src # the contracts themselves, in .sol form
│   ├── v0.1
└── truffle  # truffle contract abstractions codegenned from abis
    ├── v0.1

Usage

These smart contracts can be imported as a dependency in various ways described below.

Solidity

The solidity smart contracts themselves can simply be imported via the src directory of adamoracle-contracts. If you wanted to consume the v0.4.x version of our Oracle smart contract, you could do the following:

import "adamoracle-contracts/src/v0.1/Adamoracleed.sol";

Artifacts

JSON artifacts generated by sol-compiler are available under the abi directory. If you wanted to consume the v0.4.x version of our Oracle JSON artifact with Javascript, you could do the following:

const OracleV4Json = require('adamoracle-contracts/abi/v0.1/Oracle.json')

Ethers

This library ships with ethers.js contract abstractions generated by typechain. To use these, make sure you have ethers.js installed as a dependency:

# via Yarn
$ yarn add ethers@^4.0.44

# via npm
$ npm install ethers@^4.0.44 --save

If you wanted to consume the v0.4.x version of our Oracle with JavaScript, you could do the following:

import { OracleFactory } from 'adamoracle-contracts/ethers/v0.1/OracleFactory'

This gives a fully typed (if using TypeScript) version of a ethers.js contract factory. See the ethers.js documentation on usage.

Truffle

This library ships with @truffle/contract abstractions of each of our smart contracts. To use these, make sure you have @truffle/contract as a dependency.

# via Yarn
$ yarn add @truffle/contract@^4.1.8

# via npm
$ npm install @truffle/contract@^4.1.8 --save

If you wanted to consume the v0.4.x version of our Oracle with JavaScript, you could do the following:

const { Oracle } = require('adamoracle-contracts/truffle/v0.4/Oracle')

For usage, see the @truffle/contract documentation.

For ease of use with testing, if the environment variable NODE_ENV is set, the imported truffle contract abstraction will automatically set its provider to web3.currentProvider, avoiding the need to perform a setProvider call before using it during your truffle tests.

NODE_ENV=true yarn truffle test
# Clone Adamoracle repository
$ git clone https://github.com/smartcontractadam/adamoracle.git

# Continuing via Yarn
$ yarn install
$ yarn setup:contracts

# Continuing via npm
$ npm install
$ npm run setup:contracts

Testing

After completing the above Development commands, run tests with:

# From this directory, `evm-contracts` via Yarn
$ yarn test

# via npm
$ npm run test

# From project root
$ yarn wsrun adamoracle-contracts test

Contributing

Contributions are welcome! Please refer to Adamoracle's contributing guidelines for detailed contribution information.

Thank you!

License

MIT

0.0.2

3 years ago

0.0.1

3 years ago