def erc20(t, chain): t.languages['vyper'] = compiler.Compiler() contract_code = open('examples/tokens/vypercoin.v.py').read() return chain.contract( contract_code, language='vyper', args=[TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS, TOKEN_INITIAL_SUPPLY])
def auction_tester(t): from vyper import compiler t.languages['vyper'] = compiler.Compiler() contract_code = open('contracts/auctions/simple_open_auction.v.py').read() t.c = t.s.contract(contract_code, language='vyper', args=[t.accounts[0], FIVE_DAYS]) return t
def setUp(self): # Initialize tester, contract and expose relevant objects self.t = tester self.s = self.t.Chain() self.s.head_state.gas_limit = 10**7 from vyper import compiler self.t.languages['vyper'] = compiler.Compiler() contract_code = open('BurnablePayments.v.py').read() self.c = self.s.contract(contract_code, language='vyper', args=[])
def token_tester(): t = tester tester.s = t.Chain() from vyper import compiler t.languages['vyper'] = compiler.Compiler() contract_code = open('examples/tokens/vipercoin.v.py').read() tester.c = tester.s.contract( contract_code, language='vyper', args=[TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS, TOKEN_INITIAL_SUPPLY]) return tester
def tester(): tester = t tester.s = t.Chain() tester.s.head_state.gas_limit = 10**9 tester.languages['vyper'] = compiler.Compiler() contract_code = open('examples/stock/company.v.py').read() tester.company_address = t.a0 # Company with 1000 shares @ 10^6 wei / share tester.c = tester.s.contract(contract_code, language='vyper', args=[tester.company_address, 1000, 10**6]) return tester
def setUp(self): # Initialize tester, contract and expose relevant objects self.t = tester self.s = self.t.Chain() self.s.head_state.gas_limit = 10**7 from vyper import compiler self.t.languages['vyper'] = compiler.Compiler() contract_code = open('examples/voting/ballot.v.py').read() self.c = self.s.contract(contract_code, language='vyper', args=[["Clinton", "Trump"]])
def setUpClass(cls): super(TestVyperERC20, cls).setUpClass() from vyper import compiler cls.t.languages['vyper'] = compiler.Compiler() contract_code = open(PATH_TO_CONTRACTS + '/../../../../examples/tokens/ERC20_solidity_compatible/ERC20.v.py').read() cls.c = cls.s.contract(contract_code, language='vyper') # Bad version of contract were totalSupply / num_issued never gets updated after init # (required for full decision/branch coverage) bad_code = contract_code.replace("self.num_issued = uint256_add", "x: uint256 = uint256_add") cls.c_bad = cls.s.contract(bad_code, language='vyper') cls.initial_state = cls.s.snapshot() cls.strict_log_mode = True cls.listenForEvents()
def test_chain(alloc=tester.base_alloc, genesis_gas_limit=9999999, min_gas_limit=5000, startgas=3141592): # genesis header = { "number": 0, "gas_limit": genesis_gas_limit, "gas_used": 0, "timestamp": 1467446877, "difficulty": 1, "uncles_hash": '0x'+utils.encode_hex(utils.sha3(rlp.encode([]))) } genesis = mk_basic_state(alloc, header, tester.get_env(None)) # tester tester.languages['vyper'] = compiler.Compiler() tester.STARTGAS = startgas chain = tester.Chain(alloc=alloc, genesis=genesis) chain.chain.env.config['MIN_GAS_LIMIT'] = min_gas_limit chain.mine(1) return chain
def setUpClass(cls): super(TestVyperERC20, cls).setUpClass() from vyper import compiler cls.t.languages['vyper'] = compiler.Compiler() with open(PATH_TO_CONTRACTS + '/ERC20.v.py') as fd: contract_code = fd.read() cls.c = cls.s.contract(contract_code, language='vyper') # Bad version of contract where totalSupply / num_issued never gets updated after init # (required for full decision/branch coverage) bad_code = contract_code.replace("self.num_issued = num256_add(self.num_issued, _value)", "p:num = 5") cls.c_bad = cls.s.contract(bad_code, language='vyper') cls.initial_state = cls.s.snapshot() cls.strict_log_mode = True cls.listenForEvents()
def uniswap_factory(t, chain, uniswap_exchange): chain.mine() t.languages['vyper'] = compiler.Compiler() return chain.contract(FACTORY_CODE, language='vyper', args=[uniswap_exchange.address])
def ign_tester(t): from vyper import compiler t.languages['vyper'] = compiler.Compiler() contract_code = open('IGN.v.py').read() t.c = t.s.contract(contract_code, language='vyper', args=[t.accounts[0]]) return t
def market_maker(t, chain): t.languages['vyper'] = compiler.Compiler() contract_code = open( 'examples/market_maker/on_chain_market_maker.v.py').read() return chain.contract(contract_code, language='vyper')
# Return all events decoded from the last receipt of the contract return [ contract.translator.decode_event(log.topics, log.data) for log in logs ] def get_last_log_from_contract_receipts(tester, contract, event_name=None): # Get only the receipts for the last block from the chain (aka tester.s) last_receipt = tester.s.head_state.receipts[-1] # Get last log event with correct name and return the decoded event print(get_logs(last_receipt, contract, event_name=event_name)) return get_logs(last_receipt, contract, event_name=event_name)[-1] # Set the Vyper compiler to run when the Vyper language is requested tester.languages['vyper'] = compiler.Compiler() # Set the new "chain" (aka tester.s) tester.s = tester.Chain() tester.s.head_state.gas_limit = 10**9 initial_chain_state = tester.s.snapshot() # Load contract source code source_code = open('contracts/auctions/simple_open_auction.v.py').read() # Compile contract code interface (aka tester.c) FIVE_DAYS = 432000 tester.c = tester.s.contract(source_code, language='vyper', args=[tester.accounts[0], FIVE_DAYS]) # Generate ABI from contract source code abi = tester.languages['vyper'].mk_full_signature(source_code) print("ABI: %s", abi) # Generate Contract Translator from ABI
def chain(): tester.languages['vyper'] = compiler.Compiler() s = tester.Chain() s.head_state.gas_limit = 10**9 return s
def uniswap_exchange(t, chain): chain.mine() t.languages['vyper'] = compiler.Compiler() return chain.contract(EXCHANGE_CODE, language='vyper')
def srp_tester(): t = tester tester.s = t.Chain() from vyper import compiler t.languages["vyper"] = compiler.Compiler() return tester
def swap_token(t, chain): chain.mine() t.languages['vyper'] = compiler.Compiler() return chain.contract(ERC20_CODE, language='vyper', args=["SWAP Token", "SWAP", 18, 100000 * 10**18])