terra

package module
v0.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 3, 2022 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	LUNA = NewNativeToken("LUNA", "uluna")
	UST  = NewNativeToken("UST", "uusd")
)
View Source
var (
	SKUJI, _    = NewCw20Token("terra188w26t95tf4dz77raftme8p75rggatxjxfeknw", "sKUJI", 6)
	KUJI, _     = NewCw20Token("terra1xfsdgcemqwxp4hhnyk4rle6wr22sseq7j07dnn", "KUJI", 6)
	XPRISM, _   = NewCw20Token("terra1042wzrwg2uk6jqxjm34ysqquyr9esdgm5qyswz", "xPRISM", 6)
	YLUNA, _    = NewCw20Token("terra17wkadg0tah554r35x6wvff0y5s7ve8npcjfuhz", "yLUNA", 6)
	PLUNA, _    = NewCw20Token("terra1tlgelulz9pdkhls6uglfn5lmxarx7f2gxtdzh2", "pLUNA", 6)
	PRISM, _    = NewCw20Token("terra1dh9478k2qvqhqeajhn75a2a7dsnf74y5ukregw", "PRISM", 6)
	CLUNA, _    = NewCw20Token("terra13zaagrrrxj47qjwczsczujlvnnntde7fdt0mau", "cLUNA", 6)
	ASTRO, _    = NewCw20Token("terra1xj49zyqrwpv5k928jwfpfy2ha668nwdgkwlrg3", "ASTRO", 6)
	XASTRO, _   = NewCw20Token("terra1f68wt2ch3cx2g62dxtc8v68mkdh5wchdgdjwz7", "xASTRO", 6)
	APOLLO, _   = NewCw20Token("terra100yeqvww74h4yaejj6h733thgcafdaukjtw397", "APOLLO", 6)
	ANC, _      = NewCw20Token("terra14z56l0fp2lsf86zy3hty2z47ezkhnthtr9yq76", "ANC", 6)
	BLUNA, _    = NewCw20Token("terra1kc87mu460fwkqte29rquh4hc20m54fxwtsx7gp", "bLUNA", 6)
	AUST, _     = NewCw20Token("terra1hzh9vpxhsk8253se0vv5jj6etdvxu3nv8z07zu", "aUST", 6)
	BETH, _     = NewCw20Token("terra1dzhzukyezv0etz22ud940z7adyv7xgcjkahuun", "bETH", 6)
	MIR, _      = NewCw20Token("terra15gwkyepfc6xgca5t5zefzwy42uts8l2m4g40k6", "MIR", 6)
	MINE, _     = NewCw20Token("terra1kcthelkax4j9x8d3ny6sdag0qmxxynl3qtcrpy", "MINE", 6)
	STT, _      = NewCw20Token("terra13xujxcrc9dqft4p9a8ls0w3j0xnzm6y2uvve8n", "STT", 6)
	PSI, _      = NewCw20Token("terra12897djskt9rge8dtmm86w654g7kzckkd698608", "PSI", 6)
	VKR, _      = NewCw20Token("terra1dy9kmlm4anr92e42mrkjwzyvfqwz66un00rwr5", "VKR", 6)
	SPEC, _     = NewCw20Token("terra1s5eczhe0h0jutf46re52x5z4r03c8hupacxmdr", "SPEC", 6)
	ORION, _    = NewCw20Token("terra1mddcdx0ujx89f38gu7zspk2r2ffdl5enyz2u03", "ORION", 8)
	GLOW, _     = NewCw20Token("terra13zx49nk8wjavedjzu8xkk95r3t0ta43c9ptul7", "GLOW", 6)
	HALO, _     = NewCw20Token("terra1w8kvd6cqpsthupsk4l0clwnmek4l3zr7c84kwq", "HALO", 6)
	LOOP, _     = NewCw20Token("terra1nef5jf6c7js9x6gkntlehgywvjlpytm7pcgkn4", "LOOP", 6)
	PLY, _      = NewCw20Token("terra13awdgcx40tz5uygkgm79dytez3x87rpg4uhnvu", "PLY", 6)
	WHALE, _    = NewCw20Token("terra1php5m8a6qd68z02t3zpw4jv2pj4vgw4wz0t8mz", "WHALE", 6)
	MARS, _     = NewCw20Token("terra12hgwnpupflfpuual532wgrxu2gjp0tcagzgx4n", "MARS", 6)
	ATLO, _     = NewCw20Token("terra1cl7whtrqmz5ldr553q69qahck8xvk80fm33qjx", "ATLO", 6)
	LOTA, _     = NewCw20Token("terra1ez46kxtulsdv07538fh5ra5xj8l68mu8eg24vr", "LOTA", 6)
	TWD, _      = NewCw20Token("terra19djkaepjjswucys4npd5ltaxgsntl7jf0xz7w6", "TWD", 6)
	LUNAX, _    = NewCw20Token("terra17y9qkl8dfkeg4py7n0g5407emqnemc3yqk5rup", "LunaX", 6)
	VUST, _     = NewCw20Token("terra1w0p5zre38ecdy3ez8efd5h9fvgum5s206xknrg", "vUST", 6)
	STLUNA, _   = NewCw20Token("terra1yg3j2s986nyp5z7r2lvt0hx3r0lnd7kwvwwtsc", "stLUNA", 6)
	NLUNA, _    = NewCw20Token("terra10f2mt82kjnkxqj2gepgwl637u2w4ue2z5nhz5j", "nLUNA", 6)
	WEWSTETH, _ = NewCw20Token("terra133chr09wu8sakfte5v7vd8qzq9vghtkv4tn0ur", "wewstETH", 8)
	NETH, _     = NewCw20Token("terra178v546c407pdnx5rer3hu8s2c0fc924k74ymnn", "nETH", 6)
	XDEFI, _    = NewCw20Token("terra169edevav3pdrtjcx35j6pvzuv54aevewar4nlh", "XDEFI", 8)
	LUART, _    = NewCw20Token("terra1vwz7t30q76s7xx6qgtxdqnu6vpr3ak3vw62ygk", "XDEFI", 6)
	ORNE, _     = NewCw20Token("terra1hnezwjqlhzawcrfysczcxs6xqxu2jawn729kkf", "ORNE", 6)
	LOOPR, _    = NewCw20Token("terra1jx4lmmke2srcvpjeereetc9hgegp4g5j0p9r2q", "LOOPR", 6)
	TNS, _      = NewCw20Token("terra14vz4v8adanzph278xyeggll4tfww7teh0xtw2y", "TNS", 6)
	LUV, _      = NewCw20Token("terra15k5r9r8dl8r7xlr29pry8a9w7sghehcnv5mgp6", "LUV", 6)
	ROBO, _     = NewCw20Token("terra1f62tqesptvmhtzr8sudru00gsdtdz24srgm7wp", "ROBO", 6)
	XSD, _      = NewCw20Token("terra1ln2z938phz0nc2wepxpzfkwp6ezn9yrz9zv9ep", "XSD", 8)
	WHSD, _     = NewCw20Token("terra1ustvnmngueq0p4jd7gfnutgvdc6ujpsjhsjd02", "WHSD", 8)
)
View Source
var (
	ASTRO_LUNAUSTLP, _   = NewCw20Token("terra1m24f7k4g66gnh9f7uncp32p722v0kyt3q4l3u5", "uLP", 6)
	ASTRO_BLUNAUSTLP, _  = NewCw20Token("terra1aaqmlv4ajsg9043zrhsd44lk8dqnv2hnakjv97", "uLP", 6)
	ASTRO_ANCUSTLP, _    = NewCw20Token("terra1wmaty65yt7mjw6fjfymkd9zsm6atsq82d9arcd", "uLP", 6)
	ASTRO_MIRUSTLP, _    = NewCw20Token("terra17trxzqjetl0q6xxep0s2w743dhw2cay0x47puc", "uLP", 6)
	ASTRO_MINEUSTLP, _   = NewCw20Token("terra16unvjel8vvtanxjpw49ehvga5qjlstn8c826qe", "uLP", 6)
	ASTRO_SKUJIKUJILP, _ = NewCw20Token("terra1kp4n4tms5w4tvvypya7589zswssqqahtjxy6da", "uLP", 6)
	ASTRO_MARSUSTLP, _   = NewCw20Token("terra1ww6sqvfgmktp0afcmvg78st6z89x5zr3tmvpss", "uLP", 6)
	ASTRO_ASTROUSTLP, _  = NewCw20Token("terra17n5sunn88hpy965mzvt3079fqx3rttnplg779g", "uLP", 6)
	ASTRO_ASTROLUNALP, _ = NewCw20Token("terra1ryxkslm6p04q0nl046quwz8ctdd5llkjnaccpa", "uLP", 6)
	ASTRO_LUNABLUNALP, _ = NewCw20Token("terra1htw7hm40ch0hacm8qpgd24sus4h0tq3hsseatl", "uLP", 6)

	TERRASWAP_LUNAUSTLP, _     = NewCw20Token("terra17dkr9rnmtmu7x4azrpupukvur2crnptyfvsrvr", "uLP", 6)
	TERRASWAP_BLUNALUNALP, _   = NewCw20Token("terra1nuy34nwnsh53ygpc4xprlj263cztw7vc99leh2", "uLP", 6)
	TERRASWAP_LUNAXLUNALP, _   = NewCw20Token("terra1halhfnaul7c0u9t5aywj430jnlu2hgauftdvdq", "uLP", 6)
	TERRASWAP_LUNAXBLUNALP, _  = NewCw20Token("terra1spagsh9rgcpdgl5pj6lfyftmhtz9elugurfl92", "uLP", 6)
	TERRASWAP_LUNAXUSTLP, _    = NewCw20Token("terra1ah6vn794y3fjvn5jvcv0pzrzky7gar3tp8zuyu", "uLP", 6)
	TERRASWAP_BLUNAUSTLP, _    = NewCw20Token("terra1qmr8j3m9x53dhws0yxhymzsvnkjq886yk8k93m", "uLP", 6)
	TERRASWAP_KUJIUSTLP, _     = NewCw20Token("terra1cmqv3sjew8kcm3j907x2026e4n0ejl2jackxlx", "uLP", 6)
	TERRASWAP_PLUNAUSTLP, _    = NewCw20Token("terra1t5tg7jrmsk6mj9xs3fk0ey092wfkqqlapuevwr", "uLP", 6)
	TERRASWAP_STLUNAUSTLP, _   = NewCw20Token("terra1cksuxx4ryfyhkk2c6lw3mpnn4hahkxlkml82rp", "uLP", 6)
	TERRASWAP_ANCUSTLP, _      = NewCw20Token("terra1gecs98vcuktyfkrve9czrpgtg0m3aq586x6gzm", "uLP", 6)
	TERRASWAP_MIRUSTLP, _      = NewCw20Token("terra17gjf2zehfvnyjtdgua9p9ygquk6gukxe7ucgwh", "uLP", 6)
	TERRASWAP_LOOPUSTLP, _     = NewCw20Token("terra12v03at235nxnmsyfg09akh4tp02mr60ne6flry", "uLP", 6)
	TERRASWAP_LOOPRUSTLP, _    = NewCw20Token("terra17mau5a2q453vf4e33ffaa4cvtn0twle5vm0zuf", "uLP", 6)
	TERRASWAP_MINEUSTLP, _     = NewCw20Token("terra1rqkyau9hanxtn63mjrdfhpnkpddztv3qav0tq2", "uLP", 6)
	TERRASWAP_SKUJIKUJILP, _   = NewCw20Token("terra1qf5xuhns225e6xr3mnjv3z8qwlpzyzf2c8we82", "uLP", 6)
	TERRASWAP_MARSUSTLP, _     = NewCw20Token("terra175xghpferetqhnx0hlp3e0um0wyfknxzv8h42q", "uLP", 6)
	TERRASWAP_PRISMXPRISMLP, _ = NewCw20Token("terra1pc6fvx7vzk220uj840kmkrnyjhjwxcrneuffnk", "uLP", 6)
	TERRASWAP_PRISMUSTLP, _    = NewCw20Token("terra1tragr8vkyx52rzy9f8n42etl6la42zylhcfkwa", "uLP", 6)
	TERRASWAP_CLUNALUNALP, _   = NewCw20Token("terra18cul84v9tt4nmxmmyxm2z74vpgjmrj6py73pus", "uLP", 6)
	TERRASWAP_ASTROUSTLP, _    = NewCw20Token("terra1xwyhu8geetx2mv8429a3z5dyzr0ajqnmmn4rtr", "uLP", 6)
	TERRASWAP_AUSTUSTLP, _     = NewCw20Token("terra1umup8qvslkayek0af8u7x2r3r5ndhk2fwhdxz5", "uLP", 6)
	TERRASWAP_AUSTVUSTLP, _    = NewCw20Token("terra14d33ndaanjc802ural7uq8ck3n6smsy2e4r0rt", "uLP", 6)
	TERRASWAP_WHALEVUSTLP, _   = NewCw20Token("terra1hg3tr0gx2jfaw38m80s83c7khr4wgfvzyh5uak", "uLP", 6)
	TERRASWAP_BETHUSTLP, _     = NewCw20Token("terra1jvewsf7922dm47wr872crumps7ktxd7srwcgte", "uLP", 6)
	TERRASWAP_WHALEUSTLP, _    = NewCw20Token("terra17pqpurglgfqnvkhypask28c3llnf69cstaquke", "uLP", 6)
	TERRASWAP_SPECUSTLP, _     = NewCw20Token("terra1y9kxxm97vu4ex3uy0rgdr5h2vt7aze5sqx7jyl", "uLP", 6)
	TERRASWAP_STTUSTLP, _      = NewCw20Token("terra1uwhf02zuaw7grj6gjs7pxt5vuwm79y87ct5p70", "uLP", 6)
	TERRASWAP_TWDUSTLP, _      = NewCw20Token("terra1c9wr85y8p8989tr58flz5gjkqp8q2r6murwpm9", "uLP", 6)
	TERRASWAP_PSIUSTLP, _      = NewCw20Token("terra1q6r8hfdl203htfvpsmyh8x689lp2g0m7856fwd", "uLP", 6)
	TERRASWAP_PLYUSTLP, _      = NewCw20Token("terra1h69kvcmg8jnq7ph2r45k6md4afkl96ugg73amc", "uLP", 6)
	TERRASWAP_LOTAUSTLP, _     = NewCw20Token("terra1t4xype7nzjxrzttuwuyh9sglwaaeszr8l78u6e", "uLP", 6)
	TERRASWAP_APOLLOUSTLP, _   = NewCw20Token("terra1n3gt4k3vth0uppk0urche6m3geu9eqcyujt88q", "uLP", 6)
	TERRASWAP_VKRUSTLP, _      = NewCw20Token("terra17fysmcl52xjrs8ldswhz7n6mt37r9cmpcguack", "uLP", 6)
	TERRASWAP_ORIONUSTLP, _    = NewCw20Token("terra14ffp0waxcck733a9jfd58d86h9rac2chf5xhev", "uLP", 6)
	TERRASWAP_ATLOUSTLP, _     = NewCw20Token("terra1l0wqwge0vtfmukx028pluxsr7ee2vk8gl5mlxr", "uLP", 6)
	TERRASWAP_GLOWUSTLP, _     = NewCw20Token("terra1khm4az2cjlzl76885x2n7re48l9ygckjuye0mt", "uLP", 6)
	TERRASWAP_TNSUSTLP, _      = NewCw20Token("terra1kg9vmu4e43d3pz0dfsdg9vzwgnnuf6uf3z9jwj", "uLP", 6)
	TERRASWAP_LUVUSTLP, _      = NewCw20Token("terra1qq6g0kds9zn97lvrukf2qxf6w4sjt0k9jhcdty", "uLP", 6)
	TERRASWAP_ROBOUSTLP, _     = NewCw20Token("terra19ryu7a586s75ncw3ddc8julkszjht4ahwd7zja", "uLP", 6)
	TERRASWAP_XSDWHSDLP, _     = NewCw20Token("terra1z0vaks4wkehncztu2a3j2z4fj2gjsnyk2ng9xu", "uLP", 6)
	TERRASWAP_WHSDUSTLP, _     = NewCw20Token("terra13m7t5z9zvx2phtpa0k6lxht3qtjjhj68u0t0jz", "uLP", 6)
	TERRASWAP_NLUNAPSILP, _    = NewCw20Token("terra1tuw46dwfvahpcwf3ulempzsn9a0vhazut87zec", "uLP", 6)

	PRISM_PRISMUSTLP, _    = NewCw20Token("terra1wkv9htanake4yerrrjz8p5n40lyrjg9md28tg3", "uLP", 6)
	PRISM_PRISMLUNALP, _   = NewCw20Token("terra1af7hyx4ek8vqr8asmtujsyv7s3z6py3jgtsgh8", "uLP", 6)
	PRISM_PRISMPLUNALP, _  = NewCw20Token("terra1rjm3ca2xh2cfm6l6nsnvs6dqzed0lgzdydy7wf", "uLP", 6)
	PRISM_PRISMXPRISMLP, _ = NewCw20Token("terra1zuv05w52xvtn3td2lpfl3q9jj807533ew54f0x", "uLP", 6)
	PRISM_PRISMCLUNALP, _  = NewCw20Token("terra1vn5c4yf70aasrq50k2xdy3vn2s8vm40wmngljh", "uLP", 6)
	PRISM_PRISMYLUNALP, _  = NewCw20Token("terra1argcazqn3ukpyp0vmldxnf9qymnm6vfjaar94g", "uLP", 6)
)
View Source
var (
	Cw20TokenMap = map[string]Cw20Token{
		"terra188w26t95tf4dz77raftme8p75rggatxjxfeknw": SKUJI,
		"terra1xfsdgcemqwxp4hhnyk4rle6wr22sseq7j07dnn": KUJI,
		"terra1042wzrwg2uk6jqxjm34ysqquyr9esdgm5qyswz": XPRISM,
		"terra17wkadg0tah554r35x6wvff0y5s7ve8npcjfuhz": YLUNA,
		"terra1tlgelulz9pdkhls6uglfn5lmxarx7f2gxtdzh2": PLUNA,
		"terra1dh9478k2qvqhqeajhn75a2a7dsnf74y5ukregw": PRISM,
		"terra13zaagrrrxj47qjwczsczujlvnnntde7fdt0mau": CLUNA,
		"terra1xj49zyqrwpv5k928jwfpfy2ha668nwdgkwlrg3": ASTRO,
		"terra1f68wt2ch3cx2g62dxtc8v68mkdh5wchdgdjwz7": XASTRO,
		"terra100yeqvww74h4yaejj6h733thgcafdaukjtw397": APOLLO,
		"terra14z56l0fp2lsf86zy3hty2z47ezkhnthtr9yq76": ANC,
		"terra1kc87mu460fwkqte29rquh4hc20m54fxwtsx7gp": BLUNA,
		"terra1hzh9vpxhsk8253se0vv5jj6etdvxu3nv8z07zu": AUST,
		"terra1dzhzukyezv0etz22ud940z7adyv7xgcjkahuun": BETH,
		"terra15gwkyepfc6xgca5t5zefzwy42uts8l2m4g40k6": MIR,
		"terra1kcthelkax4j9x8d3ny6sdag0qmxxynl3qtcrpy": MINE,
		"terra13xujxcrc9dqft4p9a8ls0w3j0xnzm6y2uvve8n": STT,
		"terra12897djskt9rge8dtmm86w654g7kzckkd698608": PSI,
		"terra1dy9kmlm4anr92e42mrkjwzyvfqwz66un00rwr5": VKR,
		"terra1s5eczhe0h0jutf46re52x5z4r03c8hupacxmdr": SPEC,
		"terra1mddcdx0ujx89f38gu7zspk2r2ffdl5enyz2u03": ORION,
		"terra13zx49nk8wjavedjzu8xkk95r3t0ta43c9ptul7": GLOW,
		"terra1w8kvd6cqpsthupsk4l0clwnmek4l3zr7c84kwq": HALO,
		"terra1nef5jf6c7js9x6gkntlehgywvjlpytm7pcgkn4": LOOP,
		"terra13awdgcx40tz5uygkgm79dytez3x87rpg4uhnvu": PLY,
		"terra1php5m8a6qd68z02t3zpw4jv2pj4vgw4wz0t8mz": WHALE,
		"terra12hgwnpupflfpuual532wgrxu2gjp0tcagzgx4n": MARS,
		"terra1cl7whtrqmz5ldr553q69qahck8xvk80fm33qjx": ATLO,
		"terra1ez46kxtulsdv07538fh5ra5xj8l68mu8eg24vr": LOTA,
		"terra19djkaepjjswucys4npd5ltaxgsntl7jf0xz7w6": TWD,
		"terra17y9qkl8dfkeg4py7n0g5407emqnemc3yqk5rup": LUNAX,
		"terra1w0p5zre38ecdy3ez8efd5h9fvgum5s206xknrg": VUST,
		"terra1yg3j2s986nyp5z7r2lvt0hx3r0lnd7kwvwwtsc": STLUNA,
		"terra133chr09wu8sakfte5v7vd8qzq9vghtkv4tn0ur": WEWSTETH,
		"terra178v546c407pdnx5rer3hu8s2c0fc924k74ymnn": NETH,
		"terra169edevav3pdrtjcx35j6pvzuv54aevewar4nlh": XDEFI,
		"terra1vwz7t30q76s7xx6qgtxdqnu6vpr3ak3vw62ygk": LUART,
		"terra1hnezwjqlhzawcrfysczcxs6xqxu2jawn729kkf": ORNE,
	}
	NativeTokenMap = map[string]NativeToken{
		"uusd":  UST,
		"uluna": LUNA,
	}
)
View Source
var ErrNoRouteFund = errors.New("no route found")

