# decentraland-contracts

> Decentraland contract interfaces to use from Javascript

Latest version **1.1.4** (published 2018-01-21) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install decentraland-contracts
pnpm add decentraland-contracts
yarn add decentraland-contracts
bun add decentraland-contracts
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: no vulnerabilities; high maintenance score.

Warnings: low downloads; no types; no esm support.

Negative: insecure dependencies; abandoned.

## Facts

| | |
|---|---|
| Version | 1.1.4 |
| Published | 2018-01-21 |
| First published | 2018-01-21 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 23 |
| Author | Decentraland |
| Maintainers | eordano |
| Keywords | contracts, modules, decentraland |

## Links

- npm: https://www.npmjs.com/package/decentraland-contracts
- Repository: https://github.com/decentraland/contracts
- Homepage: https://github.com/decentraland/contracts#readme
- Issues: https://github.com/decentraland/contracts/issues
- npm.io page: https://npm.io/package/decentraland-contracts

## Dependencies (1)

- [decentraland-commons](https://npm.io/package/decentraland-commons.md) git+https://github.com/decentraland/commons.git#7b0a84b3e3

## Recent versions

- 1.1.4 (latest) — 2018-01-21

## README

![](https://raw.githubusercontent.com/decentraland/web/gh-pages/img/decentraland.ico)

# Contracts

Decentraland contract interfaces to use from Javascript.

## Use

The idea is to define here your own `Contract`s and work with them using `eth` to be imported elsewhere. A typical case is described below:

_MANAToken.js_

```javascript
import { eth } from 'decentraland-commons'

import { abi } from './artifacts/MANAToken.json'

class MANAToken extends eth.Contract {
    static getDefaultAddress() {
      return '0xdeadbeef'
    }

    static getDefaultAbi() {
      return abi
    }

    async lockMana(sender, mana) {
     return await this.transaction(
          'lockMana', sender, mana, { gas: 120000 }
      )
    }
}

export default MANAToken
```


_On the start of your app, maybe server.js_

```javascript
import { eth } from 'decentraland-commons'
import { MANAToken } from 'decentraland-contracts'

eth.connect({
  contracts: [
    MANAToken,
      // ...etc
  ]
})

const manaToken = eth.getContract('MANAToken')
manaToken.lockMana()

// or maybe

const manaToken = new ManaToken(/*address*/, /*abi*/)
eth.connect({
  contracts: [
      manaToken,
      // ...etc
  ]
})
manaToken.lockMana()
```

## Contracts Addresses

Check [here](https://decentraland.github.io/contracts/addresses.json)

### Scripts

**lint**

Lint js files with `eslint`

**docs**

Builds an static page with the JSDoc documentation

**test**

Run tests using mocha and chai

---
_Source: https://npm.io/package/decentraland-contracts · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
