Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/expandorg/expand-vault

Stores and distributes XPN tokens
https://github.com/expandorg/expand-vault

Last synced: about 8 hours ago
JSON representation

Stores and distributes XPN tokens

Awesome Lists containing this project

README

        

# Expand Vault

The Expand Vault holds XPN tokens deposited by either workers or requesters, that are then withdrawable. This repo contains the ExpandVault contract and convenience wrappers for executing views and transactions.

## Environments

There are three possible environments, each with their own `.env` file and set using `NODE_ENV`. For example:

```
NODE_ENV=ropsten npm run migrate --network ropsten
```

```
NODE_ENV=ropsten node scripts/foobar.js
```

```
NODE_ENV=production npm run migrate --network live
```

```
NODE_ENV=production node scripts/foobar.js
```

## Running Scripts

Add scripts to the `scripts/` directory, using `scripts/template.js` as a guide:

```javascript
const runScript = require('../src/runScript');

runScript(async (vault, ownerAddress, web3) => {
// Script here
})
.then(() => console.log('done'))
.catch(err => console.error(err));
```

The `vault` instance that's passed to your script has the following `async` methods derived from the contract:

### Views

View methods return the relevant values.

```
addressOfUser(userId)
addressOfJob(jobId)

balanceOfUser(userId)
balanceOfJob(jobId)
```

### Transactions

Transactions return logged events on success, and throw errors on failure.

```
setUserAddress(userId, address)
setJobAddress(userId, address)

depositToUser(userId, value)
depositToJob(jobId, value)

withdrawUserDeposit(userId, value)
withdrawJobDeposit(jobId, value)

payoutFromJob(jobId, userId, value)

reclaimFromUser(userId, value)
reclaimFromJob(jobId, value)
```