def test_symbols(): assert _solidity.solidity_library_symbol( 'a') == '__a_____________________________________' assert _solidity.solidity_library_symbol( 'aaa') == '__aaa___________________________________' assert _solidity.solidity_library_symbol( 'a' * 40) == '__aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa__' # the address should be sanitized when it's given to the function with pytest.raises(Exception): _solidity.solidity_resolve_address( 'beef__a_____________________________________cafe', '__a_____________________________________', '0x1111111111111111111111111111111111111111') # the address needs to be hex encoded with pytest.raises(Exception): _solidity.solidity_resolve_address( 'beef__a_____________________________________cafe', '__a_____________________________________', '111111111111111111111111111111111111111_') assert _solidity.solidity_resolve_address( 'beef__a_____________________________________cafe', '__a_____________________________________', '1111111111111111111111111111111111111111' ) == 'beef1111111111111111111111111111111111111111cafe'
def test_symbols(): assert _solidity.solidity_library_symbol('a') == '__a_____________________________________' assert _solidity.solidity_library_symbol('aaa') == '__aaa___________________________________' assert _solidity.solidity_library_symbol('a' * 40) == '__aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa__' # the address should be sanitized when it's given to the function with pytest.raises(Exception): _solidity.solidity_resolve_address( 'beef__a_____________________________________cafe', '__a_____________________________________', '0x1111111111111111111111111111111111111111' ) # the address needs to be hex encoded with pytest.raises(Exception): _solidity.solidity_resolve_address( 'beef__a_____________________________________cafe', '__a_____________________________________', '111111111111111111111111111111111111111_' ) assert _solidity.solidity_resolve_address( 'beef__a_____________________________________cafe', '__a_____________________________________', '1111111111111111111111111111111111111111' ) == 'beef1111111111111111111111111111111111111111cafe'
def deploy_dependencies_symbols(all_contract): dependencies = {} symbols_to_contract = dict() for contract_name in all_contract: symbol = solidity_library_symbol(contract_name) if symbol in symbols_to_contract: raise ValueError('Conflicting library names.') symbols_to_contract[symbol] = contract_name for contract_name, contract in all_contract.items(): unresolved_symbols = solidity_unresolved_symbols(contract['bin_hex']) dependencies[contract_name] = [ symbols_to_contract[unresolved] for unresolved in unresolved_symbols ] return dependencies