Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/expandorg/expand-vault
- Owner: expandorg
- License: mpl-2.0
- Created: 2018-05-08T18:44:14.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-08-14T00:29:58.000Z (over 2 years ago)
- Last Synced: 2024-10-30T21:51:30.056Z (16 days ago)
- Language: JavaScript
- Homepage:
- Size: 289 KB
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: license
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)
```