Functions

func ComputeConstantProductSwap

func ComputeConstantProductSwap(offerPool decimal.Decimal, askPool decimal.Decimal, offerAmount decimal.Decimal, commissionRate decimal.Decimal) (decimal.Decimal, decimal.Decimal, decimal.Decimal, decimal.Decimal)

Types

type Account

type Account struct {
	AccountNumber uint64 `json:"account_number,string"`
	Sequence      uint64 `json:"sequence,string"`
}

type AssetInfo

type AssetInfo interface {
	IsNative() bool
	Id() string
}

type AssetInfoFactory

type AssetInfoFactory interface {
	DecodeFromJson(raw json.RawMessage) (AssetInfo, error)
	NewFromToken(token Token) AssetInfo
}

func NewAssetInfoFactory

func NewAssetInfoFactory() AssetInfoFactory

type BasePair

type BasePair struct {
	*Contract
	// contains filtered or unexported fields
}

func NewBasePair

func NewBasePair(lcd *LCDClient, contractAddress string, token1 Token, token2 Token, lpToken Cw20Token, commissionRate decimal.Decimal, aiFactory AssetInfoFactory) (*BasePair, error)

func (BasePair) CommissionRate

func (p BasePair) CommissionRate() decimal.Decimal

func (*BasePair) Config added in v0.18.0

