Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

pool package

Function

Swap

func Swap( cur realm, token0Path string, token1Path string, fee uint32, recipient address, zeroForOne bool, amountSpecified string, sqrtPriceLimitX96 string, swapCallback func(cur realm, amount0Delta, amount1Delta int64, callbackMarker *CallbackMarker) error, ) (string, string)

Swap executes a token swap in the pool.

Parameters:

  • cur: Current realm context; callers use cross(cur) when crossing into this realm.
  • token0Path: Path of the first token in the pool pair.
  • token1Path: Path of the second token in the pool pair.
  • fee: Fee tier identifying the pool.
  • recipient: Address receiving output tokens.
  • zeroForOne: True to sell token0 for token1; false to sell token1 for token0.
  • amountSpecified: Decimal signed amount; positive requests exact input and negative requests exact output.
  • sqrtPriceLimitX96: Price boundary in Q64.96 fixed-point form at which the swap must stop.
  • swapCallback: Callback invoked with the current realm, signed token deltas, and a callback marker; it must settle the input token and return a non-nil error to abort settlement.

Returns:

  • amount0: Signed token0 delta for the swap, as a decimal string.
  • amount1: Signed token1 delta for the swap, as a decimal string.

Halt check: reverts while the Pool halt scope is active.

Params

Command

# WARNING: This command is running in an INSECURE mode.
# It is strongly recommended to use a hardware device for signing
# and avoid trusting any computer connected to the internet,
# as your private keys could be exposed.

gnokey maketx call -pkgpath "gno.land/r/gnoswap/pool" -func "Swap" -args $'' -args $'' -args $'' -args $'' -args $'' -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -chainid "gnoland-1" -remote "http://127.0.0.1:26657" ADDRESSgnokey query -remote "http://127.0.0.1:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/gnoswap/pool" -func "Swap" -args $'' -args $'' -args $'' -args $'' -args $'' -args $'' -args $'' -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast=false ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland-1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "http://127.0.0.1:26657" call.tx