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

/ratelimit package

Overview

Package ratelimit ports golang.org/x/time/rate (the standard Go token-bucket rate limiter) to an on-chain gno.land realm.

Each caller address owns a token bucket with a fixed capacity (burst) that refills at a steady rate expressed in tokens per block. There is no wall clock on-chain, so runtime.ChainHeight() is the monotonic clock: between two observations at heights `last` and `now`, the bucket gains (now-last)*rate tokens, capped at `burst`. Everything is pure, integer/ float arithmetic over persistent avl state, hence deterministic.

Function

Tokens

func Tokens(addr address) int

Tokens is a read-only view of how many whole tokens `addr` has available at the current block height, without mutating any state.

Param

Command

gnokey query vm/qeval -remote "https://rpc.topaz.testnets.gno.land" -data "gno.land/r/g12cs4cehujpffpjpywmkqj43m6u5ya53nj69sjz/ratelimit.Tokens()"

Result