func (p *BasePair) Config(ctx context.Context) (tokens []Token, lpToken Token, err error)

func (BasePair) ContractAddress

func (p BasePair) ContractAddress() msg.AccAddress

func (BasePair) ContractAddressString

func (p BasePair) ContractAddressString() string

func (*BasePair) Equals

func (p *BasePair) Equals(pair Pair) bool

func (BasePair) LpToken

func (p BasePair) LpToken() Cw20Token

func (BasePair) NewSimpleSwapMessage

func (p BasePair) NewSimpleSwapMessage(offerToken Token, amount decimal.Decimal) (msg.Msg, error)

func (BasePair) NewSwapMessage

func (p BasePair) NewSwapMessage(offerToken Token, amount decimal.Decimal, spread string, beliefPrice decimal.Decimal) (msg.Msg, error)

func (BasePair) NewWithdrawLiquidityMessage

func (p BasePair) NewWithdrawLiquidityMessage(amount decimal.Decimal) (msg.Msg, error)

func (BasePair) PoolInfo

func (p BasePair) PoolInfo(ctx context.Context) (PoolInfo, error)

func (*BasePair) SetLpToken

func (p *BasePair) SetLpToken(token Cw20Token)

func (*BasePair) SetToken1

func (p *BasePair) SetToken1(token Token)

