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

community_pool/v1 package

Overview

Package community_pool manages the GnoSwap community treasury.

This contract holds registered protocol-owned assets. The emission system routes its configured community-pool share here, and external governance may use proposal execution to authorize a spend. Proposal and voting state are outside this package: TransferToken is a direct admin-or-governance entry point subject to the withdrawal halt and token-transfer validation.

Governance is the recommended normal route. While governance is not yet mature, admin access is retained for emergency-only use as an operational policy. The contract does not verify an emergency or require proposal approval for admin calls, and admin access does not expire automatically.

Functions

GetBalanceOf

func GetBalanceOf(tokenPath string) (int64, error)

GetBalanceOf returns the community pool's balance for a registered token.

Parameters:

  • tokenPath: registry key/path of the token contract whose balance is queried

Returns:

  • balance: token units held by the configured community-pool address, or 0 when validation fails
  • err: nil when tokenPath is valid and registered; non-nil for an invalid or unregistered tokenPath

Param

Command

gnokey query vm/qeval -remote "http://127.0.0.1:26657" -data "gno.land/r/gnoswap/community_pool/v1.GetBalanceOf()"

Result

Render

func Render(path string) string

Render shows the authorities and withdrawal gate used by treasury transfers.

Param

Command

gnokey query vm/qeval -remote "http://127.0.0.1:26657" -data "gno.land/r/gnoswap/community_pool/v1.Render()"

Result

TransferToken

func TransferToken(cur realm, tokenPath string, to address, amount int64)

TransferToken transfers token units from the community pool to an address.

Parameters:

  • cur: current realm context; callers use cross(cur) when crossing into this realm
  • tokenPath: registry key/path of the registered token to transfer
  • to: recipient address for the token units
  • amount: number of token units to transfer; transfer failure panics through the safe wrapper

Only callable by admin or governance while withdrawals are not halted. Governance is the recommended normal route. While governance is not yet mature, admin access is retained for emergency-only use as an operational policy, not a contract-enforced condition. Admin calls do not require an approved proposal; emergency status is not checked and admin access does not expire automatically.

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/community_pool/v1" -func "TransferToken" -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/community_pool/v1" -func "TransferToken" -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