eth-address-index

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 2343e384b895b9866ced948240323cb39d8c21ae
parent e3d4d6f47808aff79f4ed3ec5105a92d450029fb
Author: nolash <dev@holbrook.no>
Date:   Fri, 30 Apr 2021 17:22:32 +0200

Implement EIP165

Diffstat:
Mpython/eth_address_declarator/data/AddressDeclarator.bin | 4++--
Mpython/eth_address_declarator/data/AddressDeclarator.json | 2+-
Mpython/eth_token_index/data/TokenUniqueSymbolIndex.bin | 4++--
Mpython/eth_token_index/data/TokenUniqueSymbolIndex.json | 2+-
Msolidity/AddressDeclarator.bin | 4++--
Msolidity/AddressDeclarator.json | 2+-
Msolidity/AddressDeclarator.sol | 25++++++++++---------------
Msolidity/TokenUniqueSymbolIndex.bin | 4++--
Msolidity/TokenUniqueSymbolIndex.json | 2+-
Msolidity/TokenUniqueSymbolIndex.sol | 55+++++++++++++++++++++++++++++++++++++++----------------
10 files changed, 61 insertions(+), 43 deletions(-)

diff --git a/python/eth_address_declarator/data/AddressDeclarator.bin b/python/eth_address_declarator/data/AddressDeclarator.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b5060405162001d1738038062001d178339818101604052810190620000379190620007a7565b6060336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600581908060018154018082558091505060019003906000526020600020016000909190919091509080519060200190620000b69291906200071f565b5060056001600580549050620000cd9190620008ce565b8154811062000105577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001434090806001815401808255809150506001900390600052602060002001600090919091909150556200015233836200015b640100000000026401000000009004565b50505062000a5f565b600080606060006200017d3387620003c5640100000000026401000000009004565b92506002600084815260200190815260200160002054905060008114156200031e57600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506005829080600181540180825580915050600190039060005260206000200160009091909190915090805190602001906200027c9291906200071f565b50600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001600580549050620003329190620008ce565b90508060026000858152602001908152602001600020819055506005818154811062000387577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018590806001815401808255809150506001900390600052602060002001600090919091909150556001935050505092915050565b6000806000602867ffffffffffffffff8111156200040c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156200043f5781602001600182028036833780820191505090505b50905060008560405160200162000457919062000825565b604051602081830303815290604052905060005b60148110156200057857818181518110620004af577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283828151811062000533577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806200056f9062000987565b9150506200046b565b50846040516020016200058c919062000825565b604051602081830303815290604052905060005b6014811015620006bb57818181518110620005e4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002836014836200063e919062000871565b8151811062000676577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620006b29062000987565b915050620005a0565b50600282604051620006ce919062000842565b602060405180830381855afa158015620006ec573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190620007119190620007a7565b925082935050505092915050565b8280548282559060005260206000209081019282156200075e579160200282015b828111156200075d57825182559160200191906001019062000740565b5b5090506200076d919062000771565b5090565b5b808211156200078c57600081600090555060010162000772565b5090565b600081519050620007a18162000a45565b92915050565b600060208284031215620007ba57600080fd5b6000620007ca8482850162000790565b91505092915050565b620007e8620007e28262000909565b620009d5565b82525050565b6000620007fb826200085b565b62000807818562000866565b93506200081981856020860162000951565b80840191505092915050565b6000620008338284620007d3565b60148201915081905092915050565b6000620008508284620007ee565b915081905092915050565b600081519050919050565b600081905092915050565b60006200087e8262000947565b91506200088b8362000947565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620008c357620008c2620009fd565b5b828201905092915050565b6000620008db8262000947565b9150620008e88362000947565b925082821015620008fe57620008fd620009fd565b5b828203905092915050565b6000620009168262000927565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156200097157808201518184015260208101905062000954565b8381111562000981576000848401525b50505050565b6000620009948262000947565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620009ca57620009c9620009fd565b5b600182019050919050565b6000620009e282620009e9565b9050919050565b6000620009f68262000a2c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006c0100000000000000000000000082029050919050565b62000a50816200091d565b811462000a5c57600080fd5b50565b6112a88062000a6f6000396000f3fe608060405234801561001057600080fd5b50600436106100bb576000357c0100000000000000000000000000000000000000000000000000000000900480638c661b36116100835780638c661b361461018a5780638da5cb5b146101ba578063ae47ece0146101d8578063d0e95db114610208578063ff7496b414610238576100bb565b806301ffc9a7146100c057806322168e4f146100f057806350e0c6d3146101205780637d64bf1d14610150578063880ad0af14610180575b600080fd5b6100da60048036038101906100d59190610d2c565b610268565b6040516100e79190610f2c565b60405180910390f35b61010a60048036038101906101059190610cc7565b61026f565b6040516101179190610eef565b60405180910390f35b61013a60048036038101906101359190610c26565b61031b565b6040516101479190610f82565b60405180910390f35b61016a60048036038101906101659190610cc7565b610367565b6040516101779190610eef565b60405180910390f35b610188610413565b005b6101a4600480360381019061019f9190610c4f565b61044e565b6040516101b19190610f0a565b60405180910390f35b6101c2610512565b6040516101cf9190610eef565b60405180910390f35b6101f260048036038101906101ed9190610c8b565b610536565b6040516101ff9190610f2c565b60405180910390f35b610222600480360381019061021d9190610c26565b610789565b60405161022f9190610f82565b60405180910390f35b610252600480360381019061024d9190610d55565b6107d5565b60405161025f9190610f47565b60405180910390f35b6000919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106102e8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106103e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044590610f62565b60405180910390fd5b606060008061045d8585610812565b915060026000838152602001908152602001600020549050600581815481106104af577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200180548060200260200160405190810160405280929190818152602001828054801561050357602002820191906000526020600020905b8154815260200190600101908083116104ef575b50505050509250505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080606060006105473387610812565b92506002600084815260200190815260200160002054905060008114156106e557600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600582908060018154018082558091505060019003906000526020600020016000909190919091509080519060200190610643929190610b53565b50600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60016005805490506106f79190611053565b90508060026000858152602001908152602001600020819055506005818154811061074b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018590806001815401808255809150506001900390600052602060002001600090919091909150556001935050505092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600582815481106107e557600080fd5b9060005260206000200181815481106107fd57600080fd5b90600052602060002001600091509150505481565b6000806000602867ffffffffffffffff811115610858577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561088a5781602001600182028036833780820191505090505b5090506000856040516020016108a09190610ebd565b604051602081830303815290604052905060005b60148110156109bb578181815181106108f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838281518110610979577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806109b390611138565b9150506108b4565b50846040516020016109cd9190610ebd565b604051602081830303815290604052905060005b6014811015610af457818181518110610a23577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283601483610a7b9190610ffd565b81518110610ab2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610aec90611138565b9150506109e1565b50600282604051610b059190610ed8565b602060405180830381855afa158015610b22573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610b459190610d03565b925082935050505092915050565b828054828255906000526020600020908101928215610b8f579160200282015b82811115610b8e578251825591602001919060010190610b73565b5b509050610b9c9190610ba0565b5090565b5b80821115610bb9576000816000905550600101610ba1565b5090565b600081359050610bcc81611216565b92915050565b600081359050610be18161122d565b92915050565b600081519050610bf68161122d565b92915050565b600081359050610c0b81611244565b92915050565b600081359050610c208161125b565b92915050565b600060208284031215610c3857600080fd5b6000610c4684828501610bbd565b91505092915050565b60008060408385031215610c6257600080fd5b6000610c7085828601610bbd565b9250506020610c8185828601610bbd565b9150509250929050565b60008060408385031215610c9e57600080fd5b6000610cac85828601610bbd565b9250506020610cbd85828601610bd2565b9150509250929050565b60008060408385031215610cda57600080fd5b6000610ce885828601610bbd565b9250506020610cf985828601610c11565b9150509250929050565b600060208284031215610d1557600080fd5b6000610d2384828501610be7565b91505092915050565b600060208284031215610d3e57600080fd5b6000610d4c84828501610bfc565b91505092915050565b60008060408385031215610d6857600080fd5b6000610d7685828601610c11565b9250506020610d8785828601610c11565b9150509250929050565b6000610d9d8383610e3c565b60208301905092915050565b610db281611087565b82525050565b610dc9610dc482611087565b611181565b82525050565b6000610dda82610fad565b610de48185610fd0565b9350610def83610f9d565b8060005b83811015610e20578151610e078882610d91565b9750610e1283610fc3565b925050600181019050610df3565b5085935050505092915050565b610e3681611099565b82525050565b610e45816110a5565b82525050565b610e54816110a5565b82525050565b6000610e6582610fb8565b610e6f8185610fe1565b9350610e7f818560208601611105565b80840191505092915050565b6000610e98601783610fec565b9150610ea3826111ed565b602082019050919050565b610eb7816110fb565b82525050565b6000610ec98284610db8565b60148201915081905092915050565b6000610ee48284610e5a565b915081905092915050565b6000602082019050610f046000830184610da9565b92915050565b60006020820190508181036000830152610f248184610dcf565b905092915050565b6000602082019050610f416000830184610e2d565b92915050565b6000602082019050610f5c6000830184610e4b565b92915050565b60006020820190508181036000830152610f7b81610e8b565b9050919050565b6000602082019050610f976000830184610eae565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611008826110fb565b9150611013836110fb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611048576110476111a5565b5b828201905092915050565b600061105e826110fb565b9150611069836110fb565b92508282101561107c5761107b6111a5565b5b828203905092915050565b6000611092826110db565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015611123578082015181840152602081019050611108565b83811115611132576000848401525b50505050565b6000611143826110fb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611176576111756111a5565b5b600182019050919050565b600061118c82611193565b9050919050565b600061119e826111d4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006c0100000000000000000000000082029050919050565b7f6f776e65722063616e6e6f74206265206368616e676564000000000000000000600082015250565b61121f81611087565b811461122a57600080fd5b50565b611236816110a5565b811461124157600080fd5b50565b61124d816110af565b811461125857600080fd5b50565b611264816110fb565b811461126f57600080fd5b5056fea2646970667358221220e7c14f2d021c99f1d7c83ca73fe5248e74c708e052384ac01d1b14bc6cf971f264736f6c63430008030033 -\ No newline at end of file +60806040523480156200001157600080fd5b5060405162001c6038038062001c60833981810160405281019062000037919062000766565b606060048190806001815401808255809150506001900390600052602060002001600090919091909150908051906020019062000076929190620006de565b50600460016004805490506200008d91906200088d565b81548110620000c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001434090806001815401808255809150506001900390600052602060002001600090919091909150556200011233836200011b640100000000026401000000009004565b50505062000a1e565b600080606060006200013d338762000384640100000000026401000000009004565b9250600160008481526020019081526020016000205490506000811415620002dd57600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004829080600181540180825580915050600190039060005260206000200160009091909190915090805190602001906200023c929190620006de565b506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001600480549050620002f191906200088d565b90508060016000858152602001908152602001600020819055506004818154811062000346577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018590806001815401808255809150506001900390600052602060002001600090919091909150556001935050505092915050565b6000806000602867ffffffffffffffff811115620003cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015620003fe5781602001600182028036833780820191505090505b509050600085604051602001620004169190620007e4565b604051602081830303815290604052905060005b601481101562000537578181815181106200046e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838281518110620004f2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806200052e9062000946565b9150506200042a565b50846040516020016200054b9190620007e4565b604051602081830303815290604052905060005b60148110156200067a57818181518110620005a3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283601483620005fd919062000830565b8151811062000635577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620006719062000946565b9150506200055f565b506002826040516200068d919062000801565b602060405180830381855afa158015620006ab573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190620006d0919062000766565b925082935050505092915050565b8280548282559060005260206000209081019282156200071d579160200282015b828111156200071c578251825591602001919060010190620006ff565b5b5090506200072c919062000730565b5090565b5b808211156200074b57600081600090555060010162000731565b5090565b600081519050620007608162000a04565b92915050565b6000602082840312156200077957600080fd5b600062000789848285016200074f565b91505092915050565b620007a7620007a182620008c8565b62000994565b82525050565b6000620007ba826200081a565b620007c6818562000825565b9350620007d881856020860162000910565b80840191505092915050565b6000620007f2828462000792565b60148201915081905092915050565b60006200080f8284620007ad565b915081905092915050565b600081519050919050565b600081905092915050565b60006200083d8262000906565b91506200084a8362000906565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620008825762000881620009bc565b5b828201905092915050565b60006200089a8262000906565b9150620008a78362000906565b925082821015620008bd57620008bc620009bc565b5b828203905092915050565b6000620008d582620008e6565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156200093057808201518184015260208101905062000913565b8381111562000940576000848401525b50505050565b6000620009538262000906565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620009895762000988620009bc565b5b600182019050919050565b6000620009a182620009a8565b9050919050565b6000620009b582620009eb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006c0100000000000000000000000082029050919050565b62000a0f81620008dc565b811462000a1b57600080fd5b50565b6112328062000a2e6000396000f3fe608060405234801561001057600080fd5b50600436106100a5576000357c0100000000000000000000000000000000000000000000000000000000900480638c661b36116100785780638c661b361461016a578063ae47ece01461019a578063d0e95db1146101ca578063ff7496b4146101fa576100a5565b806301ffc9a7146100aa57806322168e4f146100da57806350e0c6d31461010a5780637d64bf1d1461013a575b600080fd5b6100c460048036038101906100bf9190610d33565b61022a565b6040516100d19190610f10565b60405180910390f35b6100f460048036038101906100ef9190610cce565b6102d8565b6040516101019190610ed3565b60405180910390f35b610124600480360381019061011f9190610c2d565b610383565b6040516101319190610f46565b60405180910390f35b610154600480360381019061014f9190610cce565b6103ce565b6040516101619190610ed3565b60405180910390f35b610184600480360381019061017f9190610c56565b61047a565b6040516101919190610eee565b60405180910390f35b6101b460048036038101906101af9190610c92565b61053e565b6040516101c19190610f10565b60405180910390f35b6101e460048036038101906101df9190610c2d565b610790565b6040516101f19190610f46565b60405180910390f35b610214600480360381019061020f9190610d5c565b6107dc565b6040516102219190610f2b565b60405180910390f35b60006327beb9107c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561027f57600190506102d3565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156102d257600190506102d3565b5b919050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610350577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610447577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60606000806104898585610819565b915060016000838152602001908152602001600020549050600481815481106104db577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200180548060200260200160405190810160405280929190818152602001828054801561052f57602002820191906000526020600020905b81548152602001906001019080831161051b575b50505050509250505092915050565b6000806060600061054f3387610819565b92506001600084815260200190815260200160002054905060008114156106ec57600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060048290806001815401808255809150506001900390600052602060002001600090919091909150908051906020019061064b929190610b5a565b506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60016004805490506106fe9190611006565b905080600160008581526020019081526020016000208190555060048181548110610752577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018590806001815401808255809150506001900390600052602060002001600090919091909150556001935050505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600482815481106107ec57600080fd5b90600052602060002001818154811061080457600080fd5b90600052602060002001600091509150505481565b6000806000602867ffffffffffffffff81111561085f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156108915781602001600182028036833780820191505090505b5090506000856040516020016108a79190610ea1565b604051602081830303815290604052905060005b60148110156109c2578181815181106108fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838281518110610980577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806109ba906110eb565b9150506108bb565b50846040516020016109d49190610ea1565b604051602081830303815290604052905060005b6014811015610afb57818181518110610a2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283601483610a829190610fb0565b81518110610ab9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610af3906110eb565b9150506109e8565b50600282604051610b0c9190610ebc565b602060405180830381855afa158015610b29573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610b4c9190610d0a565b925082935050505092915050565b828054828255906000526020600020908101928215610b96579160200282015b82811115610b95578251825591602001919060010190610b7a565b5b509050610ba39190610ba7565b5090565b5b80821115610bc0576000816000905550600101610ba8565b5090565b600081359050610bd3816111a0565b92915050565b600081359050610be8816111b7565b92915050565b600081519050610bfd816111b7565b92915050565b600081359050610c12816111ce565b92915050565b600081359050610c27816111e5565b92915050565b600060208284031215610c3f57600080fd5b6000610c4d84828501610bc4565b91505092915050565b60008060408385031215610c6957600080fd5b6000610c7785828601610bc4565b9250506020610c8885828601610bc4565b9150509250929050565b60008060408385031215610ca557600080fd5b6000610cb385828601610bc4565b9250506020610cc485828601610bd9565b9150509250929050565b60008060408385031215610ce157600080fd5b6000610cef85828601610bc4565b9250506020610d0085828601610c18565b9150509250929050565b600060208284031215610d1c57600080fd5b6000610d2a84828501610bee565b91505092915050565b600060208284031215610d4557600080fd5b6000610d5384828501610c03565b91505092915050565b60008060408385031215610d6f57600080fd5b6000610d7d85828601610c18565b9250506020610d8e85828601610c18565b9150509250929050565b6000610da48383610e43565b60208301905092915050565b610db98161103a565b82525050565b610dd0610dcb8261103a565b611134565b82525050565b6000610de182610f71565b610deb8185610f94565b9350610df683610f61565b8060005b83811015610e27578151610e0e8882610d98565b9750610e1983610f87565b925050600181019050610dfa565b5085935050505092915050565b610e3d8161104c565b82525050565b610e4c81611058565b82525050565b610e5b81611058565b82525050565b6000610e6c82610f7c565b610e768185610fa5565b9350610e868185602086016110b8565b80840191505092915050565b610e9b816110ae565b82525050565b6000610ead8284610dbf565b60148201915081905092915050565b6000610ec88284610e61565b915081905092915050565b6000602082019050610ee86000830184610db0565b92915050565b60006020820190508181036000830152610f088184610dd6565b905092915050565b6000602082019050610f256000830184610e34565b92915050565b6000602082019050610f406000830184610e52565b92915050565b6000602082019050610f5b6000830184610e92565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b6000610fbb826110ae565b9150610fc6836110ae565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610ffb57610ffa611158565b5b828201905092915050565b6000611011826110ae565b915061101c836110ae565b92508282101561102f5761102e611158565b5b828203905092915050565b60006110458261108e565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156110d65780820151818401526020810190506110bb565b838111156110e5576000848401525b50505050565b60006110f6826110ae565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561112957611128611158565b5b600182019050919050565b600061113f82611146565b9050919050565b600061115182611187565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006c0100000000000000000000000082029050919050565b6111a98161103a565b81146111b457600080fd5b50565b6111c081611058565b81146111cb57600080fd5b50565b6111d781611062565b81146111e257600080fd5b50565b6111ee816110ae565b81146111f957600080fd5b5056fea2646970667358221220b040785beb108ff46e86fa77d187a043667c637a67c22111c4bb08e002e764e464736f6c63430008030033 +\ No newline at end of file diff --git a/python/eth_address_declarator/data/AddressDeclarator.json b/python/eth_address_declarator/data/AddressDeclarator.json @@ -1 +1 @@ -[{"inputs":[{"internalType":"bytes32","name":"_initialDescription","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"contents","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declarationAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"}],"name":"declarationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declaratorAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"}],"name":"declaratorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}] +[{"inputs":[{"internalType":"bytes32","name":"_initialDescription","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_declarator","type":"address"},{"indexed":false,"internalType":"address","name":"_subject","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"DeclarationAdded","type":"event"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"contents","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declarationAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"}],"name":"declarationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declaratorAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"}],"name":"declaratorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}] diff --git a/python/eth_token_index/data/TokenUniqueSymbolIndex.bin b/python/eth_token_index/data/TokenUniqueSymbolIndex.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c91806100c46000396000f3fe608060405234801561001057600080fd5b50600436106100b0576000357c0100000000000000000000000000000000000000000000000000000000900480637ef50298116100835780637ef50298146101635780638da5cb5b14610193578063bb34534c146101b1578063e2095c07146101e1578063f2fde38b14610211576100b0565b806301ffc9a7146100b55780630a3b0a4f146100e55780630cbb0f83146101155780634420e48614610133575b600080fd5b6100cf60048036038101906100ca919061085f565b610241565b6040516100dc9190610982565b60405180910390f35b6100ff60048036038101906100fa91906107e4565b610331565b60405161010c9190610982565b60405180910390f35b61011d610343565b60405161012a919061099d565b60405180910390f35b61014d600480360381019061014891906107e4565b61035c565b60405161015a9190610982565b60405180910390f35b61017d6004803603810190610178919061080d565b6105d0565b60405161018a919061099d565b60405180910390f35b61019b6105e8565b6040516101a89190610967565b60405180910390f35b6101cb60048036038101906101c6919061080d565b61060c565b6040516101d89190610967565b60405180910390f35b6101fb60048036038101906101f691906108c9565b610692565b6040516102089190610967565b60405180910390f35b61022b600480360381019061022691906107e4565b61070c565b6040516102389190610982565b60405180910390f35b600063325d15e27c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156102b5576001905061032c565b6301ffc9a77c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415610327576001905061032c565b600090505b919050565b600061033c8261035c565b9050919050565b600060016002805490506103579190610a7a565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b757600080fd5b60606000806000808673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f95d89b41000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104669190610950565b6000604051808303816000865af19150503d80600081146104a3576040519150601f19603f3d011682016040523d82523d6000602084013e6104a8565b606091505b5091509150816104b757600080fd5b808060200190518101906104cb9190610888565b94506002856040516104dd9190610950565b602060405180830381855afa1580156104fa573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061051d9190610836565b9350600160008581526020019081526020016000205492506000831461054257600080fd5b60028054905060016000868152602001908152602001600020819055506002879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600195505050505050919050565b60016020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600160008481526020019081526020016000205490506002818154811061065f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b600060026001836106a39190610a24565b815481106106da577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000919050565b6000610726610721846109dd565b6109b8565b90508281526020810184848401111561073e57600080fd5b610749848285610b2c565b509392505050565b60008135905061076081610bff565b92915050565b60008135905061077581610c16565b92915050565b60008151905061078a81610c16565b92915050565b60008135905061079f81610c2d565b92915050565b600082601f8301126107b657600080fd5b81516107c6848260208601610713565b91505092915050565b6000813590506107de81610c44565b92915050565b6000602082840312156107f657600080fd5b600061080484828501610751565b91505092915050565b60006020828403121561081f57600080fd5b600061082d84828501610766565b91505092915050565b60006020828403121561084857600080fd5b60006108568482850161077b565b91505092915050565b60006020828403121561087157600080fd5b600061087f84828501610790565b91505092915050565b60006020828403121561089a57600080fd5b600082015167ffffffffffffffff8111156108b457600080fd5b6108c0848285016107a5565b91505092915050565b6000602082840312156108db57600080fd5b60006108e9848285016107cf565b91505092915050565b6108fb81610aae565b82525050565b61090a81610ac0565b82525050565b600061091b82610a0e565b6109258185610a19565b9350610935818560208601610b2c565b80840191505092915050565b61094a81610b22565b82525050565b600061095c8284610910565b915081905092915050565b600060208201905061097c60008301846108f2565b92915050565b60006020820190506109976000830184610901565b92915050565b60006020820190506109b26000830184610941565b92915050565b60006109c26109d3565b90506109ce8282610b5f565b919050565b6000604051905090565b600067ffffffffffffffff8211156109f8576109f7610bbf565b5b610a0182610bee565b9050602081019050919050565b600081519050919050565b600081905092915050565b6000610a2f82610b22565b9150610a3a83610b22565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610a6f57610a6e610b90565b5b828201905092915050565b6000610a8582610b22565b9150610a9083610b22565b925082821015610aa357610aa2610b90565b5b828203905092915050565b6000610ab982610b02565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015610b4a578082015181840152602081019050610b2f565b83811115610b59576000848401525b50505050565b610b6882610bee565b810181811067ffffffffffffffff82111715610b8757610b86610bbf565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b610c0881610aae565b8114610c1357600080fd5b50565b610c1f81610acc565b8114610c2a57600080fd5b50565b610c3681610ad6565b8114610c4157600080fd5b50565b610c4d81610b22565b8114610c5857600080fd5b5056fea2646970667358221220547f9f9842851f369ae878b1953b4c27a4cf6fed932954194d0eaab37e7f27a664736f6c63430008030033 -\ No newline at end of file +608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fb3806100c46000396000f3fe608060405234801561001057600080fd5b50600436106100bb576000357c0100000000000000000000000000000000000000000000000000000000900480637ef50298116100835780637ef502981461018c5780638da5cb5b146101bc578063bb34534c146101da578063e2095c071461020a578063f2fde38b1461023a576100bb565b806301ffc9a7146100c05780630a3b0a4f146100f05780630cbb0f83146101205780634420e4861461013e57806379ba50971461016e575b600080fd5b6100da60048036038101906100d59190610b81565b61026a565b6040516100e79190610ca4565b60405180910390f35b61010a60048036038101906101059190610b06565b6103c2565b6040516101179190610ca4565b60405180910390f35b6101286103d4565b6040516101359190610cbf565b60405180910390f35b61015860048036038101906101539190610b06565b6103ed565b6040516101659190610ca4565b60405180910390f35b6101766106b6565b6040516101839190610ca4565b60405180910390f35b6101a660048036038101906101a19190610b2f565b610858565b6040516101b39190610cbf565b60405180910390f35b6101c4610870565b6040516101d19190610c89565b60405180910390f35b6101f460048036038101906101ef9190610b2f565b610894565b6040516102019190610c89565b60405180910390f35b610224600480360381019061021f9190610beb565b61091a565b6040516102319190610c89565b60405180910390f35b610254600480360381019061024f9190610b06565b610994565b6040516102619190610ca4565b60405180910390f35b600063cbdb05c77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156102bf57600190506103bd565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561031257600190506103bd565b639493f8b27c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561036557600190506103bd565b6337a47be47c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156103b857600190506103bd565b600090505b919050565b60006103cd826103ed565b9050919050565b600060016003805490506103e89190610d9c565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461044857600080fd5b60606000806000808673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f95d89b41000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104f79190610c72565b6000604051808303816000865af19150503d8060008114610534576040519150601f19603f3d011682016040523d82523d6000602084013e610539565b606091505b50915091508161054857600080fd5b8080602001905181019061055c9190610baa565b945060028560405161056e9190610c72565b602060405180830381855afa15801561058b573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906105ae9190610b58565b935060026000858152602001908152602001600020549250600083146105d357600080fd5b60038054905060026000868152602001908152602001600020819055506003879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016003805490506106659190610d9c565b8773ffffffffffffffffffffffffffffffffffffffff167f9cc987676e7d63379f176ea50df0ae8d2d9d1141d1231d4ce15b5965f73c943060405160405180910390a3600195505050505050919050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461071357600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35090565b60026020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060026000848152602001908152602001600020549050600381815481106108e7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000600360018361092b9190610d46565b81548110610962577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109ef57600080fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b6000610a48610a4384610cff565b610cda565b905082815260208101848484011115610a6057600080fd5b610a6b848285610e4e565b509392505050565b600081359050610a8281610f21565b92915050565b600081359050610a9781610f38565b92915050565b600081519050610aac81610f38565b92915050565b600081359050610ac181610f4f565b92915050565b600082601f830112610ad857600080fd5b8151610ae8848260208601610a35565b91505092915050565b600081359050610b0081610f66565b92915050565b600060208284031215610b1857600080fd5b6000610b2684828501610a73565b91505092915050565b600060208284031215610b4157600080fd5b6000610b4f84828501610a88565b91505092915050565b600060208284031215610b6a57600080fd5b6000610b7884828501610a9d565b91505092915050565b600060208284031215610b9357600080fd5b6000610ba184828501610ab2565b91505092915050565b600060208284031215610bbc57600080fd5b600082015167ffffffffffffffff811115610bd657600080fd5b610be284828501610ac7565b91505092915050565b600060208284031215610bfd57600080fd5b6000610c0b84828501610af1565b91505092915050565b610c1d81610dd0565b82525050565b610c2c81610de2565b82525050565b6000610c3d82610d30565b610c478185610d3b565b9350610c57818560208601610e4e565b80840191505092915050565b610c6c81610e44565b82525050565b6000610c7e8284610c32565b915081905092915050565b6000602082019050610c9e6000830184610c14565b92915050565b6000602082019050610cb96000830184610c23565b92915050565b6000602082019050610cd46000830184610c63565b92915050565b6000610ce4610cf5565b9050610cf08282610e81565b919050565b6000604051905090565b600067ffffffffffffffff821115610d1a57610d19610ee1565b5b610d2382610f10565b9050602081019050919050565b600081519050919050565b600081905092915050565b6000610d5182610e44565b9150610d5c83610e44565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610d9157610d90610eb2565b5b828201905092915050565b6000610da782610e44565b9150610db283610e44565b925082821015610dc557610dc4610eb2565b5b828203905092915050565b6000610ddb82610e24565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015610e6c578082015181840152602081019050610e51565b83811115610e7b576000848401525b50505050565b610e8a82610f10565b810181811067ffffffffffffffff82111715610ea957610ea8610ee1565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b610f2a81610dd0565b8114610f3557600080fd5b50565b610f4181610dee565b8114610f4c57600080fd5b50565b610f5881610df8565b8114610f6357600080fd5b50565b610f6f81610e44565b8114610f7a57600080fd5b5056fea2646970667358221220f7c74f94efff8b8cbf9923365cd4956305e9d142051ff9229ac8a3c0b81f477464736f6c63430008030033 +\ No newline at end of file diff --git a/python/eth_token_index/data/TokenUniqueSymbolIndex.json b/python/eth_token_index/data/TokenUniqueSymbolIndex.json @@ -1 +1 @@ -[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"add","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"addressOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"entry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"entryCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"register","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"registry","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interfaceCode","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_toAddress","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addedAccount","type":"address"},{"indexed":true,"internalType":"uint256","name":"accountIndex","type":"uint256"}],"name":"AddressAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"add","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"addressOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"entry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"entryCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"register","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"registry","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] diff --git a/solidity/AddressDeclarator.bin b/solidity/AddressDeclarator.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b5060405162001d1738038062001d178339818101604052810190620000379190620007a7565b6060336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600581908060018154018082558091505060019003906000526020600020016000909190919091509080519060200190620000b69291906200071f565b5060056001600580549050620000cd9190620008ce565b8154811062000105577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001434090806001815401808255809150506001900390600052602060002001600090919091909150556200015233836200015b640100000000026401000000009004565b50505062000a5f565b600080606060006200017d3387620003c5640100000000026401000000009004565b92506002600084815260200190815260200160002054905060008114156200031e57600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506005829080600181540180825580915050600190039060005260206000200160009091909190915090805190602001906200027c9291906200071f565b50600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001600580549050620003329190620008ce565b90508060026000858152602001908152602001600020819055506005818154811062000387577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018590806001815401808255809150506001900390600052602060002001600090919091909150556001935050505092915050565b6000806000602867ffffffffffffffff8111156200040c577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156200043f5781602001600182028036833780820191505090505b50905060008560405160200162000457919062000825565b604051602081830303815290604052905060005b60148110156200057857818181518110620004af577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283828151811062000533577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806200056f9062000987565b9150506200046b565b50846040516020016200058c919062000825565b604051602081830303815290604052905060005b6014811015620006bb57818181518110620005e4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002836014836200063e919062000871565b8151811062000676577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620006b29062000987565b915050620005a0565b50600282604051620006ce919062000842565b602060405180830381855afa158015620006ec573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190620007119190620007a7565b925082935050505092915050565b8280548282559060005260206000209081019282156200075e579160200282015b828111156200075d57825182559160200191906001019062000740565b5b5090506200076d919062000771565b5090565b5b808211156200078c57600081600090555060010162000772565b5090565b600081519050620007a18162000a45565b92915050565b600060208284031215620007ba57600080fd5b6000620007ca8482850162000790565b91505092915050565b620007e8620007e28262000909565b620009d5565b82525050565b6000620007fb826200085b565b62000807818562000866565b93506200081981856020860162000951565b80840191505092915050565b6000620008338284620007d3565b60148201915081905092915050565b6000620008508284620007ee565b915081905092915050565b600081519050919050565b600081905092915050565b60006200087e8262000947565b91506200088b8362000947565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620008c357620008c2620009fd565b5b828201905092915050565b6000620008db8262000947565b9150620008e88362000947565b925082821015620008fe57620008fd620009fd565b5b828203905092915050565b6000620009168262000927565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156200097157808201518184015260208101905062000954565b8381111562000981576000848401525b50505050565b6000620009948262000947565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620009ca57620009c9620009fd565b5b600182019050919050565b6000620009e282620009e9565b9050919050565b6000620009f68262000a2c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006c0100000000000000000000000082029050919050565b62000a50816200091d565b811462000a5c57600080fd5b50565b6112a88062000a6f6000396000f3fe608060405234801561001057600080fd5b50600436106100bb576000357c0100000000000000000000000000000000000000000000000000000000900480638c661b36116100835780638c661b361461018a5780638da5cb5b146101ba578063ae47ece0146101d8578063d0e95db114610208578063ff7496b414610238576100bb565b806301ffc9a7146100c057806322168e4f146100f057806350e0c6d3146101205780637d64bf1d14610150578063880ad0af14610180575b600080fd5b6100da60048036038101906100d59190610d2c565b610268565b6040516100e79190610f2c565b60405180910390f35b61010a60048036038101906101059190610cc7565b61026f565b6040516101179190610eef565b60405180910390f35b61013a60048036038101906101359190610c26565b61031b565b6040516101479190610f82565b60405180910390f35b61016a60048036038101906101659190610cc7565b610367565b6040516101779190610eef565b60405180910390f35b610188610413565b005b6101a4600480360381019061019f9190610c4f565b61044e565b6040516101b19190610f0a565b60405180910390f35b6101c2610512565b6040516101cf9190610eef565b60405180910390f35b6101f260048036038101906101ed9190610c8b565b610536565b6040516101ff9190610f2c565b60405180910390f35b610222600480360381019061021d9190610c26565b610789565b60405161022f9190610f82565b60405180910390f35b610252600480360381019061024d9190610d55565b6107d5565b60405161025f9190610f47565b60405180910390f35b6000919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106102e8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106103e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044590610f62565b60405180910390fd5b606060008061045d8585610812565b915060026000838152602001908152602001600020549050600581815481106104af577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200180548060200260200160405190810160405280929190818152602001828054801561050357602002820191906000526020600020905b8154815260200190600101908083116104ef575b50505050509250505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080606060006105473387610812565b92506002600084815260200190815260200160002054905060008114156106e557600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600582908060018154018082558091505060019003906000526020600020016000909190919091509080519060200190610643929190610b53565b50600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60016005805490506106f79190611053565b90508060026000858152602001908152602001600020819055506005818154811061074b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018590806001815401808255809150506001900390600052602060002001600090919091909150556001935050505092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600582815481106107e557600080fd5b9060005260206000200181815481106107fd57600080fd5b90600052602060002001600091509150505481565b6000806000602867ffffffffffffffff811115610858577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561088a5781602001600182028036833780820191505090505b5090506000856040516020016108a09190610ebd565b604051602081830303815290604052905060005b60148110156109bb578181815181106108f6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838281518110610979577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806109b390611138565b9150506108b4565b50846040516020016109cd9190610ebd565b604051602081830303815290604052905060005b6014811015610af457818181518110610a23577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283601483610a7b9190610ffd565b81518110610ab2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610aec90611138565b9150506109e1565b50600282604051610b059190610ed8565b602060405180830381855afa158015610b22573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610b459190610d03565b925082935050505092915050565b828054828255906000526020600020908101928215610b8f579160200282015b82811115610b8e578251825591602001919060010190610b73565b5b509050610b9c9190610ba0565b5090565b5b80821115610bb9576000816000905550600101610ba1565b5090565b600081359050610bcc81611216565b92915050565b600081359050610be18161122d565b92915050565b600081519050610bf68161122d565b92915050565b600081359050610c0b81611244565b92915050565b600081359050610c208161125b565b92915050565b600060208284031215610c3857600080fd5b6000610c4684828501610bbd565b91505092915050565b60008060408385031215610c6257600080fd5b6000610c7085828601610bbd565b9250506020610c8185828601610bbd565b9150509250929050565b60008060408385031215610c9e57600080fd5b6000610cac85828601610bbd565b9250506020610cbd85828601610bd2565b9150509250929050565b60008060408385031215610cda57600080fd5b6000610ce885828601610bbd565b9250506020610cf985828601610c11565b9150509250929050565b600060208284031215610d1557600080fd5b6000610d2384828501610be7565b91505092915050565b600060208284031215610d3e57600080fd5b6000610d4c84828501610bfc565b91505092915050565b60008060408385031215610d6857600080fd5b6000610d7685828601610c11565b9250506020610d8785828601610c11565b9150509250929050565b6000610d9d8383610e3c565b60208301905092915050565b610db281611087565b82525050565b610dc9610dc482611087565b611181565b82525050565b6000610dda82610fad565b610de48185610fd0565b9350610def83610f9d565b8060005b83811015610e20578151610e078882610d91565b9750610e1283610fc3565b925050600181019050610df3565b5085935050505092915050565b610e3681611099565b82525050565b610e45816110a5565b82525050565b610e54816110a5565b82525050565b6000610e6582610fb8565b610e6f8185610fe1565b9350610e7f818560208601611105565b80840191505092915050565b6000610e98601783610fec565b9150610ea3826111ed565b602082019050919050565b610eb7816110fb565b82525050565b6000610ec98284610db8565b60148201915081905092915050565b6000610ee48284610e5a565b915081905092915050565b6000602082019050610f046000830184610da9565b92915050565b60006020820190508181036000830152610f248184610dcf565b905092915050565b6000602082019050610f416000830184610e2d565b92915050565b6000602082019050610f5c6000830184610e4b565b92915050565b60006020820190508181036000830152610f7b81610e8b565b9050919050565b6000602082019050610f976000830184610eae565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611008826110fb565b9150611013836110fb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611048576110476111a5565b5b828201905092915050565b600061105e826110fb565b9150611069836110fb565b92508282101561107c5761107b6111a5565b5b828203905092915050565b6000611092826110db565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015611123578082015181840152602081019050611108565b83811115611132576000848401525b50505050565b6000611143826110fb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611176576111756111a5565b5b600182019050919050565b600061118c82611193565b9050919050565b600061119e826111d4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006c0100000000000000000000000082029050919050565b7f6f776e65722063616e6e6f74206265206368616e676564000000000000000000600082015250565b61121f81611087565b811461122a57600080fd5b50565b611236816110a5565b811461124157600080fd5b50565b61124d816110af565b811461125857600080fd5b50565b611264816110fb565b811461126f57600080fd5b5056fea2646970667358221220e7c14f2d021c99f1d7c83ca73fe5248e74c708e052384ac01d1b14bc6cf971f264736f6c63430008030033 -\ No newline at end of file +60806040523480156200001157600080fd5b5060405162001c6038038062001c60833981810160405281019062000037919062000766565b606060048190806001815401808255809150506001900390600052602060002001600090919091909150908051906020019062000076929190620006de565b50600460016004805490506200008d91906200088d565b81548110620000c5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001434090806001815401808255809150506001900390600052602060002001600090919091909150556200011233836200011b640100000000026401000000009004565b50505062000a1e565b600080606060006200013d338762000384640100000000026401000000009004565b9250600160008481526020019081526020016000205490506000811415620002dd57600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004829080600181540180825580915050600190039060005260206000200160009091909190915090805190602001906200023c929190620006de565b506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6001600480549050620002f191906200088d565b90508060016000858152602001908152602001600020819055506004818154811062000346577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018590806001815401808255809150506001900390600052602060002001600090919091909150556001935050505092915050565b6000806000602867ffffffffffffffff811115620003cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015620003fe5781602001600182028036833780820191505090505b509050600085604051602001620004169190620007e4565b604051602081830303815290604052905060005b601481101562000537578181815181106200046e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838281518110620004f2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806200052e9062000946565b9150506200042a565b50846040516020016200054b9190620007e4565b604051602081830303815290604052905060005b60148110156200067a57818181518110620005a3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283601483620005fd919062000830565b8151811062000635577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620006719062000946565b9150506200055f565b506002826040516200068d919062000801565b602060405180830381855afa158015620006ab573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190620006d0919062000766565b925082935050505092915050565b8280548282559060005260206000209081019282156200071d579160200282015b828111156200071c578251825591602001919060010190620006ff565b5b5090506200072c919062000730565b5090565b5b808211156200074b57600081600090555060010162000731565b5090565b600081519050620007608162000a04565b92915050565b6000602082840312156200077957600080fd5b600062000789848285016200074f565b91505092915050565b620007a7620007a182620008c8565b62000994565b82525050565b6000620007ba826200081a565b620007c6818562000825565b9350620007d881856020860162000910565b80840191505092915050565b6000620007f2828462000792565b60148201915081905092915050565b60006200080f8284620007ad565b915081905092915050565b600081519050919050565b600081905092915050565b60006200083d8262000906565b91506200084a8362000906565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620008825762000881620009bc565b5b828201905092915050565b60006200089a8262000906565b9150620008a78362000906565b925082821015620008bd57620008bc620009bc565b5b828203905092915050565b6000620008d582620008e6565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156200093057808201518184015260208101905062000913565b8381111562000940576000848401525b50505050565b6000620009538262000906565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620009895762000988620009bc565b5b600182019050919050565b6000620009a182620009a8565b9050919050565b6000620009b582620009eb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006c0100000000000000000000000082029050919050565b62000a0f81620008dc565b811462000a1b57600080fd5b50565b6112328062000a2e6000396000f3fe608060405234801561001057600080fd5b50600436106100a5576000357c0100000000000000000000000000000000000000000000000000000000900480638c661b36116100785780638c661b361461016a578063ae47ece01461019a578063d0e95db1146101ca578063ff7496b4146101fa576100a5565b806301ffc9a7146100aa57806322168e4f146100da57806350e0c6d31461010a5780637d64bf1d1461013a575b600080fd5b6100c460048036038101906100bf9190610d33565b61022a565b6040516100d19190610f10565b60405180910390f35b6100f460048036038101906100ef9190610cce565b6102d8565b6040516101019190610ed3565b60405180910390f35b610124600480360381019061011f9190610c2d565b610383565b6040516101319190610f46565b60405180910390f35b610154600480360381019061014f9190610cce565b6103ce565b6040516101619190610ed3565b60405180910390f35b610184600480360381019061017f9190610c56565b61047a565b6040516101919190610eee565b60405180910390f35b6101b460048036038101906101af9190610c92565b61053e565b6040516101c19190610f10565b60405180910390f35b6101e460048036038101906101df9190610c2d565b610790565b6040516101f19190610f46565b60405180910390f35b610214600480360381019061020f9190610d5c565b6107dc565b6040516102219190610f2b565b60405180910390f35b60006327beb9107c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561027f57600190506102d3565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156102d257600190506102d3565b5b919050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610350577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610447577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60606000806104898585610819565b915060016000838152602001908152602001600020549050600481815481106104db577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200180548060200260200160405190810160405280929190818152602001828054801561052f57602002820191906000526020600020905b81548152602001906001019080831161051b575b50505050509250505092915050565b6000806060600061054f3387610819565b92506001600084815260200190815260200160002054905060008114156106ec57600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060048290806001815401808255809150506001900390600052602060002001600090919091909150908051906020019061064b929190610b5a565b506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020869080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60016004805490506106fe9190611006565b905080600160008581526020019081526020016000208190555060048181548110610752577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018590806001815401808255809150506001900390600052602060002001600090919091909150556001935050505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600482815481106107ec57600080fd5b90600052602060002001818154811061080457600080fd5b90600052602060002001600091509150505481565b6000806000602867ffffffffffffffff81111561085f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156108915781602001600182028036833780820191505090505b5090506000856040516020016108a79190610ea1565b604051602081830303815290604052905060005b60148110156109c2578181815181106108fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838281518110610980577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806109ba906110eb565b9150506108bb565b50846040516020016109d49190610ea1565b604051602081830303815290604052905060005b6014811015610afb57818181518110610a2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283601483610a829190610fb0565b81518110610ab9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610af3906110eb565b9150506109e8565b50600282604051610b0c9190610ebc565b602060405180830381855afa158015610b29573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610b4c9190610d0a565b925082935050505092915050565b828054828255906000526020600020908101928215610b96579160200282015b82811115610b95578251825591602001919060010190610b7a565b5b509050610ba39190610ba7565b5090565b5b80821115610bc0576000816000905550600101610ba8565b5090565b600081359050610bd3816111a0565b92915050565b600081359050610be8816111b7565b92915050565b600081519050610bfd816111b7565b92915050565b600081359050610c12816111ce565b92915050565b600081359050610c27816111e5565b92915050565b600060208284031215610c3f57600080fd5b6000610c4d84828501610bc4565b91505092915050565b60008060408385031215610c6957600080fd5b6000610c7785828601610bc4565b9250506020610c8885828601610bc4565b9150509250929050565b60008060408385031215610ca557600080fd5b6000610cb385828601610bc4565b9250506020610cc485828601610bd9565b9150509250929050565b60008060408385031215610ce157600080fd5b6000610cef85828601610bc4565b9250506020610d0085828601610c18565b9150509250929050565b600060208284031215610d1c57600080fd5b6000610d2a84828501610bee565b91505092915050565b600060208284031215610d4557600080fd5b6000610d5384828501610c03565b91505092915050565b60008060408385031215610d6f57600080fd5b6000610d7d85828601610c18565b9250506020610d8e85828601610c18565b9150509250929050565b6000610da48383610e43565b60208301905092915050565b610db98161103a565b82525050565b610dd0610dcb8261103a565b611134565b82525050565b6000610de182610f71565b610deb8185610f94565b9350610df683610f61565b8060005b83811015610e27578151610e0e8882610d98565b9750610e1983610f87565b925050600181019050610dfa565b5085935050505092915050565b610e3d8161104c565b82525050565b610e4c81611058565b82525050565b610e5b81611058565b82525050565b6000610e6c82610f7c565b610e768185610fa5565b9350610e868185602086016110b8565b80840191505092915050565b610e9b816110ae565b82525050565b6000610ead8284610dbf565b60148201915081905092915050565b6000610ec88284610e61565b915081905092915050565b6000602082019050610ee86000830184610db0565b92915050565b60006020820190508181036000830152610f088184610dd6565b905092915050565b6000602082019050610f256000830184610e34565b92915050565b6000602082019050610f406000830184610e52565b92915050565b6000602082019050610f5b6000830184610e92565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b6000610fbb826110ae565b9150610fc6836110ae565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610ffb57610ffa611158565b5b828201905092915050565b6000611011826110ae565b915061101c836110ae565b92508282101561102f5761102e611158565b5b828203905092915050565b60006110458261108e565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156110d65780820151818401526020810190506110bb565b838111156110e5576000848401525b50505050565b60006110f6826110ae565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561112957611128611158565b5b600182019050919050565b600061113f82611146565b9050919050565b600061115182611187565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006c0100000000000000000000000082029050919050565b6111a98161103a565b81146111b457600080fd5b50565b6111c081611058565b81146111cb57600080fd5b50565b6111d781611062565b81146111e257600080fd5b50565b6111ee816110ae565b81146111f957600080fd5b5056fea2646970667358221220b040785beb108ff46e86fa77d187a043667c637a67c22111c4bb08e002e764e464736f6c63430008030033 +\ No newline at end of file diff --git a/solidity/AddressDeclarator.json b/solidity/AddressDeclarator.json @@ -1 +1 @@ -[{"inputs":[{"internalType":"bytes32","name":"_initialDescription","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"contents","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declarationAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"}],"name":"declarationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declaratorAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"}],"name":"declaratorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}] +[{"inputs":[{"internalType":"bytes32","name":"_initialDescription","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_declarator","type":"address"},{"indexed":false,"internalType":"address","name":"_subject","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"DeclarationAdded","type":"event"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"contents","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declarationAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"}],"name":"declarationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declaratorAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"}],"name":"declaratorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}] diff --git a/solidity/AddressDeclarator.sol b/solidity/AddressDeclarator.sol @@ -4,10 +4,6 @@ pragma solidity >0.6.11; contract AddressDeclarator { - // EIP 173 - address public owner; - address newOwner; - mapping( address => address[] ) declarationIndex; mapping( bytes32 => uint256 ) declarationContentIndex; mapping( address => address[] ) declarator; @@ -19,22 +15,11 @@ contract AddressDeclarator { constructor(bytes32 _initialDescription) public { bytes32[] memory foundation; - owner = msg.sender; contents.push(foundation); contents[contents.length-1].push(blockhash(block.number)); addDeclaration(msg.sender, _initialDescription); } - - // EIP 172 - function transferOwnership() public { - revert("owner cannot be changed"); - } - - // EIP-165 - function supportsInterface(bytes4 interfaceID) public view returns ( bool ) { - return false; - } function toReference(address _declarator, address _subject) private pure returns ( bytes32 ) { bytes32 k; @@ -98,4 +83,14 @@ contract AddressDeclarator { function declarationAddressAt(address _declarator, uint256 _idx) public view returns ( address ) { return declarationIndex[_declarator][_idx]; } + + // Implements EIP165 + function supportsInterface(bytes4 _sum) public pure returns (bool) { + if (_sum == 0x27beb910) { // Implements Declarator + return true; + } + if (_sum == 0x01ffc9a7) { // EIP165 + return true; + } + } } diff --git a/solidity/TokenUniqueSymbolIndex.bin b/solidity/TokenUniqueSymbolIndex.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c91806100c46000396000f3fe608060405234801561001057600080fd5b50600436106100b0576000357c0100000000000000000000000000000000000000000000000000000000900480637ef50298116100835780637ef50298146101635780638da5cb5b14610193578063bb34534c146101b1578063e2095c07146101e1578063f2fde38b14610211576100b0565b806301ffc9a7146100b55780630a3b0a4f146100e55780630cbb0f83146101155780634420e48614610133575b600080fd5b6100cf60048036038101906100ca919061085f565b610241565b6040516100dc9190610982565b60405180910390f35b6100ff60048036038101906100fa91906107e4565b610331565b60405161010c9190610982565b60405180910390f35b61011d610343565b60405161012a919061099d565b60405180910390f35b61014d600480360381019061014891906107e4565b61035c565b60405161015a9190610982565b60405180910390f35b61017d6004803603810190610178919061080d565b6105d0565b60405161018a919061099d565b60405180910390f35b61019b6105e8565b6040516101a89190610967565b60405180910390f35b6101cb60048036038101906101c6919061080d565b61060c565b6040516101d89190610967565b60405180910390f35b6101fb60048036038101906101f691906108c9565b610692565b6040516102089190610967565b60405180910390f35b61022b600480360381019061022691906107e4565b61070c565b6040516102389190610982565b60405180910390f35b600063325d15e27c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156102b5576001905061032c565b6301ffc9a77c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415610327576001905061032c565b600090505b919050565b600061033c8261035c565b9050919050565b600060016002805490506103579190610a7a565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b757600080fd5b60606000806000808673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f95d89b41000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104669190610950565b6000604051808303816000865af19150503d80600081146104a3576040519150601f19603f3d011682016040523d82523d6000602084013e6104a8565b606091505b5091509150816104b757600080fd5b808060200190518101906104cb9190610888565b94506002856040516104dd9190610950565b602060405180830381855afa1580156104fa573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061051d9190610836565b9350600160008581526020019081526020016000205492506000831461054257600080fd5b60028054905060016000868152602001908152602001600020819055506002879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600195505050505050919050565b60016020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600160008481526020019081526020016000205490506002818154811061065f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b600060026001836106a39190610a24565b815481106106da577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000919050565b6000610726610721846109dd565b6109b8565b90508281526020810184848401111561073e57600080fd5b610749848285610b2c565b509392505050565b60008135905061076081610bff565b92915050565b60008135905061077581610c16565b92915050565b60008151905061078a81610c16565b92915050565b60008135905061079f81610c2d565b92915050565b600082601f8301126107b657600080fd5b81516107c6848260208601610713565b91505092915050565b6000813590506107de81610c44565b92915050565b6000602082840312156107f657600080fd5b600061080484828501610751565b91505092915050565b60006020828403121561081f57600080fd5b600061082d84828501610766565b91505092915050565b60006020828403121561084857600080fd5b60006108568482850161077b565b91505092915050565b60006020828403121561087157600080fd5b600061087f84828501610790565b91505092915050565b60006020828403121561089a57600080fd5b600082015167ffffffffffffffff8111156108b457600080fd5b6108c0848285016107a5565b91505092915050565b6000602082840312156108db57600080fd5b60006108e9848285016107cf565b91505092915050565b6108fb81610aae565b82525050565b61090a81610ac0565b82525050565b600061091b82610a0e565b6109258185610a19565b9350610935818560208601610b2c565b80840191505092915050565b61094a81610b22565b82525050565b600061095c8284610910565b915081905092915050565b600060208201905061097c60008301846108f2565b92915050565b60006020820190506109976000830184610901565b92915050565b60006020820190506109b26000830184610941565b92915050565b60006109c26109d3565b90506109ce8282610b5f565b919050565b6000604051905090565b600067ffffffffffffffff8211156109f8576109f7610bbf565b5b610a0182610bee565b9050602081019050919050565b600081519050919050565b600081905092915050565b6000610a2f82610b22565b9150610a3a83610b22565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610a6f57610a6e610b90565b5b828201905092915050565b6000610a8582610b22565b9150610a9083610b22565b925082821015610aa357610aa2610b90565b5b828203905092915050565b6000610ab982610b02565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015610b4a578082015181840152602081019050610b2f565b83811115610b59576000848401525b50505050565b610b6882610bee565b810181811067ffffffffffffffff82111715610b8757610b86610bbf565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b610c0881610aae565b8114610c1357600080fd5b50565b610c1f81610acc565b8114610c2a57600080fd5b50565b610c3681610ad6565b8114610c4157600080fd5b50565b610c4d81610b22565b8114610c5857600080fd5b5056fea2646970667358221220547f9f9842851f369ae878b1953b4c27a4cf6fed932954194d0eaab37e7f27a664736f6c63430008030033 -\ No newline at end of file +608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fb3806100c46000396000f3fe608060405234801561001057600080fd5b50600436106100bb576000357c0100000000000000000000000000000000000000000000000000000000900480637ef50298116100835780637ef502981461018c5780638da5cb5b146101bc578063bb34534c146101da578063e2095c071461020a578063f2fde38b1461023a576100bb565b806301ffc9a7146100c05780630a3b0a4f146100f05780630cbb0f83146101205780634420e4861461013e57806379ba50971461016e575b600080fd5b6100da60048036038101906100d59190610b81565b61026a565b6040516100e79190610ca4565b60405180910390f35b61010a60048036038101906101059190610b06565b6103c2565b6040516101179190610ca4565b60405180910390f35b6101286103d4565b6040516101359190610cbf565b60405180910390f35b61015860048036038101906101539190610b06565b6103ed565b6040516101659190610ca4565b60405180910390f35b6101766106b6565b6040516101839190610ca4565b60405180910390f35b6101a660048036038101906101a19190610b2f565b610858565b6040516101b39190610cbf565b60405180910390f35b6101c4610870565b6040516101d19190610c89565b60405180910390f35b6101f460048036038101906101ef9190610b2f565b610894565b6040516102019190610c89565b60405180910390f35b610224600480360381019061021f9190610beb565b61091a565b6040516102319190610c89565b60405180910390f35b610254600480360381019061024f9190610b06565b610994565b6040516102619190610ca4565b60405180910390f35b600063cbdb05c77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156102bf57600190506103bd565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561031257600190506103bd565b639493f8b27c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561036557600190506103bd565b6337a47be47c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156103b857600190506103bd565b600090505b919050565b60006103cd826103ed565b9050919050565b600060016003805490506103e89190610d9c565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461044857600080fd5b60606000806000808673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f95d89b41000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104f79190610c72565b6000604051808303816000865af19150503d8060008114610534576040519150601f19603f3d011682016040523d82523d6000602084013e610539565b606091505b50915091508161054857600080fd5b8080602001905181019061055c9190610baa565b945060028560405161056e9190610c72565b602060405180830381855afa15801561058b573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906105ae9190610b58565b935060026000858152602001908152602001600020549250600083146105d357600080fd5b60038054905060026000868152602001908152602001600020819055506003879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016003805490506106659190610d9c565b8773ffffffffffffffffffffffffffffffffffffffff167f9cc987676e7d63379f176ea50df0ae8d2d9d1141d1231d4ce15b5965f73c943060405160405180910390a3600195505050505050919050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461071357600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35090565b60026020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060026000848152602001908152602001600020549050600381815481106108e7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000600360018361092b9190610d46565b81548110610962577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109ef57600080fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b6000610a48610a4384610cff565b610cda565b905082815260208101848484011115610a6057600080fd5b610a6b848285610e4e565b509392505050565b600081359050610a8281610f21565b92915050565b600081359050610a9781610f38565b92915050565b600081519050610aac81610f38565b92915050565b600081359050610ac181610f4f565b92915050565b600082601f830112610ad857600080fd5b8151610ae8848260208601610a35565b91505092915050565b600081359050610b0081610f66565b92915050565b600060208284031215610b1857600080fd5b6000610b2684828501610a73565b91505092915050565b600060208284031215610b4157600080fd5b6000610b4f84828501610a88565b91505092915050565b600060208284031215610b6a57600080fd5b6000610b7884828501610a9d565b91505092915050565b600060208284031215610b9357600080fd5b6000610ba184828501610ab2565b91505092915050565b600060208284031215610bbc57600080fd5b600082015167ffffffffffffffff811115610bd657600080fd5b610be284828501610ac7565b91505092915050565b600060208284031215610bfd57600080fd5b6000610c0b84828501610af1565b91505092915050565b610c1d81610dd0565b82525050565b610c2c81610de2565b82525050565b6000610c3d82610d30565b610c478185610d3b565b9350610c57818560208601610e4e565b80840191505092915050565b610c6c81610e44565b82525050565b6000610c7e8284610c32565b915081905092915050565b6000602082019050610c9e6000830184610c14565b92915050565b6000602082019050610cb96000830184610c23565b92915050565b6000602082019050610cd46000830184610c63565b92915050565b6000610ce4610cf5565b9050610cf08282610e81565b919050565b6000604051905090565b600067ffffffffffffffff821115610d1a57610d19610ee1565b5b610d2382610f10565b9050602081019050919050565b600081519050919050565b600081905092915050565b6000610d5182610e44565b9150610d5c83610e44565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610d9157610d90610eb2565b5b828201905092915050565b6000610da782610e44565b9150610db283610e44565b925082821015610dc557610dc4610eb2565b5b828203905092915050565b6000610ddb82610e24565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015610e6c578082015181840152602081019050610e51565b83811115610e7b576000848401525b50505050565b610e8a82610f10565b810181811067ffffffffffffffff82111715610ea957610ea8610ee1565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b610f2a81610dd0565b8114610f3557600080fd5b50565b610f4181610dee565b8114610f4c57600080fd5b50565b610f5881610df8565b8114610f6357600080fd5b50565b610f6f81610e44565b8114610f7a57600080fd5b5056fea2646970667358221220f7c74f94efff8b8cbf9923365cd4956305e9d142051ff9229ac8a3c0b81f477464736f6c63430008030033 +\ No newline at end of file diff --git a/solidity/TokenUniqueSymbolIndex.json b/solidity/TokenUniqueSymbolIndex.json @@ -1 +1 @@ -[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"add","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"addressOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"entry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"entryCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"register","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"registry","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interfaceCode","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_toAddress","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addedAccount","type":"address"},{"indexed":true,"internalType":"uint256","name":"accountIndex","type":"uint256"}],"name":"AddressAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"add","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"addressOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"entry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"entryCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"register","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"registry","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] diff --git a/solidity/TokenUniqueSymbolIndex.sol b/solidity/TokenUniqueSymbolIndex.sol @@ -11,32 +11,19 @@ contract TokenUniqueSymbolIndex { mapping ( bytes32 => uint256 ) public registry; address[] tokens; + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); // EIP173 + event AddressAdded(address indexed addedAccount, uint256 indexed accountIndex); // AccountsIndex + constructor() public { owner = msg.sender; tokens.push(address(0)); } - // EIP 165 - function supportsInterface(bytes4 _interfaceCode) public pure returns ( bool ) { - if (_interfaceCode == bytes4(0x325d15e2)) { - return true; - } - if (_interfaceCode == bytes4(0x01ffc9a7)) { - return true; - } - return false; - } - // Implements AccountsIndex function entry(uint256 _idx) public view returns ( address ) { return tokens[_idx + 1]; } - // EIP 173 - function transferOwnership(address _toAddress) public returns (bool) { - require(ms - } - // Implements Registry function addressOf(bytes32 _key) public view returns ( address ) { uint256 idx; @@ -63,6 +50,7 @@ contract TokenUniqueSymbolIndex { registry[token_symbol_key] = tokens.length; tokens.push(_token); + emit AddressAdded(_token, tokens.length - 1); return true; } @@ -76,4 +64,39 @@ contract TokenUniqueSymbolIndex { function entryCount() public view returns ( uint256 ) { return tokens.length - 1; } + + // Implements EIP173 + function transferOwnership(address _newOwner) public returns (bool) { + require(msg.sender == owner); + newOwner = _newOwner; + } + + // Implements OwnedAccepter + function acceptOwnership() public returns (bool) { + address oldOwner; + + require(msg.sender == newOwner); + oldOwner = owner; + owner = newOwner; + newOwner = address(0); + emit OwnershipTransferred(oldOwner, owner); + } + + + // Implements EIP165 + function supportsInterface(bytes4 _sum) public pure returns (bool) { + if (_sum == 0xcbdb05c7) { // AccountsIndex + return true; + } + if (_sum == 0x01ffc9a7) { // EIP165 + return true; + } + if (_sum == 0x9493f8b2) { // EIP173 + return true; + } + if (_sum == 0x37a47be4) { // OwnedAccepter + return true; + } + return false; + } }