func (*BasePair) SetToken2

func (p *BasePair) SetToken2(token Token)

func (BasePair) Share

func (p BasePair) Share(ctx context.Context, lpAmount decimal.Decimal) (token1Amount decimal.Decimal, token2Amount decimal.Decimal, err error)

func (BasePair) SimulateSwap

func (p BasePair) SimulateSwap(ctx context.Context, offer Token, amount decimal.Decimal) (decimal.Decimal, decimal.Decimal, decimal.Decimal, error)

func (*BasePair) String

func (p *BasePair) String() string

func (BasePair) Token1

func (p BasePair) Token1() Token

func (BasePair) Token2

func (p BasePair) Token2() Token

type BaseRouter

type BaseRouter struct {
	*Contract
	// contains filtered or unexported fields
}

func NewBaseRouter

func NewBaseRouter(lcd *LCDClient, contractAddress string, aiFactory AssetInfoFactory, operationFactory func(aiFactory AssetInfoFactory, offer Token, ask Token) interface{}) (*BaseRouter, error)

func (BaseRouter) ContractAddress

func (r BaseRouter) ContractAddress() msg.AccAddress

func (BaseRouter) FindAllRoutes

func (r BaseRouter) FindAllRoutes(offer Token, ask Token, maxLength int) []Route

