func (o *Options) MakePassive() *Options {
	o.passiveOffer = true
	return o
}
MakePassive turns this into a passive offer. Used with LoadOffers.
package microstellar
import (
	"context"
	"time"
)
type SortOrder int
const (
	SortAscending  = SortOrder(0)
	SortDescending = SortOrder(1)
)
type MemoType int
const (
	MemoNone   = MemoType(0)  
	MemoID     = MemoType(1)  
	MemoText   = MemoType(2)  
	MemoHash   = MemoType(3)  
	MemoReturn = MemoType(4)  
)
type Event int
const (
	EvBeforeSubmit = Event(0)
)
type TxHandler func(data ...interface{}) (bool, error)
type Options struct {
	ctx      context.Context
	handlers map[Event]*TxHandler
	hasFee        bool
	fee           uint32
	hasTimeBounds bool
	minTimeBound  time.Time
	maxTimeBound  time.Time
	memoType MemoType  
	memoText string    
	memoID   uint64    
	memoHash [32]byte  
	skipSignatures bool
	signerSeeds    []string
	hasCursor      bool
	cursor         string
	hasLimit       bool
	limit          uint
	sortDescending bool
	passiveOffer bool
	sourceAddress string
	sendAsset     *Asset
	maxAmount     string
	path          []*Asset
	isMultiOp     bool
	multiOpSource string
}
func NewOptions() *Options {
	return &Options{
		ctx:            nil,
		handlers:       map[Event]*TxHandler{},
		hasFee:         false,
		hasTimeBounds:  false,
		memoType:       MemoNone,
		hasCursor:      false,
		hasLimit:       false,
		sortDescending: false,
		passiveOffer:   false,
		sourceAddress:  "",
		isMultiOp:      false,
		multiOpSource:  "",
	}
}
func Opts() *Options {
	return NewOptions()
}
func mergeOptions(opts []*Options) *Options {
	if len(opts) > 0 {
		return opts[0]
	}
	return NewOptions()
}
func (o *Options) WithMemoText(text string) *Options {
	o.memoType = MemoText
	o.memoText = text
	return o
}
func (o *Options) WithMemoID(id uint64) *Options {
	o.memoType = MemoID
	o.memoID = id
	return o
}
func (o *Options) WithMemoHash(hash [32]byte) *Options {
	o.memoType = MemoHash
	o.memoHash = hash
	return o
}
func (o *Options) WithMemoReturn(hash [32]byte) *Options {
	o.memoType = MemoReturn
	o.memoHash = hash
	return o
}
func (o *Options) WithSigner(signerSeed string) *Options {
	o.signerSeeds = append(o.signerSeeds, signerSeed)
	return o
}
func (o *Options) WithContext(context context.Context) *Options {
	o.ctx = context
	return o
}
func (o *Options) WithCursor(cursor string) *Options {
	o.hasCursor = true
	o.cursor = cursor
	return o
}
func (o *Options) WithLimit(limit uint) *Options {
	o.hasLimit = true
	o.limit = limit
	return o
}
func (o *Options) WithSortOrder(order SortOrder) *Options {
	if order == SortDescending {
		o.sortDescending = true
	}
	return o
}