Research Article

A Four-Tier Smart Contract Model with On-Chain Upgrade

Algorithm 2

Contract verification algorithm.
Input:
 contractAddr
 userAddr
 userId
 operation
Output:
 bool
(1)  Begin
(2)   Role ← invokeUserContract (userAddr, userId)
(3)   If (!verifyAuthority (role, operation))
(4)    return false
(5)   ContractInstance ← loadContract (contractAddr)
(6)   For (function: fuctionList)
(7)    If (!boundaryValueTest (contractInstance, function))
(8)     revert()//rollback operation
(9)     return false
(10)    If (!expectedTest (contractInstance, function))
(11)     revert()
(12)     return false
(13)    If (!exceptionTest (contractInstance, function))
(14)     revert()
(15)     return false
(16)   revert()
(17)    return true
(18)  End