func (BaseRouter) NewSwapMessageWithBestRoute added in v0.15.0

func (r BaseRouter) NewSwapMessageWithBestRoute(ctx context.Context, offer Token, ask Token, offerAmount decimal.Decimal, maxRouteLength int, maxSpread float64) (msg.Msg, error)

func (BaseRouter) NewSwapMessageWithRoute added in v0.15.0

func (r BaseRouter) NewSwapMessageWithRoute(route Route, offerAmount decimal.Decimal, askExpectedAmount decimal.Decimal, maxSpread float64) (msg.Msg, error)

func (*BaseRouter) SetPairs

func (r *BaseRouter) SetPairs(pairs ...Pair)

func (BaseRouter) SimulateSwap

func (r BaseRouter) SimulateSwap(ctx context.Context, offer Token, ask Token, amount decimal.Decimal, maxRouteLength int) (decimal.Decimal, Route, error)

func (BaseRouter) SimulateSwapWithRoute

func (r BaseRouter) SimulateSwapWithRoute(ctx context.Context, amount decimal.Decimal, route Route) (decimal.Decimal, error)

type Contract

type Contract struct {
	// contains filtered or unexported fields
}

func NewContract

func NewContract(lcd *LCDClient, contractAddress string) (*Contract, error)

func (*Contract) Client

