func (_Escrow *EscrowSession) AddTokensToTransaction(scriptHash [32]byte, value *big.Int) (*types.Transaction, error) {
	return _Escrow.Contract.AddTokensToTransaction(&_Escrow.TransactOpts, scriptHash, value)
}
AddTokensToTransaction is a paid mutator transaction binding the contract method 0xb719e280.

Solidity: function addTokensToTransaction(scriptHash bytes32, value uint256) returns()
package wallet
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"
)
const EscrowABI = "[{\"constant\":false,\"inputs\":[{\"name\":\"buyer\",\"type\":\"address\"},{\"name\":\"seller\",\"type\":\"address\"},{\"name\":\"moderator\",\"type\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint8\"},{\"name\":\"timeoutHours\",\"type\":\"uint32\"},{\"name\":\"scriptHash\",\"type\":\"bytes32\"},{\"name\":\"uniqueId\",\"type\":\"bytes20\"}],\"name\":\"addTransaction\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"scriptHash\",\"type\":\"bytes32\"}],\"name\":\"addFundsToTransaction\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"uniqueId\",\"type\":\"bytes20\"},{\"name\":\"threshold\",\"type\":\"uint8\"},{\"name\":\"timeoutHours\",\"type\":\"uint32\"},{\"name\":\"buyer\",\"type\":\"address\"},{\"name\":\"seller\",\"type\":\"address\"},{\"name\":\"moderator\",\"type\":\"address\"},{\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"calculateRedeemScriptHash\",\"outputs\":[{\"name\":\"hash\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"buyer\",\"type\":\"address\"},{\"name\":\"seller\",\"type\":\"address\"},{\"name\":\"moderator\",\"type\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint8\"},{\"name\":\"timeoutHours\",\"type\":\"uint32\"},{\"name\":\"scriptHash\",\"type\":\"bytes32\"},{\"name\":\"value\",\"type\":\"uint256\"},{\"name\":\"uniqueId\",\"type\":\"bytes20\"},{\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"addTokenTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"transactions\",\"outputs\":[{\"name\":\"scriptHash\",\"type\":\"bytes32\"},{\"name\":\"value\",\"type\":\"uint256\"},{\"name\":\"lastModified\",\"type\":\"uint256\"},{\"name\":\"status\",\"type\":\"uint8\"},{\"name\":\"transactionType\",\"type\":\"uint8\"},{\"name\":\"threshold\",\"type\":\"uint8\"},{\"name\":\"timeoutHours\",\"type\":\"uint32\"},{\"name\":\"buyer\",\"type\":\"address\"},{\"name\":\"seller\",\"type\":\"address\"},{\"name\":\"tokenAddress\",\"type\":\"address\"},{\"name\":\"moderator\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"scriptHash\",\"type\":\"bytes32\"},{\"name\":\"beneficiary\",\"type\":\"address\"}],\"name\":\"checkBeneficiary\",\"outputs\":[{\"name\":\"check\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"scriptHash\",\"type\":\"bytes32\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"addTokensToTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"transactionCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"partyAddress\",\"type\":\"address\"}],\"name\":\"getAllTransactionsForParty\",\"outputs\":[{\"name\":\"scriptHashes\",\"type\":\"bytes32[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sigV\",\"type\":\"uint8[]\"},{\"name\":\"sigR\",\"type\":\"bytes32[]\"},{\"name\":\"sigS\",\"type\":\"bytes32[]\"},{\"name\":\"scriptHash\",\"type\":\"bytes32\"},{\"name\":\"destinations\",\"type\":\"address[]\"},{\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"execute\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"scriptHash\",\"type\":\"bytes32\"},{\"name\":\"party\",\"type\":\"address\"}],\"name\":\"checkVote\",\"outputs\":[{\"name\":\"vote\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"partyVsTransaction\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"scriptHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"destinations\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"scriptHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"valueAdded\",\"type\":\"uint256\"}],\"name\":\"FundAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"scriptHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Funded\",\"type\":\"event\"}]=======openzeppelin-solidity/contracts/math/SafeMath.sol:SafeMath=======[]=======token/ITokenContract.sol:ITokenContract=======[{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"
const EscrowBin = `6080604052600060015534801561001557600080fd5b50614296806100256000396000f3006080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806323b6fd3f146100bf5780632d9ef96e1461017957806346fbcdeb1461019d57806357bced7614610292578063642f2eaf14610383578063b0550c66146104f4578063b719e2801461055d578063b77bf60014610598578063be84ceaf146105c3578063e4ec8b001461065b578063f078656214610704578063f5dbe09c1461076d575b600080fd5b610177600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803563ffffffff169060200190929190803560001916906020019092919080356bffffffffffffffffffffffff191690602001909291905050506107d6565b005b61019b6004803603810190808035600019169060200190929190505050610a35565b005b3480156101a957600080fd5b5061027460048036038101908080356bffffffffffffffffffffffff19169060200190929190803560ff169060200190929190803563ffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ec3565b60405180826000191660001916815260200191505060405180910390f35b34801561029e57600080fd5b50610381600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803563ffffffff16906020019092919080356000191690602001909291908035906020019092919080356bffffffffffffffffffffffff19169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061136f565b005b34801561038f57600080fd5b506103b2600480360381019080803560001916906020019092919050505061184f565b604051808c600019166000191681526020018b81526020018a81526020018960018111156103dc57fe5b60ff1681526020018860018111156103f057fe5b60ff1681526020018760ff1660ff1681526020018663ffffffff1663ffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019b50505050505050505050505060405180910390f35b34801561050057600080fd5b506105436004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611960565b604051808215151515815260200191505060405180910390f35b34801561056957600080fd5b506105966004803603810190808035600019169060200190929190803590602001909291905050506119d2565b005b3480156105a457600080fd5b506105ad6120b2565b6040518082815260200191505060405180910390f35b3480156105cf57600080fd5b50610604600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120b8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561064757808201518184015260208101905061062c565b505050509050019250505060405180910390f35b34801561066757600080fd5b506107026004803603810190808035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035906020019082018035906020019190919293919293908035600019169060200190929190803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050612153565b005b34801561071057600080fd5b506107536004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126b5565b604051808215151515815260200191505060405180910390f35b34801561077957600080fd5b506107b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612727565b60405180826000191660001916815260200191505060405180910390f35b81600080600083600019166000191681526020019081526020016000206001015414151561086c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5472616e73616374696f6e20657869737473000000000000000000000000000081525060200191505060405180910390fd5b87600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610912576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b87600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b6109cb8a8a8a8a8a8a348b600080612757565b3373ffffffffffffffffffffffffffffffffffffffff167fce7089d0668849fb9ca29778c0cbf1e764d9efb048d81fd71fb34c94f26db36886346040518083600019166000191681526020018281526020019250505060405180910390a250505050505050505050565b600081600080600083600019166000191681526020019081526020016000206001015414151515610ace576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737473000000000081525060200191505060405180910390fd5b8260006001811115610adc57fe5b600080836000191660001916815260200190815260200160002060030160009054906101000a900460ff166001811115610b1257fe5b141515610bad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f5472616e73616374696f6e2069732065697468657220696e206469737075746581526020017f206f722072656c6561736564207374617465000000000000000000000000000081525060400191505060405180910390fd5b836000806001811115610bbc57fe5b600080846000191660001916815260200190815260200160002060030160019054906101000a900460ff166001811115610bf257fe5b141515610c67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e73616374696f6e207479706520646f6573206e6f74206d617463680081525060200191505060405180910390fd5b85600080826000191660001916815260200190815260200160002060030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f54686520696e69746961746f72206f6620746865207472616e73616374696f6e81526020017f206973206e6f742062757965720000000000000000000000000000000000000081525060400191505060405180910390fd5b349550600086111515610de9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f56616c7565206d7573742062652067726561746572207468616e207a65726f2e81525060200191505060405180910390fd5b610e19866000808a60001916600019168152602001908152602001600020600101546130f190919063ffffffff16565b600080896000191660001916815260200190815260200160002060010181905550426000808960001916600019168152602001908152602001600020600201819055503373ffffffffffffffffffffffffffffffffffffffff167ff66fd2ae9e24a6a24b02e1b5b7512ffde5149a4176085fc0298ae228c9b9d72988886040518083600019166000191681526020018281526020019250505060405180910390a250505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110f578787878787873060405160200180886bffffffffffffffffffffffff19166bffffffffffffffffffffffff191681526014018760ff1660ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018663ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014019750505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156110db57805182526020820191506020810190506020830392506110b6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050611364565b878787878787308860405160200180896bffffffffffffffffffffffff19166bffffffffffffffffffffffff191681526014018860ff1660ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018763ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401985050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611334578051825260208201915060208101905060208303925061130f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090505b979650505050505050565b6000846000806000836000191660001916815260200190815260200160002060010154141515611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5472616e73616374696f6e20657869737473000000000000000000000000000081525060200191505060405180910390fd5b8a600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b8a600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611553576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b84600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f5a65726f2061646472657373207061737365640000000000000000000000000081525060200191505060405180910390fd5b61160c8e8e8e8e8e8e8e8e60018f612757565b8594508473ffffffffffffffffffffffffffffffffffffffff166323b872dd33308b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156116e657600080fd5b505af11580156116fa573d6000803e3d6000fd5b505050506040513d602081101561171057600080fd5b810190808051906020019092919050505015156117e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c8152602001807f546f6b656e207472616e73666572206661696c65642c206d6179626520796f7581526020017f20646964206e6f7420617070726f766520657363726f7720636f6e747261637481526020017f20746f207370656e64206f6e20626568616c66206f662062757965720000000081525060600191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fce7089d0668849fb9ca29778c0cbf1e764d9efb048d81fd71fb34c94f26db3688a8a6040518083600019166000191681526020018281526020019250505060405180910390a25050505050505050505050505050565b60006020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16908060030160019054906101000a900460ff16908060030160029054906101000a900460ff16908060030160039054906101000a900463ffffffff16908060030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508b565b6000806000846000191660001916815260200190815260200160002060090160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008083600080600083600019166000191681526020019081526020016000206001015414151515611a6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737473000000000081525060200191505060405180910390fd5b8460006001811115611a7a57fe5b600080836000191660001916815260200190815260200160002060030160009054906101000a900460ff166001811115611ab057fe5b141515611b4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f5472616e73616374696f6e2069732065697468657220696e206469737075746581526020017f206f722072656c6561736564207374617465000000000000000000000000000081525060400191505060405180910390fd5b856001806001811115611b5a57fe5b600080846000191660001916815260200190815260200160002060030160019054906101000a900460ff166001811115611b9057fe5b141515611c05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e73616374696f6e207479706520646f6573206e6f74206d617463680081525060200191505060405180910390fd5b87600080826000191660001916815260200190815260200160002060030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f54686520696e69746961746f72206f6620746865207472616e73616374696f6e81526020017f206973206e6f742062757965720000000000000000000000000000000000000081525060400191505060405180910390fd5b879650600087111515611d87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f56616c7565206d7573742062652067726561746572207468616e207a65726f2e81525060200191505060405180910390fd5b6000808a6000191660001916815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1695508573ffffffffffffffffffffffffffffffffffffffff166323b872dd6000808c6000191660001916815260200190815260200160002060030160079054906101000a900473ffffffffffffffffffffffffffffffffffffffff16308b6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611edb57600080fd5b505af1158015611eef573d6000803e3d6000fd5b505050506040513d6020811015611f0557600080fd5b81019080805190602001909291905050501515611fd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252605c8152602001807f546f6b656e207472616e73666572206661696c65642c206d6179626520796f7581526020017f20646964206e6f7420617070726f766520657363726f7720636f6e747261637481526020017f20746f207370656e64206f6e20626568616c66206f662062757965720000000081525060600191505060405180910390fd5b612006876000808c60001916600019168152602001908152602001600020600101546130f190919063ffffffff16565b6000808b6000191660001916815260200190815260200160002060010181905550426000808b60001916600019168152602001908152602001600020600201819055503373ffffffffffffffffffffffffffffffffffffffff167ff66fd2ae9e24a6a24b02e1b5b7512ffde5149a4176085fc0298ae228c9b9d7298a896040518083600019166000191681526020018281526020019250505060405180910390a2505050505050505050565b60015481565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561214757602002820191906000526020600020905b8154600019168152602001906001019080831161212f575b50505050509050919050565b846000806000836000191660001916815260200190815260200160002060010154141515156121ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f5472616e73616374696f6e20646f6573206e6f7420657869737473000000000081525060200191505060405180910390fd5b85600060018111156121f857fe5b600080836000191660001916815260200190815260200160002060030160009054906101000a900460ff16600181111561222e57fe5b1415156122c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f5472616e73616374696f6e2069732065697468657220696e206469737075746581526020017f206f722072656c6561736564207374617465000000000000000000000000000081525060400191505060405180910390fd5b6000868690501180156122e157508383905086869050145b151561237b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4c656e677468206f662064657374696e6174696f6e7320697320696e636f727281526020017f6563742e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6124748d8d808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508c8c808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508b8b808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508a8a8a80806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050898980806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050613112565b6001600080896000191660001916815260200190815260200160002060030160006101000a81548160ff021916908360018111156124ae57fe5b02179055504260008089600019166000191681526020019081526020016000206002018190555060008088600019166000191681526020019081526020016000206001015461255c888888808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050508787808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050506132cd565b14151561261d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260488152602001807f546f74616c2076616c756520746f2062652072656c6561736564206d7573742081526020017f626520657175616c20746f20746865207472616e73616374696f6e206573637281526020017f6f772076616c756500000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b7f688e2a1b34445bcd47b0e11ba2a9c8c4d850a1831b64199b59d1c70e2970154587878787876040518086600019166000191681526020018060200180602001838103835287878281815260200192506020028082843782019150508381038252858582818152602001925060200280828437820191505097505050505050505060405180910390a150505050505050505050505050565b6000806000846000191660001916815260200190815260200160002060080160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60026020528160005260406000208181548110151561274257fe5b90600052602060002001600091509150505481565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff16141515156127fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f427579657220616e642073656c6c6572206172652073616d650000000000000081525060200191505060405180910390fd5b600084111515612873576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f56616c756520706173736564206973203000000000000000000000000000000081525060200191505060405180910390fd5b60008760ff1611801561288a575060038760ff1611155b1515612924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001807f5468726573686f6c642063616e6e6f742062652067726561746572207468616e81526020017f203320616e64206d7573742062652067726561746572207468616e203000000081525060400191505060405180910390fd5b60018760ff1614806129635750600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b1515612a23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604f8152602001807f456974686572207468726573686f6c642073686f756c642062652031206f746881526020017f6572776973652076616c6964206d6f64657261746f722061646472657373207381526020017f686f756c6420626520706173736564000000000000000000000000000000000081525060600191505060405180910390fd5b612a328388888d8d8d87610ec3565b600019168560001916141515612ad6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f43616c63756c6174656420736372697074206861736820646f6573206e6f742081526020017f6d61746368207061737365642073637269707420686173682e0000000000000081525060400191505060405180910390fd5b610160604051908101604052808660001916815260200185815260200142815260200160006001811115612b0657fe5b8152602001836001811115612b1757fe5b81526020018860ff1681526020018763ffffffff1681526020018b73ffffffffffffffffffffffffffffffffffffffff1681526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff16815250600080876000191660001916815260200190815260200160002060008201518160000190600019169055602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690836001811115612c0157fe5b021790555060808201518160030160016101000a81548160ff02191690836001811115612c2a57fe5b021790555060a08201518160030160026101000a81548160ff021916908360ff16021790555060c08201518160030160036101000a81548163ffffffff021916908363ffffffff16021790555060e08201518160030160076101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101008201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101408201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506001600080876000191660001916815260200190815260200160002060070160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600080876000191660001916815260200190815260200160002060070160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600080866000191660001916815260200190815260200160002060070160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515612f82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f456974686572206275796572206f722073656c6c65722069732070617373656481526020017f206173206d6f64657261746f720000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600080876000191660001916815260200190815260200160002060070160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160008154809291906001019190505550600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020859080600181540180825580915050906001820390600052602060002001600090919290919091509060001916905550600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085908060018154018082558091505090600182039060005260206000200160009091929091909150906000191690555050505050505050505050565b600080828401905083811015151561310857600080fd5b8091505092915050565b600080613123888888888888613b44565b9150613179600080876000191660001916815260200190815260200160002060030160039054906101000a900463ffffffff166000808860001916600019168152602001908152602001600020600201546141b7565b9050600080866000191660001916815260200190815260200160002060030160029054906101000a900460ff1660ff16885110801561322a57508015806132295750600080866000191660001916815260200190815260200160002060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b156132c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f736967562e6c656e67746820697320756e64657220746865207468726573686f81526020017f6c642e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050505050565b600080600080600080600089600019166000191681526020019081526020016000209350600060018111156132fe57fe5b8460030160019054906101000a900460ff16600181111561331b57fe5b141561363257600092505b865183101561362d57600073ffffffffffffffffffffffffffffffffffffffff16878481518110151561335557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff16141580156133e55750836007016000888581518110151561339257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1515613459576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4e6f7420612076616c69642064657374696e6174696f6e00000000000000000081525060200191505060405180910390fd5b6000868481518110151561346957fe5b9060200190602002015111151561350e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e7420746f2062652073656e742073686f756c64206265206772656181526020017f746572207468616e20300000000000000000000000000000000000000000000081525060400191505060405180910390fd5b613538868481518110151561351f57fe5b90602001906020020151866130f190919063ffffffff16565b94506001846009016000898681518110151561355057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555086838151811015156135b957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff166108fc87858151811015156135ea57fe5b906020019060200201519081150290604051600060405180830381858888f1935050505015801561361f573d6000803e3d6000fd5b508280600101935050613326565b613b39565b60018081111561363e57fe5b8460030160019054906101000a900460ff16600181111561365b57fe5b1415613aa4578360050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600090505b8651811015613a9f57600073ffffffffffffffffffffffffffffffffffffffff1687828151811015156136bc57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415801561374c575083600701600088838151811015156136f957fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15156137c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4e6f7420612076616c69642064657374696e6174696f6e00000000000000000081525060200191505060405180910390fd5b600086828151811015156137d057fe5b90602001906020020151111515613875576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f416d6f756e7420746f2062652073656e742073686f756c64206265206772656181526020017f746572207468616e20300000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61389f868281518110151561388657fe5b90602001906020020151866130f190919063ffffffff16565b9450600184600901600089848151811015156138b757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888381518110151561393c57fe5b90602001906020020151888481518110151561395457fe5b906020019060200201516040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156139e357600080fd5b505af11580156139f7573d6000803e3d6000fd5b505050506040513d6020811015613a0d57600080fd5b81019080805190602001909291905050501515613a92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f546f6b656e207472616e73666572206661696c65642e0000000000000000000081525060200191505060405180910390fd5b808060010191505061368d565b613b38565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f5472616e736174696f6e2074797065206973206e6f7420737570706f7274656481526020017f2e0000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b505050509392505050565b60008060008087518951148015613b5c575089518951145b1515613bd0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f522c532c56206c656e677468206d69736d617463682e0000000000000000000081525060200191505060405180910390fd5b60197f01000000000000000000000000000000000000000000000000000000000000000260007f0100000000000000000000000000000000000000000000000000000000000000023088888b60405160200180877effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101867effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401848051906020019060200280838360005b83811015613d24578082015181840152602081019050613d09565b50505050905001838051906020019060200280838360005b83811015613d57578082015181840152602081019050613d3c565b50505050905001826000191660001916815260200196505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515613db85780518252602082019150602081019050602083039250613d93565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b602083101515613e695780518252602082019150602081019050602083039250613e44565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600091505b88518210156141aa576001838b84815181101515613eb757fe5b906020019060200201518b85815181101515613ecf57fe5b906020019060200201518b86815181101515613ee757fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015613f62573d6000803e3d6000fd5b505050602060405103519050600080886000191660001916815260200190815260200160002060070160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561404a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b600080886000191660001916815260200190815260200160002060080160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515614127576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f53616d65207369676e61747572652073656e742074776963650000000000000081525060200191505060405180910390fd5b6001600080896000191660001916815260200190815260200160002060080160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508093508180600101925050613e9d565b5050509695505050505050565b6000806141cd834261420b90919063ffffffff16565b905060008463ffffffff16146141ff576141f8610e108563ffffffff1661422c90919063ffffffff16565b8111614202565b60005b91505092915050565b60008083831115151561421d57600080fd5b82840390508091505092915050565b60008060008414156142415760009150614263565b828402905082848281151561425257fe5b0414151561425f57600080fd5b8091505b50929150505600a165627a7a723058205aaa683b99a05334484ffe49693dd8c2124e5d1cc81d5538768c050a666353310029
======= openzeppelin-solidity/contracts/math/SafeMath.sol:SafeMath =======
604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820ed2e8442f9982a43e2504067fa63a2f64a13c7ffba3323ae30639e406b20e54c0029
======= token/ITokenContract.sol:ITokenContract =======`
func DeployEscrow(auth *bind.TransactOpts, backend bind.ContractBackend) (common.Address, *types.Transaction, *Escrow, error) {
	parsed, err := abi.JSON(strings.NewReader(EscrowABI))
	if err != nil {
		return common.Address{}, nil, nil, err
	}
	address, tx, contract, err := bind.DeployContract(auth, parsed, common.FromHex(EscrowBin), backend)
	if err != nil {
		return common.Address{}, nil, nil, err
	}
	return address, tx, &Escrow{EscrowCaller: EscrowCaller{contract: contract}, EscrowTransactor: EscrowTransactor{contract: contract}, EscrowFilterer: EscrowFilterer{contract: contract}}, nil
}
type Escrow struct {
	EscrowCaller      
	EscrowTransactor  
	EscrowFilterer    
}
type EscrowCaller struct {
	contract *bind.BoundContract  
}
type EscrowTransactor struct {
	contract *bind.BoundContract  
}
type EscrowFilterer struct {
	contract *bind.BoundContract  
}
type EscrowSession struct {
	Contract     *Escrow            
	CallOpts     bind.CallOpts      
	TransactOpts bind.TransactOpts  
}
type EscrowCallerSession struct {
	Contract *EscrowCaller  
	CallOpts bind.CallOpts  
}
type EscrowTransactorSession struct {
	Contract     *EscrowTransactor  
	TransactOpts bind.TransactOpts  
}
type EscrowRaw struct {
	Contract *Escrow  
}
type EscrowCallerRaw struct {
	Contract *EscrowCaller  
}
type EscrowTransactorRaw struct {
	Contract *EscrowTransactor  
}
func NewEscrow(address common.Address, backend bind.ContractBackend) (*Escrow, error) {
	contract, err := bindEscrow(address, backend, backend, backend)
	if err != nil {
		return nil, err
	}
	return &Escrow{EscrowCaller: EscrowCaller{contract: contract}, EscrowTransactor: EscrowTransactor{contract: contract}, EscrowFilterer: EscrowFilterer{contract: contract}}, nil
}
func NewEscrowCaller(address common.Address, caller bind.ContractCaller) (*EscrowCaller, error) {
	contract, err := bindEscrow(address, caller, nil, nil)
	if err != nil {
		return nil, err
	}
	return &EscrowCaller{contract: contract}, nil
}
func NewEscrowTransactor(address common.Address, transactor bind.ContractTransactor) (*EscrowTransactor, error) {
	contract, err := bindEscrow(address, nil, transactor, nil)
	if err != nil {
		return nil, err
	}
	return &EscrowTransactor{contract: contract}, nil
}
func NewEscrowFilterer(address common.Address, filterer bind.ContractFilterer) (*EscrowFilterer, error) {
	contract, err := bindEscrow(address, nil, nil, filterer)
	if err != nil {
		return nil, err
	}
	return &EscrowFilterer{contract: contract}, nil
}
func bindEscrow(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
	parsed, err := abi.JSON(strings.NewReader(EscrowABI))
	if err != nil {
		return nil, err
	}
	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
}
func (_Escrow *EscrowRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
	return _Escrow.Contract.EscrowCaller.contract.Call(opts, result, method, params...)
}
func (_Escrow *EscrowRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Escrow.Contract.EscrowTransactor.contract.Transfer(opts)
}
func (_Escrow *EscrowRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
	return _Escrow.Contract.EscrowTransactor.contract.Transact(opts, method, params...)
}
func (_Escrow *EscrowCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
	return _Escrow.Contract.contract.Call(opts, result, method, params...)
}
func (_Escrow *EscrowTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Escrow.Contract.contract.Transfer(opts)
}
func (_Escrow *EscrowTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
	return _Escrow.Contract.contract.Transact(opts, method, params...)
}
func (_Escrow *EscrowCaller) CalculateRedeemScriptHash(opts *bind.CallOpts, uniqueId [20]byte, threshold uint8, timeoutHours uint32, buyer common.Address, seller common.Address, moderator common.Address, tokenAddress common.Address) ([32]byte, error) {
	var (
		ret0 = new([32]byte)
	)
	out := ret0
	err := _Escrow.contract.Call(opts, out, "calculateRedeemScriptHash", uniqueId, threshold, timeoutHours, buyer, seller, moderator, tokenAddress)
	return *ret0, err
}
func (_Escrow *EscrowSession) CalculateRedeemScriptHash(uniqueId [20]byte, threshold uint8, timeoutHours uint32, buyer common.Address, seller common.Address, moderator common.Address, tokenAddress common.Address) ([32]byte, error) {
	return _Escrow.Contract.CalculateRedeemScriptHash(&_Escrow.CallOpts, uniqueId, threshold, timeoutHours, buyer, seller, moderator, tokenAddress)
}
func (_Escrow *EscrowCallerSession) CalculateRedeemScriptHash(uniqueId [20]byte, threshold uint8, timeoutHours uint32, buyer common.Address, seller common.Address, moderator common.Address, tokenAddress common.Address) ([32]byte, error) {
	return _Escrow.Contract.CalculateRedeemScriptHash(&_Escrow.CallOpts, uniqueId, threshold, timeoutHours, buyer, seller, moderator, tokenAddress)
}
func (_Escrow *EscrowCaller) CheckBeneficiary(opts *bind.CallOpts, scriptHash [32]byte, beneficiary common.Address) (bool, error) {
	var (
		ret0 = new(bool)
	)
	out := ret0
	err := _Escrow.contract.Call(opts, out, "checkBeneficiary", scriptHash, beneficiary)
	return *ret0, err
}
func (_Escrow *EscrowSession) CheckBeneficiary(scriptHash [32]byte, beneficiary common.Address) (bool, error) {
	return _Escrow.Contract.CheckBeneficiary(&_Escrow.CallOpts, scriptHash, beneficiary)
}
func (_Escrow *EscrowCallerSession) CheckBeneficiary(scriptHash [32]byte, beneficiary common.Address) (bool, error) {
	return _Escrow.Contract.CheckBeneficiary(&_Escrow.CallOpts, scriptHash, beneficiary)
}
func (_Escrow *EscrowCaller) CheckVote(opts *bind.CallOpts, scriptHash [32]byte, party common.Address) (bool, error) {
	var (
		ret0 = new(bool)
	)
	out := ret0
	err := _Escrow.contract.Call(opts, out, "checkVote", scriptHash, party)
	return *ret0, err
}
func (_Escrow *EscrowSession) CheckVote(scriptHash [32]byte, party common.Address) (bool, error) {
	return _Escrow.Contract.CheckVote(&_Escrow.CallOpts, scriptHash, party)
}
func (_Escrow *EscrowCallerSession) CheckVote(scriptHash [32]byte, party common.Address) (bool, error) {
	return _Escrow.Contract.CheckVote(&_Escrow.CallOpts, scriptHash, party)
}
func (_Escrow *EscrowCaller) GetAllTransactionsForParty(opts *bind.CallOpts, partyAddress common.Address) ([][32]byte, error) {
	var (
		ret0 = new([][32]byte)
	)
	out := ret0
	err := _Escrow.contract.Call(opts, out, "getAllTransactionsForParty", partyAddress)
	return *ret0, err
}
func (_Escrow *EscrowSession) GetAllTransactionsForParty(partyAddress common.Address) ([][32]byte, error) {
	return _Escrow.Contract.GetAllTransactionsForParty(&_Escrow.CallOpts, partyAddress)
}
func (_Escrow *EscrowCallerSession) GetAllTransactionsForParty(partyAddress common.Address) ([][32]byte, error) {
	return _Escrow.Contract.GetAllTransactionsForParty(&_Escrow.CallOpts, partyAddress)
}
func (_Escrow *EscrowCaller) PartyVsTransaction(opts *bind.CallOpts, arg0 common.Address, arg1 *big.Int) ([32]byte, error) {
	var (
		ret0 = new([32]byte)
	)
	out := ret0
	err := _Escrow.contract.Call(opts, out, "partyVsTransaction", arg0, arg1)
	return *ret0, err
}
func (_Escrow *EscrowSession) PartyVsTransaction(arg0 common.Address, arg1 *big.Int) ([32]byte, error) {
	return _Escrow.Contract.PartyVsTransaction(&_Escrow.CallOpts, arg0, arg1)
}
func (_Escrow *EscrowCallerSession) PartyVsTransaction(arg0 common.Address, arg1 *big.Int) ([32]byte, error) {
	return _Escrow.Contract.PartyVsTransaction(&_Escrow.CallOpts, arg0, arg1)
}
func (_Escrow *EscrowCaller) TransactionCount(opts *bind.CallOpts) (*big.Int, error) {
	var (
		ret0 = new(*big.Int)
	)
	out := ret0
	err := _Escrow.contract.Call(opts, out, "transactionCount")
	return *ret0, err
}
func (_Escrow *EscrowSession) TransactionCount() (*big.Int, error) {
	return _Escrow.Contract.TransactionCount(&_Escrow.CallOpts)
}
func (_Escrow *EscrowCallerSession) TransactionCount() (*big.Int, error) {
	return _Escrow.Contract.TransactionCount(&_Escrow.CallOpts)
}
func (_Escrow *EscrowCaller) Transactions(opts *bind.CallOpts, arg0 [32]byte) (struct {
	ScriptHash      [32]byte
	Value           *big.Int
	LastModified    *big.Int
	Status          uint8
	TransactionType uint8
	Threshold       uint8
	TimeoutHours    uint32
	Buyer           common.Address
	Seller          common.Address
	TokenAddress    common.Address
	Moderator       common.Address
}, error) {
	ret := new(struct {
		ScriptHash      [32]byte
		Value           *big.Int
		LastModified    *big.Int
		Status          uint8
		TransactionType uint8
		Threshold       uint8
		TimeoutHours    uint32
		Buyer           common.Address
		Seller          common.Address
		TokenAddress    common.Address
		Moderator       common.Address
	})
	out := ret
	err := _Escrow.contract.Call(opts, out, "transactions", arg0)
	return *ret, err
}
func (_Escrow *EscrowSession) Transactions(arg0 [32]byte) (struct {
	ScriptHash      [32]byte
	Value           *big.Int
	LastModified    *big.Int
	Status          uint8
	TransactionType uint8
	Threshold       uint8
	TimeoutHours    uint32
	Buyer           common.Address
	Seller          common.Address
	TokenAddress    common.Address
	Moderator       common.Address
}, error) {
	return _Escrow.Contract.Transactions(&_Escrow.CallOpts, arg0)
}
func (_Escrow *EscrowCallerSession) Transactions(arg0 [32]byte) (struct {
	ScriptHash      [32]byte
	Value           *big.Int
	LastModified    *big.Int
	Status          uint8
	TransactionType uint8
	Threshold       uint8
	TimeoutHours    uint32
	Buyer           common.Address
	Seller          common.Address
	TokenAddress    common.Address
	Moderator       common.Address
}, error) {
	return _Escrow.Contract.Transactions(&_Escrow.CallOpts, arg0)
}
func (_Escrow *EscrowTransactor) AddFundsToTransaction(opts *bind.TransactOpts, scriptHash [32]byte) (*types.Transaction, error) {
	return _Escrow.contract.Transact(opts, "addFundsToTransaction", scriptHash)
}
func (_Escrow *EscrowSession) AddFundsToTransaction(scriptHash [32]byte) (*types.Transaction, error) {
	return _Escrow.Contract.AddFundsToTransaction(&_Escrow.TransactOpts, scriptHash)
}
func (_Escrow *EscrowTransactorSession) AddFundsToTransaction(scriptHash [32]byte) (*types.Transaction, error) {
	return _Escrow.Contract.AddFundsToTransaction(&_Escrow.TransactOpts, scriptHash)
}
func (_Escrow *EscrowTransactor) AddTokenTransaction(opts *bind.TransactOpts, buyer common.Address, seller common.Address, moderator common.Address, threshold uint8, timeoutHours uint32, scriptHash [32]byte, value *big.Int, uniqueId [20]byte, tokenAddress common.Address) (*types.Transaction, error) {
	return _Escrow.contract.Transact(opts, "addTokenTransaction", buyer, seller, moderator, threshold, timeoutHours, scriptHash, value, uniqueId, tokenAddress)
}
func (_Escrow *EscrowSession) AddTokenTransaction(buyer common.Address, seller common.Address, moderator common.Address, threshold uint8, timeoutHours uint32, scriptHash [32]byte, value *big.Int, uniqueId [20]byte, tokenAddress common.Address) (*types.Transaction, error) {
	return _Escrow.Contract.AddTokenTransaction(&_Escrow.TransactOpts, buyer, seller, moderator, threshold, timeoutHours, scriptHash, value, uniqueId, tokenAddress)
}
func (_Escrow *EscrowTransactorSession) AddTokenTransaction(buyer common.Address, seller common.Address, moderator common.Address, threshold uint8, timeoutHours uint32, scriptHash [32]byte, value *big.Int, uniqueId [20]byte, tokenAddress common.Address) (*types.Transaction, error) {
	return _Escrow.Contract.AddTokenTransaction(&_Escrow.TransactOpts, buyer, seller, moderator, threshold, timeoutHours, scriptHash, value, uniqueId, tokenAddress)
}
func (_Escrow *EscrowTransactor) AddTokensToTransaction(opts *bind.TransactOpts, scriptHash [32]byte, value *big.Int) (*types.Transaction, error) {
	return _Escrow.contract.Transact(opts, "addTokensToTransaction", scriptHash, value)
}