go-aptos-liquidswap

A go sdk for liquidswap on aptos.

Install

go get github.com/coming-chat/go-aptos-liquidswap

Usage

Get amount out:

amountOut := GetAmountOut(Coin{Symbol: "USDT"}, Coin{Symbol: "BTC"}, big.NewInt(1000000), PoolResource{
					CoinXReserve: big.NewInt(10415880990),
					CoinYReserve: big.NewInt(3004784231600),
				})

Calc amount min out:

amountMinOut := AmountMinOut(amountOut, decimal.NewFromFloat(0.005))

Get amount in:

amountIn := GetAmountIn(Coin{Symbol: "USDT"}, Coin{Symbol: "BTC"}, big.NewInt(1000000), PoolResource{
					CoinXReserve: big.NewInt(10415880990),
					CoinYReserve: big.NewInt(3004784231600),
				})

Get amount max in:

amountMaxOut := AmountMaxIn(amountIn, decimal.NewFromFloat(0.005))

Create payload info:

params := &SwapParams{
        Script:           "0x123::scripts",
        FromCoin:         "0x123::BTC",
        ToCoin:           "0x123::APT",
        FromAmount:       big.NewInt(1),
        ToAmount:         big.NewInt(266607),
        InteractiveToken: "from",  // from|to, from - exactIn  to - exactOut
        Slippage:         decimal.NewFromFloat(0.005),
        Pool: Pool{
            LpToken:       "0x123::lp<0x123::APT,0x123::BTC>",
            ModuleAddress: "0x1234",
            Address:       "0x12345",
        },
    }
payload, err := CreateSwapPayload(params)

GitHub

View Github