Updated factory unit test and docs to include delay functionality
This commit is contained in:
parent
f6ec000091
commit
7695b461fb
|
@ -65,18 +65,35 @@ contract('IdentityFactory', function(accounts) {
|
||||||
let tx1 = await identity.execute(
|
let tx1 = await identity.execute(
|
||||||
identity.address,
|
identity.address,
|
||||||
0,
|
0,
|
||||||
idUtils.encode.updateUpdatableInstance(updatedIdentityKernel.address),
|
idUtils.encode.updateRequestUpdatableInstance(updatedIdentityKernel.address),
|
||||||
{from: accounts[0]}
|
{from: accounts[0]}
|
||||||
);
|
);
|
||||||
|
|
||||||
assert.strictEqual(tx1.logs[tx1.logs.length - 1].event, "Executed");
|
assert.strictEqual(tx1.logs[tx1.logs.length - 1].event, "Executed");
|
||||||
|
|
||||||
|
// Updating EVM timestamp to test delay
|
||||||
|
const plus31days = 60 * 60 * 24 * 31;
|
||||||
|
|
||||||
|
web3.currentProvider.send({jsonrpc: "2.0", method: "evm_increaseTime", params: [plus31days], id: 0});
|
||||||
|
web3.currentProvider.send({jsonrpc: "2.0", method: "evm_mine", params: [], id: 0})
|
||||||
|
|
||||||
|
// Confirm update
|
||||||
|
let tx2 = await identity.execute(
|
||||||
|
identity.address,
|
||||||
|
0,
|
||||||
|
idUtils.encode.updateConfirmUpdatableInstance(updatedIdentityKernel.address),
|
||||||
|
{from: accounts[0]}
|
||||||
|
);
|
||||||
|
|
||||||
|
assert.strictEqual(tx2.logs[tx2.logs.length - 1].event, "Executed");
|
||||||
|
|
||||||
// Calling function available in updated identity kernel
|
// Calling function available in updated identity kernel
|
||||||
let updatedIdentity1 = await UpdatedIdentityKernel.at(identity.address, {from: accounts[0]})
|
let updatedIdentity1 = await UpdatedIdentityKernel.at(identity.address, {from: accounts[0]})
|
||||||
let tx2 = await updatedIdentity1.test({from: accounts[0]});
|
let tx3 = await updatedIdentity1.test({from: accounts[0]});
|
||||||
|
|
||||||
assert.strictEqual(tx2.logs[tx2.logs.length - 1].event, "TestFunctionExecuted");
|
assert.strictEqual(tx3.logs[tx3.logs.length - 1].event, "TestFunctionExecuted");
|
||||||
assert.equal(
|
assert.equal(
|
||||||
tx2.logs[tx2.logs.length - 1].args.minApprovalsByManagementKeys.toString(10),
|
tx3.logs[tx3.logs.length - 1].args.minApprovalsByManagementKeys.toString(10),
|
||||||
1,
|
1,
|
||||||
identity.address + " wasn't updated to last version");
|
identity.address + " wasn't updated to last version");
|
||||||
})
|
})
|
||||||
|
|
|
@ -117,6 +117,45 @@ const _updateUpdatableInstance = function(address){
|
||||||
}, [address]);
|
}, [address]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const _updateRequestUpdatableInstance = function(address){
|
||||||
|
if(!/^(0x)?[0-9a-f]{0,40}$/i.test(address))
|
||||||
|
throw new Error('Address "'+ address +'" is not a valid Ethereum address.');
|
||||||
|
|
||||||
|
return web3EthAbi.encodeFunctionCall({
|
||||||
|
name: 'updateRequestUpdatableInstance',
|
||||||
|
type: 'function',
|
||||||
|
inputs: [{
|
||||||
|
type: 'address',
|
||||||
|
name: '_kernel'
|
||||||
|
}]
|
||||||
|
}, [address]);
|
||||||
|
}
|
||||||
|
|
||||||
|
const _updateConfirmUpdatableInstance = function(address){
|
||||||
|
if(!/^(0x)?[0-9a-f]{0,40}$/i.test(address))
|
||||||
|
throw new Error('Address "'+ address +'" is not a valid Ethereum address.');
|
||||||
|
|
||||||
|
return web3EthAbi.encodeFunctionCall({
|
||||||
|
name: 'updateConfirmUpdatableInstance',
|
||||||
|
type: 'function',
|
||||||
|
inputs: [{
|
||||||
|
type: 'address',
|
||||||
|
name: '_kernel'
|
||||||
|
}]
|
||||||
|
}, [address]);
|
||||||
|
}
|
||||||
|
|
||||||
|
const _updateCancelUpdatableInstance = function(address){
|
||||||
|
if(!/^(0x)?[0-9a-f]{0,40}$/i.test(address))
|
||||||
|
throw new Error('Address "'+ address +'" is not a valid Ethereum address.');
|
||||||
|
|
||||||
|
return web3EthAbi.encodeFunctionCall({
|
||||||
|
name: 'updateCancelUpdatableInstance',
|
||||||
|
type: 'function',
|
||||||
|
inputs: []
|
||||||
|
}, []);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -128,6 +167,9 @@ module.exports = {
|
||||||
removeKey: _removeKey,
|
removeKey: _removeKey,
|
||||||
setMinimumApprovalsByKeyType: _setMinimumApprovalsByKeyType,
|
setMinimumApprovalsByKeyType: _setMinimumApprovalsByKeyType,
|
||||||
setupRecovery: _setupRecovery,
|
setupRecovery: _setupRecovery,
|
||||||
updateUpdatableInstance: _updateUpdatableInstance
|
updateUpdatableInstance: _updateUpdatableInstance,
|
||||||
|
updateRequestUpdatableInstance: _updateRequestUpdatableInstance,
|
||||||
|
updateConfirmUpdatableInstance: _updateConfirmUpdatableInstance,
|
||||||
|
updateCancelUpdatableInstance: _updateCancelUpdatableInstance
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue