There is some examples or resources about testing with truffle? I’m trying to set up the test network but I don’t understand how to use beforeEach
and reset the gsn provider. This is my implementation:
contract('BiteIDGSN', accounts => {
let account
let biteIDGSN
let biteIDCustomerGSN
beforeEach(async function() {
const {forwarderAddress, paymasterAddress} = await GsnTestEnvironment.loadDeployment()
this.BiteIDToken = await BiteIDToken.new()
this.StakeWarranty = await StakeWarranty.new(this.BiteIDToken.address)
const gsnProvider = await RelayProvider.newProvider({
provider: web3.currentProvider,
config: {
loggerConfiguration: { logLevel: 'error' },
paymasterAddress,
// these 2 params are needed only for ganache:
methodSuffix: '',
jsonStringifyRequest: false,
}
}).init()
biteIDGSN = await BiteIDGSN.new(forwarderAddress, this.BiteIDToken.address, this.StakeWarranty.address);
biteIDCustomerGSN = await BiteIDCustomerGSN.new(forwarderAddress, this.StakeWarranty.address);
BiteIDGSN.web3.setProvider(gsnProvider)
BiteIDCustomerGSN.web3.setProvider(gsnProvider)
await this.BiteIDToken.mint(biteIDGSN.address, 1000000, {from: accounts[0]})
await this.BiteIDToken.mint(this.StakeWarranty.address, 1000000, {from: accounts[0]})
account = gsnProvider.newAccount().address
})
...
The first test pass as expected, but the second test always drops this error:
Error: GSN cannot relay contract deployment transactions. Add {from: accountWithEther, useGSN: false}. -- Reason given: Custom error (could not decode).