func (c *Contract) Client() *LCDClient

func (*Contract) NewMsgExecuteContract added in v0.2.0

func (c *Contract) NewMsgExecuteContract(execMsg interface{}) (msg.Msg, error)

func (*Contract) QueryStore added in v0.2.0

func (c *Contract) QueryStore(ctx context.Context, query interface{}, response interface{}) error

type CreateTxOptions

type CreateTxOptions struct {
	Msgs []msg.Msg
	Memo string

	// Optional parameters
	AccountNumber uint64
	Sequence      uint64
	GasLimit      uint64
	FeeAmount     msg.Coins

	SignMode      tx.SignMode
	FeeGranter    msg.AccAddress
	TimeoutHeight uint64
}

CreateTxOptions tx creation options

type Cw20Token

type Cw20Token struct {
	// contains filtered or unexported fields
}

func Cw20TokenFromAddress

func Cw20TokenFromAddress(ctx context.Context, lcd *LCDClient, contractAddress string) (Cw20Token, error)

func NewCw20Token

func NewCw20Token(contractAddress string, symbol string, decimals uint8) (Cw20Token, error)

func (Cw20Token) Address

func (t Cw20Token) Address() msg.AccAddress

func (Cw20Token) Balance

func (t Cw20Token) Balance(ctx context.Context, lcd *LCDClient) (decimal.Decimal, error)

func (Cw20Token) BalanceOf

func (t Cw20Token) BalanceOf(ctx context.Context, lcd *LCDClient, address msg.AccAddress) (decimal.Decimal, error)

func (Cw20Token) Decimals

func (t Cw20Token) Decimals() uint8

func (Cw20Token) DecimalsAsInt32

func (t Cw20Token) DecimalsAsInt32() int32

func (Cw20Token) Equals

func (t Cw20Token) Equals(token Token) bool

func (Cw20Token) Id

func (t Cw20Token) Id() string

func (Cw20Token) IsNative

func (t Cw20Token) IsNative() bool

func (Cw20Token) NewMsgSendExecute

func (t Cw20Token) NewMsgSendExecute(contract *Contract, amount decimal.Decimal, execMsg interface{}) (msg.Msg, error)

func (Cw20Token) String

func (t Cw20Token) String() string

func (Cw20Token) Symbol

func (t Cw20Token) Symbol() string

func (Cw20Token) ValueFromTerra

func (t Cw20Token) ValueFromTerra(value decimal.Decimal) decimal.Decimal

func (Cw20Token) ValueToTerra

func (t Cw20Token) ValueToTerra(value decimal.Decimal) decimal.Decimal

type Factory

type Factory struct {
	*Contract
}

