commit 3612c7e680de41274dbaa1e59b89e37dd1f530cf
parent 9a8b90ec61a9c98eaa2720875e502b655b1a372c
Author: lash <dev@holbrook.no>
Date: Sat, 25 Mar 2023 14:07:53 +0000
Clean up parameter visibility, comment code
Diffstat:
6 files changed, 16 insertions(+), 33 deletions(-)
diff --git a/python/eth_address_declarator/data/AddressDeclarator.bin b/python/eth_address_declarator/data/AddressDeclarator.bin
@@ -1 +1 @@
-60806040523480156200001157600080fd5b506040516200211938038062002119833981810160405281019062000037919062000900565b6200005230826200005a640100000000026401000000009004565b505062000bcb565b60006200007c8383600060010262000084640100000000026401000000009004565b905092915050565b6000620000906200082d565b60606000620000b032888762000309640100000000026401000000009004565b92506001600084600160028110620000cd57620000cc62000932565b5b60200201518152602001908152602001600020549050600081036200028057600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020329080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600482908060018154018082558091505060019003906000526020600020016000909190919091509080519060200190620001c99291906200084f565b506000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016004805490506200027d91906200099a565b90505b8060016000856001600281106200029c576200029b62000932565b5b602002015181526020019081526020016000208190555060048181548110620002ca57620002c962000932565b5b90600052602060002001869080600181540180825580915050600190039060005260206000200160009091909190915055600193505050509392505050565b620003136200082d565b60006200031f6200082d565b6000604067ffffffffffffffff8111156200033f576200033e620009d5565b5b6040519080825280601f01601f191660200182016040528015620003725781602001600182028036833780820191505090505b50905062000390878762000587640100000000026401000000009004565b925060005b60208110156200043357838160208110620003b557620003b462000932565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002828281518110620003ee57620003ed62000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806200042a9062000a04565b91505062000395565b5060005b6020811015620004e35785816020811062000457576200045662000932565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002826020836200048a919062000a51565b815181106200049e576200049d62000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620004da9062000a04565b91505062000437565b508282600060028110620004fc57620004fb62000932565b5b60200201818152505060028160405162000517919062000b05565b602060405180830381855afa15801562000535573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200055a919062000900565b8260016002811062000571576200057062000932565b5b6020020181815250508193505050509392505050565b6000806000602867ffffffffffffffff811115620005aa57620005a9620009d5565b5b6040519080825280601f01601f191660200182016040528015620005dd5781602001600182028036833780820191505090505b509050600085604051602001620005f5919062000bae565b604051602081830303815290604052905060005b6014811015620006ce5781818151811062000629576200062862000932565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283828151811062000689576200068862000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620006c59062000a04565b91505062000609565b5084604051602001620006e2919062000bae565b604051602081830303815290604052905060005b6014811015620007c95781818151811062000716576200071562000932565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028360148362000770919062000a51565b8151811062000784576200078362000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620007c09062000a04565b915050620006f6565b50600282604051620007dc919062000b05565b602060405180830381855afa158015620007fa573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200081f919062000900565b925082935050505092915050565b6040518060400160405280600290602082028036833780820191505090505090565b8280548282559060005260206000209081019282156200088e579160200282015b828111156200088d57825182559160200191906001019062000870565b5b5090506200089d9190620008a1565b5090565b5b80821115620008bc576000816000905550600101620008a2565b5090565b600080fd5b6000819050919050565b620008da81620008c5565b8114620008e657600080fd5b50565b600081519050620008fa81620008cf565b92915050565b600060208284031215620009195762000918620008c0565b5b60006200092984828501620008e9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009a78262000961565b9150620009b48362000961565b9250828203905081811115620009cf57620009ce6200096b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600062000a118262000961565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000a465762000a456200096b565b5b600182019050919050565b600062000a5e8262000961565b915062000a6b8362000961565b925082820190508082111562000a865762000a856200096b565b5b92915050565b600081519050919050565b600081905092915050565b60005b8381101562000ac257808201518184015260208101905062000aa5565b60008484015250505050565b600062000adb8262000a8c565b62000ae7818562000a97565b935062000af981856020860162000aa2565b80840191505092915050565b600062000b13828462000ace565b915081905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b4b8262000b1e565b9050919050565b60006c0100000000000000000000000082029050919050565b600062000b788262000b52565b9050919050565b600062000b8c8262000b6b565b9050919050565b62000ba862000ba28262000b3e565b62000b7f565b82525050565b600062000bbc828462000b93565b60148201915081905092915050565b61153e8062000bdb6000396000f3fe608060405234801561001057600080fd5b50600436106100bb576000357c0100000000000000000000000000000000000000000000000000000000900480638c661b36116100835780638c661b36146101b057806390387bab146101e0578063ae47ece014610210578063d0e95db114610240578063ff7496b414610270576100bb565b806301ffc9a7146100c057806322168e4f146100f057806350e0c6d3146101205780636ef498a0146101505780637d64bf1d14610180575b600080fd5b6100da60048036038101906100d59190610e34565b6102a0565b6040516100e79190610e7c565b60405180910390f35b61010a60048036038101906101059190610f2b565b610350565b6040516101179190610f7a565b60405180910390f35b61013a60048036038101906101359190610f95565b6103d5565b6040516101479190610fd1565b60405180910390f35b61016a60048036038101906101659190611022565b610420565b6040516101779190610e7c565b60405180910390f35b61019a60048036038101906101959190610f2b565b610684565b6040516101a79190610f7a565b60405180910390f35b6101ca60048036038101906101c59190611075565b61070a565b6040516101d79190611173565b60405180910390f35b6101fa60048036038101906101f59190611195565b610723565b6040516102079190611173565b60405180910390f35b61022a600480360381019061022591906111e8565b6107e2565b6040516102379190610e7c565b60405180910390f35b61025a60048036038101906102559190610f95565b6107fb565b6040516102679190610fd1565b60405180910390f35b61028a60048036038101906102859190611228565b610847565b6040516102979190611277565b60405180910390f35b60006327beb9107c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036102f4576001905061034b565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610346576001905061034b565b600090505b919050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106103a2576103a1611292565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600061042a610d4b565b60606000610439328887610884565b9250600160008460016002811061045357610452611292565b5b602002015181526020019081526020016000205490506000810361060157600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020329080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060048290806001815401808255809150506001900390600052602060002001600090919091909150908051906020019061054c929190610d6d565b506000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016004805490506105fe91906112f0565b90505b80600160008560016002811061061a57610619611292565b5b60200201518152602001908152602001600020819055506004818154811061064557610644611292565b5b90600052602060002001869080600181540180825580915050600190039060005260206000200160009091909190915055600193505050509392505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106106d7576106d6611292565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b606061071b83836000600102610723565b905092915050565b606061072d610d4b565b600061073a868686610884565b9150600160008360016002811061075457610753611292565b5b602002015181526020019081526020016000205490506004818154811061077e5761077d611292565b5b906000526020600020018054806020026020016040519081016040528092919081815260200182805480156107d257602002820191906000526020600020905b8154815260200190600101908083116107be575b5050505050925050509392505050565b60006107f383836000600102610420565b905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6004828154811061085757600080fd5b90600052602060002001818154811061086f57600080fd5b90600052602060002001600091509150505481565b61088c610d4b565b6000610896610d4b565b6000604067ffffffffffffffff8111156108b3576108b2611324565b5b6040519080825280601f01601f1916602001820160405280156108e55781602001600182028036833780820191505090505b5090506108f28787610ac8565b925060005b602081101561098b5783816020811061091357610912611292565b5b1a7f01000000000000000000000000000000000000000000000000000000000000000282828151811061094957610948611292565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061098390611353565b9150506108f7565b5060005b6020811015610a2f578581602081106109ab576109aa611292565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002826020836109dc919061139b565b815181106109ed576109ec611292565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610a2790611353565b91505061098f565b508282600060028110610a4557610a44611292565b5b602002018181525050600281604051610a5e9190611440565b602060405180830381855afa158015610a7b573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610a9e919061146c565b82600160028110610ab257610ab1611292565b5b6020020181815250508193505050509392505050565b6000806000602867ffffffffffffffff811115610ae857610ae7611324565b5b6040519080825280601f01601f191660200182016040528015610b1a5781602001600182028036833780820191505090505b509050600085604051602001610b3091906114ed565b604051602081830303815290604052905060005b6014811015610bff57818181518110610b6057610b5f611292565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838281518110610bbd57610bbc611292565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610bf790611353565b915050610b44565b5084604051602001610c1191906114ed565b604051602081830303815290604052905060005b6014811015610cec57818181518110610c4157610c40611292565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283601483610c99919061139b565b81518110610caa57610ca9611292565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610ce490611353565b915050610c25565b50600282604051610cfd9190611440565b602060405180830381855afa158015610d1a573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d3d919061146c565b925082935050505092915050565b6040518060400160405280600290602082028036833780820191505090505090565b828054828255906000526020600020908101928215610da9579160200282015b82811115610da8578251825591602001919060010190610d8d565b5b509050610db69190610dba565b5090565b5b80821115610dd3576000816000905550600101610dbb565b5090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610e1181610ddc565b8114610e1c57600080fd5b50565b600081359050610e2e81610e08565b92915050565b600060208284031215610e4a57610e49610dd7565b5b6000610e5884828501610e1f565b91505092915050565b60008115159050919050565b610e7681610e61565b82525050565b6000602082019050610e916000830184610e6d565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ec282610e97565b9050919050565b610ed281610eb7565b8114610edd57600080fd5b50565b600081359050610eef81610ec9565b92915050565b6000819050919050565b610f0881610ef5565b8114610f1357600080fd5b50565b600081359050610f2581610eff565b92915050565b60008060408385031215610f4257610f41610dd7565b5b6000610f5085828601610ee0565b9250506020610f6185828601610f16565b9150509250929050565b610f7481610eb7565b82525050565b6000602082019050610f8f6000830184610f6b565b92915050565b600060208284031215610fab57610faa610dd7565b5b6000610fb984828501610ee0565b91505092915050565b610fcb81610ef5565b82525050565b6000602082019050610fe66000830184610fc2565b92915050565b6000819050919050565b610fff81610fec565b811461100a57600080fd5b50565b60008135905061101c81610ff6565b92915050565b60008060006060848603121561103b5761103a610dd7565b5b600061104986828701610ee0565b935050602061105a8682870161100d565b925050604061106b8682870161100d565b9150509250925092565b6000806040838503121561108c5761108b610dd7565b5b600061109a85828601610ee0565b92505060206110ab85828601610ee0565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6110ea81610fec565b82525050565b60006110fc83836110e1565b60208301905092915050565b6000602082019050919050565b6000611120826110b5565b61112a81856110c0565b9350611135836110d1565b8060005b8381101561116657815161114d88826110f0565b975061115883611108565b925050600181019050611139565b5085935050505092915050565b6000602082019050818103600083015261118d8184611115565b905092915050565b6000806000606084860312156111ae576111ad610dd7565b5b60006111bc86828701610ee0565b93505060206111cd86828701610ee0565b92505060406111de8682870161100d565b9150509250925092565b600080604083850312156111ff576111fe610dd7565b5b600061120d85828601610ee0565b925050602061121e8582860161100d565b9150509250929050565b6000806040838503121561123f5761123e610dd7565b5b600061124d85828601610f16565b925050602061125e85828601610f16565b9150509250929050565b61127181610fec565b82525050565b600060208201905061128c6000830184611268565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006112fb82610ef5565b915061130683610ef5565b925082820390508181111561131e5761131d6112c1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600061135e82610ef5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036113905761138f6112c1565b5b600182019050919050565b60006113a682610ef5565b91506113b183610ef5565b92508282019050808211156113c9576113c86112c1565b5b92915050565b600081519050919050565b600081905092915050565b60005b838110156114035780820151818401526020810190506113e8565b60008484015250505050565b600061141a826113cf565b61142481856113da565b93506114348185602086016113e5565b80840191505092915050565b600061144c828461140f565b915081905092915050565b60008151905061146681610ff6565b92915050565b60006020828403121561148257611481610dd7565b5b600061149084828501611457565b91505092915050565b60006c0100000000000000000000000082029050919050565b60006114bd82611499565b9050919050565b60006114cf826114b2565b9050919050565b6114e76114e282610eb7565b6114c4565b82525050565b60006114f982846114d6565b6014820191508190509291505056fea26469706673582212201ffe12fd968c34e88544519929906fb4f988af2759580790b0c29b4524b292fe64736f6c63430008120033
-\ No newline at end of file
+60806040523480156200001157600080fd5b506040516200203738038062002037833981810160405281019062000037919062000900565b6200005230826200005a640100000000026401000000009004565b505062000bcb565b60006200007c8383600060010262000084640100000000026401000000009004565b905092915050565b6000620000906200082d565b60606000620000b032888762000309640100000000026401000000009004565b92506001600084600160028110620000cd57620000cc62000932565b5b60200201518152602001908152602001600020549050600081036200028057600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020329080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600482908060018154018082558091505060019003906000526020600020016000909190919091509080519060200190620001c99291906200084f565b506000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016004805490506200027d91906200099a565b90505b8060016000856001600281106200029c576200029b62000932565b5b602002015181526020019081526020016000208190555060048181548110620002ca57620002c962000932565b5b90600052602060002001869080600181540180825580915050600190039060005260206000200160009091909190915055600193505050509392505050565b620003136200082d565b60006200031f6200082d565b6000604067ffffffffffffffff8111156200033f576200033e620009d5565b5b6040519080825280601f01601f191660200182016040528015620003725781602001600182028036833780820191505090505b50905062000390878762000587640100000000026401000000009004565b925060005b60208110156200043357838160208110620003b557620003b462000932565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002828281518110620003ee57620003ed62000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806200042a9062000a04565b91505062000395565b5060005b6020811015620004e35785816020811062000457576200045662000932565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002826020836200048a919062000a51565b815181106200049e576200049d62000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620004da9062000a04565b91505062000437565b508282600060028110620004fc57620004fb62000932565b5b60200201818152505060028160405162000517919062000b05565b602060405180830381855afa15801562000535573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200055a919062000900565b8260016002811062000571576200057062000932565b5b6020020181815250508193505050509392505050565b6000806000602867ffffffffffffffff811115620005aa57620005a9620009d5565b5b6040519080825280601f01601f191660200182016040528015620005dd5781602001600182028036833780820191505090505b509050600085604051602001620005f5919062000bae565b604051602081830303815290604052905060005b6014811015620006ce5781818151811062000629576200062862000932565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283828151811062000689576200068862000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620006c59062000a04565b91505062000609565b5084604051602001620006e2919062000bae565b604051602081830303815290604052905060005b6014811015620007c95781818151811062000716576200071562000932565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028360148362000770919062000a51565b8151811062000784576200078362000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620007c09062000a04565b915050620006f6565b50600282604051620007dc919062000b05565b602060405180830381855afa158015620007fa573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200081f919062000900565b925082935050505092915050565b6040518060400160405280600290602082028036833780820191505090505090565b8280548282559060005260206000209081019282156200088e579160200282015b828111156200088d57825182559160200191906001019062000870565b5b5090506200089d9190620008a1565b5090565b5b80821115620008bc576000816000905550600101620008a2565b5090565b600080fd5b6000819050919050565b620008da81620008c5565b8114620008e657600080fd5b50565b600081519050620008fa81620008cf565b92915050565b600060208284031215620009195762000918620008c0565b5b60006200092984828501620008e9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009a78262000961565b9150620009b48362000961565b9250828203905081811115620009cf57620009ce6200096b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600062000a118262000961565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000a465762000a456200096b565b5b600182019050919050565b600062000a5e8262000961565b915062000a6b8362000961565b925082820190508082111562000a865762000a856200096b565b5b92915050565b600081519050919050565b600081905092915050565b60005b8381101562000ac257808201518184015260208101905062000aa5565b60008484015250505050565b600062000adb8262000a8c565b62000ae7818562000a97565b935062000af981856020860162000aa2565b80840191505092915050565b600062000b13828462000ace565b915081905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b4b8262000b1e565b9050919050565b60006c0100000000000000000000000082029050919050565b600062000b788262000b52565b9050919050565b600062000b8c8262000b6b565b9050919050565b62000ba862000ba28262000b3e565b62000b7f565b82525050565b600062000bbc828462000b93565b60148201915081905092915050565b61145c8062000bdb6000396000f3fe608060405234801561001057600080fd5b50600436106100b0576000357c0100000000000000000000000000000000000000000000000000000000900480637d64bf1d116100835780637d64bf1d146101755780638c661b36146101a557806390387bab146101d5578063ae47ece014610205578063d0e95db114610235576100b0565b806301ffc9a7146100b557806322168e4f146100e557806350e0c6d3146101155780636ef498a014610145575b600080fd5b6100cf60048036038101906100ca9190610dbc565b610265565b6040516100dc9190610e04565b60405180910390f35b6100ff60048036038101906100fa9190610eb3565b610315565b60405161010c9190610f02565b60405180910390f35b61012f600480360381019061012a9190610f1d565b61039a565b60405161013c9190610f59565b60405180910390f35b61015f600480360381019061015a9190610faa565b6103e5565b60405161016c9190610e04565b60405180910390f35b61018f600480360381019061018a9190610eb3565b610649565b60405161019c9190610f02565b60405180910390f35b6101bf60048036038101906101ba9190610ffd565b6106cf565b6040516101cc91906110fb565b60405180910390f35b6101ef60048036038101906101ea919061111d565b6106e8565b6040516101fc91906110fb565b60405180910390f35b61021f600480360381019061021a9190611170565b6107a7565b60405161022c9190610e04565b60405180910390f35b61024f600480360381019061024a9190610f1d565b6107c0565b60405161025c9190610f59565b60405180910390f35b60006321b7493b7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036102b95760019050610310565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361030b5760019050610310565b600090505b919050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610367576103666111b0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60006103ef610cd3565b606060006103fe32888761080c565b92506001600084600160028110610418576104176111b0565b5b60200201518152602001908152602001600020549050600081036105c657600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020329080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600482908060018154018082558091505060019003906000526020600020016000909190919091509080519060200190610511929190610cf5565b506000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016004805490506105c3919061120e565b90505b8060016000856001600281106105df576105de6111b0565b5b60200201518152602001908152602001600020819055506004818154811061060a576106096111b0565b5b90600052602060002001869080600181540180825580915050600190039060005260206000200160009091909190915055600193505050509392505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061069c5761069b6111b0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60606106e0838360006001026106e8565b905092915050565b60606106f2610cd3565b60006106ff86868661080c565b91506001600083600160028110610719576107186111b0565b5b6020020151815260200190815260200160002054905060048181548110610743576107426111b0565b5b9060005260206000200180548060200260200160405190810160405280929190818152602001828054801561079757602002820191906000526020600020905b815481526020019060010190808311610783575b5050505050925050509392505050565b60006107b8838360006001026103e5565b905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b610814610cd3565b600061081e610cd3565b6000604067ffffffffffffffff81111561083b5761083a611242565b5b6040519080825280601f01601f19166020018201604052801561086d5781602001600182028036833780820191505090505b50905061087a8787610a50565b925060005b60208110156109135783816020811061089b5761089a6111b0565b5b1a7f0100000000000000000000000000000000000000000000000000000000000000028282815181106108d1576108d06111b0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061090b90611271565b91505061087f565b5060005b60208110156109b757858160208110610933576109326111b0565b5b1a7f0100000000000000000000000000000000000000000000000000000000000000028260208361096491906112b9565b81518110610975576109746111b0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806109af90611271565b915050610917565b5082826000600281106109cd576109cc6111b0565b5b6020020181815250506002816040516109e6919061135e565b602060405180830381855afa158015610a03573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610a26919061138a565b82600160028110610a3a57610a396111b0565b5b6020020181815250508193505050509392505050565b6000806000602867ffffffffffffffff811115610a7057610a6f611242565b5b6040519080825280601f01601f191660200182016040528015610aa25781602001600182028036833780820191505090505b509050600085604051602001610ab8919061140b565b604051602081830303815290604052905060005b6014811015610b8757818181518110610ae857610ae76111b0565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838281518110610b4557610b446111b0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610b7f90611271565b915050610acc565b5084604051602001610b99919061140b565b604051602081830303815290604052905060005b6014811015610c7457818181518110610bc957610bc86111b0565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283601483610c2191906112b9565b81518110610c3257610c316111b0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610c6c90611271565b915050610bad565b50600282604051610c85919061135e565b602060405180830381855afa158015610ca2573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610cc5919061138a565b925082935050505092915050565b6040518060400160405280600290602082028036833780820191505090505090565b828054828255906000526020600020908101928215610d31579160200282015b82811115610d30578251825591602001919060010190610d15565b5b509050610d3e9190610d42565b5090565b5b80821115610d5b576000816000905550600101610d43565b5090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610d9981610d64565b8114610da457600080fd5b50565b600081359050610db681610d90565b92915050565b600060208284031215610dd257610dd1610d5f565b5b6000610de084828501610da7565b91505092915050565b60008115159050919050565b610dfe81610de9565b82525050565b6000602082019050610e196000830184610df5565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e4a82610e1f565b9050919050565b610e5a81610e3f565b8114610e6557600080fd5b50565b600081359050610e7781610e51565b92915050565b6000819050919050565b610e9081610e7d565b8114610e9b57600080fd5b50565b600081359050610ead81610e87565b92915050565b60008060408385031215610eca57610ec9610d5f565b5b6000610ed885828601610e68565b9250506020610ee985828601610e9e565b9150509250929050565b610efc81610e3f565b82525050565b6000602082019050610f176000830184610ef3565b92915050565b600060208284031215610f3357610f32610d5f565b5b6000610f4184828501610e68565b91505092915050565b610f5381610e7d565b82525050565b6000602082019050610f6e6000830184610f4a565b92915050565b6000819050919050565b610f8781610f74565b8114610f9257600080fd5b50565b600081359050610fa481610f7e565b92915050565b600080600060608486031215610fc357610fc2610d5f565b5b6000610fd186828701610e68565b9350506020610fe286828701610f95565b9250506040610ff386828701610f95565b9150509250925092565b6000806040838503121561101457611013610d5f565b5b600061102285828601610e68565b925050602061103385828601610e68565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61107281610f74565b82525050565b60006110848383611069565b60208301905092915050565b6000602082019050919050565b60006110a88261103d565b6110b28185611048565b93506110bd83611059565b8060005b838110156110ee5781516110d58882611078565b97506110e083611090565b9250506001810190506110c1565b5085935050505092915050565b60006020820190508181036000830152611115818461109d565b905092915050565b60008060006060848603121561113657611135610d5f565b5b600061114486828701610e68565b935050602061115586828701610e68565b925050604061116686828701610f95565b9150509250925092565b6000806040838503121561118757611186610d5f565b5b600061119585828601610e68565b92505060206111a685828601610f95565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061121982610e7d565b915061122483610e7d565b925082820390508181111561123c5761123b6111df565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600061127c82610e7d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036112ae576112ad6111df565b5b600182019050919050565b60006112c482610e7d565b91506112cf83610e7d565b92508282019050808211156112e7576112e66111df565b5b92915050565b600081519050919050565b600081905092915050565b60005b83811015611321578082015181840152602081019050611306565b60008484015250505050565b6000611338826112ed565b61134281856112f8565b9350611352818560208601611303565b80840191505092915050565b600061136a828461132d565b915081905092915050565b60008151905061138481610f7e565b92915050565b6000602082840312156113a05761139f610d5f565b5b60006113ae84828501611375565b91505092915050565b60006c0100000000000000000000000082029050919050565b60006113db826113b7565b9050919050565b60006113ed826113d0565b9050919050565b61140561140082610e3f565b6113e2565b82525050565b600061141782846113f4565b6014820191508190509291505056fea264697066735822122041aaaa602e18e77f6ab19f5e123cd6c4e7ef48306ead12a07abd3d433712e81a64736f6c63430008120033
+\ No newline at end of file
diff --git a/python/eth_address_declarator/data/AddressDeclarator.json b/python/eth_address_declarator/data/AddressDeclarator.json
@@ -1 +1 @@
-[{"inputs":[{"internalType":"bytes32","name":"_initial","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_declarator","type":"address"},{"indexed":true,"internalType":"address","name":"_subject","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_topic","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"DeclarationAdded","type":"event"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"},{"internalType":"bytes32","name":"_topic","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"contents","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_topic","type":"bytes32"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declarationAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"}],"name":"declarationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declaratorAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"}],"name":"declaratorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}]
+[{"inputs":[{"internalType":"bytes32","name":"_initial","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_declarator","type":"address"},{"indexed":true,"internalType":"address","name":"_subject","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_topic","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"DeclarationAdded","type":"event"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"},{"internalType":"bytes32","name":"_topic","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_topic","type":"bytes32"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declarationAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"}],"name":"declarationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declaratorAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"}],"name":"declaratorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}]
diff --git a/python/eth_address_declarator/data/AddressDeclarator.metadata.json b/python/eth_address_declarator/data/AddressDeclarator.metadata.json
@@ -1 +1 @@
-{"compiler":{"version":"0.8.18+commit.87f61d96"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_initial","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_declarator","type":"address"},{"indexed":true,"internalType":"address","name":"_subject","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_topic","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"DeclarationAdded","type":"event"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"},{"internalType":"bytes32","name":"_topic","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"contents","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_topic","type":"bytes32"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declarationAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"}],"name":"declarationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declaratorAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"}],"name":"declaratorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"AddressDeclarator.sol":"AddressDeclarator"},"evmVersion":"byzantium","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"AddressDeclarator.sol":{"keccak256":"0x9beb91f8253207157f31e6377630ae2c2c50992828a10985de074ce423e5f0c5","license":"AGPL-3.0-or-later","urls":["bzz-raw://e72ec9920e727f1ba6ed474317051515489acac4dacb5cc273118a9cce57c246","dweb:/ipfs/QmRK2ZKdtQP6CbQNJx7fertRgSsk1VcmhbssRcvpwHvaDP"]}},"version":1}
+{"compiler":{"version":"0.8.18+commit.87f61d96"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_initial","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_declarator","type":"address"},{"indexed":true,"internalType":"address","name":"_subject","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_topic","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"DeclarationAdded","type":"event"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"},{"internalType":"bytes32","name":"_topic","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_topic","type":"bytes32"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declarationAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"}],"name":"declarationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declaratorAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"}],"name":"declaratorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"AddressDeclarator.sol":"AddressDeclarator"},"evmVersion":"byzantium","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"AddressDeclarator.sol":{"keccak256":"0x44cf5a059a1525a4015b98dfad9ff85c7736a7c3dbd950fc06cf9f833cf46385","license":"AGPL-3.0-or-later","urls":["bzz-raw://0cfcaf0cb346885ba4bac8c9b2bd4bbdacc9d55ce263d04150ab4c1293747b15","dweb:/ipfs/QmTs821JYsbvnF3qDcyzSSaFpNXLBqcGuoRdZa6kLtAXWa"]}},"version":1}
diff --git a/solidity/AddressDeclarator.bin b/solidity/AddressDeclarator.bin
@@ -1 +1 @@
-60806040523480156200001157600080fd5b506040516200211938038062002119833981810160405281019062000037919062000900565b6200005230826200005a640100000000026401000000009004565b505062000bcb565b60006200007c8383600060010262000084640100000000026401000000009004565b905092915050565b6000620000906200082d565b60606000620000b032888762000309640100000000026401000000009004565b92506001600084600160028110620000cd57620000cc62000932565b5b60200201518152602001908152602001600020549050600081036200028057600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020329080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600482908060018154018082558091505060019003906000526020600020016000909190919091509080519060200190620001c99291906200084f565b506000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016004805490506200027d91906200099a565b90505b8060016000856001600281106200029c576200029b62000932565b5b602002015181526020019081526020016000208190555060048181548110620002ca57620002c962000932565b5b90600052602060002001869080600181540180825580915050600190039060005260206000200160009091909190915055600193505050509392505050565b620003136200082d565b60006200031f6200082d565b6000604067ffffffffffffffff8111156200033f576200033e620009d5565b5b6040519080825280601f01601f191660200182016040528015620003725781602001600182028036833780820191505090505b50905062000390878762000587640100000000026401000000009004565b925060005b60208110156200043357838160208110620003b557620003b462000932565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002828281518110620003ee57620003ed62000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806200042a9062000a04565b91505062000395565b5060005b6020811015620004e35785816020811062000457576200045662000932565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002826020836200048a919062000a51565b815181106200049e576200049d62000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620004da9062000a04565b91505062000437565b508282600060028110620004fc57620004fb62000932565b5b60200201818152505060028160405162000517919062000b05565b602060405180830381855afa15801562000535573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200055a919062000900565b8260016002811062000571576200057062000932565b5b6020020181815250508193505050509392505050565b6000806000602867ffffffffffffffff811115620005aa57620005a9620009d5565b5b6040519080825280601f01601f191660200182016040528015620005dd5781602001600182028036833780820191505090505b509050600085604051602001620005f5919062000bae565b604051602081830303815290604052905060005b6014811015620006ce5781818151811062000629576200062862000932565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283828151811062000689576200068862000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620006c59062000a04565b91505062000609565b5084604051602001620006e2919062000bae565b604051602081830303815290604052905060005b6014811015620007c95781818151811062000716576200071562000932565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028360148362000770919062000a51565b8151811062000784576200078362000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620007c09062000a04565b915050620006f6565b50600282604051620007dc919062000b05565b602060405180830381855afa158015620007fa573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200081f919062000900565b925082935050505092915050565b6040518060400160405280600290602082028036833780820191505090505090565b8280548282559060005260206000209081019282156200088e579160200282015b828111156200088d57825182559160200191906001019062000870565b5b5090506200089d9190620008a1565b5090565b5b80821115620008bc576000816000905550600101620008a2565b5090565b600080fd5b6000819050919050565b620008da81620008c5565b8114620008e657600080fd5b50565b600081519050620008fa81620008cf565b92915050565b600060208284031215620009195762000918620008c0565b5b60006200092984828501620008e9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009a78262000961565b9150620009b48362000961565b9250828203905081811115620009cf57620009ce6200096b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600062000a118262000961565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000a465762000a456200096b565b5b600182019050919050565b600062000a5e8262000961565b915062000a6b8362000961565b925082820190508082111562000a865762000a856200096b565b5b92915050565b600081519050919050565b600081905092915050565b60005b8381101562000ac257808201518184015260208101905062000aa5565b60008484015250505050565b600062000adb8262000a8c565b62000ae7818562000a97565b935062000af981856020860162000aa2565b80840191505092915050565b600062000b13828462000ace565b915081905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b4b8262000b1e565b9050919050565b60006c0100000000000000000000000082029050919050565b600062000b788262000b52565b9050919050565b600062000b8c8262000b6b565b9050919050565b62000ba862000ba28262000b3e565b62000b7f565b82525050565b600062000bbc828462000b93565b60148201915081905092915050565b61153e8062000bdb6000396000f3fe608060405234801561001057600080fd5b50600436106100bb576000357c0100000000000000000000000000000000000000000000000000000000900480638c661b36116100835780638c661b36146101b057806390387bab146101e0578063ae47ece014610210578063d0e95db114610240578063ff7496b414610270576100bb565b806301ffc9a7146100c057806322168e4f146100f057806350e0c6d3146101205780636ef498a0146101505780637d64bf1d14610180575b600080fd5b6100da60048036038101906100d59190610e34565b6102a0565b6040516100e79190610e7c565b60405180910390f35b61010a60048036038101906101059190610f2b565b610350565b6040516101179190610f7a565b60405180910390f35b61013a60048036038101906101359190610f95565b6103d5565b6040516101479190610fd1565b60405180910390f35b61016a60048036038101906101659190611022565b610420565b6040516101779190610e7c565b60405180910390f35b61019a60048036038101906101959190610f2b565b610684565b6040516101a79190610f7a565b60405180910390f35b6101ca60048036038101906101c59190611075565b61070a565b6040516101d79190611173565b60405180910390f35b6101fa60048036038101906101f59190611195565b610723565b6040516102079190611173565b60405180910390f35b61022a600480360381019061022591906111e8565b6107e2565b6040516102379190610e7c565b60405180910390f35b61025a60048036038101906102559190610f95565b6107fb565b6040516102679190610fd1565b60405180910390f35b61028a60048036038101906102859190611228565b610847565b6040516102979190611277565b60405180910390f35b60006327beb9107c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036102f4576001905061034b565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610346576001905061034b565b600090505b919050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106103a2576103a1611292565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600061042a610d4b565b60606000610439328887610884565b9250600160008460016002811061045357610452611292565b5b602002015181526020019081526020016000205490506000810361060157600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020329080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060048290806001815401808255809150506001900390600052602060002001600090919091909150908051906020019061054c929190610d6d565b506000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016004805490506105fe91906112f0565b90505b80600160008560016002811061061a57610619611292565b5b60200201518152602001908152602001600020819055506004818154811061064557610644611292565b5b90600052602060002001869080600181540180825580915050600190039060005260206000200160009091909190915055600193505050509392505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106106d7576106d6611292565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b606061071b83836000600102610723565b905092915050565b606061072d610d4b565b600061073a868686610884565b9150600160008360016002811061075457610753611292565b5b602002015181526020019081526020016000205490506004818154811061077e5761077d611292565b5b906000526020600020018054806020026020016040519081016040528092919081815260200182805480156107d257602002820191906000526020600020905b8154815260200190600101908083116107be575b5050505050925050509392505050565b60006107f383836000600102610420565b905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6004828154811061085757600080fd5b90600052602060002001818154811061086f57600080fd5b90600052602060002001600091509150505481565b61088c610d4b565b6000610896610d4b565b6000604067ffffffffffffffff8111156108b3576108b2611324565b5b6040519080825280601f01601f1916602001820160405280156108e55781602001600182028036833780820191505090505b5090506108f28787610ac8565b925060005b602081101561098b5783816020811061091357610912611292565b5b1a7f01000000000000000000000000000000000000000000000000000000000000000282828151811061094957610948611292565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061098390611353565b9150506108f7565b5060005b6020811015610a2f578581602081106109ab576109aa611292565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002826020836109dc919061139b565b815181106109ed576109ec611292565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610a2790611353565b91505061098f565b508282600060028110610a4557610a44611292565b5b602002018181525050600281604051610a5e9190611440565b602060405180830381855afa158015610a7b573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610a9e919061146c565b82600160028110610ab257610ab1611292565b5b6020020181815250508193505050509392505050565b6000806000602867ffffffffffffffff811115610ae857610ae7611324565b5b6040519080825280601f01601f191660200182016040528015610b1a5781602001600182028036833780820191505090505b509050600085604051602001610b3091906114ed565b604051602081830303815290604052905060005b6014811015610bff57818181518110610b6057610b5f611292565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838281518110610bbd57610bbc611292565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610bf790611353565b915050610b44565b5084604051602001610c1191906114ed565b604051602081830303815290604052905060005b6014811015610cec57818181518110610c4157610c40611292565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283601483610c99919061139b565b81518110610caa57610ca9611292565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610ce490611353565b915050610c25565b50600282604051610cfd9190611440565b602060405180830381855afa158015610d1a573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d3d919061146c565b925082935050505092915050565b6040518060400160405280600290602082028036833780820191505090505090565b828054828255906000526020600020908101928215610da9579160200282015b82811115610da8578251825591602001919060010190610d8d565b5b509050610db69190610dba565b5090565b5b80821115610dd3576000816000905550600101610dbb565b5090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610e1181610ddc565b8114610e1c57600080fd5b50565b600081359050610e2e81610e08565b92915050565b600060208284031215610e4a57610e49610dd7565b5b6000610e5884828501610e1f565b91505092915050565b60008115159050919050565b610e7681610e61565b82525050565b6000602082019050610e916000830184610e6d565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ec282610e97565b9050919050565b610ed281610eb7565b8114610edd57600080fd5b50565b600081359050610eef81610ec9565b92915050565b6000819050919050565b610f0881610ef5565b8114610f1357600080fd5b50565b600081359050610f2581610eff565b92915050565b60008060408385031215610f4257610f41610dd7565b5b6000610f5085828601610ee0565b9250506020610f6185828601610f16565b9150509250929050565b610f7481610eb7565b82525050565b6000602082019050610f8f6000830184610f6b565b92915050565b600060208284031215610fab57610faa610dd7565b5b6000610fb984828501610ee0565b91505092915050565b610fcb81610ef5565b82525050565b6000602082019050610fe66000830184610fc2565b92915050565b6000819050919050565b610fff81610fec565b811461100a57600080fd5b50565b60008135905061101c81610ff6565b92915050565b60008060006060848603121561103b5761103a610dd7565b5b600061104986828701610ee0565b935050602061105a8682870161100d565b925050604061106b8682870161100d565b9150509250925092565b6000806040838503121561108c5761108b610dd7565b5b600061109a85828601610ee0565b92505060206110ab85828601610ee0565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6110ea81610fec565b82525050565b60006110fc83836110e1565b60208301905092915050565b6000602082019050919050565b6000611120826110b5565b61112a81856110c0565b9350611135836110d1565b8060005b8381101561116657815161114d88826110f0565b975061115883611108565b925050600181019050611139565b5085935050505092915050565b6000602082019050818103600083015261118d8184611115565b905092915050565b6000806000606084860312156111ae576111ad610dd7565b5b60006111bc86828701610ee0565b93505060206111cd86828701610ee0565b92505060406111de8682870161100d565b9150509250925092565b600080604083850312156111ff576111fe610dd7565b5b600061120d85828601610ee0565b925050602061121e8582860161100d565b9150509250929050565b6000806040838503121561123f5761123e610dd7565b5b600061124d85828601610f16565b925050602061125e85828601610f16565b9150509250929050565b61127181610fec565b82525050565b600060208201905061128c6000830184611268565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006112fb82610ef5565b915061130683610ef5565b925082820390508181111561131e5761131d6112c1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600061135e82610ef5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036113905761138f6112c1565b5b600182019050919050565b60006113a682610ef5565b91506113b183610ef5565b92508282019050808211156113c9576113c86112c1565b5b92915050565b600081519050919050565b600081905092915050565b60005b838110156114035780820151818401526020810190506113e8565b60008484015250505050565b600061141a826113cf565b61142481856113da565b93506114348185602086016113e5565b80840191505092915050565b600061144c828461140f565b915081905092915050565b60008151905061146681610ff6565b92915050565b60006020828403121561148257611481610dd7565b5b600061149084828501611457565b91505092915050565b60006c0100000000000000000000000082029050919050565b60006114bd82611499565b9050919050565b60006114cf826114b2565b9050919050565b6114e76114e282610eb7565b6114c4565b82525050565b60006114f982846114d6565b6014820191508190509291505056fea26469706673582212201ffe12fd968c34e88544519929906fb4f988af2759580790b0c29b4524b292fe64736f6c63430008120033
-\ No newline at end of file
+60806040523480156200001157600080fd5b506040516200203738038062002037833981810160405281019062000037919062000900565b6200005230826200005a640100000000026401000000009004565b505062000bcb565b60006200007c8383600060010262000084640100000000026401000000009004565b905092915050565b6000620000906200082d565b60606000620000b032888762000309640100000000026401000000009004565b92506001600084600160028110620000cd57620000cc62000932565b5b60200201518152602001908152602001600020549050600081036200028057600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020329080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600482908060018154018082558091505060019003906000526020600020016000909190919091509080519060200190620001c99291906200084f565b506000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016004805490506200027d91906200099a565b90505b8060016000856001600281106200029c576200029b62000932565b5b602002015181526020019081526020016000208190555060048181548110620002ca57620002c962000932565b5b90600052602060002001869080600181540180825580915050600190039060005260206000200160009091909190915055600193505050509392505050565b620003136200082d565b60006200031f6200082d565b6000604067ffffffffffffffff8111156200033f576200033e620009d5565b5b6040519080825280601f01601f191660200182016040528015620003725781602001600182028036833780820191505090505b50905062000390878762000587640100000000026401000000009004565b925060005b60208110156200043357838160208110620003b557620003b462000932565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002828281518110620003ee57620003ed62000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806200042a9062000a04565b91505062000395565b5060005b6020811015620004e35785816020811062000457576200045662000932565b5b1a7f010000000000000000000000000000000000000000000000000000000000000002826020836200048a919062000a51565b815181106200049e576200049d62000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620004da9062000a04565b91505062000437565b508282600060028110620004fc57620004fb62000932565b5b60200201818152505060028160405162000517919062000b05565b602060405180830381855afa15801562000535573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200055a919062000900565b8260016002811062000571576200057062000932565b5b6020020181815250508193505050509392505050565b6000806000602867ffffffffffffffff811115620005aa57620005a9620009d5565b5b6040519080825280601f01601f191660200182016040528015620005dd5781602001600182028036833780820191505090505b509050600085604051602001620005f5919062000bae565b604051602081830303815290604052905060005b6014811015620006ce5781818151811062000629576200062862000932565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283828151811062000689576200068862000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620006c59062000a04565b91505062000609565b5084604051602001620006e2919062000bae565b604051602081830303815290604052905060005b6014811015620007c95781818151811062000716576200071562000932565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028360148362000770919062000a51565b8151811062000784576200078362000932565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080620007c09062000a04565b915050620006f6565b50600282604051620007dc919062000b05565b602060405180830381855afa158015620007fa573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906200081f919062000900565b925082935050505092915050565b6040518060400160405280600290602082028036833780820191505090505090565b8280548282559060005260206000209081019282156200088e579160200282015b828111156200088d57825182559160200191906001019062000870565b5b5090506200089d9190620008a1565b5090565b5b80821115620008bc576000816000905550600101620008a2565b5090565b600080fd5b6000819050919050565b620008da81620008c5565b8114620008e657600080fd5b50565b600081519050620008fa81620008cf565b92915050565b600060208284031215620009195762000918620008c0565b5b60006200092984828501620008e9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009a78262000961565b9150620009b48362000961565b9250828203905081811115620009cf57620009ce6200096b565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600062000a118262000961565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000a465762000a456200096b565b5b600182019050919050565b600062000a5e8262000961565b915062000a6b8362000961565b925082820190508082111562000a865762000a856200096b565b5b92915050565b600081519050919050565b600081905092915050565b60005b8381101562000ac257808201518184015260208101905062000aa5565b60008484015250505050565b600062000adb8262000a8c565b62000ae7818562000a97565b935062000af981856020860162000aa2565b80840191505092915050565b600062000b13828462000ace565b915081905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b4b8262000b1e565b9050919050565b60006c0100000000000000000000000082029050919050565b600062000b788262000b52565b9050919050565b600062000b8c8262000b6b565b9050919050565b62000ba862000ba28262000b3e565b62000b7f565b82525050565b600062000bbc828462000b93565b60148201915081905092915050565b61145c8062000bdb6000396000f3fe608060405234801561001057600080fd5b50600436106100b0576000357c0100000000000000000000000000000000000000000000000000000000900480637d64bf1d116100835780637d64bf1d146101755780638c661b36146101a557806390387bab146101d5578063ae47ece014610205578063d0e95db114610235576100b0565b806301ffc9a7146100b557806322168e4f146100e557806350e0c6d3146101155780636ef498a014610145575b600080fd5b6100cf60048036038101906100ca9190610dbc565b610265565b6040516100dc9190610e04565b60405180910390f35b6100ff60048036038101906100fa9190610eb3565b610315565b60405161010c9190610f02565b60405180910390f35b61012f600480360381019061012a9190610f1d565b61039a565b60405161013c9190610f59565b60405180910390f35b61015f600480360381019061015a9190610faa565b6103e5565b60405161016c9190610e04565b60405180910390f35b61018f600480360381019061018a9190610eb3565b610649565b60405161019c9190610f02565b60405180910390f35b6101bf60048036038101906101ba9190610ffd565b6106cf565b6040516101cc91906110fb565b60405180910390f35b6101ef60048036038101906101ea919061111d565b6106e8565b6040516101fc91906110fb565b60405180910390f35b61021f600480360381019061021a9190611170565b6107a7565b60405161022c9190610e04565b60405180910390f35b61024f600480360381019061024a9190610f1d565b6107c0565b60405161025c9190610f59565b60405180910390f35b60006321b7493b7c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916036102b95760019050610310565b6301ffc9a77c010000000000000000000000000000000000000000000000000000000002827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19160361030b5760019050610310565b600090505b919050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110610367576103666111b0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b60006103ef610cd3565b606060006103fe32888761080c565b92506001600084600160028110610418576104176111b0565b5b60200201518152602001908152602001600020549050600081036105c657600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020329080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600482908060018154018082558091505060019003906000526020600020016000909190919091509080519060200190610511929190610cf5565b506000803273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020879080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016004805490506105c3919061120e565b90505b8060016000856001600281106105df576105de6111b0565b5b60200201518152602001908152602001600020819055506004818154811061060a576106096111b0565b5b90600052602060002001869080600181540180825580915050600190039060005260206000200160009091909190915055600193505050509392505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061069c5761069b6111b0565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60606106e0838360006001026106e8565b905092915050565b60606106f2610cd3565b60006106ff86868661080c565b91506001600083600160028110610719576107186111b0565b5b6020020151815260200190815260200160002054905060048181548110610743576107426111b0565b5b9060005260206000200180548060200260200160405190810160405280929190818152602001828054801561079757602002820191906000526020600020905b815481526020019060010190808311610783575b5050505050925050509392505050565b60006107b8838360006001026103e5565b905092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b610814610cd3565b600061081e610cd3565b6000604067ffffffffffffffff81111561083b5761083a611242565b5b6040519080825280601f01601f19166020018201604052801561086d5781602001600182028036833780820191505090505b50905061087a8787610a50565b925060005b60208110156109135783816020811061089b5761089a6111b0565b5b1a7f0100000000000000000000000000000000000000000000000000000000000000028282815181106108d1576108d06111b0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061090b90611271565b91505061087f565b5060005b60208110156109b757858160208110610933576109326111b0565b5b1a7f0100000000000000000000000000000000000000000000000000000000000000028260208361096491906112b9565b81518110610975576109746111b0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080806109af90611271565b915050610917565b5082826000600281106109cd576109cc6111b0565b5b6020020181815250506002816040516109e6919061135e565b602060405180830381855afa158015610a03573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610a26919061138a565b82600160028110610a3a57610a396111b0565b5b6020020181815250508193505050509392505050565b6000806000602867ffffffffffffffff811115610a7057610a6f611242565b5b6040519080825280601f01601f191660200182016040528015610aa25781602001600182028036833780820191505090505b509050600085604051602001610ab8919061140b565b604051602081830303815290604052905060005b6014811015610b8757818181518110610ae857610ae76111b0565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838281518110610b4557610b446111b0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610b7f90611271565b915050610acc565b5084604051602001610b99919061140b565b604051602081830303815290604052905060005b6014811015610c7457818181518110610bc957610bc86111b0565b5b60200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283601483610c2191906112b9565b81518110610c3257610c316111b0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508080610c6c90611271565b915050610bad565b50600282604051610c85919061135e565b602060405180830381855afa158015610ca2573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610cc5919061138a565b925082935050505092915050565b6040518060400160405280600290602082028036833780820191505090505090565b828054828255906000526020600020908101928215610d31579160200282015b82811115610d30578251825591602001919060010190610d15565b5b509050610d3e9190610d42565b5090565b5b80821115610d5b576000816000905550600101610d43565b5090565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610d9981610d64565b8114610da457600080fd5b50565b600081359050610db681610d90565b92915050565b600060208284031215610dd257610dd1610d5f565b5b6000610de084828501610da7565b91505092915050565b60008115159050919050565b610dfe81610de9565b82525050565b6000602082019050610e196000830184610df5565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610e4a82610e1f565b9050919050565b610e5a81610e3f565b8114610e6557600080fd5b50565b600081359050610e7781610e51565b92915050565b6000819050919050565b610e9081610e7d565b8114610e9b57600080fd5b50565b600081359050610ead81610e87565b92915050565b60008060408385031215610eca57610ec9610d5f565b5b6000610ed885828601610e68565b9250506020610ee985828601610e9e565b9150509250929050565b610efc81610e3f565b82525050565b6000602082019050610f176000830184610ef3565b92915050565b600060208284031215610f3357610f32610d5f565b5b6000610f4184828501610e68565b91505092915050565b610f5381610e7d565b82525050565b6000602082019050610f6e6000830184610f4a565b92915050565b6000819050919050565b610f8781610f74565b8114610f9257600080fd5b50565b600081359050610fa481610f7e565b92915050565b600080600060608486031215610fc357610fc2610d5f565b5b6000610fd186828701610e68565b9350506020610fe286828701610f95565b9250506040610ff386828701610f95565b9150509250925092565b6000806040838503121561101457611013610d5f565b5b600061102285828601610e68565b925050602061103385828601610e68565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61107281610f74565b82525050565b60006110848383611069565b60208301905092915050565b6000602082019050919050565b60006110a88261103d565b6110b28185611048565b93506110bd83611059565b8060005b838110156110ee5781516110d58882611078565b97506110e083611090565b9250506001810190506110c1565b5085935050505092915050565b60006020820190508181036000830152611115818461109d565b905092915050565b60008060006060848603121561113657611135610d5f565b5b600061114486828701610e68565b935050602061115586828701610e68565b925050604061116686828701610f95565b9150509250925092565b6000806040838503121561118757611186610d5f565b5b600061119585828601610e68565b92505060206111a685828601610f95565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061121982610e7d565b915061122483610e7d565b925082820390508181111561123c5761123b6111df565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600061127c82610e7d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036112ae576112ad6111df565b5b600182019050919050565b60006112c482610e7d565b91506112cf83610e7d565b92508282019050808211156112e7576112e66111df565b5b92915050565b600081519050919050565b600081905092915050565b60005b83811015611321578082015181840152602081019050611306565b60008484015250505050565b6000611338826112ed565b61134281856112f8565b9350611352818560208601611303565b80840191505092915050565b600061136a828461132d565b915081905092915050565b60008151905061138481610f7e565b92915050565b6000602082840312156113a05761139f610d5f565b5b60006113ae84828501611375565b91505092915050565b60006c0100000000000000000000000082029050919050565b60006113db826113b7565b9050919050565b60006113ed826113d0565b9050919050565b61140561140082610e3f565b6113e2565b82525050565b600061141782846113f4565b6014820191508190509291505056fea264697066735822122041aaaa602e18e77f6ab19f5e123cd6c4e7ef48306ead12a07abd3d433712e81a64736f6c63430008120033
+\ No newline at end of file
diff --git a/solidity/AddressDeclarator.json b/solidity/AddressDeclarator.json
@@ -1 +1 @@
-[{"inputs":[{"internalType":"bytes32","name":"_initial","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_declarator","type":"address"},{"indexed":true,"internalType":"address","name":"_subject","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_topic","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"DeclarationAdded","type":"event"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"},{"internalType":"bytes32","name":"_topic","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"contents","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_topic","type":"bytes32"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declarationAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"}],"name":"declarationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declaratorAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"}],"name":"declaratorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}]
+[{"inputs":[{"internalType":"bytes32","name":"_initial","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_declarator","type":"address"},{"indexed":true,"internalType":"address","name":"_subject","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_topic","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"DeclarationAdded","type":"event"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"},{"internalType":"bytes32","name":"_topic","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_proof","type":"bytes32"}],"name":"addDeclaration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"address","name":"_subject","type":"address"},{"internalType":"bytes32","name":"_topic","type":"bytes32"}],"name":"declaration","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declarationAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_declarator","type":"address"}],"name":"declarationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"},{"internalType":"uint256","name":"_idx","type":"uint256"}],"name":"declaratorAddressAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_subject","type":"address"}],"name":"declaratorCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_sum","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}]
diff --git a/solidity/AddressDeclarator.sol b/solidity/AddressDeclarator.sol
@@ -1,4 +1,4 @@
-pragma solidity >0.6.11;
+pragma solidity >=0.8.0;
// SPDX-License-Identifier: AGPL-3.0-or-later
@@ -8,14 +8,17 @@ contract AddressDeclarator {
mapping( bytes32 => uint256 ) declarationContentIndex; // the _latest_ content pointer for the declarator to subject mapping
mapping( address => address[] ) declarator;
mapping( address => address[] ) declaratorReverse;
- bytes32[][] public contents;
+ bytes32[][] contents;
+
+ // Implements Declarator
event DeclarationAdded(address indexed _declarator, address indexed _subject, bytes32 indexed _topic, bytes32 _proof);
constructor(bytes32 _initial) {
addDeclaration(address(this), _initial);
}
+ // Create a digest reference for a declarator and subject pair
function toReference(address _declarator, address _subject) private pure returns ( bytes32 ) {
bytes32 k;
bytes memory addrMaterial = new bytes(40);
@@ -31,7 +34,8 @@ contract AddressDeclarator {
return k;
}
- function toReference(address _declarator, address _subject, bytes32 _proof) private pure returns ( bytes32[2] memory ) {
+ // Create a digest reference for a declarator and subject pair on top of the given digest
+ function toReference(address _declarator, address _subject, bytes32 _digest) private pure returns ( bytes32[2] memory ) {
bytes32 k;
bytes32[2] memory ks;
bytes memory signMaterial = new bytes(64);
@@ -41,7 +45,7 @@ contract AddressDeclarator {
signMaterial[i] = k[i];
}
for (uint256 i = 0; i < 32; i++) {
- signMaterial[i+32] = _proof[i];
+ signMaterial[i+32] = _digest[i];
}
ks[0] = k;
@@ -83,32 +87,11 @@ contract AddressDeclarator {
// Implements Declarator
function addDeclaration(address _subject, bytes32 _proof) public returns ( bool ) {
return addDeclaration(_subject, _proof, bytes32(0));
-// bytes32[2] memory ks;
-// bytes32[] memory declarationContents;
-// uint256 idx;
-// ks = toReference(tx.origin, _subject, _proof);
-// idx = declarationContentIndex[ks[0]];
-// if (idx == 0) { // This also works for the constructor :)
-// declarator[_subject].push(tx.origin);
-// contents.push(declarationContents);
-// declarationIndex[tx.origin].push(_subject);
-// idx = contents.length-1;
-// }
-//
-// declarationContentIndex[ks[0]] = idx;
-// contents[idx].push(_proof);
-//
-// return true;
}
// Implements Declarator
function declaration(address _declarator, address _subject) public view returns ( bytes32[] memory ) {
return declaration(_declarator, _subject, bytes32(0));
-// bytes32 k;
-// uint256 idx;
-// k = toReference(_declarator, _subject);
-// idx = declarationContentIndex[k];
-// return contents[idx];
}
// Implements Declarator
@@ -132,7 +115,7 @@ contract AddressDeclarator {
// Implements EIP165
function supportsInterface(bytes4 _sum) public pure returns (bool) {
- if (_sum == 0x27beb910) { // Implements Declarator
+ if (_sum == 0x21b7493b) { // Implements Declarator
return true;
}
if (_sum == 0x01ffc9a7) { // EIP165