Kind Realm (renderable)
Name router
Namespace gnoswap
Exported functions 14
Module gno.land/r/gnoswap/router
gno 0.9 types.gno gno
⧉
1 package router 2 3 type IRouter interface { 4 // ExactInSwapRoute executes a multi-hop exact-input swap. 5 // 6 // Parameters: 7 // - _: leading implementation discriminator; callers pass 0 DrySwapRoute (inputToken string, outputToken string, specifiedAmount string, swapTypeStr string, strRouteArr string, quoteArr string, tokenAmountLimit string) (string, string, interface {Error func() string})
ExactInSingleSwapRoute (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, inputToken string, outputToken string, amountIn string, routeArr string, amountOutMin string, sqrtPriceLimitX96 string, deadline int64, referrer string) (string, string)
ExactInSwapRoute (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, inputToken string, outputToken string, amountIn string, routeArr string, quoteArr string, amountOutMin string, deadline int64, referrer string) (string, string)
ExactOutSingleSwapRoute (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, inputToken string, outputToken string, amountOut string, routeArr string, amountInMax string, sqrtPriceLimitX96 string, deadline int64, referrer string) (string, string)
ExactOutSwapRoute (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, inputToken string, outputToken string, amountOut string, routeArr string, quoteArr string, amountInMax string, deadline int64, referrer string) (string, string)
GetImplementationPackagePath () string
GetPendingProtocolFees () map[string]int64
GetSwapFee () uint64
NewRouterStore (kvStore interface {AddAuthorizedCaller func(int, .uverse.realm, .uverse.address, gno.land/p/gnoswap/store/v1.Permission) .uverse.error; Delete func(int, .uverse.realm, string) .uverse.error; Get func(string) (interface {}, .uverse.error); GetAddress func(string) (.uverse.address, .uverse.error); GetAllKeys func() ([]string, .uverse.error); GetAuthorizedCallers func() (map[.uverse.address]gno.land/p/gnoswap/store/v1.Permission, .uverse.error); GetBPTree func(string) (*gno.land/p/nt/bptree/v0.BPTree, .uverse.error); GetBool func(string) (bool, .uverse.error); GetDomainAddress func() .uverse.address; GetInt64 func(string) (int64, .uverse.error); GetString func(string) (string, .uverse.error); GetUint64 func(string) (uint64, .uverse.error); Has func(string) bool; IsWriteAuthorized func(.uverse.address) bool; RemoveAuthorizedCaller func(int, .uverse.realm, .uverse.address) .uverse.error; Set func(int, .uverse.realm, string, interface {}) .uverse.error; UpdateAuthorizedCaller func(int, .uverse.realm, .uverse.address, gno.land/p/gnoswap/store/v1.Permission) .uverse.error}) interface {GetPendingProtocolFee func(string) int64; GetPendingProtocolFees func() map[string]int64; GetSwapFee func() uint64; HasPendingProtocolFeesKey func() bool; HasSwapFeeKey func() bool; RemovePendingProtocolFee func(int, .uverse.realm, string) .uverse.error; SetPendingProtocolFee func(int, .uverse.realm, string, int64) .uverse.error; SetPendingProtocolFees func(int, .uverse.realm, map[string]int64) .uverse.error; SetSwapFee func(int, .uverse.realm, uint64) .uverse.error}
RegisterInitializer (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, initializer func(int, .uverse.realm, gno.land/r/gnoswap/router.IRouterStore) gno.land/r/gnoswap/router.IRouter)
Render (path string) string
SetSwapFee (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, fee uint64)
SwapCallback (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, token0Path string, token1Path string, amount0Delta int64, amount1Delta int64, payer string) interface {Error func() string}
UpgradeImpl (cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, packagePath string)
Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.
8 // - rlm: propagated current realm context used for swap validation and transfers
9 // - inputToken: input token contract path
10 // - outputToken: output token contract path
11 // - amountIn: exact input amount encoded as a decimal string
12 // - routeArr: comma-separated route paths, each with up to three pool hops
13 // - quoteArr: comma-separated route allocation percentages summing to 100
14 // - amountOutMin: minimum net output amount encoded as a decimal string
15 // - deadline: Unix timestamp after which the swap is rejected
16 // - referrer: optional referral address used for registration
17 //
18 // Returns:
19 // - amountIn: actual input amount consumed, encoded as a decimal string
20 // - amountOut: net output amount after router fee, encoded as a decimal string
21 ExactInSwapRoute(_ int , rlm realm, inputToken string , outputToken string , amountIn string , routeArr string , quoteArr string , amountOutMin string , deadline int64 , referrer string ) ( string , string )
22 // ExactInSingleSwapRoute executes an exact-input swap through one pool.
23 //
24 // Parameters:
25 // - _: leading implementation discriminator; callers pass 0
26 // - rlm: propagated current realm context used for swap validation and transfers
27 // - inputToken: input token contract path
28 // - outputToken: output token contract path
29 // - amountIn: exact input amount encoded as a decimal string
30 // - routeArr: single-hop route path
31 // - amountOutMin: minimum net output amount encoded as a decimal string
32 // - sqrtPriceLimitX96: optional Q64.96 square-root price limit encoded as a decimal string
33 // - deadline: Unix timestamp after which the swap is rejected
34 // - referrer: optional referral address used for registration
35 //
36 // Returns:
37 // - amountIn: actual input amount consumed, encoded as a decimal string
38 // - amountOut: net output amount after router fee, encoded as a decimal string
39 ExactInSingleSwapRoute(_ int , rlm realm, inputToken string , outputToken string , amountIn string , routeArr string , amountOutMin string , sqrtPriceLimitX96 string , deadline int64 , referrer string ) ( string , string )
40
41 // ExactOutSwapRoute executes a multi-hop swap for a requested net output.
42 //
43 // Parameters:
44 // - _: leading implementation discriminator; callers pass 0
45 // - rlm: propagated current realm context used for swap validation and transfers
46 // - inputToken: input token contract path
47 // - outputToken: output token contract path
48 // - amountOut: requested net output amount encoded as a decimal string
49 // - routeArr: comma-separated route paths, each with up to three pool hops
50 // - quoteArr: comma-separated route allocation percentages summing to 100
51 // - amountInMax: maximum input amount encoded as a decimal string
52 // - deadline: Unix timestamp after which the swap is rejected
53 // - referrer: optional referral address used for registration
54 //
55 // Returns:
56 // - amountIn: actual input amount consumed, encoded as a decimal string
57 // - amountOut: net output amount after router fee, encoded as a decimal string
58 ExactOutSwapRoute(_ int , rlm realm, inputToken string , outputToken string , amountOut string , routeArr string , quoteArr string , amountInMax string , deadline int64 , referrer string ) ( string , string )
59 // ExactOutSingleSwapRoute executes an exact-output swap through one pool.
60 //
61 // Parameters:
62 // - _: leading implementation discriminator; callers pass 0
63 // - rlm: propagated current realm context used for swap validation and transfers
64 // - inputToken: input token contract path
65 // - outputToken: output token contract path
66 // - amountOut: requested net output amount encoded as a decimal string
67 // - routeArr: single-hop route path
68 // - amountInMax: maximum input amount encoded as a decimal string
69 // - sqrtPriceLimitX96: optional Q64.96 square-root price limit encoded as a decimal string
70 // - deadline: Unix timestamp after which the swap is rejected
71 // - referrer: optional referral address used for registration
72 //
73 // Returns:
74 // - amountIn: actual input amount consumed, encoded as a decimal string
75 // - amountOut: net output amount after router fee, encoded as a decimal string
76 ExactOutSingleSwapRoute(_ int , rlm realm, inputToken string , outputToken string , amountOut string , routeArr string , amountInMax string , sqrtPriceLimitX96 string , deadline int64 , referrer string ) ( string , string )
77
78 // DrySwapRoute simulates a route without writing state or transferring tokens.
79 //
80 // Parameters:
81 // - inputToken: input token contract path
82 // - outputToken: output token contract path
83 // - specifiedAmount: exact input or output amount encoded as a decimal string
84 // - swapTypeStr: swap type string, either EXACT_IN or EXACT_OUT
85 // - strRouteArr: comma-separated encoded route paths
86 // - quoteArr: comma-separated route allocation percentages summing to 100
87 // - tokenAmountLimit: minimum output for EXACT_IN or maximum input for EXACT_OUT
88 //
89 // Returns:
90 // - amountIn: simulated input amount encoded as a decimal string
91 // - amountOut: simulated net output amount encoded as a decimal string
92 // - err: nil on success; validation, liquidity, or slippage error on failure
93 DrySwapRoute(inputToken, outputToken, specifiedAmount, swapTypeStr, strRouteArr, quoteArr, tokenAmountLimit string ) ( string , string , error )
94 // SwapCallback pays a pool's positive input delta during a swap.
95 //
96 // Parameters:
97 // - _: leading callback discriminator; callers pass 0
98 // - rlm: propagated current realm context; implementation verifies it is current
99 // - token0Path: token-0 contract path in canonical pool order
100 // - token1Path: token-1 contract path in canonical pool order
101 // - amount0Delta: signed token-0 delta; positive means the pool is owed tokens
102 // - amount1Delta: signed token-1 delta; positive means the pool is owed tokens
103 // - payer: address whose balance supplies the positive delta
104 //
105 // Returns:
106 // - err: nil after payment; error when realm, liquidity delta, or transfer validation fails
107 SwapCallback(_ int , rlm realm, token0Path string , token1Path string , amount0Delta int64 , amount1Delta int64 , payer address) error
108 // GetSwapFee reads the router fee rate.
109 //
110 // Returns:
111 // - fee: router fee in basis points
112 GetSwapFee() uint64
113 // SetSwapFee updates the router fee rate.
114 //
115 // Parameters:
116 // - _: leading call discriminator; callers pass 0
117 // - rlm: propagated current realm context used for authorized storage writes
118 // - fee: router fee in basis points
119 SetSwapFee(_ int , rlm realm, fee uint64 )
120 // GetPendingProtocolFees reads pending protocol fees keyed by token path.
121 //
122 // Returns:
123 // - fees: token-path to pending-fee amount map
124 GetPendingProtocolFees() map [ string ] int64
125 Render(path string ) string
126 }
127
128 type IRouterStore interface {
129 // HasSwapFeeKey reports whether a stored router fee exists.
130 //
131 // Returns:
132 // - exists: true when the swap-fee key is present
133 HasSwapFeeKey() bool
134 // GetSwapFee reads the stored router fee.
135 //
136 // Returns:
137 // - fee: configured router fee in basis points
138 GetSwapFee() uint64
139 // SetSwapFee persists the router fee.
140 //
141 // Parameters:
142 // - _: leading call discriminator; callers pass 0
143 // - rlm: propagated current realm context; storage validates current-frame status
144 // - fee: router fee in basis points
145 //
146 // Returns:
147 // - err: nil on success; storage or realm-validation error otherwise
148 SetSwapFee(_ int , rlm realm, fee uint64 ) error
149 // HasPendingProtocolFeesKey reports whether a stored pending-fees map exists.
150 //
151 // Returns:
152 // - exists: true when the pending-fees key is present
153 HasPendingProtocolFeesKey() bool
154 // GetPendingProtocolFees reads all pending protocol fees.
155 //
156 // Returns:
157 // - fees: token-path to pending-fee amount map
158 GetPendingProtocolFees() map [ string ] int64
159 // SetPendingProtocolFees replaces all pending protocol fees.
160 //
161 // Parameters:
162 // - _: leading call discriminator; callers pass 0
163 // - rlm: propagated current realm context; storage validates current-frame status
164 // - fees: token-path to pending-fee amount map to persist
165 //
166 // Returns:
167 // - err: nil on success; storage or realm-validation error otherwise
168 SetPendingProtocolFees(_ int , rlm realm, fees map [ string ] int64 ) error
169 // GetPendingProtocolFee reads one token's pending fee.
170 //
171 // Parameters:
172 // - tokenPath: token contract path to query
173 //
174 // Returns:
175 // - amount: pending amount for tokenPath, or zero if absent
176 GetPendingProtocolFee(tokenPath string ) int64
177 // SetPendingProtocolFee updates one token's pending fee.
178 //
179 // Parameters:
180 // - _: leading call discriminator; callers pass 0
181 // - rlm: propagated current realm context; storage validates current-frame and write authorization
182 // - tokenPath: token contract path to update
183 // - amount: pending amount to record
184 //
185 // Returns:
186 // - err: nil on success; realm or storage authorization error otherwise
187 SetPendingProtocolFee(_ int , rlm realm, tokenPath string , amount int64 ) error
188 // RemovePendingProtocolFee deletes one token's pending fee.
189 //
190 // Parameters:
191 // - _: leading call discriminator; callers pass 0
192 // - rlm: propagated current realm context; storage validates current-frame and write authorization
193 // - tokenPath: token contract path to remove
194 //
195 // Returns:
196 // - err: nil on success; realm or storage authorization error otherwise
197 RemovePendingProtocolFee(_ int , rlm realm, tokenPath string ) error
198 }
199
vm/qrender output, sanitized (docs/render-security.md) and displayed in an empty-sandbox iframe — scripts, forms and popups cannot run. Links stay inert in-preview; right-click to open.