func NewFactory

func NewFactory(lcd *LCDClient, contractAddress string) (*Factory, error)

func (*Factory) Pairs

func (f *Factory) Pairs(ctx context.Context) ([]string, error)

type LCDClient

type LCDClient struct {
	URL           string
	ChainID       string
	GasPrice      msg.DecCoin
	GasAdjustment msg.Dec

	PrivKey        key.PrivKey
	EncodingConfig terraappparams.EncodingConfig
	// contains filtered or unexported fields
}

func NewLCDClient

func NewLCDClient(URL, chainID string, gasPrice msg.DecCoin, gasAdjustment msg.Dec, tmKey key.PrivKey, httpTimeout time.Duration) *LCDClient

NewLCDClient create new LCDClient

func (*LCDClient) Balance

func (lcd *LCDClient) Balance(ctx context.Context, token NativeToken, addr msg.AccAddress) (decimal.Decimal, error)

func (*LCDClient) Broadcast

func (lcd *LCDClient) Broadcast(ctx context.Context, txbuilder *tx.Builder) (*sdk.TxResponse, error)

func (*LCDClient) ComputeTax

func (lcd *LCDClient) ComputeTax(ctx context.Context, txbuilder tx.Builder) (*customauthtx.ComputeTaxResponse, error)

func (*LCDClient) CreateAndSignTx

func (lcd *LCDClient) CreateAndSignTx(ctx context.Context, options CreateTxOptions) (*tx.Builder, error)

CreateAndSignTx build and sign tx

func (*LCDClient) EstimateFee

func (lcd *LCDClient) EstimateFee(ctx context.Context, options CreateTxOptions) (decimal.Decimal, error)

func (*LCDClient) ExecuteAndWaitFor

func (lcd *LCDClient) ExecuteAndWaitFor(ctx context.Context, messages ...msg.Msg) error

func (*LCDClient) IsSyncing

func (lcd *LCDClient) IsSyncing(ctx context.Context) (bool, error)

func (*LCDClient) LatestBlockInfo

func (lcd *LCDClient) LatestBlockInfo(ctx context.Context) (int64, time.Time, error)

func (*LCDClient) LoadAccount

func (lcd *LCDClient) LoadAccount(ctx context.Context, address msg.AccAddress) (Account, error)

func (*LCDClient) PublicAddress

func (lcd *LCDClient) PublicAddress() msg.AccAddress

func (*LCDClient) QueryContractStore

func (lcd *LCDClient) QueryContractStore(ctx context.Context, addr msg.AccAddress, Msg interface{}, result interface{}) error

func (*LCDClient) Simulate

func (lcd *LCDClient) Simulate(ctx context.Context, txbuilder tx.Builder, options CreateTxOptions) (*sdktx.SimulateResponse, error)

type NativeToken

type NativeToken struct {
	// contains filtered or unexported fields
}

func NativeTokenFromDenom

func NativeTokenFromDenom(denom string) NativeToken

func NewNativeToken

func NewNativeToken(symbol string, denom string) NativeToken

func (NativeToken) Address

func (n NativeToken) Address() msg.AccAddress

func (NativeToken) Balance

func (n NativeToken) Balance(ctx context.Context, lcd *LCDClient) (decimal.Decimal, error)

func (NativeToken) BalanceOf

func (n NativeToken) BalanceOf(ctx context.Context, lcd *LCDClient, address msg.AccAddress) (decimal.Decimal, error)

func (NativeToken) Decimals

func (n NativeToken) Decimals() uint8

func (NativeToken) DecimalsAsInt32

func (n NativeToken) DecimalsAsInt32() int32

func (NativeToken) Denom

func (n NativeToken) Denom() string

func (NativeToken) Equals

func (n NativeToken) Equals(token Token) bool

func (NativeToken) Id

func (n NativeToken) Id() string

func (NativeToken) IsNative

func (n NativeToken) IsNative() bool

func (NativeToken) NewMsgSendExecute

func (n NativeToken) NewMsgSendExecute(contract *Contract, amount decimal.Decimal, execMsg interface{}) (msg.Msg, error)

func (NativeToken) String

func (n NativeToken) String() string

func (NativeToken) Symbol

func (n NativeToken) Symbol() string

func (NativeToken) ValueFromTerra

func (n NativeToken) ValueFromTerra(value decimal.Decimal) decimal.Decimal

func (NativeToken) ValueToTerra

func (n NativeToken) ValueToTerra(value decimal.Decimal) decimal.Decimal

type Pair

type Pair interface {
	CommissionRate() decimal.Decimal
	LpToken() Cw20Token
	Token1() Token
	Token2() Token
	ContractAddressString() string
	ContractAddress() msg.AccAddress

	PoolInfo(ctx context.Context) (PoolInfo, error)
	NewWithdrawLiquidityMessage(amount decimal.Decimal) (msg.Msg, error)
	Share(ctx context.Context, lpAmount decimal.Decimal) (token1Amount decimal.Decimal, token2Amount decimal.Decimal, err error)
	NewSimpleSwapMessage(offerToken Token, amount decimal.Decimal) (msg.Msg, error)
	NewSwapMessage(offerToken Token, amount decimal.Decimal, spread string, beliefPrice decimal.Decimal) (msg.Msg, error)
	SimulateSwap(ctx context.Context, offer Token, amount decimal.Decimal) (decimal.Decimal, decimal.Decimal, decimal.Decimal, error)
	Equals(pair Pair) bool
	String() string
}

