From 9bad5b5ccfd471ab486ef5dc5996a25774ffcaef Mon Sep 17 00:00:00 2001 From: Mohamed Sohail Date: Thu, 23 Jun 2022 12:22:57 +0300 Subject: [PATCH] Sohail/fix duplicate token entry base 0.4.0 (#3) * feat: remove unique token check from register fn * tests: add duplicate entry test - add FOO - add FOO * bump: v0.4.1 --- ...okenUniqueSymbolIndexAddressDeclarator.bin | 2 +- python/setup.cfg | 2 +- python/tests/test_tokenindex.py | 33 +++++++++++++++++-- ...okenUniqueSymbolIndexAddressDeclarator.sol | 3 -- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/python/okota/data/TokenUniqueSymbolIndexAddressDeclarator.bin b/python/okota/data/TokenUniqueSymbolIndexAddressDeclarator.bin index 780f4e7..2eb13e8 100644 --- a/python/okota/data/TokenUniqueSymbolIndexAddressDeclarator.bin +++ b/python/okota/data/TokenUniqueSymbolIndexAddressDeclarator.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b50604051620016973803806200169783398181016040528101906200003791906200018d565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001bf565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001558262000128565b9050919050565b620001678162000148565b81146200017357600080fd5b50565b60008151905062000187816200015c565b92915050565b600060208284031215620001a657620001a562000123565b5b6000620001b68482850162000176565b91505092915050565b6114c880620001cf6000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c01000000000000000000000000000000000000000000000000000000009004806379ba5097116100a9578063bb34534c11610083578063bb34534c14610259578063da2824a814610289578063e2095c07146102b9578063f2fde38b146102e9576100ec565b806379ba5097146101ed5780637ef502981461020b5780638da5cb5b1461023b576100ec565b806301ffc9a7146100f15780630a3b0a4f146101215780630cbb0f8314610151578063370f91fb1461016f5780634420e4861461018d5780635ae06f7e146101bd575b600080fd5b61010b60048036038101906101069190610f17565b610319565b6040516101189190610f5f565b60405180910390f35b61013b60048036038101906101369190610fd8565b610517565b6040516101489190610f5f565b60405180910390f35b610159610529565b604051610166919061101e565b60405180910390f35b610177610542565b6040516101849190611048565b60405180910390f35b6101a760048036038101906101a29190610fd8565b610568565b6040516101b49190610f5f565b60405180910390f35b6101d760048036038101906101d29190610fd8565b610a0b565b6040516101e49190610f5f565b60405180910390f35b6101f5610abd565b6040516102029190610f5f565b60405180910390f35b61022560048036038101906102209190611099565b610c5f565b604051610232919061101e565b60405180910390f35b610243610c77565b6040516102509190611048565b60405180910390f35b610273600480360381019061026e9190611099565b610c9b565b6040516102809190611048565b60405180910390f35b6102a3600480360381019061029e9190610fd8565b610cfb565b6040516102b09190610f5f565b60405180910390f35b6102d360048036038101906102ce91906110f2565b610db6565b6040516102e09190611048565b60405180910390f35b61030360048036038101906102fe9190610fd8565b610e0a565b6040516103109190610f5f565b60405180910390f35b600063cbdb05c77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561036e5760019050610512565b63bb34534c7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156103c15760019050610512565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156104145760019050610512565b639493f8b27c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156104675760019050610512565b6337a47be47c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156104ba5760019050610512565b6380c84bd67c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561050d5760019050610512565b600090505b919050565b600061052282610568565b9050919050565b6000600160058054905061053d919061114e565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105c057600080fd5b60006060806000808673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f95d89b41000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161066f91906111fc565b6000604051808303816000865af19150503d80600081146106ac576040519150601f19603f3d011682016040523d82523d6000602084013e6106b1565b606091505b508095508196505050846106c457600080fd5b838060200190518101906106d8919061134a565b92506002836040516106ea91906111fc565b602060405180830381855afa158015610707573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061072a91906113a8565b9150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1687836040516024016107789291906113e4565b6040516020818303038152906040527fae47ece0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161080291906111fc565b6000604051808303816000865af19150503d806000811461083f576040519150601f19603f3d011682016040523d82523d6000602084013e610844565b606091505b5080955081965050508461085757600080fd5b60017f01000000000000000000000000000000000000000000000000000000000000000284601f8151811061088f5761088e61140d565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461090557600080fd5b600460008381526020019081526020016000205490506000811461092857600080fd5b60058054905060046000848152602001908152602001600020819055506005879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005805490506109ba919061114e565b8773ffffffffffffffffffffffffffffffffffffffff167f9cc987676e7d63379f176ea50df0ae8d2d9d1141d1231d4ce15b5965f73c943060405160405180910390a3600195505050505050919050565b60003373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a6557600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560019050919050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1a57600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35090565b60046020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806004600084815260200190815260200160002054905060058181548110610cc857610cc761140d565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b60003373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5557600080fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60006005600183610dc7919061143c565b81548110610dd857610dd761140d565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e6557600080fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ef481610ebf565b8114610eff57600080fd5b50565b600081359050610f1181610eeb565b92915050565b600060208284031215610f2d57610f2c610eb5565b5b6000610f3b84828501610f02565b91505092915050565b60008115159050919050565b610f5981610f44565b82525050565b6000602082019050610f746000830184610f50565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610fa582610f7a565b9050919050565b610fb581610f9a565b8114610fc057600080fd5b50565b600081359050610fd281610fac565b92915050565b600060208284031215610fee57610fed610eb5565b5b6000610ffc84828501610fc3565b91505092915050565b6000819050919050565b61101881611005565b82525050565b6000602082019050611033600083018461100f565b92915050565b61104281610f9a565b82525050565b600060208201905061105d6000830184611039565b92915050565b6000819050919050565b61107681611063565b811461108157600080fd5b50565b6000813590506110938161106d565b92915050565b6000602082840312156110af576110ae610eb5565b5b60006110bd84828501611084565b91505092915050565b6110cf81611005565b81146110da57600080fd5b50565b6000813590506110ec816110c6565b92915050565b60006020828403121561110857611107610eb5565b5b6000611116848285016110dd565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061115982611005565b915061116483611005565b9250828210156111775761117661111f565b5b828203905092915050565b600081519050919050565b600081905092915050565b60005b838110156111b657808201518184015260208101905061119b565b838111156111c5576000848401525b50505050565b60006111d682611182565b6111e0818561118d565b93506111f0818560208601611198565b80840191505092915050565b600061120882846111cb565b915081905092915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6112668261121d565b810181811067ffffffffffffffff821117156112855761128461122e565b5b80604052505050565b6000611298610eab565b90506112a4828261125d565b919050565b600067ffffffffffffffff8211156112c4576112c361122e565b5b6112cd8261121d565b9050602081019050919050565b60006112ed6112e8846112a9565b61128e565b90508281526020810184848401111561130957611308611218565b5b611314848285611198565b509392505050565b600082601f83011261133157611330611213565b5b81516113418482602086016112da565b91505092915050565b6000602082840312156113605761135f610eb5565b5b600082015167ffffffffffffffff81111561137e5761137d610eba565b5b61138a8482850161131c565b91505092915050565b6000815190506113a28161106d565b92915050565b6000602082840312156113be576113bd610eb5565b5b60006113cc84828501611393565b91505092915050565b6113de81611063565b82525050565b60006040820190506113f96000830185611039565b61140660208301846113d5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061144782611005565b915061145283611005565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114875761148661111f565b5b82820190509291505056fea2646970667358221220fc3c0b8b7da039278e5c6056e490f6c17cc48095ef8e1bfff221b9ea55129cc564736f6c634300080b0033 \ No newline at end of file +60806040523480156200001157600080fd5b50604051620016743803806200167483398181016040528101906200003791906200018d565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001bf565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001558262000128565b9050919050565b620001678162000148565b81146200017357600080fd5b50565b60008151905062000187816200015c565b92915050565b600060208284031215620001a657620001a562000123565b5b6000620001b68482850162000176565b91505092915050565b6114a580620001cf6000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c01000000000000000000000000000000000000000000000000000000009004806379ba5097116100a9578063bb34534c11610083578063bb34534c14610259578063da2824a814610289578063e2095c07146102b9578063f2fde38b146102e9576100ec565b806379ba5097146101ed5780637ef502981461020b5780638da5cb5b1461023b576100ec565b806301ffc9a7146100f15780630a3b0a4f146101215780630cbb0f8314610151578063370f91fb1461016f5780634420e4861461018d5780635ae06f7e146101bd575b600080fd5b61010b60048036038101906101069190610ef4565b610319565b6040516101189190610f3c565b60405180910390f35b61013b60048036038101906101369190610fb5565b610517565b6040516101489190610f3c565b60405180910390f35b610159610529565b6040516101669190610ffb565b60405180910390f35b610177610542565b6040516101849190611025565b60405180910390f35b6101a760048036038101906101a29190610fb5565b610568565b6040516101b49190610f3c565b60405180910390f35b6101d760048036038101906101d29190610fb5565b6109e8565b6040516101e49190610f3c565b60405180910390f35b6101f5610a9a565b6040516102029190610f3c565b60405180910390f35b61022560048036038101906102209190611076565b610c3c565b6040516102329190610ffb565b60405180910390f35b610243610c54565b6040516102509190611025565b60405180910390f35b610273600480360381019061026e9190611076565b610c78565b6040516102809190611025565b60405180910390f35b6102a3600480360381019061029e9190610fb5565b610cd8565b6040516102b09190610f3c565b60405180910390f35b6102d360048036038101906102ce91906110cf565b610d93565b6040516102e09190611025565b60405180910390f35b61030360048036038101906102fe9190610fb5565b610de7565b6040516103109190610f3c565b60405180910390f35b600063cbdb05c77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561036e5760019050610512565b63bb34534c7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156103c15760019050610512565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156104145760019050610512565b639493f8b27c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156104675760019050610512565b6337a47be47c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156104ba5760019050610512565b6380c84bd67c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561050d5760019050610512565b600090505b919050565b600061052282610568565b9050919050565b6000600160058054905061053d919061112b565b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166105c057600080fd5b60006060806000808673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f95d89b41000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161066f91906111d9565b6000604051808303816000865af19150503d80600081146106ac576040519150601f19603f3d011682016040523d82523d6000602084013e6106b1565b606091505b508095508196505050846106c457600080fd5b838060200190518101906106d89190611327565b92506002836040516106ea91906111d9565b602060405180830381855afa158015610707573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061072a9190611385565b9150600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1687836040516024016107789291906113c1565b6040516020818303038152906040527fae47ece0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161080291906111d9565b6000604051808303816000865af19150503d806000811461083f576040519150601f19603f3d011682016040523d82523d6000602084013e610844565b606091505b5080955081965050508461085757600080fd5b60017f01000000000000000000000000000000000000000000000000000000000000000284601f8151811061088f5761088e6113ea565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461090557600080fd5b60058054905060046000848152602001908152602001600020819055506005879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600580549050610997919061112b565b8773ffffffffffffffffffffffffffffffffffffffff167f9cc987676e7d63379f176ea50df0ae8d2d9d1141d1231d4ce15b5965f73c943060405160405180910390a3600195505050505050919050565b60003373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4257600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560019050919050565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610af757600080fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35090565b60046020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806004600084815260200190815260200160002054905060058181548110610ca557610ca46113ea565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b60003373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3257600080fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60006005600183610da49190611419565b81548110610db557610db46113ea565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e4257600080fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ed181610e9c565b8114610edc57600080fd5b50565b600081359050610eee81610ec8565b92915050565b600060208284031215610f0a57610f09610e92565b5b6000610f1884828501610edf565b91505092915050565b60008115159050919050565b610f3681610f21565b82525050565b6000602082019050610f516000830184610f2d565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f8282610f57565b9050919050565b610f9281610f77565b8114610f9d57600080fd5b50565b600081359050610faf81610f89565b92915050565b600060208284031215610fcb57610fca610e92565b5b6000610fd984828501610fa0565b91505092915050565b6000819050919050565b610ff581610fe2565b82525050565b60006020820190506110106000830184610fec565b92915050565b61101f81610f77565b82525050565b600060208201905061103a6000830184611016565b92915050565b6000819050919050565b61105381611040565b811461105e57600080fd5b50565b6000813590506110708161104a565b92915050565b60006020828403121561108c5761108b610e92565b5b600061109a84828501611061565b91505092915050565b6110ac81610fe2565b81146110b757600080fd5b50565b6000813590506110c9816110a3565b92915050565b6000602082840312156110e5576110e4610e92565b5b60006110f3848285016110ba565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061113682610fe2565b915061114183610fe2565b925082821015611154576111536110fc565b5b828203905092915050565b600081519050919050565b600081905092915050565b60005b83811015611193578082015181840152602081019050611178565b838111156111a2576000848401525b50505050565b60006111b38261115f565b6111bd818561116a565b93506111cd818560208601611175565b80840191505092915050565b60006111e582846111a8565b915081905092915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611243826111fa565b810181811067ffffffffffffffff821117156112625761126161120b565b5b80604052505050565b6000611275610e88565b9050611281828261123a565b919050565b600067ffffffffffffffff8211156112a1576112a061120b565b5b6112aa826111fa565b9050602081019050919050565b60006112ca6112c584611286565b61126b565b9050828152602081018484840111156112e6576112e56111f5565b5b6112f1848285611175565b509392505050565b600082601f83011261130e5761130d6111f0565b5b815161131e8482602086016112b7565b91505092915050565b60006020828403121561133d5761133c610e92565b5b600082015167ffffffffffffffff81111561135b5761135a610e97565b5b611367848285016112f9565b91505092915050565b60008151905061137f8161104a565b92915050565b60006020828403121561139b5761139a610e92565b5b60006113a984828501611370565b91505092915050565b6113bb81611040565b82525050565b60006040820190506113d66000830185611016565b6113e360208301846113b2565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061142482610fe2565b915061142f83610fe2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611464576114636110fc565b5b82820190509291505056fea26469706673582212209c4e510ced8281e8ce056ce392a7d51f079209bf5e835887b8f0f3a510ad115a64736f6c634300080b0033 \ No newline at end of file diff --git a/python/setup.cfg b/python/setup.cfg index 0d5a0a0..180dbb5 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = okota -version = 0.4.0 +version = 0.4.1 description = Registries for CIC using the eth-address-index backend author = Louis Holbrook author_email = dev@holbrook.no diff --git a/python/tests/test_tokenindex.py b/python/tests/test_tokenindex.py index b067c73..98b59b0 100644 --- a/python/tests/test_tokenindex.py +++ b/python/tests/test_tokenindex.py @@ -25,7 +25,7 @@ from okota.token_index.index import ( # test imports from eth_address_declarator.unittest import TestAddressDeclaratorBase -logging.basicConfig(level=logging.DEBUG) +logging.basicConfig(level=logging.INFO) logg = logging.getLogger() testdir = os.path.dirname(__file__) @@ -54,12 +54,11 @@ class TestTokenIndex(TestAddressDeclaratorBase): r = self.rpc.do(o) self.assertEqual(r['status'], 1) - - def test_register(self): nonce_oracle = RPCNonceOracle(self.accounts[0], self.rpc) c = CICTokenIndex(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle) + logg.info('using token index {}'.format(self.token_index_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) @@ -99,6 +98,34 @@ class TestTokenIndex(TestAddressDeclaratorBase): identifier = to_identifier('foo') self.assertEqual(proofs[0], identifier) + def test_duplicate_entry(self): + nonce_oracle = RPCNonceOracle(self.accounts[0], self.rpc) + gft = GiftableToken(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle) + (tx_hash_hex, o) = gft.constructor(self.accounts[0], 'FooTokenRedeploy', 'FOO', 6) + self.rpc.do(o) + + o = receipt(tx_hash_hex) + r = self.rpc.do(o) + self.assertEqual(r['status'], 1) + + self.foo_token_address_redeploy = r['contract_address'] + logg.info('second foo token deployed with address {}'.format(self.foo_token_address_redeploy)) + + nonce_oracle = RPCNonceOracle(self.accounts[0], self.rpc) + c = CICTokenIndex(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle) + logg.info('using token index {}'.format(self.token_index_address)) + (tx_hash_hex, o) = c.add(self.token_index_address, self.accounts[0], self.foo_token_address_redeploy) + self.rpc.do(o) + e = unpack(bytes.fromhex(strip_0x(o['params'][0])), self.chain_spec) + + o = receipt(tx_hash_hex) + r = self.rpc.do(o) + self.assertEqual(r['status'], 1) + + o = c.address_of(self.token_index_address, 'FOO', sender_address=self.accounts[0]) + r = self.rpc.do(o) + address = c.parse_address_of(r) + self.assertEqual(address, strip_0x(self.foo_token_address_redeploy)) if __name__ == '__main__': unittest.main() diff --git a/solidity/TokenUniqueSymbolIndexAddressDeclarator.sol b/solidity/TokenUniqueSymbolIndexAddressDeclarator.sol index 5d571e2..8ee2074 100644 --- a/solidity/TokenUniqueSymbolIndexAddressDeclarator.sol +++ b/solidity/TokenUniqueSymbolIndexAddressDeclarator.sol @@ -55,9 +55,6 @@ contract TokenUniqueSymbolIndexAddressDeclarator { require(ok); require(r[31] == 0x01); - idx = registry[token_symbol_key]; - require(idx == 0); - registry[token_symbol_key] = tokens.length; tokens.push(_token);