From 732466de2779846791d65bfb88a793a0a1e30fcc Mon Sep 17 00:00:00 2001 From: nolash Date: Sat, 13 Nov 2021 07:13:27 +0100 Subject: [PATCH] Rehabilitate tests --- .../data/AccountsIndexAddressDeclarator.bin | 2 +- .../data/AccountsIndexAddressDeclarator.json | 2 +- .../okota/data/RegistryAddressDeclarator.bin | 1 + ...okenUniqueSymbolIndexAddressDeclarator.bin | 2 +- ...kenUniqueSymbolIndexAddressDeclarator.json | 2 +- python/okota/token_index/index.py | 8 +- python/okota/token_index/interface.py | 113 ++---------------- python/requirements.txt | 16 +-- python/run_tests.sh | 14 +++ python/setup.cfg | 2 +- python/tests/test_accounts_index.py | 17 ++- python/tests/test_registry.py | 1 + python/tests/test_tokenindex.py | 22 +++- solidity/AccountsIndexAddressDeclarator.sol | 30 ++++- ...okenUniqueSymbolIndexAddressDeclarator.sol | 27 ++++- 15 files changed, 123 insertions(+), 136 deletions(-) create mode 100644 python/okota/data/RegistryAddressDeclarator.bin create mode 100644 python/run_tests.sh diff --git a/python/okota/data/AccountsIndexAddressDeclarator.bin b/python/okota/data/AccountsIndexAddressDeclarator.bin index 12021e4..7c3bed5 100644 --- a/python/okota/data/AccountsIndexAddressDeclarator.bin +++ b/python/okota/data/AccountsIndexAddressDeclarator.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b506040516200126738038062001267833981810160405281019062000037919062000235565b606033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516020016200012e91906200030f565b6040516020818303038152906040529050600281604051620001519190620002f6565b602060405180830381855afa1580156200016f573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200019491906200027c565b600181905550600560009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620003ef565b6000815190506200021881620003bb565b92915050565b6000815190506200022f81620003d5565b92915050565b600080604083850312156200024f576200024e620003b6565b5b60006200025f8582860162000207565b9250506020620002728582860162000207565b9150509250929050565b600060208284031215620002955762000294620003b6565b5b6000620002a5848285016200021e565b91505092915050565b620002b98162000342565b82525050565b6000620002cc826200032c565b620002d8818562000337565b9350620002ea81856020860162000380565b80840191505092915050565b6000620003048284620002bf565b915081905092915050565b6000602082019050620003266000830184620002ae565b92915050565b600081519050919050565b600081905092915050565b60006200034f8262000360565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b83811015620003a057808201518184015260208101905062000383565b83811115620003b0576000848401525b50505050565b600080fd5b620003c68162000342565b8114620003d257600080fd5b50565b620003e08162000356565b8114620003ec57600080fd5b50565b610e6880620003ff6000396000f3fe608060405234801561001057600080fd5b50600436106100c6576000357c01000000000000000000000000000000000000000000000000000000009004806379ba50971161008e57806379ba5097146101975780638da5cb5b146101b55780639d76ea58146101d3578063da2824a8146101f1578063e2095c0714610221578063f2fde38b14610251576100c6565b80630a3b0a4f146100cb5780630cbb0f83146100fb578063370f91fb146101195780633ef25013146101375780635ae06f7e14610167575b600080fd5b6100e560048036038101906100e09190610b24565b610281565b6040516100f29190610c46565b60405180910390f35b610103610610565b6040516101109190610c61565b60405180910390f35b610121610629565b60405161012e9190610c02565b60405180910390f35b610151600480360381019061014c9190610b24565b61064f565b60405161015e9190610c46565b60405180910390f35b610181600480360381019061017c9190610b24565b61069a565b60405161018e9190610c46565b60405180910390f35b61019f61074e565b6040516101ac9190610c46565b60405180910390f35b6101bd6108f9565b6040516101ca9190610c02565b60405180910390f35b6101db61091f565b6040516101e89190610c02565b60405180910390f35b61020b60048036038101906102069190610b24565b610943565b6040516102189190610c46565b60405180910390f35b61023b60048036038101906102369190610b51565b610a00565b6040516102489190610c02565b60405180910390f35b61026b60048036038101906102669190610b24565b610a54565b6040516102789190610c46565b60405180910390f35b60008060606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166102de57600080fd5b6000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461032a57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1685600154604051602401610378929190610c1d565b6040516020818303038152906040527fae47ece0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516104029190610beb565b6000604051808303816000865af19150503d806000811461043f576040519150601f19603f3d011682016040523d82523d6000602084013e610444565b606091505b5080935081945050508261045757600080fd5b60017f01000000000000000000000000000000000000000000000000000000000000000282601f8151811061048f5761048e610dd0565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461050557600080fd5b60016005805490506105179190610ce8565b905080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506005859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808573ffffffffffffffffffffffffffffffffffffffff167f9cc987676e7d63379f176ea50df0ae8d2d9d1141d1231d4ce15b5965f73c943060405160405180910390a360019350505050919050565b600060016005805490506106249190610ce8565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b60003373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106f657600080fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560019050919050565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107ab57600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600191505090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099f57600080fd5b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60006005600183610a119190610c92565b81548110610a2257610a21610dd0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ab057600080fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600081359050610b0981610e04565b92915050565b600081359050610b1e81610e1b565b92915050565b600060208284031215610b3a57610b39610dff565b5b6000610b4884828501610afa565b91505092915050565b600060208284031215610b6757610b66610dff565b5b6000610b7584828501610b0f565b91505092915050565b610b8781610d1c565b82525050565b610b9681610d2e565b82525050565b610ba581610d3a565b82525050565b6000610bb682610c7c565b610bc08185610c87565b9350610bd0818560208601610d6e565b80840191505092915050565b610be581610d64565b82525050565b6000610bf78284610bab565b915081905092915050565b6000602082019050610c176000830184610b7e565b92915050565b6000604082019050610c326000830185610b7e565b610c3f6020830184610b9c565b9392505050565b6000602082019050610c5b6000830184610b8d565b92915050565b6000602082019050610c766000830184610bdc565b92915050565b600081519050919050565b600081905092915050565b6000610c9d82610d64565b9150610ca883610d64565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610cdd57610cdc610da1565b5b828201905092915050565b6000610cf382610d64565b9150610cfe83610d64565b925082821015610d1157610d10610da1565b5b828203905092915050565b6000610d2782610d44565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015610d8c578082015181840152602081019050610d71565b83811115610d9b576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b610e0d81610d1c565b8114610e1857600080fd5b50565b610e2481610d64565b8114610e2f57600080fd5b5056fea2646970667358221220e9a12fd1de81e2bcbb0972ae6ad9617b5a9f3b63f3110ba56f6681ea3907456064736f6c63430008070033 \ No newline at end of file +60806040523480156200001157600080fd5b506040516200152038038062001520833981810160405281019062000037919062000235565b606033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516020016200012e91906200030f565b6040516020818303038152906040529050600281604051620001519190620002f6565b602060405180830381855afa1580156200016f573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200019491906200027c565b600181905550600560009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620003ef565b6000815190506200021881620003bb565b92915050565b6000815190506200022f81620003d5565b92915050565b600080604083850312156200024f576200024e620003b6565b5b60006200025f8582860162000207565b9250506020620002728582860162000207565b9150509250929050565b600060208284031215620002955762000294620003b6565b5b6000620002a5848285016200021e565b91505092915050565b620002b98162000342565b82525050565b6000620002cc826200032c565b620002d8818562000337565b9350620002ea81856020860162000380565b80840191505092915050565b6000620003048284620002bf565b915081905092915050565b6000602082019050620003266000830184620002ae565b92915050565b600081519050919050565b600081905092915050565b60006200034f8262000360565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b83811015620003a057808201518184015260208101905062000383565b83811115620003b0576000848401525b50505050565b600080fd5b620003c68162000342565b8114620003d257600080fd5b50565b620003e08162000356565b8114620003ec57600080fd5b50565b61112180620003ff6000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c0100000000000000000000000000000000000000000000000000000000900480635ae06f7e116100a95780639d76ea58116100835780639d76ea5814610247578063da2824a814610265578063e2095c0714610295578063f2fde38b146102c5576100ec565b80635ae06f7e146101db57806379ba50971461020b5780638da5cb5b14610229576100ec565b806301ffc9a7146100f15780630a3b0a4f146101215780630cbb0f8314610151578063370f91fb1461016f5780633ef250131461018d57806340d0acdc146101bd575b600080fd5b61010b60048036038101906101069190610d7f565b6102f5565b6040516101189190610ea1565b60405180910390f35b61013b60048036038101906101369190610d52565b6104a0565b6040516101489190610ea1565b60405180910390f35b610159610823565b6040516101669190610ed7565b60405180910390f35b61017761083c565b6040516101849190610e5d565b60405180910390f35b6101a760048036038101906101a29190610d52565b610862565b6040516101b49190610ea1565b60405180910390f35b6101c56108ad565b6040516101d29190610ebc565b60405180910390f35b6101f560048036038101906101f09190610d52565b6108b3565b6040516102029190610ea1565b60405180910390f35b610213610967565b6040516102209190610ea1565b60405180910390f35b610231610b12565b60405161023e9190610e5d565b60405180910390f35b61024f610b38565b60405161025c9190610e5d565b60405180910390f35b61027f600480360381019061027a9190610d52565b610b5c565b60405161028c9190610ea1565b60405180910390f35b6102af60048036038101906102aa9190610dac565b610c19565b6040516102bc9190610e5d565b60405180910390f35b6102df60048036038101906102da9190610d52565b610c6d565b6040516102ec9190610ea1565b60405180910390f35b600063cbdb05c77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561034a576001905061049b565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561039d576001905061049b565b639493f8b27c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156103f0576001905061049b565b6337a47be47c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415610443576001905061049b565b6380c84bd67c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415610496576001905061049b565b600090505b919050565b60008060606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166104fd57600080fd5b6000600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461054957600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1685600154604051602401610597929190610e78565b6040516020818303038152906040527fae47ece0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516106219190610e46565b6000604051808303816000865af19150503d806000811461065e576040519150601f19603f3d011682016040523d82523d6000602084013e610663565b606091505b5080935081945050508261067657600080fd5b60017f01000000000000000000000000000000000000000000000000000000000000000282601f815181106106ae576106ad611072565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461072457600080fd5b600580549050905080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506005859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808573ffffffffffffffffffffffffffffffffffffffff167f9cc987676e7d63379f176ea50df0ae8d2d9d1141d1231d4ce15b5965f73c943060405160405180910390a360019350505050919050565b600060016005805490506108379190610f5e565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b60015481565b60003373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090f57600080fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560019050919050565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109c457600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600191505090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003373ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb857600080fd5b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60006005600183610c2a9190610f08565b81548110610c3b57610c3a611072565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cc957600080fd5b81600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b600081359050610d22816110a6565b92915050565b600081359050610d37816110bd565b92915050565b600081359050610d4c816110d4565b92915050565b600060208284031215610d6857610d676110a1565b5b6000610d7684828501610d13565b91505092915050565b600060208284031215610d9557610d946110a1565b5b6000610da384828501610d28565b91505092915050565b600060208284031215610dc257610dc16110a1565b5b6000610dd084828501610d3d565b91505092915050565b610de281610f92565b82525050565b610df181610fa4565b82525050565b610e0081610fb0565b82525050565b6000610e1182610ef2565b610e1b8185610efd565b9350610e2b818560208601611010565b80840191505092915050565b610e4081611006565b82525050565b6000610e528284610e06565b915081905092915050565b6000602082019050610e726000830184610dd9565b92915050565b6000604082019050610e8d6000830185610dd9565b610e9a6020830184610df7565b9392505050565b6000602082019050610eb66000830184610de8565b92915050565b6000602082019050610ed16000830184610df7565b92915050565b6000602082019050610eec6000830184610e37565b92915050565b600081519050919050565b600081905092915050565b6000610f1382611006565b9150610f1e83611006565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610f5357610f52611043565b5b828201905092915050565b6000610f6982611006565b9150610f7483611006565b925082821015610f8757610f86611043565b5b828203905092915050565b6000610f9d82610fe6565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101561102e578082015181840152602081019050611013565b8381111561103d576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6110af81610f92565b81146110ba57600080fd5b50565b6110c681610fba565b81146110d157600080fd5b50565b6110dd81611006565b81146110e857600080fd5b5056fea2646970667358221220675a3c6692717adde8799f8602902d5c1a3d18c58447a32cd2929f8734af604064736f6c63430008070033 \ No newline at end of file diff --git a/python/okota/data/AccountsIndexAddressDeclarator.json b/python/okota/data/AccountsIndexAddressDeclarator.json index 216bec4..2b4cfd8 100644 --- a/python/okota/data/AccountsIndexAddressDeclarator.json +++ b/python/okota/data/AccountsIndexAddressDeclarator.json @@ -1 +1 @@ -[{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_addressDeclaratorAddress","type":"address"}],"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":"_account","type":"address"}],"name":"add","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"addWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addressDeclaratorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"deleteWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"entry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"entryCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"have","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] +[{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_addressDeclaratorAddress","type":"address"}],"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":"_account","type":"address"}],"name":"add","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"addWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addressDeclaratorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"deleteWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"entry","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"entryCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"have","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAddressHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}] diff --git a/python/okota/data/RegistryAddressDeclarator.bin b/python/okota/data/RegistryAddressDeclarator.bin new file mode 100644 index 0000000..12f03ad --- /dev/null +++ b/python/okota/data/RegistryAddressDeclarator.bin @@ -0,0 +1 @@ +60806040523480156200001157600080fd5b5060405162001b2638038062001b26833981810160405281019062000037919062000206565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060005b8151811015620000e05760028282815181106200009c576200009b620003bf565b5b602002602001015190806001815401808255809150506001900390600052602060002001600090919091909150558080620000d79062000342565b9150506200007a565b5081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000476565b6000620001416200013b8462000295565b6200026c565b9050808382526020820190508285602086028201111562000167576200016662000422565b5b60005b858110156200019b5781620001808882620001ef565b8452602084019350602083019250506001810190506200016a565b5050509392505050565b600081519050620001b68162000442565b92915050565b600082601f830112620001d457620001d36200041d565b5b8151620001e68482602086016200012a565b91505092915050565b60008151905062000200816200045c565b92915050565b6000806040838503121562000220576200021f6200042c565b5b60006200023085828601620001a5565b925050602083015167ffffffffffffffff81111562000254576200025362000427565b5b6200026285828601620001bc565b9150509250929050565b6000620002786200028b565b90506200028682826200030c565b919050565b6000604051905090565b600067ffffffffffffffff821115620002b357620002b2620003ee565b5b602082029050602081019050919050565b6000620002d182620002e2565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b620003178262000431565b810181811067ffffffffffffffff82111715620003395762000338620003ee565b5b80604052505050565b60006200034f8262000302565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141562000385576200038462000390565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200044d81620002c4565b81146200045957600080fd5b50565b6200046781620002d8565b81146200047357600080fd5b50565b6116a080620004866000396000f3fe608060405234801561001057600080fd5b50600436106100b0576000357c0100000000000000000000000000000000000000000000000000000000900480639648eca2116100835780639648eca214610163578063bb34534c14610193578063efb70c68146101c3578063f0f86f71146101e1578063f2fde38b14610211576100b0565b806301ffc9a7146100b557806328f2d4da146100e55780635deed44e146101155780638da5cb5b14610145575b600080fd5b6100cf60048036038101906100ca9190611281565b610241565b6040516100dc91906113b7565b60405180910390f35b6100ff60048036038101906100fa91906112ae565b610346565b60405161010c91906113d2565b60405180910390f35b61012f600480360381019061012a91906111c0565b61036a565b60405161013c91906113d2565b60405180910390f35b61014d610387565b60405161015a9190611373565b60405180910390f35b61017d600480360381019061017891906111c0565b6103ab565b60405161018a91906113d2565b60405180910390f35b6101ad60048036038101906101a891906111c0565b6103c8565b6040516101ba9190611373565b60405180910390f35b6101cb610405565b6040516101d89190611373565b60405180910390f35b6101fb60048036038101906101f6919061121a565b61042b565b60405161020891906113b7565b60405180910390f35b61022b60048036038101906102269190611193565b611086565b60405161023891906113b7565b60405180910390f35b600063bb34534c7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156102965760019050610341565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156102e95760019050610341565b639493f8b27c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561033c5760019050610341565b600090505b919050565b6002818154811061035657600080fd5b906000526020600020016000915090505481565b600060056000838152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060046000838152602001908152602001600020549050919050565b60006003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461048657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166003600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104f257600080fd5b60006060600080606060005b6002805490508160ff16101561054f578a60028260ff168154811061052657610525611582565b5b9060005260206000200154141561053c57600193505b808061054790611529565b9150506104fe565b8361058f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610586906113ed565b60405180910390fd5b602067ffffffffffffffff8111156105aa576105a96115b1565b5b6040519080825280601f01601f1916602001820160405280156105dc5781602001600182028036833780820191505090505b509150600090505b60208160ff161015610681578a8160ff166020811061060657610605611582565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002828260ff168151811061063f5761063e611582565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061067990611529565b9150506105e4565b600282604051610691919061135c565b602060405180830381855afa1580156106ae573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906106d191906111ed565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a8460405160240161071f92919061138e565b6040516020818303038152906040527fae47ece0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516107a9919061135c565b6000604051808303816000865af19150503d80600081146107e6576040519150601f19603f3d011682016040523d82523d6000602084013e6107eb565b606091505b508096508197505050856107fe57600080fd5b60017f01000000000000000000000000000000000000000000000000000000000000000285601f8151811061083657610835611582565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146108ac57600080fd5b604067ffffffffffffffff8111156108c7576108c66115b1565b5b6040519080825280601f01601f1916602001820160405280156108f95781602001600182028036833780820191505090505b509150600090505b60208160ff16101561099e57828160ff166020811061092357610922611582565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002828260ff168151811061095c5761095b611582565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061099690611529565b915050610901565b600090505b60208160ff161015610a4c57888160ff16602081106109c5576109c4611582565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002826020836109f69190611434565b60ff1681518110610a0a57610a09611582565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610a4490611529565b9150506109a3565b600282604051610a5c919061135c565b602060405180830381855afa158015610a79573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610a9c91906111ed565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a84604051602401610aea92919061138e565b6040516020818303038152906040527fae47ece0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610b74919061135c565b6000604051808303816000865af19150503d8060008114610bb1576040519150601f19603f3d011682016040523d82523d6000602084013e610bb6565b606091505b50809650819750505085610bc957600080fd5b60017f01000000000000000000000000000000000000000000000000000000000000000285601f81518110610c0157610c00611582565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610c7757600080fd5b600090505b60208160ff161015610d1957828160ff1660208110610c9e57610c9d611582565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002828260ff1681518110610cd757610cd6611582565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610d1190611529565b915050610c7c565b600090505b60208160ff161015610dc757878160ff1660208110610d4057610d3f611582565b5b1a7f01000000000000000000000000000000000000000000000000000000000000000282602083610d719190611434565b60ff1681518110610d8557610d84611582565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610dbf90611529565b915050610d1e565b600282604051610dd7919061135c565b602060405180830381855afa158015610df4573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610e1791906111ed565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168a84604051602401610e6592919061138e565b6040516020818303038152906040527fae47ece0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610eef919061135c565b6000604051808303816000865af19150503d8060008114610f2c576040519150601f19603f3d011682016040523d82523d6000602084013e610f31565b606091505b50809650819750505085610f4457600080fd5b60017f01000000000000000000000000000000000000000000000000000000000000000285601f81518110610f7c57610f7b611582565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614610ff257600080fd5b89600360008d815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555088600460008d81526020019081526020016000208190555087600560008b81526020019081526020016000208190555060019650505050505050949350505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110e157600080fd5b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b6000813590506111398161160e565b92915050565b60008135905061114e81611625565b92915050565b60008151905061116381611625565b92915050565b6000813590506111788161163c565b92915050565b60008135905061118d81611653565b92915050565b6000602082840312156111a9576111a86115e0565b5b60006111b78482850161112a565b91505092915050565b6000602082840312156111d6576111d56115e0565b5b60006111e48482850161113f565b91505092915050565b600060208284031215611203576112026115e0565b5b600061121184828501611154565b91505092915050565b60008060008060808587031215611234576112336115e0565b5b60006112428782880161113f565b94505060206112538782880161112a565b93505060406112648782880161113f565b92505060606112758782880161113f565b91505092959194509250565b600060208284031215611297576112966115e0565b5b60006112a584828501611169565b91505092915050565b6000602082840312156112c4576112c36115e0565b5b60006112d28482850161117e565b91505092915050565b6112e48161146b565b82525050565b6112f38161147d565b82525050565b61130281611489565b82525050565b60006113138261140d565b61131d8185611418565b935061132d8185602086016114f6565b80840191505092915050565b6000611346600e83611423565b9150611351826115e5565b602082019050919050565b60006113688284611308565b915081905092915050565b600060208201905061138860008301846112db565b92915050565b60006040820190506113a360008301856112db565b6113b060208301846112f9565b9392505050565b60006020820190506113cc60008301846112ea565b92915050565b60006020820190506113e760008301846112f9565b92915050565b6000602082019050818103600083015261140681611339565b9050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600061143f826114e9565b915061144a836114e9565b92508260ff038211156114605761145f611553565b5b828201905092915050565b6000611476826114bf565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156115145780820151818401526020810190506114f9565b83811115611523576000848401525b50505050565b6000611534826114e9565b915060ff82141561154857611547611553565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b7f4552525f4944454e544946494552000000000000000000000000000000000000600082015250565b6116178161146b565b811461162257600080fd5b50565b61162e81611489565b811461163957600080fd5b50565b61164581611493565b811461165057600080fd5b50565b61165c816114df565b811461166757600080fd5b5056fea26469706673582212207e391e35823118b245f7d05f7b568e232851f385975fa1af77f8d21c56dcd40564736f6c63430008070033 \ No newline at end of file diff --git a/python/okota/data/TokenUniqueSymbolIndexAddressDeclarator.bin b/python/okota/data/TokenUniqueSymbolIndexAddressDeclarator.bin index 1fde786..807cca0 100644 --- a/python/okota/data/TokenUniqueSymbolIndexAddressDeclarator.bin +++ b/python/okota/data/TokenUniqueSymbolIndexAddressDeclarator.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b50604051620014543803806200145483398181016040528101906200003791906200013a565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001bf565b6000815190506200013481620001a5565b92915050565b600060208284031215620001535762000152620001a0565b5b6000620001638482850162000123565b91505092915050565b6000620001798262000180565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001b0816200016c565b8114620001bc57600080fd5b50565b61128580620001cf6000396000f3fe608060405234801561001057600080fd5b50600436106100c6576000357c01000000000000000000000000000000000000000000000000000000009004806379ba50971161008e57806379ba5097146101975780637ef50298146101b55780638da5cb5b146101e5578063bb34534c14610203578063e2095c0714610233578063f2fde38b14610263576100c6565b806301ffc9a7146100cb5780630a3b0a4f146100fb5780630cbb0f831461012b578063370f91fb146101495780634420e48614610167575b600080fd5b6100e560048036038101906100e09190610dc8565b610293565b6040516100f29190610f33565b60405180910390f35b61011560048036038101906101109190610d41565b61043e565b6040516101229190610f33565b60405180910390f35b610133610450565b6040516101409190610f4e565b60405180910390f35b610151610469565b60405161015e9190610eef565b60405180910390f35b610181600480360381019061017c9190610d41565b61048f565b60405161018e9190610f33565b60405180910390f35b61019f610935565b6040516101ac9190610f33565b60405180910390f35b6101cf60048036038101906101ca9190610d6e565b610ad7565b6040516101dc9190610f4e565b60405180910390f35b6101ed610aef565b6040516101fa9190610eef565b60405180910390f35b61021d60048036038101906102189190610d6e565b610b13565b60405161022a9190610eef565b60405180910390f35b61024d60048036038101906102489190610e3e565b610b73565b60405161025a9190610eef565b60405180910390f35b61027d60048036038101906102789190610d41565b610bc7565b60405161028a9190610f33565b60405180910390f35b600063cbdb05c77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156102e85760019050610439565b63bb34534c7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561033b5760019050610439565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561038e5760019050610439565b639493f8b27c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156103e15760019050610439565b6337a47be47c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156104345760019050610439565b600090505b919050565b60006104498261048f565b9050919050565b60006001600480549050610464919061102b565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104ea57600080fd5b60006060806000808673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f95d89b41000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516105999190610ed8565b6000604051808303816000865af19150503d80600081146105d6576040519150601f19603f3d011682016040523d82523d6000602084013e6105db565b606091505b508095508196505050846105ee57600080fd5b838060200190518101906106029190610df5565b92506002836040516106149190610ed8565b602060405180830381855afa158015610631573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906106549190610d9b565b9150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1687836040516024016106a2929190610f0a565b6040516020818303038152906040527fae47ece0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161072c9190610ed8565b6000604051808303816000865af19150503d8060008114610769576040519150601f19603f3d011682016040523d82523d6000602084013e61076e565b606091505b5080955081965050508461078157600080fd5b60017f01000000000000000000000000000000000000000000000000000000000000000284601f815181106107b9576107b8611170565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461082f57600080fd5b600360008381526020019081526020016000205490506000811461085257600080fd5b60048054905060036000848152602001908152602001600020819055506004879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016004805490506108e4919061102b565b8773ffffffffffffffffffffffffffffffffffffffff167f9cc987676e7d63379f176ea50df0ae8d2d9d1141d1231d4ce15b5965f73c943060405160405180910390a3600195505050505050919050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099257600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35090565b60036020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806003600084815260200190815260200160002054905060048181548110610b4057610b3f611170565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b60006004600183610b849190610fd5565b81548110610b9557610b94611170565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c2257600080fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b6000610c7b610c7684610f8e565b610f69565b905082815260208101848484011115610c9757610c966111d3565b5b610ca28482856110dd565b509392505050565b600081359050610cb9816111f3565b92915050565b600081359050610cce8161120a565b92915050565b600081519050610ce38161120a565b92915050565b600081359050610cf881611221565b92915050565b600082601f830112610d1357610d126111ce565b5b8151610d23848260208601610c68565b91505092915050565b600081359050610d3b81611238565b92915050565b600060208284031215610d5757610d566111dd565b5b6000610d6584828501610caa565b91505092915050565b600060208284031215610d8457610d836111dd565b5b6000610d9284828501610cbf565b91505092915050565b600060208284031215610db157610db06111dd565b5b6000610dbf84828501610cd4565b91505092915050565b600060208284031215610dde57610ddd6111dd565b5b6000610dec84828501610ce9565b91505092915050565b600060208284031215610e0b57610e0a6111dd565b5b600082015167ffffffffffffffff811115610e2957610e286111d8565b5b610e3584828501610cfe565b91505092915050565b600060208284031215610e5457610e536111dd565b5b6000610e6284828501610d2c565b91505092915050565b610e748161105f565b82525050565b610e8381611071565b82525050565b610e928161107d565b82525050565b6000610ea382610fbf565b610ead8185610fca565b9350610ebd8185602086016110dd565b80840191505092915050565b610ed2816110d3565b82525050565b6000610ee48284610e98565b915081905092915050565b6000602082019050610f046000830184610e6b565b92915050565b6000604082019050610f1f6000830185610e6b565b610f2c6020830184610e89565b9392505050565b6000602082019050610f486000830184610e7a565b92915050565b6000602082019050610f636000830184610ec9565b92915050565b6000610f73610f84565b9050610f7f8282611110565b919050565b6000604051905090565b600067ffffffffffffffff821115610fa957610fa861119f565b5b610fb2826111e2565b9050602081019050919050565b600081519050919050565b600081905092915050565b6000610fe0826110d3565b9150610feb836110d3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156110205761101f611141565b5b828201905092915050565b6000611036826110d3565b9150611041836110d3565b92508282101561105457611053611141565b5b828203905092915050565b600061106a826110b3565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156110fb5780820151818401526020810190506110e0565b8381111561110a576000848401525b50505050565b611119826111e2565b810181811067ffffffffffffffff821117156111385761113761119f565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6111fc8161105f565b811461120757600080fd5b50565b6112138161107d565b811461121e57600080fd5b50565b61122a81611087565b811461123557600080fd5b50565b611241816110d3565b811461124c57600080fd5b5056fea26469706673582212204911abf9d30c9740a3179d08f0501394ea3544c2aac045bfc4b37fff2f33cc8d64736f6c63430008070033 \ No newline at end of file +60806040523480156200001157600080fd5b50604051620016973803806200169783398181016040528101906200003791906200013a565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001bf565b6000815190506200013481620001a5565b92915050565b600060208284031215620001535762000152620001a0565b5b6000620001638482850162000123565b91505092915050565b6000620001798262000180565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001b0816200016c565b8114620001bc57600080fd5b50565b6114c880620001cf6000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c01000000000000000000000000000000000000000000000000000000009004806379ba5097116100a9578063bb34534c11610083578063bb34534c14610259578063da2824a814610289578063e2095c07146102b9578063f2fde38b146102e9576100ec565b806379ba5097146101ed5780637ef502981461020b5780638da5cb5b1461023b576100ec565b806301ffc9a7146100f15780630a3b0a4f146101215780630cbb0f8314610151578063370f91fb1461016f5780634420e4861461018d5780635ae06f7e146101bd575b600080fd5b61010b6004803603810190610106919061100b565b610319565b6040516101189190611176565b60405180910390f35b61013b60048036038101906101369190610f84565b610517565b6040516101489190611176565b60405180910390f35b610159610529565b6040516101669190611191565b60405180910390f35b610177610542565b6040516101849190611132565b60405180910390f35b6101a760048036038101906101a29190610f84565b610568565b6040516101b49190611176565b60405180910390f35b6101d760048036038101906101d29190610f84565b610a0b565b6040516101e49190611176565b60405180910390f35b6101f5610abd565b6040516102029190611176565b60405180910390f35b61022560048036038101906102209190610fb1565b610c5f565b6040516102329190611191565b60405180910390f35b610243610c77565b6040516102509190611132565b60405180910390f35b610273600480360381019061026e9190610fb1565b610c9b565b6040516102809190611132565b60405180910390f35b6102a3600480360381019061029e9190610f84565b610cfb565b6040516102b09190611176565b60405180910390f35b6102d360048036038101906102ce9190611081565b610db6565b6040516102e09190611132565b60405180910390f35b61030360048036038101906102fe9190610f84565b610e0a565b6040516103109190611176565b60405180910390f35b600063cbdb05c77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561036e5760019050610512565b63bb34534c7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156103c15760019050610512565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156104145760019050610512565b639493f8b27c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156104675760019050610512565b6337a47be47c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156104ba5760019050610512565b6380c84bd67c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561050d5760019050610512565b600090505b919050565b600061052282610568565b9050919050565b6000600160058054905061053d919061126e565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105c057600080fd5b60006060806000808673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f95d89b41000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161066f919061111b565b6000604051808303816000865af19150503d80600081146106ac576040519150601f19603f3d011682016040523d82523d6000602084013e6106b1565b606091505b508095508196505050846106c457600080fd5b838060200190518101906106d89190611038565b92506002836040516106ea919061111b565b602060405180830381855afa158015610707573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061072a9190610fde565b9150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16878360405160240161077892919061114d565b6040516020818303038152906040527fae47ece0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610802919061111b565b6000604051808303816000865af19150503d806000811461083f576040519150601f19603f3d011682016040523d82523d6000602084013e610844565b606091505b5080955081965050508461085757600080fd5b60017f01000000000000000000000000000000000000000000000000000000000000000284601f8151811061088f5761088e6113b3565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461090557600080fd5b600460008381526020019081526020016000205490506000811461092857600080fd5b60058054905060046000848152602001908152602001600020819055506005879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005805490506109ba919061126e565b8773ffffffffffffffffffffffffffffffffffffffff167f9cc987676e7d63379f176ea50df0ae8d2d9d1141d1231d4ce15b5965f73c943060405160405180910390a3600195505050505050919050565b60003373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6557600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560019050919050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1a57600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35090565b60046020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806004600084815260200190815260200160002054905060058181548110610cc857610cc76113b3565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b60003373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5557600080fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60006005600183610dc79190611218565b81548110610dd857610dd76113b3565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e6557600080fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b6000610ebe610eb9846111d1565b6111ac565b905082815260208101848484011115610eda57610ed9611416565b5b610ee5848285611320565b509392505050565b600081359050610efc81611436565b92915050565b600081359050610f118161144d565b92915050565b600081519050610f268161144d565b92915050565b600081359050610f3b81611464565b92915050565b600082601f830112610f5657610f55611411565b5b8151610f66848260208601610eab565b91505092915050565b600081359050610f7e8161147b565b92915050565b600060208284031215610f9a57610f99611420565b5b6000610fa884828501610eed565b91505092915050565b600060208284031215610fc757610fc6611420565b5b6000610fd584828501610f02565b91505092915050565b600060208284031215610ff457610ff3611420565b5b600061100284828501610f17565b91505092915050565b60006020828403121561102157611020611420565b5b600061102f84828501610f2c565b91505092915050565b60006020828403121561104e5761104d611420565b5b600082015167ffffffffffffffff81111561106c5761106b61141b565b5b61107884828501610f41565b91505092915050565b60006020828403121561109757611096611420565b5b60006110a584828501610f6f565b91505092915050565b6110b7816112a2565b82525050565b6110c6816112b4565b82525050565b6110d5816112c0565b82525050565b60006110e682611202565b6110f0818561120d565b9350611100818560208601611320565b80840191505092915050565b61111581611316565b82525050565b600061112782846110db565b915081905092915050565b600060208201905061114760008301846110ae565b92915050565b600060408201905061116260008301856110ae565b61116f60208301846110cc565b9392505050565b600060208201905061118b60008301846110bd565b92915050565b60006020820190506111a6600083018461110c565b92915050565b60006111b66111c7565b90506111c28282611353565b919050565b6000604051905090565b600067ffffffffffffffff8211156111ec576111eb6113e2565b5b6111f582611425565b9050602081019050919050565b600081519050919050565b600081905092915050565b600061122382611316565b915061122e83611316565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561126357611262611384565b5b828201905092915050565b600061127982611316565b915061128483611316565b92508282101561129757611296611384565b5b828203905092915050565b60006112ad826112f6565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101561133e578082015181840152602081019050611323565b8381111561134d576000848401525b50505050565b61135c82611425565b810181811067ffffffffffffffff8211171561137b5761137a6113e2565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61143f816112a2565b811461144a57600080fd5b50565b611456816112c0565b811461146157600080fd5b50565b61146d816112ca565b811461147857600080fd5b50565b61148481611316565b811461148f57600080fd5b5056fea2646970667358221220698200c7f4b6b92a9ab2c48d40f4883bbe603014882102df7e52a71b8ba1b26964736f6c63430008070033 \ No newline at end of file diff --git a/python/okota/data/TokenUniqueSymbolIndexAddressDeclarator.json b/python/okota/data/TokenUniqueSymbolIndexAddressDeclarator.json index 19d6c49..e9e0ab3 100644 --- a/python/okota/data/TokenUniqueSymbolIndexAddressDeclarator.json +++ b/python/okota/data/TokenUniqueSymbolIndexAddressDeclarator.json @@ -1 +1 @@ -[{"inputs":[{"internalType":"address","name":"_addressDeclaratorAddress","type":"address"}],"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":[],"name":"addressDeclaratorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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"}] +[{"inputs":[{"internalType":"address","name":"_addressDeclaratorAddress","type":"address"}],"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":"address","name":"_writer","type":"address"}],"name":"addWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addressDeclaratorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"}],"name":"addressOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"deleteWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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/python/okota/token_index/index.py b/python/okota/token_index/index.py index 0f362de..187455b 100644 --- a/python/okota/token_index/index.py +++ b/python/okota/token_index/index.py @@ -24,11 +24,12 @@ from chainlib.eth.constant import ZERO_ADDRESS from hexathon import ( add_0x, ) +from cic_contracts.registry import to_identifier # local imports from .interface import ( - TokenUniqueSymbolIndex, - to_identifier, + #TokenUniqueSymbolIndex, + CICTokenIndex, ) logg = logging.getLogger(__name__) @@ -38,7 +39,8 @@ datadir = os.path.join(moddir, '..', 'data') -class TokenUniqueSymbolIndexAddressDeclarator(TokenUniqueSymbolIndex): +#class TokenUniqueSymbolIndexAddressDeclarator(TokenUniqueSymbolIndex): +class TokenUniqueSymbolIndexAddressDeclarator(CICTokenIndex): __abi = None __bytecode = None diff --git a/python/okota/token_index/interface.py b/python/okota/token_index/interface.py index 7d7cf9f..83b1c71 100644 --- a/python/okota/token_index/interface.py +++ b/python/okota/token_index/interface.py @@ -1,113 +1,18 @@ -# Author: Louis Holbrook 0826EDA1702D1E87C6E2875121D2E7BB88C2A746 -# SPDX-License-Identifier: GPL-3.0-or-later -# File-version: 1 -# Description: Python interface to abi and bin files for faucet contracts - # standard imports -import logging -import json -import os import hashlib # external imports -from chainlib.eth.contract import ( - ABIContractEncoder, - ABIContractType, - abi_decode_single, - ) -from chainlib.eth.tx import ( - TxFactory, - TxFormat, - ) -from chainlib.jsonrpc import JSONRPCRequest from chainlib.eth.constant import ZERO_ADDRESS -from hexathon import ( - add_0x, - ) -logg = logging.getLogger(__name__) - -moddir = os.path.dirname(__file__) -datadir = os.path.join(moddir, '..', 'data') +# local imports +from cic_contracts.accounts_index import CICAccountsIndex +from cic_contracts.registry import CICRegistry -def to_identifier(s): - h = hashlib.new('sha256') - h.update(s.encode('utf-8')) - return h.digest().hex() +class CICTokenIndex(CICRegistry, CICAccountsIndex): - -class TokenUniqueSymbolIndex(TxFactory): - - def register(self, contract_address, sender_address, address, tx_format=TxFormat.JSONRPC): - enc = ABIContractEncoder() - enc.method('register') - enc.typ(ABIContractType.ADDRESS) - enc.address(address) - data = enc.get() - tx = self.template(sender_address, contract_address, use_nonce=True) - tx = self.set_code(tx, data) - tx = self.finalize(tx, tx_format) - return tx - - - def address_of(self, contract_address, token_symbol, sender_address=ZERO_ADDRESS, id_generator=None): - j = JSONRPCRequest(id_generator) - o = j.template() - o['method'] = 'eth_call' - enc = ABIContractEncoder() - enc.method('addressOf') - enc.typ(ABIContractType.BYTES32) - token_symbol_digest = to_identifier(token_symbol) - enc.bytes32(token_symbol_digest) - data = add_0x(enc.get()) - tx = self.template(sender_address, contract_address) - tx = self.set_code(tx, data) - o['params'].append(self.normalize(tx)) - o = j.finalize(o) - return o - - - def entry(self, contract_address, idx, sender_address=ZERO_ADDRESS, id_generator=None): - j = JSONRPCRequest(id_generator) - o = j.template() - o['method'] = 'eth_call' - enc = ABIContractEncoder() - enc.method('entry') - enc.typ(ABIContractType.UINT256) - enc.uint256(idx) - data = add_0x(enc.get()) - tx = self.template(sender_address, contract_address) - tx = self.set_code(tx, data) - o['params'].append(self.normalize(tx)) - o = j.finalize(o) - return o - - - def entry_count(self, contract_address, sender_address=ZERO_ADDRESS, id_generator=None): - j = JSONRPCRequest(id_generator) - o = j.template() - o['method'] = 'eth_call' - enc = ABIContractEncoder() - enc.method('entryCount') - data = add_0x(enc.get()) - tx = self.template(sender_address, contract_address) - tx = self.set_code(tx, data) - o['params'].append(self.normalize(tx)) - o = j.finalize(o) - return o - - - @classmethod - def parse_address_of(self, v): - return abi_decode_single(ABIContractType.ADDRESS, v) - - - @classmethod - def parse_entry(self, v): - return abi_decode_single(ABIContractType.ADDRESS, v) - - - @classmethod - def parse_entry_count(self, v): - return abi_decode_single(ABIContractType.UINT256, v) + def address_of(self, contract_address, identifier_string, sender_address=ZERO_ADDRESS): + h = hashlib.sha256() + h.update(identifier_string.encode('utf-8')) + z = h.digest() + return super(CICTokenIndex, self).address_of_literal(contract_address, z.hex(), sender_address=sender_address) diff --git a/python/requirements.txt b/python/requirements.txt index 9fa541b..b9c0228 100644 --- a/python/requirements.txt +++ b/python/requirements.txt @@ -1,7 +1,9 @@ -confini>=0.3.6rc3,<0.5.0 -crypto-dev-signer>=0.4.15rc2,<=0.4.15 -chainlib-eth>=0.0.9a13,<=0.1.0 -eth_erc20>=0.1.2a3,<=0.2.0 -eth-address-index>=0.2.4a1,<=0.3.0 -eth-accounts-index>=0.1.2a3,<=0.2.0 -eth-token-index>=0.2.4a1,<=0.3.0 +confini~=0.5.1 +funga-eth~=0.5.1 +chainlib-eth~=0.0.10 +eth_erc20~=0.1.2 +eth-address-index~=0.2.4 +eth-accounts-index~=0.1.2 +eth-token-index~=0.2.4 +eth-contract-registry~=0.6.3 +cic-contracts~=0.0.5 diff --git a/python/run_tests.sh b/python/run_tests.sh new file mode 100644 index 0000000..b8e4beb --- /dev/null +++ b/python/run_tests.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +set -a +set -e +set -x +default_pythonpath=$PYTHONPATH:. +export PYTHONPATH=${default_pythonpath:-.} +>&2 echo using pythonpath $PYTHONPATH +for f in `ls tests/*.py`; do + python $f +done +set +x +set +e +set +a diff --git a/python/setup.cfg b/python/setup.cfg index 9f1c3ec..5dc4dad 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = okota -version = 0.2.4a14 +version = 0.2.5a1 description = Registries for CIC using the eth-address-index backend author = Louis Holbrook author_email = dev@holbrook.no diff --git a/python/tests/test_accounts_index.py b/python/tests/test_accounts_index.py index c6f65c4..4745d38 100644 --- a/python/tests/test_accounts_index.py +++ b/python/tests/test_accounts_index.py @@ -14,6 +14,7 @@ from eth_address_declarator.unittest import TestAddressDeclaratorBase # local imports from okota.accounts_index import AccountsIndexAddressDeclarator +from eth_accounts_index.registry import AccountRegistry # test imports @@ -38,6 +39,14 @@ class TestAccountsIndex(TestAddressDeclaratorBase): self.accounts_index_address = r['contract_address'] logg.debug('accounts index deployed with address {}'.format(self.accounts_index_address)) + c = AccountRegistry(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle) + (tx_hash_hex, o) = c.add_writer(self.accounts_index_address, self.accounts[0], self.accounts[0]) + r = self.rpc.do(o) + + o = receipt(tx_hash_hex) + r = self.rpc.do(o) + self.assertEqual(r['status'], 1) + def test_accounts_index_address_declarator(self): nonce_oracle = RPCNonceOracle(self.accounts[0], self.rpc) @@ -46,14 +55,18 @@ class TestAccountsIndex(TestAddressDeclaratorBase): r = self.rpc.do(o) self.assertEqual(tx_hash, r) + self.helper.mine_block() + o = receipt(tx_hash) rcpt = self.rpc.do(o) + self.assertEqual(rcpt['status'], 1) + for k in rcpt.keys(): + logg.debug('>>> RCPT {} {}'.format(k, rcpt[k])) - self.helper.mine_block() o = c.have(self.accounts_index_address, self.accounts[1], sender_address=self.accounts[0]) r = self.rpc.do(o) - c = Declarator(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle) + c = Declarator(self.chain_spec) #, signer=self.signer, nonce_oracle=nonce_oracle) o = c.declaration(self.address, self.accounts[0], self.accounts[1], sender_address=self.accounts[0]) r = self.rpc.do(o) proofs = c.parse_declaration(r) diff --git a/python/tests/test_registry.py b/python/tests/test_registry.py index 1c82dac..f832271 100644 --- a/python/tests/test_registry.py +++ b/python/tests/test_registry.py @@ -89,5 +89,6 @@ class TestContractRegistry(TestAddressDeclaratorBase): self.assertEqual(z.hex(), proofs[2]) + if __name__ == '__main__': unittest.main() diff --git a/python/tests/test_tokenindex.py b/python/tests/test_tokenindex.py index a156ae1..36a49ba 100644 --- a/python/tests/test_tokenindex.py +++ b/python/tests/test_tokenindex.py @@ -18,6 +18,7 @@ from eth_address_declarator import Declarator # local imports from okota.token_index.index import ( TokenUniqueSymbolIndexAddressDeclarator as TokenIndex, + CICTokenIndex, to_identifier, ) @@ -45,12 +46,21 @@ class TestTokenIndex(TestAddressDeclaratorBase): self.token_index_address = r['contract_address'] + c = CICTokenIndex(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle) + (tx_hash_hex, o) = c.add_writer(self.token_index_address, self.accounts[0], self.accounts[0]) + r = self.rpc.do(o) + + o = receipt(tx_hash_hex) + r = self.rpc.do(o) + self.assertEqual(r['status'], 1) + + def test_register(self): nonce_oracle = RPCNonceOracle(self.accounts[0], self.rpc) - c = TokenIndex(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle) + c = CICTokenIndex(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle) - (tx_hash_hex, o) = c.register(self.token_index_address, self.accounts[0], self.foo_token_address) + (tx_hash_hex, o) = c.add(self.token_index_address, self.accounts[0], self.foo_token_address) self.rpc.do(o) e = unpack(bytes.fromhex(strip_0x(o['params'][0])), self.chain_spec) @@ -77,10 +87,12 @@ class TestTokenIndex(TestAddressDeclaratorBase): o = c.declaration(self.address, self.accounts[0], self.foo_token_address, sender_address=self.accounts[0]) r = self.rpc.do(o) proofs = c.parse_declaration(r) + + h = hashlib.sha256() + h.update('FOO'.encode('utf-8')) + z = h.digest() - token_symbol_identifier = to_identifier('FOO') - - self.assertEqual(token_symbol_identifier, proofs[0]) + self.assertEqual(proofs[0], z.hex()) if __name__ == '__main__': diff --git a/solidity/AccountsIndexAddressDeclarator.sol b/solidity/AccountsIndexAddressDeclarator.sol index 69482bd..30816f0 100644 --- a/solidity/AccountsIndexAddressDeclarator.sol +++ b/solidity/AccountsIndexAddressDeclarator.sol @@ -2,22 +2,20 @@ pragma solidity >0.6.11; // SPDX-License-Identifier: GPL-3.0-or-later - // TODO: inherit accounts index contract contract AccountsIndexAddressDeclarator { address public tokenAddress; - bytes32 tokenAddressHash; + bytes32 public tokenAddressHash; address public addressDeclaratorAddress; mapping(address => uint256) entryIndex; - //uint256 count; mapping(address => bool) writers; address[] entries; address public owner; address newOwner; - event AddressAdded(address indexed addedAccount, uint256 indexed accountIndex); // AccountsIndex + event AddressAdded(address indexed addedAccount, uint256 indexed accountIndex); // AddressIndex event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); // EIP173 constructor(address _tokenAddress, address _addressDeclaratorAddress) public { @@ -42,7 +40,7 @@ contract AccountsIndexAddressDeclarator { require(ok); require(r[31] == 0x01); - oldEntryIndex = entries.length - 1; + oldEntryIndex = entries.length; entryIndex[_account] = oldEntryIndex; entries.push(_account); @@ -65,12 +63,14 @@ contract AccountsIndexAddressDeclarator { return entries.length - 1; } + // Implements Writer function addWriter(address _writer) public returns (bool) { require(owner == msg.sender); writers[_writer] = true; return true; } + // Implements Writer function deleteWriter(address _writer) public returns (bool) { require(owner == msg.sender); delete writers[_writer]; @@ -95,4 +95,24 @@ contract AccountsIndexAddressDeclarator { emit OwnershipTransferred(oldOwner, owner); return true; } + + // 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; + } + if (_sum == 0x80c84bd6) { // Writer + return true; + } + return false; + } } diff --git a/solidity/TokenUniqueSymbolIndexAddressDeclarator.sol b/solidity/TokenUniqueSymbolIndexAddressDeclarator.sol index 001dcfb..5d571e2 100644 --- a/solidity/TokenUniqueSymbolIndexAddressDeclarator.sol +++ b/solidity/TokenUniqueSymbolIndexAddressDeclarator.sol @@ -8,12 +8,13 @@ contract TokenUniqueSymbolIndexAddressDeclarator { address public owner; address newOwner; address public addressDeclaratorAddress; + mapping(address => bool) writers; 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 + event AddressAdded(address indexed addedAccount, uint256 indexed accountIndex); // AddressIndex constructor(address _addressDeclaratorAddress) public { owner = msg.sender; @@ -35,7 +36,7 @@ contract TokenUniqueSymbolIndexAddressDeclarator { } function register(address _token) public returns (bool) { - require(msg.sender == owner); + require(writers[msg.sender]); bool ok; bytes memory r; @@ -64,13 +65,13 @@ contract TokenUniqueSymbolIndexAddressDeclarator { return true; } - // Implements AccountsIndex + // Implements AddressIndex function add(address _token) public returns (bool) { return register(_token); } - // Implements AccountsIndex + // Implements AddressIndex function entryCount() public view returns ( uint256 ) { return tokens.length - 1; } @@ -92,10 +93,23 @@ contract TokenUniqueSymbolIndexAddressDeclarator { emit OwnershipTransferred(oldOwner, owner); } + // Implements Writer + function addWriter(address _writer) public returns (bool) { + require(owner == msg.sender); + writers[_writer] = true; + return true; + } + + // Implements Writer + function deleteWriter(address _writer) public returns (bool) { + require(owner == msg.sender); + delete writers[_writer]; + return true; + } // Implements EIP165 function supportsInterface(bytes4 _sum) public pure returns (bool) { - if (_sum == 0xcbdb05c7) { // AccountsIndex + if (_sum == 0xcbdb05c7) { // AddressIndex return true; } if (_sum == 0xbb34534c) { // Registry @@ -110,6 +124,9 @@ contract TokenUniqueSymbolIndexAddressDeclarator { if (_sum == 0x37a47be4) { // OwnedAccepter return true; } + if (_sum == 0x80c84bd6) { // Writer + return true; + } return false; } }