contracts/scripts/seeds.js
bumi 78b6b2e14f Add seeds script
Allows to seed the smart contract with development data specified in
config/seeds.js

Usage:

truffle exec scripts/seeds.js

or

npm run bootstrap which runs them all:
* truffle migrate --reset
* truffle exec scripts/seeds.js
* npm run build-json
2018-04-02 13:25:03 +02:00

33 lines
1.2 KiB
JavaScript

const path = require('path');
const seeds = require(path.join(__dirname, '..', '/config/seeds.js'));
const IPFS = require('ipfs-api');
var ipfs = IPFS({host: 'localhost', port: '5001', protocol: 'http'})
module.exports = function(callback) {
const Registry = artifacts.require('./Registry.sol');
const contracts = {};
Registry.deployed().then((registry) => {
Object.keys(seeds.contractCalls).forEach(async (contract) => {
var address = await registry.getProxyFor(contract);
console.log(`Using ${contract} at ${address}`);
contracts[contract] = await artifacts.require(contract).at(address);
Object.keys(seeds.contractCalls[contract]).forEach((method) => {
seeds.contractCalls[contract][method].forEach((args) => {
console.log(`[Sending] ${contract}.#${method}(${JSON.stringify(args)})`);
contracts[contract][method](...args).then((result) => {
console.log(`[Result] ${contract}.${method}(${JSON.stringify(args)}) => ${result.tx}`);
});
});
});
});
});
seeds.ipfsContent.forEach((content) => {
ipfs.add(new ipfs.Buffer(JSON.stringify(content))).then((result) => { console.log(`[IPFS] added ${result[0].hash}`) });
});
}