evm-booking

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

commit 043d87d932a1fdc54c18ab5e975c0c320e3232eb
parent 33f193afb1c129bb2ef5c99c39ce9e2a68c85f98
Author: lash <dev@holbrook.no>
Date:   Thu,  1 Jun 2023 09:29:38 +0100

Add deposit method and resolution unit test

Diffstat:
Mpython/evm_booking/booking.py | 10++++++++++
Mpython/evm_booking/data/Booking.bin | 4++--
Mpython/evm_booking/data/Booking.json | 2+-
Mpython/evm_booking/data/Booking.metadata.json | 2+-
Mpython/evm_booking/unittest/base.py | 8++++++--
Mpython/tests/test_base.py | 26++++++++++++++++++++++++++
Msolidity/Booking.sol | 10+++++++---
7 files changed, 53 insertions(+), 9 deletions(-)

diff --git a/python/evm_booking/booking.py b/python/evm_booking/booking.py @@ -106,3 +106,13 @@ class Booking(TxFactory): tx = self.set_code(tx, data) tx = self.finalize(tx, tx_format, id_generator=id_generator) return tx + + + def deposit(self, contract_address, sender_address, tx_format=TxFormat.JSONRPC, id_generator=None): + enc = ABIContractEncoder() + enc.method('deposit') + data = add_0x(enc.get()) + tx = self.template(sender_address, contract_address, use_nonce=True) + tx = self.set_code(tx, data) + tx = self.finalize(tx, tx_format, id_generator=id_generator) + return tx diff --git a/python/evm_booking/data/Booking.bin b/python/evm_booking/data/Booking.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b50604051620021e3380380620021e38339818101604052810190620000379190620003d4565b60008111801562000058575070010000000000000000000000000000000081105b6200009a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000091906200047c565b60405180910390fd5b620000a46200030d565b620000be8262000270640100000000026401000000009004565b9050600181600060028110620000d957620000d86200049e565b5b6020020151620000ea9190620004fc565b67ffffffffffffffff81111562000106576200010562000537565b5b6040519080825280601f01601f191660200182016040528015620001395781602001600182028036833780820191505090505b50600290816200014a9190620007ad565b506001816000600281106200016457620001636200049e565b5b6020020151620001759190620004fc565b67ffffffffffffffff81111562000191576200019062000537565b5b6040519080825280601f01601f191660200182016040528015620001c45781602001600182028036833780820191505090505b5060039081620001d59190620007ad565b508160048190555060045460058190555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000a0e565b6200027a6200030d565b6000620002866200030d565b600160086001866200029991906200089e565b620002a5919062000917565b620002b191906200098b565b91508181600060028110620002cb57620002ca6200049e565b5b602002018181525050600884620002e39190620009d6565b81600160028110620002fa57620002f96200049e565b5b6020020181815250508092505050919050565b6040518060400160405280600290602082028036833780820191505090505090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003618262000334565b9050919050565b620003738162000354565b81146200037f57600080fd5b50565b600081519050620003938162000368565b92915050565b6000819050919050565b620003ae8162000399565b8114620003ba57600080fd5b50565b600081519050620003ce81620003a3565b92915050565b60008060408385031215620003ee57620003ed6200032f565b5b6000620003fe8582860162000382565b92505060206200041185828601620003bd565b9150509250929050565b600082825260208201905092915050565b7f4552525f4e4f4e53454e53450000000000000000000000000000000000000000600082015250565b600062000464600c836200041b565b915062000471826200042c565b602082019050919050565b60006020820190508181036000830152620004978162000455565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005098262000399565b9150620005168362000399565b9250828201905080821115620005315762000530620004cd565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005b957607f821691505b602082108103620005cf57620005ce62000571565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b60008160020a8302905092915050565b6000600883026200063c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005fa565b620006488683620005fa565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200068b620006856200067f8462000399565b62000660565b62000399565b9050919050565b6000819050919050565b620006a7836200066a565b620006bf620006b68262000692565b8484546200060a565b825550505050565b600090565b620006d6620006c7565b620006e38184846200069c565b505050565b5b818110156200070b57620006ff600082620006cc565b600181019050620006e9565b5050565b601f8211156200075a576200072481620005d5565b6200072f84620005ea565b810160208510156200073f578190505b620007576200074e85620005ea565b830182620006e8565b50505b505050565b60008160020a8304905092915050565b600062000782600019846008026200075f565b1980831691505092915050565b60006200079d83836200076f565b9150826002028217905092915050565b620007b88262000566565b67ffffffffffffffff811115620007d457620007d362000537565b5b620007e08254620005a0565b620007ed8282856200070f565b600060209050601f83116001811462000825576000841562000810578287015190505b6200081c85826200078f565b8655506200088c565b601f1984166200083586620005d5565b60005b828110156200085f5784890151825560018201915060208501945060208101905062000838565b868310156200087f57848901516200087b601f8916826200076f565b8355505b6001600288020188555050505b505050505050565b6000819050919050565b6000620008ab8262000894565b9150620008b88362000894565b9250828203905081811260008412168282136000851215161715620008e257620008e1620004cd565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009248262000894565b9150620009318362000894565b925082620009445762000943620008e8565b5b600160000383147f80000000000000000000000000000000000000000000000000000000000000008314161562000980576200097f620004cd565b5b828205905092915050565b6000620009988262000894565b9150620009a58362000894565b925082820190508281121560008312168382126000841215161715620009d057620009cf620004cd565b5b92915050565b6000620009e38262000399565b9150620009f08362000399565b92508262000a035762000a02620008e8565b5b828206905092915050565b6117c58062000a1e6000396000f3fe608060405234801561001057600080fd5b50600436106100c6576000357c0100000000000000000000000000000000000000000000000000000000900480637f03864b1161008e5780637f03864b146101835780638da5cb5b146101a1578063da2824a8146101bf578063de34d544146101ef578063f340fa011461020b578063fc0c546a1461023b576100c6565b806318160ddd146100cb5780632b29ba23146100e95780634eeea7ad146101195780635356dddc146101355780635cfc1a5114610165575b600080fd5b6100d3610259565b6040516100e09190610f21565b60405180910390f35b61010360048036038101906100fe9190610f9f565b61025f565b6040516101109190610fe7565b60405180910390f35b610133600480360381019061012e919061102e565b61030b565b005b61014f600480360381019061014a9190610f9f565b61031b565b60405161015c9190610fe7565b60405180910390f35b61016d610443565b60405161017a9190610f21565b60405180910390f35b61018b610449565b6040516101989190610f21565b60405180910390f35b6101a961044f565b6040516101b6919061107d565b60405180910390f35b6101d960048036038101906101d49190610f9f565b610473565b6040516101e69190610fe7565b60405180910390f35b6102096004803603810190610204919061102e565b610565565b005b61022560048036038101906102209190610f9f565b6105bd565b60405161023291906110b1565b60405180910390f35b6102436108b1565b604051610250919061107d565b60405180910390f35b60055481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610304575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b610317828260006108d7565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103a357508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6103e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d990611129565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60045481565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104fb90611129565b60405180910390fd5b6001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b61056e3361025f565b6105ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a490611129565b60405180910390fd5b6105b9828260016108d7565b5050565b60008060008060606000806105d0610ccb565b9550600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054860361062757600096505050505050506108ac565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866106729190611178565b9450600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611156106c6578791503090506106fb565b3091508790507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff856106f891906111bb565b94505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828760405160240161074993929190611233565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516107d391906112db565b6000604051808303816000865af19150503d8060008114610810576040519150601f19603f3d011682016040523d82523d6000602084013e610815565b606091505b5080945081955050508361085e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108559061133e565b60405180910390fd5b85600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508496505050505050505b919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000821161091a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610911906113aa565b60405180910390fd5b610922610ee6565b60008061092e86610d3f565b925082600060028110610944576109436113ca565b5b602002015191508260016002811061095f5761095e6113ca565b5b602002015160ff1660019060020a02905060005b85811015610cc2576000600454116109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b790611445565b60405180910390fd5b6109ca8383610dca565b610a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a00906114b1565b60405180910390fd5b8415610b4957816003848154610a1e90611500565b8110610a2d57610a2c6113ca565b5b815460011615610a4c5790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000027f01000000000000000000000000000000000000000000000000000000000000009004177f0100000000000000000000000000000000000000000000000000000000000000026003848154610ac690611500565b8110610ad557610ad46113ca565b5b815460011615610af45790600052602060002090602091828204019190065b601f036101000a81548160ff021916907f01000000000000000000000000000000000000000000000000000000000000008404021790555060066000815480929190610b3f90611531565b9190505550610c67565b816002848154610b5890611500565b8110610b6757610b666113ca565b5b815460011615610b865790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000027f01000000000000000000000000000000000000000000000000000000000000009004177f0100000000000000000000000000000000000000000000000000000000000000026002848154610c0090611500565b8110610c0f57610c0e6113ca565b5b815460011615610c2e5790600052602060002090602091828204019190065b601f036101000a81548160ff021916907f0100000000000000000000000000000000000000000000000000000000000000840402179055505b60808260ff1603610c89578280610c7d90611531565b93505060019150610c97565b60018260ff169060020a0291505b60046000815480929190610caa90611579565b91905055508080610cba90611531565b915050610973565b50505050505050565b60008060006005549150600554821015610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d11906115ee565b60405180910390fd5b60055482610d28919061163d565b905080600654610d38919061166e565b9250505090565b610d47610ee6565b6000610d51610ee6565b60016008600186610d629190611178565b610d6c91906116b0565b610d76919061171a565b91508181600060028110610d8d57610d8c6113ca565b5b602002018181525050600884610da3919061175e565b81600160028110610db757610db66113ca565b5b6020020181815250508092505050919050565b600080826003858154610ddc90611500565b8110610deb57610dea6113ca565b5b815460011615610e0a5790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000027f010000000000000000000000000000000000000000000000000000000000000090046002868154610e6190611500565b8110610e7057610e6f6113ca565b5b815460011615610e8f5790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000027f01000000000000000000000000000000000000000000000000000000000000009004171660ff1614905092915050565b6040518060400160405280600290602082028036833780820191505090505090565b6000819050919050565b610f1b81610f08565b82525050565b6000602082019050610f366000830184610f12565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610f6c82610f41565b9050919050565b610f7c81610f61565b8114610f8757600080fd5b50565b600081359050610f9981610f73565b92915050565b600060208284031215610fb557610fb4610f3c565b5b6000610fc384828501610f8a565b91505092915050565b60008115159050919050565b610fe181610fcc565b82525050565b6000602082019050610ffc6000830184610fd8565b92915050565b61100b81610f08565b811461101657600080fd5b50565b60008135905061102881611002565b92915050565b6000806040838503121561104557611044610f3c565b5b600061105385828601611019565b925050602061106485828601611019565b9150509250929050565b61107781610f61565b82525050565b6000602082019050611092600083018461106e565b92915050565b6000819050919050565b6110ab81611098565b82525050565b60006020820190506110c660008301846110a2565b92915050565b600082825260208201905092915050565b7f4552525f41585800000000000000000000000000000000000000000000000000600082015250565b60006111136007836110cc565b915061111e826110dd565b602082019050919050565b6000602082019050818103600083015261114281611106565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061118382611098565b915061118e83611098565b92508282039050818112600084121682821360008512151617156111b5576111b4611149565b5b92915050565b60006111c682611098565b91506111d183611098565b92508282026111df81611098565b91507f8000000000000000000000000000000000000000000000000000000000000000841460008412161561121757611216611149565b5b828205841483151761122c5761122b611149565b5b5092915050565b6000606082019050611248600083018661106e565b611255602083018561106e565b6112626040830184610f12565b949350505050565b600081519050919050565b600081905092915050565b60005b8381101561129e578082015181840152602081019050611283565b60008484015250505050565b60006112b58261126a565b6112bf8185611275565b93506112cf818560208601611280565b80840191505092915050565b60006112e782846112aa565b915081905092915050565b7f4552525f544f4b454e0000000000000000000000000000000000000000000000600082015250565b60006113286009836110cc565b9150611333826112f2565b602082019050919050565b600060208201905081810360008301526113578161131b565b9050919050565b7f4552525f5a45524f434f554e5400000000000000000000000000000000000000600082015250565b6000611394600d836110cc565b915061139f8261135e565b602082019050919050565b600060208201905081810360008301526113c381611387565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552525f43415041434954590000000000000000000000000000000000000000600082015250565b600061142f600c836110cc565b915061143a826113f9565b602082019050919050565b6000602082019050818103600083015261145e81611422565b9050919050565b7f4552525f434f4c4c4953494f4e00000000000000000000000000000000000000600082015250565b600061149b600d836110cc565b91506114a682611465565b602082019050919050565b600060208201905081810360008301526114ca8161148e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061151857607f821691505b60208210810361152b5761152a6114d1565b5b50919050565b600061153c82610f08565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361156e5761156d611149565b5b600182019050919050565b600061158482610f08565b91506000820361159757611596611149565b5b600182039050919050565b7f4552525f535550504c595f554e444552464c4f57000000000000000000000000600082015250565b60006115d86014836110cc565b91506115e3826115a2565b602082019050919050565b60006020820190508181036000830152611607816115cb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061164882610f08565b915061165383610f08565b9250826116635761166261160e565b5b828204905092915050565b600061167982610f08565b915061168483610f08565b925082820261169281610f08565b915082820484148315176116a9576116a8611149565b5b5092915050565b60006116bb82611098565b91506116c683611098565b9250826116d6576116d561160e565b5b600160000383147f80000000000000000000000000000000000000000000000000000000000000008314161561170f5761170e611149565b5b828205905092915050565b600061172582611098565b915061173083611098565b92508282019050828112156000831216838212600084121516171561175857611757611149565b5b92915050565b600061176982610f08565b915061177483610f08565b9250826117845761178361160e565b5b82820690509291505056fea2646970667358221220110af0d571b85125c2c35704c00faaa57dc53b09be15506cff0c06a0ee10009b64736f6c63430008130033 -\ No newline at end of file +60806040523480156200001157600080fd5b50604051620023dd380380620023dd8339818101604052810190620000379190620003d4565b60008111801562000058575070010000000000000000000000000000000081105b6200009a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000091906200047c565b60405180910390fd5b620000a46200030d565b620000be8262000270640100000000026401000000009004565b9050600181600060028110620000d957620000d86200049e565b5b6020020151620000ea9190620004fc565b67ffffffffffffffff81111562000106576200010562000537565b5b6040519080825280601f01601f191660200182016040528015620001395781602001600182028036833780820191505090505b50600290816200014a9190620007ad565b506001816000600281106200016457620001636200049e565b5b6020020151620001759190620004fc565b67ffffffffffffffff81111562000191576200019062000537565b5b6040519080825280601f01601f191660200182016040528015620001c45781602001600182028036833780820191505090505b5060039081620001d59190620007ad565b508160048190555060045460058190555082600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000a0e565b6200027a6200030d565b6000620002866200030d565b600160086001866200029991906200089e565b620002a5919062000917565b620002b191906200098b565b91508181600060028110620002cb57620002ca6200049e565b5b602002018181525050600884620002e39190620009d6565b81600160028110620002fa57620002f96200049e565b5b6020020181815250508092505050919050565b6040518060400160405280600290602082028036833780820191505090505090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003618262000334565b9050919050565b620003738162000354565b81146200037f57600080fd5b50565b600081519050620003938162000368565b92915050565b6000819050919050565b620003ae8162000399565b8114620003ba57600080fd5b50565b600081519050620003ce81620003a3565b92915050565b60008060408385031215620003ee57620003ed6200032f565b5b6000620003fe8582860162000382565b92505060206200041185828601620003bd565b9150509250929050565b600082825260208201905092915050565b7f4552525f4e4f4e53454e53450000000000000000000000000000000000000000600082015250565b600062000464600c836200041b565b915062000471826200042c565b602082019050919050565b60006020820190508181036000830152620004978162000455565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005098262000399565b9150620005168362000399565b9250828201905080821115620005315762000530620004cd565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005b957607f821691505b602082108103620005cf57620005ce62000571565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b60008160020a8302905092915050565b6000600883026200063c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005fa565b620006488683620005fa565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200068b620006856200067f8462000399565b62000660565b62000399565b9050919050565b6000819050919050565b620006a7836200066a565b620006bf620006b68262000692565b8484546200060a565b825550505050565b600090565b620006d6620006c7565b620006e38184846200069c565b505050565b5b818110156200070b57620006ff600082620006cc565b600181019050620006e9565b5050565b601f8211156200075a576200072481620005d5565b6200072f84620005ea565b810160208510156200073f578190505b620007576200074e85620005ea565b830182620006e8565b50505b505050565b60008160020a8304905092915050565b600062000782600019846008026200075f565b1980831691505092915050565b60006200079d83836200076f565b9150826002028217905092915050565b620007b88262000566565b67ffffffffffffffff811115620007d457620007d362000537565b5b620007e08254620005a0565b620007ed8282856200070f565b600060209050601f83116001811462000825576000841562000810578287015190505b6200081c85826200078f565b8655506200088c565b601f1984166200083586620005d5565b60005b828110156200085f5784890151825560018201915060208501945060208101905062000838565b868310156200087f57848901516200087b601f8916826200076f565b8355505b6001600288020188555050505b505050505050565b6000819050919050565b6000620008ab8262000894565b9150620008b88362000894565b9250828203905081811260008412168282136000851215161715620008e257620008e1620004cd565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009248262000894565b9150620009318362000894565b925082620009445762000943620008e8565b5b600160000383147f80000000000000000000000000000000000000000000000000000000000000008314161562000980576200097f620004cd565b5b828205905092915050565b6000620009988262000894565b9150620009a58362000894565b925082820190508281121560008312168382126000841215161715620009d057620009cf620004cd565b5b92915050565b6000620009e38262000399565b9150620009f08362000399565b92508262000a035762000a02620008e8565b5b828206905092915050565b6119bf8062000a1e6000396000f3fe608060405234801561001057600080fd5b50600436106100d1576000357c0100000000000000000000000000000000000000000000000000000000900480638da5cb5b1161008e5780638da5cb5b146101ac578063aa67c919146101ca578063d0e30db0146101fa578063da2824a814610218578063de34d54414610248578063fc0c546a14610264576100d1565b806318160ddd146100d65780632b29ba23146100f45780634eeea7ad146101245780635356dddc146101405780635cfc1a51146101705780637f03864b1461018e575b600080fd5b6100de610282565b6040516100eb91906110d9565b60405180910390f35b61010e60048036038101906101099190611157565b610288565b60405161011b919061119f565b60405180910390f35b61013e600480360381019061013991906111e6565b610334565b005b61015a60048036038101906101559190611157565b610344565b604051610167919061119f565b60405180910390f35b61017861046c565b60405161018591906110d9565b60405180910390f35b610196610472565b6040516101a391906110d9565b60405180910390f35b6101b4610478565b6040516101c19190611235565b60405180910390f35b6101e460048036038101906101df9190611157565b61049c565b6040516101f19190611269565b60405180910390f35b610202610790565b60405161020f9190611269565b60405180910390f35b610232600480360381019061022d9190611157565b6107a0565b60405161023f919061119f565b60405180910390f35b610262600480360381019061025d91906111e6565b610892565b005b61026c6108ea565b6040516102799190611235565b60405180910390f35b60055481565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061032d575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b61034082826000610910565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103cc57508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61040b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610402906112e1565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b60045481565b60065481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060606000806104af610d04565b9550600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548603610506576000965050505050505061078b565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866105519190611330565b9450600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611156105a5578791503090506105da565b3091508790507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff856105d79190611373565b94505b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828287604051602401610628939291906113eb565b6040516020818303038152906040527f23b872dd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516106b29190611493565b6000604051808303816000865af19150503d80600081146106ef576040519150601f19603f3d011682016040523d82523d6000602084013e6106f4565b606091505b5080945081955050508361073d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610734906114f6565b60405180910390fd5b85600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508496505050505050505b919050565b600061079b3361049c565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610831576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610828906112e1565b60405180910390fd5b6001600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060019050919050565b61089b33610288565b6108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d1906112e1565b60405180910390fd5b6108e682826001610910565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008211610953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094a90611562565b60405180910390fd5b61095b61109e565b60008061096786610d7d565b92508260006002811061097d5761097c611582565b5b602002015191508260016002811061099857610997611582565b5b602002015160ff1660019060020a02905060005b85811015610cfb576000600454116109f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f0906115fd565b60405180910390fd5b610a038383610e08565b610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3990611669565b60405180910390fd5b8415610b8257816003848154610a57906116b8565b8110610a6657610a65611582565b5b815460011615610a855790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000027f01000000000000000000000000000000000000000000000000000000000000009004177f0100000000000000000000000000000000000000000000000000000000000000026003848154610aff906116b8565b8110610b0e57610b0d611582565b5b815460011615610b2d5790600052602060002090602091828204019190065b601f036101000a81548160ff021916907f01000000000000000000000000000000000000000000000000000000000000008404021790555060066000815480929190610b78906116e9565b9190505550610ca0565b816002848154610b91906116b8565b8110610ba057610b9f611582565b5b815460011615610bbf5790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000027f01000000000000000000000000000000000000000000000000000000000000009004177f0100000000000000000000000000000000000000000000000000000000000000026002848154610c39906116b8565b8110610c4857610c47611582565b5b815460011615610c675790600052602060002090602091828204019190065b601f036101000a81548160ff021916907f0100000000000000000000000000000000000000000000000000000000000000840402179055505b60808260ff1603610cc2578280610cb6906116e9565b93505060019150610cd0565b60018260ff169060020a0291505b60046000815480929190610ce390611731565b91905055508080610cf3906116e9565b9150506109ac565b50505050505050565b6000806000610d11610f24565b9150600554821015610d58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4f906117a6565b60405180910390fd5b60055482610d6691906117f5565b905080600654610d769190611826565b9250505090565b610d8561109e565b6000610d8f61109e565b60016008600186610da09190611330565b610daa9190611868565b610db491906118d2565b91508181600060028110610dcb57610dca611582565b5b602002018181525050600884610de19190611916565b81600160028110610df557610df4611582565b5b6020020181815250508092505050919050565b600080826003858154610e1a906116b8565b8110610e2957610e28611582565b5b815460011615610e485790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000027f010000000000000000000000000000000000000000000000000000000000000090046002868154610e9f906116b8565b8110610eae57610ead611582565b5b815460011615610ecd5790600052602060002090602091828204019190065b9054901a7f0100000000000000000000000000000000000000000000000000000000000000027f01000000000000000000000000000000000000000000000000000000000000009004171660ff1614905092915050565b60008060606000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527f18160ddd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610ff49190611493565b6000604051808303816000865af19150503d8060008114611031576040519150601f19603f3d011682016040523d82523d6000602084013e611036565b606091505b5080935081945050508261107f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611076906114f6565b60405180910390fd5b81806020019051810190611093919061195c565b905080935050505090565b6040518060400160405280600290602082028036833780820191505090505090565b6000819050919050565b6110d3816110c0565b82525050565b60006020820190506110ee60008301846110ca565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611124826110f9565b9050919050565b61113481611119565b811461113f57600080fd5b50565b6000813590506111518161112b565b92915050565b60006020828403121561116d5761116c6110f4565b5b600061117b84828501611142565b91505092915050565b60008115159050919050565b61119981611184565b82525050565b60006020820190506111b46000830184611190565b92915050565b6111c3816110c0565b81146111ce57600080fd5b50565b6000813590506111e0816111ba565b92915050565b600080604083850312156111fd576111fc6110f4565b5b600061120b858286016111d1565b925050602061121c858286016111d1565b9150509250929050565b61122f81611119565b82525050565b600060208201905061124a6000830184611226565b92915050565b6000819050919050565b61126381611250565b82525050565b600060208201905061127e600083018461125a565b92915050565b600082825260208201905092915050565b7f4552525f41585800000000000000000000000000000000000000000000000000600082015250565b60006112cb600783611284565b91506112d682611295565b602082019050919050565b600060208201905081810360008301526112fa816112be565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061133b82611250565b915061134683611250565b925082820390508181126000841216828213600085121516171561136d5761136c611301565b5b92915050565b600061137e82611250565b915061138983611250565b925082820261139781611250565b91507f800000000000000000000000000000000000000000000000000000000000000084146000841216156113cf576113ce611301565b5b82820584148315176113e4576113e3611301565b5b5092915050565b60006060820190506114006000830186611226565b61140d6020830185611226565b61141a60408301846110ca565b949350505050565b600081519050919050565b600081905092915050565b60005b8381101561145657808201518184015260208101905061143b565b60008484015250505050565b600061146d82611422565b611477818561142d565b9350611487818560208601611438565b80840191505092915050565b600061149f8284611462565b915081905092915050565b7f4552525f544f4b454e0000000000000000000000000000000000000000000000600082015250565b60006114e0600983611284565b91506114eb826114aa565b602082019050919050565b6000602082019050818103600083015261150f816114d3565b9050919050565b7f4552525f5a45524f434f554e5400000000000000000000000000000000000000600082015250565b600061154c600d83611284565b915061155782611516565b602082019050919050565b6000602082019050818103600083015261157b8161153f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552525f43415041434954590000000000000000000000000000000000000000600082015250565b60006115e7600c83611284565b91506115f2826115b1565b602082019050919050565b60006020820190508181036000830152611616816115da565b9050919050565b7f4552525f434f4c4c4953494f4e00000000000000000000000000000000000000600082015250565b6000611653600d83611284565b915061165e8261161d565b602082019050919050565b6000602082019050818103600083015261168281611646565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806116d057607f821691505b6020821081036116e3576116e2611689565b5b50919050565b60006116f4826110c0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361172657611725611301565b5b600182019050919050565b600061173c826110c0565b91506000820361174f5761174e611301565b5b600182039050919050565b7f4552525f535550504c595f554e444552464c4f57000000000000000000000000600082015250565b6000611790601483611284565b915061179b8261175a565b602082019050919050565b600060208201905081810360008301526117bf81611783565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611800826110c0565b915061180b836110c0565b92508261181b5761181a6117c6565b5b828204905092915050565b6000611831826110c0565b915061183c836110c0565b925082820261184a816110c0565b9150828204841483151761186157611860611301565b5b5092915050565b600061187382611250565b915061187e83611250565b92508261188e5761188d6117c6565b5b600160000383147f8000000000000000000000000000000000000000000000000000000000000000831416156118c7576118c6611301565b5b828205905092915050565b60006118dd82611250565b91506118e883611250565b9250828201905082811215600083121683821260008412151617156119105761190f611301565b5b92915050565b6000611921826110c0565b915061192c836110c0565b92508261193c5761193b6117c6565b5b828206905092915050565b600081519050611956816111ba565b92915050565b600060208284031215611972576119716110f4565b5b600061198084828501611947565b9150509291505056fea26469706673582212207402f5d84501b94c8bac17c62af5609d54c7d4bd426431cf48d0e9681fd4e60664736f6c63430008130033 +\ No newline at end of file diff --git a/python/evm_booking/data/Booking.json b/python/evm_booking/data/Booking.json @@ -1 +1 @@ -[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_resolution","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"addWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"capacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_offset","type":"uint256"},{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"consume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"}],"name":"deposit","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"isWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"removeWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_offset","type":"uint256"},{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"share","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shareCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}] +[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_resolution","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"addWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"capacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_offset","type":"uint256"},{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"consume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"}],"name":"depositFor","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"isWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"removeWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_offset","type":"uint256"},{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"share","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shareCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}] diff --git a/python/evm_booking/data/Booking.metadata.json b/python/evm_booking/data/Booking.metadata.json @@ -1 +1 @@ -{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_resolution","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"addWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"capacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_offset","type":"uint256"},{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"consume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"}],"name":"deposit","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"isWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"removeWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_offset","type":"uint256"},{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"share","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shareCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"Booking.sol":"ERC20Book"},"evmVersion":"byzantium","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"Booking.sol":{"keccak256":"0x4152e634c5044c520efcbefa3ebcd9b95b9421227187d305b894b1993a359c94","license":"AGPL-3.0-or-later","urls":["bzz-raw://ff1e29d8b9349d5d5aef435e8651ab3fc8726fde0550e26bbd07c5fe182def4f","dweb:/ipfs/QmeFy1UVropbbdbGr21MbtCju9YG9Ue3DhHNTq8oknqbaL"]}},"version":1} +{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_resolution","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"addWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"capacity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_offset","type":"uint256"},{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"consume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposit","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"}],"name":"depositFor","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"isWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_writer","type":"address"}],"name":"removeWriter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_offset","type":"uint256"},{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"share","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shareCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"Booking.sol":"ERC20Book"},"evmVersion":"byzantium","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"Booking.sol":{"keccak256":"0x941d576cf37e76126a345248d06f68cb0c0bb6ae07abbc7241c42d5af69f3da2","license":"AGPL-3.0-or-later","urls":["bzz-raw://20ab5955e5d70b7f05d786cff24f0e3c10715fc8c9d9fa20bb7db295bf949540","dweb:/ipfs/QmZXXML8itKRqP12woSJqgDkqP6PWvQrE2WAqLAKv1NHV3"]}},"version":1} diff --git a/python/evm_booking/unittest/base.py b/python/evm_booking/unittest/base.py @@ -15,9 +15,10 @@ from chainlib.eth.block import block_latest # local imports from evm_booking import Booking - logg = logging.getLogger(__name__) +DEFAULT_RESOLUTION = 366*24 + #class TestBooking(EthTesterCase): #TestGiftableToken): class TestBooking(TestGiftableToken): @@ -31,7 +32,7 @@ class TestBooking(TestGiftableToken): self.token_address = self.address - def publish(self, resolution=366*24): + def publish(self, resolution=DEFAULT_RESOLUTION): nonce_oracle = RPCNonceOracle(self.accounts[0], conn=self.rpc) c = Booking(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle) (tx_hash, o) = c.constructor(self.accounts[0], self.token_address, resolution) @@ -42,3 +43,6 @@ class TestBooking(TestGiftableToken): self.address = to_checksum_address(r['contract_address']) self.booking_address = self.address logg.debug('published booker on address {} with hash {}'.format(self.booking_address, tx_hash)) + + self.resolution = resolution + self.resolution_unit = int(self.initial_supply / self.resolution) diff --git a/python/tests/test_base.py b/python/tests/test_base.py @@ -75,5 +75,31 @@ class TestBookingBase(TestBooking): self.assertEqual(r['status'], 1) + def test_deposit_excess(self): + nonce_oracle = RPCNonceOracle(self.accounts[0], conn=self.rpc) + c = ERC20(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle) + (tx_hash_hex, o) = c.approve(self.token_address, self.accounts[0], self.address, self.initial_supply) + self.rpc.do(o) + + c = Booking(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle) + (tx_hash_hex, o) = c.share(self.address, self.accounts[0], 42, 13) + self.rpc.do(o) + o = receipt(tx_hash_hex) + r = self.rpc.do(o) + self.assertEqual(r['status'], 1) + + (tx_hash_hex, o) = c.deposit(self.address, self.accounts[0]) + self.rpc.do(o) + o = receipt(tx_hash_hex) + r = self.rpc.do(o) + self.assertEqual(r['status'], 1) + + c = ERC20(self.chain_spec) + o = c.balance_of(self.token_address, self.accounts[0], sender_address=self.accounts[0]) + r = self.rpc.do(o) + balance = c.parse_balance_of(r) + self.assertEqual(balance, self.initial_supply - (self.resolution_unit * 13)) + + if __name__ == '__main__': unittest.main() diff --git a/solidity/Booking.sol b/solidity/Booking.sol @@ -50,7 +50,7 @@ contract ERC20Book { return writers[_writer] || _writer == owner; } - function deposit(address _spender) public returns (int256) { + function depositFor(address _spender) public returns (int256) { uint256 l_limit; int256 l_value; bool r; @@ -80,11 +80,15 @@ contract ERC20Book { return l_value; } - function shareLimit() internal view returns(uint256) { + function deposit() public returns(int256) { + return depositFor(msg.sender); + } + + function shareLimit() internal returns(uint256) { uint256 l_supply; uint256 l_unit; - l_supply = totalSupply; + l_supply = tokenSupply(); require(l_supply >= totalSupply, "ERR_SUPPLY_UNDERFLOW"); l_unit = l_supply / totalSupply; return shareCount * l_unit;