type PoolInfo

type PoolInfo map[string]decimal.Decimal

type PriceService

type PriceService struct {
	// contains filtered or unexported fields
}

func NewPriceService

func NewPriceService(options ...PriceServiceOption) *PriceService

func (*PriceService) AddRouter

func (s *PriceService) AddRouter(router Router)

func (*PriceService) GetPriceCached added in v0.18.0

func (s *PriceService) GetPriceCached(ctx context.Context, token Token) (decimal.Decimal, error)

type PriceServiceOption added in v0.18.0

type PriceServiceOption func(s *PriceService) *PriceService

func WithCacheTimeout added in v0.18.0

func WithCacheTimeout(timeout time.Duration) PriceServiceOption

func WithMaxRouteLength added in v0.18.0

func WithMaxRouteLength(maxRouteLenght int) PriceServiceOption

type Route

type Route []RoutePair

func NewRoute

func NewRoute(pairs ...RoutePair) Route

func (Route) AskToken

func (r Route) AskToken() Token

func (Route) Contains

func (r Route) Contains(pair Pair) bool

func (Route) Copy

func (r Route) Copy() Route

func (Route) CopyAndAdd

func (r Route) CopyAndAdd(pair RoutePair) Route

func (Route) First

func (r Route) First() RoutePair

func (Route) GenerateArbitrageMessages

func (r Route) GenerateArbitrageMessages(offerAmount decimal.Decimal, pools map[Pair]PoolInfo) ([]msg.Msg, error)

func (Route) Last

func (r Route) Last() RoutePair

func (Route) OfferToken

func (r Route) OfferToken() Token

func (Route) Pairs

func (r Route) Pairs() []Pair

func (Route) SimulateSwap

func (r Route) SimulateSwap(offerAmount decimal.Decimal, pools map[Pair]PoolInfo) decimal.Decimal

func (Route) String

func (r Route) String() string

type RoutePair

type RoutePair struct {
	Pair          Pair
	IsToken1First bool
}

func NewRoutePair

func NewRoutePair(pair Pair, token1first bool) RoutePair

func (RoutePair) FirstToken

func (p RoutePair) FirstToken() Token

func (RoutePair) SecondToken

func (p RoutePair) SecondToken() Token

type RouteService

type RouteService interface {
	RegisterPairs(pairs ...Pair)
	FindRoutes(offer Token, ask Token, maxDepth int) []Route
	FindArbitrages(token Token, maxDepth int) []Route
	GetAllArbitrages(maxDepth int) []Route
}

func NewRouteService

func NewRouteService() RouteService

type Router

type Router interface {
	String() string
	SimulateSwapWithRoute(ctx context.Context, amount decimal.Decimal, route Route) (decimal.Decimal, error)
	SimulateSwap(ctx context.Context, offer Token, ask Token, amount decimal.Decimal, maxRouteLength int) (decimal.Decimal, Route, error)
	FindAllRoutes(offer Token, ask Token, maxLength int) []Route

	NewSwapMessageWithRoute(route Route, offerAmount decimal.Decimal, askExpectedAmount decimal.Decimal, maxSpread float64) (msg.Msg, error)
	NewSwapMessageWithBestRoute(ctx context.Context, offer Token, ask Token, offerAmount decimal.Decimal, maxRouteLength int, maxSpread float64) (msg.Msg, error)
}

type StandardAssetInfo

type StandardAssetInfo struct {
	Token       *cw20TokenAssetInfo   `json:"token,omitempty"`
	NativeToken *nativeTokenAssetInfo `json:"native_token,omitempty"`
}

func (StandardAssetInfo) Id

func (ai StandardAssetInfo) Id() string

func (StandardAssetInfo) IsNative

func (ai StandardAssetInfo) IsNative() bool

type Token

type Token interface {
	Id() string
	Address() msg.AccAddress
	Symbol() string
	Decimals() uint8
	Balance(context.Context, *LCDClient) (decimal.Decimal, error)
	BalanceOf(context.Context, *LCDClient, msg.AccAddress) (decimal.Decimal, error)

	IsNative() bool

	ValueFromTerra(value decimal.Decimal) decimal.Decimal
	ValueToTerra(value decimal.Decimal) decimal.Decimal

	NewMsgSendExecute(contract *Contract, amount decimal.Decimal, execMsg interface{}) (msg.Msg, error)

	Equals(Token) bool

	String() string
}

func GetTokenFromAssetInfo

func GetTokenFromAssetInfo(ctx context.Context, lcd *LCDClient, ai AssetInfo) (Token, error)

Directories

Path Synopsis
protocols

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL