Adapter that allows Truffle Suite
to communicate with a Loom DappChain
.
yarn add loom-truffle-provider
# or
npm install loom-truffle-provider
Node >= 8
npm install -g truffle
Loom Truffle Provider makes it possible to deploy smart contracts written in Solidity and using Truffle Suite on a Loom DappChain. Here's an example Truffle configuration that uses the Loom Truffle Provider...
// truffle.js
const { readFileSync } = require('fs')
const LoomTruffleProvider = require('loom-truffle-provider')
const chainId = 'default'
const writeUrl = 'http://127.0.0.1:46658/rpc'
const readUrl = 'http://127.0.0.1:46658/eth'
// ./privateKey file contains a base64 encoded key generated by the command:
// loom genkey -a publicKey -k privateKey
const privateKey = readFileSync('./privateKey', 'utf-8')
const loomTruffleProvider = new LoomTruffleProvider(chainId, writeUrl, readUrl, privateKey)
// Create 10 extra accounts, useful for tests
loomTruffleProvider.createExtraAccounts(10)
module.exports = {
networks: {
loom_dapp_chain: {
provider: loomTruffleProvider,
network_id: '*'
}
}
};
In order to access accounts on LoomTruffleProvider
you should use the function getProviderEngine
which will return the LoomProvider
giving access to properties accounts
.
const loomTruffleProvider = new LoomTruffleProvider(chainId, writeUrl, readUrl, privateKey)
const loomProvider = loomTruffleProvider.getProviderEngine()
console.log("Accounts and Private Keys", loomProvider.accounts)
Another way to create extra accounts is to use a BIP-39 mnemonic
, which will create extra accounts
from a set of words.
// Using the mnemonic code to create 10 accounts
loomTruffleProvider.createExtraAccountsFromMnemonic("gravity top burden ship student car spell purchase hundred improve check genre", 10)
Note that the account at index 0
is created from the key passed to the LoomTruffleProvider
constructor,
while the other accounts are created from the mnemonic
.
- Make sure that the
Loom DappChain
node is running before executing anyTruffle
command. - The
Truffle
network
option must be set toloom_dapp_chain
when using the example configuration above, e.g.truffle deploy --network loom_dapp_chain
.