github.com/codingfuture/orig-energi3@v0.8.4/energi/abi/TreasuryV1.go (about) 1 // Code generated - DO NOT EDIT. 2 // This file is a generated binding and any manual changes will be lost. 3 4 package abi 5 6 import ( 7 "math/big" 8 "strings" 9 10 ethereum "github.com/ethereum/go-ethereum" 11 "github.com/ethereum/go-ethereum/accounts/abi" 12 "github.com/ethereum/go-ethereum/accounts/abi/bind" 13 "github.com/ethereum/go-ethereum/common" 14 "github.com/ethereum/go-ethereum/core/types" 15 "github.com/ethereum/go-ethereum/event" 16 ) 17 18 // Reference imports to suppress errors if they are not otherwise used. 19 var ( 20 _ = big.NewInt 21 _ = strings.NewReader 22 _ = ethereum.NotFound 23 _ = abi.U256 24 _ = bind.Bind 25 _ = common.Big1 26 _ = types.BloomLookup 27 _ = event.NewSubscription 28 ) 29 30 // TreasuryV1ABI is the input ABI used to generate the binding from. 31 const TreasuryV1ABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_proxy\",\"type\":\"address\"},{\"internalType\":\"contractIGovernedProxy\",\"name\":\"_mnregistry_proxy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_superblock_cycle\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"ref_uuid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"contractIBudgetProposal\",\"name\":\"proposal\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"payout_address\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"BudgetProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Contribution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"ref_uuid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"contractIBudgetProposal\",\"name\":\"proposal\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Payout\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"active_proposals\",\"outputs\":[{\"internalType\":\"contractIBudgetProposal\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"contribute\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contractIGovernedContract\",\"name\":\"_newImpl\",\"type\":\"address\"}],\"name\":\"destroy\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"getReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"isSuperblock\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"listProposals\",\"outputs\":[{\"internalType\":\"contractIBudgetProposal[]\",\"name\":\"proposals\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contractIGovernedContract\",\"name\":\"_oldImpl\",\"type\":\"address\"}],\"name\":\"migrate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"mnregistry_proxy\",\"outputs\":[{\"internalType\":\"contractIGovernedProxy\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"contractIBudgetProposal\",\"name\":\"proposal\",\"type\":\"address\"}],\"name\":\"proposal_uuid\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_ref_uuid\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_period\",\"type\":\"uint256\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"contractIBudgetProposal\",\"name\":\"proposal\",\"type\":\"address\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proxy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"reward\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"superblock_cycle\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_ref_uuid\",\"type\":\"uint256\"}],\"name\":\"uuid_proposal\",\"outputs\":[{\"internalType\":\"contractIBudgetProposal\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"v1storage\",\"outputs\":[{\"internalType\":\"contractStorageTreasuryV1\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}]" 32 33 // TreasuryV1Bin is the compiled bytecode used for deploying new contracts. 34 const TreasuryV1Bin = `608060405234801561001057600080fd5b506040516200331e3803806200331e8339818101604052606081101561003557600080fd5b5080516020820151604092830151600080546001600160a01b0319166001600160a01b03851617905592519192909161006d906100cd565b604051809103906000f080158015610089573d6000803e3d6000fd5b50600280546001600160a01b03199081166001600160a01b0393841617909155600380549091169184169190911790556004819055806100c557fe5b5050506100db565b61055c8062002dc283390190565b612cd780620000eb6000396000f3fe608060405260043610620001095760003560e01c80635c0992151162000097578063d5f997891162000061578063d5f9978914620003ff578063d7bb99ba146200042d578063ec5568891462000437578063fe7334e8146200044f5762000109565b80635c0992151462000331578063b69ef8a8146200035f578063caef1d5a1462000377578063ce5494bb14620003bb5762000109565b806326c7eb1c11620000d957806326c7eb1c14620002185780632d059305146200028257806340376d5614620002c357806352782d8614620002ef5762000109565b8062f55d9d14620001705780630ef3474514620001b65780631c4b774b14620001e0578063228cb733146200020e575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4e6f7420737570706f7274656400000000000000000000000000000000000000604482015290519081900360640190fd5b3480156200017d57600080fd5b50620001b4600480360360208110156200019657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662000467565b005b348015620001c357600080fd5b50620001ce62000512565b60408051918252519081900360200190f35b348015620001ed57600080fd5b50620001ce600480360360208110156200020657600080fd5b503562000518565b620001b46200053d565b3480156200022557600080fd5b506200023062000618565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200026e57818101518382015260200162000254565b505050509050019250505060405180910390f35b3480156200028f57600080fd5b506200029a6200076a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6200029a60048036036060811015620002db57600080fd5b508035906020810135906040013562000786565b348015620002fc57600080fd5b506200031d600480360360208110156200031557600080fd5b503562000f1b565b604080519115158252519081900360200190f35b3480156200033e57600080fd5b506200029a600480360360208110156200035757600080fd5b503562000f3e565b3480156200036c57600080fd5b50620001ce62000fe5565b3480156200038457600080fd5b50620001ce600480360360208110156200039d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662000fea565b348015620003c857600080fd5b50620001b460048036036020811015620003e157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662001062565b3480156200040c57600080fd5b506200029a600480360360208110156200042557600080fd5b5035620010f2565b620001b46200111d565b3480156200044457600080fd5b506200029a6200117f565b3480156200045c57600080fd5b506200029a6200119b565b60005473ffffffffffffffffffffffffffffffffffffffff163314620004ee57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742070726f78790000000000000000000000000000000000000000000000604482015290519081900360640190fd5b620004f981620011b7565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b60045481565b6000620005258262000f1b565b156200053857506926f6a8f4e638030000005b919050565b60015415620005ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f5265656e74727900000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60018055620005bb62001691565b6000620005c88262001248565b905030318015801590620005dc5750600082115b156200060e576103e881831115620006005782826103e80281620005fc57fe5b0490505b6200060c8185620014e2565b505b5050600060015550565b604080516064808252610ca0820190925260609182919060208201610c80803883390190505090506000805b6064811015620006d8576000600582606481106200065e57fe5b015473ffffffffffffffffffffffffffffffffffffffff1690508015620006ce57808484806001019550815181106200069357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5060010162000644565b508060405190808252806020026020018201604052801562000704578160200160208202803883390190505b50925060005b8181101562000763578281815181106200072057fe5b60200260200101518482815181106200073557fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526001016200070a565b5050505b90565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154600014620007fa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f5265656e74727900000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600180553468056bc75e2d63100000146200087657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f496e76616c696420666565000000000000000000000000000000000000000000604482015290519081900360640190fd5b68056bc75e2d63100000841015620008ef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f546f6f20736d616c6c20616d6f756e7400000000000000000000000000000000604482015290519081900360640190fd5b6926f6a8f4e638030000008411156200096957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f546f6f206c6172676520616d6f756e7400000000000000000000000000000000604482015290519081900360640190fd5b62127500821015620009dc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f546f6f20736d616c6c20706572696f6400000000000000000000000000000000604482015290519081900360640190fd5b62278d0082111562000a4f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f546f6f206c6172676520706572696f6400000000000000000000000000000000604482015290519081900360640190fd5b60025473ffffffffffffffffffffffffffffffffffffffff16600062000a746200165f565b9050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16635c099215876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801562000ae057600080fd5b505afa15801562000af5573d6000803e3d6000fd5b505050506040513d602081101562000b0c57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff161462000b9157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f5555494420696e20757365000000000000000000000000000000000000000000604482015290519081900360640190fd5b60005b606481101562000cc05760006005826064811062000bae57fe5b015473ffffffffffffffffffffffffffffffffffffffff16141562000cb757600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168287898860405162000c0290620016c2565b73ffffffffffffffffffffffffffffffffffffffff95861681529390941660208401526040808401929092526060830152608082019290925290519081900360a001906000f08015801562000c5b573d6000803e3d6000fd5b509350836005826064811062000c6d57fe5b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905562000cc0565b60010162000b94565b5073ffffffffffffffffffffffffffffffffffffffff831662000d4457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f546f6f206d616e79206163746976652070726f706f73616c7300000000000000604482015290519081900360640190fd5b8273ffffffffffffffffffffffffffffffffffffffff16632ded3227346040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000d8d57600080fd5b505af115801562000da2573d6000803e3d6000fd5b5050604080517eb9f954000000000000000000000000000000000000000000000000000000008152600481018a905273ffffffffffffffffffffffffffffffffffffffff88811660248301529151918716945062b9f9549350604480820193506000929182900301818387803b15801562000e1c57600080fd5b505af115801562000e31573d6000803e3d6000fd5b50505050847fa94befa3ce181974130fe36e854a282c70fb75e4decb42bfecdecbd6f88f0f5d8483898773ffffffffffffffffffffffffffffffffffffffff166329dcb0cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000ea157600080fd5b505afa15801562000eb6573d6000803e3d6000fd5b505050506040513d602081101562000ecd57600080fd5b50516040805173ffffffffffffffffffffffffffffffffffffffff958616815293909416602084015282840191909152606082015290519081900360800190a2505060006001559392505050565b6000600454828162000f2957fe5b0615801562000f385750600082115b92915050565b600254604080517f5c09921500000000000000000000000000000000000000000000000000000000815260048101849052905160009273ffffffffffffffffffffffffffffffffffffffff1691635c099215916024808301926020929190829003018186803b15801562000fb157600080fd5b505afa15801562000fc6573d6000803e3d6000fd5b505050506040513d602081101562000fdd57600080fd5b505192915050565b303190565b600254604080517fcaef1d5a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301529151600093929092169163caef1d5a91602480820192602092909190829003018186803b15801562000fb157600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff163314620010e957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742070726f78790000000000000000000000000000000000000000000000604482015290519081900360640190fd5b620010ef815b50565b600581606481106200110057fe5b015473ffffffffffffffffffffffffffffffffffffffff16905081565b34156200117d577f4d154d4aae216bed6d0926db77c00df2b57c6b5ba4eee05775de20facede3a7b6200114f6200165f565b6040805173ffffffffffffffffffffffffffffffffffffffff90921682523460208301528051918290030190a15b565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b600254604080517f13af403500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152915191909216916313af403591602480830192600092919082900301818387803b1580156200122c57600080fd5b505af115801562001241573d6000803e3d6000fd5b5050505050565b60008080808080805b6064811015620014d757600581606481106200126957fe5b015473ffffffffffffffffffffffffffffffffffffffff1695508515620014ce578573ffffffffffffffffffffffffffffffffffffffff16633b2a1b146040518163ffffffff1660e01b815260040160806040518083038186803b158015620012d157600080fd5b505afa158015620012e6573d6000803e3d6000fd5b505050506040513d6080811015620012fd57600080fd5b508051602082015160408301516060909301519197509550909350915083156200142f578115620013915795810195858882606481106200133a57fe5b602002015173ffffffffffffffffffffffffffffffffffffffff9091169052848882606481106200136757fe5b60200201516020018181525050818882606481106200138257fe5b60200201516040015262001429565b8573ffffffffffffffffffffffffffffffffffffffff166383197ef06040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620013da57600080fd5b505af1158015620013ef573d6000803e3d6000fd5b50505050600581606481106200140157fe5b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b620014ce565b8215620014ce578573ffffffffffffffffffffffffffffffffffffffff1663e52253816040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200147f57600080fd5b505af115801562001494573d6000803e3d6000fd5b5050505060058160648110620014a657fe5b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b60010162001251565b505050505050919050565b6000805b60648110156200165957828160648110620014fd57fe5b602002015151915073ffffffffffffffffffffffffffffffffffffffff821615620016505760006103e8858584606481106200153557fe5b60200201516040015102816200154757fe5b0490508382606481106200155757fe5b6020020151604001518111156200156a57fe5b8273ffffffffffffffffffffffffffffffffffffffff166310cac8a5826040518263ffffffff1660e01b81526004016000604051808303818588803b158015620015b357600080fd5b505af1158015620015c8573d6000803e3d6000fd5b5050505050838260648110620015da57fe5b6020020151602001517f5f7341a552ae2d452b071917104c05fbac3663936a69be768a05c40605056e7d8483604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a2505b600101620014e6565b50505050565b6000805473ffffffffffffffffffffffffffffffffffffffff163314156200168957503262000767565b503362000767565b60405180610c8001604052806064905b620016ab620016d0565b815260200190600190039081620016a15790505090565b61159b806200170883390190565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152509056fe60806040523480156200001157600080fd5b506040516200159b3803806200159b833981810160405260a08110156200003757600080fd5b508051602080830151604080850151606086015160809096015160018054336001600160a01b031991821617909155436002556000805482166001600160a01b03808a1691821783554285016003556004805490941690881617835585517f8abf6077000000000000000000000000000000000000000000000000000000008152955198999698949793958a9560079588958c959485949093638abf607793828401939092829003018186803b158015620000f157600080fd5b505afa15801562000106573d6000803e3d6000fd5b505050506040513d60208110156200011d57600080fd5b5051604080517f06661abd00000000000000000000000000000000000000000000000000000000815290516001600160a01b03909216916306661abd9160048082019260a092909190829003018186803b1580156200017b57600080fd5b505afa15801562000190573d6000803e3d6000fd5b505050506040513d60a0811015620001a757600080fd5b5060408101516080909101519092509050806200022557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e6f7420726561647920666f722070726f706f73616c73000000000000000000604482015290519081900360640190fd5b600281048210156200029857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f41637469766520776569676874203c20312f3220657665722077656967687400604482015290519081900360640190fd5b600160ff861610156200030c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f51756f72756d206d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b606460ff861611156200038057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f51756f72756d206d617800000000000000000000000000000000000000000000604482015290519081900360640190fd5b6008829055606460ff8616830204600955603360ff861610620003a957600954600a55620003b4565b60646033830204600a555b6000600954116200042657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f51756f72756d2077656967687400000000000000000000000000000000000000604482015290519081900360640190fd5b6000600a54116200049857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f46696e6973682077656967687400000000000000000000000000000000000000604482015290519081900360640190fd5b505050600e95909555505050600d555050506110e180620004ba6000396000f3fe6080604052600436106101ac5760003560e01c80637639b1eb116100ec578063aec2ccae1161008a578063c40a70f811610064578063c40a70f8146104a9578063c86e6c15146104be578063e5225381146104d3578063fe7334e8146104e8576101ac565b8063aec2ccae1461043f578063bd4c1f391461047f578063c2472ef814610494576101ac565b806391840a6b116100c657806391840a6b146103c0578063990a663b146103d55780639d5e6c9d146103ea578063adfaa72e146103ff576101ac565b80637639b1eb146103815780637b3529621461039657806383197ef0146103ab576101ac565b80633d1db3e9116101595780635051a5ec116101335780635051a5ec146102f057806356c2a0a11461031957806360f96a8f1461032e57806375df0f991461036c576101ac565b80633d1db3e9146102b15780634cafdfb2146102c6578063504881df146102db576101ac565b80632ded32271161018a5780632ded3227146102595780633b2a1b14146102615780633ccfd60b1461029c576101ac565b80630b62be451461021357806310cac8a51461023a57806329dcb0cf14610244575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4e6f7420616c6c6f776564000000000000000000000000000000000000000000604482015290519081900360640190fd5b34801561021f57600080fd5b506102286104fd565b60408051918252519081900360200190f35b610242610503565b005b34801561025057600080fd5b5061022861051a565b610242610520565b34801561026d57600080fd5b506102766105b0565b604080519485529215156020850152901515838301526060830152519081900360800190f35b3480156102a857600080fd5b506102426105e8565b3480156102bd57600080fd5b506102286106a5565b3480156102d257600080fd5b506102286106ab565b3480156102e757600080fd5b506102286106b1565b3480156102fc57600080fd5b506103056106b7565b604080519115158252519081900360200190f35b34801561032557600080fd5b50610242610704565b34801561033a57600080fd5b50610343610717565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561037857600080fd5b50610228610733565b34801561038d57600080fd5b50610228610739565b3480156103a257600080fd5b5061030561073f565b3480156103b757600080fd5b50610242610769565b3480156103cc57600080fd5b5061022861080a565b3480156103e157600080fd5b50610228610810565b3480156103f657600080fd5b50610343610816565b34801561040b57600080fd5b506103056004803603602081101561042257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610832565b34801561044b57600080fd5b506103056004803603602081101561046257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109cc565b34801561048b57600080fd5b506102286109e1565b3480156104a057600080fd5b506102426109e7565b3480156104b557600080fd5b506103436109fa565b3480156104ca57600080fd5b50610228610a16565b3480156104df57600080fd5b50610242610a1c565b3480156104f457600080fd5b50610343610d71565b60025481565b600c8054340190819055600d54101561051857fe5b565b60035481565b60015473ffffffffffffffffffffffffffffffffffffffff1633146105a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4f6e6c7920706172656e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b6005805434019055565b600e54600080806105bf6106b7565b92506105c961073f565b9150600d54600c5411156105d957fe5b600c54600d5403905090919293565b6105f06106b7565b61065b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f742061636365707465640000000000000000000000000000000000000000604482015290519081900360640190fd5b60045460405173ffffffffffffffffffffffffffffffffffffffff90911690303180156108fc02916000818181858888f193505050501580156106a2573d6000803e3d6000fd5b50565b600a5481565b600d5481565b600c5481565b6000600a54600654106106cc57506001610701565b6106d461073f565b6106e057506000610701565b6009546007546006540110156106f857506000610701565b50600754600654115b90565b61070c610d8d565b600780549091019055565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60065481565b6000426003541115806107565750600a5460065410155b806107645750600a54600754115b905090565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107ef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4f6e6c7920706172656e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b60045473ffffffffffffffffffffffffffffffffffffffff16ff5b60085481565b60055481565b60045473ffffffffffffffffffffffffffffffffffffffff1690565b60008054604080517f8abf60770000000000000000000000000000000000000000000000000000000081529051839273ffffffffffffffffffffffffffffffffffffffff1691638abf6077916004808301926020929190829003018186803b15801561089d57600080fd5b505afa1580156108b1573d6000803e3d6000fd5b505050506040513d60208110156108c757600080fd5b5051604080517fb83e160500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015291519293506000929184169163b83e16059160248082019260e092909190829003018186803b15801561093f57600080fd5b505afa158015610953573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060e081101561097857600080fd5b5060a0015160035490915042108015610992575060025481105b80156109c4575073ffffffffffffffffffffffffffffffffffffffff84166000908152600b602052604090205460ff16155b949350505050565b600b6020526000908152604090205460ff1681565b600e5481565b6109ef610d8d565b600680549091019055565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b610a2461073f565b8015610a355750610a336106b7565b155b610aa057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f7420636f6c6c65637461626c650000000000000000000000000000000000604482015290519081900360640190fd5b60015473ffffffffffffffffffffffffffffffffffffffff163314610b2657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4f6e6c7920706172656e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638abf60776040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8f57600080fd5b505afa158015610ba3573d6000803e3d6000fd5b505050506040513d6020811015610bb957600080fd5b5051604080517fa2731784000000000000000000000000000000000000000000000000000000008152905191925060009173ffffffffffffffffffffffffffffffffffffffff84169163a2731784916004808301926020929190829003018186803b158015610c2757600080fd5b505afa158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f8abf6077000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff90921691638abf607791600480820192602092909190829003018186803b158015610cbb57600080fd5b505afa158015610ccf573d6000803e3d6000fd5b505050506040513d6020811015610ce557600080fd5b5051604080517fd7bb99ba000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff83169163d7bb99ba91303191600480830192600092919082900301818588803b158015610d5457600080fd5b505af1158015610d68573d6000803e3d6000fd5b50505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60004260035411610dff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f46696e6973686564000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638abf60776040518163ffffffff1660e01b815260040160206040518083038186803b158015610e6857600080fd5b505afa158015610e7c573d6000803e3d6000fd5b505050506040513d6020811015610e9257600080fd5b5051604080517fb83e160500000000000000000000000000000000000000000000000000000000815233600482018190529151929350909160009173ffffffffffffffffffffffffffffffffffffffff85169163b83e16059160248082019260e092909190829003018186803b158015610f0b57600080fd5b505afa158015610f1f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060e0811015610f4457600080fd5b50608081015160a09091015160025491955091508110610fc557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f7420656c696769626c650000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600b602052604090205460ff161561105a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f416c726561647920766f74656400000000000000000000000000000000000000604482015290519081900360640190fd5b5073ffffffffffffffffffffffffffffffffffffffff166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055509056fea265627a7a7231582072224e92031a8f8c2b7b89935d4513e1215a63d85b09740250501118da4938ba64736f6c63430005100032a265627a7a723158202e83b9e1260bffc2c54e9840d98c086ad6e2c09c7c09fe78b7ee5d209056ad4264736f6c634300051000326080604052600080546001600160a01b03191633179055610537806100256000396000f3fe608060405234801561001057600080fd5b50600436106100715760003560e01c806341c0e1b51161005057806341c0e1b5146101175780635c0992151461011f578063caef1d5a1461016557610071565b8062b9f9541461007657806313af4035146100b15780633c97f294146100e4575b600080fd5b6100af6004803603604081101561008c57600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff166101aa565b005b6100af600480360360208110156100c757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661028e565b6100af600480360360208110156100fa57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661035b565b6100af61043f565b61013c6004803603602081101561013557600080fd5b50356104c8565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101986004803603602081101561017b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166104f0565b60408051918252519081900360200190f35b60005473ffffffffffffffffffffffffffffffffffffffff16331461023057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f74206f776e65722100000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000828152600160209081526040808320805473ffffffffffffffffffffffffffffffffffffffff9095167fffffffffffffffffffffffff000000000000000000000000000000000000000090951685179055928252600290522055565b60005473ffffffffffffffffffffffffffffffffffffffff16331461031457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f74206f776e65722100000000000000000000000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f74206f776e65722100000000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff16600090815260026020908152604080832080549084905583526001909152902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104c557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f74206f776e65722100000000000000000000000000000000000000000000604482015290519081900360640190fd5b33ff5b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6002602052600090815260409020548156fea265627a7a723158209132ef2adc675d140660df84591611984a1559600c22d153262f85df18b5669964736f6c63430005100032` 35 36 // DeployTreasuryV1 deploys a new Ethereum contract, binding an instance of TreasuryV1 to it. 37 func DeployTreasuryV1(auth *bind.TransactOpts, backend bind.ContractBackend, _proxy common.Address, _mnregistry_proxy common.Address, _superblock_cycle *big.Int) (common.Address, *types.Transaction, *TreasuryV1, error) { 38 parsed, err := abi.JSON(strings.NewReader(TreasuryV1ABI)) 39 if err != nil { 40 return common.Address{}, nil, nil, err 41 } 42 address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(TreasuryV1Bin), backend, _proxy, _mnregistry_proxy, _superblock_cycle) 43 if err != nil { 44 return common.Address{}, nil, nil, err 45 } 46 return address, tx, &TreasuryV1{TreasuryV1Caller: TreasuryV1Caller{contract: contract}, TreasuryV1Transactor: TreasuryV1Transactor{contract: contract}, TreasuryV1Filterer: TreasuryV1Filterer{contract: contract}}, nil 47 } 48 49 // TreasuryV1Bin is the compiled bytecode of contract after deployment. 50 const TreasuryV1RuntimeBin = `608060405260043610620001095760003560e01c80635c0992151162000097578063d5f997891162000061578063d5f9978914620003ff578063d7bb99ba146200042d578063ec5568891462000437578063fe7334e8146200044f5762000109565b80635c0992151462000331578063b69ef8a8146200035f578063caef1d5a1462000377578063ce5494bb14620003bb5762000109565b806326c7eb1c11620000d957806326c7eb1c14620002185780632d059305146200028257806340376d5614620002c357806352782d8614620002ef5762000109565b8062f55d9d14620001705780630ef3474514620001b65780631c4b774b14620001e0578063228cb733146200020e575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f4e6f7420737570706f7274656400000000000000000000000000000000000000604482015290519081900360640190fd5b3480156200017d57600080fd5b50620001b4600480360360208110156200019657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662000467565b005b348015620001c357600080fd5b50620001ce62000512565b60408051918252519081900360200190f35b348015620001ed57600080fd5b50620001ce600480360360208110156200020657600080fd5b503562000518565b620001b46200053d565b3480156200022557600080fd5b506200023062000618565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156200026e57818101518382015260200162000254565b505050509050019250505060405180910390f35b3480156200028f57600080fd5b506200029a6200076a565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6200029a60048036036060811015620002db57600080fd5b508035906020810135906040013562000786565b348015620002fc57600080fd5b506200031d600480360360208110156200031557600080fd5b503562000f1b565b604080519115158252519081900360200190f35b3480156200033e57600080fd5b506200029a600480360360208110156200035757600080fd5b503562000f3e565b3480156200036c57600080fd5b50620001ce62000fe5565b3480156200038457600080fd5b50620001ce600480360360208110156200039d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662000fea565b348015620003c857600080fd5b50620001b460048036036020811015620003e157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1662001062565b3480156200040c57600080fd5b506200029a600480360360208110156200042557600080fd5b5035620010f2565b620001b46200111d565b3480156200044457600080fd5b506200029a6200117f565b3480156200045c57600080fd5b506200029a6200119b565b60005473ffffffffffffffffffffffffffffffffffffffff163314620004ee57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742070726f78790000000000000000000000000000000000000000000000604482015290519081900360640190fd5b620004f981620011b7565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b60045481565b6000620005258262000f1b565b156200053857506926f6a8f4e638030000005b919050565b60015415620005ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f5265656e74727900000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60018055620005bb62001691565b6000620005c88262001248565b905030318015801590620005dc5750600082115b156200060e576103e881831115620006005782826103e80281620005fc57fe5b0490505b6200060c8185620014e2565b505b5050600060015550565b604080516064808252610ca0820190925260609182919060208201610c80803883390190505090506000805b6064811015620006d8576000600582606481106200065e57fe5b015473ffffffffffffffffffffffffffffffffffffffff1690508015620006ce57808484806001019550815181106200069357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b5060010162000644565b508060405190808252806020026020018201604052801562000704578160200160208202803883390190505b50925060005b8181101562000763578281815181106200072057fe5b60200260200101518482815181106200073557fe5b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101526001016200070a565b5050505b90565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154600014620007fa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f5265656e74727900000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600180553468056bc75e2d63100000146200087657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f496e76616c696420666565000000000000000000000000000000000000000000604482015290519081900360640190fd5b68056bc75e2d63100000841015620008ef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f546f6f20736d616c6c20616d6f756e7400000000000000000000000000000000604482015290519081900360640190fd5b6926f6a8f4e638030000008411156200096957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f546f6f206c6172676520616d6f756e7400000000000000000000000000000000604482015290519081900360640190fd5b62127500821015620009dc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f546f6f20736d616c6c20706572696f6400000000000000000000000000000000604482015290519081900360640190fd5b62278d0082111562000a4f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f546f6f206c6172676520706572696f6400000000000000000000000000000000604482015290519081900360640190fd5b60025473ffffffffffffffffffffffffffffffffffffffff16600062000a746200165f565b9050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16635c099215876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801562000ae057600080fd5b505afa15801562000af5573d6000803e3d6000fd5b505050506040513d602081101562000b0c57600080fd5b505173ffffffffffffffffffffffffffffffffffffffff161462000b9157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f5555494420696e20757365000000000000000000000000000000000000000000604482015290519081900360640190fd5b60005b606481101562000cc05760006005826064811062000bae57fe5b015473ffffffffffffffffffffffffffffffffffffffff16141562000cb757600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168287898860405162000c0290620016c2565b73ffffffffffffffffffffffffffffffffffffffff95861681529390941660208401526040808401929092526060830152608082019290925290519081900360a001906000f08015801562000c5b573d6000803e3d6000fd5b509350836005826064811062000c6d57fe5b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905562000cc0565b60010162000b94565b5073ffffffffffffffffffffffffffffffffffffffff831662000d4457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f546f6f206d616e79206163746976652070726f706f73616c7300000000000000604482015290519081900360640190fd5b8273ffffffffffffffffffffffffffffffffffffffff16632ded3227346040518263ffffffff1660e01b81526004016000604051808303818588803b15801562000d8d57600080fd5b505af115801562000da2573d6000803e3d6000fd5b5050604080517eb9f954000000000000000000000000000000000000000000000000000000008152600481018a905273ffffffffffffffffffffffffffffffffffffffff88811660248301529151918716945062b9f9549350604480820193506000929182900301818387803b15801562000e1c57600080fd5b505af115801562000e31573d6000803e3d6000fd5b50505050847fa94befa3ce181974130fe36e854a282c70fb75e4decb42bfecdecbd6f88f0f5d8483898773ffffffffffffffffffffffffffffffffffffffff166329dcb0cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000ea157600080fd5b505afa15801562000eb6573d6000803e3d6000fd5b505050506040513d602081101562000ecd57600080fd5b50516040805173ffffffffffffffffffffffffffffffffffffffff958616815293909416602084015282840191909152606082015290519081900360800190a2505060006001559392505050565b6000600454828162000f2957fe5b0615801562000f385750600082115b92915050565b600254604080517f5c09921500000000000000000000000000000000000000000000000000000000815260048101849052905160009273ffffffffffffffffffffffffffffffffffffffff1691635c099215916024808301926020929190829003018186803b15801562000fb157600080fd5b505afa15801562000fc6573d6000803e3d6000fd5b505050506040513d602081101562000fdd57600080fd5b505192915050565b303190565b600254604080517fcaef1d5a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301529151600093929092169163caef1d5a91602480820192602092909190829003018186803b15801562000fb157600080fd5b60005473ffffffffffffffffffffffffffffffffffffffff163314620010e957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742070726f78790000000000000000000000000000000000000000000000604482015290519081900360640190fd5b620010ef815b50565b600581606481106200110057fe5b015473ffffffffffffffffffffffffffffffffffffffff16905081565b34156200117d577f4d154d4aae216bed6d0926db77c00df2b57c6b5ba4eee05775de20facede3a7b6200114f6200165f565b6040805173ffffffffffffffffffffffffffffffffffffffff90921682523460208301528051918290030190a15b565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b600254604080517f13af403500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8481166004830152915191909216916313af403591602480830192600092919082900301818387803b1580156200122c57600080fd5b505af115801562001241573d6000803e3d6000fd5b5050505050565b60008080808080805b6064811015620014d757600581606481106200126957fe5b015473ffffffffffffffffffffffffffffffffffffffff1695508515620014ce578573ffffffffffffffffffffffffffffffffffffffff16633b2a1b146040518163ffffffff1660e01b815260040160806040518083038186803b158015620012d157600080fd5b505afa158015620012e6573d6000803e3d6000fd5b505050506040513d6080811015620012fd57600080fd5b508051602082015160408301516060909301519197509550909350915083156200142f578115620013915795810195858882606481106200133a57fe5b602002015173ffffffffffffffffffffffffffffffffffffffff9091169052848882606481106200136757fe5b60200201516020018181525050818882606481106200138257fe5b60200201516040015262001429565b8573ffffffffffffffffffffffffffffffffffffffff166383197ef06040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620013da57600080fd5b505af1158015620013ef573d6000803e3d6000fd5b50505050600581606481106200140157fe5b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b620014ce565b8215620014ce578573ffffffffffffffffffffffffffffffffffffffff1663e52253816040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200147f57600080fd5b505af115801562001494573d6000803e3d6000fd5b5050505060058160648110620014a657fe5b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b60010162001251565b505050505050919050565b6000805b60648110156200165957828160648110620014fd57fe5b602002015151915073ffffffffffffffffffffffffffffffffffffffff821615620016505760006103e8858584606481106200153557fe5b60200201516040015102816200154757fe5b0490508382606481106200155757fe5b6020020151604001518111156200156a57fe5b8273ffffffffffffffffffffffffffffffffffffffff166310cac8a5826040518263ffffffff1660e01b81526004016000604051808303818588803b158015620015b357600080fd5b505af1158015620015c8573d6000803e3d6000fd5b5050505050838260648110620015da57fe5b6020020151602001517f5f7341a552ae2d452b071917104c05fbac3663936a69be768a05c40605056e7d8483604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a2505b600101620014e6565b50505050565b6000805473ffffffffffffffffffffffffffffffffffffffff163314156200168957503262000767565b503362000767565b60405180610c8001604052806064905b620016ab620016d0565b815260200190600190039081620016a15790505090565b61159b806200170883390190565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152509056fe60806040523480156200001157600080fd5b506040516200159b3803806200159b833981810160405260a08110156200003757600080fd5b508051602080830151604080850151606086015160809096015160018054336001600160a01b031991821617909155436002556000805482166001600160a01b03808a1691821783554285016003556004805490941690881617835585517f8abf6077000000000000000000000000000000000000000000000000000000008152955198999698949793958a9560079588958c959485949093638abf607793828401939092829003018186803b158015620000f157600080fd5b505afa15801562000106573d6000803e3d6000fd5b505050506040513d60208110156200011d57600080fd5b5051604080517f06661abd00000000000000000000000000000000000000000000000000000000815290516001600160a01b03909216916306661abd9160048082019260a092909190829003018186803b1580156200017b57600080fd5b505afa15801562000190573d6000803e3d6000fd5b505050506040513d60a0811015620001a757600080fd5b5060408101516080909101519092509050806200022557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e6f7420726561647920666f722070726f706f73616c73000000000000000000604482015290519081900360640190fd5b600281048210156200029857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f41637469766520776569676874203c20312f3220657665722077656967687400604482015290519081900360640190fd5b600160ff861610156200030c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f51756f72756d206d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b606460ff861611156200038057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f51756f72756d206d617800000000000000000000000000000000000000000000604482015290519081900360640190fd5b6008829055606460ff8616830204600955603360ff861610620003a957600954600a55620003b4565b60646033830204600a555b6000600954116200042657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f51756f72756d2077656967687400000000000000000000000000000000000000604482015290519081900360640190fd5b6000600a54116200049857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f46696e6973682077656967687400000000000000000000000000000000000000604482015290519081900360640190fd5b505050600e95909555505050600d555050506110e180620004ba6000396000f3fe6080604052600436106101ac5760003560e01c80637639b1eb116100ec578063aec2ccae1161008a578063c40a70f811610064578063c40a70f8146104a9578063c86e6c15146104be578063e5225381146104d3578063fe7334e8146104e8576101ac565b8063aec2ccae1461043f578063bd4c1f391461047f578063c2472ef814610494576101ac565b806391840a6b116100c657806391840a6b146103c0578063990a663b146103d55780639d5e6c9d146103ea578063adfaa72e146103ff576101ac565b80637639b1eb146103815780637b3529621461039657806383197ef0146103ab576101ac565b80633d1db3e9116101595780635051a5ec116101335780635051a5ec146102f057806356c2a0a11461031957806360f96a8f1461032e57806375df0f991461036c576101ac565b80633d1db3e9146102b15780634cafdfb2146102c6578063504881df146102db576101ac565b80632ded32271161018a5780632ded3227146102595780633b2a1b14146102615780633ccfd60b1461029c576101ac565b80630b62be451461021357806310cac8a51461023a57806329dcb0cf14610244575b604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4e6f7420616c6c6f776564000000000000000000000000000000000000000000604482015290519081900360640190fd5b34801561021f57600080fd5b506102286104fd565b60408051918252519081900360200190f35b610242610503565b005b34801561025057600080fd5b5061022861051a565b610242610520565b34801561026d57600080fd5b506102766105b0565b604080519485529215156020850152901515838301526060830152519081900360800190f35b3480156102a857600080fd5b506102426105e8565b3480156102bd57600080fd5b506102286106a5565b3480156102d257600080fd5b506102286106ab565b3480156102e757600080fd5b506102286106b1565b3480156102fc57600080fd5b506103056106b7565b604080519115158252519081900360200190f35b34801561032557600080fd5b50610242610704565b34801561033a57600080fd5b50610343610717565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561037857600080fd5b50610228610733565b34801561038d57600080fd5b50610228610739565b3480156103a257600080fd5b5061030561073f565b3480156103b757600080fd5b50610242610769565b3480156103cc57600080fd5b5061022861080a565b3480156103e157600080fd5b50610228610810565b3480156103f657600080fd5b50610343610816565b34801561040b57600080fd5b506103056004803603602081101561042257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610832565b34801561044b57600080fd5b506103056004803603602081101561046257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166109cc565b34801561048b57600080fd5b506102286109e1565b3480156104a057600080fd5b506102426109e7565b3480156104b557600080fd5b506103436109fa565b3480156104ca57600080fd5b50610228610a16565b3480156104df57600080fd5b50610242610a1c565b3480156104f457600080fd5b50610343610d71565b60025481565b600c8054340190819055600d54101561051857fe5b565b60035481565b60015473ffffffffffffffffffffffffffffffffffffffff1633146105a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4f6e6c7920706172656e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b6005805434019055565b600e54600080806105bf6106b7565b92506105c961073f565b9150600d54600c5411156105d957fe5b600c54600d5403905090919293565b6105f06106b7565b61065b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f742061636365707465640000000000000000000000000000000000000000604482015290519081900360640190fd5b60045460405173ffffffffffffffffffffffffffffffffffffffff90911690303180156108fc02916000818181858888f193505050501580156106a2573d6000803e3d6000fd5b50565b600a5481565b600d5481565b600c5481565b6000600a54600654106106cc57506001610701565b6106d461073f565b6106e057506000610701565b6009546007546006540110156106f857506000610701565b50600754600654115b90565b61070c610d8d565b600780549091019055565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60065481565b6000426003541115806107565750600a5460065410155b806107645750600a54600754115b905090565b60015473ffffffffffffffffffffffffffffffffffffffff1633146107ef57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4f6e6c7920706172656e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b60045473ffffffffffffffffffffffffffffffffffffffff16ff5b60085481565b60055481565b60045473ffffffffffffffffffffffffffffffffffffffff1690565b60008054604080517f8abf60770000000000000000000000000000000000000000000000000000000081529051839273ffffffffffffffffffffffffffffffffffffffff1691638abf6077916004808301926020929190829003018186803b15801561089d57600080fd5b505afa1580156108b1573d6000803e3d6000fd5b505050506040513d60208110156108c757600080fd5b5051604080517fb83e160500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015291519293506000929184169163b83e16059160248082019260e092909190829003018186803b15801561093f57600080fd5b505afa158015610953573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060e081101561097857600080fd5b5060a0015160035490915042108015610992575060025481105b80156109c4575073ffffffffffffffffffffffffffffffffffffffff84166000908152600b602052604090205460ff16155b949350505050565b600b6020526000908152604090205460ff1681565b600e5481565b6109ef610d8d565b600680549091019055565b60045473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b610a2461073f565b8015610a355750610a336106b7565b155b610aa057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e6f7420636f6c6c65637461626c650000000000000000000000000000000000604482015290519081900360640190fd5b60015473ffffffffffffffffffffffffffffffffffffffff163314610b2657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4f6e6c7920706172656e74000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638abf60776040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8f57600080fd5b505afa158015610ba3573d6000803e3d6000fd5b505050506040513d6020811015610bb957600080fd5b5051604080517fa2731784000000000000000000000000000000000000000000000000000000008152905191925060009173ffffffffffffffffffffffffffffffffffffffff84169163a2731784916004808301926020929190829003018186803b158015610c2757600080fd5b505afa158015610c3b573d6000803e3d6000fd5b505050506040513d6020811015610c5157600080fd5b5051604080517f8abf6077000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff90921691638abf607791600480820192602092909190829003018186803b158015610cbb57600080fd5b505afa158015610ccf573d6000803e3d6000fd5b505050506040513d6020811015610ce557600080fd5b5051604080517fd7bb99ba000000000000000000000000000000000000000000000000000000008152905191925073ffffffffffffffffffffffffffffffffffffffff83169163d7bb99ba91303191600480830192600092919082900301818588803b158015610d5457600080fd5b505af1158015610d68573d6000803e3d6000fd5b50505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60004260035411610dff57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f46696e6973686564000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638abf60776040518163ffffffff1660e01b815260040160206040518083038186803b158015610e6857600080fd5b505afa158015610e7c573d6000803e3d6000fd5b505050506040513d6020811015610e9257600080fd5b5051604080517fb83e160500000000000000000000000000000000000000000000000000000000815233600482018190529151929350909160009173ffffffffffffffffffffffffffffffffffffffff85169163b83e16059160248082019260e092909190829003018186803b158015610f0b57600080fd5b505afa158015610f1f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060e0811015610f4457600080fd5b50608081015160a09091015160025491955091508110610fc557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f4e6f7420656c696769626c650000000000000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152600b602052604090205460ff161561105a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f416c726561647920766f74656400000000000000000000000000000000000000604482015290519081900360640190fd5b5073ffffffffffffffffffffffffffffffffffffffff166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055509056fea265627a7a7231582072224e92031a8f8c2b7b89935d4513e1215a63d85b09740250501118da4938ba64736f6c63430005100032a265627a7a723158202e83b9e1260bffc2c54e9840d98c086ad6e2c09c7c09fe78b7ee5d209056ad4264736f6c63430005100032` 51 52 // TreasuryV1 is an auto generated Go binding around an Ethereum contract. 53 type TreasuryV1 struct { 54 TreasuryV1Caller // Read-only binding to the contract 55 TreasuryV1Transactor // Write-only binding to the contract 56 TreasuryV1Filterer // Log filterer for contract events 57 } 58 59 // TreasuryV1Caller is an auto generated read-only Go binding around an Ethereum contract. 60 type TreasuryV1Caller struct { 61 contract *bind.BoundContract // Generic contract wrapper for the low level calls 62 } 63 64 // TreasuryV1Transactor is an auto generated write-only Go binding around an Ethereum contract. 65 type TreasuryV1Transactor struct { 66 contract *bind.BoundContract // Generic contract wrapper for the low level calls 67 } 68 69 // TreasuryV1Filterer is an auto generated log filtering Go binding around an Ethereum contract events. 70 type TreasuryV1Filterer struct { 71 contract *bind.BoundContract // Generic contract wrapper for the low level calls 72 } 73 74 // TreasuryV1Session is an auto generated Go binding around an Ethereum contract, 75 // with pre-set call and transact options. 76 type TreasuryV1Session struct { 77 Contract *TreasuryV1 // Generic contract binding to set the session for 78 CallOpts bind.CallOpts // Call options to use throughout this session 79 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 80 } 81 82 // TreasuryV1CallerSession is an auto generated read-only Go binding around an Ethereum contract, 83 // with pre-set call options. 84 type TreasuryV1CallerSession struct { 85 Contract *TreasuryV1Caller // Generic contract caller binding to set the session for 86 CallOpts bind.CallOpts // Call options to use throughout this session 87 } 88 89 // TreasuryV1TransactorSession is an auto generated write-only Go binding around an Ethereum contract, 90 // with pre-set transact options. 91 type TreasuryV1TransactorSession struct { 92 Contract *TreasuryV1Transactor // Generic contract transactor binding to set the session for 93 TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session 94 } 95 96 // TreasuryV1Raw is an auto generated low-level Go binding around an Ethereum contract. 97 type TreasuryV1Raw struct { 98 Contract *TreasuryV1 // Generic contract binding to access the raw methods on 99 } 100 101 // TreasuryV1CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. 102 type TreasuryV1CallerRaw struct { 103 Contract *TreasuryV1Caller // Generic read-only contract binding to access the raw methods on 104 } 105 106 // TreasuryV1TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. 107 type TreasuryV1TransactorRaw struct { 108 Contract *TreasuryV1Transactor // Generic write-only contract binding to access the raw methods on 109 } 110 111 // NewTreasuryV1 creates a new instance of TreasuryV1, bound to a specific deployed contract. 112 func NewTreasuryV1(address common.Address, backend bind.ContractBackend) (*TreasuryV1, error) { 113 contract, err := bindTreasuryV1(address, backend, backend, backend) 114 if err != nil { 115 return nil, err 116 } 117 return &TreasuryV1{TreasuryV1Caller: TreasuryV1Caller{contract: contract}, TreasuryV1Transactor: TreasuryV1Transactor{contract: contract}, TreasuryV1Filterer: TreasuryV1Filterer{contract: contract}}, nil 118 } 119 120 // NewTreasuryV1Caller creates a new read-only instance of TreasuryV1, bound to a specific deployed contract. 121 func NewTreasuryV1Caller(address common.Address, caller bind.ContractCaller) (*TreasuryV1Caller, error) { 122 contract, err := bindTreasuryV1(address, caller, nil, nil) 123 if err != nil { 124 return nil, err 125 } 126 return &TreasuryV1Caller{contract: contract}, nil 127 } 128 129 // NewTreasuryV1Transactor creates a new write-only instance of TreasuryV1, bound to a specific deployed contract. 130 func NewTreasuryV1Transactor(address common.Address, transactor bind.ContractTransactor) (*TreasuryV1Transactor, error) { 131 contract, err := bindTreasuryV1(address, nil, transactor, nil) 132 if err != nil { 133 return nil, err 134 } 135 return &TreasuryV1Transactor{contract: contract}, nil 136 } 137 138 // NewTreasuryV1Filterer creates a new log filterer instance of TreasuryV1, bound to a specific deployed contract. 139 func NewTreasuryV1Filterer(address common.Address, filterer bind.ContractFilterer) (*TreasuryV1Filterer, error) { 140 contract, err := bindTreasuryV1(address, nil, nil, filterer) 141 if err != nil { 142 return nil, err 143 } 144 return &TreasuryV1Filterer{contract: contract}, nil 145 } 146 147 // bindTreasuryV1 binds a generic wrapper to an already deployed contract. 148 func bindTreasuryV1(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { 149 parsed, err := abi.JSON(strings.NewReader(TreasuryV1ABI)) 150 if err != nil { 151 return nil, err 152 } 153 return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil 154 } 155 156 // Call invokes the (constant) contract method with params as input values and 157 // sets the output to result. The result type might be a single field for simple 158 // returns, a slice of interfaces for anonymous returns and a struct for named 159 // returns. 160 func (_TreasuryV1 *TreasuryV1Raw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { 161 return _TreasuryV1.Contract.TreasuryV1Caller.contract.Call(opts, result, method, params...) 162 } 163 164 // Transfer initiates a plain transaction to move funds to the contract, calling 165 // its default method if one is available. 166 func (_TreasuryV1 *TreasuryV1Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 167 return _TreasuryV1.Contract.TreasuryV1Transactor.contract.Transfer(opts) 168 } 169 170 // Transact invokes the (paid) contract method with params as input values. 171 func (_TreasuryV1 *TreasuryV1Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 172 return _TreasuryV1.Contract.TreasuryV1Transactor.contract.Transact(opts, method, params...) 173 } 174 175 // Call invokes the (constant) contract method with params as input values and 176 // sets the output to result. The result type might be a single field for simple 177 // returns, a slice of interfaces for anonymous returns and a struct for named 178 // returns. 179 func (_TreasuryV1 *TreasuryV1CallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { 180 return _TreasuryV1.Contract.contract.Call(opts, result, method, params...) 181 } 182 183 // Transfer initiates a plain transaction to move funds to the contract, calling 184 // its default method if one is available. 185 func (_TreasuryV1 *TreasuryV1TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { 186 return _TreasuryV1.Contract.contract.Transfer(opts) 187 } 188 189 // Transact invokes the (paid) contract method with params as input values. 190 func (_TreasuryV1 *TreasuryV1TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { 191 return _TreasuryV1.Contract.contract.Transact(opts, method, params...) 192 } 193 194 // ActiveProposals is a free data retrieval call binding the contract method 0xd5f99789. 195 // 196 // Solidity: function active_proposals(uint256 ) constant returns(address) 197 func (_TreasuryV1 *TreasuryV1Caller) ActiveProposals(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { 198 var ( 199 ret0 = new(common.Address) 200 ) 201 out := ret0 202 err := _TreasuryV1.contract.Call(opts, out, "active_proposals", arg0) 203 return *ret0, err 204 } 205 206 // ActiveProposals is a free data retrieval call binding the contract method 0xd5f99789. 207 // 208 // Solidity: function active_proposals(uint256 ) constant returns(address) 209 func (_TreasuryV1 *TreasuryV1Session) ActiveProposals(arg0 *big.Int) (common.Address, error) { 210 return _TreasuryV1.Contract.ActiveProposals(&_TreasuryV1.CallOpts, arg0) 211 } 212 213 // ActiveProposals is a free data retrieval call binding the contract method 0xd5f99789. 214 // 215 // Solidity: function active_proposals(uint256 ) constant returns(address) 216 func (_TreasuryV1 *TreasuryV1CallerSession) ActiveProposals(arg0 *big.Int) (common.Address, error) { 217 return _TreasuryV1.Contract.ActiveProposals(&_TreasuryV1.CallOpts, arg0) 218 } 219 220 // Balance is a free data retrieval call binding the contract method 0xb69ef8a8. 221 // 222 // Solidity: function balance() constant returns(uint256 amount) 223 func (_TreasuryV1 *TreasuryV1Caller) Balance(opts *bind.CallOpts) (*big.Int, error) { 224 var ( 225 ret0 = new(*big.Int) 226 ) 227 out := ret0 228 err := _TreasuryV1.contract.Call(opts, out, "balance") 229 return *ret0, err 230 } 231 232 // Balance is a free data retrieval call binding the contract method 0xb69ef8a8. 233 // 234 // Solidity: function balance() constant returns(uint256 amount) 235 func (_TreasuryV1 *TreasuryV1Session) Balance() (*big.Int, error) { 236 return _TreasuryV1.Contract.Balance(&_TreasuryV1.CallOpts) 237 } 238 239 // Balance is a free data retrieval call binding the contract method 0xb69ef8a8. 240 // 241 // Solidity: function balance() constant returns(uint256 amount) 242 func (_TreasuryV1 *TreasuryV1CallerSession) Balance() (*big.Int, error) { 243 return _TreasuryV1.Contract.Balance(&_TreasuryV1.CallOpts) 244 } 245 246 // GetReward is a free data retrieval call binding the contract method 0x1c4b774b. 247 // 248 // Solidity: function getReward(uint256 _blockNumber) constant returns(uint256 amount) 249 func (_TreasuryV1 *TreasuryV1Caller) GetReward(opts *bind.CallOpts, _blockNumber *big.Int) (*big.Int, error) { 250 var ( 251 ret0 = new(*big.Int) 252 ) 253 out := ret0 254 err := _TreasuryV1.contract.Call(opts, out, "getReward", _blockNumber) 255 return *ret0, err 256 } 257 258 // GetReward is a free data retrieval call binding the contract method 0x1c4b774b. 259 // 260 // Solidity: function getReward(uint256 _blockNumber) constant returns(uint256 amount) 261 func (_TreasuryV1 *TreasuryV1Session) GetReward(_blockNumber *big.Int) (*big.Int, error) { 262 return _TreasuryV1.Contract.GetReward(&_TreasuryV1.CallOpts, _blockNumber) 263 } 264 265 // GetReward is a free data retrieval call binding the contract method 0x1c4b774b. 266 // 267 // Solidity: function getReward(uint256 _blockNumber) constant returns(uint256 amount) 268 func (_TreasuryV1 *TreasuryV1CallerSession) GetReward(_blockNumber *big.Int) (*big.Int, error) { 269 return _TreasuryV1.Contract.GetReward(&_TreasuryV1.CallOpts, _blockNumber) 270 } 271 272 // IsSuperblock is a free data retrieval call binding the contract method 0x52782d86. 273 // 274 // Solidity: function isSuperblock(uint256 _blockNumber) constant returns(bool) 275 func (_TreasuryV1 *TreasuryV1Caller) IsSuperblock(opts *bind.CallOpts, _blockNumber *big.Int) (bool, error) { 276 var ( 277 ret0 = new(bool) 278 ) 279 out := ret0 280 err := _TreasuryV1.contract.Call(opts, out, "isSuperblock", _blockNumber) 281 return *ret0, err 282 } 283 284 // IsSuperblock is a free data retrieval call binding the contract method 0x52782d86. 285 // 286 // Solidity: function isSuperblock(uint256 _blockNumber) constant returns(bool) 287 func (_TreasuryV1 *TreasuryV1Session) IsSuperblock(_blockNumber *big.Int) (bool, error) { 288 return _TreasuryV1.Contract.IsSuperblock(&_TreasuryV1.CallOpts, _blockNumber) 289 } 290 291 // IsSuperblock is a free data retrieval call binding the contract method 0x52782d86. 292 // 293 // Solidity: function isSuperblock(uint256 _blockNumber) constant returns(bool) 294 func (_TreasuryV1 *TreasuryV1CallerSession) IsSuperblock(_blockNumber *big.Int) (bool, error) { 295 return _TreasuryV1.Contract.IsSuperblock(&_TreasuryV1.CallOpts, _blockNumber) 296 } 297 298 // ListProposals is a free data retrieval call binding the contract method 0x26c7eb1c. 299 // 300 // Solidity: function listProposals() constant returns(address[] proposals) 301 func (_TreasuryV1 *TreasuryV1Caller) ListProposals(opts *bind.CallOpts) ([]common.Address, error) { 302 var ( 303 ret0 = new([]common.Address) 304 ) 305 out := ret0 306 err := _TreasuryV1.contract.Call(opts, out, "listProposals") 307 return *ret0, err 308 } 309 310 // ListProposals is a free data retrieval call binding the contract method 0x26c7eb1c. 311 // 312 // Solidity: function listProposals() constant returns(address[] proposals) 313 func (_TreasuryV1 *TreasuryV1Session) ListProposals() ([]common.Address, error) { 314 return _TreasuryV1.Contract.ListProposals(&_TreasuryV1.CallOpts) 315 } 316 317 // ListProposals is a free data retrieval call binding the contract method 0x26c7eb1c. 318 // 319 // Solidity: function listProposals() constant returns(address[] proposals) 320 func (_TreasuryV1 *TreasuryV1CallerSession) ListProposals() ([]common.Address, error) { 321 return _TreasuryV1.Contract.ListProposals(&_TreasuryV1.CallOpts) 322 } 323 324 // MnregistryProxy is a free data retrieval call binding the contract method 0xfe7334e8. 325 // 326 // Solidity: function mnregistry_proxy() constant returns(address) 327 func (_TreasuryV1 *TreasuryV1Caller) MnregistryProxy(opts *bind.CallOpts) (common.Address, error) { 328 var ( 329 ret0 = new(common.Address) 330 ) 331 out := ret0 332 err := _TreasuryV1.contract.Call(opts, out, "mnregistry_proxy") 333 return *ret0, err 334 } 335 336 // MnregistryProxy is a free data retrieval call binding the contract method 0xfe7334e8. 337 // 338 // Solidity: function mnregistry_proxy() constant returns(address) 339 func (_TreasuryV1 *TreasuryV1Session) MnregistryProxy() (common.Address, error) { 340 return _TreasuryV1.Contract.MnregistryProxy(&_TreasuryV1.CallOpts) 341 } 342 343 // MnregistryProxy is a free data retrieval call binding the contract method 0xfe7334e8. 344 // 345 // Solidity: function mnregistry_proxy() constant returns(address) 346 func (_TreasuryV1 *TreasuryV1CallerSession) MnregistryProxy() (common.Address, error) { 347 return _TreasuryV1.Contract.MnregistryProxy(&_TreasuryV1.CallOpts) 348 } 349 350 // ProposalUuid is a free data retrieval call binding the contract method 0xcaef1d5a. 351 // 352 // Solidity: function proposal_uuid(address proposal) constant returns(uint256) 353 func (_TreasuryV1 *TreasuryV1Caller) ProposalUuid(opts *bind.CallOpts, proposal common.Address) (*big.Int, error) { 354 var ( 355 ret0 = new(*big.Int) 356 ) 357 out := ret0 358 err := _TreasuryV1.contract.Call(opts, out, "proposal_uuid", proposal) 359 return *ret0, err 360 } 361 362 // ProposalUuid is a free data retrieval call binding the contract method 0xcaef1d5a. 363 // 364 // Solidity: function proposal_uuid(address proposal) constant returns(uint256) 365 func (_TreasuryV1 *TreasuryV1Session) ProposalUuid(proposal common.Address) (*big.Int, error) { 366 return _TreasuryV1.Contract.ProposalUuid(&_TreasuryV1.CallOpts, proposal) 367 } 368 369 // ProposalUuid is a free data retrieval call binding the contract method 0xcaef1d5a. 370 // 371 // Solidity: function proposal_uuid(address proposal) constant returns(uint256) 372 func (_TreasuryV1 *TreasuryV1CallerSession) ProposalUuid(proposal common.Address) (*big.Int, error) { 373 return _TreasuryV1.Contract.ProposalUuid(&_TreasuryV1.CallOpts, proposal) 374 } 375 376 // Proxy is a free data retrieval call binding the contract method 0xec556889. 377 // 378 // Solidity: function proxy() constant returns(address) 379 func (_TreasuryV1 *TreasuryV1Caller) Proxy(opts *bind.CallOpts) (common.Address, error) { 380 var ( 381 ret0 = new(common.Address) 382 ) 383 out := ret0 384 err := _TreasuryV1.contract.Call(opts, out, "proxy") 385 return *ret0, err 386 } 387 388 // Proxy is a free data retrieval call binding the contract method 0xec556889. 389 // 390 // Solidity: function proxy() constant returns(address) 391 func (_TreasuryV1 *TreasuryV1Session) Proxy() (common.Address, error) { 392 return _TreasuryV1.Contract.Proxy(&_TreasuryV1.CallOpts) 393 } 394 395 // Proxy is a free data retrieval call binding the contract method 0xec556889. 396 // 397 // Solidity: function proxy() constant returns(address) 398 func (_TreasuryV1 *TreasuryV1CallerSession) Proxy() (common.Address, error) { 399 return _TreasuryV1.Contract.Proxy(&_TreasuryV1.CallOpts) 400 } 401 402 // SuperblockCycle is a free data retrieval call binding the contract method 0x0ef34745. 403 // 404 // Solidity: function superblock_cycle() constant returns(uint256) 405 func (_TreasuryV1 *TreasuryV1Caller) SuperblockCycle(opts *bind.CallOpts) (*big.Int, error) { 406 var ( 407 ret0 = new(*big.Int) 408 ) 409 out := ret0 410 err := _TreasuryV1.contract.Call(opts, out, "superblock_cycle") 411 return *ret0, err 412 } 413 414 // SuperblockCycle is a free data retrieval call binding the contract method 0x0ef34745. 415 // 416 // Solidity: function superblock_cycle() constant returns(uint256) 417 func (_TreasuryV1 *TreasuryV1Session) SuperblockCycle() (*big.Int, error) { 418 return _TreasuryV1.Contract.SuperblockCycle(&_TreasuryV1.CallOpts) 419 } 420 421 // SuperblockCycle is a free data retrieval call binding the contract method 0x0ef34745. 422 // 423 // Solidity: function superblock_cycle() constant returns(uint256) 424 func (_TreasuryV1 *TreasuryV1CallerSession) SuperblockCycle() (*big.Int, error) { 425 return _TreasuryV1.Contract.SuperblockCycle(&_TreasuryV1.CallOpts) 426 } 427 428 // UuidProposal is a free data retrieval call binding the contract method 0x5c099215. 429 // 430 // Solidity: function uuid_proposal(uint256 _ref_uuid) constant returns(address) 431 func (_TreasuryV1 *TreasuryV1Caller) UuidProposal(opts *bind.CallOpts, _ref_uuid *big.Int) (common.Address, error) { 432 var ( 433 ret0 = new(common.Address) 434 ) 435 out := ret0 436 err := _TreasuryV1.contract.Call(opts, out, "uuid_proposal", _ref_uuid) 437 return *ret0, err 438 } 439 440 // UuidProposal is a free data retrieval call binding the contract method 0x5c099215. 441 // 442 // Solidity: function uuid_proposal(uint256 _ref_uuid) constant returns(address) 443 func (_TreasuryV1 *TreasuryV1Session) UuidProposal(_ref_uuid *big.Int) (common.Address, error) { 444 return _TreasuryV1.Contract.UuidProposal(&_TreasuryV1.CallOpts, _ref_uuid) 445 } 446 447 // UuidProposal is a free data retrieval call binding the contract method 0x5c099215. 448 // 449 // Solidity: function uuid_proposal(uint256 _ref_uuid) constant returns(address) 450 func (_TreasuryV1 *TreasuryV1CallerSession) UuidProposal(_ref_uuid *big.Int) (common.Address, error) { 451 return _TreasuryV1.Contract.UuidProposal(&_TreasuryV1.CallOpts, _ref_uuid) 452 } 453 454 // V1storage is a free data retrieval call binding the contract method 0x2d059305. 455 // 456 // Solidity: function v1storage() constant returns(address) 457 func (_TreasuryV1 *TreasuryV1Caller) V1storage(opts *bind.CallOpts) (common.Address, error) { 458 var ( 459 ret0 = new(common.Address) 460 ) 461 out := ret0 462 err := _TreasuryV1.contract.Call(opts, out, "v1storage") 463 return *ret0, err 464 } 465 466 // V1storage is a free data retrieval call binding the contract method 0x2d059305. 467 // 468 // Solidity: function v1storage() constant returns(address) 469 func (_TreasuryV1 *TreasuryV1Session) V1storage() (common.Address, error) { 470 return _TreasuryV1.Contract.V1storage(&_TreasuryV1.CallOpts) 471 } 472 473 // V1storage is a free data retrieval call binding the contract method 0x2d059305. 474 // 475 // Solidity: function v1storage() constant returns(address) 476 func (_TreasuryV1 *TreasuryV1CallerSession) V1storage() (common.Address, error) { 477 return _TreasuryV1.Contract.V1storage(&_TreasuryV1.CallOpts) 478 } 479 480 // Contribute is a paid mutator transaction binding the contract method 0xd7bb99ba. 481 // 482 // Solidity: function contribute() returns() 483 func (_TreasuryV1 *TreasuryV1Transactor) Contribute(opts *bind.TransactOpts) (*types.Transaction, error) { 484 return _TreasuryV1.contract.Transact(opts, "contribute") 485 } 486 487 // Contribute is a paid mutator transaction binding the contract method 0xd7bb99ba. 488 // 489 // Solidity: function contribute() returns() 490 func (_TreasuryV1 *TreasuryV1Session) Contribute() (*types.Transaction, error) { 491 return _TreasuryV1.Contract.Contribute(&_TreasuryV1.TransactOpts) 492 } 493 494 // Contribute is a paid mutator transaction binding the contract method 0xd7bb99ba. 495 // 496 // Solidity: function contribute() returns() 497 func (_TreasuryV1 *TreasuryV1TransactorSession) Contribute() (*types.Transaction, error) { 498 return _TreasuryV1.Contract.Contribute(&_TreasuryV1.TransactOpts) 499 } 500 501 // Destroy is a paid mutator transaction binding the contract method 0x00f55d9d. 502 // 503 // Solidity: function destroy(address _newImpl) returns() 504 func (_TreasuryV1 *TreasuryV1Transactor) Destroy(opts *bind.TransactOpts, _newImpl common.Address) (*types.Transaction, error) { 505 return _TreasuryV1.contract.Transact(opts, "destroy", _newImpl) 506 } 507 508 // Destroy is a paid mutator transaction binding the contract method 0x00f55d9d. 509 // 510 // Solidity: function destroy(address _newImpl) returns() 511 func (_TreasuryV1 *TreasuryV1Session) Destroy(_newImpl common.Address) (*types.Transaction, error) { 512 return _TreasuryV1.Contract.Destroy(&_TreasuryV1.TransactOpts, _newImpl) 513 } 514 515 // Destroy is a paid mutator transaction binding the contract method 0x00f55d9d. 516 // 517 // Solidity: function destroy(address _newImpl) returns() 518 func (_TreasuryV1 *TreasuryV1TransactorSession) Destroy(_newImpl common.Address) (*types.Transaction, error) { 519 return _TreasuryV1.Contract.Destroy(&_TreasuryV1.TransactOpts, _newImpl) 520 } 521 522 // Migrate is a paid mutator transaction binding the contract method 0xce5494bb. 523 // 524 // Solidity: function migrate(address _oldImpl) returns() 525 func (_TreasuryV1 *TreasuryV1Transactor) Migrate(opts *bind.TransactOpts, _oldImpl common.Address) (*types.Transaction, error) { 526 return _TreasuryV1.contract.Transact(opts, "migrate", _oldImpl) 527 } 528 529 // Migrate is a paid mutator transaction binding the contract method 0xce5494bb. 530 // 531 // Solidity: function migrate(address _oldImpl) returns() 532 func (_TreasuryV1 *TreasuryV1Session) Migrate(_oldImpl common.Address) (*types.Transaction, error) { 533 return _TreasuryV1.Contract.Migrate(&_TreasuryV1.TransactOpts, _oldImpl) 534 } 535 536 // Migrate is a paid mutator transaction binding the contract method 0xce5494bb. 537 // 538 // Solidity: function migrate(address _oldImpl) returns() 539 func (_TreasuryV1 *TreasuryV1TransactorSession) Migrate(_oldImpl common.Address) (*types.Transaction, error) { 540 return _TreasuryV1.Contract.Migrate(&_TreasuryV1.TransactOpts, _oldImpl) 541 } 542 543 // Propose is a paid mutator transaction binding the contract method 0x40376d56. 544 // 545 // Solidity: function propose(uint256 _amount, uint256 _ref_uuid, uint256 _period) returns(address proposal) 546 func (_TreasuryV1 *TreasuryV1Transactor) Propose(opts *bind.TransactOpts, _amount *big.Int, _ref_uuid *big.Int, _period *big.Int) (*types.Transaction, error) { 547 return _TreasuryV1.contract.Transact(opts, "propose", _amount, _ref_uuid, _period) 548 } 549 550 // Propose is a paid mutator transaction binding the contract method 0x40376d56. 551 // 552 // Solidity: function propose(uint256 _amount, uint256 _ref_uuid, uint256 _period) returns(address proposal) 553 func (_TreasuryV1 *TreasuryV1Session) Propose(_amount *big.Int, _ref_uuid *big.Int, _period *big.Int) (*types.Transaction, error) { 554 return _TreasuryV1.Contract.Propose(&_TreasuryV1.TransactOpts, _amount, _ref_uuid, _period) 555 } 556 557 // Propose is a paid mutator transaction binding the contract method 0x40376d56. 558 // 559 // Solidity: function propose(uint256 _amount, uint256 _ref_uuid, uint256 _period) returns(address proposal) 560 func (_TreasuryV1 *TreasuryV1TransactorSession) Propose(_amount *big.Int, _ref_uuid *big.Int, _period *big.Int) (*types.Transaction, error) { 561 return _TreasuryV1.Contract.Propose(&_TreasuryV1.TransactOpts, _amount, _ref_uuid, _period) 562 } 563 564 // Reward is a paid mutator transaction binding the contract method 0x228cb733. 565 // 566 // Solidity: function reward() returns() 567 func (_TreasuryV1 *TreasuryV1Transactor) Reward(opts *bind.TransactOpts) (*types.Transaction, error) { 568 return _TreasuryV1.contract.Transact(opts, "reward") 569 } 570 571 // Reward is a paid mutator transaction binding the contract method 0x228cb733. 572 // 573 // Solidity: function reward() returns() 574 func (_TreasuryV1 *TreasuryV1Session) Reward() (*types.Transaction, error) { 575 return _TreasuryV1.Contract.Reward(&_TreasuryV1.TransactOpts) 576 } 577 578 // Reward is a paid mutator transaction binding the contract method 0x228cb733. 579 // 580 // Solidity: function reward() returns() 581 func (_TreasuryV1 *TreasuryV1TransactorSession) Reward() (*types.Transaction, error) { 582 return _TreasuryV1.Contract.Reward(&_TreasuryV1.TransactOpts) 583 } 584 585 // TreasuryV1BudgetProposalIterator is returned from FilterBudgetProposal and is used to iterate over the raw logs and unpacked data for BudgetProposal events raised by the TreasuryV1 contract. 586 type TreasuryV1BudgetProposalIterator struct { 587 Event *TreasuryV1BudgetProposal // Event containing the contract specifics and raw log 588 589 contract *bind.BoundContract // Generic contract to use for unpacking event data 590 event string // Event name to use for unpacking event data 591 592 logs chan types.Log // Log channel receiving the found contract events 593 sub ethereum.Subscription // Subscription for errors, completion and termination 594 done bool // Whether the subscription completed delivering logs 595 fail error // Occurred error to stop iteration 596 } 597 598 // Next advances the iterator to the subsequent event, returning whether there 599 // are any more events found. In case of a retrieval or parsing error, false is 600 // returned and Error() can be queried for the exact failure. 601 func (it *TreasuryV1BudgetProposalIterator) Next() bool { 602 // If the iterator failed, stop iterating 603 if it.fail != nil { 604 return false 605 } 606 // If the iterator completed, deliver directly whatever's available 607 if it.done { 608 select { 609 case log := <-it.logs: 610 it.Event = new(TreasuryV1BudgetProposal) 611 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 612 it.fail = err 613 return false 614 } 615 it.Event.Raw = log 616 return true 617 618 default: 619 return false 620 } 621 } 622 // Iterator still in progress, wait for either a data or an error event 623 select { 624 case log := <-it.logs: 625 it.Event = new(TreasuryV1BudgetProposal) 626 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 627 it.fail = err 628 return false 629 } 630 it.Event.Raw = log 631 return true 632 633 case err := <-it.sub.Err(): 634 it.done = true 635 it.fail = err 636 return it.Next() 637 } 638 } 639 640 // Error returns any retrieval or parsing error occurred during filtering. 641 func (it *TreasuryV1BudgetProposalIterator) Error() error { 642 return it.fail 643 } 644 645 // Close terminates the iteration process, releasing any pending underlying 646 // resources. 647 func (it *TreasuryV1BudgetProposalIterator) Close() error { 648 it.sub.Unsubscribe() 649 return nil 650 } 651 652 // TreasuryV1BudgetProposal represents a BudgetProposal event raised by the TreasuryV1 contract. 653 type TreasuryV1BudgetProposal struct { 654 RefUuid *big.Int 655 Proposal common.Address 656 PayoutAddress common.Address 657 Amount *big.Int 658 Deadline *big.Int 659 Raw types.Log // Blockchain specific contextual infos 660 } 661 662 // FilterBudgetProposal is a free log retrieval operation binding the contract event 0xa94befa3ce181974130fe36e854a282c70fb75e4decb42bfecdecbd6f88f0f5d. 663 // 664 // Solidity: event BudgetProposal(uint256 indexed ref_uuid, address proposal, address payout_address, uint256 amount, uint256 deadline) 665 func (_TreasuryV1 *TreasuryV1Filterer) FilterBudgetProposal(opts *bind.FilterOpts, ref_uuid []*big.Int) (*TreasuryV1BudgetProposalIterator, error) { 666 667 var ref_uuidRule []interface{} 668 for _, ref_uuidItem := range ref_uuid { 669 ref_uuidRule = append(ref_uuidRule, ref_uuidItem) 670 } 671 672 logs, sub, err := _TreasuryV1.contract.FilterLogs(opts, "BudgetProposal", ref_uuidRule) 673 if err != nil { 674 return nil, err 675 } 676 return &TreasuryV1BudgetProposalIterator{contract: _TreasuryV1.contract, event: "BudgetProposal", logs: logs, sub: sub}, nil 677 } 678 679 // WatchBudgetProposal is a free log subscription operation binding the contract event 0xa94befa3ce181974130fe36e854a282c70fb75e4decb42bfecdecbd6f88f0f5d. 680 // 681 // Solidity: event BudgetProposal(uint256 indexed ref_uuid, address proposal, address payout_address, uint256 amount, uint256 deadline) 682 func (_TreasuryV1 *TreasuryV1Filterer) WatchBudgetProposal(opts *bind.WatchOpts, sink chan<- *TreasuryV1BudgetProposal, ref_uuid []*big.Int) (event.Subscription, error) { 683 684 var ref_uuidRule []interface{} 685 for _, ref_uuidItem := range ref_uuid { 686 ref_uuidRule = append(ref_uuidRule, ref_uuidItem) 687 } 688 689 logs, sub, err := _TreasuryV1.contract.WatchLogs(opts, "BudgetProposal", ref_uuidRule) 690 if err != nil { 691 return nil, err 692 } 693 return event.NewSubscription(func(quit <-chan struct{}) error { 694 defer sub.Unsubscribe() 695 for { 696 select { 697 case log := <-logs: 698 // New log arrived, parse the event and forward to the user 699 event := new(TreasuryV1BudgetProposal) 700 if err := _TreasuryV1.contract.UnpackLog(event, "BudgetProposal", log); err != nil { 701 return err 702 } 703 event.Raw = log 704 705 select { 706 case sink <- event: 707 case err := <-sub.Err(): 708 return err 709 case <-quit: 710 return nil 711 } 712 case err := <-sub.Err(): 713 return err 714 case <-quit: 715 return nil 716 } 717 } 718 }), nil 719 } 720 721 // TreasuryV1ContributionIterator is returned from FilterContribution and is used to iterate over the raw logs and unpacked data for Contribution events raised by the TreasuryV1 contract. 722 type TreasuryV1ContributionIterator struct { 723 Event *TreasuryV1Contribution // Event containing the contract specifics and raw log 724 725 contract *bind.BoundContract // Generic contract to use for unpacking event data 726 event string // Event name to use for unpacking event data 727 728 logs chan types.Log // Log channel receiving the found contract events 729 sub ethereum.Subscription // Subscription for errors, completion and termination 730 done bool // Whether the subscription completed delivering logs 731 fail error // Occurred error to stop iteration 732 } 733 734 // Next advances the iterator to the subsequent event, returning whether there 735 // are any more events found. In case of a retrieval or parsing error, false is 736 // returned and Error() can be queried for the exact failure. 737 func (it *TreasuryV1ContributionIterator) Next() bool { 738 // If the iterator failed, stop iterating 739 if it.fail != nil { 740 return false 741 } 742 // If the iterator completed, deliver directly whatever's available 743 if it.done { 744 select { 745 case log := <-it.logs: 746 it.Event = new(TreasuryV1Contribution) 747 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 748 it.fail = err 749 return false 750 } 751 it.Event.Raw = log 752 return true 753 754 default: 755 return false 756 } 757 } 758 // Iterator still in progress, wait for either a data or an error event 759 select { 760 case log := <-it.logs: 761 it.Event = new(TreasuryV1Contribution) 762 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 763 it.fail = err 764 return false 765 } 766 it.Event.Raw = log 767 return true 768 769 case err := <-it.sub.Err(): 770 it.done = true 771 it.fail = err 772 return it.Next() 773 } 774 } 775 776 // Error returns any retrieval or parsing error occurred during filtering. 777 func (it *TreasuryV1ContributionIterator) Error() error { 778 return it.fail 779 } 780 781 // Close terminates the iteration process, releasing any pending underlying 782 // resources. 783 func (it *TreasuryV1ContributionIterator) Close() error { 784 it.sub.Unsubscribe() 785 return nil 786 } 787 788 // TreasuryV1Contribution represents a Contribution event raised by the TreasuryV1 contract. 789 type TreasuryV1Contribution struct { 790 From common.Address 791 Amount *big.Int 792 Raw types.Log // Blockchain specific contextual infos 793 } 794 795 // FilterContribution is a free log retrieval operation binding the contract event 0x4d154d4aae216bed6d0926db77c00df2b57c6b5ba4eee05775de20facede3a7b. 796 // 797 // Solidity: event Contribution(address from, uint256 amount) 798 func (_TreasuryV1 *TreasuryV1Filterer) FilterContribution(opts *bind.FilterOpts) (*TreasuryV1ContributionIterator, error) { 799 800 logs, sub, err := _TreasuryV1.contract.FilterLogs(opts, "Contribution") 801 if err != nil { 802 return nil, err 803 } 804 return &TreasuryV1ContributionIterator{contract: _TreasuryV1.contract, event: "Contribution", logs: logs, sub: sub}, nil 805 } 806 807 // WatchContribution is a free log subscription operation binding the contract event 0x4d154d4aae216bed6d0926db77c00df2b57c6b5ba4eee05775de20facede3a7b. 808 // 809 // Solidity: event Contribution(address from, uint256 amount) 810 func (_TreasuryV1 *TreasuryV1Filterer) WatchContribution(opts *bind.WatchOpts, sink chan<- *TreasuryV1Contribution) (event.Subscription, error) { 811 812 logs, sub, err := _TreasuryV1.contract.WatchLogs(opts, "Contribution") 813 if err != nil { 814 return nil, err 815 } 816 return event.NewSubscription(func(quit <-chan struct{}) error { 817 defer sub.Unsubscribe() 818 for { 819 select { 820 case log := <-logs: 821 // New log arrived, parse the event and forward to the user 822 event := new(TreasuryV1Contribution) 823 if err := _TreasuryV1.contract.UnpackLog(event, "Contribution", log); err != nil { 824 return err 825 } 826 event.Raw = log 827 828 select { 829 case sink <- event: 830 case err := <-sub.Err(): 831 return err 832 case <-quit: 833 return nil 834 } 835 case err := <-sub.Err(): 836 return err 837 case <-quit: 838 return nil 839 } 840 } 841 }), nil 842 } 843 844 // TreasuryV1PayoutIterator is returned from FilterPayout and is used to iterate over the raw logs and unpacked data for Payout events raised by the TreasuryV1 contract. 845 type TreasuryV1PayoutIterator struct { 846 Event *TreasuryV1Payout // Event containing the contract specifics and raw log 847 848 contract *bind.BoundContract // Generic contract to use for unpacking event data 849 event string // Event name to use for unpacking event data 850 851 logs chan types.Log // Log channel receiving the found contract events 852 sub ethereum.Subscription // Subscription for errors, completion and termination 853 done bool // Whether the subscription completed delivering logs 854 fail error // Occurred error to stop iteration 855 } 856 857 // Next advances the iterator to the subsequent event, returning whether there 858 // are any more events found. In case of a retrieval or parsing error, false is 859 // returned and Error() can be queried for the exact failure. 860 func (it *TreasuryV1PayoutIterator) Next() bool { 861 // If the iterator failed, stop iterating 862 if it.fail != nil { 863 return false 864 } 865 // If the iterator completed, deliver directly whatever's available 866 if it.done { 867 select { 868 case log := <-it.logs: 869 it.Event = new(TreasuryV1Payout) 870 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 871 it.fail = err 872 return false 873 } 874 it.Event.Raw = log 875 return true 876 877 default: 878 return false 879 } 880 } 881 // Iterator still in progress, wait for either a data or an error event 882 select { 883 case log := <-it.logs: 884 it.Event = new(TreasuryV1Payout) 885 if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { 886 it.fail = err 887 return false 888 } 889 it.Event.Raw = log 890 return true 891 892 case err := <-it.sub.Err(): 893 it.done = true 894 it.fail = err 895 return it.Next() 896 } 897 } 898 899 // Error returns any retrieval or parsing error occurred during filtering. 900 func (it *TreasuryV1PayoutIterator) Error() error { 901 return it.fail 902 } 903 904 // Close terminates the iteration process, releasing any pending underlying 905 // resources. 906 func (it *TreasuryV1PayoutIterator) Close() error { 907 it.sub.Unsubscribe() 908 return nil 909 } 910 911 // TreasuryV1Payout represents a Payout event raised by the TreasuryV1 contract. 912 type TreasuryV1Payout struct { 913 RefUuid *big.Int 914 Proposal common.Address 915 Amount *big.Int 916 Raw types.Log // Blockchain specific contextual infos 917 } 918 919 // FilterPayout is a free log retrieval operation binding the contract event 0x5f7341a552ae2d452b071917104c05fbac3663936a69be768a05c40605056e7d. 920 // 921 // Solidity: event Payout(uint256 indexed ref_uuid, address proposal, uint256 amount) 922 func (_TreasuryV1 *TreasuryV1Filterer) FilterPayout(opts *bind.FilterOpts, ref_uuid []*big.Int) (*TreasuryV1PayoutIterator, error) { 923 924 var ref_uuidRule []interface{} 925 for _, ref_uuidItem := range ref_uuid { 926 ref_uuidRule = append(ref_uuidRule, ref_uuidItem) 927 } 928 929 logs, sub, err := _TreasuryV1.contract.FilterLogs(opts, "Payout", ref_uuidRule) 930 if err != nil { 931 return nil, err 932 } 933 return &TreasuryV1PayoutIterator{contract: _TreasuryV1.contract, event: "Payout", logs: logs, sub: sub}, nil 934 } 935 936 // WatchPayout is a free log subscription operation binding the contract event 0x5f7341a552ae2d452b071917104c05fbac3663936a69be768a05c40605056e7d. 937 // 938 // Solidity: event Payout(uint256 indexed ref_uuid, address proposal, uint256 amount) 939 func (_TreasuryV1 *TreasuryV1Filterer) WatchPayout(opts *bind.WatchOpts, sink chan<- *TreasuryV1Payout, ref_uuid []*big.Int) (event.Subscription, error) { 940 941 var ref_uuidRule []interface{} 942 for _, ref_uuidItem := range ref_uuid { 943 ref_uuidRule = append(ref_uuidRule, ref_uuidItem) 944 } 945 946 logs, sub, err := _TreasuryV1.contract.WatchLogs(opts, "Payout", ref_uuidRule) 947 if err != nil { 948 return nil, err 949 } 950 return event.NewSubscription(func(quit <-chan struct{}) error { 951 defer sub.Unsubscribe() 952 for { 953 select { 954 case log := <-logs: 955 // New log arrived, parse the event and forward to the user 956 event := new(TreasuryV1Payout) 957 if err := _TreasuryV1.contract.UnpackLog(event, "Payout", log); err != nil { 958 return err 959 } 960 event.Raw = log 961 962 select { 963 case sink <- event: 964 case err := <-sub.Err(): 965 return err 966 case <-quit: 967 return nil 968 } 969 case err := <-sub.Err(): 970 return err 971 case <-quit: 972 return nil 973 } 974 } 975 }), nil 976 }