func (_Room *RoomSession) SendReward(_reward *big.Int, _dest common.Address, _id *big.Int) (*types.Transaction, error) {
	return _Room.Contract.SendReward(&_Room.TransactOpts, _reward, _dest, _id)
}
SendReward is a paid mutator transaction binding the contract method 0x2673bd74.

Solidity: function sendReward(_reward uint256, _dest address, _id uint256) returns()
package bindings
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 RoomABI = "[{\"constant\":true,\"inputs\":[],\"name\":\"active\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"activate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_reward\",\"type\":\"uint256\"},{\"name\":\"_dest\",\"type\":\"address\"},{\"name\":\"_id\",\"type\":\"uint256\"}],\"name\":\"sendReward\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"refundToOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"deactivate\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"destroy\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"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\":\"\",\"type\":\"uint256\"}],\"name\":\"rewardSent\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"destroyAndSend\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_creator\",\"type\":\"address\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_depositor\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_depositedValue\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_dest\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_reward\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_id\",\"type\":\"uint256\"}],\"name\":\"RewardSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_dest\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_refundedBalance\",\"type\":\"uint256\"}],\"name\":\"RefundedToOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"Deactivate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"Activate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Pause\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpause\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"}],\"name\":\"OwnershipRenounced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}]"
type Room struct {
	RoomCaller      
	RoomTransactor  
	RoomFilterer    
}
type RoomCaller struct {
	contract *bind.BoundContract  
}
type RoomTransactor struct {
	contract *bind.BoundContract  
}
type RoomFilterer struct {
	contract *bind.BoundContract  
}
type RoomSession struct {
	Contract     *Room              
	CallOpts     bind.CallOpts      
	TransactOpts bind.TransactOpts  
}
type RoomCallerSession struct {
	Contract *RoomCaller    
	CallOpts bind.CallOpts  
}
type RoomTransactorSession struct {
	Contract     *RoomTransactor    
	TransactOpts bind.TransactOpts  
}
type RoomRaw struct {
	Contract *Room  
}
type RoomCallerRaw struct {
	Contract *RoomCaller  
}
type RoomTransactorRaw struct {
	Contract *RoomTransactor  
}
func NewRoom(address common.Address, backend bind.ContractBackend) (*Room, error) {
	contract, err := bindRoom(address, backend, backend, backend)
	if err != nil {
		return nil, err
	}
	return &Room{RoomCaller: RoomCaller{contract: contract}, RoomTransactor: RoomTransactor{contract: contract}, RoomFilterer: RoomFilterer{contract: contract}}, nil
}
func NewRoomCaller(address common.Address, caller bind.ContractCaller) (*RoomCaller, error) {
	contract, err := bindRoom(address, caller, nil, nil)
	if err != nil {
		return nil, err
	}
	return &RoomCaller{contract: contract}, nil
}
func NewRoomTransactor(address common.Address, transactor bind.ContractTransactor) (*RoomTransactor, error) {
	contract, err := bindRoom(address, nil, transactor, nil)
	if err != nil {
		return nil, err
	}
	return &RoomTransactor{contract: contract}, nil
}
func NewRoomFilterer(address common.Address, filterer bind.ContractFilterer) (*RoomFilterer, error) {
	contract, err := bindRoom(address, nil, nil, filterer)
	if err != nil {
		return nil, err
	}
	return &RoomFilterer{contract: contract}, nil
}
func bindRoom(address common.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) {
	parsed, err := abi.JSON(strings.NewReader(RoomABI))
	if err != nil {
		return nil, err
	}
	return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil
}
func (_Room *RoomRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
	return _Room.Contract.RoomCaller.contract.Call(opts, result, method, params...)
}
func (_Room *RoomRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Room.Contract.RoomTransactor.contract.Transfer(opts)
}
func (_Room *RoomRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
	return _Room.Contract.RoomTransactor.contract.Transact(opts, method, params...)
}
func (_Room *RoomCallerRaw) Call(opts *bind.CallOpts, result interface{}, method string, params ...interface{}) error {
	return _Room.Contract.contract.Call(opts, result, method, params...)
}
func (_Room *RoomTransactorRaw) Transfer(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Room.Contract.contract.Transfer(opts)
}
func (_Room *RoomTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (*types.Transaction, error) {
	return _Room.Contract.contract.Transact(opts, method, params...)
}
func (_Room *RoomCaller) Active(opts *bind.CallOpts) (bool, error) {
	var (
		ret0 = new(bool)
	)
	out := ret0
	err := _Room.contract.Call(opts, out, "active")
	return *ret0, err
}
func (_Room *RoomSession) Active() (bool, error) {
	return _Room.Contract.Active(&_Room.CallOpts)
}
func (_Room *RoomCallerSession) Active() (bool, error) {
	return _Room.Contract.Active(&_Room.CallOpts)
}
func (_Room *RoomCaller) Owner(opts *bind.CallOpts) (common.Address, error) {
	var (
		ret0 = new(common.Address)
	)
	out := ret0
	err := _Room.contract.Call(opts, out, "owner")
	return *ret0, err
}
func (_Room *RoomSession) Owner() (common.Address, error) {
	return _Room.Contract.Owner(&_Room.CallOpts)
}
func (_Room *RoomCallerSession) Owner() (common.Address, error) {
	return _Room.Contract.Owner(&_Room.CallOpts)
}
func (_Room *RoomCaller) Paused(opts *bind.CallOpts) (bool, error) {
	var (
		ret0 = new(bool)
	)
	out := ret0
	err := _Room.contract.Call(opts, out, "paused")
	return *ret0, err
}
func (_Room *RoomSession) Paused() (bool, error) {
	return _Room.Contract.Paused(&_Room.CallOpts)
}
func (_Room *RoomCallerSession) Paused() (bool, error) {
	return _Room.Contract.Paused(&_Room.CallOpts)
}
func (_Room *RoomCaller) RewardSent(opts *bind.CallOpts, arg0 *big.Int) (bool, error) {
	var (
		ret0 = new(bool)
	)
	out := ret0
	err := _Room.contract.Call(opts, out, "rewardSent", arg0)
	return *ret0, err
}
func (_Room *RoomSession) RewardSent(arg0 *big.Int) (bool, error) {
	return _Room.Contract.RewardSent(&_Room.CallOpts, arg0)
}
func (_Room *RoomCallerSession) RewardSent(arg0 *big.Int) (bool, error) {
	return _Room.Contract.RewardSent(&_Room.CallOpts, arg0)
}
func (_Room *RoomTransactor) Activate(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Room.contract.Transact(opts, "activate")
}
func (_Room *RoomSession) Activate() (*types.Transaction, error) {
	return _Room.Contract.Activate(&_Room.TransactOpts)
}
func (_Room *RoomTransactorSession) Activate() (*types.Transaction, error) {
	return _Room.Contract.Activate(&_Room.TransactOpts)
}
func (_Room *RoomTransactor) Deactivate(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Room.contract.Transact(opts, "deactivate")
}
func (_Room *RoomSession) Deactivate() (*types.Transaction, error) {
	return _Room.Contract.Deactivate(&_Room.TransactOpts)
}
func (_Room *RoomTransactorSession) Deactivate() (*types.Transaction, error) {
	return _Room.Contract.Deactivate(&_Room.TransactOpts)
}
func (_Room *RoomTransactor) Deposit(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Room.contract.Transact(opts, "deposit")
}
func (_Room *RoomSession) Deposit() (*types.Transaction, error) {
	return _Room.Contract.Deposit(&_Room.TransactOpts)
}
func (_Room *RoomTransactorSession) Deposit() (*types.Transaction, error) {
	return _Room.Contract.Deposit(&_Room.TransactOpts)
}
func (_Room *RoomTransactor) Destroy(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Room.contract.Transact(opts, "destroy")
}
func (_Room *RoomSession) Destroy() (*types.Transaction, error) {
	return _Room.Contract.Destroy(&_Room.TransactOpts)
}
func (_Room *RoomTransactorSession) Destroy() (*types.Transaction, error) {
	return _Room.Contract.Destroy(&_Room.TransactOpts)
}
func (_Room *RoomTransactor) DestroyAndSend(opts *bind.TransactOpts, _recipient common.Address) (*types.Transaction, error) {
	return _Room.contract.Transact(opts, "destroyAndSend", _recipient)
}
func (_Room *RoomSession) DestroyAndSend(_recipient common.Address) (*types.Transaction, error) {
	return _Room.Contract.DestroyAndSend(&_Room.TransactOpts, _recipient)
}
func (_Room *RoomTransactorSession) DestroyAndSend(_recipient common.Address) (*types.Transaction, error) {
	return _Room.Contract.DestroyAndSend(&_Room.TransactOpts, _recipient)
}
func (_Room *RoomTransactor) Pause(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Room.contract.Transact(opts, "pause")
}
func (_Room *RoomSession) Pause() (*types.Transaction, error) {
	return _Room.Contract.Pause(&_Room.TransactOpts)
}
func (_Room *RoomTransactorSession) Pause() (*types.Transaction, error) {
	return _Room.Contract.Pause(&_Room.TransactOpts)
}
func (_Room *RoomTransactor) RefundToOwner(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Room.contract.Transact(opts, "refundToOwner")
}
func (_Room *RoomSession) RefundToOwner() (*types.Transaction, error) {
	return _Room.Contract.RefundToOwner(&_Room.TransactOpts)
}
func (_Room *RoomTransactorSession) RefundToOwner() (*types.Transaction, error) {
	return _Room.Contract.RefundToOwner(&_Room.TransactOpts)
}
func (_Room *RoomTransactor) RenounceOwnership(opts *bind.TransactOpts) (*types.Transaction, error) {
	return _Room.contract.Transact(opts, "renounceOwnership")
}
func (_Room *RoomSession) RenounceOwnership() (*types.Transaction, error) {
	return _Room.Contract.RenounceOwnership(&_Room.TransactOpts)
}
func (_Room *RoomTransactorSession) RenounceOwnership() (*types.Transaction, error) {
	return _Room.Contract.RenounceOwnership(&_Room.TransactOpts)
}
func (_Room *RoomTransactor) SendReward(opts *bind.TransactOpts, _reward *big.Int, _dest common.Address, _id *big.Int) (*types.Transaction, error) {
	return _Room.contract.Transact(opts, "sendReward", _reward, _dest, _id)
}