From f445a50e96f01a18c16e72accc1df0258c6ef7f4 Mon Sep 17 00:00:00 2001 From: Christian Sullivan Date: Mon, 24 Sep 2018 10:10:00 -0700 Subject: [PATCH 1/2] update contract to fix errors (solc Version: 0.4.25) --- contracts/monolithic.sol | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/contracts/monolithic.sol b/contracts/monolithic.sol index d6287e8..a40c279 100644 --- a/contracts/monolithic.sol +++ b/contracts/monolithic.sol @@ -322,7 +322,7 @@ contract Ownable { } /// @notice Allows the current owner to transfer control of the contract to a newOwner. - /// @param _newOwner + /// @param _newOwner ... /// @return true/false function changeOwnership(address _newOwner) public onlyOwner returns (bool) { require(_newOwner != address(0)); @@ -340,7 +340,7 @@ contract Owned is Ownable { address public newOwner; /// @notice Allows the current owner to transfer control of the contract to a newOwner. - /// @param _newOwner + /// @param _newOwner ... /// @return true/false function changeOwnership(address _newOwner) public onlyOwner returns (bool) { require(_newOwner != owner); @@ -377,9 +377,9 @@ contract Mintable is Owned { ITokenPorter public tokenPorter; /// @notice init reference of other contract and initial supply - /// @param _autonomousConverter - /// @param _minter - /// @param _initialSupply + /// @param _autonomousConverter ... + /// @param _minter ... + /// @param _initialSupply ... /// @param _decmult Decimal places function initMintable(address _autonomousConverter, address _minter, uint _initialSupply, uint _decmult) public onlyOwner { @@ -410,7 +410,7 @@ contract Mintable is Owned { } /// @notice allow minter and tokenPorter to mint token and assign to address - /// @param _to + /// @param _to ... /// @param _value Amount to be minted function mint(address _to, uint _value) public returns (bool) { require(msg.sender == minter || msg.sender == address(tokenPorter)); @@ -422,7 +422,7 @@ contract Mintable is Owned { } /// @notice allow autonomousConverter and tokenPorter to mint token and assign to address - /// @param _from + /// @param _from ... /// @param _value Amount to be destroyed function destroy(address _from, uint _value) public returns (bool) { require(msg.sender == autonomousConverter || msg.sender == address(tokenPorter)); @@ -696,8 +696,8 @@ contract METToken is Token { } /// @notice get subcription details - /// @param _owner - /// @param _recipient + /// @param _owner ... + /// @param _recipient ... /// @return startTime, payPerWeek, lastWithdrawTime function getSubscription(address _owner, address _recipient) public constant returns (uint startTime, uint payPerWeek, uint lastWithdrawTime) @@ -733,8 +733,8 @@ contract METToken is Token { /// @notice Trigger MET token transfers for all pairs of subscribers and beneficiaries /// @dev address at i index in owners and recipients array is subcriber-beneficiary pair. - /// @param _owners - /// @param _recipients + /// @param _owners ... + /// @param _recipients ... /// @return number of successful transfer done function multiSubWithdrawFor(address[] _owners, address[] _recipients) public returns (uint) { // owners and recipients need 1-to-1 mapping, must be same length From 11320b4d7dd5af4893116aae10d6cfce288b8d00 Mon Sep 17 00:00:00 2001 From: Christian Sullivan Date: Mon, 24 Sep 2018 10:24:53 -0700 Subject: [PATCH 2/2] add go binding gen cmd to packet.json and gen go bindings - Add command to package.json to generate go bindings - Generate Go bindings --- metronome.go | 16235 +++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 16236 insertions(+) create mode 100644 metronome.go diff --git a/metronome.go b/metronome.go new file mode 100644 index 0000000..a7abca6 --- /dev/null +++ b/metronome.go @@ -0,0 +1,16235 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package metronome + +import ( + "math/big" + "strings" + + ethereum "github.com/ethereum/go-ethereum" + "github.com/ethereum/go-ethereum/accounts/abi" + "github.com/ethereum/go-ethereum/accounts/abi/bind" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/event" +) + +// AuctionsABI is the input ABI used to generate the binding from. +const AuctionsABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"initialAuctionEndTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"initialPrice\",\"type\":\"uint256\"},{\"name\":\"_n\",\"type\":\"uint256\"}],\"name\":\"priceAt\",\"outputs\":[{\"name\":\"price\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumPriceInDailyAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MULTIPLIER\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentTick\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_founders\",\"type\":\"uint256[]\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_proceeds\",\"type\":\"address\"},{\"name\":\"_autonomousConverter\",\"type\":\"address\"}],\"name\":\"mintInitialSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tentimes\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_startTime\",\"type\":\"uint256\"},{\"name\":\"_minimumPrice\",\"type\":\"uint256\"},{\"name\":\"_startingPrice\",\"type\":\"uint256\"},{\"name\":\"_timeScale\",\"type\":\"uint256\"}],\"name\":\"initAuctions\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"initialized\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isInitialAuctionEnded\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentMintable\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isRunning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastPurchaseTick\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"globalMetSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"INITIAL_AC_SUPPLY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"globalDailySupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"INITIAL_SUPPLY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"hundredtimes\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"heartbeat\",\"outputs\":[{\"name\":\"_chain\",\"type\":\"bytes8\"},{\"name\":\"auctionAddr\",\"type\":\"address\"},{\"name\":\"convertAddr\",\"type\":\"address\"},{\"name\":\"tokenAddr\",\"type\":\"address\"},{\"name\":\"minting\",\"type\":\"uint256\"},{\"name\":\"totalMET\",\"type\":\"uint256\"},{\"name\":\"proceedsBal\",\"type\":\"uint256\"},{\"name\":\"currTick\",\"type\":\"uint256\"},{\"name\":\"currAuction\",\"type\":\"uint256\"},{\"name\":\"nextAuctionGMT\",\"type\":\"uint256\"},{\"name\":\"genesisGMT\",\"type\":\"uint256\"},{\"name\":\"currentAuctionPrice\",\"type\":\"uint256\"},{\"name\":\"_dailyMintable\",\"type\":\"uint256\"},{\"name\":\"_lastPurchasePrice\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_founder\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"createTokenLocker\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"genesisTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"stopEverything\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"dailyAuctionStartTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"mintable\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minted\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokensOnThisChain\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proceeds\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"INITIAL_GLOBAL_DAILY_SUPPLY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_wei\",\"type\":\"uint256\"},{\"name\":\"_timestamp\",\"type\":\"uint256\"}],\"name\":\"whatWouldPurchaseDo\",\"outputs\":[{\"name\":\"weiPerToken\",\"type\":\"uint256\"},{\"name\":\"tokens\",\"type\":\"uint256\"},{\"name\":\"refund\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalMigratedIn\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumPrice\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastPurchasePrice\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"dailyMintable\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"thousandtimes\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentPrice\",\"outputs\":[{\"name\":\"weiPerToken\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"lastPurchasePrice\",\"type\":\"uint256\"},{\"name\":\"numTicks\",\"type\":\"uint256\"}],\"name\":\"priceAtInitialAuction\",\"outputs\":[{\"name\":\"price\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"initPricer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"initialAuctionDuration\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"chain\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"t\",\"type\":\"uint256\"}],\"name\":\"whichTick\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DAILY_PURCHASE_LIMIT\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"INITIAL_FOUNDER_SUPPLY\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"prepareAuctionForNonOGChain\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"founders\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"globalSupplyAfterPercentageLogic\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_proceeds\",\"type\":\"address\"},{\"name\":\"_genesisTime\",\"type\":\"uint256\"},{\"name\":\"_minimumPrice\",\"type\":\"uint256\"},{\"name\":\"_startingPrice\",\"type\":\"uint256\"},{\"name\":\"_timeScale\",\"type\":\"uint256\"},{\"name\":\"_chain\",\"type\":\"bytes8\"},{\"name\":\"_initialAuctionEndTime\",\"type\":\"uint256\"}],\"name\":\"skipInitBecauseIAmNotOg\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalMigratedOut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"AUCTION_WHEN_PERCENTAGE_LOGIC_STARTS\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"timeScale\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenLockers\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"t\",\"type\":\"uint256\"}],\"name\":\"whichAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"tokens\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"purchasePrice\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"refund\",\"type\":\"uint256\"}],\"name\":\"LogAuctionFundsIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"}]" + +// AuctionsBin is the compiled bytecode used for deploying new contracts. +const AuctionsBin = `0x60806040526503005753e800600090815560018080556a01a78429bce3279a9c0000600e55670de0b6b3a7640000600f5560108290556011919091556012556a084595161401484a00000060135562093a806014556a2b8213a156a49f0d000000601a55601b805467ffffffffffffffff191667455448000000000017905534801561008a57600080fd5b5060058054600160a060020a031916331790556a069e10de76676d080000006013556137bd806100bb6000396000f300608060405260043610620002c85763ffffffff60e060020a600035041662fca46f81146200087957806301dbdf4414620008a3578063053f749214620008c1578063059f8b1614620008d9578063065e536014620008f15780630a5f558e14620009095780630d2a25bb146200098f5780630eab31b114620009a7578063158ef93e14620009cb5780631d38bebd14620009e35780631d3ce58d14620009fb5780632014e5d11462000a13578063212884001462000a2b57806322ce61b21462000a435780632af4c31e1462000a5b5780632b193ac41462000a7f5780632b3792181462000a975780632ff2e9dc1462000aaf5780633264a8441462000ac75780633defb9621462000adf57806340a3a9c71462000bd457806342c6498a1462000c005780634938649a1462000c18578063496a698d1462000c3057806349b11f241462000c485780634bf365df1462000c605780634f02c4201462000c78578063518c0f171462000c9057806355b5ec641462000ca85780635d766d351462000cdc5780637334a63f1462000cf457806379ba50971462000d305780637a8a5cf31462000d485780637f386b6c1462000d605780638207b07d1462000d78578063843ad7b51462000d905780638da5cb5b1462000da85780639b8abe0b1462000dc05780639d1b464a1462000dd8578063a8afc5381462000df0578063c1f7c5391462000e0e578063c50508de1462000e26578063c763e5a11462000e3e578063d282866a1462000e84578063d4ee1d901462000e9f578063d511cc491462000eb7578063d661d2061462000ecf578063d7508a551462000ee7578063d8e75f621462000eff578063d9db9d891462000f1a578063df775a931462000f32578063e98c365b1462000f89578063f17f3ca31462000fa1578063f32b85e81462000fb9578063f4285c3c1462000fd1578063fc0c546a1462000ff5578063fde9cded146200100d575b6000806000806000806000620002dd62001028565b1515620002e957600080fd5b60003411620002f757600080fd5b34965062000307600c5462001044565b620003116200108c565b11156200038f57600860009054906101000a9004600160a060020a0316600160a060020a031663378252f26040518163ffffffff1660e060020a028152600401600060405180830381600087803b1580156200036c57600080fd5b505af115801562000381573d6000803e3d6000fd5b505050506200038f620010a2565b6200039962001123565b156200052057601654421015620003af57600080fd5b620003b96200108c565b3360009081526018602052604090205410156200043e57683635c9adc5dea000008711156200040c57620003fd87683635c9adc5dea0000063ffffffff620011e116565b9550683635c9adc5dea0000096505b336000908152601760205260409020349055620004286200108c565b3360009081526018602052604090205562000520565b33600090815260176020526040902054683635c9adc5dea00000116200046357600080fd5b33600090815260176020526040902054683635c9adc5dea000009062000490908963ffffffff620011f916565b1115620004ed5733600090815260176020526040902054620004d690683635c9adc5dea0000090620004c9908a63ffffffff620011f916565b9063ffffffff620011e116565b9550620004ea878763ffffffff620011e116565b96505b336000908152601760205260409020546200050f903463ffffffff620011f916565b336000908152601760205260409020555b6200052a62001214565b945062000538878662001221565b91955093509150600083116200054d57600080fd5b601554421080156200060d5750600754604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516a084595161401484a000000926200060a928792600160a060020a03909216916318160ddd916004808201926020929091908290030181600087803b158015620005cf57600080fd5b505af1158015620005e4573d6000803e3d6000fd5b505050506040513d6020811015620005fb57600080fd5b50519063ffffffff620011f916565b10155b1562000629574260158190556001620151809182900401026016555b600c859055600d8490556013548311156200064057fe5b60135462000655908463ffffffff620011e116565b601355868211156200066357fe5b62000675878363ffffffff620011e116565b9050600860009054906101000a9004600160a060020a0316600160a060020a0316637679a816826040518263ffffffff1660e060020a0281526004016000604051808303818588803b158015620006cb57600080fd5b505af1158015620006e0573d6000803e3d6000fd5b5050600754604080517f40c10f19000000000000000000000000000000000000000000000000000000008152336004820152602481018990529051600160a060020a0390921694506340c10f19935060448082019350602092918290030181600087803b1580156200075157600080fd5b505af115801562000766573d6000803e3d6000fd5b505050506040513d60208110156200077d57600080fd5b505115156200078b57600080fd5b6200079d828763ffffffff620011f916565b915060008211156200082357336000908152601760205260408120541115620007f35733600090815260176020526040902054620007e2908363ffffffff620011e116565b336000908152601760205260409020555b604051339083156108fc029084906000818181858888f1935050505015801562000821573d6000803e3d6000fd5b505b600d54604080518381526020810186905280820192909252606082018490525133917fa3d6792be56a61c872a8e6d733ef6efe5e391cece4d5e9d2f37208fdab7dddfd919081900360800190a250505050505050005b3480156200088657600080fd5b5062000891620012fb565b60408051918252519081900360200190f35b348015620008b057600080fd5b506200089160043560243562001301565b348015620008ce57600080fd5b506200089162001482565b348015620008e657600080fd5b506200089162001488565b348015620008fe57600080fd5b506200089162001214565b3480156200091657600080fd5b50604080516020600480358082013583810280860185019096528085526200097b9536959394602494938501929182918501908490808284375094975050600160a060020a038535811696506020860135811695604001351693506200149292505050565b604080519115158252519081900360200190f35b3480156200099c57600080fd5b506200089162001843565b348015620009b457600080fd5b506200097b60043560243560443560643562001849565b348015620009d857600080fd5b506200097b62001a30565b348015620009f057600080fd5b506200097b62001123565b34801562000a0857600080fd5b506200089162001a3e565b34801562000a2057600080fd5b506200097b62001028565b34801562000a3857600080fd5b506200089162001aa7565b34801562000a5057600080fd5b506200089162001aad565b34801562000a6857600080fd5b506200097b600160a060020a036004351662001b11565b34801562000a8c57600080fd5b506200089162001b7a565b34801562000aa457600080fd5b506200089162001b80565b34801562000abc57600080fd5b506200089162001c6c565b34801562000ad457600080fd5b506200089162001c7b565b34801562000aec57600080fd5b5062000af762001c81565b604051808f77ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018e600160a060020a0316600160a060020a031681526020018d600160a060020a0316600160a060020a031681526020018c600160a060020a0316600160a060020a031681526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019e50505050505050505050505050505060405180910390f35b34801562000be157600080fd5b5062000bfe600160a060020a036004358116906024351662001e71565b005b34801562000c0d57600080fd5b50620008916200201a565b34801562000c2557600080fd5b5062000bfe62002020565b34801562000c3d57600080fd5b50620008916200108c565b34801562000c5557600080fd5b506200089162002061565b34801562000c6d57600080fd5b506200089162002067565b34801562000c8557600080fd5b506200097b6200206d565b34801562000c9d57600080fd5b506200089162002076565b34801562000cb557600080fd5b5062000cc062002124565b60408051600160a060020a039092168252519081900360200190f35b34801562000ce957600080fd5b506200089162002133565b34801562000d0157600080fd5b5062000d1260043560243562002140565b60408051938452602084019290925282820152519081900360600190f35b34801562000d3d57600080fd5b506200097b620021d2565b34801562000d5557600080fd5b506200089162002261565b34801562000d6d57600080fd5b506200089162002267565b34801562000d8557600080fd5b50620008916200226d565b34801562000d9d57600080fd5b506200089162002273565b34801562000db557600080fd5b5062000cc062002281565b34801562000dcd57600080fd5b506200089162002290565b34801562000de557600080fd5b506200089162002296565b34801562000dfd57600080fd5b5062000891600435602435620022a6565b34801562000e1b57600080fd5b5062000bfe6200230a565b34801562000e3357600080fd5b5062000891620023de565b34801562000e4b57600080fd5b5062000e56620023e4565b6040805177ffffffffffffffffffffffffffffffffffffffffffffffff199092168252519081900360200190f35b34801562000e9157600080fd5b5062000891600435620023f0565b34801562000eac57600080fd5b5062000cc062002412565b34801562000ec457600080fd5b506200089162002421565b34801562000edc57600080fd5b50620008916200242e565b34801562000ef457600080fd5b5062000bfe62002434565b34801562000f0c57600080fd5b5062000cc0600435620025d0565b34801562000f2757600080fd5b5062000891620025f9565b34801562000f3f57600080fd5b506200097b600160a060020a036004358116906024351660443560643560843560a43577ffffffffffffffffffffffffffffffffffffffffffffffff1960c4351660e435620025ff565b34801562000f9657600080fd5b5062000891620027c9565b34801562000fae57600080fd5b5062000891620027cf565b34801562000fc657600080fd5b5062000891620027d5565b34801562000fde57600080fd5b5062000cc0600160a060020a0360043516620027db565b3480156200100257600080fd5b5062000cc0620027f6565b3480156200101a57600080fd5b506200089160043562001044565b6000600b5442101580156200103f57506000600b54115b905090565b60008162001054601654620023f0565b1115620010645750600062001087565b6105a062001074601654620023f0565b83038115156200108057fe5b0460010190505b919050565b60006200103f6200109c62001214565b62001044565b600080600080620010b262002805565b91955093509150620010c36200108c565b90506139c7811115620010f257620010ee620010de62001b80565b601a549063ffffffff620011f916565b601a555b60135462001107908363ffffffff620011f916565b601355600d8390556200111a84620023f0565b600c5550505050565b60006015546000141580156200103f5750601554421015806200103f5750600754604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516a084595161401484a00000092600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b158015620011ac57600080fd5b505af1158015620011c1573d6000803e3d6000fd5b505050506040513d6020811015620011d857600080fd5b50511015905090565b600082821115620011ee57fe5b508082035b92915050565b6000828201838110156200120957fe5b8091505b5092915050565b60006200103f42620023f0565b600080600080600080600c5487101515156200123c57600080fd5b600c54870392506200124d62001123565b15620012695762001261600d548462001301565b95506200127a565b62001277600d5484620022a6565b95505b620012a68662001299670de0b6b3a76400008b63ffffffff6200291e16565b9063ffffffff6200294d16565b9150819450601354821115620012f1576013549450620012da670de0b6b3a764000062001299878963ffffffff6200291e16565b9050620012ee888263ffffffff620011e116565b93505b5050509250925092565b60155481565b6000670de0b6b3a76400008183816103e8820411156200136657600091505b6103e8810482101562001360576004546200135290670de0b6b3a7640000906200129990869063ffffffff6200291e16565b925060019091019062001320565b6103e890065b6000606482041115620013bc57600091505b60648104821015620013b757600354620013a990670de0b6b3a7640000906200129990869063ffffffff6200291e16565b925060019091019062001378565b606490065b6000600a820411156200141257600091505b600a81048210156200140d57600254620013ff90670de0b6b3a7640000906200129990869063ffffffff6200291e16565b9250600190910190620013ce565b600a90065b600091505b8082101562001447576200143960646200129985606363ffffffff6200291e16565b925060019091019062001417565b62001466670de0b6b3a764000062001299888663ffffffff6200291e16565b9350600154841015620014795760015493505b50505092915050565b60015481565b65b4791041f30081565b60055460009081908190819081908190600160a060020a03163314620014b757600080fd5b60195460ff1615620014c857600080fd5b89511515620014d657600080fd5b600754600160a060020a0316158015620014f85750600160a060020a03891615155b15156200150457600080fd5b600854600160a060020a0316158015620015265750600160a060020a03881615155b15156200153257600080fd5b600160a060020a03871615156200154857600080fd5b60078054600160a060020a03808c1673ffffffffffffffffffffffffffffffffffffffff199283161790925560088054928b1692909116919091179055600093505b8951841015620017675760608a85815181101515620015a557fe5b906020019060200201519060020a9004925082600160a060020a0316600014151515620015d157600080fd5b8984815181101515620015e057fe5b602090810290910101516bffffffffffffffffffffffff169150600082116200160857600080fd5b50600160a060020a038083166000908152600a602090815260408083205460075482517f40c10f1900000000000000000000000000000000000000000000000000000000815291861660048301819052602483018890529251929516936340c10f199360448084019491939192918390030190829087803b1580156200168d57600080fd5b505af1158015620016a2573d6000803e3d6000fd5b505050506040513d6020811015620016b957600080fd5b50511515620016c757600080fd5b80600160a060020a03166347e7ef2484846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b1580156200172b57600080fd5b505af115801562001740573d6000803e3d6000fd5b50505050620017598286620011f990919063ffffffff16565b94506001909301926200158a565b600e5485146200177657600080fd5b600754600f54604080517f40c10f19000000000000000000000000000000000000000000000000000000008152600160a060020a038b811660048301526024820193909352905191909216916340c10f199160448083019260209291908290030181600087803b158015620017ea57600080fd5b505af1158015620017ff573d6000803e3d6000fd5b505050506040513d60208110156200181657600080fd5b505115156200182457600080fd5b6019805460ff1916600190811790915595505050505050949350505050565b60025481565b60055460009081908190600160a060020a031633146200186857600080fd5b60195460ff1615156200187a57600080fd5b601954610100900460ff16156200189057600080fd5b8315156200189d57600080fd5b620018a76200230a565b6000871115620018c257603c808804810201600b55620018cf565b603c42064203603c01600b555b601454600b5401601581905562015180808204021415620018f65760155460165562001909565b6015546001620151809182900401026016555b6000600c8190558611156200191e5760008690555b601284905560008511156200194157670de0b6b3a76400008502600d556200194e565b671bc16d674ec80000600d555b600091505b60095482101562001a1357600a60006009848154811015156200197257fe5b6000918252602080832090910154600160a060020a03908116845290830193909352604091820181205482517f27fe75ed00000000000000000000000000000000000000000000000000000000815292519316935083926327fe75ed92600480820193929182900301818387803b158015620019ed57600080fd5b505af115801562001a02573d6000803e3d6000fd5b505060019093019250620019539050565b6019805461ff001916610100179055600192505050949350505050565b601954610100900460ff1681565b601354600090818062001a506200108c565b915062001a7162001a63600c5462001044565b839063ffffffff620011e116565b9050600081111562001a9f5762001a9c62001a8c8262002965565b6013549063ffffffff620011f916565b92505b509092915050565b600c5481565b60008062001aba6200108c565b90506139c781111562001ad257601a54915062001b0d565b62001b0a62001af1689c2007651b250000008363ffffffff6200291e16565b6a084595161401484a0000009063ffffffff620011f916565b91505b5090565b600554600090600160a060020a0316331462001b2c57600080fd5b600554600160a060020a038381169116141562001b4857600080fd5b5060068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b600f5481565b6000689c2007651b25000000818080808062001b9b6200108c565b94506139c785111562001c615762001bb5600c5462001044565b93506139c892508284111562001bc9578392505b8285039150600182111562001c205760018203600202618ead01905062001c18634f8460e9620012998362001c0b6002601a546200291e90919063ffffffff16565b9063ffffffff6200291e16565b955062001c42565b62001c3f618ead620012996002601a546200291e90919063ffffffff16565b95505b689c2007651b2500000086101562001c6157689c2007651b2500000095505b509395945050505050565b6a084595161401484a00000081565b60035481565b600080600080600080600080600080600080600080601b60009054906101000a900460c060020a029d50600860009054906101000a9004600160a060020a0316600160a060020a03166350b48c5e6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801562001cff57600080fd5b505af115801562001d14573d6000803e3d6000fd5b505050506040513d602081101562001d2b57600080fd5b81019080805190602001909291905050509b50600760009054906101000a9004600160a060020a03169a50309c50600760009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801562001dad57600080fd5b505af115801562001dc2573d6000803e3d6000fd5b505050506040513d602081101562001dd957600080fd5b5051600854909950600160a060020a031631975062001df762001214565b965062001e036200108c565b955085151562001e1857601654945062001e33565b60165460125462015180880281151562001e2e57fe5b040194505b600b54935062001e4262002296565b925062001e4e62002273565b915062001e5a62001a3e565b9950600d549050909192939495969798999a9b9c9d565b600554600090600160a060020a0316331462001e8c57600080fd5b600160a060020a038216151562001ea257600080fd5b600160a060020a038316151562001eb857600080fd5b600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038516179055308262001f1c62002c76565b600160a060020a03928316815291166020820152604080519182900301906000f08015801562001f50573d6000803e3d6000fd5b50600160a060020a038481166000818152600a60209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916958716958617905580517f2af4c31e0000000000000000000000000000000000000000000000000000000081526004810194909452519495509293632af4c31e936024808501949193918390030190829087803b15801562001fe757600080fd5b505af115801562001ffc573d6000803e3d6000fd5b505050506040513d60208110156200201357600080fd5b5050505050565b600b5481565b600554600160a060020a031633146200203857600080fd5b42600b5410156200204857600080fd5b600b8054640757b12c0001908190556015819055601655565b60165481565b60135481565b60195460ff1681565b6000806000600760009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620020cf57600080fd5b505af1158015620020e4573d6000803e3d6000fd5b505050506040513d6020811015620020fb57600080fd5b505191506200210962001a3e565b90506200211d828263ffffffff620011f916565b9250505090565b600854600160a060020a031681565b689c2007651b2500000081565b60008060008060006200215d6200215787620023f0565b62002ad6565b94506200217e8562001299670de0b6b3a76400008a63ffffffff6200291e16565b9150819350601354821115620021c9576013549350620021b2670de0b6b3a764000062001299868863ffffffff6200291e16565b9050620021c6878263ffffffff620011e116565b92505b50509250925092565b600654600090600160a060020a03163314620021ed57600080fd5b600654600554604051600160a060020a0392831692909116907f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b90600090a3506006546005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055600190565b60115481565b60005481565b600d5481565b60006200103f600062002965565b600554600160a060020a031681565b60045481565b60006200103f6200215762001214565b6000620022c065b4791041f3008363ffffffff6200291e16565b831115620022f557620022f2620022e465b4791041f3008463ffffffff6200291e16565b849063ffffffff620011e116565b90505b600054811015620011f3575060005492915050565b670de0b6b3a764000060005b600a81101562002344576200233960646200129984606363ffffffff6200291e16565b915060010162002316565b50600255670de0b6b3a764000060005b600a8110156200238e576002546200238390670de0b6b3a7640000906200129990859063ffffffff6200291e16565b915060010162002354565b50600355670de0b6b3a764000060005b600a811015620023d857600354620023cd90670de0b6b3a7640000906200129990859063ffffffff6200291e16565b91506001016200239e565b50600455565b60145481565b601b5460c060020a0281565b600081600b5411156200240257600080fd5b50601254600b54603c9203020490565b600654600160a060020a031681565b683635c9adc5dea0000081565b600e5481565b600760009054906101000a9004600160a060020a0316600160a060020a0316634892f0af6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200248857600080fd5b505af11580156200249d573d6000803e3d6000fd5b505050506040513d6020811015620024b457600080fd5b5051600160a060020a0316331480620024d75750600754600160a060020a031633145b1515620024e357600080fd5b600760009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156200253757600080fd5b505af11580156200254c573d6000803e3d6000fd5b505050506040513d60208110156200256357600080fd5b5051156200257057600080fd5b601b5460c060020a0277ffffffffffffffffffffffffffffffffffffffffffffffff19167f45544800000000000000000000000000000000000000000000000000000000001415620025c157600080fd5b620025cb62001214565b600c55565b6009805482908110620025df57fe5b600091825260209091200154600160a060020a0316905081565b601a5481565b600554600090600160a060020a031633146200261a57600080fd5b60195460ff16156200262b57600080fd5b601954610100900460ff16156200264157600080fd5b8315156200264e57600080fd5b600754600160a060020a0316158015620026705750600160a060020a03891615155b15156200267c57600080fd5b600854600160a060020a03161580156200269e5750600160a060020a03881615155b1515620026aa57600080fd5b620026b46200230a565b60078054600160a060020a03808c1673ffffffffffffffffffffffffffffffffffffffff199283161790925560088054928b16929091169190911790556000600e819055600f819055601355600b8790556015829055620151808204620151800260155414156200272b576015546016556200273e565b6015546001620151809182900401026016555b6000600c819055861115620027535760008690555b601284905560008511156200277657670de0b6b3a76400008502600d5562002783565b671bc16d674ec80000600d555b50601b805460c060020a840467ffffffffffffffff199091161790556019805461ff001960ff199091166001908117919091166101001790915598975050505050505050565b60105481565b6139c781565b60125481565b600a60205260009081526040902054600160a060020a031681565b600754600160a060020a031681565b600080600080600080600080600b544210156200283157600b549750600d549650601354955062002914565b6200283e600c5462001044565b94506200284a6200108c565b93508484039250601654975060018411156200287757620028746200286e62001214565b62002bfd565b97505b620028828362002965565b95506001831115620028a057600d5460649004600101965062002914565b6013541580620028ae575082155b15620028c557600d54600202600101965062002914565b8360011415620028dd57600054600202965062002914565b620028e888620023f0565b915060009050600c54821115620029005750600c5481035b6200290e600d548262001301565b60020296505b5050505050909192565b6000808315156200293357600091506200120d565b508282028284828115156200294457fe5b04146200120957fe5b60008082848115156200295c57fe5b04949350505050565b6000806000806000620029776200108c565b9350620029d4601354600760009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015620005cf57600080fd5b689c2007651b25000000955092506139c784111562002a6657620029f762001b80565b9450600186111562002a445762002a22618ead620012996002601a546200291e90919063ffffffff16565b915062002a416002620012998862001c0b868a63ffffffff620011f916565b94505b601a5462002a5e9062001299878663ffffffff6200291e16565b945062002acd565b600186111562002a855762002a82858763ffffffff6200291e16565b94505b62002ab162001af162002a9a600c5462001044565b689c2007651b250000009063ffffffff6200291e16565b905062002aca8162001299878663ffffffff6200291e16565b94505b50505050919050565b600080600080600062002aeb600c5462001044565b935062002afd84620004c98862001044565b925060009050601354600014801562002b14575082155b1562002b2557600d54945062002acd565b600183111562002b4e57600d5460649004600101915062002b468662002c2c565b905062002bc6565b826001141562002bbb57601354151562002b7057600d54600202915062002bb0565b62002b7b8662001044565b6001141562002b9257600054600202915062002bb0565b62002baa600d5462002ba48862002c50565b62001301565b60020291505b62002b468662002c2c565b5050600d54600c5485035b600081101562002bd557600080fd5b62002bdf62001123565b1562002bf15762002a5e828262001301565b62002aca8282620022a6565b60006201518060165460125462002c148562001044565b620151800281151562002c2357fe5b04010392915050565b60008062002c3a8362002bfd565b905062002c4781620023f0565b90920392915050565b60008062002c5e8362002bfd565b9050600c5462002c6e82620023f0565b039392505050565b604051610b0a8062002c8883390190560060806040526002805460a060020a60ff021916905534801561002057600080fd5b50604051604080610b0a83398101604052805160209091015160008054600160a060020a03191633179055600160a060020a038216151561006057600080fd5b600160a060020a038116151561007557600080fd5b60018054600160a060020a03938416600160a060020a03199182161790915560028054929093169116179055610a5a806100b06000396000f3006080604052600436106100955763ffffffff60e060020a60003504166327fe75ed811461009a5780632af4c31e146100b157806334d8521b146100e65780633ccfd60b1461010d57806347e7ef241461012257806385aa6103146101465780638da5cb5b14610177578063ab2315111461018c578063cf309012146101a1578063eef49ee3146101b6578063fc0c546a146101cb575b600080fd5b3480156100a657600080fd5b506100af6101e0565b005b3480156100bd57600080fd5b506100d2600160a060020a03600435166103cb565b604080519115158252519081900360200190f35b3480156100f257600080fd5b506100fb61047e565b60408051918252519081900360200190f35b34801561011957600080fd5b506100af610484565b34801561012e57600080fd5b506100af600160a060020a0360043516602435610814565b34801561015257600080fd5b5061015b610966565b60408051600160a060020a039092168252519081900360200190f35b34801561018357600080fd5b5061015b610975565b34801561019857600080fd5b506100fb610984565b3480156101ad57600080fd5b506100d261098a565b3480156101c257600080fd5b506100fb6109ab565b3480156101d757600080fd5b5061015b6109b1565b600154600160a060020a031633146101f757600080fd5b600160009054906101000a9004600160a060020a0316600160a060020a031662fca46f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561024957600080fd5b505af115801561025d573d6000803e3d6000fd5b505050506040513d602081101561027357600080fd5b5051151561028057600080fd5b600160009054906101000a9004600160a060020a0316600160a060020a03166342c6498a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156102d357600080fd5b505af11580156102e7573d6000803e3d6000fd5b505050506040513d60208110156102fd57600080fd5b5051600154604080517efca46f0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169162fca46f916004808201926020929091908290030181600087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b5051101561039457600080fd5b6002805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b60008054600160a060020a031633146103e357600080fd5b600160a060020a03821615156103f857600080fd5b600054600160a060020a038381169116141561041357600080fd5b60008054604051600160a060020a03808616939216917f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b91a35060008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60055481565b60008054819081908190600160a060020a031633146104a257600080fd5b60025474010000000000000000000000000000000000000000900460ff1615156104cb57600080fd5b6003546000106104da57600080fd5b60009350600160009054906101000a9004600160a060020a0316600160a060020a031662fca46f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561053057600080fd5b505af1158015610544573d6000803e3d6000fd5b505050506040513d602081101561055a57600080fd5b50516004549093501580156105ea5750600160009054906101000a9004600160a060020a0316600160a060020a0316631d38bebd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156105bd57600080fd5b505af11580156105d1573d6000803e3d6000fd5b505050506040513d60208110156105e757600080fd5b50515b1561064b57610626610619606461060d60196003546109c090919063ffffffff16565b9063ffffffff6109f616565b859063ffffffff610a0d16565b9350610642600c61060d86600354610a1c90919063ffffffff16565b60055560048390555b600454151561065957600080fd5b60045461066f90627861f863ffffffff610a0d16565b421061071f5760045461068990429063ffffffff610a1c16565b915061069e82627861f863ffffffff6109f616565b9050600081116106ad57600080fd5b6005546106c490610619908363ffffffff6109c016565b93506106ea6106dd627861f8600c63ffffffff6109c016565b849063ffffffff610a0d16565b42106106f65760035493505b61071b61070c82627861f863ffffffff6109c016565b6004549063ffffffff610a0d16565b6004555b600084111561080e5760035461073b908563ffffffff610a1c16565b600355600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b1580156107ab57600080fd5b505af11580156107bf573d6000803e3d6000fd5b505050506040513d60208110156107d557600080fd5b505060408051858152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a25b50505050565b600154600090600160a060020a0316331461082e57600080fd5b60025474010000000000000000000000000000000000000000900460ff161561085657600080fd5b600254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156108bc57600080fd5b505af11580156108d0573d6000803e3d6000fd5b505050506040513d60208110156108e657600080fd5b5051600354909150829061090190839063ffffffff610a1c16565b101561090c57600080fd5b60035461091f908363ffffffff610a0d16565b600355604080518381529051600160a060020a038516917f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4919081900360200190a2505050565b600154600160a060020a031681565b600054600160a060020a031681565b60045481565b60025474010000000000000000000000000000000000000000900460ff1681565b60035481565b600254600160a060020a031681565b6000808315156109d357600091506109ef565b508282028284828115156109e357fe5b04146109eb57fe5b8091505b5092915050565b6000808284811515610a0457fe5b04949350505050565b6000828201838110156109eb57fe5b600082821115610a2857fe5b509003905600a165627a7a723058205393d5e6ae09e9df56ef1d01b81ca7f7fc804f833d23519f018c4aaba1fff65a0029a165627a7a723058206e8a6d2690d1e10fcda2bff32ab13d3e2d00ae927010d871929110bc714b4ed60029` + +// DeployAuctions deploys a new Ethereum contract, binding an instance of Auctions to it. +func DeployAuctions(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Auctions, error) { + parsed, err := abi.JSON(strings.NewReader(AuctionsABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(AuctionsBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Auctions{AuctionsCaller: AuctionsCaller{contract: contract}, AuctionsTransactor: AuctionsTransactor{contract: contract}, AuctionsFilterer: AuctionsFilterer{contract: contract}}, nil +} + +// Auctions is an auto generated Go binding around an Ethereum contract. +type Auctions struct { + AuctionsCaller // Read-only binding to the contract + AuctionsTransactor // Write-only binding to the contract + AuctionsFilterer // Log filterer for contract events +} + +// AuctionsCaller is an auto generated read-only Go binding around an Ethereum contract. +type AuctionsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AuctionsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type AuctionsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AuctionsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type AuctionsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AuctionsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type AuctionsSession struct { + Contract *Auctions // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// AuctionsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type AuctionsCallerSession struct { + Contract *AuctionsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// AuctionsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type AuctionsTransactorSession struct { + Contract *AuctionsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// AuctionsRaw is an auto generated low-level Go binding around an Ethereum contract. +type AuctionsRaw struct { + Contract *Auctions // Generic contract binding to access the raw methods on +} + +// AuctionsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type AuctionsCallerRaw struct { + Contract *AuctionsCaller // Generic read-only contract binding to access the raw methods on +} + +// AuctionsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type AuctionsTransactorRaw struct { + Contract *AuctionsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewAuctions creates a new instance of Auctions, bound to a specific deployed contract. +func NewAuctions(address common.Address, backend bind.ContractBackend) (*Auctions, error) { + contract, err := bindAuctions(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Auctions{AuctionsCaller: AuctionsCaller{contract: contract}, AuctionsTransactor: AuctionsTransactor{contract: contract}, AuctionsFilterer: AuctionsFilterer{contract: contract}}, nil +} + +// NewAuctionsCaller creates a new read-only instance of Auctions, bound to a specific deployed contract. +func NewAuctionsCaller(address common.Address, caller bind.ContractCaller) (*AuctionsCaller, error) { + contract, err := bindAuctions(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &AuctionsCaller{contract: contract}, nil +} + +// NewAuctionsTransactor creates a new write-only instance of Auctions, bound to a specific deployed contract. +func NewAuctionsTransactor(address common.Address, transactor bind.ContractTransactor) (*AuctionsTransactor, error) { + contract, err := bindAuctions(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &AuctionsTransactor{contract: contract}, nil +} + +// NewAuctionsFilterer creates a new log filterer instance of Auctions, bound to a specific deployed contract. +func NewAuctionsFilterer(address common.Address, filterer bind.ContractFilterer) (*AuctionsFilterer, error) { + contract, err := bindAuctions(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &AuctionsFilterer{contract: contract}, nil +} + +// bindAuctions binds a generic wrapper to an already deployed contract. +func bindAuctions(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(AuctionsABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Auctions *AuctionsRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Auctions.Contract.AuctionsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Auctions *AuctionsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Auctions.Contract.AuctionsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Auctions *AuctionsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Auctions.Contract.AuctionsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Auctions *AuctionsCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Auctions.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Auctions *AuctionsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Auctions.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Auctions *AuctionsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Auctions.Contract.contract.Transact(opts, method, params...) +} + +// AUCTIONWHENPERCENTAGELOGICSTARTS is a free data retrieval call binding the contract method 0xf17f3ca3. +// +// Solidity: function AUCTION_WHEN_PERCENTAGE_LOGIC_STARTS() constant returns(uint256) +func (_Auctions *AuctionsCaller) AUCTIONWHENPERCENTAGELOGICSTARTS(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "AUCTION_WHEN_PERCENTAGE_LOGIC_STARTS") + return *ret0, err +} + +// AUCTIONWHENPERCENTAGELOGICSTARTS is a free data retrieval call binding the contract method 0xf17f3ca3. +// +// Solidity: function AUCTION_WHEN_PERCENTAGE_LOGIC_STARTS() constant returns(uint256) +func (_Auctions *AuctionsSession) AUCTIONWHENPERCENTAGELOGICSTARTS() (*big.Int, error) { + return _Auctions.Contract.AUCTIONWHENPERCENTAGELOGICSTARTS(&_Auctions.CallOpts) +} + +// AUCTIONWHENPERCENTAGELOGICSTARTS is a free data retrieval call binding the contract method 0xf17f3ca3. +// +// Solidity: function AUCTION_WHEN_PERCENTAGE_LOGIC_STARTS() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) AUCTIONWHENPERCENTAGELOGICSTARTS() (*big.Int, error) { + return _Auctions.Contract.AUCTIONWHENPERCENTAGELOGICSTARTS(&_Auctions.CallOpts) +} + +// DAILYPURCHASELIMIT is a free data retrieval call binding the contract method 0xd511cc49. +// +// Solidity: function DAILY_PURCHASE_LIMIT() constant returns(uint256) +func (_Auctions *AuctionsCaller) DAILYPURCHASELIMIT(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "DAILY_PURCHASE_LIMIT") + return *ret0, err +} + +// DAILYPURCHASELIMIT is a free data retrieval call binding the contract method 0xd511cc49. +// +// Solidity: function DAILY_PURCHASE_LIMIT() constant returns(uint256) +func (_Auctions *AuctionsSession) DAILYPURCHASELIMIT() (*big.Int, error) { + return _Auctions.Contract.DAILYPURCHASELIMIT(&_Auctions.CallOpts) +} + +// DAILYPURCHASELIMIT is a free data retrieval call binding the contract method 0xd511cc49. +// +// Solidity: function DAILY_PURCHASE_LIMIT() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) DAILYPURCHASELIMIT() (*big.Int, error) { + return _Auctions.Contract.DAILYPURCHASELIMIT(&_Auctions.CallOpts) +} + +// INITIALACSUPPLY is a free data retrieval call binding the contract method 0x2b193ac4. +// +// Solidity: function INITIAL_AC_SUPPLY() constant returns(uint256) +func (_Auctions *AuctionsCaller) INITIALACSUPPLY(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "INITIAL_AC_SUPPLY") + return *ret0, err +} + +// INITIALACSUPPLY is a free data retrieval call binding the contract method 0x2b193ac4. +// +// Solidity: function INITIAL_AC_SUPPLY() constant returns(uint256) +func (_Auctions *AuctionsSession) INITIALACSUPPLY() (*big.Int, error) { + return _Auctions.Contract.INITIALACSUPPLY(&_Auctions.CallOpts) +} + +// INITIALACSUPPLY is a free data retrieval call binding the contract method 0x2b193ac4. +// +// Solidity: function INITIAL_AC_SUPPLY() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) INITIALACSUPPLY() (*big.Int, error) { + return _Auctions.Contract.INITIALACSUPPLY(&_Auctions.CallOpts) +} + +// INITIALFOUNDERSUPPLY is a free data retrieval call binding the contract method 0xd661d206. +// +// Solidity: function INITIAL_FOUNDER_SUPPLY() constant returns(uint256) +func (_Auctions *AuctionsCaller) INITIALFOUNDERSUPPLY(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "INITIAL_FOUNDER_SUPPLY") + return *ret0, err +} + +// INITIALFOUNDERSUPPLY is a free data retrieval call binding the contract method 0xd661d206. +// +// Solidity: function INITIAL_FOUNDER_SUPPLY() constant returns(uint256) +func (_Auctions *AuctionsSession) INITIALFOUNDERSUPPLY() (*big.Int, error) { + return _Auctions.Contract.INITIALFOUNDERSUPPLY(&_Auctions.CallOpts) +} + +// INITIALFOUNDERSUPPLY is a free data retrieval call binding the contract method 0xd661d206. +// +// Solidity: function INITIAL_FOUNDER_SUPPLY() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) INITIALFOUNDERSUPPLY() (*big.Int, error) { + return _Auctions.Contract.INITIALFOUNDERSUPPLY(&_Auctions.CallOpts) +} + +// INITIALGLOBALDAILYSUPPLY is a free data retrieval call binding the contract method 0x5d766d35. +// +// Solidity: function INITIAL_GLOBAL_DAILY_SUPPLY() constant returns(uint256) +func (_Auctions *AuctionsCaller) INITIALGLOBALDAILYSUPPLY(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "INITIAL_GLOBAL_DAILY_SUPPLY") + return *ret0, err +} + +// INITIALGLOBALDAILYSUPPLY is a free data retrieval call binding the contract method 0x5d766d35. +// +// Solidity: function INITIAL_GLOBAL_DAILY_SUPPLY() constant returns(uint256) +func (_Auctions *AuctionsSession) INITIALGLOBALDAILYSUPPLY() (*big.Int, error) { + return _Auctions.Contract.INITIALGLOBALDAILYSUPPLY(&_Auctions.CallOpts) +} + +// INITIALGLOBALDAILYSUPPLY is a free data retrieval call binding the contract method 0x5d766d35. +// +// Solidity: function INITIAL_GLOBAL_DAILY_SUPPLY() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) INITIALGLOBALDAILYSUPPLY() (*big.Int, error) { + return _Auctions.Contract.INITIALGLOBALDAILYSUPPLY(&_Auctions.CallOpts) +} + +// INITIALSUPPLY is a free data retrieval call binding the contract method 0x2ff2e9dc. +// +// Solidity: function INITIAL_SUPPLY() constant returns(uint256) +func (_Auctions *AuctionsCaller) INITIALSUPPLY(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "INITIAL_SUPPLY") + return *ret0, err +} + +// INITIALSUPPLY is a free data retrieval call binding the contract method 0x2ff2e9dc. +// +// Solidity: function INITIAL_SUPPLY() constant returns(uint256) +func (_Auctions *AuctionsSession) INITIALSUPPLY() (*big.Int, error) { + return _Auctions.Contract.INITIALSUPPLY(&_Auctions.CallOpts) +} + +// INITIALSUPPLY is a free data retrieval call binding the contract method 0x2ff2e9dc. +// +// Solidity: function INITIAL_SUPPLY() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) INITIALSUPPLY() (*big.Int, error) { + return _Auctions.Contract.INITIALSUPPLY(&_Auctions.CallOpts) +} + +// MULTIPLIER is a free data retrieval call binding the contract method 0x059f8b16. +// +// Solidity: function MULTIPLIER() constant returns(uint256) +func (_Auctions *AuctionsCaller) MULTIPLIER(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "MULTIPLIER") + return *ret0, err +} + +// MULTIPLIER is a free data retrieval call binding the contract method 0x059f8b16. +// +// Solidity: function MULTIPLIER() constant returns(uint256) +func (_Auctions *AuctionsSession) MULTIPLIER() (*big.Int, error) { + return _Auctions.Contract.MULTIPLIER(&_Auctions.CallOpts) +} + +// MULTIPLIER is a free data retrieval call binding the contract method 0x059f8b16. +// +// Solidity: function MULTIPLIER() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) MULTIPLIER() (*big.Int, error) { + return _Auctions.Contract.MULTIPLIER(&_Auctions.CallOpts) +} + +// Chain is a free data retrieval call binding the contract method 0xc763e5a1. +// +// Solidity: function chain() constant returns(bytes8) +func (_Auctions *AuctionsCaller) Chain(opts *bind.CallOpts) ([8]byte, error) { + var ( + ret0 = new([8]byte) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "chain") + return *ret0, err +} + +// Chain is a free data retrieval call binding the contract method 0xc763e5a1. +// +// Solidity: function chain() constant returns(bytes8) +func (_Auctions *AuctionsSession) Chain() ([8]byte, error) { + return _Auctions.Contract.Chain(&_Auctions.CallOpts) +} + +// Chain is a free data retrieval call binding the contract method 0xc763e5a1. +// +// Solidity: function chain() constant returns(bytes8) +func (_Auctions *AuctionsCallerSession) Chain() ([8]byte, error) { + return _Auctions.Contract.Chain(&_Auctions.CallOpts) +} + +// CurrentAuction is a free data retrieval call binding the contract method 0x496a698d. +// +// Solidity: function currentAuction() constant returns(uint256) +func (_Auctions *AuctionsCaller) CurrentAuction(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "currentAuction") + return *ret0, err +} + +// CurrentAuction is a free data retrieval call binding the contract method 0x496a698d. +// +// Solidity: function currentAuction() constant returns(uint256) +func (_Auctions *AuctionsSession) CurrentAuction() (*big.Int, error) { + return _Auctions.Contract.CurrentAuction(&_Auctions.CallOpts) +} + +// CurrentAuction is a free data retrieval call binding the contract method 0x496a698d. +// +// Solidity: function currentAuction() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) CurrentAuction() (*big.Int, error) { + return _Auctions.Contract.CurrentAuction(&_Auctions.CallOpts) +} + +// CurrentMintable is a free data retrieval call binding the contract method 0x1d3ce58d. +// +// Solidity: function currentMintable() constant returns(uint256) +func (_Auctions *AuctionsCaller) CurrentMintable(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "currentMintable") + return *ret0, err +} + +// CurrentMintable is a free data retrieval call binding the contract method 0x1d3ce58d. +// +// Solidity: function currentMintable() constant returns(uint256) +func (_Auctions *AuctionsSession) CurrentMintable() (*big.Int, error) { + return _Auctions.Contract.CurrentMintable(&_Auctions.CallOpts) +} + +// CurrentMintable is a free data retrieval call binding the contract method 0x1d3ce58d. +// +// Solidity: function currentMintable() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) CurrentMintable() (*big.Int, error) { + return _Auctions.Contract.CurrentMintable(&_Auctions.CallOpts) +} + +// CurrentPrice is a free data retrieval call binding the contract method 0x9d1b464a. +// +// Solidity: function currentPrice() constant returns(weiPerToken uint256) +func (_Auctions *AuctionsCaller) CurrentPrice(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "currentPrice") + return *ret0, err +} + +// CurrentPrice is a free data retrieval call binding the contract method 0x9d1b464a. +// +// Solidity: function currentPrice() constant returns(weiPerToken uint256) +func (_Auctions *AuctionsSession) CurrentPrice() (*big.Int, error) { + return _Auctions.Contract.CurrentPrice(&_Auctions.CallOpts) +} + +// CurrentPrice is a free data retrieval call binding the contract method 0x9d1b464a. +// +// Solidity: function currentPrice() constant returns(weiPerToken uint256) +func (_Auctions *AuctionsCallerSession) CurrentPrice() (*big.Int, error) { + return _Auctions.Contract.CurrentPrice(&_Auctions.CallOpts) +} + +// CurrentTick is a free data retrieval call binding the contract method 0x065e5360. +// +// Solidity: function currentTick() constant returns(uint256) +func (_Auctions *AuctionsCaller) CurrentTick(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "currentTick") + return *ret0, err +} + +// CurrentTick is a free data retrieval call binding the contract method 0x065e5360. +// +// Solidity: function currentTick() constant returns(uint256) +func (_Auctions *AuctionsSession) CurrentTick() (*big.Int, error) { + return _Auctions.Contract.CurrentTick(&_Auctions.CallOpts) +} + +// CurrentTick is a free data retrieval call binding the contract method 0x065e5360. +// +// Solidity: function currentTick() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) CurrentTick() (*big.Int, error) { + return _Auctions.Contract.CurrentTick(&_Auctions.CallOpts) +} + +// DailyAuctionStartTime is a free data retrieval call binding the contract method 0x49b11f24. +// +// Solidity: function dailyAuctionStartTime() constant returns(uint256) +func (_Auctions *AuctionsCaller) DailyAuctionStartTime(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "dailyAuctionStartTime") + return *ret0, err +} + +// DailyAuctionStartTime is a free data retrieval call binding the contract method 0x49b11f24. +// +// Solidity: function dailyAuctionStartTime() constant returns(uint256) +func (_Auctions *AuctionsSession) DailyAuctionStartTime() (*big.Int, error) { + return _Auctions.Contract.DailyAuctionStartTime(&_Auctions.CallOpts) +} + +// DailyAuctionStartTime is a free data retrieval call binding the contract method 0x49b11f24. +// +// Solidity: function dailyAuctionStartTime() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) DailyAuctionStartTime() (*big.Int, error) { + return _Auctions.Contract.DailyAuctionStartTime(&_Auctions.CallOpts) +} + +// DailyMintable is a free data retrieval call binding the contract method 0x843ad7b5. +// +// Solidity: function dailyMintable() constant returns(uint256) +func (_Auctions *AuctionsCaller) DailyMintable(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "dailyMintable") + return *ret0, err +} + +// DailyMintable is a free data retrieval call binding the contract method 0x843ad7b5. +// +// Solidity: function dailyMintable() constant returns(uint256) +func (_Auctions *AuctionsSession) DailyMintable() (*big.Int, error) { + return _Auctions.Contract.DailyMintable(&_Auctions.CallOpts) +} + +// DailyMintable is a free data retrieval call binding the contract method 0x843ad7b5. +// +// Solidity: function dailyMintable() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) DailyMintable() (*big.Int, error) { + return _Auctions.Contract.DailyMintable(&_Auctions.CallOpts) +} + +// Founders is a free data retrieval call binding the contract method 0xd8e75f62. +// +// Solidity: function founders( uint256) constant returns(address) +func (_Auctions *AuctionsCaller) Founders(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "founders", arg0) + return *ret0, err +} + +// Founders is a free data retrieval call binding the contract method 0xd8e75f62. +// +// Solidity: function founders( uint256) constant returns(address) +func (_Auctions *AuctionsSession) Founders(arg0 *big.Int) (common.Address, error) { + return _Auctions.Contract.Founders(&_Auctions.CallOpts, arg0) +} + +// Founders is a free data retrieval call binding the contract method 0xd8e75f62. +// +// Solidity: function founders( uint256) constant returns(address) +func (_Auctions *AuctionsCallerSession) Founders(arg0 *big.Int) (common.Address, error) { + return _Auctions.Contract.Founders(&_Auctions.CallOpts, arg0) +} + +// GenesisTime is a free data retrieval call binding the contract method 0x42c6498a. +// +// Solidity: function genesisTime() constant returns(uint256) +func (_Auctions *AuctionsCaller) GenesisTime(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "genesisTime") + return *ret0, err +} + +// GenesisTime is a free data retrieval call binding the contract method 0x42c6498a. +// +// Solidity: function genesisTime() constant returns(uint256) +func (_Auctions *AuctionsSession) GenesisTime() (*big.Int, error) { + return _Auctions.Contract.GenesisTime(&_Auctions.CallOpts) +} + +// GenesisTime is a free data retrieval call binding the contract method 0x42c6498a. +// +// Solidity: function genesisTime() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) GenesisTime() (*big.Int, error) { + return _Auctions.Contract.GenesisTime(&_Auctions.CallOpts) +} + +// GlobalDailySupply is a free data retrieval call binding the contract method 0x2b379218. +// +// Solidity: function globalDailySupply() constant returns(uint256) +func (_Auctions *AuctionsCaller) GlobalDailySupply(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "globalDailySupply") + return *ret0, err +} + +// GlobalDailySupply is a free data retrieval call binding the contract method 0x2b379218. +// +// Solidity: function globalDailySupply() constant returns(uint256) +func (_Auctions *AuctionsSession) GlobalDailySupply() (*big.Int, error) { + return _Auctions.Contract.GlobalDailySupply(&_Auctions.CallOpts) +} + +// GlobalDailySupply is a free data retrieval call binding the contract method 0x2b379218. +// +// Solidity: function globalDailySupply() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) GlobalDailySupply() (*big.Int, error) { + return _Auctions.Contract.GlobalDailySupply(&_Auctions.CallOpts) +} + +// GlobalMetSupply is a free data retrieval call binding the contract method 0x22ce61b2. +// +// Solidity: function globalMetSupply() constant returns(uint256) +func (_Auctions *AuctionsCaller) GlobalMetSupply(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "globalMetSupply") + return *ret0, err +} + +// GlobalMetSupply is a free data retrieval call binding the contract method 0x22ce61b2. +// +// Solidity: function globalMetSupply() constant returns(uint256) +func (_Auctions *AuctionsSession) GlobalMetSupply() (*big.Int, error) { + return _Auctions.Contract.GlobalMetSupply(&_Auctions.CallOpts) +} + +// GlobalMetSupply is a free data retrieval call binding the contract method 0x22ce61b2. +// +// Solidity: function globalMetSupply() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) GlobalMetSupply() (*big.Int, error) { + return _Auctions.Contract.GlobalMetSupply(&_Auctions.CallOpts) +} + +// GlobalSupplyAfterPercentageLogic is a free data retrieval call binding the contract method 0xd9db9d89. +// +// Solidity: function globalSupplyAfterPercentageLogic() constant returns(uint256) +func (_Auctions *AuctionsCaller) GlobalSupplyAfterPercentageLogic(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "globalSupplyAfterPercentageLogic") + return *ret0, err +} + +// GlobalSupplyAfterPercentageLogic is a free data retrieval call binding the contract method 0xd9db9d89. +// +// Solidity: function globalSupplyAfterPercentageLogic() constant returns(uint256) +func (_Auctions *AuctionsSession) GlobalSupplyAfterPercentageLogic() (*big.Int, error) { + return _Auctions.Contract.GlobalSupplyAfterPercentageLogic(&_Auctions.CallOpts) +} + +// GlobalSupplyAfterPercentageLogic is a free data retrieval call binding the contract method 0xd9db9d89. +// +// Solidity: function globalSupplyAfterPercentageLogic() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) GlobalSupplyAfterPercentageLogic() (*big.Int, error) { + return _Auctions.Contract.GlobalSupplyAfterPercentageLogic(&_Auctions.CallOpts) +} + +// Heartbeat is a free data retrieval call binding the contract method 0x3defb962. +// +// Solidity: function heartbeat() constant returns(_chain bytes8, auctionAddr address, convertAddr address, tokenAddr address, minting uint256, totalMET uint256, proceedsBal uint256, currTick uint256, currAuction uint256, nextAuctionGMT uint256, genesisGMT uint256, currentAuctionPrice uint256, _dailyMintable uint256, _lastPurchasePrice uint256) +func (_Auctions *AuctionsCaller) Heartbeat(opts *bind.CallOpts) (struct { + Chain [8]byte + AuctionAddr common.Address + ConvertAddr common.Address + TokenAddr common.Address + Minting *big.Int + TotalMET *big.Int + ProceedsBal *big.Int + CurrTick *big.Int + CurrAuction *big.Int + NextAuctionGMT *big.Int + GenesisGMT *big.Int + CurrentAuctionPrice *big.Int + DailyMintable *big.Int + LastPurchasePrice *big.Int +}, error) { + ret := new(struct { + Chain [8]byte + AuctionAddr common.Address + ConvertAddr common.Address + TokenAddr common.Address + Minting *big.Int + TotalMET *big.Int + ProceedsBal *big.Int + CurrTick *big.Int + CurrAuction *big.Int + NextAuctionGMT *big.Int + GenesisGMT *big.Int + CurrentAuctionPrice *big.Int + DailyMintable *big.Int + LastPurchasePrice *big.Int + }) + out := ret + err := _Auctions.contract.Call(opts, out, "heartbeat") + return *ret, err +} + +// Heartbeat is a free data retrieval call binding the contract method 0x3defb962. +// +// Solidity: function heartbeat() constant returns(_chain bytes8, auctionAddr address, convertAddr address, tokenAddr address, minting uint256, totalMET uint256, proceedsBal uint256, currTick uint256, currAuction uint256, nextAuctionGMT uint256, genesisGMT uint256, currentAuctionPrice uint256, _dailyMintable uint256, _lastPurchasePrice uint256) +func (_Auctions *AuctionsSession) Heartbeat() (struct { + Chain [8]byte + AuctionAddr common.Address + ConvertAddr common.Address + TokenAddr common.Address + Minting *big.Int + TotalMET *big.Int + ProceedsBal *big.Int + CurrTick *big.Int + CurrAuction *big.Int + NextAuctionGMT *big.Int + GenesisGMT *big.Int + CurrentAuctionPrice *big.Int + DailyMintable *big.Int + LastPurchasePrice *big.Int +}, error) { + return _Auctions.Contract.Heartbeat(&_Auctions.CallOpts) +} + +// Heartbeat is a free data retrieval call binding the contract method 0x3defb962. +// +// Solidity: function heartbeat() constant returns(_chain bytes8, auctionAddr address, convertAddr address, tokenAddr address, minting uint256, totalMET uint256, proceedsBal uint256, currTick uint256, currAuction uint256, nextAuctionGMT uint256, genesisGMT uint256, currentAuctionPrice uint256, _dailyMintable uint256, _lastPurchasePrice uint256) +func (_Auctions *AuctionsCallerSession) Heartbeat() (struct { + Chain [8]byte + AuctionAddr common.Address + ConvertAddr common.Address + TokenAddr common.Address + Minting *big.Int + TotalMET *big.Int + ProceedsBal *big.Int + CurrTick *big.Int + CurrAuction *big.Int + NextAuctionGMT *big.Int + GenesisGMT *big.Int + CurrentAuctionPrice *big.Int + DailyMintable *big.Int + LastPurchasePrice *big.Int +}, error) { + return _Auctions.Contract.Heartbeat(&_Auctions.CallOpts) +} + +// Hundredtimes is a free data retrieval call binding the contract method 0x3264a844. +// +// Solidity: function hundredtimes() constant returns(uint256) +func (_Auctions *AuctionsCaller) Hundredtimes(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "hundredtimes") + return *ret0, err +} + +// Hundredtimes is a free data retrieval call binding the contract method 0x3264a844. +// +// Solidity: function hundredtimes() constant returns(uint256) +func (_Auctions *AuctionsSession) Hundredtimes() (*big.Int, error) { + return _Auctions.Contract.Hundredtimes(&_Auctions.CallOpts) +} + +// Hundredtimes is a free data retrieval call binding the contract method 0x3264a844. +// +// Solidity: function hundredtimes() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) Hundredtimes() (*big.Int, error) { + return _Auctions.Contract.Hundredtimes(&_Auctions.CallOpts) +} + +// InitialAuctionDuration is a free data retrieval call binding the contract method 0xc50508de. +// +// Solidity: function initialAuctionDuration() constant returns(uint256) +func (_Auctions *AuctionsCaller) InitialAuctionDuration(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "initialAuctionDuration") + return *ret0, err +} + +// InitialAuctionDuration is a free data retrieval call binding the contract method 0xc50508de. +// +// Solidity: function initialAuctionDuration() constant returns(uint256) +func (_Auctions *AuctionsSession) InitialAuctionDuration() (*big.Int, error) { + return _Auctions.Contract.InitialAuctionDuration(&_Auctions.CallOpts) +} + +// InitialAuctionDuration is a free data retrieval call binding the contract method 0xc50508de. +// +// Solidity: function initialAuctionDuration() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) InitialAuctionDuration() (*big.Int, error) { + return _Auctions.Contract.InitialAuctionDuration(&_Auctions.CallOpts) +} + +// InitialAuctionEndTime is a free data retrieval call binding the contract method 0x00fca46f. +// +// Solidity: function initialAuctionEndTime() constant returns(uint256) +func (_Auctions *AuctionsCaller) InitialAuctionEndTime(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "initialAuctionEndTime") + return *ret0, err +} + +// InitialAuctionEndTime is a free data retrieval call binding the contract method 0x00fca46f. +// +// Solidity: function initialAuctionEndTime() constant returns(uint256) +func (_Auctions *AuctionsSession) InitialAuctionEndTime() (*big.Int, error) { + return _Auctions.Contract.InitialAuctionEndTime(&_Auctions.CallOpts) +} + +// InitialAuctionEndTime is a free data retrieval call binding the contract method 0x00fca46f. +// +// Solidity: function initialAuctionEndTime() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) InitialAuctionEndTime() (*big.Int, error) { + return _Auctions.Contract.InitialAuctionEndTime(&_Auctions.CallOpts) +} + +// Initialized is a free data retrieval call binding the contract method 0x158ef93e. +// +// Solidity: function initialized() constant returns(bool) +func (_Auctions *AuctionsCaller) Initialized(opts *bind.CallOpts) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "initialized") + return *ret0, err +} + +// Initialized is a free data retrieval call binding the contract method 0x158ef93e. +// +// Solidity: function initialized() constant returns(bool) +func (_Auctions *AuctionsSession) Initialized() (bool, error) { + return _Auctions.Contract.Initialized(&_Auctions.CallOpts) +} + +// Initialized is a free data retrieval call binding the contract method 0x158ef93e. +// +// Solidity: function initialized() constant returns(bool) +func (_Auctions *AuctionsCallerSession) Initialized() (bool, error) { + return _Auctions.Contract.Initialized(&_Auctions.CallOpts) +} + +// IsInitialAuctionEnded is a free data retrieval call binding the contract method 0x1d38bebd. +// +// Solidity: function isInitialAuctionEnded() constant returns(bool) +func (_Auctions *AuctionsCaller) IsInitialAuctionEnded(opts *bind.CallOpts) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "isInitialAuctionEnded") + return *ret0, err +} + +// IsInitialAuctionEnded is a free data retrieval call binding the contract method 0x1d38bebd. +// +// Solidity: function isInitialAuctionEnded() constant returns(bool) +func (_Auctions *AuctionsSession) IsInitialAuctionEnded() (bool, error) { + return _Auctions.Contract.IsInitialAuctionEnded(&_Auctions.CallOpts) +} + +// IsInitialAuctionEnded is a free data retrieval call binding the contract method 0x1d38bebd. +// +// Solidity: function isInitialAuctionEnded() constant returns(bool) +func (_Auctions *AuctionsCallerSession) IsInitialAuctionEnded() (bool, error) { + return _Auctions.Contract.IsInitialAuctionEnded(&_Auctions.CallOpts) +} + +// IsRunning is a free data retrieval call binding the contract method 0x2014e5d1. +// +// Solidity: function isRunning() constant returns(bool) +func (_Auctions *AuctionsCaller) IsRunning(opts *bind.CallOpts) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "isRunning") + return *ret0, err +} + +// IsRunning is a free data retrieval call binding the contract method 0x2014e5d1. +// +// Solidity: function isRunning() constant returns(bool) +func (_Auctions *AuctionsSession) IsRunning() (bool, error) { + return _Auctions.Contract.IsRunning(&_Auctions.CallOpts) +} + +// IsRunning is a free data retrieval call binding the contract method 0x2014e5d1. +// +// Solidity: function isRunning() constant returns(bool) +func (_Auctions *AuctionsCallerSession) IsRunning() (bool, error) { + return _Auctions.Contract.IsRunning(&_Auctions.CallOpts) +} + +// LastPurchasePrice is a free data retrieval call binding the contract method 0x8207b07d. +// +// Solidity: function lastPurchasePrice() constant returns(uint256) +func (_Auctions *AuctionsCaller) LastPurchasePrice(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "lastPurchasePrice") + return *ret0, err +} + +// LastPurchasePrice is a free data retrieval call binding the contract method 0x8207b07d. +// +// Solidity: function lastPurchasePrice() constant returns(uint256) +func (_Auctions *AuctionsSession) LastPurchasePrice() (*big.Int, error) { + return _Auctions.Contract.LastPurchasePrice(&_Auctions.CallOpts) +} + +// LastPurchasePrice is a free data retrieval call binding the contract method 0x8207b07d. +// +// Solidity: function lastPurchasePrice() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) LastPurchasePrice() (*big.Int, error) { + return _Auctions.Contract.LastPurchasePrice(&_Auctions.CallOpts) +} + +// LastPurchaseTick is a free data retrieval call binding the contract method 0x21288400. +// +// Solidity: function lastPurchaseTick() constant returns(uint256) +func (_Auctions *AuctionsCaller) LastPurchaseTick(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "lastPurchaseTick") + return *ret0, err +} + +// LastPurchaseTick is a free data retrieval call binding the contract method 0x21288400. +// +// Solidity: function lastPurchaseTick() constant returns(uint256) +func (_Auctions *AuctionsSession) LastPurchaseTick() (*big.Int, error) { + return _Auctions.Contract.LastPurchaseTick(&_Auctions.CallOpts) +} + +// LastPurchaseTick is a free data retrieval call binding the contract method 0x21288400. +// +// Solidity: function lastPurchaseTick() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) LastPurchaseTick() (*big.Int, error) { + return _Auctions.Contract.LastPurchaseTick(&_Auctions.CallOpts) +} + +// MinimumPrice is a free data retrieval call binding the contract method 0x7f386b6c. +// +// Solidity: function minimumPrice() constant returns(uint256) +func (_Auctions *AuctionsCaller) MinimumPrice(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "minimumPrice") + return *ret0, err +} + +// MinimumPrice is a free data retrieval call binding the contract method 0x7f386b6c. +// +// Solidity: function minimumPrice() constant returns(uint256) +func (_Auctions *AuctionsSession) MinimumPrice() (*big.Int, error) { + return _Auctions.Contract.MinimumPrice(&_Auctions.CallOpts) +} + +// MinimumPrice is a free data retrieval call binding the contract method 0x7f386b6c. +// +// Solidity: function minimumPrice() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) MinimumPrice() (*big.Int, error) { + return _Auctions.Contract.MinimumPrice(&_Auctions.CallOpts) +} + +// MinimumPriceInDailyAuction is a free data retrieval call binding the contract method 0x053f7492. +// +// Solidity: function minimumPriceInDailyAuction() constant returns(uint256) +func (_Auctions *AuctionsCaller) MinimumPriceInDailyAuction(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "minimumPriceInDailyAuction") + return *ret0, err +} + +// MinimumPriceInDailyAuction is a free data retrieval call binding the contract method 0x053f7492. +// +// Solidity: function minimumPriceInDailyAuction() constant returns(uint256) +func (_Auctions *AuctionsSession) MinimumPriceInDailyAuction() (*big.Int, error) { + return _Auctions.Contract.MinimumPriceInDailyAuction(&_Auctions.CallOpts) +} + +// MinimumPriceInDailyAuction is a free data retrieval call binding the contract method 0x053f7492. +// +// Solidity: function minimumPriceInDailyAuction() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) MinimumPriceInDailyAuction() (*big.Int, error) { + return _Auctions.Contract.MinimumPriceInDailyAuction(&_Auctions.CallOpts) +} + +// Mintable is a free data retrieval call binding the contract method 0x4bf365df. +// +// Solidity: function mintable() constant returns(uint256) +func (_Auctions *AuctionsCaller) Mintable(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "mintable") + return *ret0, err +} + +// Mintable is a free data retrieval call binding the contract method 0x4bf365df. +// +// Solidity: function mintable() constant returns(uint256) +func (_Auctions *AuctionsSession) Mintable() (*big.Int, error) { + return _Auctions.Contract.Mintable(&_Auctions.CallOpts) +} + +// Mintable is a free data retrieval call binding the contract method 0x4bf365df. +// +// Solidity: function mintable() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) Mintable() (*big.Int, error) { + return _Auctions.Contract.Mintable(&_Auctions.CallOpts) +} + +// Minted is a free data retrieval call binding the contract method 0x4f02c420. +// +// Solidity: function minted() constant returns(bool) +func (_Auctions *AuctionsCaller) Minted(opts *bind.CallOpts) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "minted") + return *ret0, err +} + +// Minted is a free data retrieval call binding the contract method 0x4f02c420. +// +// Solidity: function minted() constant returns(bool) +func (_Auctions *AuctionsSession) Minted() (bool, error) { + return _Auctions.Contract.Minted(&_Auctions.CallOpts) +} + +// Minted is a free data retrieval call binding the contract method 0x4f02c420. +// +// Solidity: function minted() constant returns(bool) +func (_Auctions *AuctionsCallerSession) Minted() (bool, error) { + return _Auctions.Contract.Minted(&_Auctions.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Auctions *AuctionsCaller) NewOwner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "newOwner") + return *ret0, err +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Auctions *AuctionsSession) NewOwner() (common.Address, error) { + return _Auctions.Contract.NewOwner(&_Auctions.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Auctions *AuctionsCallerSession) NewOwner() (common.Address, error) { + return _Auctions.Contract.NewOwner(&_Auctions.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Auctions *AuctionsCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Auctions *AuctionsSession) Owner() (common.Address, error) { + return _Auctions.Contract.Owner(&_Auctions.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Auctions *AuctionsCallerSession) Owner() (common.Address, error) { + return _Auctions.Contract.Owner(&_Auctions.CallOpts) +} + +// PriceAt is a free data retrieval call binding the contract method 0x01dbdf44. +// +// Solidity: function priceAt(initialPrice uint256, _n uint256) constant returns(price uint256) +func (_Auctions *AuctionsCaller) PriceAt(opts *bind.CallOpts, initialPrice *big.Int, _n *big.Int) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "priceAt", initialPrice, _n) + return *ret0, err +} + +// PriceAt is a free data retrieval call binding the contract method 0x01dbdf44. +// +// Solidity: function priceAt(initialPrice uint256, _n uint256) constant returns(price uint256) +func (_Auctions *AuctionsSession) PriceAt(initialPrice *big.Int, _n *big.Int) (*big.Int, error) { + return _Auctions.Contract.PriceAt(&_Auctions.CallOpts, initialPrice, _n) +} + +// PriceAt is a free data retrieval call binding the contract method 0x01dbdf44. +// +// Solidity: function priceAt(initialPrice uint256, _n uint256) constant returns(price uint256) +func (_Auctions *AuctionsCallerSession) PriceAt(initialPrice *big.Int, _n *big.Int) (*big.Int, error) { + return _Auctions.Contract.PriceAt(&_Auctions.CallOpts, initialPrice, _n) +} + +// PriceAtInitialAuction is a free data retrieval call binding the contract method 0xa8afc538. +// +// Solidity: function priceAtInitialAuction(lastPurchasePrice uint256, numTicks uint256) constant returns(price uint256) +func (_Auctions *AuctionsCaller) PriceAtInitialAuction(opts *bind.CallOpts, lastPurchasePrice *big.Int, numTicks *big.Int) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "priceAtInitialAuction", lastPurchasePrice, numTicks) + return *ret0, err +} + +// PriceAtInitialAuction is a free data retrieval call binding the contract method 0xa8afc538. +// +// Solidity: function priceAtInitialAuction(lastPurchasePrice uint256, numTicks uint256) constant returns(price uint256) +func (_Auctions *AuctionsSession) PriceAtInitialAuction(lastPurchasePrice *big.Int, numTicks *big.Int) (*big.Int, error) { + return _Auctions.Contract.PriceAtInitialAuction(&_Auctions.CallOpts, lastPurchasePrice, numTicks) +} + +// PriceAtInitialAuction is a free data retrieval call binding the contract method 0xa8afc538. +// +// Solidity: function priceAtInitialAuction(lastPurchasePrice uint256, numTicks uint256) constant returns(price uint256) +func (_Auctions *AuctionsCallerSession) PriceAtInitialAuction(lastPurchasePrice *big.Int, numTicks *big.Int) (*big.Int, error) { + return _Auctions.Contract.PriceAtInitialAuction(&_Auctions.CallOpts, lastPurchasePrice, numTicks) +} + +// Proceeds is a free data retrieval call binding the contract method 0x55b5ec64. +// +// Solidity: function proceeds() constant returns(address) +func (_Auctions *AuctionsCaller) Proceeds(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "proceeds") + return *ret0, err +} + +// Proceeds is a free data retrieval call binding the contract method 0x55b5ec64. +// +// Solidity: function proceeds() constant returns(address) +func (_Auctions *AuctionsSession) Proceeds() (common.Address, error) { + return _Auctions.Contract.Proceeds(&_Auctions.CallOpts) +} + +// Proceeds is a free data retrieval call binding the contract method 0x55b5ec64. +// +// Solidity: function proceeds() constant returns(address) +func (_Auctions *AuctionsCallerSession) Proceeds() (common.Address, error) { + return _Auctions.Contract.Proceeds(&_Auctions.CallOpts) +} + +// Tentimes is a free data retrieval call binding the contract method 0x0d2a25bb. +// +// Solidity: function tentimes() constant returns(uint256) +func (_Auctions *AuctionsCaller) Tentimes(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "tentimes") + return *ret0, err +} + +// Tentimes is a free data retrieval call binding the contract method 0x0d2a25bb. +// +// Solidity: function tentimes() constant returns(uint256) +func (_Auctions *AuctionsSession) Tentimes() (*big.Int, error) { + return _Auctions.Contract.Tentimes(&_Auctions.CallOpts) +} + +// Tentimes is a free data retrieval call binding the contract method 0x0d2a25bb. +// +// Solidity: function tentimes() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) Tentimes() (*big.Int, error) { + return _Auctions.Contract.Tentimes(&_Auctions.CallOpts) +} + +// Thousandtimes is a free data retrieval call binding the contract method 0x9b8abe0b. +// +// Solidity: function thousandtimes() constant returns(uint256) +func (_Auctions *AuctionsCaller) Thousandtimes(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "thousandtimes") + return *ret0, err +} + +// Thousandtimes is a free data retrieval call binding the contract method 0x9b8abe0b. +// +// Solidity: function thousandtimes() constant returns(uint256) +func (_Auctions *AuctionsSession) Thousandtimes() (*big.Int, error) { + return _Auctions.Contract.Thousandtimes(&_Auctions.CallOpts) +} + +// Thousandtimes is a free data retrieval call binding the contract method 0x9b8abe0b. +// +// Solidity: function thousandtimes() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) Thousandtimes() (*big.Int, error) { + return _Auctions.Contract.Thousandtimes(&_Auctions.CallOpts) +} + +// TimeScale is a free data retrieval call binding the contract method 0xf32b85e8. +// +// Solidity: function timeScale() constant returns(uint256) +func (_Auctions *AuctionsCaller) TimeScale(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "timeScale") + return *ret0, err +} + +// TimeScale is a free data retrieval call binding the contract method 0xf32b85e8. +// +// Solidity: function timeScale() constant returns(uint256) +func (_Auctions *AuctionsSession) TimeScale() (*big.Int, error) { + return _Auctions.Contract.TimeScale(&_Auctions.CallOpts) +} + +// TimeScale is a free data retrieval call binding the contract method 0xf32b85e8. +// +// Solidity: function timeScale() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) TimeScale() (*big.Int, error) { + return _Auctions.Contract.TimeScale(&_Auctions.CallOpts) +} + +// Token is a free data retrieval call binding the contract method 0xfc0c546a. +// +// Solidity: function token() constant returns(address) +func (_Auctions *AuctionsCaller) Token(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "token") + return *ret0, err +} + +// Token is a free data retrieval call binding the contract method 0xfc0c546a. +// +// Solidity: function token() constant returns(address) +func (_Auctions *AuctionsSession) Token() (common.Address, error) { + return _Auctions.Contract.Token(&_Auctions.CallOpts) +} + +// Token is a free data retrieval call binding the contract method 0xfc0c546a. +// +// Solidity: function token() constant returns(address) +func (_Auctions *AuctionsCallerSession) Token() (common.Address, error) { + return _Auctions.Contract.Token(&_Auctions.CallOpts) +} + +// TokenLockers is a free data retrieval call binding the contract method 0xf4285c3c. +// +// Solidity: function tokenLockers( address) constant returns(address) +func (_Auctions *AuctionsCaller) TokenLockers(opts *bind.CallOpts, arg0 common.Address) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "tokenLockers", arg0) + return *ret0, err +} + +// TokenLockers is a free data retrieval call binding the contract method 0xf4285c3c. +// +// Solidity: function tokenLockers( address) constant returns(address) +func (_Auctions *AuctionsSession) TokenLockers(arg0 common.Address) (common.Address, error) { + return _Auctions.Contract.TokenLockers(&_Auctions.CallOpts, arg0) +} + +// TokenLockers is a free data retrieval call binding the contract method 0xf4285c3c. +// +// Solidity: function tokenLockers( address) constant returns(address) +func (_Auctions *AuctionsCallerSession) TokenLockers(arg0 common.Address) (common.Address, error) { + return _Auctions.Contract.TokenLockers(&_Auctions.CallOpts, arg0) +} + +// TokensOnThisChain is a free data retrieval call binding the contract method 0x518c0f17. +// +// Solidity: function tokensOnThisChain() constant returns(uint256) +func (_Auctions *AuctionsCaller) TokensOnThisChain(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "tokensOnThisChain") + return *ret0, err +} + +// TokensOnThisChain is a free data retrieval call binding the contract method 0x518c0f17. +// +// Solidity: function tokensOnThisChain() constant returns(uint256) +func (_Auctions *AuctionsSession) TokensOnThisChain() (*big.Int, error) { + return _Auctions.Contract.TokensOnThisChain(&_Auctions.CallOpts) +} + +// TokensOnThisChain is a free data retrieval call binding the contract method 0x518c0f17. +// +// Solidity: function tokensOnThisChain() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) TokensOnThisChain() (*big.Int, error) { + return _Auctions.Contract.TokensOnThisChain(&_Auctions.CallOpts) +} + +// TotalMigratedIn is a free data retrieval call binding the contract method 0x7a8a5cf3. +// +// Solidity: function totalMigratedIn() constant returns(uint256) +func (_Auctions *AuctionsCaller) TotalMigratedIn(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "totalMigratedIn") + return *ret0, err +} + +// TotalMigratedIn is a free data retrieval call binding the contract method 0x7a8a5cf3. +// +// Solidity: function totalMigratedIn() constant returns(uint256) +func (_Auctions *AuctionsSession) TotalMigratedIn() (*big.Int, error) { + return _Auctions.Contract.TotalMigratedIn(&_Auctions.CallOpts) +} + +// TotalMigratedIn is a free data retrieval call binding the contract method 0x7a8a5cf3. +// +// Solidity: function totalMigratedIn() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) TotalMigratedIn() (*big.Int, error) { + return _Auctions.Contract.TotalMigratedIn(&_Auctions.CallOpts) +} + +// TotalMigratedOut is a free data retrieval call binding the contract method 0xe98c365b. +// +// Solidity: function totalMigratedOut() constant returns(uint256) +func (_Auctions *AuctionsCaller) TotalMigratedOut(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "totalMigratedOut") + return *ret0, err +} + +// TotalMigratedOut is a free data retrieval call binding the contract method 0xe98c365b. +// +// Solidity: function totalMigratedOut() constant returns(uint256) +func (_Auctions *AuctionsSession) TotalMigratedOut() (*big.Int, error) { + return _Auctions.Contract.TotalMigratedOut(&_Auctions.CallOpts) +} + +// TotalMigratedOut is a free data retrieval call binding the contract method 0xe98c365b. +// +// Solidity: function totalMigratedOut() constant returns(uint256) +func (_Auctions *AuctionsCallerSession) TotalMigratedOut() (*big.Int, error) { + return _Auctions.Contract.TotalMigratedOut(&_Auctions.CallOpts) +} + +// WhatWouldPurchaseDo is a free data retrieval call binding the contract method 0x7334a63f. +// +// Solidity: function whatWouldPurchaseDo(_wei uint256, _timestamp uint256) constant returns(weiPerToken uint256, tokens uint256, refund uint256) +func (_Auctions *AuctionsCaller) WhatWouldPurchaseDo(opts *bind.CallOpts, _wei *big.Int, _timestamp *big.Int) (struct { + WeiPerToken *big.Int + Tokens *big.Int + Refund *big.Int +}, error) { + ret := new(struct { + WeiPerToken *big.Int + Tokens *big.Int + Refund *big.Int + }) + out := ret + err := _Auctions.contract.Call(opts, out, "whatWouldPurchaseDo", _wei, _timestamp) + return *ret, err +} + +// WhatWouldPurchaseDo is a free data retrieval call binding the contract method 0x7334a63f. +// +// Solidity: function whatWouldPurchaseDo(_wei uint256, _timestamp uint256) constant returns(weiPerToken uint256, tokens uint256, refund uint256) +func (_Auctions *AuctionsSession) WhatWouldPurchaseDo(_wei *big.Int, _timestamp *big.Int) (struct { + WeiPerToken *big.Int + Tokens *big.Int + Refund *big.Int +}, error) { + return _Auctions.Contract.WhatWouldPurchaseDo(&_Auctions.CallOpts, _wei, _timestamp) +} + +// WhatWouldPurchaseDo is a free data retrieval call binding the contract method 0x7334a63f. +// +// Solidity: function whatWouldPurchaseDo(_wei uint256, _timestamp uint256) constant returns(weiPerToken uint256, tokens uint256, refund uint256) +func (_Auctions *AuctionsCallerSession) WhatWouldPurchaseDo(_wei *big.Int, _timestamp *big.Int) (struct { + WeiPerToken *big.Int + Tokens *big.Int + Refund *big.Int +}, error) { + return _Auctions.Contract.WhatWouldPurchaseDo(&_Auctions.CallOpts, _wei, _timestamp) +} + +// WhichAuction is a free data retrieval call binding the contract method 0xfde9cded. +// +// Solidity: function whichAuction(t uint256) constant returns(uint256) +func (_Auctions *AuctionsCaller) WhichAuction(opts *bind.CallOpts, t *big.Int) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "whichAuction", t) + return *ret0, err +} + +// WhichAuction is a free data retrieval call binding the contract method 0xfde9cded. +// +// Solidity: function whichAuction(t uint256) constant returns(uint256) +func (_Auctions *AuctionsSession) WhichAuction(t *big.Int) (*big.Int, error) { + return _Auctions.Contract.WhichAuction(&_Auctions.CallOpts, t) +} + +// WhichAuction is a free data retrieval call binding the contract method 0xfde9cded. +// +// Solidity: function whichAuction(t uint256) constant returns(uint256) +func (_Auctions *AuctionsCallerSession) WhichAuction(t *big.Int) (*big.Int, error) { + return _Auctions.Contract.WhichAuction(&_Auctions.CallOpts, t) +} + +// WhichTick is a free data retrieval call binding the contract method 0xd282866a. +// +// Solidity: function whichTick(t uint256) constant returns(uint256) +func (_Auctions *AuctionsCaller) WhichTick(opts *bind.CallOpts, t *big.Int) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Auctions.contract.Call(opts, out, "whichTick", t) + return *ret0, err +} + +// WhichTick is a free data retrieval call binding the contract method 0xd282866a. +// +// Solidity: function whichTick(t uint256) constant returns(uint256) +func (_Auctions *AuctionsSession) WhichTick(t *big.Int) (*big.Int, error) { + return _Auctions.Contract.WhichTick(&_Auctions.CallOpts, t) +} + +// WhichTick is a free data retrieval call binding the contract method 0xd282866a. +// +// Solidity: function whichTick(t uint256) constant returns(uint256) +func (_Auctions *AuctionsCallerSession) WhichTick(t *big.Int) (*big.Int, error) { + return _Auctions.Contract.WhichTick(&_Auctions.CallOpts, t) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Auctions *AuctionsTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Auctions.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Auctions *AuctionsSession) AcceptOwnership() (*types.Transaction, error) { + return _Auctions.Contract.AcceptOwnership(&_Auctions.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Auctions *AuctionsTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _Auctions.Contract.AcceptOwnership(&_Auctions.TransactOpts) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Auctions *AuctionsTransactor) ChangeOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) { + return _Auctions.contract.Transact(opts, "changeOwnership", _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Auctions *AuctionsSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Auctions.Contract.ChangeOwnership(&_Auctions.TransactOpts, _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Auctions *AuctionsTransactorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Auctions.Contract.ChangeOwnership(&_Auctions.TransactOpts, _newOwner) +} + +// CreateTokenLocker is a paid mutator transaction binding the contract method 0x40a3a9c7. +// +// Solidity: function createTokenLocker(_founder address, _token address) returns() +func (_Auctions *AuctionsTransactor) CreateTokenLocker(opts *bind.TransactOpts, _founder common.Address, _token common.Address) (*types.Transaction, error) { + return _Auctions.contract.Transact(opts, "createTokenLocker", _founder, _token) +} + +// CreateTokenLocker is a paid mutator transaction binding the contract method 0x40a3a9c7. +// +// Solidity: function createTokenLocker(_founder address, _token address) returns() +func (_Auctions *AuctionsSession) CreateTokenLocker(_founder common.Address, _token common.Address) (*types.Transaction, error) { + return _Auctions.Contract.CreateTokenLocker(&_Auctions.TransactOpts, _founder, _token) +} + +// CreateTokenLocker is a paid mutator transaction binding the contract method 0x40a3a9c7. +// +// Solidity: function createTokenLocker(_founder address, _token address) returns() +func (_Auctions *AuctionsTransactorSession) CreateTokenLocker(_founder common.Address, _token common.Address) (*types.Transaction, error) { + return _Auctions.Contract.CreateTokenLocker(&_Auctions.TransactOpts, _founder, _token) +} + +// InitAuctions is a paid mutator transaction binding the contract method 0x0eab31b1. +// +// Solidity: function initAuctions(_startTime uint256, _minimumPrice uint256, _startingPrice uint256, _timeScale uint256) returns(bool) +func (_Auctions *AuctionsTransactor) InitAuctions(opts *bind.TransactOpts, _startTime *big.Int, _minimumPrice *big.Int, _startingPrice *big.Int, _timeScale *big.Int) (*types.Transaction, error) { + return _Auctions.contract.Transact(opts, "initAuctions", _startTime, _minimumPrice, _startingPrice, _timeScale) +} + +// InitAuctions is a paid mutator transaction binding the contract method 0x0eab31b1. +// +// Solidity: function initAuctions(_startTime uint256, _minimumPrice uint256, _startingPrice uint256, _timeScale uint256) returns(bool) +func (_Auctions *AuctionsSession) InitAuctions(_startTime *big.Int, _minimumPrice *big.Int, _startingPrice *big.Int, _timeScale *big.Int) (*types.Transaction, error) { + return _Auctions.Contract.InitAuctions(&_Auctions.TransactOpts, _startTime, _minimumPrice, _startingPrice, _timeScale) +} + +// InitAuctions is a paid mutator transaction binding the contract method 0x0eab31b1. +// +// Solidity: function initAuctions(_startTime uint256, _minimumPrice uint256, _startingPrice uint256, _timeScale uint256) returns(bool) +func (_Auctions *AuctionsTransactorSession) InitAuctions(_startTime *big.Int, _minimumPrice *big.Int, _startingPrice *big.Int, _timeScale *big.Int) (*types.Transaction, error) { + return _Auctions.Contract.InitAuctions(&_Auctions.TransactOpts, _startTime, _minimumPrice, _startingPrice, _timeScale) +} + +// InitPricer is a paid mutator transaction binding the contract method 0xc1f7c539. +// +// Solidity: function initPricer() returns() +func (_Auctions *AuctionsTransactor) InitPricer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Auctions.contract.Transact(opts, "initPricer") +} + +// InitPricer is a paid mutator transaction binding the contract method 0xc1f7c539. +// +// Solidity: function initPricer() returns() +func (_Auctions *AuctionsSession) InitPricer() (*types.Transaction, error) { + return _Auctions.Contract.InitPricer(&_Auctions.TransactOpts) +} + +// InitPricer is a paid mutator transaction binding the contract method 0xc1f7c539. +// +// Solidity: function initPricer() returns() +func (_Auctions *AuctionsTransactorSession) InitPricer() (*types.Transaction, error) { + return _Auctions.Contract.InitPricer(&_Auctions.TransactOpts) +} + +// MintInitialSupply is a paid mutator transaction binding the contract method 0x0a5f558e. +// +// Solidity: function mintInitialSupply(_founders uint256[], _token address, _proceeds address, _autonomousConverter address) returns(bool) +func (_Auctions *AuctionsTransactor) MintInitialSupply(opts *bind.TransactOpts, _founders []*big.Int, _token common.Address, _proceeds common.Address, _autonomousConverter common.Address) (*types.Transaction, error) { + return _Auctions.contract.Transact(opts, "mintInitialSupply", _founders, _token, _proceeds, _autonomousConverter) +} + +// MintInitialSupply is a paid mutator transaction binding the contract method 0x0a5f558e. +// +// Solidity: function mintInitialSupply(_founders uint256[], _token address, _proceeds address, _autonomousConverter address) returns(bool) +func (_Auctions *AuctionsSession) MintInitialSupply(_founders []*big.Int, _token common.Address, _proceeds common.Address, _autonomousConverter common.Address) (*types.Transaction, error) { + return _Auctions.Contract.MintInitialSupply(&_Auctions.TransactOpts, _founders, _token, _proceeds, _autonomousConverter) +} + +// MintInitialSupply is a paid mutator transaction binding the contract method 0x0a5f558e. +// +// Solidity: function mintInitialSupply(_founders uint256[], _token address, _proceeds address, _autonomousConverter address) returns(bool) +func (_Auctions *AuctionsTransactorSession) MintInitialSupply(_founders []*big.Int, _token common.Address, _proceeds common.Address, _autonomousConverter common.Address) (*types.Transaction, error) { + return _Auctions.Contract.MintInitialSupply(&_Auctions.TransactOpts, _founders, _token, _proceeds, _autonomousConverter) +} + +// PrepareAuctionForNonOGChain is a paid mutator transaction binding the contract method 0xd7508a55. +// +// Solidity: function prepareAuctionForNonOGChain() returns() +func (_Auctions *AuctionsTransactor) PrepareAuctionForNonOGChain(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Auctions.contract.Transact(opts, "prepareAuctionForNonOGChain") +} + +// PrepareAuctionForNonOGChain is a paid mutator transaction binding the contract method 0xd7508a55. +// +// Solidity: function prepareAuctionForNonOGChain() returns() +func (_Auctions *AuctionsSession) PrepareAuctionForNonOGChain() (*types.Transaction, error) { + return _Auctions.Contract.PrepareAuctionForNonOGChain(&_Auctions.TransactOpts) +} + +// PrepareAuctionForNonOGChain is a paid mutator transaction binding the contract method 0xd7508a55. +// +// Solidity: function prepareAuctionForNonOGChain() returns() +func (_Auctions *AuctionsTransactorSession) PrepareAuctionForNonOGChain() (*types.Transaction, error) { + return _Auctions.Contract.PrepareAuctionForNonOGChain(&_Auctions.TransactOpts) +} + +// SkipInitBecauseIAmNotOg is a paid mutator transaction binding the contract method 0xdf775a93. +// +// Solidity: function skipInitBecauseIAmNotOg(_token address, _proceeds address, _genesisTime uint256, _minimumPrice uint256, _startingPrice uint256, _timeScale uint256, _chain bytes8, _initialAuctionEndTime uint256) returns(bool) +func (_Auctions *AuctionsTransactor) SkipInitBecauseIAmNotOg(opts *bind.TransactOpts, _token common.Address, _proceeds common.Address, _genesisTime *big.Int, _minimumPrice *big.Int, _startingPrice *big.Int, _timeScale *big.Int, _chain [8]byte, _initialAuctionEndTime *big.Int) (*types.Transaction, error) { + return _Auctions.contract.Transact(opts, "skipInitBecauseIAmNotOg", _token, _proceeds, _genesisTime, _minimumPrice, _startingPrice, _timeScale, _chain, _initialAuctionEndTime) +} + +// SkipInitBecauseIAmNotOg is a paid mutator transaction binding the contract method 0xdf775a93. +// +// Solidity: function skipInitBecauseIAmNotOg(_token address, _proceeds address, _genesisTime uint256, _minimumPrice uint256, _startingPrice uint256, _timeScale uint256, _chain bytes8, _initialAuctionEndTime uint256) returns(bool) +func (_Auctions *AuctionsSession) SkipInitBecauseIAmNotOg(_token common.Address, _proceeds common.Address, _genesisTime *big.Int, _minimumPrice *big.Int, _startingPrice *big.Int, _timeScale *big.Int, _chain [8]byte, _initialAuctionEndTime *big.Int) (*types.Transaction, error) { + return _Auctions.Contract.SkipInitBecauseIAmNotOg(&_Auctions.TransactOpts, _token, _proceeds, _genesisTime, _minimumPrice, _startingPrice, _timeScale, _chain, _initialAuctionEndTime) +} + +// SkipInitBecauseIAmNotOg is a paid mutator transaction binding the contract method 0xdf775a93. +// +// Solidity: function skipInitBecauseIAmNotOg(_token address, _proceeds address, _genesisTime uint256, _minimumPrice uint256, _startingPrice uint256, _timeScale uint256, _chain bytes8, _initialAuctionEndTime uint256) returns(bool) +func (_Auctions *AuctionsTransactorSession) SkipInitBecauseIAmNotOg(_token common.Address, _proceeds common.Address, _genesisTime *big.Int, _minimumPrice *big.Int, _startingPrice *big.Int, _timeScale *big.Int, _chain [8]byte, _initialAuctionEndTime *big.Int) (*types.Transaction, error) { + return _Auctions.Contract.SkipInitBecauseIAmNotOg(&_Auctions.TransactOpts, _token, _proceeds, _genesisTime, _minimumPrice, _startingPrice, _timeScale, _chain, _initialAuctionEndTime) +} + +// StopEverything is a paid mutator transaction binding the contract method 0x4938649a. +// +// Solidity: function stopEverything() returns() +func (_Auctions *AuctionsTransactor) StopEverything(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Auctions.contract.Transact(opts, "stopEverything") +} + +// StopEverything is a paid mutator transaction binding the contract method 0x4938649a. +// +// Solidity: function stopEverything() returns() +func (_Auctions *AuctionsSession) StopEverything() (*types.Transaction, error) { + return _Auctions.Contract.StopEverything(&_Auctions.TransactOpts) +} + +// StopEverything is a paid mutator transaction binding the contract method 0x4938649a. +// +// Solidity: function stopEverything() returns() +func (_Auctions *AuctionsTransactorSession) StopEverything() (*types.Transaction, error) { + return _Auctions.Contract.StopEverything(&_Auctions.TransactOpts) +} + +// AuctionsLogAuctionFundsInIterator is returned from FilterLogAuctionFundsIn and is used to iterate over the raw logs and unpacked data for LogAuctionFundsIn events raised by the Auctions contract. +type AuctionsLogAuctionFundsInIterator struct { + Event *AuctionsLogAuctionFundsIn // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *AuctionsLogAuctionFundsInIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(AuctionsLogAuctionFundsIn) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(AuctionsLogAuctionFundsIn) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *AuctionsLogAuctionFundsInIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *AuctionsLogAuctionFundsInIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// AuctionsLogAuctionFundsIn represents a LogAuctionFundsIn event raised by the Auctions contract. +type AuctionsLogAuctionFundsIn struct { + Sender common.Address + Amount *big.Int + Tokens *big.Int + PurchasePrice *big.Int + Refund *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogAuctionFundsIn is a free log retrieval operation binding the contract event 0xa3d6792be56a61c872a8e6d733ef6efe5e391cece4d5e9d2f37208fdab7dddfd. +// +// Solidity: e LogAuctionFundsIn(sender indexed address, amount uint256, tokens uint256, purchasePrice uint256, refund uint256) +func (_Auctions *AuctionsFilterer) FilterLogAuctionFundsIn(opts *bind.FilterOpts, sender []common.Address) (*AuctionsLogAuctionFundsInIterator, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _Auctions.contract.FilterLogs(opts, "LogAuctionFundsIn", senderRule) + if err != nil { + return nil, err + } + return &AuctionsLogAuctionFundsInIterator{contract: _Auctions.contract, event: "LogAuctionFundsIn", logs: logs, sub: sub}, nil +} + +// WatchLogAuctionFundsIn is a free log subscription operation binding the contract event 0xa3d6792be56a61c872a8e6d733ef6efe5e391cece4d5e9d2f37208fdab7dddfd. +// +// Solidity: e LogAuctionFundsIn(sender indexed address, amount uint256, tokens uint256, purchasePrice uint256, refund uint256) +func (_Auctions *AuctionsFilterer) WatchLogAuctionFundsIn(opts *bind.WatchOpts, sink chan<- *AuctionsLogAuctionFundsIn, sender []common.Address) (event.Subscription, error) { + + var senderRule []interface{} + for _, senderItem := range sender { + senderRule = append(senderRule, senderItem) + } + + logs, sub, err := _Auctions.contract.WatchLogs(opts, "LogAuctionFundsIn", senderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(AuctionsLogAuctionFundsIn) + if err := _Auctions.contract.UnpackLog(event, "LogAuctionFundsIn", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// AuctionsOwnershipChangedIterator is returned from FilterOwnershipChanged and is used to iterate over the raw logs and unpacked data for OwnershipChanged events raised by the Auctions contract. +type AuctionsOwnershipChangedIterator struct { + Event *AuctionsOwnershipChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *AuctionsOwnershipChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(AuctionsOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(AuctionsOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *AuctionsOwnershipChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *AuctionsOwnershipChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// AuctionsOwnershipChanged represents a OwnershipChanged event raised by the Auctions contract. +type AuctionsOwnershipChanged struct { + PrevOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipChanged is a free log retrieval operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Auctions *AuctionsFilterer) FilterOwnershipChanged(opts *bind.FilterOpts, prevOwner []common.Address, newOwner []common.Address) (*AuctionsOwnershipChangedIterator, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Auctions.contract.FilterLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &AuctionsOwnershipChangedIterator{contract: _Auctions.contract, event: "OwnershipChanged", logs: logs, sub: sub}, nil +} + +// WatchOwnershipChanged is a free log subscription operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Auctions *AuctionsFilterer) WatchOwnershipChanged(opts *bind.WatchOpts, sink chan<- *AuctionsOwnershipChanged, prevOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Auctions.contract.WatchLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(AuctionsOwnershipChanged) + if err := _Auctions.contract.UnpackLog(event, "OwnershipChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// AutonomousConverterABI is the input ABI used to generate the binding from. +const AutonomousConverterABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_mintReturn\",\"type\":\"uint256\"}],\"name\":\"convertMetToEth\",\"outputs\":[{\"name\":\"returnedEth\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_reserveToken\",\"type\":\"address\"},{\"name\":\"_smartToken\",\"type\":\"address\"},{\"name\":\"_auctions\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getMetBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_depositAmount\",\"type\":\"uint256\"}],\"name\":\"getEthForMetResult\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_depositAmount\",\"type\":\"uint256\"}],\"name\":\"getMetForEthResult\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getEthBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"handleFund\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"auctions\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_mintReturn\",\"type\":\"uint256\"}],\"name\":\"convertEthToMet\",\"outputs\":[{\"name\":\"returnedMet\",\"type\":\"uint256\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"smartToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reserveToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"LogFundsIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"eth\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"met\",\"type\":\"uint256\"}],\"name\":\"ConvertEthToMet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"eth\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"met\",\"type\":\"uint256\"}],\"name\":\"ConvertMetToEth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"}]" + +// AutonomousConverterBin is the compiled bytecode used for deploying new contracts. +const AutonomousConverterBin = `0x60806040526004805460a060020a60ff021916905560008054600160a060020a03191633179055611079806100356000396000f3006080604052600436106100c05763ffffffff60e060020a6000350416621773e681146100c5578063184b9559146100f25780632af4c31e146101145780632eb96988146101495780636102d4191461015e578063679d0ecb1461017657806370ed0ada1461018e5780637679a816146101a357806379ba5097146101ab57806385aa6103146101c05780638da5cb5b146101f1578063c171747b14610206578063c3e8fb4014610211578063d4ee1d9014610226578063f4325d671461023b575b600080fd5b3480156100d157600080fd5b506100e0600435602435610250565b60408051918252519081900360200190f35b610112600160a060020a03600435811690602435811690604435166102a4565b005b34801561012057600080fd5b50610135600160a060020a036004351661035d565b604080519115158252519081900360200190f35b34801561015557600080fd5b506100e06103bf565b34801561016a57600080fd5b506100e06004356103d0565b34801561018257600080fd5b506100e06004356103e3565b34801561019a57600080fd5b506100e06103f0565b6101126103fc565b3480156101b757600080fd5b506101356104d1565b3480156101cc57600080fd5b506101d561055c565b60408051600160a060020a039092168252519081900360200190f35b3480156101fd57600080fd5b506101d561056b565b6100e060043561057a565b34801561021d57600080fd5b506101d56105cd565b34801561023257600080fd5b506101d56105dc565b34801561024757600080fd5b506101d56105eb565b600061025e600183856105fa565b6040805182815260208101869052815192935033927f904ffb1468535e7e0fadd3eef47ab71408e0bdde40897919c1f165afce818734929181900390910190a292915050565b600054600160a060020a031633146102bb57600080fd5b60045474010000000000000000000000000000000000000000900460ff16156102e357600080fd5b600480546003805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a039788161790915560028054821695871695909517909455740100000000000000000000000000000000000000009316919093161774ff00000000000000000000000000000000000000001916179055565b60008054600160a060020a0316331461037557600080fd5b600054600160a060020a038381169116141561039057600080fd5b506001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161781555b919050565b60006103cb60016106e4565b905090565b60006103dd6001836107ae565b92915050565b60006103dd6000836107ae565b60006103cb60006106e4565b60048054604080517f55b5ec640000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216926355b5ec649282820192602092908290030181600087803b15801561045957600080fd5b505af115801561046d573d6000803e3d6000fd5b505050506040513d602081101561048357600080fd5b5051600160a060020a0316331461049957600080fd5b60408051348152905133917f7d6f066517cd2256fb0abf18362576d1a32243ec9e4424ca53ebe8440a56d473919081900360200190a2565b600154600090600160a060020a031633146104eb57600080fd5b60015460008054604051600160a060020a0393841693909116917f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b91a350600180546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905590565b600454600160a060020a031681565b600054600160a060020a031681565b6000610588600083346105fa565b6040805134815260208101839052815192935033927f05f26cb933b61947ffb852e23d566ecbd1694f683658cbab3ea6b14b61986297929181900390910190a2919050565b600254600160a060020a031681565b600154600160a060020a031681565b600354600160a060020a031681565b60006001818186600181111561060c57fe5b14156106bf57600354604080517f23b872dd00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052905160009450600160a060020a03909216916323b872dd9160648082019260209290919082900301818887803b15801561068857600080fd5b505af115801561069c573d6000803e3d6000fd5b505050506040513d60208110156106b257600080fd5b505115156106bf57600080fd5b6106cb86856001610927565b90506106d88282876109f9565b92505b50509392505050565b6000808260018111156106f357fe5b1415610701575030316103ba565b600182600181111561070f57fe5b14156100c057600354604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561077b57600080fd5b505af115801561078f573d6000803e3d6000fd5b505050506040513d60208110156107a557600080fd5b505190506103ba565b6000600181808080848860018111156107c357fe5b14156107ce57600094505b6107e7876107db8a6106e4565b9063ffffffff610ced16565b9350610872600260009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561083f57600080fd5b505af1158015610853573d6000803e3d6000fd5b505050506040513d602081101561086957600080fd5b50518886610d07565b925061090383600260009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156108cb57600080fd5b505af11580156108df573d6000803e3d6000fd5b505050506040513d60208110156108f557600080fd5b50519063ffffffff610ced16565b915061090e856106e4565b905061091b828483610d74565b98975050505050505050565b600080821161093557600080fd5b61093f8484610daa565b90508181101561094e57600080fd5b600254604080517f40c10f19000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a03909216916340c10f19916044808201926020929091908290030181600087803b1580156109bb57600080fd5b505af11580156109cf573d6000803e3d6000fd5b505050506040513d60208110156109e557600080fd5b505115156109f257600080fd5b9392505050565b600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152905160009283928392600160a060020a03909216916370a082319160248082019260209290919082900301818787803b158015610a6557600080fd5b505af1158015610a79573d6000803e3d6000fd5b505050506040513d6020811015610a8f57600080fd5b5051851115610a9d57600080fd5b60008411610aaa57600080fd5b610ab48686610e4f565b925083831015610ac357600080fd5b610acc866106e4565b915082821015610adb57600080fd5b600260009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610b2e57600080fd5b505af1158015610b42573d6000803e3d6000fd5b505050506040513d6020811015610b5857600080fd5b50519050808510610b6857600080fd5b600254604080517fa24835d1000000000000000000000000000000000000000000000000000000008152336004820152602481018890529051600160a060020a039092169163a24835d1916044808201926020929091908290030181600087803b158015610bd557600080fd5b505af1158015610be9573d6000803e3d6000fd5b505050506040513d6020811015610bff57600080fd5b5060009050866001811115610c1057fe5b1415610c4957604051339084156108fc029085906000818181858888f19350505050158015610c43573d6000803e3d6000fd5b506106db565b600354604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018690529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b158015610cb657600080fd5b505af1158015610cca573d6000803e3d6000fd5b505050506040513d6020811015610ce057600080fd5b505115156106db57600080fd5b600082820183811015610cfc57fe5b8091505b5092915050565b6000838383610d69670de0b6b3a7640000610d5d81610d5187610d4c610d3e610d3985610d348c8c610eeb565b610f09565b610f1b565b670de0b6b3a7640000610fbd565b610fcf565b9063ffffffff610fed16565b9063ffffffff61101816565b979650505050505050565b6000838383610d69670de0b6b3a7640000610d5d81610d5185610d4c83610da0610da582828d8f610eeb565b610fbd565b61102f565b6000806000600260009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e0257600080fd5b505af1158015610e16573d6000803e3d6000fd5b505050506040513d6020811015610e2c57600080fd5b50519150610e39856106e4565b9050610e46828583610d07565b95945050505050565b6000806000600260009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ea757600080fd5b505af1158015610ebb573d6000803e3d6000fd5b505050506040513d6020811015610ed157600080fd5b50519150610ede856106e4565b9050610e46828583610d74565b60006109f282610d5d85670de0b6b3a764000063ffffffff610fed16565b60006109f2838363ffffffff610ced16565b600080808080851515610f315760009450610fb4565b8586029350858685811515610f4257fe5b0414610f4d57600080fd5b610f5f86670de0b6b3a7640000610f09565b9250600091505b6001610f728484610fbd565b1115610fb0576002610f848385610f09565b811515610f8d57fe5b04905085610f9a8261102f565b11610fa757809150610fab565b8092505b610f66565b8194505b50505050919050565b60006109f2838363ffffffff61103b16565b60006109f2670de0b6b3a7640000610d5d858563ffffffff610fed16565b6000808315156110005760009150610d00565b5082820282848281151561101057fe5b0414610cfc57fe5b600080828481151561102657fe5b04949350505050565b60006103dd8283610fcf565b60008282111561104757fe5b509003905600a165627a7a72305820e597c37c5020298c298acaa8e78566bfff3c7bc0838bda0a3566cfc0191258730029` + +// DeployAutonomousConverter deploys a new Ethereum contract, binding an instance of AutonomousConverter to it. +func DeployAutonomousConverter(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *AutonomousConverter, error) { + parsed, err := abi.JSON(strings.NewReader(AutonomousConverterABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(AutonomousConverterBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &AutonomousConverter{AutonomousConverterCaller: AutonomousConverterCaller{contract: contract}, AutonomousConverterTransactor: AutonomousConverterTransactor{contract: contract}, AutonomousConverterFilterer: AutonomousConverterFilterer{contract: contract}}, nil +} + +// AutonomousConverter is an auto generated Go binding around an Ethereum contract. +type AutonomousConverter struct { + AutonomousConverterCaller // Read-only binding to the contract + AutonomousConverterTransactor // Write-only binding to the contract + AutonomousConverterFilterer // Log filterer for contract events +} + +// AutonomousConverterCaller is an auto generated read-only Go binding around an Ethereum contract. +type AutonomousConverterCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AutonomousConverterTransactor is an auto generated write-only Go binding around an Ethereum contract. +type AutonomousConverterTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AutonomousConverterFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type AutonomousConverterFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// AutonomousConverterSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type AutonomousConverterSession struct { + Contract *AutonomousConverter // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// AutonomousConverterCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type AutonomousConverterCallerSession struct { + Contract *AutonomousConverterCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// AutonomousConverterTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type AutonomousConverterTransactorSession struct { + Contract *AutonomousConverterTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// AutonomousConverterRaw is an auto generated low-level Go binding around an Ethereum contract. +type AutonomousConverterRaw struct { + Contract *AutonomousConverter // Generic contract binding to access the raw methods on +} + +// AutonomousConverterCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type AutonomousConverterCallerRaw struct { + Contract *AutonomousConverterCaller // Generic read-only contract binding to access the raw methods on +} + +// AutonomousConverterTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type AutonomousConverterTransactorRaw struct { + Contract *AutonomousConverterTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewAutonomousConverter creates a new instance of AutonomousConverter, bound to a specific deployed contract. +func NewAutonomousConverter(address common.Address, backend bind.ContractBackend) (*AutonomousConverter, error) { + contract, err := bindAutonomousConverter(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &AutonomousConverter{AutonomousConverterCaller: AutonomousConverterCaller{contract: contract}, AutonomousConverterTransactor: AutonomousConverterTransactor{contract: contract}, AutonomousConverterFilterer: AutonomousConverterFilterer{contract: contract}}, nil +} + +// NewAutonomousConverterCaller creates a new read-only instance of AutonomousConverter, bound to a specific deployed contract. +func NewAutonomousConverterCaller(address common.Address, caller bind.ContractCaller) (*AutonomousConverterCaller, error) { + contract, err := bindAutonomousConverter(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &AutonomousConverterCaller{contract: contract}, nil +} + +// NewAutonomousConverterTransactor creates a new write-only instance of AutonomousConverter, bound to a specific deployed contract. +func NewAutonomousConverterTransactor(address common.Address, transactor bind.ContractTransactor) (*AutonomousConverterTransactor, error) { + contract, err := bindAutonomousConverter(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &AutonomousConverterTransactor{contract: contract}, nil +} + +// NewAutonomousConverterFilterer creates a new log filterer instance of AutonomousConverter, bound to a specific deployed contract. +func NewAutonomousConverterFilterer(address common.Address, filterer bind.ContractFilterer) (*AutonomousConverterFilterer, error) { + contract, err := bindAutonomousConverter(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &AutonomousConverterFilterer{contract: contract}, nil +} + +// bindAutonomousConverter binds a generic wrapper to an already deployed contract. +func bindAutonomousConverter(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(AutonomousConverterABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_AutonomousConverter *AutonomousConverterRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _AutonomousConverter.Contract.AutonomousConverterCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_AutonomousConverter *AutonomousConverterRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _AutonomousConverter.Contract.AutonomousConverterTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_AutonomousConverter *AutonomousConverterRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _AutonomousConverter.Contract.AutonomousConverterTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_AutonomousConverter *AutonomousConverterCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _AutonomousConverter.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_AutonomousConverter *AutonomousConverterTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _AutonomousConverter.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_AutonomousConverter *AutonomousConverterTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _AutonomousConverter.Contract.contract.Transact(opts, method, params...) +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_AutonomousConverter *AutonomousConverterCaller) Auctions(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _AutonomousConverter.contract.Call(opts, out, "auctions") + return *ret0, err +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_AutonomousConverter *AutonomousConverterSession) Auctions() (common.Address, error) { + return _AutonomousConverter.Contract.Auctions(&_AutonomousConverter.CallOpts) +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_AutonomousConverter *AutonomousConverterCallerSession) Auctions() (common.Address, error) { + return _AutonomousConverter.Contract.Auctions(&_AutonomousConverter.CallOpts) +} + +// GetEthBalance is a free data retrieval call binding the contract method 0x70ed0ada. +// +// Solidity: function getEthBalance() constant returns(uint256) +func (_AutonomousConverter *AutonomousConverterCaller) GetEthBalance(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _AutonomousConverter.contract.Call(opts, out, "getEthBalance") + return *ret0, err +} + +// GetEthBalance is a free data retrieval call binding the contract method 0x70ed0ada. +// +// Solidity: function getEthBalance() constant returns(uint256) +func (_AutonomousConverter *AutonomousConverterSession) GetEthBalance() (*big.Int, error) { + return _AutonomousConverter.Contract.GetEthBalance(&_AutonomousConverter.CallOpts) +} + +// GetEthBalance is a free data retrieval call binding the contract method 0x70ed0ada. +// +// Solidity: function getEthBalance() constant returns(uint256) +func (_AutonomousConverter *AutonomousConverterCallerSession) GetEthBalance() (*big.Int, error) { + return _AutonomousConverter.Contract.GetEthBalance(&_AutonomousConverter.CallOpts) +} + +// GetEthForMetResult is a free data retrieval call binding the contract method 0x6102d419. +// +// Solidity: function getEthForMetResult(_depositAmount uint256) constant returns(uint256) +func (_AutonomousConverter *AutonomousConverterCaller) GetEthForMetResult(opts *bind.CallOpts, _depositAmount *big.Int) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _AutonomousConverter.contract.Call(opts, out, "getEthForMetResult", _depositAmount) + return *ret0, err +} + +// GetEthForMetResult is a free data retrieval call binding the contract method 0x6102d419. +// +// Solidity: function getEthForMetResult(_depositAmount uint256) constant returns(uint256) +func (_AutonomousConverter *AutonomousConverterSession) GetEthForMetResult(_depositAmount *big.Int) (*big.Int, error) { + return _AutonomousConverter.Contract.GetEthForMetResult(&_AutonomousConverter.CallOpts, _depositAmount) +} + +// GetEthForMetResult is a free data retrieval call binding the contract method 0x6102d419. +// +// Solidity: function getEthForMetResult(_depositAmount uint256) constant returns(uint256) +func (_AutonomousConverter *AutonomousConverterCallerSession) GetEthForMetResult(_depositAmount *big.Int) (*big.Int, error) { + return _AutonomousConverter.Contract.GetEthForMetResult(&_AutonomousConverter.CallOpts, _depositAmount) +} + +// GetMetBalance is a free data retrieval call binding the contract method 0x2eb96988. +// +// Solidity: function getMetBalance() constant returns(uint256) +func (_AutonomousConverter *AutonomousConverterCaller) GetMetBalance(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _AutonomousConverter.contract.Call(opts, out, "getMetBalance") + return *ret0, err +} + +// GetMetBalance is a free data retrieval call binding the contract method 0x2eb96988. +// +// Solidity: function getMetBalance() constant returns(uint256) +func (_AutonomousConverter *AutonomousConverterSession) GetMetBalance() (*big.Int, error) { + return _AutonomousConverter.Contract.GetMetBalance(&_AutonomousConverter.CallOpts) +} + +// GetMetBalance is a free data retrieval call binding the contract method 0x2eb96988. +// +// Solidity: function getMetBalance() constant returns(uint256) +func (_AutonomousConverter *AutonomousConverterCallerSession) GetMetBalance() (*big.Int, error) { + return _AutonomousConverter.Contract.GetMetBalance(&_AutonomousConverter.CallOpts) +} + +// GetMetForEthResult is a free data retrieval call binding the contract method 0x679d0ecb. +// +// Solidity: function getMetForEthResult(_depositAmount uint256) constant returns(uint256) +func (_AutonomousConverter *AutonomousConverterCaller) GetMetForEthResult(opts *bind.CallOpts, _depositAmount *big.Int) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _AutonomousConverter.contract.Call(opts, out, "getMetForEthResult", _depositAmount) + return *ret0, err +} + +// GetMetForEthResult is a free data retrieval call binding the contract method 0x679d0ecb. +// +// Solidity: function getMetForEthResult(_depositAmount uint256) constant returns(uint256) +func (_AutonomousConverter *AutonomousConverterSession) GetMetForEthResult(_depositAmount *big.Int) (*big.Int, error) { + return _AutonomousConverter.Contract.GetMetForEthResult(&_AutonomousConverter.CallOpts, _depositAmount) +} + +// GetMetForEthResult is a free data retrieval call binding the contract method 0x679d0ecb. +// +// Solidity: function getMetForEthResult(_depositAmount uint256) constant returns(uint256) +func (_AutonomousConverter *AutonomousConverterCallerSession) GetMetForEthResult(_depositAmount *big.Int) (*big.Int, error) { + return _AutonomousConverter.Contract.GetMetForEthResult(&_AutonomousConverter.CallOpts, _depositAmount) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_AutonomousConverter *AutonomousConverterCaller) NewOwner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _AutonomousConverter.contract.Call(opts, out, "newOwner") + return *ret0, err +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_AutonomousConverter *AutonomousConverterSession) NewOwner() (common.Address, error) { + return _AutonomousConverter.Contract.NewOwner(&_AutonomousConverter.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_AutonomousConverter *AutonomousConverterCallerSession) NewOwner() (common.Address, error) { + return _AutonomousConverter.Contract.NewOwner(&_AutonomousConverter.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_AutonomousConverter *AutonomousConverterCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _AutonomousConverter.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_AutonomousConverter *AutonomousConverterSession) Owner() (common.Address, error) { + return _AutonomousConverter.Contract.Owner(&_AutonomousConverter.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_AutonomousConverter *AutonomousConverterCallerSession) Owner() (common.Address, error) { + return _AutonomousConverter.Contract.Owner(&_AutonomousConverter.CallOpts) +} + +// ReserveToken is a free data retrieval call binding the contract method 0xf4325d67. +// +// Solidity: function reserveToken() constant returns(address) +func (_AutonomousConverter *AutonomousConverterCaller) ReserveToken(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _AutonomousConverter.contract.Call(opts, out, "reserveToken") + return *ret0, err +} + +// ReserveToken is a free data retrieval call binding the contract method 0xf4325d67. +// +// Solidity: function reserveToken() constant returns(address) +func (_AutonomousConverter *AutonomousConverterSession) ReserveToken() (common.Address, error) { + return _AutonomousConverter.Contract.ReserveToken(&_AutonomousConverter.CallOpts) +} + +// ReserveToken is a free data retrieval call binding the contract method 0xf4325d67. +// +// Solidity: function reserveToken() constant returns(address) +func (_AutonomousConverter *AutonomousConverterCallerSession) ReserveToken() (common.Address, error) { + return _AutonomousConverter.Contract.ReserveToken(&_AutonomousConverter.CallOpts) +} + +// SmartToken is a free data retrieval call binding the contract method 0xc3e8fb40. +// +// Solidity: function smartToken() constant returns(address) +func (_AutonomousConverter *AutonomousConverterCaller) SmartToken(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _AutonomousConverter.contract.Call(opts, out, "smartToken") + return *ret0, err +} + +// SmartToken is a free data retrieval call binding the contract method 0xc3e8fb40. +// +// Solidity: function smartToken() constant returns(address) +func (_AutonomousConverter *AutonomousConverterSession) SmartToken() (common.Address, error) { + return _AutonomousConverter.Contract.SmartToken(&_AutonomousConverter.CallOpts) +} + +// SmartToken is a free data retrieval call binding the contract method 0xc3e8fb40. +// +// Solidity: function smartToken() constant returns(address) +func (_AutonomousConverter *AutonomousConverterCallerSession) SmartToken() (common.Address, error) { + return _AutonomousConverter.Contract.SmartToken(&_AutonomousConverter.CallOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_AutonomousConverter *AutonomousConverterTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _AutonomousConverter.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_AutonomousConverter *AutonomousConverterSession) AcceptOwnership() (*types.Transaction, error) { + return _AutonomousConverter.Contract.AcceptOwnership(&_AutonomousConverter.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_AutonomousConverter *AutonomousConverterTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _AutonomousConverter.Contract.AcceptOwnership(&_AutonomousConverter.TransactOpts) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_AutonomousConverter *AutonomousConverterTransactor) ChangeOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) { + return _AutonomousConverter.contract.Transact(opts, "changeOwnership", _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_AutonomousConverter *AutonomousConverterSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _AutonomousConverter.Contract.ChangeOwnership(&_AutonomousConverter.TransactOpts, _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_AutonomousConverter *AutonomousConverterTransactorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _AutonomousConverter.Contract.ChangeOwnership(&_AutonomousConverter.TransactOpts, _newOwner) +} + +// ConvertEthToMet is a paid mutator transaction binding the contract method 0xc171747b. +// +// Solidity: function convertEthToMet(_mintReturn uint256) returns(returnedMet uint256) +func (_AutonomousConverter *AutonomousConverterTransactor) ConvertEthToMet(opts *bind.TransactOpts, _mintReturn *big.Int) (*types.Transaction, error) { + return _AutonomousConverter.contract.Transact(opts, "convertEthToMet", _mintReturn) +} + +// ConvertEthToMet is a paid mutator transaction binding the contract method 0xc171747b. +// +// Solidity: function convertEthToMet(_mintReturn uint256) returns(returnedMet uint256) +func (_AutonomousConverter *AutonomousConverterSession) ConvertEthToMet(_mintReturn *big.Int) (*types.Transaction, error) { + return _AutonomousConverter.Contract.ConvertEthToMet(&_AutonomousConverter.TransactOpts, _mintReturn) +} + +// ConvertEthToMet is a paid mutator transaction binding the contract method 0xc171747b. +// +// Solidity: function convertEthToMet(_mintReturn uint256) returns(returnedMet uint256) +func (_AutonomousConverter *AutonomousConverterTransactorSession) ConvertEthToMet(_mintReturn *big.Int) (*types.Transaction, error) { + return _AutonomousConverter.Contract.ConvertEthToMet(&_AutonomousConverter.TransactOpts, _mintReturn) +} + +// ConvertMetToEth is a paid mutator transaction binding the contract method 0x001773e6. +// +// Solidity: function convertMetToEth(_amount uint256, _mintReturn uint256) returns(returnedEth uint256) +func (_AutonomousConverter *AutonomousConverterTransactor) ConvertMetToEth(opts *bind.TransactOpts, _amount *big.Int, _mintReturn *big.Int) (*types.Transaction, error) { + return _AutonomousConverter.contract.Transact(opts, "convertMetToEth", _amount, _mintReturn) +} + +// ConvertMetToEth is a paid mutator transaction binding the contract method 0x001773e6. +// +// Solidity: function convertMetToEth(_amount uint256, _mintReturn uint256) returns(returnedEth uint256) +func (_AutonomousConverter *AutonomousConverterSession) ConvertMetToEth(_amount *big.Int, _mintReturn *big.Int) (*types.Transaction, error) { + return _AutonomousConverter.Contract.ConvertMetToEth(&_AutonomousConverter.TransactOpts, _amount, _mintReturn) +} + +// ConvertMetToEth is a paid mutator transaction binding the contract method 0x001773e6. +// +// Solidity: function convertMetToEth(_amount uint256, _mintReturn uint256) returns(returnedEth uint256) +func (_AutonomousConverter *AutonomousConverterTransactorSession) ConvertMetToEth(_amount *big.Int, _mintReturn *big.Int) (*types.Transaction, error) { + return _AutonomousConverter.Contract.ConvertMetToEth(&_AutonomousConverter.TransactOpts, _amount, _mintReturn) +} + +// HandleFund is a paid mutator transaction binding the contract method 0x7679a816. +// +// Solidity: function handleFund() returns() +func (_AutonomousConverter *AutonomousConverterTransactor) HandleFund(opts *bind.TransactOpts) (*types.Transaction, error) { + return _AutonomousConverter.contract.Transact(opts, "handleFund") +} + +// HandleFund is a paid mutator transaction binding the contract method 0x7679a816. +// +// Solidity: function handleFund() returns() +func (_AutonomousConverter *AutonomousConverterSession) HandleFund() (*types.Transaction, error) { + return _AutonomousConverter.Contract.HandleFund(&_AutonomousConverter.TransactOpts) +} + +// HandleFund is a paid mutator transaction binding the contract method 0x7679a816. +// +// Solidity: function handleFund() returns() +func (_AutonomousConverter *AutonomousConverterTransactorSession) HandleFund() (*types.Transaction, error) { + return _AutonomousConverter.Contract.HandleFund(&_AutonomousConverter.TransactOpts) +} + +// Init is a paid mutator transaction binding the contract method 0x184b9559. +// +// Solidity: function init(_reserveToken address, _smartToken address, _auctions address) returns() +func (_AutonomousConverter *AutonomousConverterTransactor) Init(opts *bind.TransactOpts, _reserveToken common.Address, _smartToken common.Address, _auctions common.Address) (*types.Transaction, error) { + return _AutonomousConverter.contract.Transact(opts, "init", _reserveToken, _smartToken, _auctions) +} + +// Init is a paid mutator transaction binding the contract method 0x184b9559. +// +// Solidity: function init(_reserveToken address, _smartToken address, _auctions address) returns() +func (_AutonomousConverter *AutonomousConverterSession) Init(_reserveToken common.Address, _smartToken common.Address, _auctions common.Address) (*types.Transaction, error) { + return _AutonomousConverter.Contract.Init(&_AutonomousConverter.TransactOpts, _reserveToken, _smartToken, _auctions) +} + +// Init is a paid mutator transaction binding the contract method 0x184b9559. +// +// Solidity: function init(_reserveToken address, _smartToken address, _auctions address) returns() +func (_AutonomousConverter *AutonomousConverterTransactorSession) Init(_reserveToken common.Address, _smartToken common.Address, _auctions common.Address) (*types.Transaction, error) { + return _AutonomousConverter.Contract.Init(&_AutonomousConverter.TransactOpts, _reserveToken, _smartToken, _auctions) +} + +// AutonomousConverterConvertEthToMetIterator is returned from FilterConvertEthToMet and is used to iterate over the raw logs and unpacked data for ConvertEthToMet events raised by the AutonomousConverter contract. +type AutonomousConverterConvertEthToMetIterator struct { + Event *AutonomousConverterConvertEthToMet // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *AutonomousConverterConvertEthToMetIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(AutonomousConverterConvertEthToMet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(AutonomousConverterConvertEthToMet) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *AutonomousConverterConvertEthToMetIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *AutonomousConverterConvertEthToMetIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// AutonomousConverterConvertEthToMet represents a ConvertEthToMet event raised by the AutonomousConverter contract. +type AutonomousConverterConvertEthToMet struct { + From common.Address + Eth *big.Int + Met *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterConvertEthToMet is a free log retrieval operation binding the contract event 0x05f26cb933b61947ffb852e23d566ecbd1694f683658cbab3ea6b14b61986297. +// +// Solidity: e ConvertEthToMet(from indexed address, eth uint256, met uint256) +func (_AutonomousConverter *AutonomousConverterFilterer) FilterConvertEthToMet(opts *bind.FilterOpts, from []common.Address) (*AutonomousConverterConvertEthToMetIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _AutonomousConverter.contract.FilterLogs(opts, "ConvertEthToMet", fromRule) + if err != nil { + return nil, err + } + return &AutonomousConverterConvertEthToMetIterator{contract: _AutonomousConverter.contract, event: "ConvertEthToMet", logs: logs, sub: sub}, nil +} + +// WatchConvertEthToMet is a free log subscription operation binding the contract event 0x05f26cb933b61947ffb852e23d566ecbd1694f683658cbab3ea6b14b61986297. +// +// Solidity: e ConvertEthToMet(from indexed address, eth uint256, met uint256) +func (_AutonomousConverter *AutonomousConverterFilterer) WatchConvertEthToMet(opts *bind.WatchOpts, sink chan<- *AutonomousConverterConvertEthToMet, from []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _AutonomousConverter.contract.WatchLogs(opts, "ConvertEthToMet", fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(AutonomousConverterConvertEthToMet) + if err := _AutonomousConverter.contract.UnpackLog(event, "ConvertEthToMet", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// AutonomousConverterConvertMetToEthIterator is returned from FilterConvertMetToEth and is used to iterate over the raw logs and unpacked data for ConvertMetToEth events raised by the AutonomousConverter contract. +type AutonomousConverterConvertMetToEthIterator struct { + Event *AutonomousConverterConvertMetToEth // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *AutonomousConverterConvertMetToEthIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(AutonomousConverterConvertMetToEth) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(AutonomousConverterConvertMetToEth) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *AutonomousConverterConvertMetToEthIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *AutonomousConverterConvertMetToEthIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// AutonomousConverterConvertMetToEth represents a ConvertMetToEth event raised by the AutonomousConverter contract. +type AutonomousConverterConvertMetToEth struct { + From common.Address + Eth *big.Int + Met *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterConvertMetToEth is a free log retrieval operation binding the contract event 0x904ffb1468535e7e0fadd3eef47ab71408e0bdde40897919c1f165afce818734. +// +// Solidity: e ConvertMetToEth(from indexed address, eth uint256, met uint256) +func (_AutonomousConverter *AutonomousConverterFilterer) FilterConvertMetToEth(opts *bind.FilterOpts, from []common.Address) (*AutonomousConverterConvertMetToEthIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _AutonomousConverter.contract.FilterLogs(opts, "ConvertMetToEth", fromRule) + if err != nil { + return nil, err + } + return &AutonomousConverterConvertMetToEthIterator{contract: _AutonomousConverter.contract, event: "ConvertMetToEth", logs: logs, sub: sub}, nil +} + +// WatchConvertMetToEth is a free log subscription operation binding the contract event 0x904ffb1468535e7e0fadd3eef47ab71408e0bdde40897919c1f165afce818734. +// +// Solidity: e ConvertMetToEth(from indexed address, eth uint256, met uint256) +func (_AutonomousConverter *AutonomousConverterFilterer) WatchConvertMetToEth(opts *bind.WatchOpts, sink chan<- *AutonomousConverterConvertMetToEth, from []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _AutonomousConverter.contract.WatchLogs(opts, "ConvertMetToEth", fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(AutonomousConverterConvertMetToEth) + if err := _AutonomousConverter.contract.UnpackLog(event, "ConvertMetToEth", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// AutonomousConverterLogFundsInIterator is returned from FilterLogFundsIn and is used to iterate over the raw logs and unpacked data for LogFundsIn events raised by the AutonomousConverter contract. +type AutonomousConverterLogFundsInIterator struct { + Event *AutonomousConverterLogFundsIn // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *AutonomousConverterLogFundsInIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(AutonomousConverterLogFundsIn) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(AutonomousConverterLogFundsIn) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *AutonomousConverterLogFundsInIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *AutonomousConverterLogFundsInIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// AutonomousConverterLogFundsIn represents a LogFundsIn event raised by the AutonomousConverter contract. +type AutonomousConverterLogFundsIn struct { + From common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogFundsIn is a free log retrieval operation binding the contract event 0x7d6f066517cd2256fb0abf18362576d1a32243ec9e4424ca53ebe8440a56d473. +// +// Solidity: e LogFundsIn(from indexed address, value uint256) +func (_AutonomousConverter *AutonomousConverterFilterer) FilterLogFundsIn(opts *bind.FilterOpts, from []common.Address) (*AutonomousConverterLogFundsInIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _AutonomousConverter.contract.FilterLogs(opts, "LogFundsIn", fromRule) + if err != nil { + return nil, err + } + return &AutonomousConverterLogFundsInIterator{contract: _AutonomousConverter.contract, event: "LogFundsIn", logs: logs, sub: sub}, nil +} + +// WatchLogFundsIn is a free log subscription operation binding the contract event 0x7d6f066517cd2256fb0abf18362576d1a32243ec9e4424ca53ebe8440a56d473. +// +// Solidity: e LogFundsIn(from indexed address, value uint256) +func (_AutonomousConverter *AutonomousConverterFilterer) WatchLogFundsIn(opts *bind.WatchOpts, sink chan<- *AutonomousConverterLogFundsIn, from []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _AutonomousConverter.contract.WatchLogs(opts, "LogFundsIn", fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(AutonomousConverterLogFundsIn) + if err := _AutonomousConverter.contract.UnpackLog(event, "LogFundsIn", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// AutonomousConverterOwnershipChangedIterator is returned from FilterOwnershipChanged and is used to iterate over the raw logs and unpacked data for OwnershipChanged events raised by the AutonomousConverter contract. +type AutonomousConverterOwnershipChangedIterator struct { + Event *AutonomousConverterOwnershipChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *AutonomousConverterOwnershipChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(AutonomousConverterOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(AutonomousConverterOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *AutonomousConverterOwnershipChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *AutonomousConverterOwnershipChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// AutonomousConverterOwnershipChanged represents a OwnershipChanged event raised by the AutonomousConverter contract. +type AutonomousConverterOwnershipChanged struct { + PrevOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipChanged is a free log retrieval operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_AutonomousConverter *AutonomousConverterFilterer) FilterOwnershipChanged(opts *bind.FilterOpts, prevOwner []common.Address, newOwner []common.Address) (*AutonomousConverterOwnershipChangedIterator, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _AutonomousConverter.contract.FilterLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &AutonomousConverterOwnershipChangedIterator{contract: _AutonomousConverter.contract, event: "OwnershipChanged", logs: logs, sub: sub}, nil +} + +// WatchOwnershipChanged is a free log subscription operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_AutonomousConverter *AutonomousConverterFilterer) WatchOwnershipChanged(opts *bind.WatchOpts, sink chan<- *AutonomousConverterOwnershipChanged, prevOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _AutonomousConverter.contract.WatchLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(AutonomousConverterOwnershipChanged) + if err := _AutonomousConverter.contract.UnpackLog(event, "OwnershipChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ChainLedgerABI is the input ABI used to generate the binding from. +const ChainLedgerABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenPorter\",\"type\":\"address\"},{\"name\":\"_auctionsAddr\",\"type\":\"address\"}],\"name\":\"initChainLedger\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenPorter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"originChain\",\"type\":\"bytes8\"},{\"name\":\"destChain\",\"type\":\"bytes8\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"registerExport\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"chains\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"chain\",\"type\":\"bytes8\"},{\"name\":\"supply\",\"type\":\"uint256\"}],\"name\":\"registerChain\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes8\"}],\"name\":\"validChain\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"auctions\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes8\"}],\"name\":\"balance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"originChain\",\"type\":\"bytes8\"},{\"name\":\"destChain\",\"type\":\"bytes8\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"registerImport\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"chain\",\"type\":\"bytes8\"},{\"indexed\":false,\"name\":\"supply\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"outcome\",\"type\":\"bool\"}],\"name\":\"LogRegisterChain\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"originChain\",\"type\":\"bytes8\"},{\"indexed\":true,\"name\":\"destChain\",\"type\":\"bytes8\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRegisterExport\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"originChain\",\"type\":\"bytes8\"},{\"indexed\":true,\"name\":\"destChain\",\"type\":\"bytes8\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"LogRegisterImport\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"}]" + +// ChainLedgerBin is the compiled bytecode used for deploying new contracts. +const ChainLedgerBin = `0x608060405260008054600160a060020a031916331790556108e6806100256000396000f3006080604052600436106100c45763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e81146100c9578063349c870c146100fe5780634892f0af14610125578063523934bb14610156578063550325b5146101835780635561c0e2146101b85780635771d9d6146101dd57806379ba5097146101ff57806385aa6103146102145780638da5cb5b14610229578063cccb2fad1461023e578063d4ee1d9014610272578063f203af2614610287575b600080fd5b3480156100d557600080fd5b506100ea600160a060020a03600435166102b2565b604080519115158252519081900360200190f35b34801561010a57600080fd5b506100ea600160a060020a0360043581169060243516610315565b34801561013157600080fd5b5061013a610396565b60408051600160a060020a039092168252519081900360200190f35b34801561016257600080fd5b50610181600160c060020a0319600435811690602435166044356103a5565b005b34801561018f57600080fd5b5061019b600435610506565b60408051600160c060020a03199092168252519081900360200190f35b3480156101c457600080fd5b506100ea600160c060020a031960043516602435610553565b3480156101e957600080fd5b506100ea600160c060020a031960043516610678565b34801561020b57600080fd5b506100ea61068d565b34801561022057600080fd5b5061013a610718565b34801561023557600080fd5b5061013a610727565b34801561024a57600080fd5b50610260600160c060020a031960043516610736565b60408051918252519081900360200190f35b34801561027e57600080fd5b5061013a610748565b34801561029357600080fd5b50610181600160c060020a031960043581169060243516604435610757565b60008054600160a060020a031633146102ca57600080fd5b600054600160a060020a03838116911614156102e557600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b60008054600160a060020a0316331461032d57600080fd5b600160a060020a038316151561034257600080fd5b600160a060020a038216151561035757600080fd5b5060058054600160a060020a0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560068054929093169116179055600190565b600554600160a060020a031681565b600554600160a060020a03163314806103c85750600054600160a060020a031633145b15156103d357600080fd5b600160c060020a0319831660009081526003602052604090205460ff1680156104155750600160c060020a0319821660009081526003602052604090205460ff165b151561042057600080fd5b600160c060020a0319831660009081526002602052604090205481111561044657600080fd5b600160c060020a03198316600090815260026020526040902054610470908263ffffffff61089216565b600160c060020a031980851660009081526002602052604080822093909355908416815220546104a6908263ffffffff6108a416565b600160c060020a0319808416600081815260026020908152604091829020949094558051858152905191939287169233927f0763bf2722a678e196d0c699686d20e22be9a1da0280df927010a5f60cfddef59281900390910190a4505050565b600480548290811061051457fe5b9060005260206000209060049182820401919006600802915054906101000a900478010000000000000000000000000000000000000000000000000281565b60008054600160a060020a0316331461056b57600080fd5b600160c060020a0319831660009081526003602052604090205460ff161561059257600080fd5b600160c060020a0319831660008181526003602081815260408084208054600160ff1990911681179091556004805480830182557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b91810491909101805467ffffffffffffffff929096166008026101000a9182021990951678010000000000000000000000000000000000000000000000008b0491909102179093556002825292839020869055825186815290810191909152815133927f50dd74f752603795f9a9b4eaef37b80677973850caa974915952a660c4ae78e5928290030190a392915050565b60036020526000908152604090205460ff1681565b600154600090600160a060020a031633146106a757600080fd5b60015460008054604051600160a060020a0393841693909116917f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b91a350600180546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905590565b600654600160a060020a031681565b600054600160a060020a031681565b60026020526000908152604090205481565b600154600160a060020a031681565b600554600160a060020a031633148061077a5750600054600160a060020a031633145b151561078557600080fd5b600160c060020a0319831660009081526003602052604090205460ff1680156107c75750600160c060020a0319821660009081526003602052604090205460ff165b15156107d257600080fd5b600160c060020a031983166000908152600260205260409020546107fc908263ffffffff61089216565b600160c060020a03198085166000908152600260205260408082209390935590841681522054610832908263ffffffff6108a416565b600160c060020a0319808416600081815260026020908152604091829020949094558051858152905191939287169233927f3ff68f27697ca7670c377900885b6a96a485952554cfd3548419d43928c7aa2b9281900390910190a4505050565b60008282111561089e57fe5b50900390565b6000828201838110156108b357fe5b93925050505600a165627a7a7230582013db65e76bb71bc7b658c8b6ee734ea6f271ae3baec94ad9ce9200d59f10334e0029` + +// DeployChainLedger deploys a new Ethereum contract, binding an instance of ChainLedger to it. +func DeployChainLedger(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ChainLedger, error) { + parsed, err := abi.JSON(strings.NewReader(ChainLedgerABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ChainLedgerBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ChainLedger{ChainLedgerCaller: ChainLedgerCaller{contract: contract}, ChainLedgerTransactor: ChainLedgerTransactor{contract: contract}, ChainLedgerFilterer: ChainLedgerFilterer{contract: contract}}, nil +} + +// ChainLedger is an auto generated Go binding around an Ethereum contract. +type ChainLedger struct { + ChainLedgerCaller // Read-only binding to the contract + ChainLedgerTransactor // Write-only binding to the contract + ChainLedgerFilterer // Log filterer for contract events +} + +// ChainLedgerCaller is an auto generated read-only Go binding around an Ethereum contract. +type ChainLedgerCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ChainLedgerTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ChainLedgerTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ChainLedgerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ChainLedgerFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ChainLedgerSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ChainLedgerSession struct { + Contract *ChainLedger // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ChainLedgerCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ChainLedgerCallerSession struct { + Contract *ChainLedgerCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ChainLedgerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ChainLedgerTransactorSession struct { + Contract *ChainLedgerTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ChainLedgerRaw is an auto generated low-level Go binding around an Ethereum contract. +type ChainLedgerRaw struct { + Contract *ChainLedger // Generic contract binding to access the raw methods on +} + +// ChainLedgerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ChainLedgerCallerRaw struct { + Contract *ChainLedgerCaller // Generic read-only contract binding to access the raw methods on +} + +// ChainLedgerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ChainLedgerTransactorRaw struct { + Contract *ChainLedgerTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewChainLedger creates a new instance of ChainLedger, bound to a specific deployed contract. +func NewChainLedger(address common.Address, backend bind.ContractBackend) (*ChainLedger, error) { + contract, err := bindChainLedger(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ChainLedger{ChainLedgerCaller: ChainLedgerCaller{contract: contract}, ChainLedgerTransactor: ChainLedgerTransactor{contract: contract}, ChainLedgerFilterer: ChainLedgerFilterer{contract: contract}}, nil +} + +// NewChainLedgerCaller creates a new read-only instance of ChainLedger, bound to a specific deployed contract. +func NewChainLedgerCaller(address common.Address, caller bind.ContractCaller) (*ChainLedgerCaller, error) { + contract, err := bindChainLedger(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ChainLedgerCaller{contract: contract}, nil +} + +// NewChainLedgerTransactor creates a new write-only instance of ChainLedger, bound to a specific deployed contract. +func NewChainLedgerTransactor(address common.Address, transactor bind.ContractTransactor) (*ChainLedgerTransactor, error) { + contract, err := bindChainLedger(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ChainLedgerTransactor{contract: contract}, nil +} + +// NewChainLedgerFilterer creates a new log filterer instance of ChainLedger, bound to a specific deployed contract. +func NewChainLedgerFilterer(address common.Address, filterer bind.ContractFilterer) (*ChainLedgerFilterer, error) { + contract, err := bindChainLedger(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ChainLedgerFilterer{contract: contract}, nil +} + +// bindChainLedger binds a generic wrapper to an already deployed contract. +func bindChainLedger(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(ChainLedgerABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ChainLedger *ChainLedgerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _ChainLedger.Contract.ChainLedgerCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ChainLedger *ChainLedgerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ChainLedger.Contract.ChainLedgerTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ChainLedger *ChainLedgerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ChainLedger.Contract.ChainLedgerTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ChainLedger *ChainLedgerCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _ChainLedger.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ChainLedger *ChainLedgerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ChainLedger.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ChainLedger *ChainLedgerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ChainLedger.Contract.contract.Transact(opts, method, params...) +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_ChainLedger *ChainLedgerCaller) Auctions(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _ChainLedger.contract.Call(opts, out, "auctions") + return *ret0, err +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_ChainLedger *ChainLedgerSession) Auctions() (common.Address, error) { + return _ChainLedger.Contract.Auctions(&_ChainLedger.CallOpts) +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_ChainLedger *ChainLedgerCallerSession) Auctions() (common.Address, error) { + return _ChainLedger.Contract.Auctions(&_ChainLedger.CallOpts) +} + +// Balance is a free data retrieval call binding the contract method 0xcccb2fad. +// +// Solidity: function balance( bytes8) constant returns(uint256) +func (_ChainLedger *ChainLedgerCaller) Balance(opts *bind.CallOpts, arg0 [8]byte) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _ChainLedger.contract.Call(opts, out, "balance", arg0) + return *ret0, err +} + +// Balance is a free data retrieval call binding the contract method 0xcccb2fad. +// +// Solidity: function balance( bytes8) constant returns(uint256) +func (_ChainLedger *ChainLedgerSession) Balance(arg0 [8]byte) (*big.Int, error) { + return _ChainLedger.Contract.Balance(&_ChainLedger.CallOpts, arg0) +} + +// Balance is a free data retrieval call binding the contract method 0xcccb2fad. +// +// Solidity: function balance( bytes8) constant returns(uint256) +func (_ChainLedger *ChainLedgerCallerSession) Balance(arg0 [8]byte) (*big.Int, error) { + return _ChainLedger.Contract.Balance(&_ChainLedger.CallOpts, arg0) +} + +// Chains is a free data retrieval call binding the contract method 0x550325b5. +// +// Solidity: function chains( uint256) constant returns(bytes8) +func (_ChainLedger *ChainLedgerCaller) Chains(opts *bind.CallOpts, arg0 *big.Int) ([8]byte, error) { + var ( + ret0 = new([8]byte) + ) + out := ret0 + err := _ChainLedger.contract.Call(opts, out, "chains", arg0) + return *ret0, err +} + +// Chains is a free data retrieval call binding the contract method 0x550325b5. +// +// Solidity: function chains( uint256) constant returns(bytes8) +func (_ChainLedger *ChainLedgerSession) Chains(arg0 *big.Int) ([8]byte, error) { + return _ChainLedger.Contract.Chains(&_ChainLedger.CallOpts, arg0) +} + +// Chains is a free data retrieval call binding the contract method 0x550325b5. +// +// Solidity: function chains( uint256) constant returns(bytes8) +func (_ChainLedger *ChainLedgerCallerSession) Chains(arg0 *big.Int) ([8]byte, error) { + return _ChainLedger.Contract.Chains(&_ChainLedger.CallOpts, arg0) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_ChainLedger *ChainLedgerCaller) NewOwner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _ChainLedger.contract.Call(opts, out, "newOwner") + return *ret0, err +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_ChainLedger *ChainLedgerSession) NewOwner() (common.Address, error) { + return _ChainLedger.Contract.NewOwner(&_ChainLedger.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_ChainLedger *ChainLedgerCallerSession) NewOwner() (common.Address, error) { + return _ChainLedger.Contract.NewOwner(&_ChainLedger.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_ChainLedger *ChainLedgerCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _ChainLedger.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_ChainLedger *ChainLedgerSession) Owner() (common.Address, error) { + return _ChainLedger.Contract.Owner(&_ChainLedger.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_ChainLedger *ChainLedgerCallerSession) Owner() (common.Address, error) { + return _ChainLedger.Contract.Owner(&_ChainLedger.CallOpts) +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_ChainLedger *ChainLedgerCaller) TokenPorter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _ChainLedger.contract.Call(opts, out, "tokenPorter") + return *ret0, err +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_ChainLedger *ChainLedgerSession) TokenPorter() (common.Address, error) { + return _ChainLedger.Contract.TokenPorter(&_ChainLedger.CallOpts) +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_ChainLedger *ChainLedgerCallerSession) TokenPorter() (common.Address, error) { + return _ChainLedger.Contract.TokenPorter(&_ChainLedger.CallOpts) +} + +// ValidChain is a free data retrieval call binding the contract method 0x5771d9d6. +// +// Solidity: function validChain( bytes8) constant returns(bool) +func (_ChainLedger *ChainLedgerCaller) ValidChain(opts *bind.CallOpts, arg0 [8]byte) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _ChainLedger.contract.Call(opts, out, "validChain", arg0) + return *ret0, err +} + +// ValidChain is a free data retrieval call binding the contract method 0x5771d9d6. +// +// Solidity: function validChain( bytes8) constant returns(bool) +func (_ChainLedger *ChainLedgerSession) ValidChain(arg0 [8]byte) (bool, error) { + return _ChainLedger.Contract.ValidChain(&_ChainLedger.CallOpts, arg0) +} + +// ValidChain is a free data retrieval call binding the contract method 0x5771d9d6. +// +// Solidity: function validChain( bytes8) constant returns(bool) +func (_ChainLedger *ChainLedgerCallerSession) ValidChain(arg0 [8]byte) (bool, error) { + return _ChainLedger.Contract.ValidChain(&_ChainLedger.CallOpts, arg0) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_ChainLedger *ChainLedgerTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ChainLedger.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_ChainLedger *ChainLedgerSession) AcceptOwnership() (*types.Transaction, error) { + return _ChainLedger.Contract.AcceptOwnership(&_ChainLedger.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_ChainLedger *ChainLedgerTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _ChainLedger.Contract.AcceptOwnership(&_ChainLedger.TransactOpts) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_ChainLedger *ChainLedgerTransactor) ChangeOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) { + return _ChainLedger.contract.Transact(opts, "changeOwnership", _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_ChainLedger *ChainLedgerSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _ChainLedger.Contract.ChangeOwnership(&_ChainLedger.TransactOpts, _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_ChainLedger *ChainLedgerTransactorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _ChainLedger.Contract.ChangeOwnership(&_ChainLedger.TransactOpts, _newOwner) +} + +// InitChainLedger is a paid mutator transaction binding the contract method 0x349c870c. +// +// Solidity: function initChainLedger(_tokenPorter address, _auctionsAddr address) returns(bool) +func (_ChainLedger *ChainLedgerTransactor) InitChainLedger(opts *bind.TransactOpts, _tokenPorter common.Address, _auctionsAddr common.Address) (*types.Transaction, error) { + return _ChainLedger.contract.Transact(opts, "initChainLedger", _tokenPorter, _auctionsAddr) +} + +// InitChainLedger is a paid mutator transaction binding the contract method 0x349c870c. +// +// Solidity: function initChainLedger(_tokenPorter address, _auctionsAddr address) returns(bool) +func (_ChainLedger *ChainLedgerSession) InitChainLedger(_tokenPorter common.Address, _auctionsAddr common.Address) (*types.Transaction, error) { + return _ChainLedger.Contract.InitChainLedger(&_ChainLedger.TransactOpts, _tokenPorter, _auctionsAddr) +} + +// InitChainLedger is a paid mutator transaction binding the contract method 0x349c870c. +// +// Solidity: function initChainLedger(_tokenPorter address, _auctionsAddr address) returns(bool) +func (_ChainLedger *ChainLedgerTransactorSession) InitChainLedger(_tokenPorter common.Address, _auctionsAddr common.Address) (*types.Transaction, error) { + return _ChainLedger.Contract.InitChainLedger(&_ChainLedger.TransactOpts, _tokenPorter, _auctionsAddr) +} + +// RegisterChain is a paid mutator transaction binding the contract method 0x5561c0e2. +// +// Solidity: function registerChain(chain bytes8, supply uint256) returns(bool) +func (_ChainLedger *ChainLedgerTransactor) RegisterChain(opts *bind.TransactOpts, chain [8]byte, supply *big.Int) (*types.Transaction, error) { + return _ChainLedger.contract.Transact(opts, "registerChain", chain, supply) +} + +// RegisterChain is a paid mutator transaction binding the contract method 0x5561c0e2. +// +// Solidity: function registerChain(chain bytes8, supply uint256) returns(bool) +func (_ChainLedger *ChainLedgerSession) RegisterChain(chain [8]byte, supply *big.Int) (*types.Transaction, error) { + return _ChainLedger.Contract.RegisterChain(&_ChainLedger.TransactOpts, chain, supply) +} + +// RegisterChain is a paid mutator transaction binding the contract method 0x5561c0e2. +// +// Solidity: function registerChain(chain bytes8, supply uint256) returns(bool) +func (_ChainLedger *ChainLedgerTransactorSession) RegisterChain(chain [8]byte, supply *big.Int) (*types.Transaction, error) { + return _ChainLedger.Contract.RegisterChain(&_ChainLedger.TransactOpts, chain, supply) +} + +// RegisterExport is a paid mutator transaction binding the contract method 0x523934bb. +// +// Solidity: function registerExport(originChain bytes8, destChain bytes8, amount uint256) returns() +func (_ChainLedger *ChainLedgerTransactor) RegisterExport(opts *bind.TransactOpts, originChain [8]byte, destChain [8]byte, amount *big.Int) (*types.Transaction, error) { + return _ChainLedger.contract.Transact(opts, "registerExport", originChain, destChain, amount) +} + +// RegisterExport is a paid mutator transaction binding the contract method 0x523934bb. +// +// Solidity: function registerExport(originChain bytes8, destChain bytes8, amount uint256) returns() +func (_ChainLedger *ChainLedgerSession) RegisterExport(originChain [8]byte, destChain [8]byte, amount *big.Int) (*types.Transaction, error) { + return _ChainLedger.Contract.RegisterExport(&_ChainLedger.TransactOpts, originChain, destChain, amount) +} + +// RegisterExport is a paid mutator transaction binding the contract method 0x523934bb. +// +// Solidity: function registerExport(originChain bytes8, destChain bytes8, amount uint256) returns() +func (_ChainLedger *ChainLedgerTransactorSession) RegisterExport(originChain [8]byte, destChain [8]byte, amount *big.Int) (*types.Transaction, error) { + return _ChainLedger.Contract.RegisterExport(&_ChainLedger.TransactOpts, originChain, destChain, amount) +} + +// RegisterImport is a paid mutator transaction binding the contract method 0xf203af26. +// +// Solidity: function registerImport(originChain bytes8, destChain bytes8, amount uint256) returns() +func (_ChainLedger *ChainLedgerTransactor) RegisterImport(opts *bind.TransactOpts, originChain [8]byte, destChain [8]byte, amount *big.Int) (*types.Transaction, error) { + return _ChainLedger.contract.Transact(opts, "registerImport", originChain, destChain, amount) +} + +// RegisterImport is a paid mutator transaction binding the contract method 0xf203af26. +// +// Solidity: function registerImport(originChain bytes8, destChain bytes8, amount uint256) returns() +func (_ChainLedger *ChainLedgerSession) RegisterImport(originChain [8]byte, destChain [8]byte, amount *big.Int) (*types.Transaction, error) { + return _ChainLedger.Contract.RegisterImport(&_ChainLedger.TransactOpts, originChain, destChain, amount) +} + +// RegisterImport is a paid mutator transaction binding the contract method 0xf203af26. +// +// Solidity: function registerImport(originChain bytes8, destChain bytes8, amount uint256) returns() +func (_ChainLedger *ChainLedgerTransactorSession) RegisterImport(originChain [8]byte, destChain [8]byte, amount *big.Int) (*types.Transaction, error) { + return _ChainLedger.Contract.RegisterImport(&_ChainLedger.TransactOpts, originChain, destChain, amount) +} + +// ChainLedgerLogRegisterChainIterator is returned from FilterLogRegisterChain and is used to iterate over the raw logs and unpacked data for LogRegisterChain events raised by the ChainLedger contract. +type ChainLedgerLogRegisterChainIterator struct { + Event *ChainLedgerLogRegisterChain // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ChainLedgerLogRegisterChainIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ChainLedgerLogRegisterChain) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ChainLedgerLogRegisterChain) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ChainLedgerLogRegisterChainIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ChainLedgerLogRegisterChainIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ChainLedgerLogRegisterChain represents a LogRegisterChain event raised by the ChainLedger contract. +type ChainLedgerLogRegisterChain struct { + Caller common.Address + Chain [8]byte + Supply *big.Int + Outcome bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogRegisterChain is a free log retrieval operation binding the contract event 0x50dd74f752603795f9a9b4eaef37b80677973850caa974915952a660c4ae78e5. +// +// Solidity: e LogRegisterChain(caller indexed address, chain indexed bytes8, supply uint256, outcome bool) +func (_ChainLedger *ChainLedgerFilterer) FilterLogRegisterChain(opts *bind.FilterOpts, caller []common.Address, chain [][8]byte) (*ChainLedgerLogRegisterChainIterator, error) { + + var callerRule []interface{} + for _, callerItem := range caller { + callerRule = append(callerRule, callerItem) + } + var chainRule []interface{} + for _, chainItem := range chain { + chainRule = append(chainRule, chainItem) + } + + logs, sub, err := _ChainLedger.contract.FilterLogs(opts, "LogRegisterChain", callerRule, chainRule) + if err != nil { + return nil, err + } + return &ChainLedgerLogRegisterChainIterator{contract: _ChainLedger.contract, event: "LogRegisterChain", logs: logs, sub: sub}, nil +} + +// WatchLogRegisterChain is a free log subscription operation binding the contract event 0x50dd74f752603795f9a9b4eaef37b80677973850caa974915952a660c4ae78e5. +// +// Solidity: e LogRegisterChain(caller indexed address, chain indexed bytes8, supply uint256, outcome bool) +func (_ChainLedger *ChainLedgerFilterer) WatchLogRegisterChain(opts *bind.WatchOpts, sink chan<- *ChainLedgerLogRegisterChain, caller []common.Address, chain [][8]byte) (event.Subscription, error) { + + var callerRule []interface{} + for _, callerItem := range caller { + callerRule = append(callerRule, callerItem) + } + var chainRule []interface{} + for _, chainItem := range chain { + chainRule = append(chainRule, chainItem) + } + + logs, sub, err := _ChainLedger.contract.WatchLogs(opts, "LogRegisterChain", callerRule, chainRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ChainLedgerLogRegisterChain) + if err := _ChainLedger.contract.UnpackLog(event, "LogRegisterChain", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ChainLedgerLogRegisterExportIterator is returned from FilterLogRegisterExport and is used to iterate over the raw logs and unpacked data for LogRegisterExport events raised by the ChainLedger contract. +type ChainLedgerLogRegisterExportIterator struct { + Event *ChainLedgerLogRegisterExport // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ChainLedgerLogRegisterExportIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ChainLedgerLogRegisterExport) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ChainLedgerLogRegisterExport) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ChainLedgerLogRegisterExportIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ChainLedgerLogRegisterExportIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ChainLedgerLogRegisterExport represents a LogRegisterExport event raised by the ChainLedger contract. +type ChainLedgerLogRegisterExport struct { + Caller common.Address + OriginChain [8]byte + DestChain [8]byte + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogRegisterExport is a free log retrieval operation binding the contract event 0x0763bf2722a678e196d0c699686d20e22be9a1da0280df927010a5f60cfddef5. +// +// Solidity: e LogRegisterExport(caller indexed address, originChain indexed bytes8, destChain indexed bytes8, amount uint256) +func (_ChainLedger *ChainLedgerFilterer) FilterLogRegisterExport(opts *bind.FilterOpts, caller []common.Address, originChain [][8]byte, destChain [][8]byte) (*ChainLedgerLogRegisterExportIterator, error) { + + var callerRule []interface{} + for _, callerItem := range caller { + callerRule = append(callerRule, callerItem) + } + var originChainRule []interface{} + for _, originChainItem := range originChain { + originChainRule = append(originChainRule, originChainItem) + } + var destChainRule []interface{} + for _, destChainItem := range destChain { + destChainRule = append(destChainRule, destChainItem) + } + + logs, sub, err := _ChainLedger.contract.FilterLogs(opts, "LogRegisterExport", callerRule, originChainRule, destChainRule) + if err != nil { + return nil, err + } + return &ChainLedgerLogRegisterExportIterator{contract: _ChainLedger.contract, event: "LogRegisterExport", logs: logs, sub: sub}, nil +} + +// WatchLogRegisterExport is a free log subscription operation binding the contract event 0x0763bf2722a678e196d0c699686d20e22be9a1da0280df927010a5f60cfddef5. +// +// Solidity: e LogRegisterExport(caller indexed address, originChain indexed bytes8, destChain indexed bytes8, amount uint256) +func (_ChainLedger *ChainLedgerFilterer) WatchLogRegisterExport(opts *bind.WatchOpts, sink chan<- *ChainLedgerLogRegisterExport, caller []common.Address, originChain [][8]byte, destChain [][8]byte) (event.Subscription, error) { + + var callerRule []interface{} + for _, callerItem := range caller { + callerRule = append(callerRule, callerItem) + } + var originChainRule []interface{} + for _, originChainItem := range originChain { + originChainRule = append(originChainRule, originChainItem) + } + var destChainRule []interface{} + for _, destChainItem := range destChain { + destChainRule = append(destChainRule, destChainItem) + } + + logs, sub, err := _ChainLedger.contract.WatchLogs(opts, "LogRegisterExport", callerRule, originChainRule, destChainRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ChainLedgerLogRegisterExport) + if err := _ChainLedger.contract.UnpackLog(event, "LogRegisterExport", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ChainLedgerLogRegisterImportIterator is returned from FilterLogRegisterImport and is used to iterate over the raw logs and unpacked data for LogRegisterImport events raised by the ChainLedger contract. +type ChainLedgerLogRegisterImportIterator struct { + Event *ChainLedgerLogRegisterImport // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ChainLedgerLogRegisterImportIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ChainLedgerLogRegisterImport) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ChainLedgerLogRegisterImport) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ChainLedgerLogRegisterImportIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ChainLedgerLogRegisterImportIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ChainLedgerLogRegisterImport represents a LogRegisterImport event raised by the ChainLedger contract. +type ChainLedgerLogRegisterImport struct { + Caller common.Address + OriginChain [8]byte + DestChain [8]byte + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogRegisterImport is a free log retrieval operation binding the contract event 0x3ff68f27697ca7670c377900885b6a96a485952554cfd3548419d43928c7aa2b. +// +// Solidity: e LogRegisterImport(caller indexed address, originChain indexed bytes8, destChain indexed bytes8, amount uint256) +func (_ChainLedger *ChainLedgerFilterer) FilterLogRegisterImport(opts *bind.FilterOpts, caller []common.Address, originChain [][8]byte, destChain [][8]byte) (*ChainLedgerLogRegisterImportIterator, error) { + + var callerRule []interface{} + for _, callerItem := range caller { + callerRule = append(callerRule, callerItem) + } + var originChainRule []interface{} + for _, originChainItem := range originChain { + originChainRule = append(originChainRule, originChainItem) + } + var destChainRule []interface{} + for _, destChainItem := range destChain { + destChainRule = append(destChainRule, destChainItem) + } + + logs, sub, err := _ChainLedger.contract.FilterLogs(opts, "LogRegisterImport", callerRule, originChainRule, destChainRule) + if err != nil { + return nil, err + } + return &ChainLedgerLogRegisterImportIterator{contract: _ChainLedger.contract, event: "LogRegisterImport", logs: logs, sub: sub}, nil +} + +// WatchLogRegisterImport is a free log subscription operation binding the contract event 0x3ff68f27697ca7670c377900885b6a96a485952554cfd3548419d43928c7aa2b. +// +// Solidity: e LogRegisterImport(caller indexed address, originChain indexed bytes8, destChain indexed bytes8, amount uint256) +func (_ChainLedger *ChainLedgerFilterer) WatchLogRegisterImport(opts *bind.WatchOpts, sink chan<- *ChainLedgerLogRegisterImport, caller []common.Address, originChain [][8]byte, destChain [][8]byte) (event.Subscription, error) { + + var callerRule []interface{} + for _, callerItem := range caller { + callerRule = append(callerRule, callerItem) + } + var originChainRule []interface{} + for _, originChainItem := range originChain { + originChainRule = append(originChainRule, originChainItem) + } + var destChainRule []interface{} + for _, destChainItem := range destChain { + destChainRule = append(destChainRule, destChainItem) + } + + logs, sub, err := _ChainLedger.contract.WatchLogs(opts, "LogRegisterImport", callerRule, originChainRule, destChainRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ChainLedgerLogRegisterImport) + if err := _ChainLedger.contract.UnpackLog(event, "LogRegisterImport", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ChainLedgerOwnershipChangedIterator is returned from FilterOwnershipChanged and is used to iterate over the raw logs and unpacked data for OwnershipChanged events raised by the ChainLedger contract. +type ChainLedgerOwnershipChangedIterator struct { + Event *ChainLedgerOwnershipChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ChainLedgerOwnershipChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ChainLedgerOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ChainLedgerOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ChainLedgerOwnershipChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ChainLedgerOwnershipChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ChainLedgerOwnershipChanged represents a OwnershipChanged event raised by the ChainLedger contract. +type ChainLedgerOwnershipChanged struct { + PrevOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipChanged is a free log retrieval operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_ChainLedger *ChainLedgerFilterer) FilterOwnershipChanged(opts *bind.FilterOpts, prevOwner []common.Address, newOwner []common.Address) (*ChainLedgerOwnershipChangedIterator, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _ChainLedger.contract.FilterLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &ChainLedgerOwnershipChangedIterator{contract: _ChainLedger.contract, event: "OwnershipChanged", logs: logs, sub: sub}, nil +} + +// WatchOwnershipChanged is a free log subscription operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_ChainLedger *ChainLedgerFilterer) WatchOwnershipChanged(opts *bind.WatchOpts, sink chan<- *ChainLedgerOwnershipChanged, prevOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _ChainLedger.contract.WatchLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ChainLedgerOwnershipChanged) + if err := _ChainLedger.contract.UnpackLog(event, "OwnershipChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ERC20ABI is the input ABI used to generate the binding from. +const ERC20ABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}]" + +// ERC20Bin is the compiled bytecode used for deploying new contracts. +const ERC20Bin = `0x` + +// DeployERC20 deploys a new Ethereum contract, binding an instance of ERC20 to it. +func DeployERC20(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ERC20, error) { + parsed, err := abi.JSON(strings.NewReader(ERC20ABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ERC20Bin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ERC20{ERC20Caller: ERC20Caller{contract: contract}, ERC20Transactor: ERC20Transactor{contract: contract}, ERC20Filterer: ERC20Filterer{contract: contract}}, nil +} + +// ERC20 is an auto generated Go binding around an Ethereum contract. +type ERC20 struct { + ERC20Caller // Read-only binding to the contract + ERC20Transactor // Write-only binding to the contract + ERC20Filterer // Log filterer for contract events +} + +// ERC20Caller is an auto generated read-only Go binding around an Ethereum contract. +type ERC20Caller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20Transactor is an auto generated write-only Go binding around an Ethereum contract. +type ERC20Transactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20Filterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ERC20Filterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ERC20Session is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ERC20Session struct { + Contract *ERC20 // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC20CallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ERC20CallerSession struct { + Contract *ERC20Caller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ERC20TransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ERC20TransactorSession struct { + Contract *ERC20Transactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ERC20Raw is an auto generated low-level Go binding around an Ethereum contract. +type ERC20Raw struct { + Contract *ERC20 // Generic contract binding to access the raw methods on +} + +// ERC20CallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ERC20CallerRaw struct { + Contract *ERC20Caller // Generic read-only contract binding to access the raw methods on +} + +// ERC20TransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ERC20TransactorRaw struct { + Contract *ERC20Transactor // Generic write-only contract binding to access the raw methods on +} + +// NewERC20 creates a new instance of ERC20, bound to a specific deployed contract. +func NewERC20(address common.Address, backend bind.ContractBackend) (*ERC20, error) { + contract, err := bindERC20(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ERC20{ERC20Caller: ERC20Caller{contract: contract}, ERC20Transactor: ERC20Transactor{contract: contract}, ERC20Filterer: ERC20Filterer{contract: contract}}, nil +} + +// NewERC20Caller creates a new read-only instance of ERC20, bound to a specific deployed contract. +func NewERC20Caller(address common.Address, caller bind.ContractCaller) (*ERC20Caller, error) { + contract, err := bindERC20(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ERC20Caller{contract: contract}, nil +} + +// NewERC20Transactor creates a new write-only instance of ERC20, bound to a specific deployed contract. +func NewERC20Transactor(address common.Address, transactor bind.ContractTransactor) (*ERC20Transactor, error) { + contract, err := bindERC20(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ERC20Transactor{contract: contract}, nil +} + +// NewERC20Filterer creates a new log filterer instance of ERC20, bound to a specific deployed contract. +func NewERC20Filterer(address common.Address, filterer bind.ContractFilterer) (*ERC20Filterer, error) { + contract, err := bindERC20(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ERC20Filterer{contract: contract}, nil +} + +// bindERC20 binds a generic wrapper to an already deployed contract. +func bindERC20(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(ERC20ABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC20 *ERC20Raw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _ERC20.Contract.ERC20Caller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC20 *ERC20Raw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20.Contract.ERC20Transactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20 *ERC20Raw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20.Contract.ERC20Transactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ERC20 *ERC20CallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _ERC20.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ERC20 *ERC20TransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ERC20.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ERC20 *ERC20TransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ERC20.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(_owner address, _spender address) constant returns(uint256) +func (_ERC20 *ERC20Caller) Allowance(opts *bind.CallOpts, _owner common.Address, _spender common.Address) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _ERC20.contract.Call(opts, out, "allowance", _owner, _spender) + return *ret0, err +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(_owner address, _spender address) constant returns(uint256) +func (_ERC20 *ERC20Session) Allowance(_owner common.Address, _spender common.Address) (*big.Int, error) { + return _ERC20.Contract.Allowance(&_ERC20.CallOpts, _owner, _spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(_owner address, _spender address) constant returns(uint256) +func (_ERC20 *ERC20CallerSession) Allowance(_owner common.Address, _spender common.Address) (*big.Int, error) { + return _ERC20.Contract.Allowance(&_ERC20.CallOpts, _owner, _spender) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_ERC20 *ERC20Caller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _ERC20.contract.Call(opts, out, "balanceOf", _owner) + return *ret0, err +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_ERC20 *ERC20Session) BalanceOf(_owner common.Address) (*big.Int, error) { + return _ERC20.Contract.BalanceOf(&_ERC20.CallOpts, _owner) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_ERC20 *ERC20CallerSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _ERC20.Contract.BalanceOf(&_ERC20.CallOpts, _owner) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_ERC20 *ERC20Caller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _ERC20.contract.Call(opts, out, "totalSupply") + return *ret0, err +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_ERC20 *ERC20Session) TotalSupply() (*big.Int, error) { + return _ERC20.Contract.TotalSupply(&_ERC20.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_ERC20 *ERC20CallerSession) TotalSupply() (*big.Int, error) { + return _ERC20.Contract.TotalSupply(&_ERC20.CallOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(_spender address, _value uint256) returns(bool) +func (_ERC20 *ERC20Transactor) Approve(opts *bind.TransactOpts, _spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _ERC20.contract.Transact(opts, "approve", _spender, _value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(_spender address, _value uint256) returns(bool) +func (_ERC20 *ERC20Session) Approve(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.Approve(&_ERC20.TransactOpts, _spender, _value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(_spender address, _value uint256) returns(bool) +func (_ERC20 *ERC20TransactorSession) Approve(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.Approve(&_ERC20.TransactOpts, _spender, _value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(_to address, _value uint256) returns(bool) +func (_ERC20 *ERC20Transactor) Transfer(opts *bind.TransactOpts, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _ERC20.contract.Transact(opts, "transfer", _to, _value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(_to address, _value uint256) returns(bool) +func (_ERC20 *ERC20Session) Transfer(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.Transfer(&_ERC20.TransactOpts, _to, _value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(_to address, _value uint256) returns(bool) +func (_ERC20 *ERC20TransactorSession) Transfer(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.Transfer(&_ERC20.TransactOpts, _to, _value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(_from address, _to address, _value uint256) returns(bool) +func (_ERC20 *ERC20Transactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _ERC20.contract.Transact(opts, "transferFrom", _from, _to, _value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(_from address, _to address, _value uint256) returns(bool) +func (_ERC20 *ERC20Session) TransferFrom(_from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.TransferFrom(&_ERC20.TransactOpts, _from, _to, _value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(_from address, _to address, _value uint256) returns(bool) +func (_ERC20 *ERC20TransactorSession) TransferFrom(_from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _ERC20.Contract.TransferFrom(&_ERC20.TransactOpts, _from, _to, _value) +} + +// ERC20ApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the ERC20 contract. +type ERC20ApprovalIterator struct { + Event *ERC20Approval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20ApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20Approval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20ApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20ApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20Approval represents a Approval event raised by the ERC20 contract. +type ERC20Approval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: e Approval(_owner indexed address, _spender indexed address, _value uint256) +func (_ERC20 *ERC20Filterer) FilterApproval(opts *bind.FilterOpts, _owner []common.Address, _spender []common.Address) (*ERC20ApprovalIterator, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _spenderRule []interface{} + for _, _spenderItem := range _spender { + _spenderRule = append(_spenderRule, _spenderItem) + } + + logs, sub, err := _ERC20.contract.FilterLogs(opts, "Approval", _ownerRule, _spenderRule) + if err != nil { + return nil, err + } + return &ERC20ApprovalIterator{contract: _ERC20.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: e Approval(_owner indexed address, _spender indexed address, _value uint256) +func (_ERC20 *ERC20Filterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *ERC20Approval, _owner []common.Address, _spender []common.Address) (event.Subscription, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _spenderRule []interface{} + for _, _spenderItem := range _spender { + _spenderRule = append(_spenderRule, _spenderItem) + } + + logs, sub, err := _ERC20.contract.WatchLogs(opts, "Approval", _ownerRule, _spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20Approval) + if err := _ERC20.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ERC20TransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the ERC20 contract. +type ERC20TransferIterator struct { + Event *ERC20Transfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ERC20TransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ERC20Transfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ERC20TransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ERC20TransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ERC20Transfer represents a Transfer event raised by the ERC20 contract. +type ERC20Transfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: e Transfer(_from indexed address, _to indexed address, _value uint256) +func (_ERC20 *ERC20Filterer) FilterTransfer(opts *bind.FilterOpts, _from []common.Address, _to []common.Address) (*ERC20TransferIterator, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _ERC20.contract.FilterLogs(opts, "Transfer", _fromRule, _toRule) + if err != nil { + return nil, err + } + return &ERC20TransferIterator{contract: _ERC20.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: e Transfer(_from indexed address, _to indexed address, _value uint256) +func (_ERC20 *ERC20Filterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *ERC20Transfer, _from []common.Address, _to []common.Address) (event.Subscription, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _ERC20.contract.WatchLogs(opts, "Transfer", _fromRule, _toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ERC20Transfer) + if err := _ERC20.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// FixedMathABI is the input ABI used to generate the binding from. +const FixedMathABI = "[]" + +// FixedMathBin is the compiled bytecode used for deploying new contracts. +const FixedMathBin = `0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820e8c1f51f75d4dcabe9f104d51a5cfeb72f6236579067c3e78812302f15dd3af80029` + +// DeployFixedMath deploys a new Ethereum contract, binding an instance of FixedMath to it. +func DeployFixedMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *FixedMath, error) { + parsed, err := abi.JSON(strings.NewReader(FixedMathABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(FixedMathBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &FixedMath{FixedMathCaller: FixedMathCaller{contract: contract}, FixedMathTransactor: FixedMathTransactor{contract: contract}, FixedMathFilterer: FixedMathFilterer{contract: contract}}, nil +} + +// FixedMath is an auto generated Go binding around an Ethereum contract. +type FixedMath struct { + FixedMathCaller // Read-only binding to the contract + FixedMathTransactor // Write-only binding to the contract + FixedMathFilterer // Log filterer for contract events +} + +// FixedMathCaller is an auto generated read-only Go binding around an Ethereum contract. +type FixedMathCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// FixedMathTransactor is an auto generated write-only Go binding around an Ethereum contract. +type FixedMathTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// FixedMathFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type FixedMathFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// FixedMathSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type FixedMathSession struct { + Contract *FixedMath // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// FixedMathCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type FixedMathCallerSession struct { + Contract *FixedMathCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// FixedMathTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type FixedMathTransactorSession struct { + Contract *FixedMathTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// FixedMathRaw is an auto generated low-level Go binding around an Ethereum contract. +type FixedMathRaw struct { + Contract *FixedMath // Generic contract binding to access the raw methods on +} + +// FixedMathCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type FixedMathCallerRaw struct { + Contract *FixedMathCaller // Generic read-only contract binding to access the raw methods on +} + +// FixedMathTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type FixedMathTransactorRaw struct { + Contract *FixedMathTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewFixedMath creates a new instance of FixedMath, bound to a specific deployed contract. +func NewFixedMath(address common.Address, backend bind.ContractBackend) (*FixedMath, error) { + contract, err := bindFixedMath(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &FixedMath{FixedMathCaller: FixedMathCaller{contract: contract}, FixedMathTransactor: FixedMathTransactor{contract: contract}, FixedMathFilterer: FixedMathFilterer{contract: contract}}, nil +} + +// NewFixedMathCaller creates a new read-only instance of FixedMath, bound to a specific deployed contract. +func NewFixedMathCaller(address common.Address, caller bind.ContractCaller) (*FixedMathCaller, error) { + contract, err := bindFixedMath(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &FixedMathCaller{contract: contract}, nil +} + +// NewFixedMathTransactor creates a new write-only instance of FixedMath, bound to a specific deployed contract. +func NewFixedMathTransactor(address common.Address, transactor bind.ContractTransactor) (*FixedMathTransactor, error) { + contract, err := bindFixedMath(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &FixedMathTransactor{contract: contract}, nil +} + +// NewFixedMathFilterer creates a new log filterer instance of FixedMath, bound to a specific deployed contract. +func NewFixedMathFilterer(address common.Address, filterer bind.ContractFilterer) (*FixedMathFilterer, error) { + contract, err := bindFixedMath(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &FixedMathFilterer{contract: contract}, nil +} + +// bindFixedMath binds a generic wrapper to an already deployed contract. +func bindFixedMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(FixedMathABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_FixedMath *FixedMathRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _FixedMath.Contract.FixedMathCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_FixedMath *FixedMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _FixedMath.Contract.FixedMathTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_FixedMath *FixedMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _FixedMath.Contract.FixedMathTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_FixedMath *FixedMathCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _FixedMath.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_FixedMath *FixedMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _FixedMath.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_FixedMath *FixedMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _FixedMath.Contract.contract.Transact(opts, method, params...) +} + +// FormulaABI is the input ABI used to generate the binding from. +const FormulaABI = "[]" + +// FormulaBin is the compiled bytecode used for deploying new contracts. +const FormulaBin = `0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058204f7c43dce0e5625f531d60966da8c3646195736ae508de80fb44dd84bd1686430029` + +// DeployFormula deploys a new Ethereum contract, binding an instance of Formula to it. +func DeployFormula(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Formula, error) { + parsed, err := abi.JSON(strings.NewReader(FormulaABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(FormulaBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Formula{FormulaCaller: FormulaCaller{contract: contract}, FormulaTransactor: FormulaTransactor{contract: contract}, FormulaFilterer: FormulaFilterer{contract: contract}}, nil +} + +// Formula is an auto generated Go binding around an Ethereum contract. +type Formula struct { + FormulaCaller // Read-only binding to the contract + FormulaTransactor // Write-only binding to the contract + FormulaFilterer // Log filterer for contract events +} + +// FormulaCaller is an auto generated read-only Go binding around an Ethereum contract. +type FormulaCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// FormulaTransactor is an auto generated write-only Go binding around an Ethereum contract. +type FormulaTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// FormulaFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type FormulaFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// FormulaSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type FormulaSession struct { + Contract *Formula // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// FormulaCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type FormulaCallerSession struct { + Contract *FormulaCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// FormulaTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type FormulaTransactorSession struct { + Contract *FormulaTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// FormulaRaw is an auto generated low-level Go binding around an Ethereum contract. +type FormulaRaw struct { + Contract *Formula // Generic contract binding to access the raw methods on +} + +// FormulaCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type FormulaCallerRaw struct { + Contract *FormulaCaller // Generic read-only contract binding to access the raw methods on +} + +// FormulaTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type FormulaTransactorRaw struct { + Contract *FormulaTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewFormula creates a new instance of Formula, bound to a specific deployed contract. +func NewFormula(address common.Address, backend bind.ContractBackend) (*Formula, error) { + contract, err := bindFormula(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Formula{FormulaCaller: FormulaCaller{contract: contract}, FormulaTransactor: FormulaTransactor{contract: contract}, FormulaFilterer: FormulaFilterer{contract: contract}}, nil +} + +// NewFormulaCaller creates a new read-only instance of Formula, bound to a specific deployed contract. +func NewFormulaCaller(address common.Address, caller bind.ContractCaller) (*FormulaCaller, error) { + contract, err := bindFormula(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &FormulaCaller{contract: contract}, nil +} + +// NewFormulaTransactor creates a new write-only instance of Formula, bound to a specific deployed contract. +func NewFormulaTransactor(address common.Address, transactor bind.ContractTransactor) (*FormulaTransactor, error) { + contract, err := bindFormula(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &FormulaTransactor{contract: contract}, nil +} + +// NewFormulaFilterer creates a new log filterer instance of Formula, bound to a specific deployed contract. +func NewFormulaFilterer(address common.Address, filterer bind.ContractFilterer) (*FormulaFilterer, error) { + contract, err := bindFormula(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &FormulaFilterer{contract: contract}, nil +} + +// bindFormula binds a generic wrapper to an already deployed contract. +func bindFormula(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(FormulaABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Formula *FormulaRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Formula.Contract.FormulaCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Formula *FormulaRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Formula.Contract.FormulaTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Formula *FormulaRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Formula.Contract.FormulaTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Formula *FormulaCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Formula.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Formula *FormulaTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Formula.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Formula *FormulaTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Formula.Contract.contract.Transact(opts, method, params...) +} + +// ITokenPorterABI is the input ABI used to generate the binding from. +const ITokenPorterABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_originChain\",\"type\":\"bytes8\"},{\"name\":\"_destinationChain\",\"type\":\"bytes8\"},{\"name\":\"_addresses\",\"type\":\"address[]\"},{\"name\":\"_extraData\",\"type\":\"bytes\"},{\"name\":\"_burnHashes\",\"type\":\"bytes32[]\"},{\"name\":\"_supplyOnAllChains\",\"type\":\"uint256[]\"},{\"name\":\"_importData\",\"type\":\"uint256[]\"},{\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"importMET\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"tokenOwner\",\"type\":\"address\"},{\"name\":\"_destChain\",\"type\":\"bytes8\"},{\"name\":\"_destMetronomeAddr\",\"type\":\"address\"},{\"name\":\"_destRecipAddr\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_fee\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"export\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"destinationMetronomeAddr\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"destinationRecipientAddr\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ExportOnChainClaimedReceiptLog\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"destinationChain\",\"type\":\"bytes8\"},{\"indexed\":false,\"name\":\"destinationMetronomeAddr\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"destinationRecipientAddr\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amountToBurn\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"currentTick\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"burnSequence\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"currentBurnHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"prevBurnHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"dailyMintable\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"supplyOnAllChains\",\"type\":\"uint256[]\"},{\"indexed\":false,\"name\":\"genesisTime\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"blockTimestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"dailyAuctionStartTime\",\"type\":\"uint256\"}],\"name\":\"ExportReceiptLog\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"destinationRecipientAddr\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amountImported\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"currentTick\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"importSequence\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"currentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"dailyMintable\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"blockTimestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"ImportReceiptLog\",\"type\":\"event\"}]" + +// ITokenPorterBin is the compiled bytecode used for deploying new contracts. +const ITokenPorterBin = `0x` + +// DeployITokenPorter deploys a new Ethereum contract, binding an instance of ITokenPorter to it. +func DeployITokenPorter(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *ITokenPorter, error) { + parsed, err := abi.JSON(strings.NewReader(ITokenPorterABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ITokenPorterBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &ITokenPorter{ITokenPorterCaller: ITokenPorterCaller{contract: contract}, ITokenPorterTransactor: ITokenPorterTransactor{contract: contract}, ITokenPorterFilterer: ITokenPorterFilterer{contract: contract}}, nil +} + +// ITokenPorter is an auto generated Go binding around an Ethereum contract. +type ITokenPorter struct { + ITokenPorterCaller // Read-only binding to the contract + ITokenPorterTransactor // Write-only binding to the contract + ITokenPorterFilterer // Log filterer for contract events +} + +// ITokenPorterCaller is an auto generated read-only Go binding around an Ethereum contract. +type ITokenPorterCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ITokenPorterTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ITokenPorterTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ITokenPorterFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ITokenPorterFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ITokenPorterSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ITokenPorterSession struct { + Contract *ITokenPorter // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ITokenPorterCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ITokenPorterCallerSession struct { + Contract *ITokenPorterCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ITokenPorterTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ITokenPorterTransactorSession struct { + Contract *ITokenPorterTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ITokenPorterRaw is an auto generated low-level Go binding around an Ethereum contract. +type ITokenPorterRaw struct { + Contract *ITokenPorter // Generic contract binding to access the raw methods on +} + +// ITokenPorterCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ITokenPorterCallerRaw struct { + Contract *ITokenPorterCaller // Generic read-only contract binding to access the raw methods on +} + +// ITokenPorterTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ITokenPorterTransactorRaw struct { + Contract *ITokenPorterTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewITokenPorter creates a new instance of ITokenPorter, bound to a specific deployed contract. +func NewITokenPorter(address common.Address, backend bind.ContractBackend) (*ITokenPorter, error) { + contract, err := bindITokenPorter(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ITokenPorter{ITokenPorterCaller: ITokenPorterCaller{contract: contract}, ITokenPorterTransactor: ITokenPorterTransactor{contract: contract}, ITokenPorterFilterer: ITokenPorterFilterer{contract: contract}}, nil +} + +// NewITokenPorterCaller creates a new read-only instance of ITokenPorter, bound to a specific deployed contract. +func NewITokenPorterCaller(address common.Address, caller bind.ContractCaller) (*ITokenPorterCaller, error) { + contract, err := bindITokenPorter(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ITokenPorterCaller{contract: contract}, nil +} + +// NewITokenPorterTransactor creates a new write-only instance of ITokenPorter, bound to a specific deployed contract. +func NewITokenPorterTransactor(address common.Address, transactor bind.ContractTransactor) (*ITokenPorterTransactor, error) { + contract, err := bindITokenPorter(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ITokenPorterTransactor{contract: contract}, nil +} + +// NewITokenPorterFilterer creates a new log filterer instance of ITokenPorter, bound to a specific deployed contract. +func NewITokenPorterFilterer(address common.Address, filterer bind.ContractFilterer) (*ITokenPorterFilterer, error) { + contract, err := bindITokenPorter(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ITokenPorterFilterer{contract: contract}, nil +} + +// bindITokenPorter binds a generic wrapper to an already deployed contract. +func bindITokenPorter(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(ITokenPorterABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ITokenPorter *ITokenPorterRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _ITokenPorter.Contract.ITokenPorterCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ITokenPorter *ITokenPorterRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ITokenPorter.Contract.ITokenPorterTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ITokenPorter *ITokenPorterRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ITokenPorter.Contract.ITokenPorterTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ITokenPorter *ITokenPorterCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _ITokenPorter.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ITokenPorter *ITokenPorterTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _ITokenPorter.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ITokenPorter *ITokenPorterTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _ITokenPorter.Contract.contract.Transact(opts, method, params...) +} + +// Export is a paid mutator transaction binding the contract method 0xf29b2040. +// +// Solidity: function export(tokenOwner address, _destChain bytes8, _destMetronomeAddr address, _destRecipAddr address, _amount uint256, _fee uint256, _extraData bytes) returns(bool) +func (_ITokenPorter *ITokenPorterTransactor) Export(opts *bind.TransactOpts, tokenOwner common.Address, _destChain [8]byte, _destMetronomeAddr common.Address, _destRecipAddr common.Address, _amount *big.Int, _fee *big.Int, _extraData []byte) (*types.Transaction, error) { + return _ITokenPorter.contract.Transact(opts, "export", tokenOwner, _destChain, _destMetronomeAddr, _destRecipAddr, _amount, _fee, _extraData) +} + +// Export is a paid mutator transaction binding the contract method 0xf29b2040. +// +// Solidity: function export(tokenOwner address, _destChain bytes8, _destMetronomeAddr address, _destRecipAddr address, _amount uint256, _fee uint256, _extraData bytes) returns(bool) +func (_ITokenPorter *ITokenPorterSession) Export(tokenOwner common.Address, _destChain [8]byte, _destMetronomeAddr common.Address, _destRecipAddr common.Address, _amount *big.Int, _fee *big.Int, _extraData []byte) (*types.Transaction, error) { + return _ITokenPorter.Contract.Export(&_ITokenPorter.TransactOpts, tokenOwner, _destChain, _destMetronomeAddr, _destRecipAddr, _amount, _fee, _extraData) +} + +// Export is a paid mutator transaction binding the contract method 0xf29b2040. +// +// Solidity: function export(tokenOwner address, _destChain bytes8, _destMetronomeAddr address, _destRecipAddr address, _amount uint256, _fee uint256, _extraData bytes) returns(bool) +func (_ITokenPorter *ITokenPorterTransactorSession) Export(tokenOwner common.Address, _destChain [8]byte, _destMetronomeAddr common.Address, _destRecipAddr common.Address, _amount *big.Int, _fee *big.Int, _extraData []byte) (*types.Transaction, error) { + return _ITokenPorter.Contract.Export(&_ITokenPorter.TransactOpts, tokenOwner, _destChain, _destMetronomeAddr, _destRecipAddr, _amount, _fee, _extraData) +} + +// ImportMET is a paid mutator transaction binding the contract method 0x6ffbff9c. +// +// Solidity: function importMET(_originChain bytes8, _destinationChain bytes8, _addresses address[], _extraData bytes, _burnHashes bytes32[], _supplyOnAllChains uint256[], _importData uint256[], _proof bytes) returns(bool) +func (_ITokenPorter *ITokenPorterTransactor) ImportMET(opts *bind.TransactOpts, _originChain [8]byte, _destinationChain [8]byte, _addresses []common.Address, _extraData []byte, _burnHashes [][32]byte, _supplyOnAllChains []*big.Int, _importData []*big.Int, _proof []byte) (*types.Transaction, error) { + return _ITokenPorter.contract.Transact(opts, "importMET", _originChain, _destinationChain, _addresses, _extraData, _burnHashes, _supplyOnAllChains, _importData, _proof) +} + +// ImportMET is a paid mutator transaction binding the contract method 0x6ffbff9c. +// +// Solidity: function importMET(_originChain bytes8, _destinationChain bytes8, _addresses address[], _extraData bytes, _burnHashes bytes32[], _supplyOnAllChains uint256[], _importData uint256[], _proof bytes) returns(bool) +func (_ITokenPorter *ITokenPorterSession) ImportMET(_originChain [8]byte, _destinationChain [8]byte, _addresses []common.Address, _extraData []byte, _burnHashes [][32]byte, _supplyOnAllChains []*big.Int, _importData []*big.Int, _proof []byte) (*types.Transaction, error) { + return _ITokenPorter.Contract.ImportMET(&_ITokenPorter.TransactOpts, _originChain, _destinationChain, _addresses, _extraData, _burnHashes, _supplyOnAllChains, _importData, _proof) +} + +// ImportMET is a paid mutator transaction binding the contract method 0x6ffbff9c. +// +// Solidity: function importMET(_originChain bytes8, _destinationChain bytes8, _addresses address[], _extraData bytes, _burnHashes bytes32[], _supplyOnAllChains uint256[], _importData uint256[], _proof bytes) returns(bool) +func (_ITokenPorter *ITokenPorterTransactorSession) ImportMET(_originChain [8]byte, _destinationChain [8]byte, _addresses []common.Address, _extraData []byte, _burnHashes [][32]byte, _supplyOnAllChains []*big.Int, _importData []*big.Int, _proof []byte) (*types.Transaction, error) { + return _ITokenPorter.Contract.ImportMET(&_ITokenPorter.TransactOpts, _originChain, _destinationChain, _addresses, _extraData, _burnHashes, _supplyOnAllChains, _importData, _proof) +} + +// ITokenPorterExportOnChainClaimedReceiptLogIterator is returned from FilterExportOnChainClaimedReceiptLog and is used to iterate over the raw logs and unpacked data for ExportOnChainClaimedReceiptLog events raised by the ITokenPorter contract. +type ITokenPorterExportOnChainClaimedReceiptLogIterator struct { + Event *ITokenPorterExportOnChainClaimedReceiptLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ITokenPorterExportOnChainClaimedReceiptLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ITokenPorterExportOnChainClaimedReceiptLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ITokenPorterExportOnChainClaimedReceiptLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ITokenPorterExportOnChainClaimedReceiptLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ITokenPorterExportOnChainClaimedReceiptLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ITokenPorterExportOnChainClaimedReceiptLog represents a ExportOnChainClaimedReceiptLog event raised by the ITokenPorter contract. +type ITokenPorterExportOnChainClaimedReceiptLog struct { + DestinationMetronomeAddr common.Address + DestinationRecipientAddr common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExportOnChainClaimedReceiptLog is a free log retrieval operation binding the contract event 0xdcc7a8e6641ae885efef96d6348800635daf98037d60462fe34e85013b325713. +// +// Solidity: e ExportOnChainClaimedReceiptLog(destinationMetronomeAddr indexed address, destinationRecipientAddr indexed address, amount uint256) +func (_ITokenPorter *ITokenPorterFilterer) FilterExportOnChainClaimedReceiptLog(opts *bind.FilterOpts, destinationMetronomeAddr []common.Address, destinationRecipientAddr []common.Address) (*ITokenPorterExportOnChainClaimedReceiptLogIterator, error) { + + var destinationMetronomeAddrRule []interface{} + for _, destinationMetronomeAddrItem := range destinationMetronomeAddr { + destinationMetronomeAddrRule = append(destinationMetronomeAddrRule, destinationMetronomeAddrItem) + } + var destinationRecipientAddrRule []interface{} + for _, destinationRecipientAddrItem := range destinationRecipientAddr { + destinationRecipientAddrRule = append(destinationRecipientAddrRule, destinationRecipientAddrItem) + } + + logs, sub, err := _ITokenPorter.contract.FilterLogs(opts, "ExportOnChainClaimedReceiptLog", destinationMetronomeAddrRule, destinationRecipientAddrRule) + if err != nil { + return nil, err + } + return &ITokenPorterExportOnChainClaimedReceiptLogIterator{contract: _ITokenPorter.contract, event: "ExportOnChainClaimedReceiptLog", logs: logs, sub: sub}, nil +} + +// WatchExportOnChainClaimedReceiptLog is a free log subscription operation binding the contract event 0xdcc7a8e6641ae885efef96d6348800635daf98037d60462fe34e85013b325713. +// +// Solidity: e ExportOnChainClaimedReceiptLog(destinationMetronomeAddr indexed address, destinationRecipientAddr indexed address, amount uint256) +func (_ITokenPorter *ITokenPorterFilterer) WatchExportOnChainClaimedReceiptLog(opts *bind.WatchOpts, sink chan<- *ITokenPorterExportOnChainClaimedReceiptLog, destinationMetronomeAddr []common.Address, destinationRecipientAddr []common.Address) (event.Subscription, error) { + + var destinationMetronomeAddrRule []interface{} + for _, destinationMetronomeAddrItem := range destinationMetronomeAddr { + destinationMetronomeAddrRule = append(destinationMetronomeAddrRule, destinationMetronomeAddrItem) + } + var destinationRecipientAddrRule []interface{} + for _, destinationRecipientAddrItem := range destinationRecipientAddr { + destinationRecipientAddrRule = append(destinationRecipientAddrRule, destinationRecipientAddrItem) + } + + logs, sub, err := _ITokenPorter.contract.WatchLogs(opts, "ExportOnChainClaimedReceiptLog", destinationMetronomeAddrRule, destinationRecipientAddrRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ITokenPorterExportOnChainClaimedReceiptLog) + if err := _ITokenPorter.contract.UnpackLog(event, "ExportOnChainClaimedReceiptLog", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ITokenPorterExportReceiptLogIterator is returned from FilterExportReceiptLog and is used to iterate over the raw logs and unpacked data for ExportReceiptLog events raised by the ITokenPorter contract. +type ITokenPorterExportReceiptLogIterator struct { + Event *ITokenPorterExportReceiptLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ITokenPorterExportReceiptLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ITokenPorterExportReceiptLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ITokenPorterExportReceiptLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ITokenPorterExportReceiptLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ITokenPorterExportReceiptLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ITokenPorterExportReceiptLog represents a ExportReceiptLog event raised by the ITokenPorter contract. +type ITokenPorterExportReceiptLog struct { + DestinationChain [8]byte + DestinationMetronomeAddr common.Address + DestinationRecipientAddr common.Address + AmountToBurn *big.Int + Fee *big.Int + ExtraData []byte + CurrentTick *big.Int + BurnSequence *big.Int + CurrentBurnHash [32]byte + PrevBurnHash [32]byte + DailyMintable *big.Int + SupplyOnAllChains []*big.Int + GenesisTime *big.Int + BlockTimestamp *big.Int + DailyAuctionStartTime *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExportReceiptLog is a free log retrieval operation binding the contract event 0x67008f6d41fb47b0acf6bb0b2bf55dbc71e13cd95f90579a944c9ad04a289948. +// +// Solidity: e ExportReceiptLog(destinationChain bytes8, destinationMetronomeAddr address, destinationRecipientAddr indexed address, amountToBurn uint256, fee uint256, extraData bytes, currentTick uint256, burnSequence indexed uint256, currentBurnHash indexed bytes32, prevBurnHash bytes32, dailyMintable uint256, supplyOnAllChains uint256[], genesisTime uint256, blockTimestamp uint256, dailyAuctionStartTime uint256) +func (_ITokenPorter *ITokenPorterFilterer) FilterExportReceiptLog(opts *bind.FilterOpts, destinationRecipientAddr []common.Address, burnSequence []*big.Int, currentBurnHash [][32]byte) (*ITokenPorterExportReceiptLogIterator, error) { + + var destinationRecipientAddrRule []interface{} + for _, destinationRecipientAddrItem := range destinationRecipientAddr { + destinationRecipientAddrRule = append(destinationRecipientAddrRule, destinationRecipientAddrItem) + } + + var burnSequenceRule []interface{} + for _, burnSequenceItem := range burnSequence { + burnSequenceRule = append(burnSequenceRule, burnSequenceItem) + } + var currentBurnHashRule []interface{} + for _, currentBurnHashItem := range currentBurnHash { + currentBurnHashRule = append(currentBurnHashRule, currentBurnHashItem) + } + + logs, sub, err := _ITokenPorter.contract.FilterLogs(opts, "ExportReceiptLog", destinationRecipientAddrRule, burnSequenceRule, currentBurnHashRule) + if err != nil { + return nil, err + } + return &ITokenPorterExportReceiptLogIterator{contract: _ITokenPorter.contract, event: "ExportReceiptLog", logs: logs, sub: sub}, nil +} + +// WatchExportReceiptLog is a free log subscription operation binding the contract event 0x67008f6d41fb47b0acf6bb0b2bf55dbc71e13cd95f90579a944c9ad04a289948. +// +// Solidity: e ExportReceiptLog(destinationChain bytes8, destinationMetronomeAddr address, destinationRecipientAddr indexed address, amountToBurn uint256, fee uint256, extraData bytes, currentTick uint256, burnSequence indexed uint256, currentBurnHash indexed bytes32, prevBurnHash bytes32, dailyMintable uint256, supplyOnAllChains uint256[], genesisTime uint256, blockTimestamp uint256, dailyAuctionStartTime uint256) +func (_ITokenPorter *ITokenPorterFilterer) WatchExportReceiptLog(opts *bind.WatchOpts, sink chan<- *ITokenPorterExportReceiptLog, destinationRecipientAddr []common.Address, burnSequence []*big.Int, currentBurnHash [][32]byte) (event.Subscription, error) { + + var destinationRecipientAddrRule []interface{} + for _, destinationRecipientAddrItem := range destinationRecipientAddr { + destinationRecipientAddrRule = append(destinationRecipientAddrRule, destinationRecipientAddrItem) + } + + var burnSequenceRule []interface{} + for _, burnSequenceItem := range burnSequence { + burnSequenceRule = append(burnSequenceRule, burnSequenceItem) + } + var currentBurnHashRule []interface{} + for _, currentBurnHashItem := range currentBurnHash { + currentBurnHashRule = append(currentBurnHashRule, currentBurnHashItem) + } + + logs, sub, err := _ITokenPorter.contract.WatchLogs(opts, "ExportReceiptLog", destinationRecipientAddrRule, burnSequenceRule, currentBurnHashRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ITokenPorterExportReceiptLog) + if err := _ITokenPorter.contract.UnpackLog(event, "ExportReceiptLog", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ITokenPorterImportReceiptLogIterator is returned from FilterImportReceiptLog and is used to iterate over the raw logs and unpacked data for ImportReceiptLog events raised by the ITokenPorter contract. +type ITokenPorterImportReceiptLogIterator struct { + Event *ITokenPorterImportReceiptLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ITokenPorterImportReceiptLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ITokenPorterImportReceiptLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ITokenPorterImportReceiptLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ITokenPorterImportReceiptLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ITokenPorterImportReceiptLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ITokenPorterImportReceiptLog represents a ImportReceiptLog event raised by the ITokenPorter contract. +type ITokenPorterImportReceiptLog struct { + DestinationRecipientAddr common.Address + AmountImported *big.Int + Fee *big.Int + ExtraData []byte + CurrentTick *big.Int + ImportSequence *big.Int + CurrentHash [32]byte + PrevHash [32]byte + DailyMintable *big.Int + BlockTimestamp *big.Int + Caller common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterImportReceiptLog is a free log retrieval operation binding the contract event 0x31ada03ea6574804e622b02e30804a1f976859a01faa63b6a0175103969d3137. +// +// Solidity: e ImportReceiptLog(destinationRecipientAddr indexed address, amountImported uint256, fee uint256, extraData bytes, currentTick uint256, importSequence indexed uint256, currentHash indexed bytes32, prevHash bytes32, dailyMintable uint256, blockTimestamp uint256, caller address) +func (_ITokenPorter *ITokenPorterFilterer) FilterImportReceiptLog(opts *bind.FilterOpts, destinationRecipientAddr []common.Address, importSequence []*big.Int, currentHash [][32]byte) (*ITokenPorterImportReceiptLogIterator, error) { + + var destinationRecipientAddrRule []interface{} + for _, destinationRecipientAddrItem := range destinationRecipientAddr { + destinationRecipientAddrRule = append(destinationRecipientAddrRule, destinationRecipientAddrItem) + } + + var importSequenceRule []interface{} + for _, importSequenceItem := range importSequence { + importSequenceRule = append(importSequenceRule, importSequenceItem) + } + var currentHashRule []interface{} + for _, currentHashItem := range currentHash { + currentHashRule = append(currentHashRule, currentHashItem) + } + + logs, sub, err := _ITokenPorter.contract.FilterLogs(opts, "ImportReceiptLog", destinationRecipientAddrRule, importSequenceRule, currentHashRule) + if err != nil { + return nil, err + } + return &ITokenPorterImportReceiptLogIterator{contract: _ITokenPorter.contract, event: "ImportReceiptLog", logs: logs, sub: sub}, nil +} + +// WatchImportReceiptLog is a free log subscription operation binding the contract event 0x31ada03ea6574804e622b02e30804a1f976859a01faa63b6a0175103969d3137. +// +// Solidity: e ImportReceiptLog(destinationRecipientAddr indexed address, amountImported uint256, fee uint256, extraData bytes, currentTick uint256, importSequence indexed uint256, currentHash indexed bytes32, prevHash bytes32, dailyMintable uint256, blockTimestamp uint256, caller address) +func (_ITokenPorter *ITokenPorterFilterer) WatchImportReceiptLog(opts *bind.WatchOpts, sink chan<- *ITokenPorterImportReceiptLog, destinationRecipientAddr []common.Address, importSequence []*big.Int, currentHash [][32]byte) (event.Subscription, error) { + + var destinationRecipientAddrRule []interface{} + for _, destinationRecipientAddrItem := range destinationRecipientAddr { + destinationRecipientAddrRule = append(destinationRecipientAddrRule, destinationRecipientAddrItem) + } + + var importSequenceRule []interface{} + for _, importSequenceItem := range importSequence { + importSequenceRule = append(importSequenceRule, importSequenceItem) + } + var currentHashRule []interface{} + for _, currentHashItem := range currentHash { + currentHashRule = append(currentHashRule, currentHashItem) + } + + logs, sub, err := _ITokenPorter.contract.WatchLogs(opts, "ImportReceiptLog", destinationRecipientAddrRule, importSequenceRule, currentHashRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ITokenPorterImportReceiptLog) + if err := _ITokenPorter.contract.UnpackLog(event, "ImportReceiptLog", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// METTokenABI is the input ABI used to generate the binding from. +const METTokenABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getRoot\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_autonomousConverter\",\"type\":\"address\"},{\"name\":\"_minter\",\"type\":\"address\"},{\"name\":\"_initialSupply\",\"type\":\"uint256\"},{\"name\":\"_decmult\",\"type\":\"uint256\"}],\"name\":\"initMETToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenPorter\",\"type\":\"address\"}],\"name\":\"setTokenPorter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"transferAllowed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_autonomousConverter\",\"type\":\"address\"},{\"name\":\"_minter\",\"type\":\"address\"},{\"name\":\"_initialSupply\",\"type\":\"uint256\"},{\"name\":\"_decmult\",\"type\":\"uint256\"}],\"name\":\"initToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_destChain\",\"type\":\"bytes8\"},{\"name\":\"_destMetronomeAddr\",\"type\":\"address\"},{\"name\":\"_destRecipAddr\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_fee\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"export\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenPorter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approveMore\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"enableMETTransfers\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"autonomousConverter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"getSubscription\",\"outputs\":[{\"name\":\"startTime\",\"type\":\"uint256\"},{\"name\":\"payPerWeek\",\"type\":\"uint256\"},{\"name\":\"lastWithdrawTime\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_originChain\",\"type\":\"bytes8\"},{\"name\":\"_destinationChain\",\"type\":\"bytes8\"},{\"name\":\"_addresses\",\"type\":\"address[]\"},{\"name\":\"_extraData\",\"type\":\"bytes\"},{\"name\":\"_burnHashes\",\"type\":\"bytes32[]\"},{\"name\":\"_supplyOnAllChains\",\"type\":\"uint256[]\"},{\"name\":\"_importData\",\"type\":\"uint256[]\"},{\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"importMET\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approveLess\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"subWithdraw\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"cancelSubscription\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"destroy\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"roots\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_startTime\",\"type\":\"uint256\"},{\"name\":\"_payPerWeek\",\"type\":\"uint256\"},{\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"subscribe\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"bits\",\"type\":\"uint256[]\"}],\"name\":\"multiTransfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_owners\",\"type\":\"address[]\"}],\"name\":\"multiSubWithdraw\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_autonomousConverter\",\"type\":\"address\"},{\"name\":\"_minter\",\"type\":\"address\"},{\"name\":\"_initialSupply\",\"type\":\"uint256\"},{\"name\":\"_decmult\",\"type\":\"uint256\"}],\"name\":\"initMintable\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"subs\",\"outputs\":[{\"name\":\"startTime\",\"type\":\"uint256\"},{\"name\":\"payPerWeek\",\"type\":\"uint256\"},{\"name\":\"lastWithdrawTime\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"a\",\"type\":\"address\"},{\"name\":\"b\",\"type\":\"address\"}],\"name\":\"rootsMatch\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"data\",\"type\":\"bytes32\"}],\"name\":\"setRoot\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_owners\",\"type\":\"address[]\"},{\"name\":\"_recipients\",\"type\":\"address[]\"}],\"name\":\"multiSubWithdrawFor\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"subscribesTo\",\"type\":\"address\"}],\"name\":\"LogSubscription\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"subscribesTo\",\"type\":\"address\"}],\"name\":\"LogCancelSubscription\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Destroy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}]" + +// METTokenBin is the compiled bytecode used for deploying new contracts. +const METTokenBin = `0x608060405260008054600160a060020a03191633179055612116806100256000396000f3006080604052600436106101d45763ffffffff60e060020a60003504166306fdde0381146101d95780630754617214610263578063079cf76e14610294578063095ea7b3146102c757806318160ddd146102ff578063195629de146103145780631987b8871461034357806323b872dd146103645780632af4c31e1461038e578063313ce567146103af57806334fec467146103da5780633bf11a6c146103ef57806340c10f191461041c57806346be2310146104405780634892f0af146104d55780634cef0ff6146104ea5780634ee4d7311461050e57806350b48c5e146105235780635b75dd8d146105385780636ffbff9c1461057d57806370a08231146107215780637240eccf1461074257806379ba5097146107665780638da5cb5b1461077b57806393b212bc1461079057806393d81d58146107b157806395d89b41146107d2578063a24835d1146107e7578063a45468761461080b578063a9059cbb1461082c578063aa4925d714610850578063b33fcc7a14610877578063bae1cc74146108cc578063c3f51fca14610921578063cd755b411461094e578063d2d85cf214610975578063d4ee1d901461099c578063dab5f340146109b1578063dd62ed3e146109c9578063e6f47613146109f0575b600080fd5b3480156101e557600080fd5b506101ee610a7e565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610228578181015183820152602001610210565b50505050905090810190601f1680156102555780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026f57600080fd5b50610278610ab5565b60408051600160a060020a039092168252519081900360200190f35b3480156102a057600080fd5b506102b5600160a060020a0360043516610ac4565b60408051918252519081900360200190f35b3480156102d357600080fd5b506102eb600160a060020a0360043516602435610adf565b604080519115158252519081900360200190f35b34801561030b57600080fd5b506102b5610b5e565b34801561032057600080fd5b50610341600160a060020a0360043581169060243516604435606435610b64565b005b34801561034f57600080fd5b506102eb600160a060020a0360043516610b8d565b34801561037057600080fd5b506102eb600160a060020a0360043581169060243516604435610bec565b34801561039a57600080fd5b506102eb600160a060020a0360043516610c13565b3480156103bb57600080fd5b506103c4610c76565b6040805160ff9092168252519081900360200190f35b3480156103e657600080fd5b506102eb610c7b565b3480156103fb57600080fd5b50610341600160a060020a0360043581169060243516604435606435610c84565b34801561042857600080fd5b506102eb600160a060020a0360043516602435610ca7565b34801561044c57600080fd5b50604080516020600460a43581810135601f81018490048402850184019095528484526102eb94823577ffffffffffffffffffffffffffffffffffffffffffffffff19169460248035600160a060020a03908116966044359091169560643595608435953695929460c4949201918190840183828082843750949750610da79650505050505050565b3480156104e157600080fd5b50610278610f16565b3480156104f657600080fd5b506102eb600160a060020a0360043516602435610f25565b34801561051a57600080fd5b506102eb610fc4565b34801561052f57600080fd5b50610278611074565b34801561054457600080fd5b5061055f600160a060020a0360043581169060243516611083565b60408051938452602084019290925282820152519081900360600190f35b34801561058957600080fd5b5060408051602060046044358181013583810280860185019096528085526102eb95833577ffffffffffffffffffffffffffffffffffffffffffffffff19908116966024803590921696369695606495929493019282918501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506110bb9650505050505050565b34801561072d57600080fd5b506102b5600160a060020a03600435166113c8565b34801561074e57600080fd5b506102eb600160a060020a03600435166024356113e3565b34801561077257600080fd5b506102eb611418565b34801561078757600080fd5b506102786114a3565b34801561079c57600080fd5b506102eb600160a060020a03600435166114b2565b3480156107bd57600080fd5b506102eb600160a060020a03600435166114e3565b3480156107de57600080fd5b506101ee6115a7565b3480156107f357600080fd5b506102eb600160a060020a03600435166024356115de565b34801561081757600080fd5b506102b5600160a060020a03600435166116de565b34801561083857600080fd5b506102eb600160a060020a03600435166024356116f0565b34801561085c57600080fd5b506102eb600435602435600160a060020a0360443516611715565b34801561088357600080fd5b50604080516020600480358082013583810280860185019096528085526102eb953695939460249493850192918291850190849080828437509497506117c69650505050505050565b3480156108d857600080fd5b50604080516020600480358082013583810280860185019096528085526102b5953695939460249493850192918291850190849080828437509497506117e99650505050505050565b34801561092d57600080fd5b50610341600160a060020a0360043581169060243516604435606435611833565b34801561095a57600080fd5b5061055f600160a060020a0360043581169060243516611916565b34801561098157600080fd5b506102eb600160a060020a0360043581169060243516611942565b3480156109a857600080fd5b50610278611969565b3480156109bd57600080fd5b50610341600435611978565b3480156109d557600080fd5b506102b5600160a060020a036004358116906024351661198a565b3480156109fc57600080fd5b50604080516020600480358082013583810280860185019096528085526102b595369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506119b59650505050505050565b60408051808201909152600981527f4d6574726f6e6f6d650000000000000000000000000000000000000000000000602082015281565b600554600160a060020a031681565b600160a060020a031660009081526009602052604090205490565b6000600160a060020a038316301415610af757600080fd5b336000818152600760209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b600054600160a060020a03163314610b7b57600080fd5b610b8784848484610c84565b50505050565b60008054600160a060020a03163314610ba557600080fd5b600160a060020a0382161515610bba57600080fd5b5060068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60085460009060ff161515610c0057600080fd5b610c0b848484611a2e565b949350505050565b60008054600160a060020a03163314610c2b57600080fd5b600054600160a060020a0383811691161415610c4657600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b601281565b60085460ff1681565b600054600160a060020a03163314610c9b57600080fd5b610b8784848484611833565b600554600090600160a060020a0316331480610ccd5750600654600160a060020a031633145b1515610cd857600080fd5b600160a060020a038316600090815260036020526040902054610d01908363ffffffff611cab16565b600160a060020a038416600090815260036020526040902055600254610d2d908363ffffffff611cab16565b600255604080518381529051600160a060020a038516917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a2604080518381529051600160a060020a038516916000916000805160206120cb8339815191529181900360200190a350600192915050565b600654600090600160a060020a03161515610dc157600080fd5b6006546040517ff29b2040000000000000000000000000000000000000000000000000000000008152336004820181815277ffffffffffffffffffffffffffffffffffffffffffffffff198b166024840152600160a060020a038a8116604485015289811660648501526084840189905260a4840188905260e060c48501908152875160e48601528751919095169463f29b2040948d938d938d938d938d938d939092916101040190602085019080838360005b83811015610e8d578181015183820152602001610e75565b50505050905090810190601f168015610eba5780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b158015610edf57600080fd5b505af1158015610ef3573d6000803e3d6000fd5b505050506040513d6020811015610f0957600080fd5b5051979650505050505050565b600654600160a060020a031681565b336000908152600760209081526040808320600160a060020a038616845290915281205481610f5a828563ffffffff611cab16565b336000818152600760209081526040808320600160a060020a038b16808552908352928190208590558051858152905194955091937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3506001949350505050565b60085460009060ff161580156110555750600560009054906101000a9004600160a060020a0316600160a060020a0316631d38bebd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561102857600080fd5b505af115801561103c573d6000803e3d6000fd5b505050506040513d602081101561105257600080fd5b50515b151561106057600080fd5b506008805460ff1916600190811790915590565b600454600160a060020a031681565b600160a060020a039182166000908152600a602090815260408083209390941682529190915220805460018201546002909201549092565b600654600090600160a060020a031615156110d557600080fd5b600660009054906101000a9004600160a060020a0316600160a060020a0316636ffbff9c8a8a8a8a8a8a8a8a6040518963ffffffff1660e060020a028152600401808977ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018877ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200180602001806020018060200180602001806020018060200187810387528d818151815260200191508051906020019060200280838360005b838110156111df5781810151838201526020016111c7565b5050505090500187810386528c818151815260200191508051906020019080838360005b8381101561121b578181015183820152602001611203565b50505050905090810190601f1680156112485780820380516001836020036101000a031916815260200191505b5087810385528b5181528b51602091820191808e01910280838360005b8381101561127d578181015183820152602001611265565b5050505090500187810384528a818151815260200191508051906020019060200280838360005b838110156112bc5781810151838201526020016112a4565b50505050905001878103835289818151815260200191508051906020019060200280838360005b838110156112fb5781810151838201526020016112e3565b50505050905001878103825288818151815260200191508051906020019080838360005b8381101561133757818101518382015260200161131f565b50505050905090810190601f1680156113645780820380516001836020036101000a031916815260200191505b509e505050505050505050505050505050602060405180830381600087803b15801561138f57600080fd5b505af11580156113a3573d6000803e3d6000fd5b505050506040513d60208110156113b957600080fd5b50519998505050505050505050565b600160a060020a031660009081526003602052604090205490565b336000908152600760209081526040808320600160a060020a038616845290915281205481610f5a828563ffffffff611cba16565b600154600090600160a060020a0316331461143257600080fd5b60015460008054604051600160a060020a0393841693909116917f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b91a350600180546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905590565b600054600160a060020a031681565b60085460009060ff1615156114c657600080fd5b6114d08233611ccc565b15156114db57600080fd5b506001919050565b336000908152600a60209081526040808320600160a060020a0385168452909152812054151561151257600080fd5b336000908152600a60209081526040808320600160a060020a0386168452909152902060010154151561154457600080fd5b336000818152600a60209081526040808320600160a060020a038716808552925280832083815560018101849055600201839055519092917f4bc04e574b4f2b061a663b3328263978d3adeab9e4ea9526441c159cdee4eca891a3506001919050565b60408051808201909152600381527f4d45540000000000000000000000000000000000000000000000000000000000602082015281565b600454600090600160a060020a03163314806116045750600654600160a060020a031633145b151561160f57600080fd5b600160a060020a038316600090815260036020526040902054611638908363ffffffff611cba16565b600160a060020a038416600090815260036020526040902055600254611664908363ffffffff611cba16565b600255604080518381529051600160a060020a038516917f81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee919081900360200190a2604080518381529051600091600160a060020a038616916000805160206120cb8339815191529181900360200190a350600192915050565b60096020526000908152604090205481565b60085460009060ff16151561170457600080fd5b61170e8383611e67565b9392505050565b60004284101561172457600080fd5b82151561173057600080fd5b600160a060020a038216151561174557600080fd5b604080516060810182528581526020808201868152828401888152336000818152600a8552868120600160a060020a038a16808352955286812095518655925160018601559051600290940193909355925190927f5c632ccb5c42002836e0c49ef1f6d67e925c5e77c1048ddbb47a9bf6a0f2d01291a35060019392505050565b60085460009060ff1615156117da57600080fd5b6117e382612004565b92915050565b600080805b835181101561182c57611818848281518110151561180857fe5b9060200190602002015133611ccc565b15611824576001909101905b6001016117ee565b5092915050565b600054600160a060020a0316331461184a57600080fd5b600454600160a060020a031615801561186b5750600160a060020a03841615155b151561187657600080fd5b600554600160a060020a03161580156118975750600160a060020a03831615155b15156118a257600080fd5b60048054600160a060020a0380871673ffffffffffffffffffffffffffffffffffffffff199283161790925560058054928616929091169190911790556118ef828263ffffffff61208816565b6002819055600160a060020a03909416600090815260036020526040902093909355505050565b600a60209081526000928352604080842090915290825290208054600182015460029092015490919083565b600160a060020a039081166000908152600960205260408082205493909216815220541490565b600154600160a060020a031681565b33600090815260096020526040902055565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b6000806000835185511415156119ca57600080fd5b5060009050805b8451811015611a2657611a1285828151811015156119eb57fe5b906020019060200201518583815181101515611a0357fe5b90602001906020020151611ccc565b15611a1e576001909101905b6001016119d1565b509392505050565b600080600160a060020a0384161515611a4657600080fd5b600554600160a060020a03858116911614801590611a725750600554600160a060020a03868116911614155b1515611a7d57600080fd5b600160a060020a0384163014801590611a9f5750600160a060020a0385163014155b1515611aaa57600080fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166355b5ec646040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611afd57600080fd5b505af1158015611b11573d6000803e3d6000fd5b505050506040513d6020811015611b2757600080fd5b50519050600160a060020a0384811690821614801590611b59575080600160a060020a031685600160a060020a031614155b1515611b6457600080fd5b600454600160a060020a0386811691161415611b7f57600080fd5b600160a060020a0385166000908152600760209081526040808320338452909152902054831115611baf57600080fd5b600160a060020a038516600090815260036020526040902054611bd8908463ffffffff611cba16565b600160a060020a038087166000908152600360205260408082209390935590861681522054611c0d908463ffffffff611cab16565b600160a060020a038086166000908152600360209081526040808320949094559188168152600782528281203382529091522054611c51908463ffffffff611cba16565b600160a060020a03808716600081815260076020908152604080832033845282529182902094909455805187815290519288169391926000805160206120cb833981519152929181900390910190a3506001949350505050565b60008282018381101561170e57fe5b600082821115611cc657fe5b50900390565b600160a060020a038083166000908152600a60209081526040808320938516835292905290812080548290819081108015611d075750825442115b8015611d17575060008360010154115b15611e5957611d4662093a80611d3a856002015442611cba90919063ffffffff16565b9063ffffffff6120b316565b9150611d5f83600101548361208890919063ffffffff16565b9050600082118015611d895750600160a060020a0386166000908152600360205260409020548111155b15611e5957600160a060020a038087166000818152600a60209081526040808320948a1683529381528382204260029091015591815260039091522054611dd6908263ffffffff611cba16565b600160a060020a038088166000908152600360205260408082209390935590871681522054611e0b908263ffffffff611cab16565b600160a060020a0380871660008181526003602090815260409182902094909455805185815290519193928a16926000805160206120cb83398151915292918290030190a360019350611e5e565b600093505b50505092915050565b600080600160a060020a0384161515611e7f57600080fd5b600554600160a060020a0385811691161415611e9a57600080fd5b600160a060020a038416301415611eb057600080fd5b600454600160a060020a0385811691161415611ecb57600080fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166355b5ec646040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611f1e57600080fd5b505af1158015611f32573d6000803e3d6000fd5b505050506040513d6020811015611f4857600080fd5b50519050600160a060020a038481169082161415611f6557600080fd5b33600090815260036020526040902054611f85908463ffffffff611cba16565b3360009081526003602052604080822092909255600160a060020a03861681522054611fb7908463ffffffff611cab16565b600160a060020a0385166000818152600360209081526040918290209390935580518681529051919233926000805160206120cb8339815191529281900390910190a35060019392505050565b60008080805b845183101561207d576060858481518110151561202357fe5b906020019060200201519060020a90049150848381518110151561204357fe5b906020019060200201516bffffffffffffffffffffffff16905061206782826116f0565b151561207257600080fd5b60019092019161200a565b506001949350505050565b60008083151561209b576000915061182c565b508282028284828115156120ab57fe5b041461170e57fe5b60008082848115156120c157fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582031f0384082abd6319bcf275b143fda5c87bd145701252d748bd4bcc1c7c535c80029` + +// DeployMETToken deploys a new Ethereum contract, binding an instance of METToken to it. +func DeployMETToken(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *METToken, error) { + parsed, err := abi.JSON(strings.NewReader(METTokenABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(METTokenBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &METToken{METTokenCaller: METTokenCaller{contract: contract}, METTokenTransactor: METTokenTransactor{contract: contract}, METTokenFilterer: METTokenFilterer{contract: contract}}, nil +} + +// METToken is an auto generated Go binding around an Ethereum contract. +type METToken struct { + METTokenCaller // Read-only binding to the contract + METTokenTransactor // Write-only binding to the contract + METTokenFilterer // Log filterer for contract events +} + +// METTokenCaller is an auto generated read-only Go binding around an Ethereum contract. +type METTokenCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// METTokenTransactor is an auto generated write-only Go binding around an Ethereum contract. +type METTokenTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// METTokenFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type METTokenFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// METTokenSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type METTokenSession struct { + Contract *METToken // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// METTokenCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type METTokenCallerSession struct { + Contract *METTokenCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// METTokenTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type METTokenTransactorSession struct { + Contract *METTokenTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// METTokenRaw is an auto generated low-level Go binding around an Ethereum contract. +type METTokenRaw struct { + Contract *METToken // Generic contract binding to access the raw methods on +} + +// METTokenCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type METTokenCallerRaw struct { + Contract *METTokenCaller // Generic read-only contract binding to access the raw methods on +} + +// METTokenTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type METTokenTransactorRaw struct { + Contract *METTokenTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewMETToken creates a new instance of METToken, bound to a specific deployed contract. +func NewMETToken(address common.Address, backend bind.ContractBackend) (*METToken, error) { + contract, err := bindMETToken(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &METToken{METTokenCaller: METTokenCaller{contract: contract}, METTokenTransactor: METTokenTransactor{contract: contract}, METTokenFilterer: METTokenFilterer{contract: contract}}, nil +} + +// NewMETTokenCaller creates a new read-only instance of METToken, bound to a specific deployed contract. +func NewMETTokenCaller(address common.Address, caller bind.ContractCaller) (*METTokenCaller, error) { + contract, err := bindMETToken(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &METTokenCaller{contract: contract}, nil +} + +// NewMETTokenTransactor creates a new write-only instance of METToken, bound to a specific deployed contract. +func NewMETTokenTransactor(address common.Address, transactor bind.ContractTransactor) (*METTokenTransactor, error) { + contract, err := bindMETToken(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &METTokenTransactor{contract: contract}, nil +} + +// NewMETTokenFilterer creates a new log filterer instance of METToken, bound to a specific deployed contract. +func NewMETTokenFilterer(address common.Address, filterer bind.ContractFilterer) (*METTokenFilterer, error) { + contract, err := bindMETToken(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &METTokenFilterer{contract: contract}, nil +} + +// bindMETToken binds a generic wrapper to an already deployed contract. +func bindMETToken(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(METTokenABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_METToken *METTokenRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _METToken.Contract.METTokenCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_METToken *METTokenRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _METToken.Contract.METTokenTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_METToken *METTokenRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _METToken.Contract.METTokenTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_METToken *METTokenCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _METToken.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_METToken *METTokenTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _METToken.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_METToken *METTokenTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _METToken.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(_owner address, _spender address) constant returns(uint256) +func (_METToken *METTokenCaller) Allowance(opts *bind.CallOpts, _owner common.Address, _spender common.Address) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "allowance", _owner, _spender) + return *ret0, err +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(_owner address, _spender address) constant returns(uint256) +func (_METToken *METTokenSession) Allowance(_owner common.Address, _spender common.Address) (*big.Int, error) { + return _METToken.Contract.Allowance(&_METToken.CallOpts, _owner, _spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(_owner address, _spender address) constant returns(uint256) +func (_METToken *METTokenCallerSession) Allowance(_owner common.Address, _spender common.Address) (*big.Int, error) { + return _METToken.Contract.Allowance(&_METToken.CallOpts, _owner, _spender) +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_METToken *METTokenCaller) AutonomousConverter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "autonomousConverter") + return *ret0, err +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_METToken *METTokenSession) AutonomousConverter() (common.Address, error) { + return _METToken.Contract.AutonomousConverter(&_METToken.CallOpts) +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_METToken *METTokenCallerSession) AutonomousConverter() (common.Address, error) { + return _METToken.Contract.AutonomousConverter(&_METToken.CallOpts) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_METToken *METTokenCaller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "balanceOf", _owner) + return *ret0, err +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_METToken *METTokenSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _METToken.Contract.BalanceOf(&_METToken.CallOpts, _owner) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_METToken *METTokenCallerSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _METToken.Contract.BalanceOf(&_METToken.CallOpts, _owner) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() constant returns(uint8) +func (_METToken *METTokenCaller) Decimals(opts *bind.CallOpts) (uint8, error) { + var ( + ret0 = new(uint8) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "decimals") + return *ret0, err +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() constant returns(uint8) +func (_METToken *METTokenSession) Decimals() (uint8, error) { + return _METToken.Contract.Decimals(&_METToken.CallOpts) +} + +// Decimals is a free data retrieval call binding the contract method 0x313ce567. +// +// Solidity: function decimals() constant returns(uint8) +func (_METToken *METTokenCallerSession) Decimals() (uint8, error) { + return _METToken.Contract.Decimals(&_METToken.CallOpts) +} + +// GetRoot is a free data retrieval call binding the contract method 0x079cf76e. +// +// Solidity: function getRoot(addr address) constant returns(bytes32) +func (_METToken *METTokenCaller) GetRoot(opts *bind.CallOpts, addr common.Address) ([32]byte, error) { + var ( + ret0 = new([32]byte) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "getRoot", addr) + return *ret0, err +} + +// GetRoot is a free data retrieval call binding the contract method 0x079cf76e. +// +// Solidity: function getRoot(addr address) constant returns(bytes32) +func (_METToken *METTokenSession) GetRoot(addr common.Address) ([32]byte, error) { + return _METToken.Contract.GetRoot(&_METToken.CallOpts, addr) +} + +// GetRoot is a free data retrieval call binding the contract method 0x079cf76e. +// +// Solidity: function getRoot(addr address) constant returns(bytes32) +func (_METToken *METTokenCallerSession) GetRoot(addr common.Address) ([32]byte, error) { + return _METToken.Contract.GetRoot(&_METToken.CallOpts, addr) +} + +// GetSubscription is a free data retrieval call binding the contract method 0x5b75dd8d. +// +// Solidity: function getSubscription(_owner address, _recipient address) constant returns(startTime uint256, payPerWeek uint256, lastWithdrawTime uint256) +func (_METToken *METTokenCaller) GetSubscription(opts *bind.CallOpts, _owner common.Address, _recipient common.Address) (struct { + StartTime *big.Int + PayPerWeek *big.Int + LastWithdrawTime *big.Int +}, error) { + ret := new(struct { + StartTime *big.Int + PayPerWeek *big.Int + LastWithdrawTime *big.Int + }) + out := ret + err := _METToken.contract.Call(opts, out, "getSubscription", _owner, _recipient) + return *ret, err +} + +// GetSubscription is a free data retrieval call binding the contract method 0x5b75dd8d. +// +// Solidity: function getSubscription(_owner address, _recipient address) constant returns(startTime uint256, payPerWeek uint256, lastWithdrawTime uint256) +func (_METToken *METTokenSession) GetSubscription(_owner common.Address, _recipient common.Address) (struct { + StartTime *big.Int + PayPerWeek *big.Int + LastWithdrawTime *big.Int +}, error) { + return _METToken.Contract.GetSubscription(&_METToken.CallOpts, _owner, _recipient) +} + +// GetSubscription is a free data retrieval call binding the contract method 0x5b75dd8d. +// +// Solidity: function getSubscription(_owner address, _recipient address) constant returns(startTime uint256, payPerWeek uint256, lastWithdrawTime uint256) +func (_METToken *METTokenCallerSession) GetSubscription(_owner common.Address, _recipient common.Address) (struct { + StartTime *big.Int + PayPerWeek *big.Int + LastWithdrawTime *big.Int +}, error) { + return _METToken.Contract.GetSubscription(&_METToken.CallOpts, _owner, _recipient) +} + +// Minter is a free data retrieval call binding the contract method 0x07546172. +// +// Solidity: function minter() constant returns(address) +func (_METToken *METTokenCaller) Minter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "minter") + return *ret0, err +} + +// Minter is a free data retrieval call binding the contract method 0x07546172. +// +// Solidity: function minter() constant returns(address) +func (_METToken *METTokenSession) Minter() (common.Address, error) { + return _METToken.Contract.Minter(&_METToken.CallOpts) +} + +// Minter is a free data retrieval call binding the contract method 0x07546172. +// +// Solidity: function minter() constant returns(address) +func (_METToken *METTokenCallerSession) Minter() (common.Address, error) { + return _METToken.Contract.Minter(&_METToken.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() constant returns(string) +func (_METToken *METTokenCaller) Name(opts *bind.CallOpts) (string, error) { + var ( + ret0 = new(string) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "name") + return *ret0, err +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() constant returns(string) +func (_METToken *METTokenSession) Name() (string, error) { + return _METToken.Contract.Name(&_METToken.CallOpts) +} + +// Name is a free data retrieval call binding the contract method 0x06fdde03. +// +// Solidity: function name() constant returns(string) +func (_METToken *METTokenCallerSession) Name() (string, error) { + return _METToken.Contract.Name(&_METToken.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_METToken *METTokenCaller) NewOwner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "newOwner") + return *ret0, err +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_METToken *METTokenSession) NewOwner() (common.Address, error) { + return _METToken.Contract.NewOwner(&_METToken.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_METToken *METTokenCallerSession) NewOwner() (common.Address, error) { + return _METToken.Contract.NewOwner(&_METToken.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_METToken *METTokenCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_METToken *METTokenSession) Owner() (common.Address, error) { + return _METToken.Contract.Owner(&_METToken.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_METToken *METTokenCallerSession) Owner() (common.Address, error) { + return _METToken.Contract.Owner(&_METToken.CallOpts) +} + +// Roots is a free data retrieval call binding the contract method 0xa4546876. +// +// Solidity: function roots( address) constant returns(bytes32) +func (_METToken *METTokenCaller) Roots(opts *bind.CallOpts, arg0 common.Address) ([32]byte, error) { + var ( + ret0 = new([32]byte) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "roots", arg0) + return *ret0, err +} + +// Roots is a free data retrieval call binding the contract method 0xa4546876. +// +// Solidity: function roots( address) constant returns(bytes32) +func (_METToken *METTokenSession) Roots(arg0 common.Address) ([32]byte, error) { + return _METToken.Contract.Roots(&_METToken.CallOpts, arg0) +} + +// Roots is a free data retrieval call binding the contract method 0xa4546876. +// +// Solidity: function roots( address) constant returns(bytes32) +func (_METToken *METTokenCallerSession) Roots(arg0 common.Address) ([32]byte, error) { + return _METToken.Contract.Roots(&_METToken.CallOpts, arg0) +} + +// RootsMatch is a free data retrieval call binding the contract method 0xd2d85cf2. +// +// Solidity: function rootsMatch(a address, b address) constant returns(bool) +func (_METToken *METTokenCaller) RootsMatch(opts *bind.CallOpts, a common.Address, b common.Address) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "rootsMatch", a, b) + return *ret0, err +} + +// RootsMatch is a free data retrieval call binding the contract method 0xd2d85cf2. +// +// Solidity: function rootsMatch(a address, b address) constant returns(bool) +func (_METToken *METTokenSession) RootsMatch(a common.Address, b common.Address) (bool, error) { + return _METToken.Contract.RootsMatch(&_METToken.CallOpts, a, b) +} + +// RootsMatch is a free data retrieval call binding the contract method 0xd2d85cf2. +// +// Solidity: function rootsMatch(a address, b address) constant returns(bool) +func (_METToken *METTokenCallerSession) RootsMatch(a common.Address, b common.Address) (bool, error) { + return _METToken.Contract.RootsMatch(&_METToken.CallOpts, a, b) +} + +// Subs is a free data retrieval call binding the contract method 0xcd755b41. +// +// Solidity: function subs( address, address) constant returns(startTime uint256, payPerWeek uint256, lastWithdrawTime uint256) +func (_METToken *METTokenCaller) Subs(opts *bind.CallOpts, arg0 common.Address, arg1 common.Address) (struct { + StartTime *big.Int + PayPerWeek *big.Int + LastWithdrawTime *big.Int +}, error) { + ret := new(struct { + StartTime *big.Int + PayPerWeek *big.Int + LastWithdrawTime *big.Int + }) + out := ret + err := _METToken.contract.Call(opts, out, "subs", arg0, arg1) + return *ret, err +} + +// Subs is a free data retrieval call binding the contract method 0xcd755b41. +// +// Solidity: function subs( address, address) constant returns(startTime uint256, payPerWeek uint256, lastWithdrawTime uint256) +func (_METToken *METTokenSession) Subs(arg0 common.Address, arg1 common.Address) (struct { + StartTime *big.Int + PayPerWeek *big.Int + LastWithdrawTime *big.Int +}, error) { + return _METToken.Contract.Subs(&_METToken.CallOpts, arg0, arg1) +} + +// Subs is a free data retrieval call binding the contract method 0xcd755b41. +// +// Solidity: function subs( address, address) constant returns(startTime uint256, payPerWeek uint256, lastWithdrawTime uint256) +func (_METToken *METTokenCallerSession) Subs(arg0 common.Address, arg1 common.Address) (struct { + StartTime *big.Int + PayPerWeek *big.Int + LastWithdrawTime *big.Int +}, error) { + return _METToken.Contract.Subs(&_METToken.CallOpts, arg0, arg1) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() constant returns(string) +func (_METToken *METTokenCaller) Symbol(opts *bind.CallOpts) (string, error) { + var ( + ret0 = new(string) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "symbol") + return *ret0, err +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() constant returns(string) +func (_METToken *METTokenSession) Symbol() (string, error) { + return _METToken.Contract.Symbol(&_METToken.CallOpts) +} + +// Symbol is a free data retrieval call binding the contract method 0x95d89b41. +// +// Solidity: function symbol() constant returns(string) +func (_METToken *METTokenCallerSession) Symbol() (string, error) { + return _METToken.Contract.Symbol(&_METToken.CallOpts) +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_METToken *METTokenCaller) TokenPorter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "tokenPorter") + return *ret0, err +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_METToken *METTokenSession) TokenPorter() (common.Address, error) { + return _METToken.Contract.TokenPorter(&_METToken.CallOpts) +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_METToken *METTokenCallerSession) TokenPorter() (common.Address, error) { + return _METToken.Contract.TokenPorter(&_METToken.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_METToken *METTokenCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "totalSupply") + return *ret0, err +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_METToken *METTokenSession) TotalSupply() (*big.Int, error) { + return _METToken.Contract.TotalSupply(&_METToken.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_METToken *METTokenCallerSession) TotalSupply() (*big.Int, error) { + return _METToken.Contract.TotalSupply(&_METToken.CallOpts) +} + +// TransferAllowed is a free data retrieval call binding the contract method 0x34fec467. +// +// Solidity: function transferAllowed() constant returns(bool) +func (_METToken *METTokenCaller) TransferAllowed(opts *bind.CallOpts) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _METToken.contract.Call(opts, out, "transferAllowed") + return *ret0, err +} + +// TransferAllowed is a free data retrieval call binding the contract method 0x34fec467. +// +// Solidity: function transferAllowed() constant returns(bool) +func (_METToken *METTokenSession) TransferAllowed() (bool, error) { + return _METToken.Contract.TransferAllowed(&_METToken.CallOpts) +} + +// TransferAllowed is a free data retrieval call binding the contract method 0x34fec467. +// +// Solidity: function transferAllowed() constant returns(bool) +func (_METToken *METTokenCallerSession) TransferAllowed() (bool, error) { + return _METToken.Contract.TransferAllowed(&_METToken.CallOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_METToken *METTokenTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_METToken *METTokenSession) AcceptOwnership() (*types.Transaction, error) { + return _METToken.Contract.AcceptOwnership(&_METToken.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_METToken *METTokenTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _METToken.Contract.AcceptOwnership(&_METToken.TransactOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(_spender address, _value uint256) returns(bool) +func (_METToken *METTokenTransactor) Approve(opts *bind.TransactOpts, _spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "approve", _spender, _value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(_spender address, _value uint256) returns(bool) +func (_METToken *METTokenSession) Approve(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.Approve(&_METToken.TransactOpts, _spender, _value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(_spender address, _value uint256) returns(bool) +func (_METToken *METTokenTransactorSession) Approve(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.Approve(&_METToken.TransactOpts, _spender, _value) +} + +// ApproveLess is a paid mutator transaction binding the contract method 0x7240eccf. +// +// Solidity: function approveLess(_spender address, _value uint256) returns(bool) +func (_METToken *METTokenTransactor) ApproveLess(opts *bind.TransactOpts, _spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "approveLess", _spender, _value) +} + +// ApproveLess is a paid mutator transaction binding the contract method 0x7240eccf. +// +// Solidity: function approveLess(_spender address, _value uint256) returns(bool) +func (_METToken *METTokenSession) ApproveLess(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.ApproveLess(&_METToken.TransactOpts, _spender, _value) +} + +// ApproveLess is a paid mutator transaction binding the contract method 0x7240eccf. +// +// Solidity: function approveLess(_spender address, _value uint256) returns(bool) +func (_METToken *METTokenTransactorSession) ApproveLess(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.ApproveLess(&_METToken.TransactOpts, _spender, _value) +} + +// ApproveMore is a paid mutator transaction binding the contract method 0x4cef0ff6. +// +// Solidity: function approveMore(_spender address, _value uint256) returns(bool) +func (_METToken *METTokenTransactor) ApproveMore(opts *bind.TransactOpts, _spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "approveMore", _spender, _value) +} + +// ApproveMore is a paid mutator transaction binding the contract method 0x4cef0ff6. +// +// Solidity: function approveMore(_spender address, _value uint256) returns(bool) +func (_METToken *METTokenSession) ApproveMore(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.ApproveMore(&_METToken.TransactOpts, _spender, _value) +} + +// ApproveMore is a paid mutator transaction binding the contract method 0x4cef0ff6. +// +// Solidity: function approveMore(_spender address, _value uint256) returns(bool) +func (_METToken *METTokenTransactorSession) ApproveMore(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.ApproveMore(&_METToken.TransactOpts, _spender, _value) +} + +// CancelSubscription is a paid mutator transaction binding the contract method 0x93d81d58. +// +// Solidity: function cancelSubscription(_recipient address) returns(bool) +func (_METToken *METTokenTransactor) CancelSubscription(opts *bind.TransactOpts, _recipient common.Address) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "cancelSubscription", _recipient) +} + +// CancelSubscription is a paid mutator transaction binding the contract method 0x93d81d58. +// +// Solidity: function cancelSubscription(_recipient address) returns(bool) +func (_METToken *METTokenSession) CancelSubscription(_recipient common.Address) (*types.Transaction, error) { + return _METToken.Contract.CancelSubscription(&_METToken.TransactOpts, _recipient) +} + +// CancelSubscription is a paid mutator transaction binding the contract method 0x93d81d58. +// +// Solidity: function cancelSubscription(_recipient address) returns(bool) +func (_METToken *METTokenTransactorSession) CancelSubscription(_recipient common.Address) (*types.Transaction, error) { + return _METToken.Contract.CancelSubscription(&_METToken.TransactOpts, _recipient) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_METToken *METTokenTransactor) ChangeOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "changeOwnership", _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_METToken *METTokenSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _METToken.Contract.ChangeOwnership(&_METToken.TransactOpts, _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_METToken *METTokenTransactorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _METToken.Contract.ChangeOwnership(&_METToken.TransactOpts, _newOwner) +} + +// Destroy is a paid mutator transaction binding the contract method 0xa24835d1. +// +// Solidity: function destroy(_from address, _value uint256) returns(bool) +func (_METToken *METTokenTransactor) Destroy(opts *bind.TransactOpts, _from common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "destroy", _from, _value) +} + +// Destroy is a paid mutator transaction binding the contract method 0xa24835d1. +// +// Solidity: function destroy(_from address, _value uint256) returns(bool) +func (_METToken *METTokenSession) Destroy(_from common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.Destroy(&_METToken.TransactOpts, _from, _value) +} + +// Destroy is a paid mutator transaction binding the contract method 0xa24835d1. +// +// Solidity: function destroy(_from address, _value uint256) returns(bool) +func (_METToken *METTokenTransactorSession) Destroy(_from common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.Destroy(&_METToken.TransactOpts, _from, _value) +} + +// EnableMETTransfers is a paid mutator transaction binding the contract method 0x4ee4d731. +// +// Solidity: function enableMETTransfers() returns(bool) +func (_METToken *METTokenTransactor) EnableMETTransfers(opts *bind.TransactOpts) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "enableMETTransfers") +} + +// EnableMETTransfers is a paid mutator transaction binding the contract method 0x4ee4d731. +// +// Solidity: function enableMETTransfers() returns(bool) +func (_METToken *METTokenSession) EnableMETTransfers() (*types.Transaction, error) { + return _METToken.Contract.EnableMETTransfers(&_METToken.TransactOpts) +} + +// EnableMETTransfers is a paid mutator transaction binding the contract method 0x4ee4d731. +// +// Solidity: function enableMETTransfers() returns(bool) +func (_METToken *METTokenTransactorSession) EnableMETTransfers() (*types.Transaction, error) { + return _METToken.Contract.EnableMETTransfers(&_METToken.TransactOpts) +} + +// Export is a paid mutator transaction binding the contract method 0x46be2310. +// +// Solidity: function export(_destChain bytes8, _destMetronomeAddr address, _destRecipAddr address, _amount uint256, _fee uint256, _extraData bytes) returns(bool) +func (_METToken *METTokenTransactor) Export(opts *bind.TransactOpts, _destChain [8]byte, _destMetronomeAddr common.Address, _destRecipAddr common.Address, _amount *big.Int, _fee *big.Int, _extraData []byte) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "export", _destChain, _destMetronomeAddr, _destRecipAddr, _amount, _fee, _extraData) +} + +// Export is a paid mutator transaction binding the contract method 0x46be2310. +// +// Solidity: function export(_destChain bytes8, _destMetronomeAddr address, _destRecipAddr address, _amount uint256, _fee uint256, _extraData bytes) returns(bool) +func (_METToken *METTokenSession) Export(_destChain [8]byte, _destMetronomeAddr common.Address, _destRecipAddr common.Address, _amount *big.Int, _fee *big.Int, _extraData []byte) (*types.Transaction, error) { + return _METToken.Contract.Export(&_METToken.TransactOpts, _destChain, _destMetronomeAddr, _destRecipAddr, _amount, _fee, _extraData) +} + +// Export is a paid mutator transaction binding the contract method 0x46be2310. +// +// Solidity: function export(_destChain bytes8, _destMetronomeAddr address, _destRecipAddr address, _amount uint256, _fee uint256, _extraData bytes) returns(bool) +func (_METToken *METTokenTransactorSession) Export(_destChain [8]byte, _destMetronomeAddr common.Address, _destRecipAddr common.Address, _amount *big.Int, _fee *big.Int, _extraData []byte) (*types.Transaction, error) { + return _METToken.Contract.Export(&_METToken.TransactOpts, _destChain, _destMetronomeAddr, _destRecipAddr, _amount, _fee, _extraData) +} + +// ImportMET is a paid mutator transaction binding the contract method 0x6ffbff9c. +// +// Solidity: function importMET(_originChain bytes8, _destinationChain bytes8, _addresses address[], _extraData bytes, _burnHashes bytes32[], _supplyOnAllChains uint256[], _importData uint256[], _proof bytes) returns(bool) +func (_METToken *METTokenTransactor) ImportMET(opts *bind.TransactOpts, _originChain [8]byte, _destinationChain [8]byte, _addresses []common.Address, _extraData []byte, _burnHashes [][32]byte, _supplyOnAllChains []*big.Int, _importData []*big.Int, _proof []byte) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "importMET", _originChain, _destinationChain, _addresses, _extraData, _burnHashes, _supplyOnAllChains, _importData, _proof) +} + +// ImportMET is a paid mutator transaction binding the contract method 0x6ffbff9c. +// +// Solidity: function importMET(_originChain bytes8, _destinationChain bytes8, _addresses address[], _extraData bytes, _burnHashes bytes32[], _supplyOnAllChains uint256[], _importData uint256[], _proof bytes) returns(bool) +func (_METToken *METTokenSession) ImportMET(_originChain [8]byte, _destinationChain [8]byte, _addresses []common.Address, _extraData []byte, _burnHashes [][32]byte, _supplyOnAllChains []*big.Int, _importData []*big.Int, _proof []byte) (*types.Transaction, error) { + return _METToken.Contract.ImportMET(&_METToken.TransactOpts, _originChain, _destinationChain, _addresses, _extraData, _burnHashes, _supplyOnAllChains, _importData, _proof) +} + +// ImportMET is a paid mutator transaction binding the contract method 0x6ffbff9c. +// +// Solidity: function importMET(_originChain bytes8, _destinationChain bytes8, _addresses address[], _extraData bytes, _burnHashes bytes32[], _supplyOnAllChains uint256[], _importData uint256[], _proof bytes) returns(bool) +func (_METToken *METTokenTransactorSession) ImportMET(_originChain [8]byte, _destinationChain [8]byte, _addresses []common.Address, _extraData []byte, _burnHashes [][32]byte, _supplyOnAllChains []*big.Int, _importData []*big.Int, _proof []byte) (*types.Transaction, error) { + return _METToken.Contract.ImportMET(&_METToken.TransactOpts, _originChain, _destinationChain, _addresses, _extraData, _burnHashes, _supplyOnAllChains, _importData, _proof) +} + +// InitMETToken is a paid mutator transaction binding the contract method 0x195629de. +// +// Solidity: function initMETToken(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_METToken *METTokenTransactor) InitMETToken(opts *bind.TransactOpts, _autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "initMETToken", _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitMETToken is a paid mutator transaction binding the contract method 0x195629de. +// +// Solidity: function initMETToken(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_METToken *METTokenSession) InitMETToken(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _METToken.Contract.InitMETToken(&_METToken.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitMETToken is a paid mutator transaction binding the contract method 0x195629de. +// +// Solidity: function initMETToken(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_METToken *METTokenTransactorSession) InitMETToken(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _METToken.Contract.InitMETToken(&_METToken.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitMintable is a paid mutator transaction binding the contract method 0xc3f51fca. +// +// Solidity: function initMintable(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_METToken *METTokenTransactor) InitMintable(opts *bind.TransactOpts, _autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "initMintable", _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitMintable is a paid mutator transaction binding the contract method 0xc3f51fca. +// +// Solidity: function initMintable(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_METToken *METTokenSession) InitMintable(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _METToken.Contract.InitMintable(&_METToken.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitMintable is a paid mutator transaction binding the contract method 0xc3f51fca. +// +// Solidity: function initMintable(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_METToken *METTokenTransactorSession) InitMintable(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _METToken.Contract.InitMintable(&_METToken.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitToken is a paid mutator transaction binding the contract method 0x3bf11a6c. +// +// Solidity: function initToken(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_METToken *METTokenTransactor) InitToken(opts *bind.TransactOpts, _autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "initToken", _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitToken is a paid mutator transaction binding the contract method 0x3bf11a6c. +// +// Solidity: function initToken(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_METToken *METTokenSession) InitToken(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _METToken.Contract.InitToken(&_METToken.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitToken is a paid mutator transaction binding the contract method 0x3bf11a6c. +// +// Solidity: function initToken(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_METToken *METTokenTransactorSession) InitToken(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _METToken.Contract.InitToken(&_METToken.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(_to address, _value uint256) returns(bool) +func (_METToken *METTokenTransactor) Mint(opts *bind.TransactOpts, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "mint", _to, _value) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(_to address, _value uint256) returns(bool) +func (_METToken *METTokenSession) Mint(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.Mint(&_METToken.TransactOpts, _to, _value) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(_to address, _value uint256) returns(bool) +func (_METToken *METTokenTransactorSession) Mint(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.Mint(&_METToken.TransactOpts, _to, _value) +} + +// MultiSubWithdraw is a paid mutator transaction binding the contract method 0xbae1cc74. +// +// Solidity: function multiSubWithdraw(_owners address[]) returns(uint256) +func (_METToken *METTokenTransactor) MultiSubWithdraw(opts *bind.TransactOpts, _owners []common.Address) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "multiSubWithdraw", _owners) +} + +// MultiSubWithdraw is a paid mutator transaction binding the contract method 0xbae1cc74. +// +// Solidity: function multiSubWithdraw(_owners address[]) returns(uint256) +func (_METToken *METTokenSession) MultiSubWithdraw(_owners []common.Address) (*types.Transaction, error) { + return _METToken.Contract.MultiSubWithdraw(&_METToken.TransactOpts, _owners) +} + +// MultiSubWithdraw is a paid mutator transaction binding the contract method 0xbae1cc74. +// +// Solidity: function multiSubWithdraw(_owners address[]) returns(uint256) +func (_METToken *METTokenTransactorSession) MultiSubWithdraw(_owners []common.Address) (*types.Transaction, error) { + return _METToken.Contract.MultiSubWithdraw(&_METToken.TransactOpts, _owners) +} + +// MultiSubWithdrawFor is a paid mutator transaction binding the contract method 0xe6f47613. +// +// Solidity: function multiSubWithdrawFor(_owners address[], _recipients address[]) returns(uint256) +func (_METToken *METTokenTransactor) MultiSubWithdrawFor(opts *bind.TransactOpts, _owners []common.Address, _recipients []common.Address) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "multiSubWithdrawFor", _owners, _recipients) +} + +// MultiSubWithdrawFor is a paid mutator transaction binding the contract method 0xe6f47613. +// +// Solidity: function multiSubWithdrawFor(_owners address[], _recipients address[]) returns(uint256) +func (_METToken *METTokenSession) MultiSubWithdrawFor(_owners []common.Address, _recipients []common.Address) (*types.Transaction, error) { + return _METToken.Contract.MultiSubWithdrawFor(&_METToken.TransactOpts, _owners, _recipients) +} + +// MultiSubWithdrawFor is a paid mutator transaction binding the contract method 0xe6f47613. +// +// Solidity: function multiSubWithdrawFor(_owners address[], _recipients address[]) returns(uint256) +func (_METToken *METTokenTransactorSession) MultiSubWithdrawFor(_owners []common.Address, _recipients []common.Address) (*types.Transaction, error) { + return _METToken.Contract.MultiSubWithdrawFor(&_METToken.TransactOpts, _owners, _recipients) +} + +// MultiTransfer is a paid mutator transaction binding the contract method 0xb33fcc7a. +// +// Solidity: function multiTransfer(bits uint256[]) returns(bool) +func (_METToken *METTokenTransactor) MultiTransfer(opts *bind.TransactOpts, bits []*big.Int) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "multiTransfer", bits) +} + +// MultiTransfer is a paid mutator transaction binding the contract method 0xb33fcc7a. +// +// Solidity: function multiTransfer(bits uint256[]) returns(bool) +func (_METToken *METTokenSession) MultiTransfer(bits []*big.Int) (*types.Transaction, error) { + return _METToken.Contract.MultiTransfer(&_METToken.TransactOpts, bits) +} + +// MultiTransfer is a paid mutator transaction binding the contract method 0xb33fcc7a. +// +// Solidity: function multiTransfer(bits uint256[]) returns(bool) +func (_METToken *METTokenTransactorSession) MultiTransfer(bits []*big.Int) (*types.Transaction, error) { + return _METToken.Contract.MultiTransfer(&_METToken.TransactOpts, bits) +} + +// SetRoot is a paid mutator transaction binding the contract method 0xdab5f340. +// +// Solidity: function setRoot(data bytes32) returns() +func (_METToken *METTokenTransactor) SetRoot(opts *bind.TransactOpts, data [32]byte) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "setRoot", data) +} + +// SetRoot is a paid mutator transaction binding the contract method 0xdab5f340. +// +// Solidity: function setRoot(data bytes32) returns() +func (_METToken *METTokenSession) SetRoot(data [32]byte) (*types.Transaction, error) { + return _METToken.Contract.SetRoot(&_METToken.TransactOpts, data) +} + +// SetRoot is a paid mutator transaction binding the contract method 0xdab5f340. +// +// Solidity: function setRoot(data bytes32) returns() +func (_METToken *METTokenTransactorSession) SetRoot(data [32]byte) (*types.Transaction, error) { + return _METToken.Contract.SetRoot(&_METToken.TransactOpts, data) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_METToken *METTokenTransactor) SetTokenPorter(opts *bind.TransactOpts, _tokenPorter common.Address) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "setTokenPorter", _tokenPorter) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_METToken *METTokenSession) SetTokenPorter(_tokenPorter common.Address) (*types.Transaction, error) { + return _METToken.Contract.SetTokenPorter(&_METToken.TransactOpts, _tokenPorter) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_METToken *METTokenTransactorSession) SetTokenPorter(_tokenPorter common.Address) (*types.Transaction, error) { + return _METToken.Contract.SetTokenPorter(&_METToken.TransactOpts, _tokenPorter) +} + +// SubWithdraw is a paid mutator transaction binding the contract method 0x93b212bc. +// +// Solidity: function subWithdraw(_owner address) returns(bool) +func (_METToken *METTokenTransactor) SubWithdraw(opts *bind.TransactOpts, _owner common.Address) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "subWithdraw", _owner) +} + +// SubWithdraw is a paid mutator transaction binding the contract method 0x93b212bc. +// +// Solidity: function subWithdraw(_owner address) returns(bool) +func (_METToken *METTokenSession) SubWithdraw(_owner common.Address) (*types.Transaction, error) { + return _METToken.Contract.SubWithdraw(&_METToken.TransactOpts, _owner) +} + +// SubWithdraw is a paid mutator transaction binding the contract method 0x93b212bc. +// +// Solidity: function subWithdraw(_owner address) returns(bool) +func (_METToken *METTokenTransactorSession) SubWithdraw(_owner common.Address) (*types.Transaction, error) { + return _METToken.Contract.SubWithdraw(&_METToken.TransactOpts, _owner) +} + +// Subscribe is a paid mutator transaction binding the contract method 0xaa4925d7. +// +// Solidity: function subscribe(_startTime uint256, _payPerWeek uint256, _recipient address) returns(bool) +func (_METToken *METTokenTransactor) Subscribe(opts *bind.TransactOpts, _startTime *big.Int, _payPerWeek *big.Int, _recipient common.Address) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "subscribe", _startTime, _payPerWeek, _recipient) +} + +// Subscribe is a paid mutator transaction binding the contract method 0xaa4925d7. +// +// Solidity: function subscribe(_startTime uint256, _payPerWeek uint256, _recipient address) returns(bool) +func (_METToken *METTokenSession) Subscribe(_startTime *big.Int, _payPerWeek *big.Int, _recipient common.Address) (*types.Transaction, error) { + return _METToken.Contract.Subscribe(&_METToken.TransactOpts, _startTime, _payPerWeek, _recipient) +} + +// Subscribe is a paid mutator transaction binding the contract method 0xaa4925d7. +// +// Solidity: function subscribe(_startTime uint256, _payPerWeek uint256, _recipient address) returns(bool) +func (_METToken *METTokenTransactorSession) Subscribe(_startTime *big.Int, _payPerWeek *big.Int, _recipient common.Address) (*types.Transaction, error) { + return _METToken.Contract.Subscribe(&_METToken.TransactOpts, _startTime, _payPerWeek, _recipient) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(_to address, _value uint256) returns(bool) +func (_METToken *METTokenTransactor) Transfer(opts *bind.TransactOpts, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "transfer", _to, _value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(_to address, _value uint256) returns(bool) +func (_METToken *METTokenSession) Transfer(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.Transfer(&_METToken.TransactOpts, _to, _value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(_to address, _value uint256) returns(bool) +func (_METToken *METTokenTransactorSession) Transfer(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.Transfer(&_METToken.TransactOpts, _to, _value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(_from address, _to address, _value uint256) returns(bool) +func (_METToken *METTokenTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.contract.Transact(opts, "transferFrom", _from, _to, _value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(_from address, _to address, _value uint256) returns(bool) +func (_METToken *METTokenSession) TransferFrom(_from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.TransferFrom(&_METToken.TransactOpts, _from, _to, _value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(_from address, _to address, _value uint256) returns(bool) +func (_METToken *METTokenTransactorSession) TransferFrom(_from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _METToken.Contract.TransferFrom(&_METToken.TransactOpts, _from, _to, _value) +} + +// METTokenApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the METToken contract. +type METTokenApprovalIterator struct { + Event *METTokenApproval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *METTokenApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(METTokenApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(METTokenApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *METTokenApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *METTokenApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// METTokenApproval represents a Approval event raised by the METToken contract. +type METTokenApproval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: e Approval(_owner indexed address, _spender indexed address, _value uint256) +func (_METToken *METTokenFilterer) FilterApproval(opts *bind.FilterOpts, _owner []common.Address, _spender []common.Address) (*METTokenApprovalIterator, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _spenderRule []interface{} + for _, _spenderItem := range _spender { + _spenderRule = append(_spenderRule, _spenderItem) + } + + logs, sub, err := _METToken.contract.FilterLogs(opts, "Approval", _ownerRule, _spenderRule) + if err != nil { + return nil, err + } + return &METTokenApprovalIterator{contract: _METToken.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: e Approval(_owner indexed address, _spender indexed address, _value uint256) +func (_METToken *METTokenFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *METTokenApproval, _owner []common.Address, _spender []common.Address) (event.Subscription, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _spenderRule []interface{} + for _, _spenderItem := range _spender { + _spenderRule = append(_spenderRule, _spenderItem) + } + + logs, sub, err := _METToken.contract.WatchLogs(opts, "Approval", _ownerRule, _spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(METTokenApproval) + if err := _METToken.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// METTokenDestroyIterator is returned from FilterDestroy and is used to iterate over the raw logs and unpacked data for Destroy events raised by the METToken contract. +type METTokenDestroyIterator struct { + Event *METTokenDestroy // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *METTokenDestroyIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(METTokenDestroy) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(METTokenDestroy) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *METTokenDestroyIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *METTokenDestroyIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// METTokenDestroy represents a Destroy event raised by the METToken contract. +type METTokenDestroy struct { + From common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDestroy is a free log retrieval operation binding the contract event 0x81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee. +// +// Solidity: e Destroy(_from indexed address, _value uint256) +func (_METToken *METTokenFilterer) FilterDestroy(opts *bind.FilterOpts, _from []common.Address) (*METTokenDestroyIterator, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + + logs, sub, err := _METToken.contract.FilterLogs(opts, "Destroy", _fromRule) + if err != nil { + return nil, err + } + return &METTokenDestroyIterator{contract: _METToken.contract, event: "Destroy", logs: logs, sub: sub}, nil +} + +// WatchDestroy is a free log subscription operation binding the contract event 0x81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee. +// +// Solidity: e Destroy(_from indexed address, _value uint256) +func (_METToken *METTokenFilterer) WatchDestroy(opts *bind.WatchOpts, sink chan<- *METTokenDestroy, _from []common.Address) (event.Subscription, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + + logs, sub, err := _METToken.contract.WatchLogs(opts, "Destroy", _fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(METTokenDestroy) + if err := _METToken.contract.UnpackLog(event, "Destroy", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// METTokenLogCancelSubscriptionIterator is returned from FilterLogCancelSubscription and is used to iterate over the raw logs and unpacked data for LogCancelSubscription events raised by the METToken contract. +type METTokenLogCancelSubscriptionIterator struct { + Event *METTokenLogCancelSubscription // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *METTokenLogCancelSubscriptionIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(METTokenLogCancelSubscription) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(METTokenLogCancelSubscription) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *METTokenLogCancelSubscriptionIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *METTokenLogCancelSubscriptionIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// METTokenLogCancelSubscription represents a LogCancelSubscription event raised by the METToken contract. +type METTokenLogCancelSubscription struct { + Subscriber common.Address + SubscribesTo common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogCancelSubscription is a free log retrieval operation binding the contract event 0x4bc04e574b4f2b061a663b3328263978d3adeab9e4ea9526441c159cdee4eca8. +// +// Solidity: e LogCancelSubscription(subscriber indexed address, subscribesTo indexed address) +func (_METToken *METTokenFilterer) FilterLogCancelSubscription(opts *bind.FilterOpts, subscriber []common.Address, subscribesTo []common.Address) (*METTokenLogCancelSubscriptionIterator, error) { + + var subscriberRule []interface{} + for _, subscriberItem := range subscriber { + subscriberRule = append(subscriberRule, subscriberItem) + } + var subscribesToRule []interface{} + for _, subscribesToItem := range subscribesTo { + subscribesToRule = append(subscribesToRule, subscribesToItem) + } + + logs, sub, err := _METToken.contract.FilterLogs(opts, "LogCancelSubscription", subscriberRule, subscribesToRule) + if err != nil { + return nil, err + } + return &METTokenLogCancelSubscriptionIterator{contract: _METToken.contract, event: "LogCancelSubscription", logs: logs, sub: sub}, nil +} + +// WatchLogCancelSubscription is a free log subscription operation binding the contract event 0x4bc04e574b4f2b061a663b3328263978d3adeab9e4ea9526441c159cdee4eca8. +// +// Solidity: e LogCancelSubscription(subscriber indexed address, subscribesTo indexed address) +func (_METToken *METTokenFilterer) WatchLogCancelSubscription(opts *bind.WatchOpts, sink chan<- *METTokenLogCancelSubscription, subscriber []common.Address, subscribesTo []common.Address) (event.Subscription, error) { + + var subscriberRule []interface{} + for _, subscriberItem := range subscriber { + subscriberRule = append(subscriberRule, subscriberItem) + } + var subscribesToRule []interface{} + for _, subscribesToItem := range subscribesTo { + subscribesToRule = append(subscribesToRule, subscribesToItem) + } + + logs, sub, err := _METToken.contract.WatchLogs(opts, "LogCancelSubscription", subscriberRule, subscribesToRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(METTokenLogCancelSubscription) + if err := _METToken.contract.UnpackLog(event, "LogCancelSubscription", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// METTokenLogSubscriptionIterator is returned from FilterLogSubscription and is used to iterate over the raw logs and unpacked data for LogSubscription events raised by the METToken contract. +type METTokenLogSubscriptionIterator struct { + Event *METTokenLogSubscription // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *METTokenLogSubscriptionIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(METTokenLogSubscription) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(METTokenLogSubscription) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *METTokenLogSubscriptionIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *METTokenLogSubscriptionIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// METTokenLogSubscription represents a LogSubscription event raised by the METToken contract. +type METTokenLogSubscription struct { + Subscriber common.Address + SubscribesTo common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogSubscription is a free log retrieval operation binding the contract event 0x5c632ccb5c42002836e0c49ef1f6d67e925c5e77c1048ddbb47a9bf6a0f2d012. +// +// Solidity: e LogSubscription(subscriber indexed address, subscribesTo indexed address) +func (_METToken *METTokenFilterer) FilterLogSubscription(opts *bind.FilterOpts, subscriber []common.Address, subscribesTo []common.Address) (*METTokenLogSubscriptionIterator, error) { + + var subscriberRule []interface{} + for _, subscriberItem := range subscriber { + subscriberRule = append(subscriberRule, subscriberItem) + } + var subscribesToRule []interface{} + for _, subscribesToItem := range subscribesTo { + subscribesToRule = append(subscribesToRule, subscribesToItem) + } + + logs, sub, err := _METToken.contract.FilterLogs(opts, "LogSubscription", subscriberRule, subscribesToRule) + if err != nil { + return nil, err + } + return &METTokenLogSubscriptionIterator{contract: _METToken.contract, event: "LogSubscription", logs: logs, sub: sub}, nil +} + +// WatchLogSubscription is a free log subscription operation binding the contract event 0x5c632ccb5c42002836e0c49ef1f6d67e925c5e77c1048ddbb47a9bf6a0f2d012. +// +// Solidity: e LogSubscription(subscriber indexed address, subscribesTo indexed address) +func (_METToken *METTokenFilterer) WatchLogSubscription(opts *bind.WatchOpts, sink chan<- *METTokenLogSubscription, subscriber []common.Address, subscribesTo []common.Address) (event.Subscription, error) { + + var subscriberRule []interface{} + for _, subscriberItem := range subscriber { + subscriberRule = append(subscriberRule, subscriberItem) + } + var subscribesToRule []interface{} + for _, subscribesToItem := range subscribesTo { + subscribesToRule = append(subscribesToRule, subscribesToItem) + } + + logs, sub, err := _METToken.contract.WatchLogs(opts, "LogSubscription", subscriberRule, subscribesToRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(METTokenLogSubscription) + if err := _METToken.contract.UnpackLog(event, "LogSubscription", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// METTokenMintIterator is returned from FilterMint and is used to iterate over the raw logs and unpacked data for Mint events raised by the METToken contract. +type METTokenMintIterator struct { + Event *METTokenMint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *METTokenMintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(METTokenMint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(METTokenMint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *METTokenMintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *METTokenMintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// METTokenMint represents a Mint event raised by the METToken contract. +type METTokenMint struct { + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMint is a free log retrieval operation binding the contract event 0x0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885. +// +// Solidity: e Mint(_to indexed address, _value uint256) +func (_METToken *METTokenFilterer) FilterMint(opts *bind.FilterOpts, _to []common.Address) (*METTokenMintIterator, error) { + + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _METToken.contract.FilterLogs(opts, "Mint", _toRule) + if err != nil { + return nil, err + } + return &METTokenMintIterator{contract: _METToken.contract, event: "Mint", logs: logs, sub: sub}, nil +} + +// WatchMint is a free log subscription operation binding the contract event 0x0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885. +// +// Solidity: e Mint(_to indexed address, _value uint256) +func (_METToken *METTokenFilterer) WatchMint(opts *bind.WatchOpts, sink chan<- *METTokenMint, _to []common.Address) (event.Subscription, error) { + + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _METToken.contract.WatchLogs(opts, "Mint", _toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(METTokenMint) + if err := _METToken.contract.UnpackLog(event, "Mint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// METTokenOwnershipChangedIterator is returned from FilterOwnershipChanged and is used to iterate over the raw logs and unpacked data for OwnershipChanged events raised by the METToken contract. +type METTokenOwnershipChangedIterator struct { + Event *METTokenOwnershipChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *METTokenOwnershipChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(METTokenOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(METTokenOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *METTokenOwnershipChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *METTokenOwnershipChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// METTokenOwnershipChanged represents a OwnershipChanged event raised by the METToken contract. +type METTokenOwnershipChanged struct { + PrevOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipChanged is a free log retrieval operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_METToken *METTokenFilterer) FilterOwnershipChanged(opts *bind.FilterOpts, prevOwner []common.Address, newOwner []common.Address) (*METTokenOwnershipChangedIterator, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _METToken.contract.FilterLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &METTokenOwnershipChangedIterator{contract: _METToken.contract, event: "OwnershipChanged", logs: logs, sub: sub}, nil +} + +// WatchOwnershipChanged is a free log subscription operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_METToken *METTokenFilterer) WatchOwnershipChanged(opts *bind.WatchOpts, sink chan<- *METTokenOwnershipChanged, prevOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _METToken.contract.WatchLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(METTokenOwnershipChanged) + if err := _METToken.contract.UnpackLog(event, "OwnershipChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// METTokenTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the METToken contract. +type METTokenTransferIterator struct { + Event *METTokenTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *METTokenTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(METTokenTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(METTokenTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *METTokenTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *METTokenTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// METTokenTransfer represents a Transfer event raised by the METToken contract. +type METTokenTransfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: e Transfer(_from indexed address, _to indexed address, _value uint256) +func (_METToken *METTokenFilterer) FilterTransfer(opts *bind.FilterOpts, _from []common.Address, _to []common.Address) (*METTokenTransferIterator, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _METToken.contract.FilterLogs(opts, "Transfer", _fromRule, _toRule) + if err != nil { + return nil, err + } + return &METTokenTransferIterator{contract: _METToken.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: e Transfer(_from indexed address, _to indexed address, _value uint256) +func (_METToken *METTokenFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *METTokenTransfer, _from []common.Address, _to []common.Address) (event.Subscription, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _METToken.contract.WatchLogs(opts, "Transfer", _fromRule, _toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(METTokenTransfer) + if err := _METToken.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// MintableABI is the input ABI used to generate the binding from. +const MintableABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"minter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenPorter\",\"type\":\"address\"}],\"name\":\"setTokenPorter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenPorter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"autonomousConverter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"destroy\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_autonomousConverter\",\"type\":\"address\"},{\"name\":\"_minter\",\"type\":\"address\"},{\"name\":\"_initialSupply\",\"type\":\"uint256\"},{\"name\":\"_decmult\",\"type\":\"uint256\"}],\"name\":\"initMintable\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Destroy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"}]" + +// MintableBin is the compiled bytecode used for deploying new contracts. +const MintableBin = `0x608060405260008054600160a060020a031916331790556107bb806100256000396000f3006080604052600436106100c45763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630754617281146100c957806318160ddd146100fa5780631987b887146101215780632af4c31e1461015657806340c10f19146101775780634892f0af1461019b57806350b48c5e146101b057806370a08231146101c557806379ba5097146101e65780638da5cb5b146101fb578063a24835d114610210578063c3f51fca14610234578063d4ee1d9014610263575b600080fd5b3480156100d557600080fd5b506100de610278565b60408051600160a060020a039092168252519081900360200190f35b34801561010657600080fd5b5061010f610287565b60408051918252519081900360200190f35b34801561012d57600080fd5b50610142600160a060020a036004351661028d565b604080519115158252519081900360200190f35b34801561016257600080fd5b50610142600160a060020a03600435166102ec565b34801561018357600080fd5b50610142600160a060020a036004351660243561034f565b3480156101a757600080fd5b506100de610461565b3480156101bc57600080fd5b506100de610470565b3480156101d157600080fd5b5061010f600160a060020a036004351661047f565b3480156101f257600080fd5b5061014261049a565b34801561020757600080fd5b506100de610525565b34801561021c57600080fd5b50610142600160a060020a0360043516602435610534565b34801561024057600080fd5b50610261600160a060020a0360043581169060243516604435606435610646565b005b34801561026f57600080fd5b506100de610729565b600554600160a060020a031681565b60025490565b60008054600160a060020a031633146102a557600080fd5b600160a060020a03821615156102ba57600080fd5b5060068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60008054600160a060020a0316331461030457600080fd5b600054600160a060020a038381169116141561031f57600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b600554600090600160a060020a03163314806103755750600654600160a060020a031633145b151561038057600080fd5b600160a060020a0383166000908152600360205260409020546103a9908363ffffffff61073816565b600160a060020a0384166000908152600360205260409020556002546103d5908363ffffffff61073816565b600255604080518381529051600160a060020a038516917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a2604080518381529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b600654600160a060020a031681565b600454600160a060020a031681565b600160a060020a031660009081526003602052604090205490565b600154600090600160a060020a031633146104b457600080fd5b60015460008054604051600160a060020a0393841693909116917f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b91a350600180546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905590565b600054600160a060020a031681565b600454600090600160a060020a031633148061055a5750600654600160a060020a031633145b151561056557600080fd5b600160a060020a03831660009081526003602052604090205461058e908363ffffffff61075216565b600160a060020a0384166000908152600360205260409020556002546105ba908363ffffffff61075216565b600255604080518381529051600160a060020a038516917f81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee919081900360200190a2604080518381529051600091600160a060020a038616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b600054600160a060020a0316331461065d57600080fd5b600454600160a060020a031615801561067e5750600160a060020a03841615155b151561068957600080fd5b600554600160a060020a03161580156106aa5750600160a060020a03831615155b15156106b557600080fd5b60048054600160a060020a0380871673ffffffffffffffffffffffffffffffffffffffff19928316179092556005805492861692909116919091179055610702828263ffffffff61076416565b6002819055600160a060020a03909416600090815260036020526040902093909355505050565b600154600160a060020a031681565b60008282018381101561074757fe5b8091505b5092915050565b60008282111561075e57fe5b50900390565b600080831515610777576000915061074b565b5082820282848281151561078757fe5b041461074757fe00a165627a7a7230582040f2e3459940a232c67452452a7b8278fac06c4d656f9b326e841cf72ab9d3190029` + +// DeployMintable deploys a new Ethereum contract, binding an instance of Mintable to it. +func DeployMintable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Mintable, error) { + parsed, err := abi.JSON(strings.NewReader(MintableABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(MintableBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Mintable{MintableCaller: MintableCaller{contract: contract}, MintableTransactor: MintableTransactor{contract: contract}, MintableFilterer: MintableFilterer{contract: contract}}, nil +} + +// Mintable is an auto generated Go binding around an Ethereum contract. +type Mintable struct { + MintableCaller // Read-only binding to the contract + MintableTransactor // Write-only binding to the contract + MintableFilterer // Log filterer for contract events +} + +// MintableCaller is an auto generated read-only Go binding around an Ethereum contract. +type MintableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MintableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type MintableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MintableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type MintableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// MintableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type MintableSession struct { + Contract *Mintable // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// MintableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type MintableCallerSession struct { + Contract *MintableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// MintableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type MintableTransactorSession struct { + Contract *MintableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// MintableRaw is an auto generated low-level Go binding around an Ethereum contract. +type MintableRaw struct { + Contract *Mintable // Generic contract binding to access the raw methods on +} + +// MintableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type MintableCallerRaw struct { + Contract *MintableCaller // Generic read-only contract binding to access the raw methods on +} + +// MintableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type MintableTransactorRaw struct { + Contract *MintableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewMintable creates a new instance of Mintable, bound to a specific deployed contract. +func NewMintable(address common.Address, backend bind.ContractBackend) (*Mintable, error) { + contract, err := bindMintable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Mintable{MintableCaller: MintableCaller{contract: contract}, MintableTransactor: MintableTransactor{contract: contract}, MintableFilterer: MintableFilterer{contract: contract}}, nil +} + +// NewMintableCaller creates a new read-only instance of Mintable, bound to a specific deployed contract. +func NewMintableCaller(address common.Address, caller bind.ContractCaller) (*MintableCaller, error) { + contract, err := bindMintable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &MintableCaller{contract: contract}, nil +} + +// NewMintableTransactor creates a new write-only instance of Mintable, bound to a specific deployed contract. +func NewMintableTransactor(address common.Address, transactor bind.ContractTransactor) (*MintableTransactor, error) { + contract, err := bindMintable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &MintableTransactor{contract: contract}, nil +} + +// NewMintableFilterer creates a new log filterer instance of Mintable, bound to a specific deployed contract. +func NewMintableFilterer(address common.Address, filterer bind.ContractFilterer) (*MintableFilterer, error) { + contract, err := bindMintable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &MintableFilterer{contract: contract}, nil +} + +// bindMintable binds a generic wrapper to an already deployed contract. +func bindMintable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(MintableABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Mintable *MintableRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Mintable.Contract.MintableCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Mintable *MintableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Mintable.Contract.MintableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Mintable *MintableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Mintable.Contract.MintableTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Mintable *MintableCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Mintable.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Mintable *MintableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Mintable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Mintable *MintableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Mintable.Contract.contract.Transact(opts, method, params...) +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_Mintable *MintableCaller) AutonomousConverter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Mintable.contract.Call(opts, out, "autonomousConverter") + return *ret0, err +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_Mintable *MintableSession) AutonomousConverter() (common.Address, error) { + return _Mintable.Contract.AutonomousConverter(&_Mintable.CallOpts) +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_Mintable *MintableCallerSession) AutonomousConverter() (common.Address, error) { + return _Mintable.Contract.AutonomousConverter(&_Mintable.CallOpts) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_Mintable *MintableCaller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Mintable.contract.Call(opts, out, "balanceOf", _owner) + return *ret0, err +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_Mintable *MintableSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _Mintable.Contract.BalanceOf(&_Mintable.CallOpts, _owner) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_Mintable *MintableCallerSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _Mintable.Contract.BalanceOf(&_Mintable.CallOpts, _owner) +} + +// Minter is a free data retrieval call binding the contract method 0x07546172. +// +// Solidity: function minter() constant returns(address) +func (_Mintable *MintableCaller) Minter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Mintable.contract.Call(opts, out, "minter") + return *ret0, err +} + +// Minter is a free data retrieval call binding the contract method 0x07546172. +// +// Solidity: function minter() constant returns(address) +func (_Mintable *MintableSession) Minter() (common.Address, error) { + return _Mintable.Contract.Minter(&_Mintable.CallOpts) +} + +// Minter is a free data retrieval call binding the contract method 0x07546172. +// +// Solidity: function minter() constant returns(address) +func (_Mintable *MintableCallerSession) Minter() (common.Address, error) { + return _Mintable.Contract.Minter(&_Mintable.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Mintable *MintableCaller) NewOwner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Mintable.contract.Call(opts, out, "newOwner") + return *ret0, err +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Mintable *MintableSession) NewOwner() (common.Address, error) { + return _Mintable.Contract.NewOwner(&_Mintable.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Mintable *MintableCallerSession) NewOwner() (common.Address, error) { + return _Mintable.Contract.NewOwner(&_Mintable.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Mintable *MintableCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Mintable.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Mintable *MintableSession) Owner() (common.Address, error) { + return _Mintable.Contract.Owner(&_Mintable.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Mintable *MintableCallerSession) Owner() (common.Address, error) { + return _Mintable.Contract.Owner(&_Mintable.CallOpts) +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_Mintable *MintableCaller) TokenPorter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Mintable.contract.Call(opts, out, "tokenPorter") + return *ret0, err +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_Mintable *MintableSession) TokenPorter() (common.Address, error) { + return _Mintable.Contract.TokenPorter(&_Mintable.CallOpts) +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_Mintable *MintableCallerSession) TokenPorter() (common.Address, error) { + return _Mintable.Contract.TokenPorter(&_Mintable.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_Mintable *MintableCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Mintable.contract.Call(opts, out, "totalSupply") + return *ret0, err +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_Mintable *MintableSession) TotalSupply() (*big.Int, error) { + return _Mintable.Contract.TotalSupply(&_Mintable.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_Mintable *MintableCallerSession) TotalSupply() (*big.Int, error) { + return _Mintable.Contract.TotalSupply(&_Mintable.CallOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Mintable *MintableTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Mintable.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Mintable *MintableSession) AcceptOwnership() (*types.Transaction, error) { + return _Mintable.Contract.AcceptOwnership(&_Mintable.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Mintable *MintableTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _Mintable.Contract.AcceptOwnership(&_Mintable.TransactOpts) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Mintable *MintableTransactor) ChangeOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) { + return _Mintable.contract.Transact(opts, "changeOwnership", _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Mintable *MintableSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Mintable.Contract.ChangeOwnership(&_Mintable.TransactOpts, _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Mintable *MintableTransactorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Mintable.Contract.ChangeOwnership(&_Mintable.TransactOpts, _newOwner) +} + +// Destroy is a paid mutator transaction binding the contract method 0xa24835d1. +// +// Solidity: function destroy(_from address, _value uint256) returns(bool) +func (_Mintable *MintableTransactor) Destroy(opts *bind.TransactOpts, _from common.Address, _value *big.Int) (*types.Transaction, error) { + return _Mintable.contract.Transact(opts, "destroy", _from, _value) +} + +// Destroy is a paid mutator transaction binding the contract method 0xa24835d1. +// +// Solidity: function destroy(_from address, _value uint256) returns(bool) +func (_Mintable *MintableSession) Destroy(_from common.Address, _value *big.Int) (*types.Transaction, error) { + return _Mintable.Contract.Destroy(&_Mintable.TransactOpts, _from, _value) +} + +// Destroy is a paid mutator transaction binding the contract method 0xa24835d1. +// +// Solidity: function destroy(_from address, _value uint256) returns(bool) +func (_Mintable *MintableTransactorSession) Destroy(_from common.Address, _value *big.Int) (*types.Transaction, error) { + return _Mintable.Contract.Destroy(&_Mintable.TransactOpts, _from, _value) +} + +// InitMintable is a paid mutator transaction binding the contract method 0xc3f51fca. +// +// Solidity: function initMintable(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_Mintable *MintableTransactor) InitMintable(opts *bind.TransactOpts, _autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _Mintable.contract.Transact(opts, "initMintable", _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitMintable is a paid mutator transaction binding the contract method 0xc3f51fca. +// +// Solidity: function initMintable(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_Mintable *MintableSession) InitMintable(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _Mintable.Contract.InitMintable(&_Mintable.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitMintable is a paid mutator transaction binding the contract method 0xc3f51fca. +// +// Solidity: function initMintable(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_Mintable *MintableTransactorSession) InitMintable(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _Mintable.Contract.InitMintable(&_Mintable.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(_to address, _value uint256) returns(bool) +func (_Mintable *MintableTransactor) Mint(opts *bind.TransactOpts, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _Mintable.contract.Transact(opts, "mint", _to, _value) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(_to address, _value uint256) returns(bool) +func (_Mintable *MintableSession) Mint(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _Mintable.Contract.Mint(&_Mintable.TransactOpts, _to, _value) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(_to address, _value uint256) returns(bool) +func (_Mintable *MintableTransactorSession) Mint(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _Mintable.Contract.Mint(&_Mintable.TransactOpts, _to, _value) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_Mintable *MintableTransactor) SetTokenPorter(opts *bind.TransactOpts, _tokenPorter common.Address) (*types.Transaction, error) { + return _Mintable.contract.Transact(opts, "setTokenPorter", _tokenPorter) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_Mintable *MintableSession) SetTokenPorter(_tokenPorter common.Address) (*types.Transaction, error) { + return _Mintable.Contract.SetTokenPorter(&_Mintable.TransactOpts, _tokenPorter) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_Mintable *MintableTransactorSession) SetTokenPorter(_tokenPorter common.Address) (*types.Transaction, error) { + return _Mintable.Contract.SetTokenPorter(&_Mintable.TransactOpts, _tokenPorter) +} + +// MintableDestroyIterator is returned from FilterDestroy and is used to iterate over the raw logs and unpacked data for Destroy events raised by the Mintable contract. +type MintableDestroyIterator struct { + Event *MintableDestroy // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MintableDestroyIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MintableDestroy) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MintableDestroy) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MintableDestroyIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MintableDestroyIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MintableDestroy represents a Destroy event raised by the Mintable contract. +type MintableDestroy struct { + From common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDestroy is a free log retrieval operation binding the contract event 0x81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee. +// +// Solidity: e Destroy(_from indexed address, _value uint256) +func (_Mintable *MintableFilterer) FilterDestroy(opts *bind.FilterOpts, _from []common.Address) (*MintableDestroyIterator, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + + logs, sub, err := _Mintable.contract.FilterLogs(opts, "Destroy", _fromRule) + if err != nil { + return nil, err + } + return &MintableDestroyIterator{contract: _Mintable.contract, event: "Destroy", logs: logs, sub: sub}, nil +} + +// WatchDestroy is a free log subscription operation binding the contract event 0x81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee. +// +// Solidity: e Destroy(_from indexed address, _value uint256) +func (_Mintable *MintableFilterer) WatchDestroy(opts *bind.WatchOpts, sink chan<- *MintableDestroy, _from []common.Address) (event.Subscription, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + + logs, sub, err := _Mintable.contract.WatchLogs(opts, "Destroy", _fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MintableDestroy) + if err := _Mintable.contract.UnpackLog(event, "Destroy", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// MintableMintIterator is returned from FilterMint and is used to iterate over the raw logs and unpacked data for Mint events raised by the Mintable contract. +type MintableMintIterator struct { + Event *MintableMint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MintableMintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MintableMint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MintableMint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MintableMintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MintableMintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MintableMint represents a Mint event raised by the Mintable contract. +type MintableMint struct { + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMint is a free log retrieval operation binding the contract event 0x0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885. +// +// Solidity: e Mint(_to indexed address, _value uint256) +func (_Mintable *MintableFilterer) FilterMint(opts *bind.FilterOpts, _to []common.Address) (*MintableMintIterator, error) { + + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _Mintable.contract.FilterLogs(opts, "Mint", _toRule) + if err != nil { + return nil, err + } + return &MintableMintIterator{contract: _Mintable.contract, event: "Mint", logs: logs, sub: sub}, nil +} + +// WatchMint is a free log subscription operation binding the contract event 0x0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885. +// +// Solidity: e Mint(_to indexed address, _value uint256) +func (_Mintable *MintableFilterer) WatchMint(opts *bind.WatchOpts, sink chan<- *MintableMint, _to []common.Address) (event.Subscription, error) { + + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _Mintable.contract.WatchLogs(opts, "Mint", _toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MintableMint) + if err := _Mintable.contract.UnpackLog(event, "Mint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// MintableOwnershipChangedIterator is returned from FilterOwnershipChanged and is used to iterate over the raw logs and unpacked data for OwnershipChanged events raised by the Mintable contract. +type MintableOwnershipChangedIterator struct { + Event *MintableOwnershipChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MintableOwnershipChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MintableOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MintableOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MintableOwnershipChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MintableOwnershipChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MintableOwnershipChanged represents a OwnershipChanged event raised by the Mintable contract. +type MintableOwnershipChanged struct { + PrevOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipChanged is a free log retrieval operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Mintable *MintableFilterer) FilterOwnershipChanged(opts *bind.FilterOpts, prevOwner []common.Address, newOwner []common.Address) (*MintableOwnershipChangedIterator, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Mintable.contract.FilterLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &MintableOwnershipChangedIterator{contract: _Mintable.contract, event: "OwnershipChanged", logs: logs, sub: sub}, nil +} + +// WatchOwnershipChanged is a free log subscription operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Mintable *MintableFilterer) WatchOwnershipChanged(opts *bind.WatchOpts, sink chan<- *MintableOwnershipChanged, prevOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Mintable.contract.WatchLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MintableOwnershipChanged) + if err := _Mintable.contract.UnpackLog(event, "OwnershipChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// MintableTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the Mintable contract. +type MintableTransferIterator struct { + Event *MintableTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *MintableTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(MintableTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(MintableTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *MintableTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *MintableTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// MintableTransfer represents a Transfer event raised by the Mintable contract. +type MintableTransfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: e Transfer(_from indexed address, _to indexed address, _value uint256) +func (_Mintable *MintableFilterer) FilterTransfer(opts *bind.FilterOpts, _from []common.Address, _to []common.Address) (*MintableTransferIterator, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _Mintable.contract.FilterLogs(opts, "Transfer", _fromRule, _toRule) + if err != nil { + return nil, err + } + return &MintableTransferIterator{contract: _Mintable.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: e Transfer(_from indexed address, _to indexed address, _value uint256) +func (_Mintable *MintableFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *MintableTransfer, _from []common.Address, _to []common.Address) (event.Subscription, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _Mintable.contract.WatchLogs(opts, "Transfer", _fromRule, _toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(MintableTransfer) + if err := _Mintable.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// OwnableABI is the input ABI used to generate the binding from. +const OwnableABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"}]" + +// OwnableBin is the compiled bytecode used for deploying new contracts. +const OwnableBin = `0x608060405234801561001057600080fd5b5060008054600160a060020a031916331790556101a4806100326000396000f30060806040526004361061004b5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e81146100505780638da5cb5b14610085575b600080fd5b34801561005c57600080fd5b50610071600160a060020a03600435166100b6565b604080519115158252519081900360200190f35b34801561009157600080fd5b5061009a610169565b60408051600160a060020a039092168252519081900360200190f35b60008054600160a060020a031633146100ce57600080fd5b600160a060020a03821615156100e357600080fd5b600054600160a060020a03838116911614156100fe57600080fd5b60008054604051600160a060020a03808616939216917f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b91a35060008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b600054600160a060020a0316815600a165627a7a723058207bd8a8d0fb76bdf1d8644bd2aacc83e89cfe2131fbaf5b9a2f8fb59a715b202c0029` + +// DeployOwnable deploys a new Ethereum contract, binding an instance of Ownable to it. +func DeployOwnable(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Ownable, error) { + parsed, err := abi.JSON(strings.NewReader(OwnableABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(OwnableBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil +} + +// Ownable is an auto generated Go binding around an Ethereum contract. +type Ownable struct { + OwnableCaller // Read-only binding to the contract + OwnableTransactor // Write-only binding to the contract + OwnableFilterer // Log filterer for contract events +} + +// OwnableCaller is an auto generated read-only Go binding around an Ethereum contract. +type OwnableCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnableTransactor is an auto generated write-only Go binding around an Ethereum contract. +type OwnableTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnableFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type OwnableFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnableSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type OwnableSession struct { + Contract *Ownable // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// OwnableCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type OwnableCallerSession struct { + Contract *OwnableCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// OwnableTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type OwnableTransactorSession struct { + Contract *OwnableTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// OwnableRaw is an auto generated low-level Go binding around an Ethereum contract. +type OwnableRaw struct { + Contract *Ownable // Generic contract binding to access the raw methods on +} + +// OwnableCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type OwnableCallerRaw struct { + Contract *OwnableCaller // Generic read-only contract binding to access the raw methods on +} + +// OwnableTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type OwnableTransactorRaw struct { + Contract *OwnableTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewOwnable creates a new instance of Ownable, bound to a specific deployed contract. +func NewOwnable(address common.Address, backend bind.ContractBackend) (*Ownable, error) { + contract, err := bindOwnable(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Ownable{OwnableCaller: OwnableCaller{contract: contract}, OwnableTransactor: OwnableTransactor{contract: contract}, OwnableFilterer: OwnableFilterer{contract: contract}}, nil +} + +// NewOwnableCaller creates a new read-only instance of Ownable, bound to a specific deployed contract. +func NewOwnableCaller(address common.Address, caller bind.ContractCaller) (*OwnableCaller, error) { + contract, err := bindOwnable(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &OwnableCaller{contract: contract}, nil +} + +// NewOwnableTransactor creates a new write-only instance of Ownable, bound to a specific deployed contract. +func NewOwnableTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnableTransactor, error) { + contract, err := bindOwnable(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &OwnableTransactor{contract: contract}, nil +} + +// NewOwnableFilterer creates a new log filterer instance of Ownable, bound to a specific deployed contract. +func NewOwnableFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnableFilterer, error) { + contract, err := bindOwnable(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &OwnableFilterer{contract: contract}, nil +} + +// bindOwnable binds a generic wrapper to an already deployed contract. +func bindOwnable(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(OwnableABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Ownable *OwnableRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Ownable.Contract.OwnableCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Ownable *OwnableRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Ownable.Contract.OwnableTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Ownable *OwnableRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Ownable.Contract.OwnableTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Ownable *OwnableCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Ownable.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Ownable *OwnableTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Ownable.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Ownable *OwnableTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Ownable.Contract.contract.Transact(opts, method, params...) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Ownable *OwnableCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Ownable.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Ownable *OwnableSession) Owner() (common.Address, error) { + return _Ownable.Contract.Owner(&_Ownable.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Ownable *OwnableCallerSession) Owner() (common.Address, error) { + return _Ownable.Contract.Owner(&_Ownable.CallOpts) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Ownable *OwnableTransactor) ChangeOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) { + return _Ownable.contract.Transact(opts, "changeOwnership", _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Ownable *OwnableSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Ownable.Contract.ChangeOwnership(&_Ownable.TransactOpts, _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Ownable *OwnableTransactorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Ownable.Contract.ChangeOwnership(&_Ownable.TransactOpts, _newOwner) +} + +// OwnableOwnershipChangedIterator is returned from FilterOwnershipChanged and is used to iterate over the raw logs and unpacked data for OwnershipChanged events raised by the Ownable contract. +type OwnableOwnershipChangedIterator struct { + Event *OwnableOwnershipChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *OwnableOwnershipChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(OwnableOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(OwnableOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *OwnableOwnershipChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *OwnableOwnershipChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// OwnableOwnershipChanged represents a OwnershipChanged event raised by the Ownable contract. +type OwnableOwnershipChanged struct { + PrevOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipChanged is a free log retrieval operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Ownable *OwnableFilterer) FilterOwnershipChanged(opts *bind.FilterOpts, prevOwner []common.Address, newOwner []common.Address) (*OwnableOwnershipChangedIterator, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Ownable.contract.FilterLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &OwnableOwnershipChangedIterator{contract: _Ownable.contract, event: "OwnershipChanged", logs: logs, sub: sub}, nil +} + +// WatchOwnershipChanged is a free log subscription operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Ownable *OwnableFilterer) WatchOwnershipChanged(opts *bind.WatchOpts, sink chan<- *OwnableOwnershipChanged, prevOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Ownable.contract.WatchLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(OwnableOwnershipChanged) + if err := _Ownable.contract.UnpackLog(event, "OwnershipChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// OwnedABI is the input ABI used to generate the binding from. +const OwnedABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"}]" + +// OwnedBin is the compiled bytecode used for deploying new contracts. +const OwnedBin = `0x608060405260008054600160a060020a0319163317905561022e806100256000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e811461006657806379ba50971461009b5780638da5cb5b146100b0578063d4ee1d90146100e1575b600080fd5b34801561007257600080fd5b50610087600160a060020a03600435166100f6565b604080519115158252519081900360200190f35b3480156100a757600080fd5b50610087610159565b3480156100bc57600080fd5b506100c56101e4565b60408051600160a060020a039092168252519081900360200190f35b3480156100ed57600080fd5b506100c56101f3565b60008054600160a060020a0316331461010e57600080fd5b600054600160a060020a038381169116141561012957600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b600154600090600160a060020a0316331461017357600080fd5b60015460008054604051600160a060020a0393841693909116917f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b91a350600180546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905590565b600054600160a060020a031681565b600154600160a060020a0316815600a165627a7a723058204a926d53ca8b89329584e69506796ec7eef1b63fbf7821302833653c1e8b97fc0029` + +// DeployOwned deploys a new Ethereum contract, binding an instance of Owned to it. +func DeployOwned(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Owned, error) { + parsed, err := abi.JSON(strings.NewReader(OwnedABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(OwnedBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Owned{OwnedCaller: OwnedCaller{contract: contract}, OwnedTransactor: OwnedTransactor{contract: contract}, OwnedFilterer: OwnedFilterer{contract: contract}}, nil +} + +// Owned is an auto generated Go binding around an Ethereum contract. +type Owned struct { + OwnedCaller // Read-only binding to the contract + OwnedTransactor // Write-only binding to the contract + OwnedFilterer // Log filterer for contract events +} + +// OwnedCaller is an auto generated read-only Go binding around an Ethereum contract. +type OwnedCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnedTransactor is an auto generated write-only Go binding around an Ethereum contract. +type OwnedTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnedFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type OwnedFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// OwnedSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type OwnedSession struct { + Contract *Owned // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// OwnedCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type OwnedCallerSession struct { + Contract *OwnedCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// OwnedTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type OwnedTransactorSession struct { + Contract *OwnedTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// OwnedRaw is an auto generated low-level Go binding around an Ethereum contract. +type OwnedRaw struct { + Contract *Owned // Generic contract binding to access the raw methods on +} + +// OwnedCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type OwnedCallerRaw struct { + Contract *OwnedCaller // Generic read-only contract binding to access the raw methods on +} + +// OwnedTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type OwnedTransactorRaw struct { + Contract *OwnedTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewOwned creates a new instance of Owned, bound to a specific deployed contract. +func NewOwned(address common.Address, backend bind.ContractBackend) (*Owned, error) { + contract, err := bindOwned(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Owned{OwnedCaller: OwnedCaller{contract: contract}, OwnedTransactor: OwnedTransactor{contract: contract}, OwnedFilterer: OwnedFilterer{contract: contract}}, nil +} + +// NewOwnedCaller creates a new read-only instance of Owned, bound to a specific deployed contract. +func NewOwnedCaller(address common.Address, caller bind.ContractCaller) (*OwnedCaller, error) { + contract, err := bindOwned(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &OwnedCaller{contract: contract}, nil +} + +// NewOwnedTransactor creates a new write-only instance of Owned, bound to a specific deployed contract. +func NewOwnedTransactor(address common.Address, transactor bind.ContractTransactor) (*OwnedTransactor, error) { + contract, err := bindOwned(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &OwnedTransactor{contract: contract}, nil +} + +// NewOwnedFilterer creates a new log filterer instance of Owned, bound to a specific deployed contract. +func NewOwnedFilterer(address common.Address, filterer bind.ContractFilterer) (*OwnedFilterer, error) { + contract, err := bindOwned(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &OwnedFilterer{contract: contract}, nil +} + +// bindOwned binds a generic wrapper to an already deployed contract. +func bindOwned(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(OwnedABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Owned *OwnedRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Owned.Contract.OwnedCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Owned *OwnedRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Owned.Contract.OwnedTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Owned *OwnedRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Owned.Contract.OwnedTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Owned *OwnedCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Owned.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Owned *OwnedTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Owned.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Owned *OwnedTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Owned.Contract.contract.Transact(opts, method, params...) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Owned *OwnedCaller) NewOwner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Owned.contract.Call(opts, out, "newOwner") + return *ret0, err +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Owned *OwnedSession) NewOwner() (common.Address, error) { + return _Owned.Contract.NewOwner(&_Owned.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Owned *OwnedCallerSession) NewOwner() (common.Address, error) { + return _Owned.Contract.NewOwner(&_Owned.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Owned *OwnedCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Owned.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Owned *OwnedSession) Owner() (common.Address, error) { + return _Owned.Contract.Owner(&_Owned.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Owned *OwnedCallerSession) Owner() (common.Address, error) { + return _Owned.Contract.Owner(&_Owned.CallOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Owned *OwnedTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Owned.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Owned *OwnedSession) AcceptOwnership() (*types.Transaction, error) { + return _Owned.Contract.AcceptOwnership(&_Owned.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Owned *OwnedTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _Owned.Contract.AcceptOwnership(&_Owned.TransactOpts) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Owned *OwnedTransactor) ChangeOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) { + return _Owned.contract.Transact(opts, "changeOwnership", _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Owned *OwnedSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Owned.Contract.ChangeOwnership(&_Owned.TransactOpts, _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Owned *OwnedTransactorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Owned.Contract.ChangeOwnership(&_Owned.TransactOpts, _newOwner) +} + +// OwnedOwnershipChangedIterator is returned from FilterOwnershipChanged and is used to iterate over the raw logs and unpacked data for OwnershipChanged events raised by the Owned contract. +type OwnedOwnershipChangedIterator struct { + Event *OwnedOwnershipChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *OwnedOwnershipChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(OwnedOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(OwnedOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *OwnedOwnershipChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *OwnedOwnershipChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// OwnedOwnershipChanged represents a OwnershipChanged event raised by the Owned contract. +type OwnedOwnershipChanged struct { + PrevOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipChanged is a free log retrieval operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Owned *OwnedFilterer) FilterOwnershipChanged(opts *bind.FilterOpts, prevOwner []common.Address, newOwner []common.Address) (*OwnedOwnershipChangedIterator, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Owned.contract.FilterLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &OwnedOwnershipChangedIterator{contract: _Owned.contract, event: "OwnershipChanged", logs: logs, sub: sub}, nil +} + +// WatchOwnershipChanged is a free log subscription operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Owned *OwnedFilterer) WatchOwnershipChanged(opts *bind.WatchOpts, sink chan<- *OwnedOwnershipChanged, prevOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Owned.contract.WatchLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(OwnedOwnershipChanged) + if err := _Owned.contract.UnpackLog(event, "OwnershipChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// PricerABI is the input ABI used to generate the binding from. +const PricerABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"initialPrice\",\"type\":\"uint256\"},{\"name\":\"_n\",\"type\":\"uint256\"}],\"name\":\"priceAt\",\"outputs\":[{\"name\":\"price\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumPriceInDailyAuction\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MULTIPLIER\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tentimes\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"hundredtimes\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumPrice\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"thousandtimes\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"lastPurchasePrice\",\"type\":\"uint256\"},{\"name\":\"numTicks\",\"type\":\"uint256\"}],\"name\":\"priceAtInitialAuction\",\"outputs\":[{\"name\":\"price\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"initPricer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" + +// PricerBin is the compiled bytecode used for deploying new contracts. +const PricerBin = `0x60806040526503005753e8006000556001805534801561001e57600080fd5b506104c18061002e6000396000f3006080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301dbdf44811461009d578063053f7492146100ca578063059f8b16146100df5780630d2a25bb146100f45780633264a844146101095780637f386b6c1461011e5780639b8abe0b14610133578063a8afc53814610148578063c1f7c53914610163575b600080fd5b3480156100a957600080fd5b506100b860043560243561017a565b60408051918252519081900360200190f35b3480156100d657600080fd5b506100b86102ec565b3480156100eb57600080fd5b506100b86102f2565b34801561010057600080fd5b506100b86102fc565b34801561011557600080fd5b506100b8610302565b34801561012a57600080fd5b506100b8610308565b34801561013f57600080fd5b506100b861030e565b34801561015457600080fd5b506100b8600435602435610314565b34801561016f57600080fd5b50610178610371565b005b6000670de0b6b3a76400008183816103e8820411156101e557600091505b6103e881048210156101df576004546101d290670de0b6b3a7640000906101c690869063ffffffff61043616565b9063ffffffff61046c16565b9250600190910190610198565b6103e890065b600060648204111561023557600091505b606481048210156102305760035461022390670de0b6b3a7640000906101c690869063ffffffff61043616565b92506001909101906101f6565b606490065b6000600a8204111561028557600091505b600a81048210156102805760025461027390670de0b6b3a7640000906101c690869063ffffffff61043616565b9250600190910190610246565b600a90065b600091505b808210156102b5576102a860646101c685606363ffffffff61043616565b925060019091019061028a565b6102d1670de0b6b3a76400006101c6888663ffffffff61043616565b93506001548410156102e35760015493505b50505092915050565b60015481565b65b4791041f30081565b60025481565b60035481565b60005481565b60045481565b600061032c65b4791041f3008363ffffffff61043616565b83111561035c5761035961034c65b4791041f3008463ffffffff61043616565b849063ffffffff61048316565b90505b60005481101561036b57506000545b92915050565b670de0b6b3a764000060005b600a8110156103a65761039c60646101c684606363ffffffff61043616565b915060010161037d565b50600255670de0b6b3a764000060005b600a8110156103eb576002546103e190670de0b6b3a7640000906101c690859063ffffffff61043616565b91506001016103b6565b50600355670de0b6b3a764000060005b600a8110156104305760035461042690670de0b6b3a7640000906101c690859063ffffffff61043616565b91506001016103fb565b50600455565b6000808315156104495760009150610465565b5082820282848281151561045957fe5b041461046157fe5b8091505b5092915050565b600080828481151561047a57fe5b04949350505050565b60008282111561048f57fe5b509003905600a165627a7a723058206593a2803fcca18002b3664eeac317eb56cbacfab4b1f16ff99f683c10246f2e0029` + +// DeployPricer deploys a new Ethereum contract, binding an instance of Pricer to it. +func DeployPricer(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Pricer, error) { + parsed, err := abi.JSON(strings.NewReader(PricerABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(PricerBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Pricer{PricerCaller: PricerCaller{contract: contract}, PricerTransactor: PricerTransactor{contract: contract}, PricerFilterer: PricerFilterer{contract: contract}}, nil +} + +// Pricer is an auto generated Go binding around an Ethereum contract. +type Pricer struct { + PricerCaller // Read-only binding to the contract + PricerTransactor // Write-only binding to the contract + PricerFilterer // Log filterer for contract events +} + +// PricerCaller is an auto generated read-only Go binding around an Ethereum contract. +type PricerCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PricerTransactor is an auto generated write-only Go binding around an Ethereum contract. +type PricerTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PricerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type PricerFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// PricerSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type PricerSession struct { + Contract *Pricer // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// PricerCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type PricerCallerSession struct { + Contract *PricerCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// PricerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type PricerTransactorSession struct { + Contract *PricerTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// PricerRaw is an auto generated low-level Go binding around an Ethereum contract. +type PricerRaw struct { + Contract *Pricer // Generic contract binding to access the raw methods on +} + +// PricerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type PricerCallerRaw struct { + Contract *PricerCaller // Generic read-only contract binding to access the raw methods on +} + +// PricerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type PricerTransactorRaw struct { + Contract *PricerTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewPricer creates a new instance of Pricer, bound to a specific deployed contract. +func NewPricer(address common.Address, backend bind.ContractBackend) (*Pricer, error) { + contract, err := bindPricer(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Pricer{PricerCaller: PricerCaller{contract: contract}, PricerTransactor: PricerTransactor{contract: contract}, PricerFilterer: PricerFilterer{contract: contract}}, nil +} + +// NewPricerCaller creates a new read-only instance of Pricer, bound to a specific deployed contract. +func NewPricerCaller(address common.Address, caller bind.ContractCaller) (*PricerCaller, error) { + contract, err := bindPricer(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &PricerCaller{contract: contract}, nil +} + +// NewPricerTransactor creates a new write-only instance of Pricer, bound to a specific deployed contract. +func NewPricerTransactor(address common.Address, transactor bind.ContractTransactor) (*PricerTransactor, error) { + contract, err := bindPricer(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &PricerTransactor{contract: contract}, nil +} + +// NewPricerFilterer creates a new log filterer instance of Pricer, bound to a specific deployed contract. +func NewPricerFilterer(address common.Address, filterer bind.ContractFilterer) (*PricerFilterer, error) { + contract, err := bindPricer(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &PricerFilterer{contract: contract}, nil +} + +// bindPricer binds a generic wrapper to an already deployed contract. +func bindPricer(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(PricerABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Pricer *PricerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Pricer.Contract.PricerCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Pricer *PricerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Pricer.Contract.PricerTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Pricer *PricerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Pricer.Contract.PricerTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Pricer *PricerCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Pricer.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Pricer *PricerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Pricer.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Pricer *PricerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Pricer.Contract.contract.Transact(opts, method, params...) +} + +// MULTIPLIER is a free data retrieval call binding the contract method 0x059f8b16. +// +// Solidity: function MULTIPLIER() constant returns(uint256) +func (_Pricer *PricerCaller) MULTIPLIER(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Pricer.contract.Call(opts, out, "MULTIPLIER") + return *ret0, err +} + +// MULTIPLIER is a free data retrieval call binding the contract method 0x059f8b16. +// +// Solidity: function MULTIPLIER() constant returns(uint256) +func (_Pricer *PricerSession) MULTIPLIER() (*big.Int, error) { + return _Pricer.Contract.MULTIPLIER(&_Pricer.CallOpts) +} + +// MULTIPLIER is a free data retrieval call binding the contract method 0x059f8b16. +// +// Solidity: function MULTIPLIER() constant returns(uint256) +func (_Pricer *PricerCallerSession) MULTIPLIER() (*big.Int, error) { + return _Pricer.Contract.MULTIPLIER(&_Pricer.CallOpts) +} + +// Hundredtimes is a free data retrieval call binding the contract method 0x3264a844. +// +// Solidity: function hundredtimes() constant returns(uint256) +func (_Pricer *PricerCaller) Hundredtimes(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Pricer.contract.Call(opts, out, "hundredtimes") + return *ret0, err +} + +// Hundredtimes is a free data retrieval call binding the contract method 0x3264a844. +// +// Solidity: function hundredtimes() constant returns(uint256) +func (_Pricer *PricerSession) Hundredtimes() (*big.Int, error) { + return _Pricer.Contract.Hundredtimes(&_Pricer.CallOpts) +} + +// Hundredtimes is a free data retrieval call binding the contract method 0x3264a844. +// +// Solidity: function hundredtimes() constant returns(uint256) +func (_Pricer *PricerCallerSession) Hundredtimes() (*big.Int, error) { + return _Pricer.Contract.Hundredtimes(&_Pricer.CallOpts) +} + +// MinimumPrice is a free data retrieval call binding the contract method 0x7f386b6c. +// +// Solidity: function minimumPrice() constant returns(uint256) +func (_Pricer *PricerCaller) MinimumPrice(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Pricer.contract.Call(opts, out, "minimumPrice") + return *ret0, err +} + +// MinimumPrice is a free data retrieval call binding the contract method 0x7f386b6c. +// +// Solidity: function minimumPrice() constant returns(uint256) +func (_Pricer *PricerSession) MinimumPrice() (*big.Int, error) { + return _Pricer.Contract.MinimumPrice(&_Pricer.CallOpts) +} + +// MinimumPrice is a free data retrieval call binding the contract method 0x7f386b6c. +// +// Solidity: function minimumPrice() constant returns(uint256) +func (_Pricer *PricerCallerSession) MinimumPrice() (*big.Int, error) { + return _Pricer.Contract.MinimumPrice(&_Pricer.CallOpts) +} + +// MinimumPriceInDailyAuction is a free data retrieval call binding the contract method 0x053f7492. +// +// Solidity: function minimumPriceInDailyAuction() constant returns(uint256) +func (_Pricer *PricerCaller) MinimumPriceInDailyAuction(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Pricer.contract.Call(opts, out, "minimumPriceInDailyAuction") + return *ret0, err +} + +// MinimumPriceInDailyAuction is a free data retrieval call binding the contract method 0x053f7492. +// +// Solidity: function minimumPriceInDailyAuction() constant returns(uint256) +func (_Pricer *PricerSession) MinimumPriceInDailyAuction() (*big.Int, error) { + return _Pricer.Contract.MinimumPriceInDailyAuction(&_Pricer.CallOpts) +} + +// MinimumPriceInDailyAuction is a free data retrieval call binding the contract method 0x053f7492. +// +// Solidity: function minimumPriceInDailyAuction() constant returns(uint256) +func (_Pricer *PricerCallerSession) MinimumPriceInDailyAuction() (*big.Int, error) { + return _Pricer.Contract.MinimumPriceInDailyAuction(&_Pricer.CallOpts) +} + +// PriceAt is a free data retrieval call binding the contract method 0x01dbdf44. +// +// Solidity: function priceAt(initialPrice uint256, _n uint256) constant returns(price uint256) +func (_Pricer *PricerCaller) PriceAt(opts *bind.CallOpts, initialPrice *big.Int, _n *big.Int) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Pricer.contract.Call(opts, out, "priceAt", initialPrice, _n) + return *ret0, err +} + +// PriceAt is a free data retrieval call binding the contract method 0x01dbdf44. +// +// Solidity: function priceAt(initialPrice uint256, _n uint256) constant returns(price uint256) +func (_Pricer *PricerSession) PriceAt(initialPrice *big.Int, _n *big.Int) (*big.Int, error) { + return _Pricer.Contract.PriceAt(&_Pricer.CallOpts, initialPrice, _n) +} + +// PriceAt is a free data retrieval call binding the contract method 0x01dbdf44. +// +// Solidity: function priceAt(initialPrice uint256, _n uint256) constant returns(price uint256) +func (_Pricer *PricerCallerSession) PriceAt(initialPrice *big.Int, _n *big.Int) (*big.Int, error) { + return _Pricer.Contract.PriceAt(&_Pricer.CallOpts, initialPrice, _n) +} + +// PriceAtInitialAuction is a free data retrieval call binding the contract method 0xa8afc538. +// +// Solidity: function priceAtInitialAuction(lastPurchasePrice uint256, numTicks uint256) constant returns(price uint256) +func (_Pricer *PricerCaller) PriceAtInitialAuction(opts *bind.CallOpts, lastPurchasePrice *big.Int, numTicks *big.Int) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Pricer.contract.Call(opts, out, "priceAtInitialAuction", lastPurchasePrice, numTicks) + return *ret0, err +} + +// PriceAtInitialAuction is a free data retrieval call binding the contract method 0xa8afc538. +// +// Solidity: function priceAtInitialAuction(lastPurchasePrice uint256, numTicks uint256) constant returns(price uint256) +func (_Pricer *PricerSession) PriceAtInitialAuction(lastPurchasePrice *big.Int, numTicks *big.Int) (*big.Int, error) { + return _Pricer.Contract.PriceAtInitialAuction(&_Pricer.CallOpts, lastPurchasePrice, numTicks) +} + +// PriceAtInitialAuction is a free data retrieval call binding the contract method 0xa8afc538. +// +// Solidity: function priceAtInitialAuction(lastPurchasePrice uint256, numTicks uint256) constant returns(price uint256) +func (_Pricer *PricerCallerSession) PriceAtInitialAuction(lastPurchasePrice *big.Int, numTicks *big.Int) (*big.Int, error) { + return _Pricer.Contract.PriceAtInitialAuction(&_Pricer.CallOpts, lastPurchasePrice, numTicks) +} + +// Tentimes is a free data retrieval call binding the contract method 0x0d2a25bb. +// +// Solidity: function tentimes() constant returns(uint256) +func (_Pricer *PricerCaller) Tentimes(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Pricer.contract.Call(opts, out, "tentimes") + return *ret0, err +} + +// Tentimes is a free data retrieval call binding the contract method 0x0d2a25bb. +// +// Solidity: function tentimes() constant returns(uint256) +func (_Pricer *PricerSession) Tentimes() (*big.Int, error) { + return _Pricer.Contract.Tentimes(&_Pricer.CallOpts) +} + +// Tentimes is a free data retrieval call binding the contract method 0x0d2a25bb. +// +// Solidity: function tentimes() constant returns(uint256) +func (_Pricer *PricerCallerSession) Tentimes() (*big.Int, error) { + return _Pricer.Contract.Tentimes(&_Pricer.CallOpts) +} + +// Thousandtimes is a free data retrieval call binding the contract method 0x9b8abe0b. +// +// Solidity: function thousandtimes() constant returns(uint256) +func (_Pricer *PricerCaller) Thousandtimes(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Pricer.contract.Call(opts, out, "thousandtimes") + return *ret0, err +} + +// Thousandtimes is a free data retrieval call binding the contract method 0x9b8abe0b. +// +// Solidity: function thousandtimes() constant returns(uint256) +func (_Pricer *PricerSession) Thousandtimes() (*big.Int, error) { + return _Pricer.Contract.Thousandtimes(&_Pricer.CallOpts) +} + +// Thousandtimes is a free data retrieval call binding the contract method 0x9b8abe0b. +// +// Solidity: function thousandtimes() constant returns(uint256) +func (_Pricer *PricerCallerSession) Thousandtimes() (*big.Int, error) { + return _Pricer.Contract.Thousandtimes(&_Pricer.CallOpts) +} + +// InitPricer is a paid mutator transaction binding the contract method 0xc1f7c539. +// +// Solidity: function initPricer() returns() +func (_Pricer *PricerTransactor) InitPricer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Pricer.contract.Transact(opts, "initPricer") +} + +// InitPricer is a paid mutator transaction binding the contract method 0xc1f7c539. +// +// Solidity: function initPricer() returns() +func (_Pricer *PricerSession) InitPricer() (*types.Transaction, error) { + return _Pricer.Contract.InitPricer(&_Pricer.TransactOpts) +} + +// InitPricer is a paid mutator transaction binding the contract method 0xc1f7c539. +// +// Solidity: function initPricer() returns() +func (_Pricer *PricerTransactorSession) InitPricer() (*types.Transaction, error) { + return _Pricer.Contract.InitPricer(&_Pricer.TransactOpts) +} + +// ProceedsABI is the input ABI used to generate the binding from. +const ProceedsABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"autonomousConverter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"handleFund\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"auctions\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_autonomousConverter\",\"type\":\"address\"},{\"name\":\"_auctions\",\"type\":\"address\"}],\"name\":\"initProceeds\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"LogProceedsIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"LogClosedAuction\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"}]" + +// ProceedsBin is the compiled bytecode used for deploying new contracts. +const ProceedsBin = `0x608060405260008054600160a060020a031916331790556106f7806100256000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632af4c31e811461009d578063378252f2146100d257806350b48c5e146100e95780637679a8161461011a57806379ba50971461012257806385aa6103146101375780638da5cb5b1461014c578063ae71d5da14610161578063d4ee1d9014610188575b600080fd5b3480156100a957600080fd5b506100be600160a060020a036004351661019d565b604080519115158252519081900360200190f35b3480156100de57600080fd5b506100e7610200565b005b3480156100f557600080fd5b506100fe6104be565b60408051600160a060020a039092168252519081900360200190f35b6100e76104cd565b34801561012e57600080fd5b506100be61051c565b34801561014357600080fd5b506100fe6105a7565b34801561015857600080fd5b506100fe6105b6565b34801561016d57600080fd5b506100e7600160a060020a03600435811690602435166105c5565b34801561019457600080fd5b506100fe61066f565b60008054600160a060020a031633146101b557600080fd5b600054600160a060020a03838116911614156101d057600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b6000806000600360009054906101000a9004600160a060020a0316600160a060020a031663212884006040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561027157600080fd5b505af1158015610285573d6000803e3d6000fd5b505050506040513d602081101561029b57600080fd5b5051600354604080517f496a698d0000000000000000000000000000000000000000000000000000000081529051929550600160a060020a039091169163496a698d916004808201926020929091908290030181600087803b15801561030057600080fd5b505af1158015610314573d6000803e3d6000fd5b505050506040513d602081101561032a57600080fd5b505191506103526127106103463031601963ffffffff61067e16565b9063ffffffff6106b416565b90506000811180156103f55750600354604080517ffde9cded000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a039092169163fde9cded916024808201926020929091908290030181600087803b1580156103c657600080fd5b505af11580156103da573d6000803e3d6000fd5b505050506040513d60208110156103f057600080fd5b505182115b8015610402575081600454105b156104b9576004828155600254604080517f7679a8160000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921692637679a816928592808301926000929182900301818588803b15801561046957600080fd5b505af115801561047d573d6000803e3d6000fd5b50506040805185815290513394507fce45c14a6c726f7154c3b98d500c578e3d8e91aeb29d5f9d12edb07b88f854829350908190036020019150a25b505050565b600254600160a060020a031681565b600354600160a060020a031633146104e457600080fd5b60408051348152905133917f6149d6fbfad1c173e29b8de83d7df1b09c0eaba8c3040a4c287f6f1333e60e27919081900360200190a2565b600154600090600160a060020a0316331461053657600080fd5b60015460008054604051600160a060020a0393841693909116917f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b91a350600180546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905590565b600354600160a060020a031681565b600054600160a060020a031681565b600054600160a060020a031633146105dc57600080fd5b600354600160a060020a03161580156105fd5750600160a060020a03811615155b151561060857600080fd5b600254600160a060020a03161580156106295750600160a060020a03821615155b151561063457600080fd5b60028054600160a060020a0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560038054929093169116179055565b600154600160a060020a031681565b60008083151561069157600091506106ad565b508282028284828115156106a157fe5b04146106a957fe5b8091505b5092915050565b60008082848115156106c257fe5b049493505050505600a165627a7a72305820b4db7451f3e6e8f31c56a68ac406b08a88b952979925b51b2454c402edd783560029` + +// DeployProceeds deploys a new Ethereum contract, binding an instance of Proceeds to it. +func DeployProceeds(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Proceeds, error) { + parsed, err := abi.JSON(strings.NewReader(ProceedsABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ProceedsBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Proceeds{ProceedsCaller: ProceedsCaller{contract: contract}, ProceedsTransactor: ProceedsTransactor{contract: contract}, ProceedsFilterer: ProceedsFilterer{contract: contract}}, nil +} + +// Proceeds is an auto generated Go binding around an Ethereum contract. +type Proceeds struct { + ProceedsCaller // Read-only binding to the contract + ProceedsTransactor // Write-only binding to the contract + ProceedsFilterer // Log filterer for contract events +} + +// ProceedsCaller is an auto generated read-only Go binding around an Ethereum contract. +type ProceedsCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ProceedsTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ProceedsTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ProceedsFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ProceedsFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ProceedsSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ProceedsSession struct { + Contract *Proceeds // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ProceedsCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ProceedsCallerSession struct { + Contract *ProceedsCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ProceedsTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ProceedsTransactorSession struct { + Contract *ProceedsTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ProceedsRaw is an auto generated low-level Go binding around an Ethereum contract. +type ProceedsRaw struct { + Contract *Proceeds // Generic contract binding to access the raw methods on +} + +// ProceedsCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ProceedsCallerRaw struct { + Contract *ProceedsCaller // Generic read-only contract binding to access the raw methods on +} + +// ProceedsTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ProceedsTransactorRaw struct { + Contract *ProceedsTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewProceeds creates a new instance of Proceeds, bound to a specific deployed contract. +func NewProceeds(address common.Address, backend bind.ContractBackend) (*Proceeds, error) { + contract, err := bindProceeds(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Proceeds{ProceedsCaller: ProceedsCaller{contract: contract}, ProceedsTransactor: ProceedsTransactor{contract: contract}, ProceedsFilterer: ProceedsFilterer{contract: contract}}, nil +} + +// NewProceedsCaller creates a new read-only instance of Proceeds, bound to a specific deployed contract. +func NewProceedsCaller(address common.Address, caller bind.ContractCaller) (*ProceedsCaller, error) { + contract, err := bindProceeds(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ProceedsCaller{contract: contract}, nil +} + +// NewProceedsTransactor creates a new write-only instance of Proceeds, bound to a specific deployed contract. +func NewProceedsTransactor(address common.Address, transactor bind.ContractTransactor) (*ProceedsTransactor, error) { + contract, err := bindProceeds(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ProceedsTransactor{contract: contract}, nil +} + +// NewProceedsFilterer creates a new log filterer instance of Proceeds, bound to a specific deployed contract. +func NewProceedsFilterer(address common.Address, filterer bind.ContractFilterer) (*ProceedsFilterer, error) { + contract, err := bindProceeds(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ProceedsFilterer{contract: contract}, nil +} + +// bindProceeds binds a generic wrapper to an already deployed contract. +func bindProceeds(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(ProceedsABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Proceeds *ProceedsRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Proceeds.Contract.ProceedsCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Proceeds *ProceedsRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Proceeds.Contract.ProceedsTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Proceeds *ProceedsRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Proceeds.Contract.ProceedsTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Proceeds *ProceedsCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Proceeds.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Proceeds *ProceedsTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Proceeds.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Proceeds *ProceedsTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Proceeds.Contract.contract.Transact(opts, method, params...) +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_Proceeds *ProceedsCaller) Auctions(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Proceeds.contract.Call(opts, out, "auctions") + return *ret0, err +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_Proceeds *ProceedsSession) Auctions() (common.Address, error) { + return _Proceeds.Contract.Auctions(&_Proceeds.CallOpts) +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_Proceeds *ProceedsCallerSession) Auctions() (common.Address, error) { + return _Proceeds.Contract.Auctions(&_Proceeds.CallOpts) +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_Proceeds *ProceedsCaller) AutonomousConverter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Proceeds.contract.Call(opts, out, "autonomousConverter") + return *ret0, err +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_Proceeds *ProceedsSession) AutonomousConverter() (common.Address, error) { + return _Proceeds.Contract.AutonomousConverter(&_Proceeds.CallOpts) +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_Proceeds *ProceedsCallerSession) AutonomousConverter() (common.Address, error) { + return _Proceeds.Contract.AutonomousConverter(&_Proceeds.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Proceeds *ProceedsCaller) NewOwner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Proceeds.contract.Call(opts, out, "newOwner") + return *ret0, err +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Proceeds *ProceedsSession) NewOwner() (common.Address, error) { + return _Proceeds.Contract.NewOwner(&_Proceeds.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Proceeds *ProceedsCallerSession) NewOwner() (common.Address, error) { + return _Proceeds.Contract.NewOwner(&_Proceeds.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Proceeds *ProceedsCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Proceeds.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Proceeds *ProceedsSession) Owner() (common.Address, error) { + return _Proceeds.Contract.Owner(&_Proceeds.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Proceeds *ProceedsCallerSession) Owner() (common.Address, error) { + return _Proceeds.Contract.Owner(&_Proceeds.CallOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Proceeds *ProceedsTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Proceeds.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Proceeds *ProceedsSession) AcceptOwnership() (*types.Transaction, error) { + return _Proceeds.Contract.AcceptOwnership(&_Proceeds.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Proceeds *ProceedsTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _Proceeds.Contract.AcceptOwnership(&_Proceeds.TransactOpts) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Proceeds *ProceedsTransactor) ChangeOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) { + return _Proceeds.contract.Transact(opts, "changeOwnership", _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Proceeds *ProceedsSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Proceeds.Contract.ChangeOwnership(&_Proceeds.TransactOpts, _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Proceeds *ProceedsTransactorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Proceeds.Contract.ChangeOwnership(&_Proceeds.TransactOpts, _newOwner) +} + +// CloseAuction is a paid mutator transaction binding the contract method 0x378252f2. +// +// Solidity: function closeAuction() returns() +func (_Proceeds *ProceedsTransactor) CloseAuction(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Proceeds.contract.Transact(opts, "closeAuction") +} + +// CloseAuction is a paid mutator transaction binding the contract method 0x378252f2. +// +// Solidity: function closeAuction() returns() +func (_Proceeds *ProceedsSession) CloseAuction() (*types.Transaction, error) { + return _Proceeds.Contract.CloseAuction(&_Proceeds.TransactOpts) +} + +// CloseAuction is a paid mutator transaction binding the contract method 0x378252f2. +// +// Solidity: function closeAuction() returns() +func (_Proceeds *ProceedsTransactorSession) CloseAuction() (*types.Transaction, error) { + return _Proceeds.Contract.CloseAuction(&_Proceeds.TransactOpts) +} + +// HandleFund is a paid mutator transaction binding the contract method 0x7679a816. +// +// Solidity: function handleFund() returns() +func (_Proceeds *ProceedsTransactor) HandleFund(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Proceeds.contract.Transact(opts, "handleFund") +} + +// HandleFund is a paid mutator transaction binding the contract method 0x7679a816. +// +// Solidity: function handleFund() returns() +func (_Proceeds *ProceedsSession) HandleFund() (*types.Transaction, error) { + return _Proceeds.Contract.HandleFund(&_Proceeds.TransactOpts) +} + +// HandleFund is a paid mutator transaction binding the contract method 0x7679a816. +// +// Solidity: function handleFund() returns() +func (_Proceeds *ProceedsTransactorSession) HandleFund() (*types.Transaction, error) { + return _Proceeds.Contract.HandleFund(&_Proceeds.TransactOpts) +} + +// InitProceeds is a paid mutator transaction binding the contract method 0xae71d5da. +// +// Solidity: function initProceeds(_autonomousConverter address, _auctions address) returns() +func (_Proceeds *ProceedsTransactor) InitProceeds(opts *bind.TransactOpts, _autonomousConverter common.Address, _auctions common.Address) (*types.Transaction, error) { + return _Proceeds.contract.Transact(opts, "initProceeds", _autonomousConverter, _auctions) +} + +// InitProceeds is a paid mutator transaction binding the contract method 0xae71d5da. +// +// Solidity: function initProceeds(_autonomousConverter address, _auctions address) returns() +func (_Proceeds *ProceedsSession) InitProceeds(_autonomousConverter common.Address, _auctions common.Address) (*types.Transaction, error) { + return _Proceeds.Contract.InitProceeds(&_Proceeds.TransactOpts, _autonomousConverter, _auctions) +} + +// InitProceeds is a paid mutator transaction binding the contract method 0xae71d5da. +// +// Solidity: function initProceeds(_autonomousConverter address, _auctions address) returns() +func (_Proceeds *ProceedsTransactorSession) InitProceeds(_autonomousConverter common.Address, _auctions common.Address) (*types.Transaction, error) { + return _Proceeds.Contract.InitProceeds(&_Proceeds.TransactOpts, _autonomousConverter, _auctions) +} + +// ProceedsLogClosedAuctionIterator is returned from FilterLogClosedAuction and is used to iterate over the raw logs and unpacked data for LogClosedAuction events raised by the Proceeds contract. +type ProceedsLogClosedAuctionIterator struct { + Event *ProceedsLogClosedAuction // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ProceedsLogClosedAuctionIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ProceedsLogClosedAuction) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ProceedsLogClosedAuction) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ProceedsLogClosedAuctionIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ProceedsLogClosedAuctionIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ProceedsLogClosedAuction represents a LogClosedAuction event raised by the Proceeds contract. +type ProceedsLogClosedAuction struct { + From common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogClosedAuction is a free log retrieval operation binding the contract event 0xce45c14a6c726f7154c3b98d500c578e3d8e91aeb29d5f9d12edb07b88f85482. +// +// Solidity: e LogClosedAuction(from indexed address, value uint256) +func (_Proceeds *ProceedsFilterer) FilterLogClosedAuction(opts *bind.FilterOpts, from []common.Address) (*ProceedsLogClosedAuctionIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _Proceeds.contract.FilterLogs(opts, "LogClosedAuction", fromRule) + if err != nil { + return nil, err + } + return &ProceedsLogClosedAuctionIterator{contract: _Proceeds.contract, event: "LogClosedAuction", logs: logs, sub: sub}, nil +} + +// WatchLogClosedAuction is a free log subscription operation binding the contract event 0xce45c14a6c726f7154c3b98d500c578e3d8e91aeb29d5f9d12edb07b88f85482. +// +// Solidity: e LogClosedAuction(from indexed address, value uint256) +func (_Proceeds *ProceedsFilterer) WatchLogClosedAuction(opts *bind.WatchOpts, sink chan<- *ProceedsLogClosedAuction, from []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _Proceeds.contract.WatchLogs(opts, "LogClosedAuction", fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ProceedsLogClosedAuction) + if err := _Proceeds.contract.UnpackLog(event, "LogClosedAuction", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ProceedsLogProceedsInIterator is returned from FilterLogProceedsIn and is used to iterate over the raw logs and unpacked data for LogProceedsIn events raised by the Proceeds contract. +type ProceedsLogProceedsInIterator struct { + Event *ProceedsLogProceedsIn // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ProceedsLogProceedsInIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ProceedsLogProceedsIn) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ProceedsLogProceedsIn) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ProceedsLogProceedsInIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ProceedsLogProceedsInIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ProceedsLogProceedsIn represents a LogProceedsIn event raised by the Proceeds contract. +type ProceedsLogProceedsIn struct { + From common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogProceedsIn is a free log retrieval operation binding the contract event 0x6149d6fbfad1c173e29b8de83d7df1b09c0eaba8c3040a4c287f6f1333e60e27. +// +// Solidity: e LogProceedsIn(from indexed address, value uint256) +func (_Proceeds *ProceedsFilterer) FilterLogProceedsIn(opts *bind.FilterOpts, from []common.Address) (*ProceedsLogProceedsInIterator, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _Proceeds.contract.FilterLogs(opts, "LogProceedsIn", fromRule) + if err != nil { + return nil, err + } + return &ProceedsLogProceedsInIterator{contract: _Proceeds.contract, event: "LogProceedsIn", logs: logs, sub: sub}, nil +} + +// WatchLogProceedsIn is a free log subscription operation binding the contract event 0x6149d6fbfad1c173e29b8de83d7df1b09c0eaba8c3040a4c287f6f1333e60e27. +// +// Solidity: e LogProceedsIn(from indexed address, value uint256) +func (_Proceeds *ProceedsFilterer) WatchLogProceedsIn(opts *bind.WatchOpts, sink chan<- *ProceedsLogProceedsIn, from []common.Address) (event.Subscription, error) { + + var fromRule []interface{} + for _, fromItem := range from { + fromRule = append(fromRule, fromItem) + } + + logs, sub, err := _Proceeds.contract.WatchLogs(opts, "LogProceedsIn", fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ProceedsLogProceedsIn) + if err := _Proceeds.contract.UnpackLog(event, "LogProceedsIn", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ProceedsOwnershipChangedIterator is returned from FilterOwnershipChanged and is used to iterate over the raw logs and unpacked data for OwnershipChanged events raised by the Proceeds contract. +type ProceedsOwnershipChangedIterator struct { + Event *ProceedsOwnershipChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ProceedsOwnershipChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ProceedsOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ProceedsOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ProceedsOwnershipChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ProceedsOwnershipChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ProceedsOwnershipChanged represents a OwnershipChanged event raised by the Proceeds contract. +type ProceedsOwnershipChanged struct { + PrevOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipChanged is a free log retrieval operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Proceeds *ProceedsFilterer) FilterOwnershipChanged(opts *bind.FilterOpts, prevOwner []common.Address, newOwner []common.Address) (*ProceedsOwnershipChangedIterator, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Proceeds.contract.FilterLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &ProceedsOwnershipChangedIterator{contract: _Proceeds.contract, event: "OwnershipChanged", logs: logs, sub: sub}, nil +} + +// WatchOwnershipChanged is a free log subscription operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Proceeds *ProceedsFilterer) WatchOwnershipChanged(opts *bind.WatchOpts, sink chan<- *ProceedsOwnershipChanged, prevOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Proceeds.contract.WatchLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ProceedsOwnershipChanged) + if err := _Proceeds.contract.UnpackLog(event, "OwnershipChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// SafeMathABI is the input ABI used to generate the binding from. +const SafeMathABI = "[]" + +// SafeMathBin is the compiled bytecode used for deploying new contracts. +const SafeMathBin = `0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a7230582046f3eb35901c1d62fc82ae82c0e501ae465e2cbe152add8f3ac5c217268d4af80029` + +// DeploySafeMath deploys a new Ethereum contract, binding an instance of SafeMath to it. +func DeploySafeMath(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SafeMath, error) { + parsed, err := abi.JSON(strings.NewReader(SafeMathABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SafeMathBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil +} + +// SafeMath is an auto generated Go binding around an Ethereum contract. +type SafeMath struct { + SafeMathCaller // Read-only binding to the contract + SafeMathTransactor // Write-only binding to the contract + SafeMathFilterer // Log filterer for contract events +} + +// SafeMathCaller is an auto generated read-only Go binding around an Ethereum contract. +type SafeMathCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SafeMathTransactor is an auto generated write-only Go binding around an Ethereum contract. +type SafeMathTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SafeMathFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SafeMathFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SafeMathSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SafeMathSession struct { + Contract *SafeMath // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SafeMathCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SafeMathCallerSession struct { + Contract *SafeMathCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SafeMathTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SafeMathTransactorSession struct { + Contract *SafeMathTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SafeMathRaw is an auto generated low-level Go binding around an Ethereum contract. +type SafeMathRaw struct { + Contract *SafeMath // Generic contract binding to access the raw methods on +} + +// SafeMathCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SafeMathCallerRaw struct { + Contract *SafeMathCaller // Generic read-only contract binding to access the raw methods on +} + +// SafeMathTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SafeMathTransactorRaw struct { + Contract *SafeMathTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewSafeMath creates a new instance of SafeMath, bound to a specific deployed contract. +func NewSafeMath(address common.Address, backend bind.ContractBackend) (*SafeMath, error) { + contract, err := bindSafeMath(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &SafeMath{SafeMathCaller: SafeMathCaller{contract: contract}, SafeMathTransactor: SafeMathTransactor{contract: contract}, SafeMathFilterer: SafeMathFilterer{contract: contract}}, nil +} + +// NewSafeMathCaller creates a new read-only instance of SafeMath, bound to a specific deployed contract. +func NewSafeMathCaller(address common.Address, caller bind.ContractCaller) (*SafeMathCaller, error) { + contract, err := bindSafeMath(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SafeMathCaller{contract: contract}, nil +} + +// NewSafeMathTransactor creates a new write-only instance of SafeMath, bound to a specific deployed contract. +func NewSafeMathTransactor(address common.Address, transactor bind.ContractTransactor) (*SafeMathTransactor, error) { + contract, err := bindSafeMath(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SafeMathTransactor{contract: contract}, nil +} + +// NewSafeMathFilterer creates a new log filterer instance of SafeMath, bound to a specific deployed contract. +func NewSafeMathFilterer(address common.Address, filterer bind.ContractFilterer) (*SafeMathFilterer, error) { + contract, err := bindSafeMath(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SafeMathFilterer{contract: contract}, nil +} + +// bindSafeMath binds a generic wrapper to an already deployed contract. +func bindSafeMath(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(SafeMathABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SafeMath *SafeMathRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _SafeMath.Contract.SafeMathCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SafeMath *SafeMathRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SafeMath.Contract.SafeMathTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SafeMath *SafeMathRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SafeMath.Contract.SafeMathTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SafeMath *SafeMathCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _SafeMath.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SafeMath *SafeMathTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SafeMath.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SafeMath *SafeMathTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SafeMath.Contract.contract.Transact(opts, method, params...) +} + +// SmartTokenABI is the input ABI used to generate the binding from. +const SmartTokenABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"minter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_autonomousConverter\",\"type\":\"address\"},{\"name\":\"_minter\",\"type\":\"address\"},{\"name\":\"_initialSupply\",\"type\":\"uint256\"}],\"name\":\"initSmartToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenPorter\",\"type\":\"address\"}],\"name\":\"setTokenPorter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenPorter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"autonomousConverter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"destroy\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_autonomousConverter\",\"type\":\"address\"},{\"name\":\"_minter\",\"type\":\"address\"},{\"name\":\"_initialSupply\",\"type\":\"uint256\"},{\"name\":\"_decmult\",\"type\":\"uint256\"}],\"name\":\"initMintable\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Destroy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"}]" + +// SmartTokenBin is the compiled bytecode used for deploying new contracts. +const SmartTokenBin = `0x608060405260008054600160a060020a03191633179055610820806100256000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630754617281146100d45780630b0c8f1f1461010557806318160ddd146101315780631987b887146101585780632af4c31e1461018d57806340c10f19146101ae5780634892f0af146101d257806350b48c5e146101e757806370a08231146101fc57806379ba50971461021d5780638da5cb5b14610232578063a24835d114610247578063c3f51fca1461026b578063d4ee1d9014610298575b600080fd5b3480156100e057600080fd5b506100e96102ad565b60408051600160a060020a039092168252519081900360200190f35b34801561011157600080fd5b5061012f600160a060020a03600435811690602435166044356102bc565b005b34801561013d57600080fd5b506101466102ec565b60408051918252519081900360200190f35b34801561016457600080fd5b50610179600160a060020a03600435166102f2565b604080519115158252519081900360200190f35b34801561019957600080fd5b50610179600160a060020a0360043516610351565b3480156101ba57600080fd5b50610179600160a060020a03600435166024356103b4565b3480156101de57600080fd5b506100e96104c6565b3480156101f357600080fd5b506100e96104d5565b34801561020857600080fd5b50610146600160a060020a03600435166104e4565b34801561022957600080fd5b506101796104ff565b34801561023e57600080fd5b506100e961058a565b34801561025357600080fd5b50610179600160a060020a0360043516602435610599565b34801561027757600080fd5b5061012f600160a060020a03600435811690602435166044356064356106ab565b3480156102a457600080fd5b506100e961078e565b600554600160a060020a031681565b600054600160a060020a031633146102d357600080fd5b6102e7838383670de0b6b3a76400006106ab565b505050565b60025490565b60008054600160a060020a0316331461030a57600080fd5b600160a060020a038216151561031f57600080fd5b5060068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60008054600160a060020a0316331461036957600080fd5b600054600160a060020a038381169116141561038457600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b600554600090600160a060020a03163314806103da5750600654600160a060020a031633145b15156103e557600080fd5b600160a060020a03831660009081526003602052604090205461040e908363ffffffff61079d16565b600160a060020a03841660009081526003602052604090205560025461043a908363ffffffff61079d16565b600255604080518381529051600160a060020a038516917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a2604080518381529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b600654600160a060020a031681565b600454600160a060020a031681565b600160a060020a031660009081526003602052604090205490565b600154600090600160a060020a0316331461051957600080fd5b60015460008054604051600160a060020a0393841693909116917f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b91a350600180546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905590565b600054600160a060020a031681565b600454600090600160a060020a03163314806105bf5750600654600160a060020a031633145b15156105ca57600080fd5b600160a060020a0383166000908152600360205260409020546105f3908363ffffffff6107b716565b600160a060020a03841660009081526003602052604090205560025461061f908363ffffffff6107b716565b600255604080518381529051600160a060020a038516917f81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee919081900360200190a2604080518381529051600091600160a060020a038616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b600054600160a060020a031633146106c257600080fd5b600454600160a060020a03161580156106e35750600160a060020a03841615155b15156106ee57600080fd5b600554600160a060020a031615801561070f5750600160a060020a03831615155b151561071a57600080fd5b60048054600160a060020a0380871673ffffffffffffffffffffffffffffffffffffffff19928316179092556005805492861692909116919091179055610767828263ffffffff6107c916565b6002819055600160a060020a03909416600090815260036020526040902093909355505050565b600154600160a060020a031681565b6000828201838110156107ac57fe5b8091505b5092915050565b6000828211156107c357fe5b50900390565b6000808315156107dc57600091506107b0565b508282028284828115156107ec57fe5b04146107ac57fe00a165627a7a72305820caff3d1cb1db86ecdeb0ed5732180f75a94e2aa1f3a222121aee421551196f3d0029` + +// DeploySmartToken deploys a new Ethereum contract, binding an instance of SmartToken to it. +func DeploySmartToken(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *SmartToken, error) { + parsed, err := abi.JSON(strings.NewReader(SmartTokenABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(SmartTokenBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &SmartToken{SmartTokenCaller: SmartTokenCaller{contract: contract}, SmartTokenTransactor: SmartTokenTransactor{contract: contract}, SmartTokenFilterer: SmartTokenFilterer{contract: contract}}, nil +} + +// SmartToken is an auto generated Go binding around an Ethereum contract. +type SmartToken struct { + SmartTokenCaller // Read-only binding to the contract + SmartTokenTransactor // Write-only binding to the contract + SmartTokenFilterer // Log filterer for contract events +} + +// SmartTokenCaller is an auto generated read-only Go binding around an Ethereum contract. +type SmartTokenCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SmartTokenTransactor is an auto generated write-only Go binding around an Ethereum contract. +type SmartTokenTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SmartTokenFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type SmartTokenFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// SmartTokenSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type SmartTokenSession struct { + Contract *SmartToken // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SmartTokenCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type SmartTokenCallerSession struct { + Contract *SmartTokenCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// SmartTokenTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type SmartTokenTransactorSession struct { + Contract *SmartTokenTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// SmartTokenRaw is an auto generated low-level Go binding around an Ethereum contract. +type SmartTokenRaw struct { + Contract *SmartToken // Generic contract binding to access the raw methods on +} + +// SmartTokenCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type SmartTokenCallerRaw struct { + Contract *SmartTokenCaller // Generic read-only contract binding to access the raw methods on +} + +// SmartTokenTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type SmartTokenTransactorRaw struct { + Contract *SmartTokenTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewSmartToken creates a new instance of SmartToken, bound to a specific deployed contract. +func NewSmartToken(address common.Address, backend bind.ContractBackend) (*SmartToken, error) { + contract, err := bindSmartToken(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &SmartToken{SmartTokenCaller: SmartTokenCaller{contract: contract}, SmartTokenTransactor: SmartTokenTransactor{contract: contract}, SmartTokenFilterer: SmartTokenFilterer{contract: contract}}, nil +} + +// NewSmartTokenCaller creates a new read-only instance of SmartToken, bound to a specific deployed contract. +func NewSmartTokenCaller(address common.Address, caller bind.ContractCaller) (*SmartTokenCaller, error) { + contract, err := bindSmartToken(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &SmartTokenCaller{contract: contract}, nil +} + +// NewSmartTokenTransactor creates a new write-only instance of SmartToken, bound to a specific deployed contract. +func NewSmartTokenTransactor(address common.Address, transactor bind.ContractTransactor) (*SmartTokenTransactor, error) { + contract, err := bindSmartToken(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &SmartTokenTransactor{contract: contract}, nil +} + +// NewSmartTokenFilterer creates a new log filterer instance of SmartToken, bound to a specific deployed contract. +func NewSmartTokenFilterer(address common.Address, filterer bind.ContractFilterer) (*SmartTokenFilterer, error) { + contract, err := bindSmartToken(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &SmartTokenFilterer{contract: contract}, nil +} + +// bindSmartToken binds a generic wrapper to an already deployed contract. +func bindSmartToken(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(SmartTokenABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SmartToken *SmartTokenRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _SmartToken.Contract.SmartTokenCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SmartToken *SmartTokenRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SmartToken.Contract.SmartTokenTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SmartToken *SmartTokenRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SmartToken.Contract.SmartTokenTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_SmartToken *SmartTokenCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _SmartToken.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_SmartToken *SmartTokenTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SmartToken.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_SmartToken *SmartTokenTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _SmartToken.Contract.contract.Transact(opts, method, params...) +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_SmartToken *SmartTokenCaller) AutonomousConverter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _SmartToken.contract.Call(opts, out, "autonomousConverter") + return *ret0, err +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_SmartToken *SmartTokenSession) AutonomousConverter() (common.Address, error) { + return _SmartToken.Contract.AutonomousConverter(&_SmartToken.CallOpts) +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_SmartToken *SmartTokenCallerSession) AutonomousConverter() (common.Address, error) { + return _SmartToken.Contract.AutonomousConverter(&_SmartToken.CallOpts) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_SmartToken *SmartTokenCaller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _SmartToken.contract.Call(opts, out, "balanceOf", _owner) + return *ret0, err +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_SmartToken *SmartTokenSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _SmartToken.Contract.BalanceOf(&_SmartToken.CallOpts, _owner) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_SmartToken *SmartTokenCallerSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _SmartToken.Contract.BalanceOf(&_SmartToken.CallOpts, _owner) +} + +// Minter is a free data retrieval call binding the contract method 0x07546172. +// +// Solidity: function minter() constant returns(address) +func (_SmartToken *SmartTokenCaller) Minter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _SmartToken.contract.Call(opts, out, "minter") + return *ret0, err +} + +// Minter is a free data retrieval call binding the contract method 0x07546172. +// +// Solidity: function minter() constant returns(address) +func (_SmartToken *SmartTokenSession) Minter() (common.Address, error) { + return _SmartToken.Contract.Minter(&_SmartToken.CallOpts) +} + +// Minter is a free data retrieval call binding the contract method 0x07546172. +// +// Solidity: function minter() constant returns(address) +func (_SmartToken *SmartTokenCallerSession) Minter() (common.Address, error) { + return _SmartToken.Contract.Minter(&_SmartToken.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_SmartToken *SmartTokenCaller) NewOwner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _SmartToken.contract.Call(opts, out, "newOwner") + return *ret0, err +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_SmartToken *SmartTokenSession) NewOwner() (common.Address, error) { + return _SmartToken.Contract.NewOwner(&_SmartToken.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_SmartToken *SmartTokenCallerSession) NewOwner() (common.Address, error) { + return _SmartToken.Contract.NewOwner(&_SmartToken.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_SmartToken *SmartTokenCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _SmartToken.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_SmartToken *SmartTokenSession) Owner() (common.Address, error) { + return _SmartToken.Contract.Owner(&_SmartToken.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_SmartToken *SmartTokenCallerSession) Owner() (common.Address, error) { + return _SmartToken.Contract.Owner(&_SmartToken.CallOpts) +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_SmartToken *SmartTokenCaller) TokenPorter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _SmartToken.contract.Call(opts, out, "tokenPorter") + return *ret0, err +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_SmartToken *SmartTokenSession) TokenPorter() (common.Address, error) { + return _SmartToken.Contract.TokenPorter(&_SmartToken.CallOpts) +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_SmartToken *SmartTokenCallerSession) TokenPorter() (common.Address, error) { + return _SmartToken.Contract.TokenPorter(&_SmartToken.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_SmartToken *SmartTokenCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _SmartToken.contract.Call(opts, out, "totalSupply") + return *ret0, err +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_SmartToken *SmartTokenSession) TotalSupply() (*big.Int, error) { + return _SmartToken.Contract.TotalSupply(&_SmartToken.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_SmartToken *SmartTokenCallerSession) TotalSupply() (*big.Int, error) { + return _SmartToken.Contract.TotalSupply(&_SmartToken.CallOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_SmartToken *SmartTokenTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _SmartToken.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_SmartToken *SmartTokenSession) AcceptOwnership() (*types.Transaction, error) { + return _SmartToken.Contract.AcceptOwnership(&_SmartToken.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_SmartToken *SmartTokenTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _SmartToken.Contract.AcceptOwnership(&_SmartToken.TransactOpts) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_SmartToken *SmartTokenTransactor) ChangeOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) { + return _SmartToken.contract.Transact(opts, "changeOwnership", _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_SmartToken *SmartTokenSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _SmartToken.Contract.ChangeOwnership(&_SmartToken.TransactOpts, _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_SmartToken *SmartTokenTransactorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _SmartToken.Contract.ChangeOwnership(&_SmartToken.TransactOpts, _newOwner) +} + +// Destroy is a paid mutator transaction binding the contract method 0xa24835d1. +// +// Solidity: function destroy(_from address, _value uint256) returns(bool) +func (_SmartToken *SmartTokenTransactor) Destroy(opts *bind.TransactOpts, _from common.Address, _value *big.Int) (*types.Transaction, error) { + return _SmartToken.contract.Transact(opts, "destroy", _from, _value) +} + +// Destroy is a paid mutator transaction binding the contract method 0xa24835d1. +// +// Solidity: function destroy(_from address, _value uint256) returns(bool) +func (_SmartToken *SmartTokenSession) Destroy(_from common.Address, _value *big.Int) (*types.Transaction, error) { + return _SmartToken.Contract.Destroy(&_SmartToken.TransactOpts, _from, _value) +} + +// Destroy is a paid mutator transaction binding the contract method 0xa24835d1. +// +// Solidity: function destroy(_from address, _value uint256) returns(bool) +func (_SmartToken *SmartTokenTransactorSession) Destroy(_from common.Address, _value *big.Int) (*types.Transaction, error) { + return _SmartToken.Contract.Destroy(&_SmartToken.TransactOpts, _from, _value) +} + +// InitMintable is a paid mutator transaction binding the contract method 0xc3f51fca. +// +// Solidity: function initMintable(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_SmartToken *SmartTokenTransactor) InitMintable(opts *bind.TransactOpts, _autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _SmartToken.contract.Transact(opts, "initMintable", _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitMintable is a paid mutator transaction binding the contract method 0xc3f51fca. +// +// Solidity: function initMintable(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_SmartToken *SmartTokenSession) InitMintable(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _SmartToken.Contract.InitMintable(&_SmartToken.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitMintable is a paid mutator transaction binding the contract method 0xc3f51fca. +// +// Solidity: function initMintable(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_SmartToken *SmartTokenTransactorSession) InitMintable(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _SmartToken.Contract.InitMintable(&_SmartToken.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitSmartToken is a paid mutator transaction binding the contract method 0x0b0c8f1f. +// +// Solidity: function initSmartToken(_autonomousConverter address, _minter address, _initialSupply uint256) returns() +func (_SmartToken *SmartTokenTransactor) InitSmartToken(opts *bind.TransactOpts, _autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int) (*types.Transaction, error) { + return _SmartToken.contract.Transact(opts, "initSmartToken", _autonomousConverter, _minter, _initialSupply) +} + +// InitSmartToken is a paid mutator transaction binding the contract method 0x0b0c8f1f. +// +// Solidity: function initSmartToken(_autonomousConverter address, _minter address, _initialSupply uint256) returns() +func (_SmartToken *SmartTokenSession) InitSmartToken(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int) (*types.Transaction, error) { + return _SmartToken.Contract.InitSmartToken(&_SmartToken.TransactOpts, _autonomousConverter, _minter, _initialSupply) +} + +// InitSmartToken is a paid mutator transaction binding the contract method 0x0b0c8f1f. +// +// Solidity: function initSmartToken(_autonomousConverter address, _minter address, _initialSupply uint256) returns() +func (_SmartToken *SmartTokenTransactorSession) InitSmartToken(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int) (*types.Transaction, error) { + return _SmartToken.Contract.InitSmartToken(&_SmartToken.TransactOpts, _autonomousConverter, _minter, _initialSupply) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(_to address, _value uint256) returns(bool) +func (_SmartToken *SmartTokenTransactor) Mint(opts *bind.TransactOpts, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _SmartToken.contract.Transact(opts, "mint", _to, _value) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(_to address, _value uint256) returns(bool) +func (_SmartToken *SmartTokenSession) Mint(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _SmartToken.Contract.Mint(&_SmartToken.TransactOpts, _to, _value) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(_to address, _value uint256) returns(bool) +func (_SmartToken *SmartTokenTransactorSession) Mint(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _SmartToken.Contract.Mint(&_SmartToken.TransactOpts, _to, _value) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_SmartToken *SmartTokenTransactor) SetTokenPorter(opts *bind.TransactOpts, _tokenPorter common.Address) (*types.Transaction, error) { + return _SmartToken.contract.Transact(opts, "setTokenPorter", _tokenPorter) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_SmartToken *SmartTokenSession) SetTokenPorter(_tokenPorter common.Address) (*types.Transaction, error) { + return _SmartToken.Contract.SetTokenPorter(&_SmartToken.TransactOpts, _tokenPorter) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_SmartToken *SmartTokenTransactorSession) SetTokenPorter(_tokenPorter common.Address) (*types.Transaction, error) { + return _SmartToken.Contract.SetTokenPorter(&_SmartToken.TransactOpts, _tokenPorter) +} + +// SmartTokenDestroyIterator is returned from FilterDestroy and is used to iterate over the raw logs and unpacked data for Destroy events raised by the SmartToken contract. +type SmartTokenDestroyIterator struct { + Event *SmartTokenDestroy // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SmartTokenDestroyIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SmartTokenDestroy) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SmartTokenDestroy) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SmartTokenDestroyIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SmartTokenDestroyIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SmartTokenDestroy represents a Destroy event raised by the SmartToken contract. +type SmartTokenDestroy struct { + From common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDestroy is a free log retrieval operation binding the contract event 0x81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee. +// +// Solidity: e Destroy(_from indexed address, _value uint256) +func (_SmartToken *SmartTokenFilterer) FilterDestroy(opts *bind.FilterOpts, _from []common.Address) (*SmartTokenDestroyIterator, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + + logs, sub, err := _SmartToken.contract.FilterLogs(opts, "Destroy", _fromRule) + if err != nil { + return nil, err + } + return &SmartTokenDestroyIterator{contract: _SmartToken.contract, event: "Destroy", logs: logs, sub: sub}, nil +} + +// WatchDestroy is a free log subscription operation binding the contract event 0x81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee. +// +// Solidity: e Destroy(_from indexed address, _value uint256) +func (_SmartToken *SmartTokenFilterer) WatchDestroy(opts *bind.WatchOpts, sink chan<- *SmartTokenDestroy, _from []common.Address) (event.Subscription, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + + logs, sub, err := _SmartToken.contract.WatchLogs(opts, "Destroy", _fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SmartTokenDestroy) + if err := _SmartToken.contract.UnpackLog(event, "Destroy", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// SmartTokenMintIterator is returned from FilterMint and is used to iterate over the raw logs and unpacked data for Mint events raised by the SmartToken contract. +type SmartTokenMintIterator struct { + Event *SmartTokenMint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SmartTokenMintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SmartTokenMint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SmartTokenMint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SmartTokenMintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SmartTokenMintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SmartTokenMint represents a Mint event raised by the SmartToken contract. +type SmartTokenMint struct { + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMint is a free log retrieval operation binding the contract event 0x0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885. +// +// Solidity: e Mint(_to indexed address, _value uint256) +func (_SmartToken *SmartTokenFilterer) FilterMint(opts *bind.FilterOpts, _to []common.Address) (*SmartTokenMintIterator, error) { + + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _SmartToken.contract.FilterLogs(opts, "Mint", _toRule) + if err != nil { + return nil, err + } + return &SmartTokenMintIterator{contract: _SmartToken.contract, event: "Mint", logs: logs, sub: sub}, nil +} + +// WatchMint is a free log subscription operation binding the contract event 0x0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885. +// +// Solidity: e Mint(_to indexed address, _value uint256) +func (_SmartToken *SmartTokenFilterer) WatchMint(opts *bind.WatchOpts, sink chan<- *SmartTokenMint, _to []common.Address) (event.Subscription, error) { + + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _SmartToken.contract.WatchLogs(opts, "Mint", _toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SmartTokenMint) + if err := _SmartToken.contract.UnpackLog(event, "Mint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// SmartTokenOwnershipChangedIterator is returned from FilterOwnershipChanged and is used to iterate over the raw logs and unpacked data for OwnershipChanged events raised by the SmartToken contract. +type SmartTokenOwnershipChangedIterator struct { + Event *SmartTokenOwnershipChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SmartTokenOwnershipChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SmartTokenOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SmartTokenOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SmartTokenOwnershipChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SmartTokenOwnershipChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SmartTokenOwnershipChanged represents a OwnershipChanged event raised by the SmartToken contract. +type SmartTokenOwnershipChanged struct { + PrevOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipChanged is a free log retrieval operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_SmartToken *SmartTokenFilterer) FilterOwnershipChanged(opts *bind.FilterOpts, prevOwner []common.Address, newOwner []common.Address) (*SmartTokenOwnershipChangedIterator, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _SmartToken.contract.FilterLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &SmartTokenOwnershipChangedIterator{contract: _SmartToken.contract, event: "OwnershipChanged", logs: logs, sub: sub}, nil +} + +// WatchOwnershipChanged is a free log subscription operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_SmartToken *SmartTokenFilterer) WatchOwnershipChanged(opts *bind.WatchOpts, sink chan<- *SmartTokenOwnershipChanged, prevOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _SmartToken.contract.WatchLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SmartTokenOwnershipChanged) + if err := _SmartToken.contract.UnpackLog(event, "OwnershipChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// SmartTokenTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the SmartToken contract. +type SmartTokenTransferIterator struct { + Event *SmartTokenTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *SmartTokenTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(SmartTokenTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(SmartTokenTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *SmartTokenTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *SmartTokenTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// SmartTokenTransfer represents a Transfer event raised by the SmartToken contract. +type SmartTokenTransfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: e Transfer(_from indexed address, _to indexed address, _value uint256) +func (_SmartToken *SmartTokenFilterer) FilterTransfer(opts *bind.FilterOpts, _from []common.Address, _to []common.Address) (*SmartTokenTransferIterator, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _SmartToken.contract.FilterLogs(opts, "Transfer", _fromRule, _toRule) + if err != nil { + return nil, err + } + return &SmartTokenTransferIterator{contract: _SmartToken.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: e Transfer(_from indexed address, _to indexed address, _value uint256) +func (_SmartToken *SmartTokenFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *SmartTokenTransfer, _from []common.Address, _to []common.Address) (event.Subscription, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _SmartToken.contract.WatchLogs(opts, "Transfer", _fromRule, _toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(SmartTokenTransfer) + if err := _SmartToken.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// TokenABI is the input ABI used to generate the binding from. +const TokenABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"minter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenPorter\",\"type\":\"address\"}],\"name\":\"setTokenPorter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_autonomousConverter\",\"type\":\"address\"},{\"name\":\"_minter\",\"type\":\"address\"},{\"name\":\"_initialSupply\",\"type\":\"uint256\"},{\"name\":\"_decmult\",\"type\":\"uint256\"}],\"name\":\"initToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenPorter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approveMore\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"autonomousConverter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approveLess\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"destroy\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"bits\",\"type\":\"uint256[]\"}],\"name\":\"multiTransfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_autonomousConverter\",\"type\":\"address\"},{\"name\":\"_minter\",\"type\":\"address\"},{\"name\":\"_initialSupply\",\"type\":\"uint256\"},{\"name\":\"_decmult\",\"type\":\"uint256\"}],\"name\":\"initMintable\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Destroy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}]" + +// TokenBin is the compiled bytecode used for deploying new contracts. +const TokenBin = `0x608060405260008054600160a060020a03191633179055610f9c806100256000396000f3006080604052600436106101035763ffffffff60e060020a600035041663075461728114610108578063095ea7b31461013957806318160ddd146101715780631987b8871461019857806323b872dd146101b95780632af4c31e146101e35780633bf11a6c1461020457806340c10f19146102335780634892f0af146102575780634cef0ff61461026c57806350b48c5e1461029057806370a08231146102a55780637240eccf146102c657806379ba5097146102ea5780638da5cb5b146102ff578063a24835d114610314578063a9059cbb14610338578063b33fcc7a1461035c578063c3f51fca146103b1578063d4ee1d90146103de578063dd62ed3e146103f3575b600080fd5b34801561011457600080fd5b5061011d61041a565b60408051600160a060020a039092168252519081900360200190f35b34801561014557600080fd5b5061015d600160a060020a0360043516602435610429565b604080519115158252519081900360200190f35b34801561017d57600080fd5b506101866104a8565b60408051918252519081900360200190f35b3480156101a457600080fd5b5061015d600160a060020a03600435166104ae565b3480156101c557600080fd5b5061015d600160a060020a036004358116906024351660443561050d565b3480156101ef57600080fd5b5061015d600160a060020a036004351661078a565b34801561021057600080fd5b50610231600160a060020a03600435811690602435166044356064356107ed565b005b34801561023f57600080fd5b5061015d600160a060020a0360043516602435610816565b34801561026357600080fd5b5061011d610916565b34801561027857600080fd5b5061015d600160a060020a0360043516602435610925565b34801561029c57600080fd5b5061011d6109c4565b3480156102b157600080fd5b50610186600160a060020a03600435166109d3565b3480156102d257600080fd5b5061015d600160a060020a03600435166024356109ee565b3480156102f657600080fd5b5061015d610a23565b34801561030b57600080fd5b5061011d610aae565b34801561032057600080fd5b5061015d600160a060020a0360043516602435610abd565b34801561034457600080fd5b5061015d600160a060020a0360043516602435610bbd565b34801561036857600080fd5b506040805160206004803580820135838102808601850190965280855261015d95369593946024949385019291829185019084908082843750949750610d5c9650505050505050565b3480156103bd57600080fd5b50610231600160a060020a0360043581169060243516604435606435610de0565b3480156103ea57600080fd5b5061011d610ec3565b3480156103ff57600080fd5b50610186600160a060020a0360043581169060243516610ed2565b600554600160a060020a031681565b6000600160a060020a03831630141561044157600080fd5b336000818152600760209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60025490565b60008054600160a060020a031633146104c657600080fd5b600160a060020a03821615156104db57600080fd5b5060068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b600080600160a060020a038416151561052557600080fd5b600554600160a060020a038581169116148015906105515750600554600160a060020a03868116911614155b151561055c57600080fd5b600160a060020a038416301480159061057e5750600160a060020a0385163014155b151561058957600080fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166355b5ec646040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156105dc57600080fd5b505af11580156105f0573d6000803e3d6000fd5b505050506040513d602081101561060657600080fd5b50519050600160a060020a0384811690821614801590610638575080600160a060020a031685600160a060020a031614155b151561064357600080fd5b600454600160a060020a038681169116141561065e57600080fd5b600160a060020a038516600090815260076020908152604080832033845290915290205483111561068e57600080fd5b600160a060020a0385166000908152600360205260409020546106b7908463ffffffff610efd16565b600160a060020a0380871660009081526003602052604080822093909355908616815220546106ec908463ffffffff610f0f16565b600160a060020a038086166000908152600360209081526040808320949094559188168152600782528281203382529091522054610730908463ffffffff610efd16565b600160a060020a0380871660008181526007602090815260408083203384528252918290209490945580518781529051928816939192600080516020610f51833981519152929181900390910190a3506001949350505050565b60008054600160a060020a031633146107a257600080fd5b600054600160a060020a03838116911614156107bd57600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b600054600160a060020a0316331461080457600080fd5b61081084848484610de0565b50505050565b600554600090600160a060020a031633148061083c5750600654600160a060020a031633145b151561084757600080fd5b600160a060020a038316600090815260036020526040902054610870908363ffffffff610f0f16565b600160a060020a03841660009081526003602052604090205560025461089c908363ffffffff610f0f16565b600255604080518381529051600160a060020a038516917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a2604080518381529051600160a060020a03851691600091600080516020610f518339815191529181900360200190a350600192915050565b600654600160a060020a031681565b336000908152600760209081526040808320600160a060020a03861684529091528120548161095a828563ffffffff610f0f16565b336000818152600760209081526040808320600160a060020a038b16808552908352928190208590558051858152905194955091937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3506001949350505050565b600454600160a060020a031681565b600160a060020a031660009081526003602052604090205490565b336000908152600760209081526040808320600160a060020a03861684529091528120548161095a828563ffffffff610efd16565b600154600090600160a060020a03163314610a3d57600080fd5b60015460008054604051600160a060020a0393841693909116917f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b91a350600180546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905590565b600054600160a060020a031681565b600454600090600160a060020a0316331480610ae35750600654600160a060020a031633145b1515610aee57600080fd5b600160a060020a038316600090815260036020526040902054610b17908363ffffffff610efd16565b600160a060020a038416600090815260036020526040902055600254610b43908363ffffffff610efd16565b600255604080518381529051600160a060020a038516917f81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee919081900360200190a2604080518381529051600091600160a060020a03861691600080516020610f518339815191529181900360200190a350600192915050565b600080600160a060020a0384161515610bd557600080fd5b600554600160a060020a0385811691161415610bf057600080fd5b600160a060020a038416301415610c0657600080fd5b600454600160a060020a0385811691161415610c2157600080fd5b600560009054906101000a9004600160a060020a0316600160a060020a03166355b5ec646040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c7457600080fd5b505af1158015610c88573d6000803e3d6000fd5b505050506040513d6020811015610c9e57600080fd5b50519050600160a060020a038481169082161415610cbb57600080fd5b33600090815260036020526040902054610cdb908463ffffffff610efd16565b3360009081526003602052604080822092909255600160a060020a03861681522054610d0d908463ffffffff610f0f16565b600160a060020a038516600081815260036020908152604091829020939093558051868152905191923392600080516020610f518339815191529281900390910190a3600191505b5092915050565b60008080805b8451831015610dd55760608584815181101515610d7b57fe5b906020019060200201519060020a900491508483815181101515610d9b57fe5b906020019060200201516bffffffffffffffffffffffff169050610dbf8282610bbd565b1515610dca57600080fd5b600190920191610d62565b506001949350505050565b600054600160a060020a03163314610df757600080fd5b600454600160a060020a0316158015610e185750600160a060020a03841615155b1515610e2357600080fd5b600554600160a060020a0316158015610e445750600160a060020a03831615155b1515610e4f57600080fd5b60048054600160a060020a0380871673ffffffffffffffffffffffffffffffffffffffff19928316179092556005805492861692909116919091179055610e9c828263ffffffff610f2516565b6002819055600160a060020a03909416600090815260036020526040902093909355505050565b600154600160a060020a031681565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b600082821115610f0957fe5b50900390565b600082820183811015610f1e57fe5b9392505050565b600080831515610f385760009150610d55565b50828202828482811515610f4857fe5b0414610f1e57fe00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058207b6b990c2f8fb5872dfcbfa11a42b6d70090e15ce72a4d60b68cfb5014530b930029` + +// DeployToken deploys a new Ethereum contract, binding an instance of Token to it. +func DeployToken(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Token, error) { + parsed, err := abi.JSON(strings.NewReader(TokenABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(TokenBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Token{TokenCaller: TokenCaller{contract: contract}, TokenTransactor: TokenTransactor{contract: contract}, TokenFilterer: TokenFilterer{contract: contract}}, nil +} + +// Token is an auto generated Go binding around an Ethereum contract. +type Token struct { + TokenCaller // Read-only binding to the contract + TokenTransactor // Write-only binding to the contract + TokenFilterer // Log filterer for contract events +} + +// TokenCaller is an auto generated read-only Go binding around an Ethereum contract. +type TokenCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TokenTransactor is an auto generated write-only Go binding around an Ethereum contract. +type TokenTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TokenFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type TokenFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TokenSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type TokenSession struct { + Contract *Token // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TokenCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type TokenCallerSession struct { + Contract *TokenCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// TokenTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type TokenTransactorSession struct { + Contract *TokenTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TokenRaw is an auto generated low-level Go binding around an Ethereum contract. +type TokenRaw struct { + Contract *Token // Generic contract binding to access the raw methods on +} + +// TokenCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type TokenCallerRaw struct { + Contract *TokenCaller // Generic read-only contract binding to access the raw methods on +} + +// TokenTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type TokenTransactorRaw struct { + Contract *TokenTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewToken creates a new instance of Token, bound to a specific deployed contract. +func NewToken(address common.Address, backend bind.ContractBackend) (*Token, error) { + contract, err := bindToken(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Token{TokenCaller: TokenCaller{contract: contract}, TokenTransactor: TokenTransactor{contract: contract}, TokenFilterer: TokenFilterer{contract: contract}}, nil +} + +// NewTokenCaller creates a new read-only instance of Token, bound to a specific deployed contract. +func NewTokenCaller(address common.Address, caller bind.ContractCaller) (*TokenCaller, error) { + contract, err := bindToken(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &TokenCaller{contract: contract}, nil +} + +// NewTokenTransactor creates a new write-only instance of Token, bound to a specific deployed contract. +func NewTokenTransactor(address common.Address, transactor bind.ContractTransactor) (*TokenTransactor, error) { + contract, err := bindToken(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &TokenTransactor{contract: contract}, nil +} + +// NewTokenFilterer creates a new log filterer instance of Token, bound to a specific deployed contract. +func NewTokenFilterer(address common.Address, filterer bind.ContractFilterer) (*TokenFilterer, error) { + contract, err := bindToken(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &TokenFilterer{contract: contract}, nil +} + +// bindToken binds a generic wrapper to an already deployed contract. +func bindToken(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(TokenABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Token *TokenRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Token.Contract.TokenCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Token *TokenRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Token.Contract.TokenTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Token *TokenRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Token.Contract.TokenTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Token *TokenCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Token.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Token *TokenTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Token.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Token *TokenTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Token.Contract.contract.Transact(opts, method, params...) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(_owner address, _spender address) constant returns(uint256) +func (_Token *TokenCaller) Allowance(opts *bind.CallOpts, _owner common.Address, _spender common.Address) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Token.contract.Call(opts, out, "allowance", _owner, _spender) + return *ret0, err +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(_owner address, _spender address) constant returns(uint256) +func (_Token *TokenSession) Allowance(_owner common.Address, _spender common.Address) (*big.Int, error) { + return _Token.Contract.Allowance(&_Token.CallOpts, _owner, _spender) +} + +// Allowance is a free data retrieval call binding the contract method 0xdd62ed3e. +// +// Solidity: function allowance(_owner address, _spender address) constant returns(uint256) +func (_Token *TokenCallerSession) Allowance(_owner common.Address, _spender common.Address) (*big.Int, error) { + return _Token.Contract.Allowance(&_Token.CallOpts, _owner, _spender) +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_Token *TokenCaller) AutonomousConverter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Token.contract.Call(opts, out, "autonomousConverter") + return *ret0, err +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_Token *TokenSession) AutonomousConverter() (common.Address, error) { + return _Token.Contract.AutonomousConverter(&_Token.CallOpts) +} + +// AutonomousConverter is a free data retrieval call binding the contract method 0x50b48c5e. +// +// Solidity: function autonomousConverter() constant returns(address) +func (_Token *TokenCallerSession) AutonomousConverter() (common.Address, error) { + return _Token.Contract.AutonomousConverter(&_Token.CallOpts) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_Token *TokenCaller) BalanceOf(opts *bind.CallOpts, _owner common.Address) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Token.contract.Call(opts, out, "balanceOf", _owner) + return *ret0, err +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_Token *TokenSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _Token.Contract.BalanceOf(&_Token.CallOpts, _owner) +} + +// BalanceOf is a free data retrieval call binding the contract method 0x70a08231. +// +// Solidity: function balanceOf(_owner address) constant returns(uint256) +func (_Token *TokenCallerSession) BalanceOf(_owner common.Address) (*big.Int, error) { + return _Token.Contract.BalanceOf(&_Token.CallOpts, _owner) +} + +// Minter is a free data retrieval call binding the contract method 0x07546172. +// +// Solidity: function minter() constant returns(address) +func (_Token *TokenCaller) Minter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Token.contract.Call(opts, out, "minter") + return *ret0, err +} + +// Minter is a free data retrieval call binding the contract method 0x07546172. +// +// Solidity: function minter() constant returns(address) +func (_Token *TokenSession) Minter() (common.Address, error) { + return _Token.Contract.Minter(&_Token.CallOpts) +} + +// Minter is a free data retrieval call binding the contract method 0x07546172. +// +// Solidity: function minter() constant returns(address) +func (_Token *TokenCallerSession) Minter() (common.Address, error) { + return _Token.Contract.Minter(&_Token.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Token *TokenCaller) NewOwner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Token.contract.Call(opts, out, "newOwner") + return *ret0, err +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Token *TokenSession) NewOwner() (common.Address, error) { + return _Token.Contract.NewOwner(&_Token.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Token *TokenCallerSession) NewOwner() (common.Address, error) { + return _Token.Contract.NewOwner(&_Token.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Token *TokenCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Token.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Token *TokenSession) Owner() (common.Address, error) { + return _Token.Contract.Owner(&_Token.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Token *TokenCallerSession) Owner() (common.Address, error) { + return _Token.Contract.Owner(&_Token.CallOpts) +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_Token *TokenCaller) TokenPorter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Token.contract.Call(opts, out, "tokenPorter") + return *ret0, err +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_Token *TokenSession) TokenPorter() (common.Address, error) { + return _Token.Contract.TokenPorter(&_Token.CallOpts) +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_Token *TokenCallerSession) TokenPorter() (common.Address, error) { + return _Token.Contract.TokenPorter(&_Token.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_Token *TokenCaller) TotalSupply(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _Token.contract.Call(opts, out, "totalSupply") + return *ret0, err +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_Token *TokenSession) TotalSupply() (*big.Int, error) { + return _Token.Contract.TotalSupply(&_Token.CallOpts) +} + +// TotalSupply is a free data retrieval call binding the contract method 0x18160ddd. +// +// Solidity: function totalSupply() constant returns(uint256) +func (_Token *TokenCallerSession) TotalSupply() (*big.Int, error) { + return _Token.Contract.TotalSupply(&_Token.CallOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Token *TokenTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Token.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Token *TokenSession) AcceptOwnership() (*types.Transaction, error) { + return _Token.Contract.AcceptOwnership(&_Token.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Token *TokenTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _Token.Contract.AcceptOwnership(&_Token.TransactOpts) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(_spender address, _value uint256) returns(bool) +func (_Token *TokenTransactor) Approve(opts *bind.TransactOpts, _spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.contract.Transact(opts, "approve", _spender, _value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(_spender address, _value uint256) returns(bool) +func (_Token *TokenSession) Approve(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.Approve(&_Token.TransactOpts, _spender, _value) +} + +// Approve is a paid mutator transaction binding the contract method 0x095ea7b3. +// +// Solidity: function approve(_spender address, _value uint256) returns(bool) +func (_Token *TokenTransactorSession) Approve(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.Approve(&_Token.TransactOpts, _spender, _value) +} + +// ApproveLess is a paid mutator transaction binding the contract method 0x7240eccf. +// +// Solidity: function approveLess(_spender address, _value uint256) returns(bool) +func (_Token *TokenTransactor) ApproveLess(opts *bind.TransactOpts, _spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.contract.Transact(opts, "approveLess", _spender, _value) +} + +// ApproveLess is a paid mutator transaction binding the contract method 0x7240eccf. +// +// Solidity: function approveLess(_spender address, _value uint256) returns(bool) +func (_Token *TokenSession) ApproveLess(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.ApproveLess(&_Token.TransactOpts, _spender, _value) +} + +// ApproveLess is a paid mutator transaction binding the contract method 0x7240eccf. +// +// Solidity: function approveLess(_spender address, _value uint256) returns(bool) +func (_Token *TokenTransactorSession) ApproveLess(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.ApproveLess(&_Token.TransactOpts, _spender, _value) +} + +// ApproveMore is a paid mutator transaction binding the contract method 0x4cef0ff6. +// +// Solidity: function approveMore(_spender address, _value uint256) returns(bool) +func (_Token *TokenTransactor) ApproveMore(opts *bind.TransactOpts, _spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.contract.Transact(opts, "approveMore", _spender, _value) +} + +// ApproveMore is a paid mutator transaction binding the contract method 0x4cef0ff6. +// +// Solidity: function approveMore(_spender address, _value uint256) returns(bool) +func (_Token *TokenSession) ApproveMore(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.ApproveMore(&_Token.TransactOpts, _spender, _value) +} + +// ApproveMore is a paid mutator transaction binding the contract method 0x4cef0ff6. +// +// Solidity: function approveMore(_spender address, _value uint256) returns(bool) +func (_Token *TokenTransactorSession) ApproveMore(_spender common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.ApproveMore(&_Token.TransactOpts, _spender, _value) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Token *TokenTransactor) ChangeOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) { + return _Token.contract.Transact(opts, "changeOwnership", _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Token *TokenSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Token.Contract.ChangeOwnership(&_Token.TransactOpts, _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Token *TokenTransactorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Token.Contract.ChangeOwnership(&_Token.TransactOpts, _newOwner) +} + +// Destroy is a paid mutator transaction binding the contract method 0xa24835d1. +// +// Solidity: function destroy(_from address, _value uint256) returns(bool) +func (_Token *TokenTransactor) Destroy(opts *bind.TransactOpts, _from common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.contract.Transact(opts, "destroy", _from, _value) +} + +// Destroy is a paid mutator transaction binding the contract method 0xa24835d1. +// +// Solidity: function destroy(_from address, _value uint256) returns(bool) +func (_Token *TokenSession) Destroy(_from common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.Destroy(&_Token.TransactOpts, _from, _value) +} + +// Destroy is a paid mutator transaction binding the contract method 0xa24835d1. +// +// Solidity: function destroy(_from address, _value uint256) returns(bool) +func (_Token *TokenTransactorSession) Destroy(_from common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.Destroy(&_Token.TransactOpts, _from, _value) +} + +// InitMintable is a paid mutator transaction binding the contract method 0xc3f51fca. +// +// Solidity: function initMintable(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_Token *TokenTransactor) InitMintable(opts *bind.TransactOpts, _autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _Token.contract.Transact(opts, "initMintable", _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitMintable is a paid mutator transaction binding the contract method 0xc3f51fca. +// +// Solidity: function initMintable(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_Token *TokenSession) InitMintable(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _Token.Contract.InitMintable(&_Token.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitMintable is a paid mutator transaction binding the contract method 0xc3f51fca. +// +// Solidity: function initMintable(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_Token *TokenTransactorSession) InitMintable(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _Token.Contract.InitMintable(&_Token.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitToken is a paid mutator transaction binding the contract method 0x3bf11a6c. +// +// Solidity: function initToken(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_Token *TokenTransactor) InitToken(opts *bind.TransactOpts, _autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _Token.contract.Transact(opts, "initToken", _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitToken is a paid mutator transaction binding the contract method 0x3bf11a6c. +// +// Solidity: function initToken(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_Token *TokenSession) InitToken(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _Token.Contract.InitToken(&_Token.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// InitToken is a paid mutator transaction binding the contract method 0x3bf11a6c. +// +// Solidity: function initToken(_autonomousConverter address, _minter address, _initialSupply uint256, _decmult uint256) returns() +func (_Token *TokenTransactorSession) InitToken(_autonomousConverter common.Address, _minter common.Address, _initialSupply *big.Int, _decmult *big.Int) (*types.Transaction, error) { + return _Token.Contract.InitToken(&_Token.TransactOpts, _autonomousConverter, _minter, _initialSupply, _decmult) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(_to address, _value uint256) returns(bool) +func (_Token *TokenTransactor) Mint(opts *bind.TransactOpts, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.contract.Transact(opts, "mint", _to, _value) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(_to address, _value uint256) returns(bool) +func (_Token *TokenSession) Mint(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.Mint(&_Token.TransactOpts, _to, _value) +} + +// Mint is a paid mutator transaction binding the contract method 0x40c10f19. +// +// Solidity: function mint(_to address, _value uint256) returns(bool) +func (_Token *TokenTransactorSession) Mint(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.Mint(&_Token.TransactOpts, _to, _value) +} + +// MultiTransfer is a paid mutator transaction binding the contract method 0xb33fcc7a. +// +// Solidity: function multiTransfer(bits uint256[]) returns(bool) +func (_Token *TokenTransactor) MultiTransfer(opts *bind.TransactOpts, bits []*big.Int) (*types.Transaction, error) { + return _Token.contract.Transact(opts, "multiTransfer", bits) +} + +// MultiTransfer is a paid mutator transaction binding the contract method 0xb33fcc7a. +// +// Solidity: function multiTransfer(bits uint256[]) returns(bool) +func (_Token *TokenSession) MultiTransfer(bits []*big.Int) (*types.Transaction, error) { + return _Token.Contract.MultiTransfer(&_Token.TransactOpts, bits) +} + +// MultiTransfer is a paid mutator transaction binding the contract method 0xb33fcc7a. +// +// Solidity: function multiTransfer(bits uint256[]) returns(bool) +func (_Token *TokenTransactorSession) MultiTransfer(bits []*big.Int) (*types.Transaction, error) { + return _Token.Contract.MultiTransfer(&_Token.TransactOpts, bits) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_Token *TokenTransactor) SetTokenPorter(opts *bind.TransactOpts, _tokenPorter common.Address) (*types.Transaction, error) { + return _Token.contract.Transact(opts, "setTokenPorter", _tokenPorter) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_Token *TokenSession) SetTokenPorter(_tokenPorter common.Address) (*types.Transaction, error) { + return _Token.Contract.SetTokenPorter(&_Token.TransactOpts, _tokenPorter) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_Token *TokenTransactorSession) SetTokenPorter(_tokenPorter common.Address) (*types.Transaction, error) { + return _Token.Contract.SetTokenPorter(&_Token.TransactOpts, _tokenPorter) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(_to address, _value uint256) returns(bool) +func (_Token *TokenTransactor) Transfer(opts *bind.TransactOpts, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.contract.Transact(opts, "transfer", _to, _value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(_to address, _value uint256) returns(bool) +func (_Token *TokenSession) Transfer(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.Transfer(&_Token.TransactOpts, _to, _value) +} + +// Transfer is a paid mutator transaction binding the contract method 0xa9059cbb. +// +// Solidity: function transfer(_to address, _value uint256) returns(bool) +func (_Token *TokenTransactorSession) Transfer(_to common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.Transfer(&_Token.TransactOpts, _to, _value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(_from address, _to address, _value uint256) returns(bool) +func (_Token *TokenTransactor) TransferFrom(opts *bind.TransactOpts, _from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.contract.Transact(opts, "transferFrom", _from, _to, _value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(_from address, _to address, _value uint256) returns(bool) +func (_Token *TokenSession) TransferFrom(_from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.TransferFrom(&_Token.TransactOpts, _from, _to, _value) +} + +// TransferFrom is a paid mutator transaction binding the contract method 0x23b872dd. +// +// Solidity: function transferFrom(_from address, _to address, _value uint256) returns(bool) +func (_Token *TokenTransactorSession) TransferFrom(_from common.Address, _to common.Address, _value *big.Int) (*types.Transaction, error) { + return _Token.Contract.TransferFrom(&_Token.TransactOpts, _from, _to, _value) +} + +// TokenApprovalIterator is returned from FilterApproval and is used to iterate over the raw logs and unpacked data for Approval events raised by the Token contract. +type TokenApprovalIterator struct { + Event *TokenApproval // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TokenApprovalIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TokenApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TokenApproval) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TokenApprovalIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TokenApprovalIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TokenApproval represents a Approval event raised by the Token contract. +type TokenApproval struct { + Owner common.Address + Spender common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterApproval is a free log retrieval operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: e Approval(_owner indexed address, _spender indexed address, _value uint256) +func (_Token *TokenFilterer) FilterApproval(opts *bind.FilterOpts, _owner []common.Address, _spender []common.Address) (*TokenApprovalIterator, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _spenderRule []interface{} + for _, _spenderItem := range _spender { + _spenderRule = append(_spenderRule, _spenderItem) + } + + logs, sub, err := _Token.contract.FilterLogs(opts, "Approval", _ownerRule, _spenderRule) + if err != nil { + return nil, err + } + return &TokenApprovalIterator{contract: _Token.contract, event: "Approval", logs: logs, sub: sub}, nil +} + +// WatchApproval is a free log subscription operation binding the contract event 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925. +// +// Solidity: e Approval(_owner indexed address, _spender indexed address, _value uint256) +func (_Token *TokenFilterer) WatchApproval(opts *bind.WatchOpts, sink chan<- *TokenApproval, _owner []common.Address, _spender []common.Address) (event.Subscription, error) { + + var _ownerRule []interface{} + for _, _ownerItem := range _owner { + _ownerRule = append(_ownerRule, _ownerItem) + } + var _spenderRule []interface{} + for _, _spenderItem := range _spender { + _spenderRule = append(_spenderRule, _spenderItem) + } + + logs, sub, err := _Token.contract.WatchLogs(opts, "Approval", _ownerRule, _spenderRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TokenApproval) + if err := _Token.contract.UnpackLog(event, "Approval", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// TokenDestroyIterator is returned from FilterDestroy and is used to iterate over the raw logs and unpacked data for Destroy events raised by the Token contract. +type TokenDestroyIterator struct { + Event *TokenDestroy // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TokenDestroyIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TokenDestroy) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TokenDestroy) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TokenDestroyIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TokenDestroyIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TokenDestroy represents a Destroy event raised by the Token contract. +type TokenDestroy struct { + From common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDestroy is a free log retrieval operation binding the contract event 0x81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee. +// +// Solidity: e Destroy(_from indexed address, _value uint256) +func (_Token *TokenFilterer) FilterDestroy(opts *bind.FilterOpts, _from []common.Address) (*TokenDestroyIterator, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + + logs, sub, err := _Token.contract.FilterLogs(opts, "Destroy", _fromRule) + if err != nil { + return nil, err + } + return &TokenDestroyIterator{contract: _Token.contract, event: "Destroy", logs: logs, sub: sub}, nil +} + +// WatchDestroy is a free log subscription operation binding the contract event 0x81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee. +// +// Solidity: e Destroy(_from indexed address, _value uint256) +func (_Token *TokenFilterer) WatchDestroy(opts *bind.WatchOpts, sink chan<- *TokenDestroy, _from []common.Address) (event.Subscription, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + + logs, sub, err := _Token.contract.WatchLogs(opts, "Destroy", _fromRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TokenDestroy) + if err := _Token.contract.UnpackLog(event, "Destroy", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// TokenMintIterator is returned from FilterMint and is used to iterate over the raw logs and unpacked data for Mint events raised by the Token contract. +type TokenMintIterator struct { + Event *TokenMint // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TokenMintIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TokenMint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TokenMint) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TokenMintIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TokenMintIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TokenMint represents a Mint event raised by the Token contract. +type TokenMint struct { + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMint is a free log retrieval operation binding the contract event 0x0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885. +// +// Solidity: e Mint(_to indexed address, _value uint256) +func (_Token *TokenFilterer) FilterMint(opts *bind.FilterOpts, _to []common.Address) (*TokenMintIterator, error) { + + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _Token.contract.FilterLogs(opts, "Mint", _toRule) + if err != nil { + return nil, err + } + return &TokenMintIterator{contract: _Token.contract, event: "Mint", logs: logs, sub: sub}, nil +} + +// WatchMint is a free log subscription operation binding the contract event 0x0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885. +// +// Solidity: e Mint(_to indexed address, _value uint256) +func (_Token *TokenFilterer) WatchMint(opts *bind.WatchOpts, sink chan<- *TokenMint, _to []common.Address) (event.Subscription, error) { + + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _Token.contract.WatchLogs(opts, "Mint", _toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TokenMint) + if err := _Token.contract.UnpackLog(event, "Mint", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// TokenOwnershipChangedIterator is returned from FilterOwnershipChanged and is used to iterate over the raw logs and unpacked data for OwnershipChanged events raised by the Token contract. +type TokenOwnershipChangedIterator struct { + Event *TokenOwnershipChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TokenOwnershipChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TokenOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TokenOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TokenOwnershipChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TokenOwnershipChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TokenOwnershipChanged represents a OwnershipChanged event raised by the Token contract. +type TokenOwnershipChanged struct { + PrevOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipChanged is a free log retrieval operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Token *TokenFilterer) FilterOwnershipChanged(opts *bind.FilterOpts, prevOwner []common.Address, newOwner []common.Address) (*TokenOwnershipChangedIterator, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Token.contract.FilterLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &TokenOwnershipChangedIterator{contract: _Token.contract, event: "OwnershipChanged", logs: logs, sub: sub}, nil +} + +// WatchOwnershipChanged is a free log subscription operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Token *TokenFilterer) WatchOwnershipChanged(opts *bind.WatchOpts, sink chan<- *TokenOwnershipChanged, prevOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Token.contract.WatchLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TokenOwnershipChanged) + if err := _Token.contract.UnpackLog(event, "OwnershipChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// TokenTransferIterator is returned from FilterTransfer and is used to iterate over the raw logs and unpacked data for Transfer events raised by the Token contract. +type TokenTransferIterator struct { + Event *TokenTransfer // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TokenTransferIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TokenTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TokenTransfer) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TokenTransferIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TokenTransferIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TokenTransfer represents a Transfer event raised by the Token contract. +type TokenTransfer struct { + From common.Address + To common.Address + Value *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterTransfer is a free log retrieval operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: e Transfer(_from indexed address, _to indexed address, _value uint256) +func (_Token *TokenFilterer) FilterTransfer(opts *bind.FilterOpts, _from []common.Address, _to []common.Address) (*TokenTransferIterator, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _Token.contract.FilterLogs(opts, "Transfer", _fromRule, _toRule) + if err != nil { + return nil, err + } + return &TokenTransferIterator{contract: _Token.contract, event: "Transfer", logs: logs, sub: sub}, nil +} + +// WatchTransfer is a free log subscription operation binding the contract event 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef. +// +// Solidity: e Transfer(_from indexed address, _to indexed address, _value uint256) +func (_Token *TokenFilterer) WatchTransfer(opts *bind.WatchOpts, sink chan<- *TokenTransfer, _from []common.Address, _to []common.Address) (event.Subscription, error) { + + var _fromRule []interface{} + for _, _fromItem := range _from { + _fromRule = append(_fromRule, _fromItem) + } + var _toRule []interface{} + for _, _toItem := range _to { + _toRule = append(_toRule, _toItem) + } + + logs, sub, err := _Token.contract.WatchLogs(opts, "Transfer", _fromRule, _toRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TokenTransfer) + if err := _Token.contract.UnpackLog(event, "Transfer", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// TokenLockerABI is the input ABI used to generate the binding from. +const TokenLockerABI = "[{\"constant\":false,\"inputs\":[],\"name\":\"lockTokenLocker\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"quarterlyWithdrawable\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"beneficiary\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"auctions\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastWithdrawTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"locked\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"deposited\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_auctions\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"}]" + +// TokenLockerBin is the compiled bytecode used for deploying new contracts. +const TokenLockerBin = `0x60806040526002805460a060020a60ff021916905534801561002057600080fd5b50604051604080610b0a83398101604052805160209091015160008054600160a060020a03191633179055600160a060020a038216151561006057600080fd5b600160a060020a038116151561007557600080fd5b60018054600160a060020a03938416600160a060020a03199182161790915560028054929093169116179055610a5a806100b06000396000f3006080604052600436106100955763ffffffff60e060020a60003504166327fe75ed811461009a5780632af4c31e146100b157806334d8521b146100e65780633ccfd60b1461010d57806347e7ef241461012257806385aa6103146101465780638da5cb5b14610177578063ab2315111461018c578063cf309012146101a1578063eef49ee3146101b6578063fc0c546a146101cb575b600080fd5b3480156100a657600080fd5b506100af6101e0565b005b3480156100bd57600080fd5b506100d2600160a060020a03600435166103cb565b604080519115158252519081900360200190f35b3480156100f257600080fd5b506100fb61047e565b60408051918252519081900360200190f35b34801561011957600080fd5b506100af610484565b34801561012e57600080fd5b506100af600160a060020a0360043516602435610814565b34801561015257600080fd5b5061015b610966565b60408051600160a060020a039092168252519081900360200190f35b34801561018357600080fd5b5061015b610975565b34801561019857600080fd5b506100fb610984565b3480156101ad57600080fd5b506100d261098a565b3480156101c257600080fd5b506100fb6109ab565b3480156101d757600080fd5b5061015b6109b1565b600154600160a060020a031633146101f757600080fd5b600160009054906101000a9004600160a060020a0316600160a060020a031662fca46f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561024957600080fd5b505af115801561025d573d6000803e3d6000fd5b505050506040513d602081101561027357600080fd5b5051151561028057600080fd5b600160009054906101000a9004600160a060020a0316600160a060020a03166342c6498a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156102d357600080fd5b505af11580156102e7573d6000803e3d6000fd5b505050506040513d60208110156102fd57600080fd5b5051600154604080517efca46f0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169162fca46f916004808201926020929091908290030181600087803b15801561035d57600080fd5b505af1158015610371573d6000803e3d6000fd5b505050506040513d602081101561038757600080fd5b5051101561039457600080fd5b6002805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b60008054600160a060020a031633146103e357600080fd5b600160a060020a03821615156103f857600080fd5b600054600160a060020a038381169116141561041357600080fd5b60008054604051600160a060020a03808616939216917f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b91a35060008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60055481565b60008054819081908190600160a060020a031633146104a257600080fd5b60025474010000000000000000000000000000000000000000900460ff1615156104cb57600080fd5b6003546000106104da57600080fd5b60009350600160009054906101000a9004600160a060020a0316600160a060020a031662fca46f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561053057600080fd5b505af1158015610544573d6000803e3d6000fd5b505050506040513d602081101561055a57600080fd5b50516004549093501580156105ea5750600160009054906101000a9004600160a060020a0316600160a060020a0316631d38bebd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156105bd57600080fd5b505af11580156105d1573d6000803e3d6000fd5b505050506040513d60208110156105e757600080fd5b50515b1561064b57610626610619606461060d60196003546109c090919063ffffffff16565b9063ffffffff6109f616565b859063ffffffff610a0d16565b9350610642600c61060d86600354610a1c90919063ffffffff16565b60055560048390555b600454151561065957600080fd5b60045461066f90627861f863ffffffff610a0d16565b421061071f5760045461068990429063ffffffff610a1c16565b915061069e82627861f863ffffffff6109f616565b9050600081116106ad57600080fd5b6005546106c490610619908363ffffffff6109c016565b93506106ea6106dd627861f8600c63ffffffff6109c016565b849063ffffffff610a0d16565b42106106f65760035493505b61071b61070c82627861f863ffffffff6109c016565b6004549063ffffffff610a0d16565b6004555b600084111561080e5760035461073b908563ffffffff610a1c16565b600355600254604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b1580156107ab57600080fd5b505af11580156107bf573d6000803e3d6000fd5b505050506040513d60208110156107d557600080fd5b505060408051858152905133917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5919081900360200190a25b50505050565b600154600090600160a060020a0316331461082e57600080fd5b60025474010000000000000000000000000000000000000000900460ff161561085657600080fd5b600254604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b1580156108bc57600080fd5b505af11580156108d0573d6000803e3d6000fd5b505050506040513d60208110156108e657600080fd5b5051600354909150829061090190839063ffffffff610a1c16565b101561090c57600080fd5b60035461091f908363ffffffff610a0d16565b600355604080518381529051600160a060020a038516917f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4919081900360200190a2505050565b600154600160a060020a031681565b600054600160a060020a031681565b60045481565b60025474010000000000000000000000000000000000000000900460ff1681565b60035481565b600254600160a060020a031681565b6000808315156109d357600091506109ef565b508282028284828115156109e357fe5b04146109eb57fe5b8091505b5092915050565b6000808284811515610a0457fe5b04949350505050565b6000828201838110156109eb57fe5b600082821115610a2857fe5b509003905600a165627a7a723058205393d5e6ae09e9df56ef1d01b81ca7f7fc804f833d23519f018c4aaba1fff65a0029` + +// DeployTokenLocker deploys a new Ethereum contract, binding an instance of TokenLocker to it. +func DeployTokenLocker(auth *bind.TransactOpts, backend bind.ContractBackend, _auctions common.Address, _token common.Address) (common.Address, *types.Transaction, *TokenLocker, error) { + parsed, err := abi.JSON(strings.NewReader(TokenLockerABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(TokenLockerBin), backend, _auctions, _token) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &TokenLocker{TokenLockerCaller: TokenLockerCaller{contract: contract}, TokenLockerTransactor: TokenLockerTransactor{contract: contract}, TokenLockerFilterer: TokenLockerFilterer{contract: contract}}, nil +} + +// TokenLocker is an auto generated Go binding around an Ethereum contract. +type TokenLocker struct { + TokenLockerCaller // Read-only binding to the contract + TokenLockerTransactor // Write-only binding to the contract + TokenLockerFilterer // Log filterer for contract events +} + +// TokenLockerCaller is an auto generated read-only Go binding around an Ethereum contract. +type TokenLockerCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TokenLockerTransactor is an auto generated write-only Go binding around an Ethereum contract. +type TokenLockerTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TokenLockerFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type TokenLockerFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TokenLockerSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type TokenLockerSession struct { + Contract *TokenLocker // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TokenLockerCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type TokenLockerCallerSession struct { + Contract *TokenLockerCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// TokenLockerTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type TokenLockerTransactorSession struct { + Contract *TokenLockerTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TokenLockerRaw is an auto generated low-level Go binding around an Ethereum contract. +type TokenLockerRaw struct { + Contract *TokenLocker // Generic contract binding to access the raw methods on +} + +// TokenLockerCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type TokenLockerCallerRaw struct { + Contract *TokenLockerCaller // Generic read-only contract binding to access the raw methods on +} + +// TokenLockerTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type TokenLockerTransactorRaw struct { + Contract *TokenLockerTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewTokenLocker creates a new instance of TokenLocker, bound to a specific deployed contract. +func NewTokenLocker(address common.Address, backend bind.ContractBackend) (*TokenLocker, error) { + contract, err := bindTokenLocker(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &TokenLocker{TokenLockerCaller: TokenLockerCaller{contract: contract}, TokenLockerTransactor: TokenLockerTransactor{contract: contract}, TokenLockerFilterer: TokenLockerFilterer{contract: contract}}, nil +} + +// NewTokenLockerCaller creates a new read-only instance of TokenLocker, bound to a specific deployed contract. +func NewTokenLockerCaller(address common.Address, caller bind.ContractCaller) (*TokenLockerCaller, error) { + contract, err := bindTokenLocker(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &TokenLockerCaller{contract: contract}, nil +} + +// NewTokenLockerTransactor creates a new write-only instance of TokenLocker, bound to a specific deployed contract. +func NewTokenLockerTransactor(address common.Address, transactor bind.ContractTransactor) (*TokenLockerTransactor, error) { + contract, err := bindTokenLocker(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &TokenLockerTransactor{contract: contract}, nil +} + +// NewTokenLockerFilterer creates a new log filterer instance of TokenLocker, bound to a specific deployed contract. +func NewTokenLockerFilterer(address common.Address, filterer bind.ContractFilterer) (*TokenLockerFilterer, error) { + contract, err := bindTokenLocker(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &TokenLockerFilterer{contract: contract}, nil +} + +// bindTokenLocker binds a generic wrapper to an already deployed contract. +func bindTokenLocker(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(TokenLockerABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TokenLocker *TokenLockerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _TokenLocker.Contract.TokenLockerCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TokenLocker *TokenLockerRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TokenLocker.Contract.TokenLockerTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TokenLocker *TokenLockerRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TokenLocker.Contract.TokenLockerTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TokenLocker *TokenLockerCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _TokenLocker.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TokenLocker *TokenLockerTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TokenLocker.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TokenLocker *TokenLockerTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TokenLocker.Contract.contract.Transact(opts, method, params...) +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_TokenLocker *TokenLockerCaller) Auctions(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _TokenLocker.contract.Call(opts, out, "auctions") + return *ret0, err +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_TokenLocker *TokenLockerSession) Auctions() (common.Address, error) { + return _TokenLocker.Contract.Auctions(&_TokenLocker.CallOpts) +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_TokenLocker *TokenLockerCallerSession) Auctions() (common.Address, error) { + return _TokenLocker.Contract.Auctions(&_TokenLocker.CallOpts) +} + +// Deposited is a free data retrieval call binding the contract method 0xeef49ee3. +// +// Solidity: function deposited() constant returns(uint256) +func (_TokenLocker *TokenLockerCaller) Deposited(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _TokenLocker.contract.Call(opts, out, "deposited") + return *ret0, err +} + +// Deposited is a free data retrieval call binding the contract method 0xeef49ee3. +// +// Solidity: function deposited() constant returns(uint256) +func (_TokenLocker *TokenLockerSession) Deposited() (*big.Int, error) { + return _TokenLocker.Contract.Deposited(&_TokenLocker.CallOpts) +} + +// Deposited is a free data retrieval call binding the contract method 0xeef49ee3. +// +// Solidity: function deposited() constant returns(uint256) +func (_TokenLocker *TokenLockerCallerSession) Deposited() (*big.Int, error) { + return _TokenLocker.Contract.Deposited(&_TokenLocker.CallOpts) +} + +// LastWithdrawTime is a free data retrieval call binding the contract method 0xab231511. +// +// Solidity: function lastWithdrawTime() constant returns(uint256) +func (_TokenLocker *TokenLockerCaller) LastWithdrawTime(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _TokenLocker.contract.Call(opts, out, "lastWithdrawTime") + return *ret0, err +} + +// LastWithdrawTime is a free data retrieval call binding the contract method 0xab231511. +// +// Solidity: function lastWithdrawTime() constant returns(uint256) +func (_TokenLocker *TokenLockerSession) LastWithdrawTime() (*big.Int, error) { + return _TokenLocker.Contract.LastWithdrawTime(&_TokenLocker.CallOpts) +} + +// LastWithdrawTime is a free data retrieval call binding the contract method 0xab231511. +// +// Solidity: function lastWithdrawTime() constant returns(uint256) +func (_TokenLocker *TokenLockerCallerSession) LastWithdrawTime() (*big.Int, error) { + return _TokenLocker.Contract.LastWithdrawTime(&_TokenLocker.CallOpts) +} + +// Locked is a free data retrieval call binding the contract method 0xcf309012. +// +// Solidity: function locked() constant returns(bool) +func (_TokenLocker *TokenLockerCaller) Locked(opts *bind.CallOpts) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _TokenLocker.contract.Call(opts, out, "locked") + return *ret0, err +} + +// Locked is a free data retrieval call binding the contract method 0xcf309012. +// +// Solidity: function locked() constant returns(bool) +func (_TokenLocker *TokenLockerSession) Locked() (bool, error) { + return _TokenLocker.Contract.Locked(&_TokenLocker.CallOpts) +} + +// Locked is a free data retrieval call binding the contract method 0xcf309012. +// +// Solidity: function locked() constant returns(bool) +func (_TokenLocker *TokenLockerCallerSession) Locked() (bool, error) { + return _TokenLocker.Contract.Locked(&_TokenLocker.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_TokenLocker *TokenLockerCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _TokenLocker.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_TokenLocker *TokenLockerSession) Owner() (common.Address, error) { + return _TokenLocker.Contract.Owner(&_TokenLocker.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_TokenLocker *TokenLockerCallerSession) Owner() (common.Address, error) { + return _TokenLocker.Contract.Owner(&_TokenLocker.CallOpts) +} + +// QuarterlyWithdrawable is a free data retrieval call binding the contract method 0x34d8521b. +// +// Solidity: function quarterlyWithdrawable() constant returns(uint256) +func (_TokenLocker *TokenLockerCaller) QuarterlyWithdrawable(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _TokenLocker.contract.Call(opts, out, "quarterlyWithdrawable") + return *ret0, err +} + +// QuarterlyWithdrawable is a free data retrieval call binding the contract method 0x34d8521b. +// +// Solidity: function quarterlyWithdrawable() constant returns(uint256) +func (_TokenLocker *TokenLockerSession) QuarterlyWithdrawable() (*big.Int, error) { + return _TokenLocker.Contract.QuarterlyWithdrawable(&_TokenLocker.CallOpts) +} + +// QuarterlyWithdrawable is a free data retrieval call binding the contract method 0x34d8521b. +// +// Solidity: function quarterlyWithdrawable() constant returns(uint256) +func (_TokenLocker *TokenLockerCallerSession) QuarterlyWithdrawable() (*big.Int, error) { + return _TokenLocker.Contract.QuarterlyWithdrawable(&_TokenLocker.CallOpts) +} + +// Token is a free data retrieval call binding the contract method 0xfc0c546a. +// +// Solidity: function token() constant returns(address) +func (_TokenLocker *TokenLockerCaller) Token(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _TokenLocker.contract.Call(opts, out, "token") + return *ret0, err +} + +// Token is a free data retrieval call binding the contract method 0xfc0c546a. +// +// Solidity: function token() constant returns(address) +func (_TokenLocker *TokenLockerSession) Token() (common.Address, error) { + return _TokenLocker.Contract.Token(&_TokenLocker.CallOpts) +} + +// Token is a free data retrieval call binding the contract method 0xfc0c546a. +// +// Solidity: function token() constant returns(address) +func (_TokenLocker *TokenLockerCallerSession) Token() (common.Address, error) { + return _TokenLocker.Contract.Token(&_TokenLocker.CallOpts) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_TokenLocker *TokenLockerTransactor) ChangeOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) { + return _TokenLocker.contract.Transact(opts, "changeOwnership", _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_TokenLocker *TokenLockerSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _TokenLocker.Contract.ChangeOwnership(&_TokenLocker.TransactOpts, _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_TokenLocker *TokenLockerTransactorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _TokenLocker.Contract.ChangeOwnership(&_TokenLocker.TransactOpts, _newOwner) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(beneficiary address, amount uint256) returns() +func (_TokenLocker *TokenLockerTransactor) Deposit(opts *bind.TransactOpts, beneficiary common.Address, amount *big.Int) (*types.Transaction, error) { + return _TokenLocker.contract.Transact(opts, "deposit", beneficiary, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(beneficiary address, amount uint256) returns() +func (_TokenLocker *TokenLockerSession) Deposit(beneficiary common.Address, amount *big.Int) (*types.Transaction, error) { + return _TokenLocker.Contract.Deposit(&_TokenLocker.TransactOpts, beneficiary, amount) +} + +// Deposit is a paid mutator transaction binding the contract method 0x47e7ef24. +// +// Solidity: function deposit(beneficiary address, amount uint256) returns() +func (_TokenLocker *TokenLockerTransactorSession) Deposit(beneficiary common.Address, amount *big.Int) (*types.Transaction, error) { + return _TokenLocker.Contract.Deposit(&_TokenLocker.TransactOpts, beneficiary, amount) +} + +// LockTokenLocker is a paid mutator transaction binding the contract method 0x27fe75ed. +// +// Solidity: function lockTokenLocker() returns() +func (_TokenLocker *TokenLockerTransactor) LockTokenLocker(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TokenLocker.contract.Transact(opts, "lockTokenLocker") +} + +// LockTokenLocker is a paid mutator transaction binding the contract method 0x27fe75ed. +// +// Solidity: function lockTokenLocker() returns() +func (_TokenLocker *TokenLockerSession) LockTokenLocker() (*types.Transaction, error) { + return _TokenLocker.Contract.LockTokenLocker(&_TokenLocker.TransactOpts) +} + +// LockTokenLocker is a paid mutator transaction binding the contract method 0x27fe75ed. +// +// Solidity: function lockTokenLocker() returns() +func (_TokenLocker *TokenLockerTransactorSession) LockTokenLocker() (*types.Transaction, error) { + return _TokenLocker.Contract.LockTokenLocker(&_TokenLocker.TransactOpts) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x3ccfd60b. +// +// Solidity: function withdraw() returns() +func (_TokenLocker *TokenLockerTransactor) Withdraw(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TokenLocker.contract.Transact(opts, "withdraw") +} + +// Withdraw is a paid mutator transaction binding the contract method 0x3ccfd60b. +// +// Solidity: function withdraw() returns() +func (_TokenLocker *TokenLockerSession) Withdraw() (*types.Transaction, error) { + return _TokenLocker.Contract.Withdraw(&_TokenLocker.TransactOpts) +} + +// Withdraw is a paid mutator transaction binding the contract method 0x3ccfd60b. +// +// Solidity: function withdraw() returns() +func (_TokenLocker *TokenLockerTransactorSession) Withdraw() (*types.Transaction, error) { + return _TokenLocker.Contract.Withdraw(&_TokenLocker.TransactOpts) +} + +// TokenLockerDepositedIterator is returned from FilterDeposited and is used to iterate over the raw logs and unpacked data for Deposited events raised by the TokenLocker contract. +type TokenLockerDepositedIterator struct { + Event *TokenLockerDeposited // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TokenLockerDepositedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TokenLockerDeposited) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TokenLockerDeposited) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TokenLockerDepositedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TokenLockerDepositedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TokenLockerDeposited represents a Deposited event raised by the TokenLocker contract. +type TokenLockerDeposited struct { + Who common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterDeposited is a free log retrieval operation binding the contract event 0x2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4. +// +// Solidity: e Deposited(who indexed address, amount uint256) +func (_TokenLocker *TokenLockerFilterer) FilterDeposited(opts *bind.FilterOpts, who []common.Address) (*TokenLockerDepositedIterator, error) { + + var whoRule []interface{} + for _, whoItem := range who { + whoRule = append(whoRule, whoItem) + } + + logs, sub, err := _TokenLocker.contract.FilterLogs(opts, "Deposited", whoRule) + if err != nil { + return nil, err + } + return &TokenLockerDepositedIterator{contract: _TokenLocker.contract, event: "Deposited", logs: logs, sub: sub}, nil +} + +// WatchDeposited is a free log subscription operation binding the contract event 0x2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4. +// +// Solidity: e Deposited(who indexed address, amount uint256) +func (_TokenLocker *TokenLockerFilterer) WatchDeposited(opts *bind.WatchOpts, sink chan<- *TokenLockerDeposited, who []common.Address) (event.Subscription, error) { + + var whoRule []interface{} + for _, whoItem := range who { + whoRule = append(whoRule, whoItem) + } + + logs, sub, err := _TokenLocker.contract.WatchLogs(opts, "Deposited", whoRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TokenLockerDeposited) + if err := _TokenLocker.contract.UnpackLog(event, "Deposited", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// TokenLockerOwnershipChangedIterator is returned from FilterOwnershipChanged and is used to iterate over the raw logs and unpacked data for OwnershipChanged events raised by the TokenLocker contract. +type TokenLockerOwnershipChangedIterator struct { + Event *TokenLockerOwnershipChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TokenLockerOwnershipChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TokenLockerOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TokenLockerOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TokenLockerOwnershipChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TokenLockerOwnershipChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TokenLockerOwnershipChanged represents a OwnershipChanged event raised by the TokenLocker contract. +type TokenLockerOwnershipChanged struct { + PrevOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipChanged is a free log retrieval operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_TokenLocker *TokenLockerFilterer) FilterOwnershipChanged(opts *bind.FilterOpts, prevOwner []common.Address, newOwner []common.Address) (*TokenLockerOwnershipChangedIterator, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _TokenLocker.contract.FilterLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &TokenLockerOwnershipChangedIterator{contract: _TokenLocker.contract, event: "OwnershipChanged", logs: logs, sub: sub}, nil +} + +// WatchOwnershipChanged is a free log subscription operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_TokenLocker *TokenLockerFilterer) WatchOwnershipChanged(opts *bind.WatchOpts, sink chan<- *TokenLockerOwnershipChanged, prevOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _TokenLocker.contract.WatchLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TokenLockerOwnershipChanged) + if err := _TokenLocker.contract.UnpackLog(event, "OwnershipChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// TokenLockerWithdrawnIterator is returned from FilterWithdrawn and is used to iterate over the raw logs and unpacked data for Withdrawn events raised by the TokenLocker contract. +type TokenLockerWithdrawnIterator struct { + Event *TokenLockerWithdrawn // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TokenLockerWithdrawnIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TokenLockerWithdrawn) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TokenLockerWithdrawn) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TokenLockerWithdrawnIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TokenLockerWithdrawnIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TokenLockerWithdrawn represents a Withdrawn event raised by the TokenLocker contract. +type TokenLockerWithdrawn struct { + Who common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterWithdrawn is a free log retrieval operation binding the contract event 0x7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5. +// +// Solidity: e Withdrawn(who indexed address, amount uint256) +func (_TokenLocker *TokenLockerFilterer) FilterWithdrawn(opts *bind.FilterOpts, who []common.Address) (*TokenLockerWithdrawnIterator, error) { + + var whoRule []interface{} + for _, whoItem := range who { + whoRule = append(whoRule, whoItem) + } + + logs, sub, err := _TokenLocker.contract.FilterLogs(opts, "Withdrawn", whoRule) + if err != nil { + return nil, err + } + return &TokenLockerWithdrawnIterator{contract: _TokenLocker.contract, event: "Withdrawn", logs: logs, sub: sub}, nil +} + +// WatchWithdrawn is a free log subscription operation binding the contract event 0x7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5. +// +// Solidity: e Withdrawn(who indexed address, amount uint256) +func (_TokenLocker *TokenLockerFilterer) WatchWithdrawn(opts *bind.WatchOpts, sink chan<- *TokenLockerWithdrawn, who []common.Address) (event.Subscription, error) { + + var whoRule []interface{} + for _, whoItem := range who { + whoRule = append(whoRule, whoItem) + } + + logs, sub, err := _TokenLocker.contract.WatchLogs(opts, "Withdrawn", whoRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TokenLockerWithdrawn) + if err := _TokenLocker.contract.UnpackLog(event, "Withdrawn", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// TokenPorterABI is the input ABI used to generate the binding from. +const TokenPorterABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"importSequence\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_validator\",\"type\":\"address\"}],\"name\":\"setValidator\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"validator\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_chainLedger\",\"type\":\"address\"}],\"name\":\"setChainLedger\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimables\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_chainName\",\"type\":\"bytes8\"}],\"name\":\"removeDestinationChain\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"burnSequence\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_originChain\",\"type\":\"bytes8\"},{\"name\":\"_destinationChain\",\"type\":\"bytes8\"},{\"name\":\"_addresses\",\"type\":\"address[]\"},{\"name\":\"_extraData\",\"type\":\"bytes\"},{\"name\":\"_burnHashes\",\"type\":\"bytes32[]\"},{\"name\":\"_supplyOnAllChains\",\"type\":\"uint256[]\"},{\"name\":\"_importData\",\"type\":\"uint256[]\"},{\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"importMET\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"exportedBurns\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"auctions\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_chainName\",\"type\":\"bytes8\"},{\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"addDestinationChain\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddr\",\"type\":\"address\"},{\"name\":\"_auctionsAddr\",\"type\":\"address\"}],\"name\":\"initTokenPorter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"supplyOnAllChains\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes8\"}],\"name\":\"destinationChains\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"tokenOwner\",\"type\":\"address\"},{\"name\":\"_destChain\",\"type\":\"bytes8\"},{\"name\":\"_destMetronomeAddr\",\"type\":\"address\"},{\"name\":\"_destRecipAddr\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_fee\",\"type\":\"uint256\"},{\"name\":\"_extraData\",\"type\":\"bytes\"}],\"name\":\"export\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"chainLedger\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipients\",\"type\":\"address[]\"}],\"name\":\"claimReceivables\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"destinationMetronomeAddr\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"destinationRecipientAddr\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ExportOnChainClaimedReceiptLog\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"destinationChain\",\"type\":\"bytes8\"},{\"indexed\":false,\"name\":\"destinationMetronomeAddr\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"destinationRecipientAddr\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amountToBurn\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"currentTick\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"burnSequence\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"currentBurnHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"prevBurnHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"dailyMintable\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"supplyOnAllChains\",\"type\":\"uint256[]\"},{\"indexed\":false,\"name\":\"genesisTime\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"blockTimestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"dailyAuctionStartTime\",\"type\":\"uint256\"}],\"name\":\"ExportReceiptLog\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"destinationRecipientAddr\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amountImported\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"extraData\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"currentTick\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"importSequence\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"currentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"prevHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"dailyMintable\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"blockTimestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"ImportReceiptLog\",\"type\":\"event\"}]" + +// TokenPorterBin is the compiled bytecode used for deploying new contracts. +const TokenPorterBin = `0x6001600681815560079190915560808181526101606040529060a060c080388339505081516200003792600992506020019062000050565b5060008054600160a060020a03191633179055620000c0565b8280548282559060005260206000209081019282156200008e579160200282015b828111156200008e57825182559160200191906001019062000071565b506200009c929150620000a0565b5090565b620000bd91905b808211156200009c5760008155600101620000a7565b90565b61215f80620000d06000396000f30060806040526004361061010e5763ffffffff60e060020a6000350416630245c5c881146101135780631327d3d81461013a5780632af4c31e1461016f5780633a5381b5146101905780634499af81146101c15780634f530565146101e2578063620160831461020957806367602c591461022b5780636ffbff9c1461024057806379ba5097146103d35780637a6e3854146103e857806385aa6103146104005780638da5cb5b14610415578063b27e72441461042a578063c554a60014610458578063d4ee1d9014610481578063d8b194a714610496578063da7220d0146104ae578063f29b2040146104d0578063f5727f5c1461055c578063fb8b019714610571578063fc0c546a146105c6575b600080fd5b34801561011f57600080fd5b506101286105db565b60408051918252519081900360200190f35b34801561014657600080fd5b5061015b600160a060020a03600435166105e1565b604080519115158252519081900360200190f35b34801561017b57600080fd5b5061015b600160a060020a0360043516610633565b34801561019c57600080fd5b506101a5610689565b60408051600160a060020a039092168252519081900360200190f35b3480156101cd57600080fd5b5061015b600160a060020a0360043516610698565b3480156101ee57600080fd5b50610128600160a060020a03600435811690602435166106ea565b34801561021557600080fd5b5061015b600160c060020a031960043516610707565b34801561023757600080fd5b5061012861078f565b34801561024c57600080fd5b50604080516020600460443581810135838102808601850190965280855261015b958335600160c060020a0319908116966024803590921696369695606495929493019282918501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506107959650505050505050565b3480156103df57600080fd5b5061015b611294565b3480156103f457600080fd5b50610128600435611312565b34801561040c57600080fd5b506101a5611331565b34801561042157600080fd5b506101a5611340565b34801561043657600080fd5b5061015b600160c060020a031960043516600160a060020a036024351661134f565b34801561046457600080fd5b5061047f600160a060020a03600435811690602435166113d0565b005b34801561048d57600080fd5b506101a5611442565b3480156104a257600080fd5b50610128600435611451565b3480156104ba57600080fd5b506101a5600160c060020a03196004351661145f565b3480156104dc57600080fd5b50604080516020600460c43581810135601f810184900484028501840190955284845261015b948235600160a060020a039081169560248035600160c060020a03191696604435841696606435909416956084359560a435953695909460e4949193019190819084018382808284375094975061147a9650505050505050565b34801561056857600080fd5b506101a561200c565b34801561057d57600080fd5b50604080516020600480358082013583810280860185019096528085526101289536959394602494938501929182918501908490808284375094975061201b9650505050505050565b3480156105d257600080fd5b506101a561210e565b60075481565b60008054600160a060020a031633146105f957600080fd5b600160a060020a038216151561060e57600080fd5b5060048054600160a060020a038316600160a060020a03199091161790556001919050565b60008054600160a060020a0316331461064b57600080fd5b600054600160a060020a038381169116141561066657600080fd5b5060018054600160a060020a038316600160a060020a0319909116178155919050565b600454600160a060020a031681565b60008054600160a060020a031633146106b057600080fd5b600160a060020a03821615156106c557600080fd5b5060058054600160a060020a038316600160a060020a03199091161790556001919050565b600b60209081526000928352604080842090915290825290205481565b60008054600160a060020a0316331461071f57600080fd5b600160c060020a03198216151561073557600080fd5b600160c060020a031982166000908152600a6020526040902054600160a060020a0316151561076357600080fd5b50600160c060020a0319166000908152600a602052604090208054600160a060020a0319169055600190565b60065481565b6003546000908190600160a060020a031633146107b157600080fd5b83516008146107bf57600080fd5b87516002146107cd57600080fd5b85516002146107db57600080fd5b600460009054906101000a9004600160a060020a0316600160a060020a03166386936ed58b8b8b8b8b8b8b8b6040518963ffffffff1660e060020a028152600401808977ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff191681526020018877ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200180602001806020018060200180602001806020018060200187810387528d818151815260200191508051906020019060200280838360005b838110156108e55781810151838201526020016108cd565b5050505090500187810386528c818151815260200191508051906020019080838360005b83811015610921578181015183820152602001610909565b50505050905090810190601f16801561094e5780820380516001836020036101000a031916815260200191505b5087810385528b5181528b51602091820191808e01910280838360005b8381101561098357818101518382015260200161096b565b5050505090500187810384528a818151815260200191508051906020019060200280838360005b838110156109c25781810151838201526020016109aa565b50505050905001878103835289818151815260200191508051906020019060200280838360005b83811015610a015781810151838201526020016109e9565b50505050905001878103825288818151815260200191508051906020019080838360005b83811015610a3d578181015183820152602001610a25565b50505050905090810190601f168015610a6a5780820380516001836020036101000a031916815260200191505b509e505050505050505050505050505050602060405180830381600087803b158015610a9557600080fd5b505af1158015610aa9573d6000803e3d6000fd5b505050506040513d6020811015610abf57600080fd5b50511515610acc57600080fd5b6004548651600160a060020a039091169063f5affc609088906001908110610af057fe5b906020019060200201516040518263ffffffff1660e060020a028152600401808260001916600019168152602001915050600060405180830381600087803b158015610b3b57600080fd5b505af1158015610b4f573d6000803e3d6000fd5b50505050600260009054906101000a9004600160a060020a0316600160a060020a031663c763e5a16040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ba657600080fd5b505af1158015610bba573d6000803e3d6000fd5b505050506040513d6020811015610bd057600080fd5b5051600160c060020a03198a8116911614610bea57600080fd5b610c2b846002815181101515610bfc57fe5b90602001906020020151856001815181101515610c1557fe5b602090810290910101519063ffffffff61211d16565b9050600260009054906101000a9004600160a060020a0316600160a060020a03166322ce61b26040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610c8057600080fd5b505af1158015610c94573d6000803e3d6000fd5b505050506040513d6020811015610caa57600080fd5b5051600354604080517f18160ddd0000000000000000000000000000000000000000000000000000000081529051610d4692600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b158015610d0d57600080fd5b505af1158015610d21573d6000803e3d6000fd5b505050506040513d6020811015610d3757600080fd5b5051839063ffffffff61211d16565b1115610d5157600080fd5b6003548851600160a060020a039091169089906000908110610d6f57fe5b60209081029091010151600160a060020a031614610d8c57600080fd5b836001815181101515610d9b57fe5b9060200190602002015160001415610db65760009150611287565b6007546001148015610e445750600360009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e1657600080fd5b505af1158015610e2a573d6000803e3d6000fd5b505050506040513d6020811015610e4057600080fd5b5051155b15610eb557600260009054906101000a9004600160a060020a0316600160a060020a031663d7508a556040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610e9c57600080fd5b505af1158015610eb0573d6000803e3d6000fd5b505050505b6003548851600160a060020a03909116906340c10f19908a906001908110610ed957fe5b90602001906020020151866001815181101515610ef257fe5b906020019060200201516040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f4e57600080fd5b505af1158015610f62573d6000803e3d6000fd5b505050506040513d6020811015610f7857600080fd5b5050855186906001908110610f8957fe5b6020908102909101015160075489518a906001908110610fa557fe5b90602001906020020151600160a060020a03167f31ada03ea6574804e622b02e30804a1f976859a01faa63b6a0175103969d3137876001815181101515610fe857fe5b9060200190602002015188600281518110151561100157fe5b906020019060200201518c600260009054906101000a9004600160a060020a0316600160a060020a031663065e53606040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561105f57600080fd5b505af1158015611073573d6000803e3d6000fd5b505050506040513d602081101561108957600080fd5b50518d518e90600090811061109a57fe5b90602001906020020151600260009054906101000a9004600160a060020a0316600160a060020a031663843ad7b56040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b505050506040513d602081101561112157600080fd5b5051604080518781526020818101889052606082018690526080820185905260a082018490524260c083018190523360e084018190526101009484018581528951958501959095528851919490939290916101208401918a019080838360005b83811015611199578181015183820152602001611181565b50505050905090810190601f1680156111c65780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a46007805460019081019091556005548551600160a060020a039091169163f203af26918d918d91899190811061120c57fe5b602090810290910101516040805160e060020a63ffffffff8716028152600160c060020a0319948516600482015292909316602483015260448201529051606480830192600092919082900301818387803b15801561126a57600080fd5b505af115801561127e573d6000803e3d6000fd5b50505050600191505b5098975050505050505050565b600154600090600160a060020a031633146112ae57600080fd5b60015460008054604051600160a060020a0393841693909116917f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b91a3506001805460008054600160a060020a031916600160a060020a0390921691909117905590565b600880548290811061132057fe5b600091825260209091200154905081565b600254600160a060020a031681565b600054600160a060020a031681565b60008054600160a060020a0316331461136757600080fd5b600160c060020a03198316158015906113885750600160a060020a03821615155b151561139357600080fd5b50600160c060020a031982166000908152600a602052604090208054600160a060020a038316600160a060020a0319909116179055600192915050565b600054600160a060020a031633146113e757600080fd5b600160a060020a03821615156113fc57600080fd5b600160a060020a038116151561141157600080fd5b60028054600160a060020a03928316600160a060020a03199182161790915560038054939092169216919091179055565b600154600160a060020a031681565b600980548290811061132057fe5b600a60205260009081526040902054600160a060020a031681565b6003546000908190819081908190600160a060020a0316331461149c57600080fd5b600160c060020a03198b16158015906114bd5750600160a060020a038a1615155b80156114d15750600160a060020a03891615155b80156114dc57508715155b15156114e757600080fd5b600160c060020a03198b166000908152600a6020526040902054600160a060020a038b811691161461151857600080fd5b611528888863ffffffff61211d16565b600360009054906101000a9004600160a060020a0316600160a060020a03166370a082318e6040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561159857600080fd5b505af11580156115ac573d6000803e3d6000fd5b505050506040513d60208110156115c257600080fd5b505110156115cf57600080fd5b600354600160a060020a031663a24835d18d6115f18b8b63ffffffff61211d16565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561164357600080fd5b505af1158015611657573d6000803e3d6000fd5b505050506040513d602081101561166d57600080fd5b5050600254604080517f843ad7b50000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163843ad7b5916004808201926020929091908290030181600087803b1580156116cf57600080fd5b505af11580156116e3573d6000803e3d6000fd5b505050506040513d60208110156116f957600080fd5b5051600254604080517f065e53600000000000000000000000000000000000000000000000000000000081529051929650600160a060020a039091169163065e5360916004808201926020929091908290030181600087803b15801561175e57600080fd5b505af1158015611772573d6000803e3d6000fd5b505050506040513d602081101561178857600080fd5b5051600654909350600114156117dd576040805160008082529151600191819003820190206008805492830181559092527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301555b600260009054906101000a9004600160a060020a0316600160a060020a031663c763e5a16040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561183057600080fd5b505af1158015611844573d6000803e3d6000fd5b505050506040513d602081101561185a57600080fd5b5051600160c060020a03198c8116911614156118cd57600160a060020a03808b166000908152600b60209081526040808320938d16835292905220546118a6908963ffffffff61211d16565b600160a060020a03808c166000908152600b60209081526040808320938e16835292905220555b600254604080517fc763e5a100000000000000000000000000000000000000000000000000000000815290514294508492600160a060020a03169163c763e5a19160048083019260209291908290030181600087803b15801561192f57600080fd5b505af1158015611943573d6000803e3d6000fd5b505050506040513d602081101561195957600080fd5b5051600254604080517f42c6498a00000000000000000000000000000000000000000000000000000000815290518f928f928f928f928b92600160a060020a03909116916342c6498a916004808201926020929091908290030181600087803b1580156119c557600080fd5b505af11580156119d9573d6000803e3d6000fd5b505050506040513d60208110156119ef57600080fd5b5051600354604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290518e92600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b158015611a5057600080fd5b505af1158015611a64573d6000803e3d6000fd5b505050506040513d6020811015611a7a57600080fd5b81019080805190602001909291905050508f6008600160065403815481101515611aa057fe5b600091825260209182902001546040518d8152600160c060020a0319808e16828501528c1660288201526c01000000000000000000000000600160a060020a03808d16820260308401528b1602604482015260588101899052607881018890526098810187905260b8810186905260d8810185905283519192909160f88301918501908083835b60208310611b465780518252601f199092019160209182019101611b27565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019c50505050505050505050505050604051809103902090506008819080600181540180825580915050906001820390600052602060002001600090919290919091509060001916905550600360009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611c1357600080fd5b505af1158015611c27573d6000803e3d6000fd5b505050506040513d6020811015611c3d57600080fd5b5051600980546000908110611c4e57fe5b906000526020600020018190555080600019166006548a600160a060020a03167f67008f6d41fb47b0acf6bb0b2bf55dbc71e13cd95f90579a944c9ad04a2899488e8e8d8d8d8b6008600160065403815481101515611ca957fe5b90600052602060002001548e6009600260009054906101000a9004600160a060020a0316600160a060020a03166342c6498a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611d0a57600080fd5b505af1158015611d1e573d6000803e3d6000fd5b505050506040513d6020811015611d3457600080fd5b81019080805190602001909291905050508f600260009054906101000a9004600160a060020a0316600160a060020a03166349b11f246040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015611d9957600080fd5b505af1158015611dad573d6000803e3d6000fd5b505050506040513d6020811015611dc357600080fd5b505160408051600160c060020a03198e168152600160a060020a038d166020828101919091529181018c9052606081018b905260a0810189905260c0810188905260e08101879052610120810185905261014081018490526101608101839052610180608082018181528b51918301919091528a51919290916101008401916101a0850191908d019080838360005b83811015611e6a578181015183820152602001611e52565b50505050905090810190601f168015611e975780820380516001836020036101000a031916815260200191505b508381038252878181548152602001915080548015611ed557602002820191906000526020600020905b815481526020019060010190808311611ec1575b50509e50505050505050505050505050505060405180910390a4600680546001019055600554600254604080517fc763e5a10000000000000000000000000000000000000000000000000000000081529051600160a060020a039384169363523934bb93169163c763e5a19160048083019260209291908290030181600087803b158015611f6257600080fd5b505af1158015611f76573d6000803e3d6000fd5b505050506040513d6020811015611f8c57600080fd5b50516040805160e060020a63ffffffff8516028152600160c060020a03199283166004820152918f166024830152604482018c905251606480830192600092919082900301818387803b158015611fe257600080fd5b505af1158015611ff6573d6000803e3d6000fd5b5060019f9e505050505050505050505050505050565b600554600160a060020a031681565b600080600080600080865111151561203257600080fd5b600092505b855183101561210457858381518110151561204e57fe5b6020908102909101810151336000908152600b83526040808220600160a060020a03841683529093529182205490935091508111156120f957336000818152600b60209081526040808320600160a060020a03871680855290835281842093909355805185815290519293927fdcc7a8e6641ae885efef96d6348800635daf98037d60462fe34e85013b325713929181900390910190a36120f684600163ffffffff61211d16565b93505b600190920191612037565b5091949350505050565b600354600160a060020a031681565b60008282018381101561212c57fe5b93925050505600a165627a7a72305820e0c03a10555d9406d9a6570bb054b51ce22077010fc4dea1305ba8b347969e6b0029` + +// DeployTokenPorter deploys a new Ethereum contract, binding an instance of TokenPorter to it. +func DeployTokenPorter(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *TokenPorter, error) { + parsed, err := abi.JSON(strings.NewReader(TokenPorterABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(TokenPorterBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &TokenPorter{TokenPorterCaller: TokenPorterCaller{contract: contract}, TokenPorterTransactor: TokenPorterTransactor{contract: contract}, TokenPorterFilterer: TokenPorterFilterer{contract: contract}}, nil +} + +// TokenPorter is an auto generated Go binding around an Ethereum contract. +type TokenPorter struct { + TokenPorterCaller // Read-only binding to the contract + TokenPorterTransactor // Write-only binding to the contract + TokenPorterFilterer // Log filterer for contract events +} + +// TokenPorterCaller is an auto generated read-only Go binding around an Ethereum contract. +type TokenPorterCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TokenPorterTransactor is an auto generated write-only Go binding around an Ethereum contract. +type TokenPorterTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TokenPorterFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type TokenPorterFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TokenPorterSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type TokenPorterSession struct { + Contract *TokenPorter // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TokenPorterCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type TokenPorterCallerSession struct { + Contract *TokenPorterCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// TokenPorterTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type TokenPorterTransactorSession struct { + Contract *TokenPorterTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TokenPorterRaw is an auto generated low-level Go binding around an Ethereum contract. +type TokenPorterRaw struct { + Contract *TokenPorter // Generic contract binding to access the raw methods on +} + +// TokenPorterCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type TokenPorterCallerRaw struct { + Contract *TokenPorterCaller // Generic read-only contract binding to access the raw methods on +} + +// TokenPorterTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type TokenPorterTransactorRaw struct { + Contract *TokenPorterTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewTokenPorter creates a new instance of TokenPorter, bound to a specific deployed contract. +func NewTokenPorter(address common.Address, backend bind.ContractBackend) (*TokenPorter, error) { + contract, err := bindTokenPorter(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &TokenPorter{TokenPorterCaller: TokenPorterCaller{contract: contract}, TokenPorterTransactor: TokenPorterTransactor{contract: contract}, TokenPorterFilterer: TokenPorterFilterer{contract: contract}}, nil +} + +// NewTokenPorterCaller creates a new read-only instance of TokenPorter, bound to a specific deployed contract. +func NewTokenPorterCaller(address common.Address, caller bind.ContractCaller) (*TokenPorterCaller, error) { + contract, err := bindTokenPorter(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &TokenPorterCaller{contract: contract}, nil +} + +// NewTokenPorterTransactor creates a new write-only instance of TokenPorter, bound to a specific deployed contract. +func NewTokenPorterTransactor(address common.Address, transactor bind.ContractTransactor) (*TokenPorterTransactor, error) { + contract, err := bindTokenPorter(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &TokenPorterTransactor{contract: contract}, nil +} + +// NewTokenPorterFilterer creates a new log filterer instance of TokenPorter, bound to a specific deployed contract. +func NewTokenPorterFilterer(address common.Address, filterer bind.ContractFilterer) (*TokenPorterFilterer, error) { + contract, err := bindTokenPorter(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &TokenPorterFilterer{contract: contract}, nil +} + +// bindTokenPorter binds a generic wrapper to an already deployed contract. +func bindTokenPorter(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(TokenPorterABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TokenPorter *TokenPorterRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _TokenPorter.Contract.TokenPorterCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TokenPorter *TokenPorterRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TokenPorter.Contract.TokenPorterTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TokenPorter *TokenPorterRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TokenPorter.Contract.TokenPorterTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TokenPorter *TokenPorterCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _TokenPorter.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TokenPorter *TokenPorterTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TokenPorter.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TokenPorter *TokenPorterTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _TokenPorter.Contract.contract.Transact(opts, method, params...) +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_TokenPorter *TokenPorterCaller) Auctions(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _TokenPorter.contract.Call(opts, out, "auctions") + return *ret0, err +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_TokenPorter *TokenPorterSession) Auctions() (common.Address, error) { + return _TokenPorter.Contract.Auctions(&_TokenPorter.CallOpts) +} + +// Auctions is a free data retrieval call binding the contract method 0x85aa6103. +// +// Solidity: function auctions() constant returns(address) +func (_TokenPorter *TokenPorterCallerSession) Auctions() (common.Address, error) { + return _TokenPorter.Contract.Auctions(&_TokenPorter.CallOpts) +} + +// BurnSequence is a free data retrieval call binding the contract method 0x67602c59. +// +// Solidity: function burnSequence() constant returns(uint256) +func (_TokenPorter *TokenPorterCaller) BurnSequence(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _TokenPorter.contract.Call(opts, out, "burnSequence") + return *ret0, err +} + +// BurnSequence is a free data retrieval call binding the contract method 0x67602c59. +// +// Solidity: function burnSequence() constant returns(uint256) +func (_TokenPorter *TokenPorterSession) BurnSequence() (*big.Int, error) { + return _TokenPorter.Contract.BurnSequence(&_TokenPorter.CallOpts) +} + +// BurnSequence is a free data retrieval call binding the contract method 0x67602c59. +// +// Solidity: function burnSequence() constant returns(uint256) +func (_TokenPorter *TokenPorterCallerSession) BurnSequence() (*big.Int, error) { + return _TokenPorter.Contract.BurnSequence(&_TokenPorter.CallOpts) +} + +// ChainLedger is a free data retrieval call binding the contract method 0xf5727f5c. +// +// Solidity: function chainLedger() constant returns(address) +func (_TokenPorter *TokenPorterCaller) ChainLedger(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _TokenPorter.contract.Call(opts, out, "chainLedger") + return *ret0, err +} + +// ChainLedger is a free data retrieval call binding the contract method 0xf5727f5c. +// +// Solidity: function chainLedger() constant returns(address) +func (_TokenPorter *TokenPorterSession) ChainLedger() (common.Address, error) { + return _TokenPorter.Contract.ChainLedger(&_TokenPorter.CallOpts) +} + +// ChainLedger is a free data retrieval call binding the contract method 0xf5727f5c. +// +// Solidity: function chainLedger() constant returns(address) +func (_TokenPorter *TokenPorterCallerSession) ChainLedger() (common.Address, error) { + return _TokenPorter.Contract.ChainLedger(&_TokenPorter.CallOpts) +} + +// Claimables is a free data retrieval call binding the contract method 0x4f530565. +// +// Solidity: function claimables( address, address) constant returns(uint256) +func (_TokenPorter *TokenPorterCaller) Claimables(opts *bind.CallOpts, arg0 common.Address, arg1 common.Address) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _TokenPorter.contract.Call(opts, out, "claimables", arg0, arg1) + return *ret0, err +} + +// Claimables is a free data retrieval call binding the contract method 0x4f530565. +// +// Solidity: function claimables( address, address) constant returns(uint256) +func (_TokenPorter *TokenPorterSession) Claimables(arg0 common.Address, arg1 common.Address) (*big.Int, error) { + return _TokenPorter.Contract.Claimables(&_TokenPorter.CallOpts, arg0, arg1) +} + +// Claimables is a free data retrieval call binding the contract method 0x4f530565. +// +// Solidity: function claimables( address, address) constant returns(uint256) +func (_TokenPorter *TokenPorterCallerSession) Claimables(arg0 common.Address, arg1 common.Address) (*big.Int, error) { + return _TokenPorter.Contract.Claimables(&_TokenPorter.CallOpts, arg0, arg1) +} + +// DestinationChains is a free data retrieval call binding the contract method 0xda7220d0. +// +// Solidity: function destinationChains( bytes8) constant returns(address) +func (_TokenPorter *TokenPorterCaller) DestinationChains(opts *bind.CallOpts, arg0 [8]byte) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _TokenPorter.contract.Call(opts, out, "destinationChains", arg0) + return *ret0, err +} + +// DestinationChains is a free data retrieval call binding the contract method 0xda7220d0. +// +// Solidity: function destinationChains( bytes8) constant returns(address) +func (_TokenPorter *TokenPorterSession) DestinationChains(arg0 [8]byte) (common.Address, error) { + return _TokenPorter.Contract.DestinationChains(&_TokenPorter.CallOpts, arg0) +} + +// DestinationChains is a free data retrieval call binding the contract method 0xda7220d0. +// +// Solidity: function destinationChains( bytes8) constant returns(address) +func (_TokenPorter *TokenPorterCallerSession) DestinationChains(arg0 [8]byte) (common.Address, error) { + return _TokenPorter.Contract.DestinationChains(&_TokenPorter.CallOpts, arg0) +} + +// ExportedBurns is a free data retrieval call binding the contract method 0x7a6e3854. +// +// Solidity: function exportedBurns( uint256) constant returns(bytes32) +func (_TokenPorter *TokenPorterCaller) ExportedBurns(opts *bind.CallOpts, arg0 *big.Int) ([32]byte, error) { + var ( + ret0 = new([32]byte) + ) + out := ret0 + err := _TokenPorter.contract.Call(opts, out, "exportedBurns", arg0) + return *ret0, err +} + +// ExportedBurns is a free data retrieval call binding the contract method 0x7a6e3854. +// +// Solidity: function exportedBurns( uint256) constant returns(bytes32) +func (_TokenPorter *TokenPorterSession) ExportedBurns(arg0 *big.Int) ([32]byte, error) { + return _TokenPorter.Contract.ExportedBurns(&_TokenPorter.CallOpts, arg0) +} + +// ExportedBurns is a free data retrieval call binding the contract method 0x7a6e3854. +// +// Solidity: function exportedBurns( uint256) constant returns(bytes32) +func (_TokenPorter *TokenPorterCallerSession) ExportedBurns(arg0 *big.Int) ([32]byte, error) { + return _TokenPorter.Contract.ExportedBurns(&_TokenPorter.CallOpts, arg0) +} + +// ImportSequence is a free data retrieval call binding the contract method 0x0245c5c8. +// +// Solidity: function importSequence() constant returns(uint256) +func (_TokenPorter *TokenPorterCaller) ImportSequence(opts *bind.CallOpts) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _TokenPorter.contract.Call(opts, out, "importSequence") + return *ret0, err +} + +// ImportSequence is a free data retrieval call binding the contract method 0x0245c5c8. +// +// Solidity: function importSequence() constant returns(uint256) +func (_TokenPorter *TokenPorterSession) ImportSequence() (*big.Int, error) { + return _TokenPorter.Contract.ImportSequence(&_TokenPorter.CallOpts) +} + +// ImportSequence is a free data retrieval call binding the contract method 0x0245c5c8. +// +// Solidity: function importSequence() constant returns(uint256) +func (_TokenPorter *TokenPorterCallerSession) ImportSequence() (*big.Int, error) { + return _TokenPorter.Contract.ImportSequence(&_TokenPorter.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_TokenPorter *TokenPorterCaller) NewOwner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _TokenPorter.contract.Call(opts, out, "newOwner") + return *ret0, err +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_TokenPorter *TokenPorterSession) NewOwner() (common.Address, error) { + return _TokenPorter.Contract.NewOwner(&_TokenPorter.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_TokenPorter *TokenPorterCallerSession) NewOwner() (common.Address, error) { + return _TokenPorter.Contract.NewOwner(&_TokenPorter.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_TokenPorter *TokenPorterCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _TokenPorter.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_TokenPorter *TokenPorterSession) Owner() (common.Address, error) { + return _TokenPorter.Contract.Owner(&_TokenPorter.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_TokenPorter *TokenPorterCallerSession) Owner() (common.Address, error) { + return _TokenPorter.Contract.Owner(&_TokenPorter.CallOpts) +} + +// SupplyOnAllChains is a free data retrieval call binding the contract method 0xd8b194a7. +// +// Solidity: function supplyOnAllChains( uint256) constant returns(uint256) +func (_TokenPorter *TokenPorterCaller) SupplyOnAllChains(opts *bind.CallOpts, arg0 *big.Int) (*big.Int, error) { + var ( + ret0 = new(*big.Int) + ) + out := ret0 + err := _TokenPorter.contract.Call(opts, out, "supplyOnAllChains", arg0) + return *ret0, err +} + +// SupplyOnAllChains is a free data retrieval call binding the contract method 0xd8b194a7. +// +// Solidity: function supplyOnAllChains( uint256) constant returns(uint256) +func (_TokenPorter *TokenPorterSession) SupplyOnAllChains(arg0 *big.Int) (*big.Int, error) { + return _TokenPorter.Contract.SupplyOnAllChains(&_TokenPorter.CallOpts, arg0) +} + +// SupplyOnAllChains is a free data retrieval call binding the contract method 0xd8b194a7. +// +// Solidity: function supplyOnAllChains( uint256) constant returns(uint256) +func (_TokenPorter *TokenPorterCallerSession) SupplyOnAllChains(arg0 *big.Int) (*big.Int, error) { + return _TokenPorter.Contract.SupplyOnAllChains(&_TokenPorter.CallOpts, arg0) +} + +// Token is a free data retrieval call binding the contract method 0xfc0c546a. +// +// Solidity: function token() constant returns(address) +func (_TokenPorter *TokenPorterCaller) Token(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _TokenPorter.contract.Call(opts, out, "token") + return *ret0, err +} + +// Token is a free data retrieval call binding the contract method 0xfc0c546a. +// +// Solidity: function token() constant returns(address) +func (_TokenPorter *TokenPorterSession) Token() (common.Address, error) { + return _TokenPorter.Contract.Token(&_TokenPorter.CallOpts) +} + +// Token is a free data retrieval call binding the contract method 0xfc0c546a. +// +// Solidity: function token() constant returns(address) +func (_TokenPorter *TokenPorterCallerSession) Token() (common.Address, error) { + return _TokenPorter.Contract.Token(&_TokenPorter.CallOpts) +} + +// Validator is a free data retrieval call binding the contract method 0x3a5381b5. +// +// Solidity: function validator() constant returns(address) +func (_TokenPorter *TokenPorterCaller) Validator(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _TokenPorter.contract.Call(opts, out, "validator") + return *ret0, err +} + +// Validator is a free data retrieval call binding the contract method 0x3a5381b5. +// +// Solidity: function validator() constant returns(address) +func (_TokenPorter *TokenPorterSession) Validator() (common.Address, error) { + return _TokenPorter.Contract.Validator(&_TokenPorter.CallOpts) +} + +// Validator is a free data retrieval call binding the contract method 0x3a5381b5. +// +// Solidity: function validator() constant returns(address) +func (_TokenPorter *TokenPorterCallerSession) Validator() (common.Address, error) { + return _TokenPorter.Contract.Validator(&_TokenPorter.CallOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_TokenPorter *TokenPorterTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _TokenPorter.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_TokenPorter *TokenPorterSession) AcceptOwnership() (*types.Transaction, error) { + return _TokenPorter.Contract.AcceptOwnership(&_TokenPorter.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_TokenPorter *TokenPorterTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _TokenPorter.Contract.AcceptOwnership(&_TokenPorter.TransactOpts) +} + +// AddDestinationChain is a paid mutator transaction binding the contract method 0xb27e7244. +// +// Solidity: function addDestinationChain(_chainName bytes8, _contractAddress address) returns(bool) +func (_TokenPorter *TokenPorterTransactor) AddDestinationChain(opts *bind.TransactOpts, _chainName [8]byte, _contractAddress common.Address) (*types.Transaction, error) { + return _TokenPorter.contract.Transact(opts, "addDestinationChain", _chainName, _contractAddress) +} + +// AddDestinationChain is a paid mutator transaction binding the contract method 0xb27e7244. +// +// Solidity: function addDestinationChain(_chainName bytes8, _contractAddress address) returns(bool) +func (_TokenPorter *TokenPorterSession) AddDestinationChain(_chainName [8]byte, _contractAddress common.Address) (*types.Transaction, error) { + return _TokenPorter.Contract.AddDestinationChain(&_TokenPorter.TransactOpts, _chainName, _contractAddress) +} + +// AddDestinationChain is a paid mutator transaction binding the contract method 0xb27e7244. +// +// Solidity: function addDestinationChain(_chainName bytes8, _contractAddress address) returns(bool) +func (_TokenPorter *TokenPorterTransactorSession) AddDestinationChain(_chainName [8]byte, _contractAddress common.Address) (*types.Transaction, error) { + return _TokenPorter.Contract.AddDestinationChain(&_TokenPorter.TransactOpts, _chainName, _contractAddress) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_TokenPorter *TokenPorterTransactor) ChangeOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) { + return _TokenPorter.contract.Transact(opts, "changeOwnership", _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_TokenPorter *TokenPorterSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _TokenPorter.Contract.ChangeOwnership(&_TokenPorter.TransactOpts, _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_TokenPorter *TokenPorterTransactorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _TokenPorter.Contract.ChangeOwnership(&_TokenPorter.TransactOpts, _newOwner) +} + +// ClaimReceivables is a paid mutator transaction binding the contract method 0xfb8b0197. +// +// Solidity: function claimReceivables(recipients address[]) returns(uint256) +func (_TokenPorter *TokenPorterTransactor) ClaimReceivables(opts *bind.TransactOpts, recipients []common.Address) (*types.Transaction, error) { + return _TokenPorter.contract.Transact(opts, "claimReceivables", recipients) +} + +// ClaimReceivables is a paid mutator transaction binding the contract method 0xfb8b0197. +// +// Solidity: function claimReceivables(recipients address[]) returns(uint256) +func (_TokenPorter *TokenPorterSession) ClaimReceivables(recipients []common.Address) (*types.Transaction, error) { + return _TokenPorter.Contract.ClaimReceivables(&_TokenPorter.TransactOpts, recipients) +} + +// ClaimReceivables is a paid mutator transaction binding the contract method 0xfb8b0197. +// +// Solidity: function claimReceivables(recipients address[]) returns(uint256) +func (_TokenPorter *TokenPorterTransactorSession) ClaimReceivables(recipients []common.Address) (*types.Transaction, error) { + return _TokenPorter.Contract.ClaimReceivables(&_TokenPorter.TransactOpts, recipients) +} + +// Export is a paid mutator transaction binding the contract method 0xf29b2040. +// +// Solidity: function export(tokenOwner address, _destChain bytes8, _destMetronomeAddr address, _destRecipAddr address, _amount uint256, _fee uint256, _extraData bytes) returns(bool) +func (_TokenPorter *TokenPorterTransactor) Export(opts *bind.TransactOpts, tokenOwner common.Address, _destChain [8]byte, _destMetronomeAddr common.Address, _destRecipAddr common.Address, _amount *big.Int, _fee *big.Int, _extraData []byte) (*types.Transaction, error) { + return _TokenPorter.contract.Transact(opts, "export", tokenOwner, _destChain, _destMetronomeAddr, _destRecipAddr, _amount, _fee, _extraData) +} + +// Export is a paid mutator transaction binding the contract method 0xf29b2040. +// +// Solidity: function export(tokenOwner address, _destChain bytes8, _destMetronomeAddr address, _destRecipAddr address, _amount uint256, _fee uint256, _extraData bytes) returns(bool) +func (_TokenPorter *TokenPorterSession) Export(tokenOwner common.Address, _destChain [8]byte, _destMetronomeAddr common.Address, _destRecipAddr common.Address, _amount *big.Int, _fee *big.Int, _extraData []byte) (*types.Transaction, error) { + return _TokenPorter.Contract.Export(&_TokenPorter.TransactOpts, tokenOwner, _destChain, _destMetronomeAddr, _destRecipAddr, _amount, _fee, _extraData) +} + +// Export is a paid mutator transaction binding the contract method 0xf29b2040. +// +// Solidity: function export(tokenOwner address, _destChain bytes8, _destMetronomeAddr address, _destRecipAddr address, _amount uint256, _fee uint256, _extraData bytes) returns(bool) +func (_TokenPorter *TokenPorterTransactorSession) Export(tokenOwner common.Address, _destChain [8]byte, _destMetronomeAddr common.Address, _destRecipAddr common.Address, _amount *big.Int, _fee *big.Int, _extraData []byte) (*types.Transaction, error) { + return _TokenPorter.Contract.Export(&_TokenPorter.TransactOpts, tokenOwner, _destChain, _destMetronomeAddr, _destRecipAddr, _amount, _fee, _extraData) +} + +// ImportMET is a paid mutator transaction binding the contract method 0x6ffbff9c. +// +// Solidity: function importMET(_originChain bytes8, _destinationChain bytes8, _addresses address[], _extraData bytes, _burnHashes bytes32[], _supplyOnAllChains uint256[], _importData uint256[], _proof bytes) returns(bool) +func (_TokenPorter *TokenPorterTransactor) ImportMET(opts *bind.TransactOpts, _originChain [8]byte, _destinationChain [8]byte, _addresses []common.Address, _extraData []byte, _burnHashes [][32]byte, _supplyOnAllChains []*big.Int, _importData []*big.Int, _proof []byte) (*types.Transaction, error) { + return _TokenPorter.contract.Transact(opts, "importMET", _originChain, _destinationChain, _addresses, _extraData, _burnHashes, _supplyOnAllChains, _importData, _proof) +} + +// ImportMET is a paid mutator transaction binding the contract method 0x6ffbff9c. +// +// Solidity: function importMET(_originChain bytes8, _destinationChain bytes8, _addresses address[], _extraData bytes, _burnHashes bytes32[], _supplyOnAllChains uint256[], _importData uint256[], _proof bytes) returns(bool) +func (_TokenPorter *TokenPorterSession) ImportMET(_originChain [8]byte, _destinationChain [8]byte, _addresses []common.Address, _extraData []byte, _burnHashes [][32]byte, _supplyOnAllChains []*big.Int, _importData []*big.Int, _proof []byte) (*types.Transaction, error) { + return _TokenPorter.Contract.ImportMET(&_TokenPorter.TransactOpts, _originChain, _destinationChain, _addresses, _extraData, _burnHashes, _supplyOnAllChains, _importData, _proof) +} + +// ImportMET is a paid mutator transaction binding the contract method 0x6ffbff9c. +// +// Solidity: function importMET(_originChain bytes8, _destinationChain bytes8, _addresses address[], _extraData bytes, _burnHashes bytes32[], _supplyOnAllChains uint256[], _importData uint256[], _proof bytes) returns(bool) +func (_TokenPorter *TokenPorterTransactorSession) ImportMET(_originChain [8]byte, _destinationChain [8]byte, _addresses []common.Address, _extraData []byte, _burnHashes [][32]byte, _supplyOnAllChains []*big.Int, _importData []*big.Int, _proof []byte) (*types.Transaction, error) { + return _TokenPorter.Contract.ImportMET(&_TokenPorter.TransactOpts, _originChain, _destinationChain, _addresses, _extraData, _burnHashes, _supplyOnAllChains, _importData, _proof) +} + +// InitTokenPorter is a paid mutator transaction binding the contract method 0xc554a600. +// +// Solidity: function initTokenPorter(_tokenAddr address, _auctionsAddr address) returns() +func (_TokenPorter *TokenPorterTransactor) InitTokenPorter(opts *bind.TransactOpts, _tokenAddr common.Address, _auctionsAddr common.Address) (*types.Transaction, error) { + return _TokenPorter.contract.Transact(opts, "initTokenPorter", _tokenAddr, _auctionsAddr) +} + +// InitTokenPorter is a paid mutator transaction binding the contract method 0xc554a600. +// +// Solidity: function initTokenPorter(_tokenAddr address, _auctionsAddr address) returns() +func (_TokenPorter *TokenPorterSession) InitTokenPorter(_tokenAddr common.Address, _auctionsAddr common.Address) (*types.Transaction, error) { + return _TokenPorter.Contract.InitTokenPorter(&_TokenPorter.TransactOpts, _tokenAddr, _auctionsAddr) +} + +// InitTokenPorter is a paid mutator transaction binding the contract method 0xc554a600. +// +// Solidity: function initTokenPorter(_tokenAddr address, _auctionsAddr address) returns() +func (_TokenPorter *TokenPorterTransactorSession) InitTokenPorter(_tokenAddr common.Address, _auctionsAddr common.Address) (*types.Transaction, error) { + return _TokenPorter.Contract.InitTokenPorter(&_TokenPorter.TransactOpts, _tokenAddr, _auctionsAddr) +} + +// RemoveDestinationChain is a paid mutator transaction binding the contract method 0x62016083. +// +// Solidity: function removeDestinationChain(_chainName bytes8) returns(bool) +func (_TokenPorter *TokenPorterTransactor) RemoveDestinationChain(opts *bind.TransactOpts, _chainName [8]byte) (*types.Transaction, error) { + return _TokenPorter.contract.Transact(opts, "removeDestinationChain", _chainName) +} + +// RemoveDestinationChain is a paid mutator transaction binding the contract method 0x62016083. +// +// Solidity: function removeDestinationChain(_chainName bytes8) returns(bool) +func (_TokenPorter *TokenPorterSession) RemoveDestinationChain(_chainName [8]byte) (*types.Transaction, error) { + return _TokenPorter.Contract.RemoveDestinationChain(&_TokenPorter.TransactOpts, _chainName) +} + +// RemoveDestinationChain is a paid mutator transaction binding the contract method 0x62016083. +// +// Solidity: function removeDestinationChain(_chainName bytes8) returns(bool) +func (_TokenPorter *TokenPorterTransactorSession) RemoveDestinationChain(_chainName [8]byte) (*types.Transaction, error) { + return _TokenPorter.Contract.RemoveDestinationChain(&_TokenPorter.TransactOpts, _chainName) +} + +// SetChainLedger is a paid mutator transaction binding the contract method 0x4499af81. +// +// Solidity: function setChainLedger(_chainLedger address) returns(bool) +func (_TokenPorter *TokenPorterTransactor) SetChainLedger(opts *bind.TransactOpts, _chainLedger common.Address) (*types.Transaction, error) { + return _TokenPorter.contract.Transact(opts, "setChainLedger", _chainLedger) +} + +// SetChainLedger is a paid mutator transaction binding the contract method 0x4499af81. +// +// Solidity: function setChainLedger(_chainLedger address) returns(bool) +func (_TokenPorter *TokenPorterSession) SetChainLedger(_chainLedger common.Address) (*types.Transaction, error) { + return _TokenPorter.Contract.SetChainLedger(&_TokenPorter.TransactOpts, _chainLedger) +} + +// SetChainLedger is a paid mutator transaction binding the contract method 0x4499af81. +// +// Solidity: function setChainLedger(_chainLedger address) returns(bool) +func (_TokenPorter *TokenPorterTransactorSession) SetChainLedger(_chainLedger common.Address) (*types.Transaction, error) { + return _TokenPorter.Contract.SetChainLedger(&_TokenPorter.TransactOpts, _chainLedger) +} + +// SetValidator is a paid mutator transaction binding the contract method 0x1327d3d8. +// +// Solidity: function setValidator(_validator address) returns(bool) +func (_TokenPorter *TokenPorterTransactor) SetValidator(opts *bind.TransactOpts, _validator common.Address) (*types.Transaction, error) { + return _TokenPorter.contract.Transact(opts, "setValidator", _validator) +} + +// SetValidator is a paid mutator transaction binding the contract method 0x1327d3d8. +// +// Solidity: function setValidator(_validator address) returns(bool) +func (_TokenPorter *TokenPorterSession) SetValidator(_validator common.Address) (*types.Transaction, error) { + return _TokenPorter.Contract.SetValidator(&_TokenPorter.TransactOpts, _validator) +} + +// SetValidator is a paid mutator transaction binding the contract method 0x1327d3d8. +// +// Solidity: function setValidator(_validator address) returns(bool) +func (_TokenPorter *TokenPorterTransactorSession) SetValidator(_validator common.Address) (*types.Transaction, error) { + return _TokenPorter.Contract.SetValidator(&_TokenPorter.TransactOpts, _validator) +} + +// TokenPorterExportOnChainClaimedReceiptLogIterator is returned from FilterExportOnChainClaimedReceiptLog and is used to iterate over the raw logs and unpacked data for ExportOnChainClaimedReceiptLog events raised by the TokenPorter contract. +type TokenPorterExportOnChainClaimedReceiptLogIterator struct { + Event *TokenPorterExportOnChainClaimedReceiptLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TokenPorterExportOnChainClaimedReceiptLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TokenPorterExportOnChainClaimedReceiptLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TokenPorterExportOnChainClaimedReceiptLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TokenPorterExportOnChainClaimedReceiptLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TokenPorterExportOnChainClaimedReceiptLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TokenPorterExportOnChainClaimedReceiptLog represents a ExportOnChainClaimedReceiptLog event raised by the TokenPorter contract. +type TokenPorterExportOnChainClaimedReceiptLog struct { + DestinationMetronomeAddr common.Address + DestinationRecipientAddr common.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExportOnChainClaimedReceiptLog is a free log retrieval operation binding the contract event 0xdcc7a8e6641ae885efef96d6348800635daf98037d60462fe34e85013b325713. +// +// Solidity: e ExportOnChainClaimedReceiptLog(destinationMetronomeAddr indexed address, destinationRecipientAddr indexed address, amount uint256) +func (_TokenPorter *TokenPorterFilterer) FilterExportOnChainClaimedReceiptLog(opts *bind.FilterOpts, destinationMetronomeAddr []common.Address, destinationRecipientAddr []common.Address) (*TokenPorterExportOnChainClaimedReceiptLogIterator, error) { + + var destinationMetronomeAddrRule []interface{} + for _, destinationMetronomeAddrItem := range destinationMetronomeAddr { + destinationMetronomeAddrRule = append(destinationMetronomeAddrRule, destinationMetronomeAddrItem) + } + var destinationRecipientAddrRule []interface{} + for _, destinationRecipientAddrItem := range destinationRecipientAddr { + destinationRecipientAddrRule = append(destinationRecipientAddrRule, destinationRecipientAddrItem) + } + + logs, sub, err := _TokenPorter.contract.FilterLogs(opts, "ExportOnChainClaimedReceiptLog", destinationMetronomeAddrRule, destinationRecipientAddrRule) + if err != nil { + return nil, err + } + return &TokenPorterExportOnChainClaimedReceiptLogIterator{contract: _TokenPorter.contract, event: "ExportOnChainClaimedReceiptLog", logs: logs, sub: sub}, nil +} + +// WatchExportOnChainClaimedReceiptLog is a free log subscription operation binding the contract event 0xdcc7a8e6641ae885efef96d6348800635daf98037d60462fe34e85013b325713. +// +// Solidity: e ExportOnChainClaimedReceiptLog(destinationMetronomeAddr indexed address, destinationRecipientAddr indexed address, amount uint256) +func (_TokenPorter *TokenPorterFilterer) WatchExportOnChainClaimedReceiptLog(opts *bind.WatchOpts, sink chan<- *TokenPorterExportOnChainClaimedReceiptLog, destinationMetronomeAddr []common.Address, destinationRecipientAddr []common.Address) (event.Subscription, error) { + + var destinationMetronomeAddrRule []interface{} + for _, destinationMetronomeAddrItem := range destinationMetronomeAddr { + destinationMetronomeAddrRule = append(destinationMetronomeAddrRule, destinationMetronomeAddrItem) + } + var destinationRecipientAddrRule []interface{} + for _, destinationRecipientAddrItem := range destinationRecipientAddr { + destinationRecipientAddrRule = append(destinationRecipientAddrRule, destinationRecipientAddrItem) + } + + logs, sub, err := _TokenPorter.contract.WatchLogs(opts, "ExportOnChainClaimedReceiptLog", destinationMetronomeAddrRule, destinationRecipientAddrRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TokenPorterExportOnChainClaimedReceiptLog) + if err := _TokenPorter.contract.UnpackLog(event, "ExportOnChainClaimedReceiptLog", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// TokenPorterExportReceiptLogIterator is returned from FilterExportReceiptLog and is used to iterate over the raw logs and unpacked data for ExportReceiptLog events raised by the TokenPorter contract. +type TokenPorterExportReceiptLogIterator struct { + Event *TokenPorterExportReceiptLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TokenPorterExportReceiptLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TokenPorterExportReceiptLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TokenPorterExportReceiptLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TokenPorterExportReceiptLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TokenPorterExportReceiptLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TokenPorterExportReceiptLog represents a ExportReceiptLog event raised by the TokenPorter contract. +type TokenPorterExportReceiptLog struct { + DestinationChain [8]byte + DestinationMetronomeAddr common.Address + DestinationRecipientAddr common.Address + AmountToBurn *big.Int + Fee *big.Int + ExtraData []byte + CurrentTick *big.Int + BurnSequence *big.Int + CurrentBurnHash [32]byte + PrevBurnHash [32]byte + DailyMintable *big.Int + SupplyOnAllChains []*big.Int + GenesisTime *big.Int + BlockTimestamp *big.Int + DailyAuctionStartTime *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterExportReceiptLog is a free log retrieval operation binding the contract event 0x67008f6d41fb47b0acf6bb0b2bf55dbc71e13cd95f90579a944c9ad04a289948. +// +// Solidity: e ExportReceiptLog(destinationChain bytes8, destinationMetronomeAddr address, destinationRecipientAddr indexed address, amountToBurn uint256, fee uint256, extraData bytes, currentTick uint256, burnSequence indexed uint256, currentBurnHash indexed bytes32, prevBurnHash bytes32, dailyMintable uint256, supplyOnAllChains uint256[], genesisTime uint256, blockTimestamp uint256, dailyAuctionStartTime uint256) +func (_TokenPorter *TokenPorterFilterer) FilterExportReceiptLog(opts *bind.FilterOpts, destinationRecipientAddr []common.Address, burnSequence []*big.Int, currentBurnHash [][32]byte) (*TokenPorterExportReceiptLogIterator, error) { + + var destinationRecipientAddrRule []interface{} + for _, destinationRecipientAddrItem := range destinationRecipientAddr { + destinationRecipientAddrRule = append(destinationRecipientAddrRule, destinationRecipientAddrItem) + } + + var burnSequenceRule []interface{} + for _, burnSequenceItem := range burnSequence { + burnSequenceRule = append(burnSequenceRule, burnSequenceItem) + } + var currentBurnHashRule []interface{} + for _, currentBurnHashItem := range currentBurnHash { + currentBurnHashRule = append(currentBurnHashRule, currentBurnHashItem) + } + + logs, sub, err := _TokenPorter.contract.FilterLogs(opts, "ExportReceiptLog", destinationRecipientAddrRule, burnSequenceRule, currentBurnHashRule) + if err != nil { + return nil, err + } + return &TokenPorterExportReceiptLogIterator{contract: _TokenPorter.contract, event: "ExportReceiptLog", logs: logs, sub: sub}, nil +} + +// WatchExportReceiptLog is a free log subscription operation binding the contract event 0x67008f6d41fb47b0acf6bb0b2bf55dbc71e13cd95f90579a944c9ad04a289948. +// +// Solidity: e ExportReceiptLog(destinationChain bytes8, destinationMetronomeAddr address, destinationRecipientAddr indexed address, amountToBurn uint256, fee uint256, extraData bytes, currentTick uint256, burnSequence indexed uint256, currentBurnHash indexed bytes32, prevBurnHash bytes32, dailyMintable uint256, supplyOnAllChains uint256[], genesisTime uint256, blockTimestamp uint256, dailyAuctionStartTime uint256) +func (_TokenPorter *TokenPorterFilterer) WatchExportReceiptLog(opts *bind.WatchOpts, sink chan<- *TokenPorterExportReceiptLog, destinationRecipientAddr []common.Address, burnSequence []*big.Int, currentBurnHash [][32]byte) (event.Subscription, error) { + + var destinationRecipientAddrRule []interface{} + for _, destinationRecipientAddrItem := range destinationRecipientAddr { + destinationRecipientAddrRule = append(destinationRecipientAddrRule, destinationRecipientAddrItem) + } + + var burnSequenceRule []interface{} + for _, burnSequenceItem := range burnSequence { + burnSequenceRule = append(burnSequenceRule, burnSequenceItem) + } + var currentBurnHashRule []interface{} + for _, currentBurnHashItem := range currentBurnHash { + currentBurnHashRule = append(currentBurnHashRule, currentBurnHashItem) + } + + logs, sub, err := _TokenPorter.contract.WatchLogs(opts, "ExportReceiptLog", destinationRecipientAddrRule, burnSequenceRule, currentBurnHashRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TokenPorterExportReceiptLog) + if err := _TokenPorter.contract.UnpackLog(event, "ExportReceiptLog", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// TokenPorterImportReceiptLogIterator is returned from FilterImportReceiptLog and is used to iterate over the raw logs and unpacked data for ImportReceiptLog events raised by the TokenPorter contract. +type TokenPorterImportReceiptLogIterator struct { + Event *TokenPorterImportReceiptLog // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TokenPorterImportReceiptLogIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TokenPorterImportReceiptLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TokenPorterImportReceiptLog) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TokenPorterImportReceiptLogIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TokenPorterImportReceiptLogIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TokenPorterImportReceiptLog represents a ImportReceiptLog event raised by the TokenPorter contract. +type TokenPorterImportReceiptLog struct { + DestinationRecipientAddr common.Address + AmountImported *big.Int + Fee *big.Int + ExtraData []byte + CurrentTick *big.Int + ImportSequence *big.Int + CurrentHash [32]byte + PrevHash [32]byte + DailyMintable *big.Int + BlockTimestamp *big.Int + Caller common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterImportReceiptLog is a free log retrieval operation binding the contract event 0x31ada03ea6574804e622b02e30804a1f976859a01faa63b6a0175103969d3137. +// +// Solidity: e ImportReceiptLog(destinationRecipientAddr indexed address, amountImported uint256, fee uint256, extraData bytes, currentTick uint256, importSequence indexed uint256, currentHash indexed bytes32, prevHash bytes32, dailyMintable uint256, blockTimestamp uint256, caller address) +func (_TokenPorter *TokenPorterFilterer) FilterImportReceiptLog(opts *bind.FilterOpts, destinationRecipientAddr []common.Address, importSequence []*big.Int, currentHash [][32]byte) (*TokenPorterImportReceiptLogIterator, error) { + + var destinationRecipientAddrRule []interface{} + for _, destinationRecipientAddrItem := range destinationRecipientAddr { + destinationRecipientAddrRule = append(destinationRecipientAddrRule, destinationRecipientAddrItem) + } + + var importSequenceRule []interface{} + for _, importSequenceItem := range importSequence { + importSequenceRule = append(importSequenceRule, importSequenceItem) + } + var currentHashRule []interface{} + for _, currentHashItem := range currentHash { + currentHashRule = append(currentHashRule, currentHashItem) + } + + logs, sub, err := _TokenPorter.contract.FilterLogs(opts, "ImportReceiptLog", destinationRecipientAddrRule, importSequenceRule, currentHashRule) + if err != nil { + return nil, err + } + return &TokenPorterImportReceiptLogIterator{contract: _TokenPorter.contract, event: "ImportReceiptLog", logs: logs, sub: sub}, nil +} + +// WatchImportReceiptLog is a free log subscription operation binding the contract event 0x31ada03ea6574804e622b02e30804a1f976859a01faa63b6a0175103969d3137. +// +// Solidity: e ImportReceiptLog(destinationRecipientAddr indexed address, amountImported uint256, fee uint256, extraData bytes, currentTick uint256, importSequence indexed uint256, currentHash indexed bytes32, prevHash bytes32, dailyMintable uint256, blockTimestamp uint256, caller address) +func (_TokenPorter *TokenPorterFilterer) WatchImportReceiptLog(opts *bind.WatchOpts, sink chan<- *TokenPorterImportReceiptLog, destinationRecipientAddr []common.Address, importSequence []*big.Int, currentHash [][32]byte) (event.Subscription, error) { + + var destinationRecipientAddrRule []interface{} + for _, destinationRecipientAddrItem := range destinationRecipientAddr { + destinationRecipientAddrRule = append(destinationRecipientAddrRule, destinationRecipientAddrItem) + } + + var importSequenceRule []interface{} + for _, importSequenceItem := range importSequence { + importSequenceRule = append(importSequenceRule, importSequenceItem) + } + var currentHashRule []interface{} + for _, currentHashItem := range currentHash { + currentHashRule = append(currentHashRule, currentHashItem) + } + + logs, sub, err := _TokenPorter.contract.WatchLogs(opts, "ImportReceiptLog", destinationRecipientAddrRule, importSequenceRule, currentHashRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TokenPorterImportReceiptLog) + if err := _TokenPorter.contract.UnpackLog(event, "ImportReceiptLog", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// TokenPorterOwnershipChangedIterator is returned from FilterOwnershipChanged and is used to iterate over the raw logs and unpacked data for OwnershipChanged events raised by the TokenPorter contract. +type TokenPorterOwnershipChangedIterator struct { + Event *TokenPorterOwnershipChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TokenPorterOwnershipChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TokenPorterOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TokenPorterOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TokenPorterOwnershipChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TokenPorterOwnershipChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TokenPorterOwnershipChanged represents a OwnershipChanged event raised by the TokenPorter contract. +type TokenPorterOwnershipChanged struct { + PrevOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipChanged is a free log retrieval operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_TokenPorter *TokenPorterFilterer) FilterOwnershipChanged(opts *bind.FilterOpts, prevOwner []common.Address, newOwner []common.Address) (*TokenPorterOwnershipChangedIterator, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _TokenPorter.contract.FilterLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &TokenPorterOwnershipChangedIterator{contract: _TokenPorter.contract, event: "OwnershipChanged", logs: logs, sub: sub}, nil +} + +// WatchOwnershipChanged is a free log subscription operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_TokenPorter *TokenPorterFilterer) WatchOwnershipChanged(opts *bind.WatchOpts, sink chan<- *TokenPorterOwnershipChanged, prevOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _TokenPorter.contract.WatchLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TokenPorterOwnershipChanged) + if err := _TokenPorter.contract.UnpackLog(event, "OwnershipChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ValidatorABI is the input ABI used to generate the binding from. +const ValidatorABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"validatorNum\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenPorter\",\"type\":\"address\"}],\"name\":\"setTokenPorter\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"metToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"changeOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"validators\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"validateHash\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"threshold\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"invalidateHash\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenPorter\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"hashClaimed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_originChain\",\"type\":\"bytes8\"},{\"name\":\"_destinationChain\",\"type\":\"bytes8\"},{\"name\":\"_addresses\",\"type\":\"address[]\"},{\"name\":\"_extraData\",\"type\":\"bytes\"},{\"name\":\"_burnHashes\",\"type\":\"bytes32[]\"},{\"name\":\"_supplyOnAllChain\",\"type\":\"uint256[]\"},{\"name\":\"_importData\",\"type\":\"uint256[]\"},{\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"isReceiptClaimable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"hashClaimable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_validator1\",\"type\":\"address\"},{\"name\":\"_validator2\",\"type\":\"address\"},{\"name\":\"_validator3\",\"type\":\"address\"}],\"name\":\"initValidator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"hashAttestations\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"claimHash\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"isValid\",\"type\":\"bool\"}],\"name\":\"LogAttestation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipChanged\",\"type\":\"event\"}]" + +// ValidatorBin is the compiled bytecode used for deploying new contracts. +const ValidatorBin = `0x60806040526009805460ff1916600217905560008054600160a060020a03191633179055610d47806100326000396000f3006080604052600436106101065763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c3daf07811461010b5780631987b887146101425780632aafe9e7146101775780632af4c31e146101a857806335aa2e44146101c95780633ee3f499146101e157806342cde4e8146101fb57806345af7ceb146102105780634892f0af146102285780634bf2500d1461023d57806379ba50971461025557806386936ed51461026a5780638da5cb5b1461040e5780639d599cbf14610423578063bf2699e71461043b578063c69ba44114610468578063d4ee1d901461048c578063f5affc60146104a1578063facd743b146104b9575b600080fd5b34801561011757600080fd5b5061012c600160a060020a03600435166104da565b6040805160ff9092168252519081900360200190f35b34801561014e57600080fd5b50610163600160a060020a03600435166104ef565b604080519115158252519081900360200190f35b34801561018357600080fd5b5061018c61054e565b60408051600160a060020a039092168252519081900360200190f35b3480156101b457600080fd5b50610163600160a060020a036004351661055d565b3480156101d557600080fd5b5061018c6004356105c0565b3480156101ed57600080fd5b506101f96004356105e8565b005b34801561020757600080fd5b5061012c610664565b34801561021c57600080fd5b506101f960043561066d565b34801561023457600080fd5b5061018c6106e5565b34801561024957600080fd5b506101636004356106f4565b34801561026157600080fd5b50610163610709565b34801561027657600080fd5b50604080516020600460443581810135838102808601850190965280855261016395833577ffffffffffffffffffffffffffffffffffffffffffffffff19908116966024803590921696369695606495929493019282918501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a998901989297509082019550935083925085019084908082843750506040805187358901803560208181028481018201909552818452989b9a99890198929750908201955093508392508501908490808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506107959650505050505050565b34801561041a57600080fd5b5061018c6109d1565b34801561042f57600080fd5b506101636004356109e0565b34801561044757600080fd5b506101f9600160a060020a0360043581169060243581169060443516610a9b565b34801561047457600080fd5b50610163600435600160a060020a0360243516610c52565b34801561049857600080fd5b5061018c610c72565b3480156104ad57600080fd5b506101f9600435610c81565b3480156104c557600080fd5b50610163600160a060020a0360043516610cc7565b60046020526000908152604090205460ff1681565b60008054600160a060020a0316331461050757600080fd5b600160a060020a038216151561051c57600080fd5b5060078054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b600654600160a060020a031681565b60008054600160a060020a0316331461057557600080fd5b600054600160a060020a038381169116141561059057600080fd5b5060018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116178155919050565b60058054829081106105ce57fe5b600091825260209091200154600160a060020a0316905081565b3360009081526003602052604090205460ff16151561060657600080fd5b60008181526002602090815260408083203380855290835292819020805460ff191660019081179091558151908152905184927ffe764dcbebeb35937aa8a11cf0f1f95e60b25fe4574742ea6e89943e315eb98a928290030190a350565b60095460ff1681565b3360009081526003602052604090205460ff16151561068b57600080fd5b600081815260026020908152604080832033808552908352818420805460ff1916905581519384529051909284927ffe764dcbebeb35937aa8a11cf0f1f95e60b25fe4574742ea6e89943e315eb98a92918290030190a350565b600754600160a060020a031681565b60086020526000908152604090205460ff1681565b600154600090600160a060020a0316331461072357600080fd5b60015460008054604051600160a060020a0393841693909116917f0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b91a350600180546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b90565b60008260008151811015156107a657fe5b9060200190602002015189898960008151811015156107c157fe5b906020019060200201518a60018151811015156107da57fe5b906020019060200201518760018151811015156107f357fe5b9060200190602002015188600381518110151561080c57fe5b9060200190602002015189600481518110151561082557fe5b906020019060200201518a600581518110151561083e57fe5b906020019060200201518c600081518110151561085757fe5b906020019060200201518f8f600081518110151561087157fe5b60209081029091018101516040518d815277ffffffffffffffffffffffffffffffffffffffffffffffff19808e16828501528c1660288201526c01000000000000000000000000600160a060020a03808d16820260308401528b1602604482015260588101899052607881018890526098810187905260b8810186905260d8810185905283519192909160f88301918501908083835b602083106109265780518252601f199092019160209182019101610907565b6001836020036101000a03801982511681845116808217855250505050505090500182600019166000191681526020019c5050505050505050505050505060405180910390206000191685600181518110151561097f57fe5b602090810290910101511461099357600080fd5b6109b48560018151811015156109a557fe5b906020019060200201516109e0565b156109c1575060016109c5565b5060005b98975050505050505050565b600054600160a060020a031681565b6000818152600860205260408120548190819060ff1615610a045760009250610a94565b5060009050805b60055460ff82161015610a765760008481526002602052604081206005805491929160ff8516908110610a3a57fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff1615610a6e576001909101905b600101610a0b565b60095460ff90811690831610610a8f5760019250610a94565b600092505b5050919050565b60008054600160a060020a03163314610ab357600080fd5b5060005b60055460ff82161015610b50576003600060058360ff16815481101515610ada57fe5b6000918252602080832090910154600160a060020a031683528201929092526040018120805460ff1916905560058054600492919060ff8516908110610b1c57fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020805460ff19169055600101610ab7565b610b5c60056000610cdc565b5060058054600181810183557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db09182018054600160a060020a0397881673ffffffffffffffffffffffffffffffffffffffff1991821681179092558454808401865584018054978916978216881790558454808401909555939092018054949096169390921683179094556000848152600360209081526040808320805460ff199081168617909155868452818420805482168617905585845281842080548216861790559683526004909152808220805487169055938152838120805486169092179091559081522080549091166002179055565b600260209081526000928352604080842090915290825290205460ff1681565b600154600160a060020a031681565b600754600160a060020a03163314610c9857600080fd5b610ca1816109e0565b1515610cac57600080fd5b6000908152600860205260409020805460ff19166001179055565b60036020526000908152604090205460ff1681565b5080546000825590600052602060002090810190610cfa9190610cfd565b50565b61079291905b80821115610d175760008155600101610d03565b50905600a165627a7a72305820932a41707d868acbdd5686d524d7b2308d84e188d2a9f85ab06a250c472be9350029` + +// DeployValidator deploys a new Ethereum contract, binding an instance of Validator to it. +func DeployValidator(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Validator, error) { + parsed, err := abi.JSON(strings.NewReader(ValidatorABI)) + if err != nil { + return common.Address{}, nil, nil, err + } + address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(ValidatorBin), backend) + if err != nil { + return common.Address{}, nil, nil, err + } + return address, tx, &Validator{ValidatorCaller: ValidatorCaller{contract: contract}, ValidatorTransactor: ValidatorTransactor{contract: contract}, ValidatorFilterer: ValidatorFilterer{contract: contract}}, nil +} + +// Validator is an auto generated Go binding around an Ethereum contract. +type Validator struct { + ValidatorCaller // Read-only binding to the contract + ValidatorTransactor // Write-only binding to the contract + ValidatorFilterer // Log filterer for contract events +} + +// ValidatorCaller is an auto generated read-only Go binding around an Ethereum contract. +type ValidatorCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ValidatorTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ValidatorTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ValidatorFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ValidatorFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ValidatorSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ValidatorSession struct { + Contract *Validator // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ValidatorCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ValidatorCallerSession struct { + Contract *ValidatorCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ValidatorTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ValidatorTransactorSession struct { + Contract *ValidatorTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ValidatorRaw is an auto generated low-level Go binding around an Ethereum contract. +type ValidatorRaw struct { + Contract *Validator // Generic contract binding to access the raw methods on +} + +// ValidatorCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ValidatorCallerRaw struct { + Contract *ValidatorCaller // Generic read-only contract binding to access the raw methods on +} + +// ValidatorTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ValidatorTransactorRaw struct { + Contract *ValidatorTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewValidator creates a new instance of Validator, bound to a specific deployed contract. +func NewValidator(address common.Address, backend bind.ContractBackend) (*Validator, error) { + contract, err := bindValidator(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &Validator{ValidatorCaller: ValidatorCaller{contract: contract}, ValidatorTransactor: ValidatorTransactor{contract: contract}, ValidatorFilterer: ValidatorFilterer{contract: contract}}, nil +} + +// NewValidatorCaller creates a new read-only instance of Validator, bound to a specific deployed contract. +func NewValidatorCaller(address common.Address, caller bind.ContractCaller) (*ValidatorCaller, error) { + contract, err := bindValidator(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ValidatorCaller{contract: contract}, nil +} + +// NewValidatorTransactor creates a new write-only instance of Validator, bound to a specific deployed contract. +func NewValidatorTransactor(address common.Address, transactor bind.ContractTransactor) (*ValidatorTransactor, error) { + contract, err := bindValidator(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ValidatorTransactor{contract: contract}, nil +} + +// NewValidatorFilterer creates a new log filterer instance of Validator, bound to a specific deployed contract. +func NewValidatorFilterer(address common.Address, filterer bind.ContractFilterer) (*ValidatorFilterer, error) { + contract, err := bindValidator(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ValidatorFilterer{contract: contract}, nil +} + +// bindValidator binds a generic wrapper to an already deployed contract. +func bindValidator(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(ValidatorABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Validator *ValidatorRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Validator.Contract.ValidatorCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Validator *ValidatorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Validator.Contract.ValidatorTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Validator *ValidatorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Validator.Contract.ValidatorTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_Validator *ValidatorCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error { + return _Validator.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_Validator *ValidatorTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Validator.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_Validator *ValidatorTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) { + return _Validator.Contract.contract.Transact(opts, method, params...) +} + +// HashAttestations is a free data retrieval call binding the contract method 0xc69ba441. +// +// Solidity: function hashAttestations( bytes32, address) constant returns(bool) +func (_Validator *ValidatorCaller) HashAttestations(opts *bind.CallOpts, arg0 [32]byte, arg1 common.Address) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _Validator.contract.Call(opts, out, "hashAttestations", arg0, arg1) + return *ret0, err +} + +// HashAttestations is a free data retrieval call binding the contract method 0xc69ba441. +// +// Solidity: function hashAttestations( bytes32, address) constant returns(bool) +func (_Validator *ValidatorSession) HashAttestations(arg0 [32]byte, arg1 common.Address) (bool, error) { + return _Validator.Contract.HashAttestations(&_Validator.CallOpts, arg0, arg1) +} + +// HashAttestations is a free data retrieval call binding the contract method 0xc69ba441. +// +// Solidity: function hashAttestations( bytes32, address) constant returns(bool) +func (_Validator *ValidatorCallerSession) HashAttestations(arg0 [32]byte, arg1 common.Address) (bool, error) { + return _Validator.Contract.HashAttestations(&_Validator.CallOpts, arg0, arg1) +} + +// HashClaimable is a free data retrieval call binding the contract method 0x9d599cbf. +// +// Solidity: function hashClaimable(hash bytes32) constant returns(bool) +func (_Validator *ValidatorCaller) HashClaimable(opts *bind.CallOpts, hash [32]byte) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _Validator.contract.Call(opts, out, "hashClaimable", hash) + return *ret0, err +} + +// HashClaimable is a free data retrieval call binding the contract method 0x9d599cbf. +// +// Solidity: function hashClaimable(hash bytes32) constant returns(bool) +func (_Validator *ValidatorSession) HashClaimable(hash [32]byte) (bool, error) { + return _Validator.Contract.HashClaimable(&_Validator.CallOpts, hash) +} + +// HashClaimable is a free data retrieval call binding the contract method 0x9d599cbf. +// +// Solidity: function hashClaimable(hash bytes32) constant returns(bool) +func (_Validator *ValidatorCallerSession) HashClaimable(hash [32]byte) (bool, error) { + return _Validator.Contract.HashClaimable(&_Validator.CallOpts, hash) +} + +// HashClaimed is a free data retrieval call binding the contract method 0x4bf2500d. +// +// Solidity: function hashClaimed( bytes32) constant returns(bool) +func (_Validator *ValidatorCaller) HashClaimed(opts *bind.CallOpts, arg0 [32]byte) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _Validator.contract.Call(opts, out, "hashClaimed", arg0) + return *ret0, err +} + +// HashClaimed is a free data retrieval call binding the contract method 0x4bf2500d. +// +// Solidity: function hashClaimed( bytes32) constant returns(bool) +func (_Validator *ValidatorSession) HashClaimed(arg0 [32]byte) (bool, error) { + return _Validator.Contract.HashClaimed(&_Validator.CallOpts, arg0) +} + +// HashClaimed is a free data retrieval call binding the contract method 0x4bf2500d. +// +// Solidity: function hashClaimed( bytes32) constant returns(bool) +func (_Validator *ValidatorCallerSession) HashClaimed(arg0 [32]byte) (bool, error) { + return _Validator.Contract.HashClaimed(&_Validator.CallOpts, arg0) +} + +// IsReceiptClaimable is a free data retrieval call binding the contract method 0x86936ed5. +// +// Solidity: function isReceiptClaimable(_originChain bytes8, _destinationChain bytes8, _addresses address[], _extraData bytes, _burnHashes bytes32[], _supplyOnAllChain uint256[], _importData uint256[], _proof bytes) constant returns(bool) +func (_Validator *ValidatorCaller) IsReceiptClaimable(opts *bind.CallOpts, _originChain [8]byte, _destinationChain [8]byte, _addresses []common.Address, _extraData []byte, _burnHashes [][32]byte, _supplyOnAllChain []*big.Int, _importData []*big.Int, _proof []byte) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _Validator.contract.Call(opts, out, "isReceiptClaimable", _originChain, _destinationChain, _addresses, _extraData, _burnHashes, _supplyOnAllChain, _importData, _proof) + return *ret0, err +} + +// IsReceiptClaimable is a free data retrieval call binding the contract method 0x86936ed5. +// +// Solidity: function isReceiptClaimable(_originChain bytes8, _destinationChain bytes8, _addresses address[], _extraData bytes, _burnHashes bytes32[], _supplyOnAllChain uint256[], _importData uint256[], _proof bytes) constant returns(bool) +func (_Validator *ValidatorSession) IsReceiptClaimable(_originChain [8]byte, _destinationChain [8]byte, _addresses []common.Address, _extraData []byte, _burnHashes [][32]byte, _supplyOnAllChain []*big.Int, _importData []*big.Int, _proof []byte) (bool, error) { + return _Validator.Contract.IsReceiptClaimable(&_Validator.CallOpts, _originChain, _destinationChain, _addresses, _extraData, _burnHashes, _supplyOnAllChain, _importData, _proof) +} + +// IsReceiptClaimable is a free data retrieval call binding the contract method 0x86936ed5. +// +// Solidity: function isReceiptClaimable(_originChain bytes8, _destinationChain bytes8, _addresses address[], _extraData bytes, _burnHashes bytes32[], _supplyOnAllChain uint256[], _importData uint256[], _proof bytes) constant returns(bool) +func (_Validator *ValidatorCallerSession) IsReceiptClaimable(_originChain [8]byte, _destinationChain [8]byte, _addresses []common.Address, _extraData []byte, _burnHashes [][32]byte, _supplyOnAllChain []*big.Int, _importData []*big.Int, _proof []byte) (bool, error) { + return _Validator.Contract.IsReceiptClaimable(&_Validator.CallOpts, _originChain, _destinationChain, _addresses, _extraData, _burnHashes, _supplyOnAllChain, _importData, _proof) +} + +// IsValidator is a free data retrieval call binding the contract method 0xfacd743b. +// +// Solidity: function isValidator( address) constant returns(bool) +func (_Validator *ValidatorCaller) IsValidator(opts *bind.CallOpts, arg0 common.Address) (bool, error) { + var ( + ret0 = new(bool) + ) + out := ret0 + err := _Validator.contract.Call(opts, out, "isValidator", arg0) + return *ret0, err +} + +// IsValidator is a free data retrieval call binding the contract method 0xfacd743b. +// +// Solidity: function isValidator( address) constant returns(bool) +func (_Validator *ValidatorSession) IsValidator(arg0 common.Address) (bool, error) { + return _Validator.Contract.IsValidator(&_Validator.CallOpts, arg0) +} + +// IsValidator is a free data retrieval call binding the contract method 0xfacd743b. +// +// Solidity: function isValidator( address) constant returns(bool) +func (_Validator *ValidatorCallerSession) IsValidator(arg0 common.Address) (bool, error) { + return _Validator.Contract.IsValidator(&_Validator.CallOpts, arg0) +} + +// MetToken is a free data retrieval call binding the contract method 0x2aafe9e7. +// +// Solidity: function metToken() constant returns(address) +func (_Validator *ValidatorCaller) MetToken(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Validator.contract.Call(opts, out, "metToken") + return *ret0, err +} + +// MetToken is a free data retrieval call binding the contract method 0x2aafe9e7. +// +// Solidity: function metToken() constant returns(address) +func (_Validator *ValidatorSession) MetToken() (common.Address, error) { + return _Validator.Contract.MetToken(&_Validator.CallOpts) +} + +// MetToken is a free data retrieval call binding the contract method 0x2aafe9e7. +// +// Solidity: function metToken() constant returns(address) +func (_Validator *ValidatorCallerSession) MetToken() (common.Address, error) { + return _Validator.Contract.MetToken(&_Validator.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Validator *ValidatorCaller) NewOwner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Validator.contract.Call(opts, out, "newOwner") + return *ret0, err +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Validator *ValidatorSession) NewOwner() (common.Address, error) { + return _Validator.Contract.NewOwner(&_Validator.CallOpts) +} + +// NewOwner is a free data retrieval call binding the contract method 0xd4ee1d90. +// +// Solidity: function newOwner() constant returns(address) +func (_Validator *ValidatorCallerSession) NewOwner() (common.Address, error) { + return _Validator.Contract.NewOwner(&_Validator.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Validator *ValidatorCaller) Owner(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Validator.contract.Call(opts, out, "owner") + return *ret0, err +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Validator *ValidatorSession) Owner() (common.Address, error) { + return _Validator.Contract.Owner(&_Validator.CallOpts) +} + +// Owner is a free data retrieval call binding the contract method 0x8da5cb5b. +// +// Solidity: function owner() constant returns(address) +func (_Validator *ValidatorCallerSession) Owner() (common.Address, error) { + return _Validator.Contract.Owner(&_Validator.CallOpts) +} + +// Threshold is a free data retrieval call binding the contract method 0x42cde4e8. +// +// Solidity: function threshold() constant returns(uint8) +func (_Validator *ValidatorCaller) Threshold(opts *bind.CallOpts) (uint8, error) { + var ( + ret0 = new(uint8) + ) + out := ret0 + err := _Validator.contract.Call(opts, out, "threshold") + return *ret0, err +} + +// Threshold is a free data retrieval call binding the contract method 0x42cde4e8. +// +// Solidity: function threshold() constant returns(uint8) +func (_Validator *ValidatorSession) Threshold() (uint8, error) { + return _Validator.Contract.Threshold(&_Validator.CallOpts) +} + +// Threshold is a free data retrieval call binding the contract method 0x42cde4e8. +// +// Solidity: function threshold() constant returns(uint8) +func (_Validator *ValidatorCallerSession) Threshold() (uint8, error) { + return _Validator.Contract.Threshold(&_Validator.CallOpts) +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_Validator *ValidatorCaller) TokenPorter(opts *bind.CallOpts) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Validator.contract.Call(opts, out, "tokenPorter") + return *ret0, err +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_Validator *ValidatorSession) TokenPorter() (common.Address, error) { + return _Validator.Contract.TokenPorter(&_Validator.CallOpts) +} + +// TokenPorter is a free data retrieval call binding the contract method 0x4892f0af. +// +// Solidity: function tokenPorter() constant returns(address) +func (_Validator *ValidatorCallerSession) TokenPorter() (common.Address, error) { + return _Validator.Contract.TokenPorter(&_Validator.CallOpts) +} + +// ValidatorNum is a free data retrieval call binding the contract method 0x0c3daf07. +// +// Solidity: function validatorNum( address) constant returns(uint8) +func (_Validator *ValidatorCaller) ValidatorNum(opts *bind.CallOpts, arg0 common.Address) (uint8, error) { + var ( + ret0 = new(uint8) + ) + out := ret0 + err := _Validator.contract.Call(opts, out, "validatorNum", arg0) + return *ret0, err +} + +// ValidatorNum is a free data retrieval call binding the contract method 0x0c3daf07. +// +// Solidity: function validatorNum( address) constant returns(uint8) +func (_Validator *ValidatorSession) ValidatorNum(arg0 common.Address) (uint8, error) { + return _Validator.Contract.ValidatorNum(&_Validator.CallOpts, arg0) +} + +// ValidatorNum is a free data retrieval call binding the contract method 0x0c3daf07. +// +// Solidity: function validatorNum( address) constant returns(uint8) +func (_Validator *ValidatorCallerSession) ValidatorNum(arg0 common.Address) (uint8, error) { + return _Validator.Contract.ValidatorNum(&_Validator.CallOpts, arg0) +} + +// Validators is a free data retrieval call binding the contract method 0x35aa2e44. +// +// Solidity: function validators( uint256) constant returns(address) +func (_Validator *ValidatorCaller) Validators(opts *bind.CallOpts, arg0 *big.Int) (common.Address, error) { + var ( + ret0 = new(common.Address) + ) + out := ret0 + err := _Validator.contract.Call(opts, out, "validators", arg0) + return *ret0, err +} + +// Validators is a free data retrieval call binding the contract method 0x35aa2e44. +// +// Solidity: function validators( uint256) constant returns(address) +func (_Validator *ValidatorSession) Validators(arg0 *big.Int) (common.Address, error) { + return _Validator.Contract.Validators(&_Validator.CallOpts, arg0) +} + +// Validators is a free data retrieval call binding the contract method 0x35aa2e44. +// +// Solidity: function validators( uint256) constant returns(address) +func (_Validator *ValidatorCallerSession) Validators(arg0 *big.Int) (common.Address, error) { + return _Validator.Contract.Validators(&_Validator.CallOpts, arg0) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Validator *ValidatorTransactor) AcceptOwnership(opts *bind.TransactOpts) (*types.Transaction, error) { + return _Validator.contract.Transact(opts, "acceptOwnership") +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Validator *ValidatorSession) AcceptOwnership() (*types.Transaction, error) { + return _Validator.Contract.AcceptOwnership(&_Validator.TransactOpts) +} + +// AcceptOwnership is a paid mutator transaction binding the contract method 0x79ba5097. +// +// Solidity: function acceptOwnership() returns(bool) +func (_Validator *ValidatorTransactorSession) AcceptOwnership() (*types.Transaction, error) { + return _Validator.Contract.AcceptOwnership(&_Validator.TransactOpts) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Validator *ValidatorTransactor) ChangeOwnership(opts *bind.TransactOpts, _newOwner common.Address) (*types.Transaction, error) { + return _Validator.contract.Transact(opts, "changeOwnership", _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Validator *ValidatorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Validator.Contract.ChangeOwnership(&_Validator.TransactOpts, _newOwner) +} + +// ChangeOwnership is a paid mutator transaction binding the contract method 0x2af4c31e. +// +// Solidity: function changeOwnership(_newOwner address) returns(bool) +func (_Validator *ValidatorTransactorSession) ChangeOwnership(_newOwner common.Address) (*types.Transaction, error) { + return _Validator.Contract.ChangeOwnership(&_Validator.TransactOpts, _newOwner) +} + +// ClaimHash is a paid mutator transaction binding the contract method 0xf5affc60. +// +// Solidity: function claimHash(hash bytes32) returns() +func (_Validator *ValidatorTransactor) ClaimHash(opts *bind.TransactOpts, hash [32]byte) (*types.Transaction, error) { + return _Validator.contract.Transact(opts, "claimHash", hash) +} + +// ClaimHash is a paid mutator transaction binding the contract method 0xf5affc60. +// +// Solidity: function claimHash(hash bytes32) returns() +func (_Validator *ValidatorSession) ClaimHash(hash [32]byte) (*types.Transaction, error) { + return _Validator.Contract.ClaimHash(&_Validator.TransactOpts, hash) +} + +// ClaimHash is a paid mutator transaction binding the contract method 0xf5affc60. +// +// Solidity: function claimHash(hash bytes32) returns() +func (_Validator *ValidatorTransactorSession) ClaimHash(hash [32]byte) (*types.Transaction, error) { + return _Validator.Contract.ClaimHash(&_Validator.TransactOpts, hash) +} + +// InitValidator is a paid mutator transaction binding the contract method 0xbf2699e7. +// +// Solidity: function initValidator(_validator1 address, _validator2 address, _validator3 address) returns() +func (_Validator *ValidatorTransactor) InitValidator(opts *bind.TransactOpts, _validator1 common.Address, _validator2 common.Address, _validator3 common.Address) (*types.Transaction, error) { + return _Validator.contract.Transact(opts, "initValidator", _validator1, _validator2, _validator3) +} + +// InitValidator is a paid mutator transaction binding the contract method 0xbf2699e7. +// +// Solidity: function initValidator(_validator1 address, _validator2 address, _validator3 address) returns() +func (_Validator *ValidatorSession) InitValidator(_validator1 common.Address, _validator2 common.Address, _validator3 common.Address) (*types.Transaction, error) { + return _Validator.Contract.InitValidator(&_Validator.TransactOpts, _validator1, _validator2, _validator3) +} + +// InitValidator is a paid mutator transaction binding the contract method 0xbf2699e7. +// +// Solidity: function initValidator(_validator1 address, _validator2 address, _validator3 address) returns() +func (_Validator *ValidatorTransactorSession) InitValidator(_validator1 common.Address, _validator2 common.Address, _validator3 common.Address) (*types.Transaction, error) { + return _Validator.Contract.InitValidator(&_Validator.TransactOpts, _validator1, _validator2, _validator3) +} + +// InvalidateHash is a paid mutator transaction binding the contract method 0x45af7ceb. +// +// Solidity: function invalidateHash(hash bytes32) returns() +func (_Validator *ValidatorTransactor) InvalidateHash(opts *bind.TransactOpts, hash [32]byte) (*types.Transaction, error) { + return _Validator.contract.Transact(opts, "invalidateHash", hash) +} + +// InvalidateHash is a paid mutator transaction binding the contract method 0x45af7ceb. +// +// Solidity: function invalidateHash(hash bytes32) returns() +func (_Validator *ValidatorSession) InvalidateHash(hash [32]byte) (*types.Transaction, error) { + return _Validator.Contract.InvalidateHash(&_Validator.TransactOpts, hash) +} + +// InvalidateHash is a paid mutator transaction binding the contract method 0x45af7ceb. +// +// Solidity: function invalidateHash(hash bytes32) returns() +func (_Validator *ValidatorTransactorSession) InvalidateHash(hash [32]byte) (*types.Transaction, error) { + return _Validator.Contract.InvalidateHash(&_Validator.TransactOpts, hash) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_Validator *ValidatorTransactor) SetTokenPorter(opts *bind.TransactOpts, _tokenPorter common.Address) (*types.Transaction, error) { + return _Validator.contract.Transact(opts, "setTokenPorter", _tokenPorter) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_Validator *ValidatorSession) SetTokenPorter(_tokenPorter common.Address) (*types.Transaction, error) { + return _Validator.Contract.SetTokenPorter(&_Validator.TransactOpts, _tokenPorter) +} + +// SetTokenPorter is a paid mutator transaction binding the contract method 0x1987b887. +// +// Solidity: function setTokenPorter(_tokenPorter address) returns(bool) +func (_Validator *ValidatorTransactorSession) SetTokenPorter(_tokenPorter common.Address) (*types.Transaction, error) { + return _Validator.Contract.SetTokenPorter(&_Validator.TransactOpts, _tokenPorter) +} + +// ValidateHash is a paid mutator transaction binding the contract method 0x3ee3f499. +// +// Solidity: function validateHash(hash bytes32) returns() +func (_Validator *ValidatorTransactor) ValidateHash(opts *bind.TransactOpts, hash [32]byte) (*types.Transaction, error) { + return _Validator.contract.Transact(opts, "validateHash", hash) +} + +// ValidateHash is a paid mutator transaction binding the contract method 0x3ee3f499. +// +// Solidity: function validateHash(hash bytes32) returns() +func (_Validator *ValidatorSession) ValidateHash(hash [32]byte) (*types.Transaction, error) { + return _Validator.Contract.ValidateHash(&_Validator.TransactOpts, hash) +} + +// ValidateHash is a paid mutator transaction binding the contract method 0x3ee3f499. +// +// Solidity: function validateHash(hash bytes32) returns() +func (_Validator *ValidatorTransactorSession) ValidateHash(hash [32]byte) (*types.Transaction, error) { + return _Validator.Contract.ValidateHash(&_Validator.TransactOpts, hash) +} + +// ValidatorLogAttestationIterator is returned from FilterLogAttestation and is used to iterate over the raw logs and unpacked data for LogAttestation events raised by the Validator contract. +type ValidatorLogAttestationIterator struct { + Event *ValidatorLogAttestation // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ValidatorLogAttestationIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ValidatorLogAttestation) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ValidatorLogAttestation) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ValidatorLogAttestationIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ValidatorLogAttestationIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ValidatorLogAttestation represents a LogAttestation event raised by the Validator contract. +type ValidatorLogAttestation struct { + Hash [32]byte + Who common.Address + IsValid bool + Raw types.Log // Blockchain specific contextual infos +} + +// FilterLogAttestation is a free log retrieval operation binding the contract event 0xfe764dcbebeb35937aa8a11cf0f1f95e60b25fe4574742ea6e89943e315eb98a. +// +// Solidity: e LogAttestation(hash indexed bytes32, who indexed address, isValid bool) +func (_Validator *ValidatorFilterer) FilterLogAttestation(opts *bind.FilterOpts, hash [][32]byte, who []common.Address) (*ValidatorLogAttestationIterator, error) { + + var hashRule []interface{} + for _, hashItem := range hash { + hashRule = append(hashRule, hashItem) + } + var whoRule []interface{} + for _, whoItem := range who { + whoRule = append(whoRule, whoItem) + } + + logs, sub, err := _Validator.contract.FilterLogs(opts, "LogAttestation", hashRule, whoRule) + if err != nil { + return nil, err + } + return &ValidatorLogAttestationIterator{contract: _Validator.contract, event: "LogAttestation", logs: logs, sub: sub}, nil +} + +// WatchLogAttestation is a free log subscription operation binding the contract event 0xfe764dcbebeb35937aa8a11cf0f1f95e60b25fe4574742ea6e89943e315eb98a. +// +// Solidity: e LogAttestation(hash indexed bytes32, who indexed address, isValid bool) +func (_Validator *ValidatorFilterer) WatchLogAttestation(opts *bind.WatchOpts, sink chan<- *ValidatorLogAttestation, hash [][32]byte, who []common.Address) (event.Subscription, error) { + + var hashRule []interface{} + for _, hashItem := range hash { + hashRule = append(hashRule, hashItem) + } + var whoRule []interface{} + for _, whoItem := range who { + whoRule = append(whoRule, whoItem) + } + + logs, sub, err := _Validator.contract.WatchLogs(opts, "LogAttestation", hashRule, whoRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ValidatorLogAttestation) + if err := _Validator.contract.UnpackLog(event, "LogAttestation", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ValidatorOwnershipChangedIterator is returned from FilterOwnershipChanged and is used to iterate over the raw logs and unpacked data for OwnershipChanged events raised by the Validator contract. +type ValidatorOwnershipChangedIterator struct { + Event *ValidatorOwnershipChanged // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ValidatorOwnershipChangedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ValidatorOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ValidatorOwnershipChanged) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ValidatorOwnershipChangedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ValidatorOwnershipChangedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ValidatorOwnershipChanged represents a OwnershipChanged event raised by the Validator contract. +type ValidatorOwnershipChanged struct { + PrevOwner common.Address + NewOwner common.Address + Raw types.Log // Blockchain specific contextual infos +} + +// FilterOwnershipChanged is a free log retrieval operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Validator *ValidatorFilterer) FilterOwnershipChanged(opts *bind.FilterOpts, prevOwner []common.Address, newOwner []common.Address) (*ValidatorOwnershipChangedIterator, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Validator.contract.FilterLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return &ValidatorOwnershipChangedIterator{contract: _Validator.contract, event: "OwnershipChanged", logs: logs, sub: sub}, nil +} + +// WatchOwnershipChanged is a free log subscription operation binding the contract event 0x0384899bd253d83b23daa4d29aaa2efe0563d1132b43101e9ad667235aeb951b. +// +// Solidity: e OwnershipChanged(prevOwner indexed address, newOwner indexed address) +func (_Validator *ValidatorFilterer) WatchOwnershipChanged(opts *bind.WatchOpts, sink chan<- *ValidatorOwnershipChanged, prevOwner []common.Address, newOwner []common.Address) (event.Subscription, error) { + + var prevOwnerRule []interface{} + for _, prevOwnerItem := range prevOwner { + prevOwnerRule = append(prevOwnerRule, prevOwnerItem) + } + var newOwnerRule []interface{} + for _, newOwnerItem := range newOwner { + newOwnerRule = append(newOwnerRule, newOwnerItem) + } + + logs, sub, err := _Validator.contract.WatchLogs(opts, "OwnershipChanged", prevOwnerRule, newOwnerRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ValidatorOwnershipChanged) + if err := _Validator.contract.UnpackLog(event, "OwnershipChanged", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} diff --git a/package.json b/package.json index 31d4656..47230b5 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "compile": "truffle compile", "migrate": "truffle migrate", "migrate:clean": "truffle migrate --reset", + "generate:go": "abigen --sol=./contracts/monolithic.sol --pkg=metronome > metronome.go", "solhint": "solhint contracts/*.sol", "eslint": "eslint test/*.js timed-tests/*.js", "ganache": "kill -9 $(lsof -ti :8545) & (ganache-cli -p 8545 -e 1000 -a 15 > /dev/null & truffle test) && kill -9 $(lsof -ti :8545)",