def Main(): rangeSupply = InputGenerator.UniformDistribution(MINIMUM_VALUE_SUPPLY, MAXIMUM_VALUE_SUPPLY, SAMPLES_COUNT_SUPPLY) rangeBalance = InputGenerator.UniformDistribution(MINIMUM_VALUE_BALANCE, MAXIMUM_VALUE_BALANCE, SAMPLES_COUNT_BALANCE) rangeWeight = InputGenerator.UniformDistribution(MINIMUM_VALUE_WEIGHT, MAXIMUM_VALUE_WEIGHT, SAMPLES_COUNT_WEIGHT) rangeAmount = InputGenerator.UniformDistribution(MINIMUM_VALUE_AMOUNT, MAXIMUM_VALUE_AMOUNT, SAMPLES_COUNT_AMOUNT) testNum = 0 numOfTests = len(rangeSupply) * len(rangeBalance) * len(rangeWeight) * len(rangeAmount) web3RPCProvider = web3.Web3(web3.RPCProvider()) abi = open('../contracts/build/TdrFormula.abi').read() bin = open('../contracts/build/TdrFormula.bin').read() contract = web3RPCProvider.eth.contract(abi=json.loads(abi), bytecode=bin) FormulaContractAddr = contract(web3RPCProvider.eth.getTransactionReceipt(contract.deploy())['contractAddress']).call() for supply in rangeSupply: for balance in rangeBalance: for weight in rangeWeight: for amount in rangeAmount: testNum += 1 if True: resultSolidityPort = Run(FormulaSolidityPort, supply, balance, weight, amount) resultContractAddr = Run(FormulaContractAddr, supply, balance, weight, amount) print 'Test {} out of {}: resultSolidityPort = {}, resultContractAddr = {}'.format(testNum, numOfTests, resultSolidityPort, resultContractAddr) if resultSolidityPort != resultContractAddr: print 'Emulation Error:' print 'supply = {}'.format(supply) print 'balance = {}'.format(balance) print 'weight = {}'.format(weight) print 'amount = {}'.format(amount) return
def Main(): range_supply = GenerateRange(MINIMUM_VALUE_SUPPLY ,MAXIMUM_VALUE_SUPPLY ,GROWTH_FACTOR_SUPPLY ) range_reserve = GenerateRange(MINIMUM_VALUE_RESERVE,MAXIMUM_VALUE_RESERVE,GROWTH_FACTOR_RESERVE) range_ratio = GenerateRange(MINIMUM_VALUE_RATIO ,MAXIMUM_VALUE_RATIO ,GROWTH_FACTOR_RATIO ) range_amount = GenerateRange(MINIMUM_VALUE_AMOUNT ,MAXIMUM_VALUE_AMOUNT ,GROWTH_FACTOR_AMOUNT ) testNum = 0 numOfTests = len(range_supply)*len(range_reserve)*len(range_ratio)*len(range_amount) web3RPCProvider = web3.Web3(web3.RPCProvider()) abi = open('../contracts/build/BancorFormula.abi').read() bin = open('../contracts/build/BancorFormula.bin').read() contract = web3RPCProvider.eth.contract(abi=json.loads(abi),bytecode=bin) FormulaContractAddr = contract(web3RPCProvider.eth.getTransactionReceipt(contract.deploy())['contractAddress']).call() for supply in range_supply : for reserve in range_reserve: for ratio in range_ratio : for amount in range_amount : testNum += 1 if amount <= supply: resultSolidityPort = Run(FormulaSolidityPort,supply,reserve,ratio,amount) resultContractAddr = Run(FormulaContractAddr,supply,reserve,ratio,amount) print 'Test {} out of {}: resultSolidityPort = {}, resultContractAddr = {}'.format(testNum,numOfTests,resultSolidityPort,resultContractAddr) if resultSolidityPort != resultContractAddr: print 'Emulation Error:' print 'supply = {}'.format(supply ) print 'reserve = {}'.format(reserve) print 'ratio = {}'.format(ratio ) print 'amount = {}'.format(amount ) return
def Main(): range_supply = GenerateRange(MINIMUM_VALUE_SUPPLY, MAXIMUM_VALUE_SUPPLY, GROWTH_FACTOR_SUPPLY) range_reserve = GenerateRange(MINIMUM_VALUE_RESERVE, MAXIMUM_VALUE_RESERVE, GROWTH_FACTOR_RESERVE) range_ratio = GenerateRange(MINIMUM_VALUE_RATIO, MAXIMUM_VALUE_RATIO, GROWTH_FACTOR_RATIO) range_amount = GenerateRange(MINIMUM_VALUE_AMOUNT, MAXIMUM_VALUE_AMOUNT, GROWTH_FACTOR_AMOUNT) testNum = 0 numOfTests = len(range_supply) * len(range_reserve) * len( range_ratio) * len(range_amount) web3RPCProvider = web3.Web3(web3.RPCProvider()) abi = open('../contracts/build/BancorFormula.abi').read() bin = open('../contracts/build/BancorFormula.bin').read() contract = web3RPCProvider.eth.contract(abi=json.loads(abi), bytecode=bin) contractHandle = contract( web3RPCProvider.eth.getTransactionReceipt( contract.deploy())['contractAddress']).call() for supply in range_supply: for reserve in range_reserve: for ratio in range_ratio: for amount in range_amount: testNum += 1 if amount <= supply: python = Run(BancorFormula, supply, reserve, ratio, amount) solidity = Run(contractHandle, supply, reserve, ratio, amount) print 'Test {} out of {}: python = {}, solidity = {}'.format( testNum, numOfTests, python, solidity) if python != solidity: print 'Emulation Error:', Record( supply, reserve, ratio, amount, bancor, actual) return