Kind Realm (renderable)
Name protocol_fee
Namespace gnoswap
Exported functions 29
Module gno.land/r/gnoswap/protocol_fee
gno 0.9 types.gno gno
⧉
1 package protocol_fee 2 3 import bptree "gno.land/p/nt/bptree/v0" 4 5 type IProtocolFee interface { 6 IProtocolFeeManager 7 IProtocolFeeGetter 8 AddToProtocolFee (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}, tokenPath string, amount int64) interface {Error func() string}
AdvanceAccrualEpoch (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}) int64
ConsumeAccrualBuckets (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}, tokenPath string, limit int) ([]int64, []int64)
DistributeProtocolFee (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})
DistributeProtocolFeeByTokenPath (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}, tokenPath string)
GetAccrualBuckets (tokenPath string, limit int) ([]int64, []int64)
GetAccrualEpoch () int64
GetAccrualPendingTokens () []string
GetAccuTransfersToDevOps () map[string]int64
GetAccuTransfersToGovStaker () map[string]int64
GetAccuTransferToDevOpsByTokenPath (tokenPath string) int64
GetAccuTransferToGovStakerByTokenPath (tokenPath string) int64
GetActualDistributedToDevOps () map[string]int64
GetActualDistributedToDevOpsByTokenPath (tokenPath string) int64
GetActualDistributedToGovStaker () map[string]int64
GetActualDistributedToGovStakerByTokenPath (tokenPath string) int64
GetDevOpsPct () int64
GetDomainPath () string
GetGovStakerPct () int64
GetImplementationPackagePath () string
GetReservedTokens () []string
GetVersionPackagePath () string
NewBPTreeN (fanout int) *gno.land/p/nt/bptree/v0.BPTree
NewProtocolFeeStore (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 {AddAccrualBucket func(int, .uverse.realm, string, int64, int64) .uverse.error; AddAccrualPendingToken func(int, .uverse.realm, string) .uverse.error; AddReservedToken func(int, .uverse.realm, string) .uverse.error; GetAccrualBuckets func(string, int) ([]int64, []int64); GetAccrualEpoch func() int64; GetAccrualPendingTokens func() []string; GetAccuToDevOps func() *gno.land/p/nt/bptree/v0.BPTree; GetAccuToDevOpsItem func(string) (int64, bool); GetAccuToGovStaker func() *gno.land/p/nt/bptree/v0.BPTree; GetAccuToGovStakerItem func(string) (int64, bool); GetDevOpsPct func() int64; GetDistributedToDevOpsHistory func() *gno.land/p/nt/bptree/v0.BPTree; GetDistributedToDevOpsHistoryItem func(string) (int64, bool); GetDistributedToGovStakerHistory func() *gno.land/p/nt/bptree/v0.BPTree; GetDistributedToGovStakerHistoryItem func(string) (int64, bool); GetReservedTokens func() []string; HasAccrualBucketsStoreKey func() bool; HasAccrualEpochStoreKey func() bool; HasAccrualPendingTokensStoreKey func() bool; HasAccuToDevOpsStoreKey func() bool; HasAccuToGovStakerStoreKey func() bool; HasDevOpsPctStoreKey func() bool; HasDistributedToDevOpsHistoryStoreKey func() bool; HasDistributedToGovStakerHistoryStoreKey func() bool; HasReservedToken func(string) bool; HasReservedTokensStoreKey func() bool; InitializeAccrualBuckets func(int, .uverse.realm) .uverse.error; InitializeAccrualEpoch func(int, .uverse.realm) .uverse.error; InitializeAccrualPendingTokens func(int, .uverse.realm) .uverse.error; InitializeAccuToDevOps func(int, .uverse.realm) .uverse.error; InitializeAccuToGovStaker func(int, .uverse.realm) .uverse.error; InitializeDevOpsPct func(int, .uverse.realm) .uverse.error; InitializeDistributedToDevOpsHistory func(int, .uverse.realm) .uverse.error; InitializeDistributedToGovStakerHistory func(int, .uverse.realm) .uverse.error; InitializeReservedTokens func(int, .uverse.realm) .uverse.error; RemoveAccrualBuckets func(int, .uverse.realm, string, []int64) .uverse.error; RemoveAccrualPendingToken func(int, .uverse.realm, string) .uverse.error; RemoveReservedToken func(int, .uverse.realm, string) .uverse.error; SetAccrualEpoch func(int, .uverse.realm, int64) .uverse.error; SetAccuToDevOpsItem func(int, .uverse.realm, string, int64) .uverse.error; SetAccuToGovStakerItem func(int, .uverse.realm, string, int64) .uverse.error; SetDevOpsPct func(int, .uverse.realm, int64) .uverse.error; SetDistributedToDevOpsHistoryItem func(int, .uverse.realm, string, int64) .uverse.error; SetDistributedToGovStakerHistoryItem func(int, .uverse.realm, string, int64) .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/protocol_fee.IProtocolFeeStore) gno.land/r/gnoswap/protocol_fee.IProtocolFee)
Render (path string) string
SetDevOpsPct (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}, pct int64)
SetGovStakerPct (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}, pct int64)
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.
Render(path string ) string
9 }
10
11 type IProtocolFeeManager interface {
12 // Mutating methods take `_ int, rlm realm` so a leading integer discriminator
13 // (callers pass 0) and the current protocol_fee realm context are threaded
14 // from proxy entry points down to cross-realm token transfers and store writes
15 // performed inside each implementation. The discriminator is explicit at every
16 // call site, making the realm threading visible to readers.
17 // DistributeProtocolFee distributes all reserved protocol fees to DevOps and
18 // GovStaker according to the configured allocation percentages.
19 //
20 // Parameters:
21 // - _: cross-call discriminator; callers pass 0
22 // - rlm: propagated protocol_fee realm context; implementation validates it as current
23 DistributeProtocolFee(_ int , rlm realm)
24
25 // DistributeProtocolFeeByTokenPath distributes the reserved fee for one token path.
26 //
27 // Parameters:
28 // - _: cross-call discriminator; callers pass 0
29 // - rlm: propagated protocol_fee realm context; implementation validates it as current
30 // - tokenPath: token contract path whose reserved fee should be distributed
31 DistributeProtocolFeeByTokenPath(_ int , rlm realm, tokenPath string )
32
33 // SetDevOpsPct updates the DevOps share; the GovStaker share becomes 10000 minus pct.
34 //
35 // Parameters:
36 // - _: cross-call discriminator; callers pass 0
37 // - rlm: propagated protocol_fee realm context; implementation validates it as current
38 // - pct: DevOps allocation in basis-point units, from 0 through 10000 inclusive
39 SetDevOpsPct(_ int , rlm realm, pct int64 )
40
41 // SetGovStakerPct updates the GovStaker share; the DevOps share becomes 10000 minus pct.
42 //
43 // Parameters:
44 // - _: cross-call discriminator; callers pass 0
45 // - rlm: propagated protocol_fee realm context; implementation validates it as current
46 // - pct: GovStaker allocation in basis-point units, from 0 through 10000 inclusive
47 SetGovStakerPct(_ int , rlm realm, pct int64 )
48
49 // AddToProtocolFee records and pulls an approved fee from an authorized protocol caller.
50 //
51 // Parameters:
52 // - _: cross-call discriminator; callers pass 0
53 // - rlm: propagated protocol_fee realm context; implementation rejects a non-current value
54 // - tokenPath: token contract path from which the approved fee is pulled
55 // - amount: non-negative fee amount in token base units; zero is a successful no-op
56 //
57 // Returns:
58 // - err: nil after accounting and transfer succeed; an error when realm validation, halt checks, or storage/transfer operations fail
59 AddToProtocolFee(_ int , rlm realm, tokenPath string , amount int64 ) error
60
61 // AdvanceAccrualEpoch closes the current epoch and selects the next epoch for new fees.
62 //
63 // Parameters:
64 // - _: cross-call discriminator; callers pass 0
65 // - rlm: propagated protocol_fee realm context; implementation validates it as current
66 //
67 // Returns:
68 // - epoch: newly stored non-negative accrual epoch
69 AdvanceAccrualEpoch(_ int , rlm realm) int64
70
71 // ConsumeAccrualBuckets removes pending buckets for one token in epoch order.
72 //
73 // Parameters:
74 // - _: cross-call discriminator; callers pass 0
75 // - rlm: propagated protocol_fee realm context; implementation validates it as current
76 // - tokenPath: token contract path whose pending GovStaker buckets are consumed
77 // - limit: maximum number of oldest buckets; zero or negative consumes all pending buckets
78 //
79 // Returns:
80 // - epochs: consumed epoch numbers in ascending order
81 // - amounts: fee amounts corresponding positionally to epochs, in token base units
82 ConsumeAccrualBuckets(_ int , rlm realm, tokenPath string , limit int ) ([] int64 , [] int64 )
83 }
84
85 type IProtocolFeeGetter interface {
86 // GetDevOpsPct returns the configured DevOps allocation.
87 //
88 // Returns:
89 // - pct: DevOps fee allocation in basis-point units, from 0 through 10000
90 GetDevOpsPct() int64
91
92 // GetGovStakerPct returns the configured GovStaker allocation.
93 //
94 // Returns:
95 // - pct: GovStaker fee allocation in basis-point units, from 0 through 10000
96 GetGovStakerPct() int64
97
98 // GetReservedTokens returns token paths whose collected fees await distribution.
99 //
100 // Returns:
101 // - tokenPaths: token contract paths in the reserved-token index
102 GetReservedTokens() [] string
103
104 // GetAccuTransfersToGovStaker returns cumulative allocations assigned to GovStaker.
105 //
106 // Returns:
107 // - transfers: map from token contract path to cumulative allocated amount in base units
108 GetAccuTransfersToGovStaker() map [ string ] int64
109
110 // GetAccuTransfersToDevOps returns cumulative allocations assigned to DevOps.
111 //
112 // Returns:
113 // - transfers: map from token contract path to cumulative allocated amount in base units
114 GetAccuTransfersToDevOps() map [ string ] int64
115
116 // GetAccuTransferToGovStakerByTokenPath returns the GovStaker allocation for one token.
117 //
118 // Parameters:
119 // - path: token contract path whose cumulative GovStaker allocation is queried
120 //
121 // Returns:
122 // - amount: cumulative GovStaker allocation for path in token base units, or zero if absent
123 GetAccuTransferToGovStakerByTokenPath(path string ) int64
124
125 // GetAccuTransferToDevOpsByTokenPath returns the DevOps allocation for one token.
126 //
127 // Parameters:
128 // - path: token contract path whose cumulative DevOps allocation is queried
129 //
130 // Returns:
131 // - amount: cumulative DevOps allocation for path in token base units, or zero if absent
132 GetAccuTransferToDevOpsByTokenPath(path string ) int64
133
134 // GetActualDistributedToGovStaker returns cumulative amounts transferred to GovStaker.
135 //
136 // Returns:
137 // - transfers: map from token contract path to cumulative amount actually transferred in base units
138 GetActualDistributedToGovStaker() map [ string ] int64
139
140 // GetActualDistributedToDevOps returns cumulative amounts transferred to DevOps.
141 //
142 // Returns:
143 // - transfers: map from token contract path to cumulative amount actually transferred in base units
144 GetActualDistributedToDevOps() map [ string ] int64
145
146 // GetActualDistributedToGovStakerByTokenPath returns the completed GovStaker transfer for one token.
147 //
148 // Parameters:
149 // - path: token contract path whose completed GovStaker transfer is queried
150 //
151 // Returns:
152 // - amount: cumulative GovStaker amount actually transferred for path in base units, or zero if absent
153 GetActualDistributedToGovStakerByTokenPath(path string ) int64
154
155 // GetActualDistributedToDevOpsByTokenPath returns the completed DevOps transfer for one token.
156 //
157 // Parameters:
158 // - path: token contract path whose completed DevOps transfer is queried
159 //
160 // Returns:
161 // - amount: cumulative DevOps amount actually transferred for path in base units, or zero if absent
162 GetActualDistributedToDevOpsByTokenPath(path string ) int64
163
164 // GetAccrualEpoch returns the epoch assigned to newly collected GovStaker fees.
165 //
166 // Returns:
167 // - epoch: current non-negative accrual epoch
168 GetAccrualEpoch() int64
169
170 // GetAccrualPendingTokens returns token paths that still have pending accrual buckets.
171 //
172 // Returns:
173 // - tokenPaths: token contract paths with at least one pending GovStaker accrual bucket
174 GetAccrualPendingTokens() [] string
175
176 // GetAccrualBuckets reads pending token buckets without removing them.
177 //
178 // Parameters:
179 // - tokenPath: token contract path whose GovStaker accrual buckets are queried
180 // - limit: maximum number of oldest buckets; zero or negative returns all pending buckets
181 //
182 // Returns:
183 // - epochs: selected accrual epoch numbers in ascending order
184 // - amounts: fee amounts corresponding positionally to epochs, in token base units
185 GetAccrualBuckets(tokenPath string , limit int ) ([] int64 , [] int64 )
186 }
187
188 type IProtocolFeeStore interface {
189 // HasDevOpsPctStoreKey reports whether the persisted DevOps percentage key exists.
190 //
191 // Returns:
192 // - exists: true when the DevOps percentage key is present in the KV store
193 HasDevOpsPctStoreKey() bool
194
195 // InitializeDevOpsPct creates the DevOps percentage key with its default value.
196 //
197 // Parameters:
198 // - _: cross-call discriminator; callers pass 0
199 // - rlm: propagated protocol_fee realm context required for the authorized store write
200 //
201 // Returns:
202 // - err: nil when initialization succeeds; an error for invalid realm context or KV-store failure
203 InitializeDevOpsPct(_ int , rlm realm) error
204
205 // GetDevOpsPct reads the persisted DevOps percentage.
206 //
207 // Returns:
208 // - pct: stored DevOps allocation in basis-point units
209 GetDevOpsPct() int64
210
211 // SetDevOpsPct persists a new DevOps percentage.
212 //
213 // Parameters:
214 // - _: cross-call discriminator; callers pass 0
215 // - rlm: propagated protocol_fee realm context required for the authorized store write
216 // - pct: DevOps allocation in basis-point units
217 //
218 // Returns:
219 // - err: nil when the value is stored; an error for invalid realm context or KV-store failure
220 SetDevOpsPct(_ int , rlm realm, pct int64 ) error
221
222 // HasAccuToGovStakerStoreKey reports whether the GovStaker allocation tree key exists.
223 //
224 // Returns:
225 // - exists: true when the cumulative GovStaker allocation tree is present in the KV store
226 HasAccuToGovStakerStoreKey() bool
227
228 // InitializeAccuToGovStaker creates the cumulative GovStaker allocation tree.
229 //
230 // Parameters:
231 // - _: cross-call discriminator; callers pass 0
232 // - rlm: propagated protocol_fee realm context required for the authorized store write
233 //
234 // Returns:
235 // - err: nil when initialization succeeds; an error for invalid realm context or KV-store failure
236 InitializeAccuToGovStaker(_ int , rlm realm) error
237
238 // GetAccuToGovStaker returns the tree of cumulative GovStaker allocations by token.
239 //
240 // Returns:
241 // - tree: persistent BPTree keyed by token path with int64 allocation values
242 GetAccuToGovStaker() *bptree.BPTree
243
244 // GetAccuToGovStakerItem reads one token's cumulative GovStaker allocation.
245 //
246 // Parameters:
247 // - tokenPath: token contract path used as the allocation-tree key
248 //
249 // Returns:
250 // - amount: stored allocation in token base units, or zero when tokenPath is absent
251 // - exists: true when tokenPath has a stored allocation; false when absent
252 GetAccuToGovStakerItem(tokenPath string ) ( int64 , bool )
253
254 // SetAccuToGovStakerItem stores one token's cumulative GovStaker allocation.
255 //
256 // Parameters:
257 // - _: cross-call discriminator; callers pass 0
258 // - rlm: propagated protocol_fee realm context required for the authorized store write
259 // - tokenPath: token contract path used as the allocation-tree key
260 // - amount: cumulative GovStaker allocation in token base units to store
261 //
262 // Returns:
263 // - err: nil when the value is stored; an error for invalid realm context, missing tree, or KV-store failure
264 SetAccuToGovStakerItem(_ int , rlm realm, tokenPath string , amount int64 ) error
265
266 // HasAccuToDevOpsStoreKey reports whether the DevOps allocation tree key exists.
267 //
268 // Returns:
269 // - exists: true when the cumulative DevOps allocation tree is present in the KV store
270 HasAccuToDevOpsStoreKey() bool
271
272 // InitializeAccuToDevOps creates the cumulative DevOps allocation tree.
273 //
274 // Parameters:
275 // - _: cross-call discriminator; callers pass 0
276 // - rlm: propagated protocol_fee realm context required for the authorized store write
277 //
278 // Returns:
279 // - err: nil when initialization succeeds; an error for invalid realm context or KV-store failure
280 InitializeAccuToDevOps(_ int , rlm realm) error
281
282 // GetAccuToDevOps returns the tree of cumulative DevOps allocations by token.
283 //
284 // Returns:
285 // - tree: persistent BPTree keyed by token path with int64 allocation values
286 GetAccuToDevOps() *bptree.BPTree
287
288 // GetAccuToDevOpsItem reads one token's cumulative DevOps allocation.
289 //
290 // Parameters:
291 // - tokenPath: token contract path used as the allocation-tree key
292 //
293 // Returns:
294 // - amount: stored allocation in token base units, or zero when tokenPath is absent
295 // - exists: true when tokenPath has a stored allocation; false when absent
296 GetAccuToDevOpsItem(tokenPath string ) ( int64 , bool )
297
298 // SetAccuToDevOpsItem stores one token's cumulative DevOps allocation.
299 //
300 // Parameters:
301 // - _: cross-call discriminator; callers pass 0
302 // - rlm: propagated protocol_fee realm context required for the authorized store write
303 // - tokenPath: token contract path used as the allocation-tree key
304 // - amount: cumulative DevOps allocation in token base units to store
305 //
306 // Returns:
307 // - err: nil when the value is stored; an error for invalid realm context, missing tree, or KV-store failure
308 SetAccuToDevOpsItem(_ int , rlm realm, tokenPath string , amount int64 ) error
309
310 // HasDistributedToGovStakerHistoryStoreKey reports whether the GovStaker history tree key exists.
311 //
312 // Returns:
313 // - exists: true when the cumulative GovStaker distribution-history tree is present
314 HasDistributedToGovStakerHistoryStoreKey() bool
315
316 // InitializeDistributedToGovStakerHistory creates the GovStaker distribution-history tree.
317 //
318 // Parameters:
319 // - _: cross-call discriminator; callers pass 0
320 // - rlm: propagated protocol_fee realm context required for the authorized store write
321 //
322 // Returns:
323 // - err: nil when initialization succeeds; an error for invalid realm context or KV-store failure
324 InitializeDistributedToGovStakerHistory(_ int , rlm realm) error
325
326 // GetDistributedToGovStakerHistory returns cumulative actual GovStaker transfers by token.
327 //
328 // Returns:
329 // - tree: persistent BPTree keyed by token path with int64 transferred amounts
330 GetDistributedToGovStakerHistory() *bptree.BPTree
331
332 // GetDistributedToGovStakerHistoryItem reads one token's actual GovStaker transfer.
333 //
334 // Parameters:
335 // - tokenPath: token contract path used as the history-tree key
336 //
337 // Returns:
338 // - amount: stored transferred amount in token base units, or zero when tokenPath is absent
339 // - exists: true when tokenPath has a stored history amount; false when absent
340 GetDistributedToGovStakerHistoryItem(tokenPath string ) ( int64 , bool )
341
342 // SetDistributedToGovStakerHistoryItem stores one token's actual GovStaker transfer.
343 //
344 // Parameters:
345 // - _: cross-call discriminator; callers pass 0
346 // - rlm: propagated protocol_fee realm context required for the authorized store write
347 // - tokenPath: token contract path used as the history-tree key
348 // - amount: cumulative amount actually transferred to GovStaker in token base units
349 //
350 // Returns:
351 // - err: nil when the value is stored; an error for invalid realm context, missing tree, or KV-store failure
352 SetDistributedToGovStakerHistoryItem(_ int , rlm realm, tokenPath string , amount int64 ) error
353
354 // HasDistributedToDevOpsHistoryStoreKey reports whether the DevOps history tree key exists.
355 //
356 // Returns:
357 // - exists: true when the cumulative DevOps distribution-history tree is present
358 HasDistributedToDevOpsHistoryStoreKey() bool
359
360 // InitializeDistributedToDevOpsHistory creates the DevOps distribution-history tree.
361 //
362 // Parameters:
363 // - _: cross-call discriminator; callers pass 0
364 // - rlm: propagated protocol_fee realm context required for the authorized store write
365 //
366 // Returns:
367 // - err: nil when initialization succeeds; an error for invalid realm context or KV-store failure
368 InitializeDistributedToDevOpsHistory(_ int , rlm realm) error
369
370 // GetDistributedToDevOpsHistory returns cumulative actual DevOps transfers by token.
371 //
372 // Returns:
373 // - tree: persistent BPTree keyed by token path with int64 transferred amounts
374 GetDistributedToDevOpsHistory() *bptree.BPTree
375
376 // GetDistributedToDevOpsHistoryItem reads one token's actual DevOps transfer.
377 //
378 // Parameters:
379 // - tokenPath: token contract path used as the history-tree key
380 //
381 // Returns:
382 // - amount: stored transferred amount in token base units, or zero when tokenPath is absent
383 // - exists: true when tokenPath has a stored history amount; false when absent
384 GetDistributedToDevOpsHistoryItem(tokenPath string ) ( int64 , bool )
385
386 // SetDistributedToDevOpsHistoryItem stores one token's actual DevOps transfer.
387 //
388 // Parameters:
389 // - _: cross-call discriminator; callers pass 0
390 // - rlm: propagated protocol_fee realm context required for the authorized store write
391 // - tokenPath: token contract path used as the history-tree key
392 // - amount: cumulative amount actually transferred to DevOps in token base units
393 //
394 // Returns:
395 // - err: nil when the value is stored; an error for invalid realm context, missing tree, or KV-store failure
396 SetDistributedToDevOpsHistoryItem(_ int , rlm realm, tokenPath string , amount int64 ) error
397
398 // HasReservedTokensStoreKey reports whether the reserved-token index key exists.
399 //
400 // Returns:
401 // - exists: true when the reserved-token index is present in the KV store
402 HasReservedTokensStoreKey() bool
403
404 // InitializeReservedTokens creates the empty reserved-token index.
405 //
406 // Parameters:
407 // - _: cross-call discriminator; callers pass 0
408 // - rlm: propagated protocol_fee realm context required for the authorized store write
409 //
410 // Returns:
411 // - err: nil when initialization succeeds; an error for invalid realm context or KV-store failure
412 InitializeReservedTokens(_ int , rlm realm) error
413
414 // GetReservedTokens returns token paths currently marked as awaiting distribution.
415 //
416 // Returns:
417 // - tokenPaths: keys in the reserved-token index
418 GetReservedTokens() [] string
419
420 // HasReservedToken reports whether tokenPath is in the reserved-token index.
421 //
422 // Parameters:
423 // - tokenPath: token contract path to look up in the reserved-token index
424 //
425 // Returns:
426 // - exists: true when tokenPath is reserved for distribution
427 HasReservedToken(tokenPath string ) bool
428
429 // AddReservedToken marks tokenPath as awaiting fee distribution.
430 //
431 // Parameters:
432 // - _: cross-call discriminator; callers pass 0
433 // - rlm: propagated protocol_fee realm context required for the authorized store write
434 // - tokenPath: token contract path to add to the reserved-token index
435 //
436 // Returns:
437 // - err: nil when added or already present; an error for invalid realm context or KV-store failure
438 AddReservedToken(_ int , rlm realm, tokenPath string ) error
439
440 // RemoveReservedToken removes tokenPath from the reserved-token index when present.
441 //
442 // Parameters:
443 // - _: cross-call discriminator; callers pass 0
444 // - rlm: propagated protocol_fee realm context required for the authorized store write
445 // - tokenPath: token contract path to remove from the reserved-token index
446 //
447 // Returns:
448 // - err: nil when removed or already absent; an error for invalid realm context or KV-store failure
449 RemoveReservedToken(_ int , rlm realm, tokenPath string ) error
450
451 // HasAccrualEpochStoreKey reports whether the accrual-epoch key exists.
452 //
453 // Returns:
454 // - exists: true when the current accrual epoch is present in the KV store
455 HasAccrualEpochStoreKey() bool
456
457 // InitializeAccrualEpoch creates the accrual-epoch key with epoch zero.
458 //
459 // Parameters:
460 // - _: cross-call discriminator; callers pass 0
461 // - rlm: propagated protocol_fee realm context required for the authorized store write
462 //
463 // Returns:
464 // - err: nil when initialization succeeds; an error for invalid realm context or KV-store failure
465 InitializeAccrualEpoch(_ int , rlm realm) error
466
467 // GetAccrualEpoch reads the epoch currently assigned to newly collected fees.
468 //
469 // Returns:
470 // - epoch: current non-negative accrual epoch
471 GetAccrualEpoch() int64
472
473 // SetAccrualEpoch persists a new current accrual epoch.
474 //
475 // Parameters:
476 // - _: cross-call discriminator; callers pass 0
477 // - rlm: propagated protocol_fee realm context required for the authorized store write
478 // - accrualEpoch: epoch number to store for subsequently collected fees
479 //
480 // Returns:
481 // - err: nil when the epoch is stored; an error for invalid realm context or KV-store failure
482 SetAccrualEpoch(_ int , rlm realm, accrualEpoch int64 ) error
483
484 // HasAccrualBucketsStoreKey reports whether the accrual-buckets tree key exists.
485 //
486 // Returns:
487 // - exists: true when the per-token accrual-bucket tree is present
488 HasAccrualBucketsStoreKey() bool
489
490 // InitializeAccrualBuckets creates the empty per-token accrual-bucket tree.
491 //
492 // Parameters:
493 // - _: cross-call discriminator; callers pass 0
494 // - rlm: propagated protocol_fee realm context required for the authorized store write
495 //
496 // Returns:
497 // - err: nil when initialization succeeds; an error for invalid realm context or KV-store failure
498 InitializeAccrualBuckets(_ int , rlm realm) error
499
500 // GetAccrualBuckets reads the oldest pending buckets for one token without removing them.
501 //
502 // Parameters:
503 // - tokenPath: token contract path whose accrual buckets are queried
504 // - limit: maximum number of oldest buckets; zero or negative returns all pending buckets
505 //
506 // Returns:
507 // - epochs: selected accrual epoch numbers in ascending order
508 // - amounts: bucket amounts corresponding positionally to epochs, in token base units
509 GetAccrualBuckets(tokenPath string , limit int ) ([] int64 , [] int64 )
510
511 // AddAccrualBucket adds amount to one token's bucket for an accrual epoch.
512 //
513 // Parameters:
514 // - _: cross-call discriminator; callers pass 0
515 // - rlm: propagated protocol_fee realm context required for the authorized store write
516 // - tokenPath: token contract path whose accrual bucket is updated
517 // - epoch: accrual epoch receiving the fee amount
518 // - amount: fee amount in token base units to add to that epoch bucket
519 //
520 // Returns:
521 // - err: nil when the bucket is stored; an error for invalid realm context or KV-store failure
522 AddAccrualBucket(_ int , rlm realm, tokenPath string , epoch int64 , amount int64 ) error
523
524 // RemoveAccrualBuckets removes specified epoch buckets for one token.
525 //
526 // Parameters:
527 // - _: cross-call discriminator; callers pass 0
528 // - rlm: propagated protocol_fee realm context required for the authorized store write
529 // - tokenPath: token contract path whose buckets are removed
530 // - epochs: accrual epoch numbers to remove; an empty result removes no buckets
531 //
532 // Returns:
533 // - err: nil when removal succeeds; an error for invalid realm context or KV-store failure
534 RemoveAccrualBuckets(_ int , rlm realm, tokenPath string , epochs [] int64 ) error
535
536 // HasAccrualPendingTokensStoreKey reports whether the pending-token index key exists.
537 //
538 // Returns:
539 // - exists: true when the index of tokens with pending buckets is present
540 HasAccrualPendingTokensStoreKey() bool
541
542 // InitializeAccrualPendingTokens creates the empty pending-token index.
543 //
544 // Parameters:
545 // - _: cross-call discriminator; callers pass 0
546 // - rlm: propagated protocol_fee realm context required for the authorized store write
547 //
548 // Returns:
549 // - err: nil when initialization succeeds; an error for invalid realm context or KV-store failure
550 InitializeAccrualPendingTokens(_ int , rlm realm) error
551
552 // GetAccrualPendingTokens returns token paths indexed as owning pending buckets.
553 //
554 // Returns:
555 // - tokenPaths: token contract paths present in the pending-token index
556 GetAccrualPendingTokens() [] string
557
558 // AddAccrualPendingToken marks a token path as owning at least one pending bucket.
559 //
560 // Parameters:
561 // - _: cross-call discriminator; callers pass 0
562 // - rlm: propagated protocol_fee realm context required for the authorized store write
563 // - tokenPath: token contract path to add to the pending-token index
564 //
565 // Returns:
566 // - err: nil when added or already present; an error for invalid realm context or KV-store failure
567 AddAccrualPendingToken(_ int , rlm realm, tokenPath string ) error
568
569 // RemoveAccrualPendingToken removes a token path from the pending-token index when present.
570 //
571 // Parameters:
572 // - _: cross-call discriminator; callers pass 0
573 // - rlm: propagated protocol_fee realm context required for the authorized store write
574 // - tokenPath: token contract path to remove after its pending buckets are consumed
575 //
576 // Returns:
577 // - err: nil when removed or already absent; an error for invalid realm context or KV-store failure
578 RemoveAccrualPendingToken(_ int , rlm realm, tokenPath string ) error
579 }
580
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.