Commit Graph

139 Commits

Author SHA1 Message Date
Jędrzej Stuczyński 03aec96592 Defined DenomDetails that explicitly sets base and display names (#1389)
* Defined DenomDetails that explicitly sets base and display names

* missed substitutions

* Unused imports
2022-06-23 11:31:59 +01:00
Jon Häggblad 736fcafa9b rustfmt 2022-06-22 22:14:55 +02:00
Jędrzej Stuczyński 64687e9656 Removed mixnet contract migration 2022-06-22 17:55:14 +01:00
Jędrzej Stuczyński 49718e724e Removed mixnet contract migration 2022-06-22 17:51:38 +01:00
Jędrzej Stuczyński 8bce52f9a9 bump contract versions and update changelog 2022-06-22 17:02:07 +01:00
Drazen Urch 1178902634 Fix rewards bounds (#1391)
* Fix rewards bounds

* Fix operator reward calculation
2022-06-21 18:27:26 +02:00
Drazen Urch f3a926375a Change epoch length to 10 minutes (#1345)
* Change epoch length to 10 minutes

* Derive operator cost, and reward params from epoch length

* Fix tests

* Migrate back to hourly

* Remove length migration

* Push everything
2022-06-21 14:04:27 +02:00
Jędrzej Stuczyński 42ef2eb98c Bugfix/correct reward stake supply (#1373)
* Constructing `EpochRewardParams` with proper staking_supply

* Query for current staking supply

* More crate visibility on epoch reward params

* unused import

* Remove duplicate save of epoch_reward_params

* test fixes

* Changelog

* Moved PR references to correct section

* cargo fmt

* Removed old migration code
2022-06-20 18:25:22 +01:00
Jędrzej Stuczyński c0e178fdf7 Feature/bond queries (#1369)
* Added queries to get bond details by identity key

* Added relevant calls in the nymd client

* Changelog

* Removed unused import
2022-06-20 11:25:00 +01:00
Jędrzej Stuczyński 25a9fc85d2 Chore/lock file cleanup (#1360)
* Removed redundant lock files + updated cw3 and cw4 cw-storage-plus

addresses #1313

* Removed redundant lock files for clients

addresses #1314, #1315, #1316
2022-06-14 16:34:17 +01:00
Drazen Urch eff732aa2c Introduce staking supply, contract and wallet (#1324)
* Introduce staking supply, contract and wallet

* Migration staking supply (#1327)

* Staking supply to params migration

* Include into migration entrypoint

* StateParams merge

* Add changelog

* Make everyone happy
2022-06-10 12:36:35 +02:00
Jędrzej Stuczyński c13d3ab15d Updated cosmwasm dependencies to 1.0.0 (#1318)
* Updated cosmwasm dependencies to 1.0.0

* changelog
2022-06-07 12:55:10 +01:00
Drazen Urch 2f4be6dedc Add claim reward to vesting and mixnet contract (#1292)
* Add claim reward to vesting contract

* Add compound and claim methods to nymd client

* Add TrackReward message

* CHANGELOG
2022-05-31 11:06:10 +02:00
Drazen Urch 189b83e769 Fix uptime integer division, change lambda and sigma from ticked to regular (#1284)
* Add more data to reward-estimate response

* Fix uptime integer division error

* typo

* Reify tuple response

* Fix uptime calculation

* Use lambda and sigma instead of ticked versions for delegator and operator rewards calculation

* Changelog
2022-05-31 11:03:28 +02:00
Drazen Urch 5ce2e0c8bb Optimize fetch and loop (#1271)
* Optimize fetch and loop

* Better operator fetch

* cargo fmt
2022-05-19 11:33:11 +02:00
Drazen Urch c237b37ea6 Use saturating_sub for extra safety (#1258)
* Use saturating_sub for extra safety

* More saturating_sub

* Save some lines

* Add change log
2022-05-09 09:47:03 +02:00
Jędrzej Stuczyński f684664472 Removed an 'expect' in mixnet contract query (#1257)
* Removed an 'expect' in mixnet contract query

* Updated changelog
2022-05-06 14:28:57 +01:00
Drazen Urch b8ce97e005 Mitigate PM change attack (#1236)
* Mitigate PM change attack

* More paranoid test
2022-05-03 14:36:29 +02:00
durch 41319fe7ad Fix unbonding for new nodes 2022-05-03 14:36:29 +02:00
Drazen Urch b09db50bba Fix checkpointing (#1230)
* Fix checkpoint strategy and order, test

* Debug pending delegation events

* Debug print

* Switch print to log

* Add debug print

* More printing

* Remove problematic checkpoint

* checkpoint mixnodes in separate block

* more debugs

* Removing old migration just in case

* Printing all checkpoint heights at migration

* Purging old checkpoint from storage

* Attempting to load raw storage value

* More printing...

* Removed expect

* deserialization changes

* error handling

* cleanup

* clippy

* dead code

* Reduce minimum age for rewarding to 1 epoch

* Add checkpoint query

* Get checkpoint at height

* Fix delegation compounding, fix undelegate accumulate_rewards

* Fix potential overflow, add debug logging

* Moar logging

* Fix total_delegations + rewards

* Better error for horrible overflow

* fmt

* Fixed unit test assertions in bech32 validation

Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
2022-05-03 14:36:29 +02:00
durch be5421719c Fix undelegations 2022-05-03 14:36:29 +02:00
Drazen Urch c250492f50 Create a new bundled delegation when compounding rewards (#1221)
* Create a new bundled delegation when compounding rewards

* Cleanup migration code

* Revert "Cleanup migration code"

This reverts commit 21d8ad6388.
2022-04-25 20:34:43 +02:00
Jędrzej Stuczyński 8318002b0a Bugfix/delegation reconcile (#1219)
* Passing proxy value when attempting to compound delegator reward

* Do not attempt to delegate reward to mixnode if its zero

* Additional guards against sending 0 tokens

* Removed sign of sloppiness

* Fixes to rewards and delegation events storage

* Remove block count check, epoch cannot be advanced while in progress

* Add reward compound ops to vesting contract

* Migration to remove 0 value delegationns

Co-authored-by: durch <durch@users.noreply.github.com>
2022-04-25 12:01:45 +01:00
Jędrzej Stuczyński ce77b17534 Bugfix/query proxied pending delegations (#1218)
* Removed 'expect' from one of the queries

* Query for pending vesting delegation events
2022-04-22 14:51:53 +01:00
Jędrzej Stuczyński dd66697884 Release/1.0.0 rc.2 (#1214)
* Updated binaries versions to 1.0.0-rc.2

* Update GitHub Action to build nym binaries

* Fix contract bootstraping

* Relax the active_set check

* Cleanup migration

* Fix validator-api mainnet config

* Removed reward estimation ts-files

* Removed old migration tests

Co-authored-by: Mark Sinclair <mmsinclair@gmail.com>
Co-authored-by: durch <durch@users.noreply.github.com>
2022-04-21 10:36:48 +01:00
Jędrzej Stuczyński 046dd4cbba Bugfix/unique sphinx key (#1207)
* Cosmwasm beta6 => beta8 upgrade

* Introducing additional unique index constraint on sphinx key

* Unit test for checking for duplicate sphinx key

* Fixed other unit tests due to changed constraint
2022-04-13 10:56:39 +01:00
Drazen Urch d3372bfc85 Additional, more informative routes (#1204)
* Have reward set updater run its own timer (#1200)

* Have reward set updater run its own timer

* Filter rocket log spam

* Take last day of uptime for rewarding (#1202)

* Take last day of uptime for rewarding

* Rejigger calculations

* Blacklist based on last 24 hr

* Cleanup

* Clippy

* Additional, more informative routes

* Improve blacklist updates

* Fix rewards estimation
2022-04-12 11:55:32 +02:00
Dave Hrycyszyn c056269f0e Tagging release contracts 2022-04-05 15:37:38 +01:00
Drazen Urch a63a94623f Update and query rewarding validator address (#1193) 2022-04-04 16:55:46 +02:00
Drazen Urch 95b6ac50be Type safe bounds (#1179)
* Type safe bounds

* Debug get_all_delegations

* List raw delegations

* query all delegation values

* Get all keys and values

* Differentiate on len

* Clean up duplicates

* Remove stop gap

* Cleanup, fix paged query key

* Reduce queries required to get all delegations

* Sandbox migration

* Delete migration
2022-03-30 12:20:03 +02:00
Drazen Urch c2938e0672 Fix delegation paging (#1174)
* Fix delegation paging and tests

* Circuit breaker, upgrade storage and cosmwasm

* beta6

* Cleanup delegation events
2022-03-29 17:02:56 +02:00
Tommy Verrall 8d7428923a Update binaries to rc version 2022-03-28 15:32:31 +01:00
durch e1efcda3dd Test last paged page 2022-03-25 11:09:46 +01:00
Drazen Urch 59056a22c5 Feature/upgrade rewarding sandbox (#1167)
* Add init_epoch msg

* Use 64BE ctr variant

* Remove query_all_delegations

* Comment migration
2022-03-25 10:57:49 +01:00
durch ecd566432b Improve pagination test 2022-03-24 10:50:23 +01:00
durch 5eb2249ad5 Regenerate mixnet json schema 2022-03-23 20:40:24 +01:00
durch ddc09bbb2e Additive rewarding test stub 2022-03-22 12:09:41 +01:00
Drazen Urch 071720c1cc Cleanup (#1155) 2022-03-21 18:24:40 +01:00
Drazen Urch 592b3b3bb1 Pending endpoints (#1150)
* Add QueryPendingDelegationEvents QueryMsg

* Add pending_delegation_events to nymd client

* Add pending delegation events to wallet

* Get rid of double epoch accounting

* Fix reward saving

* Try batching operations to reduce fees

* Bundle all transactions into one

* make nice
2022-03-21 10:07:51 +01:00
Drazen Urch 63dd26ca1b Add Query endpoints for calculating rewards (#1152) 2022-03-18 15:44:26 +01:00
Drazen Urch f24d6e224d Change accumulated reward to Option, migrate delegations (#1147)
* Change accumulated reward to Option, migrate delegations

* Remove interval from the validator cache

* Add info to db errors

* Remove interval fetch from the contract

* Rework epochs

* Fix undelegation errors

* Emit error event instead of error

* make no-clippy

* Fix clippy lints
2022-03-17 12:03:05 +01:00
Drazen Urch b30f680549 Refactor to a lazy rewarding system (#1127)
* Remove eager operator and delegator rewarding

* Add mixnodes snapshoting

* Add Intervals map, getter and setter

* Refactor reward params

* Refactor MixnodeToReward

* Persist node reward params and results on chain

* Update cw-storage-plus to 0.12.1

* Refactor delegation storage

* Compound delegator reward command

* Compound delegator reward command

* Add defered delegate and undelegate

* Compound on behalf command

* Scale calculations to epoch

* Rename interval -> epoch where practical

* Store epochs on chain

* Cleanup first pass

* Adapt reporting to lazy rewarding

* make clippy --all
2022-03-09 14:28:16 +01:00
Jon Häggblad acb1aa8df0 network-defaults: make defaults a bit more dynamic
By attaching network defaults to the selector enum, we can get them
either from DEFAULT_NETWORK or a selector passed as a dependency.
Hopefully this opens up some venues for being able to toggle between
networks at runtime.
2022-03-03 13:26:53 +01:00
Jędrzej Stuczyński 448aba0917 Fixed dependencies in mixnet contract tests 2022-03-02 12:51:58 +00:00
Jędrzej Stuczyński af4801ac47 Removes migration code (#1071) 2022-02-22 09:54:57 +00:00
Drazen Urch 938eb2d0f0 Add UpdateMixnodeConfigOnBehalf to vestng contract (#1091)
* Add UpdateMixnodeConfigOnBehalf

* Rename one_u* function
2022-02-11 12:15:00 +01:00
Jędrzej Stuczyński 4c65ef3a2f Emit original bond as part of rewarding event 2022-02-03 09:52:44 +00:00
Jon Häggblad e24f8aa219 Fix rust 2018 idioms warnings (#1092)
* Fix elided-lifetimes-in-paths warnings

Enabling `-Wrust-2018-idioms` generates `-Welided-lifetimes-in-paths`
warnings about hidden lifetime parameters in types being deprecated

* Unused extern crate
2022-02-02 20:47:28 +01:00
Drazen Urch fe33df723b Tag contract errors, and print out lines for easier QA (#1084)
* Tag contract errors, and print out lines for easier QA

* Allow updating mixnet address by admin

* Add reply endpoint, and unbond callback

* Extract vesting messages

* Wrap up
2022-02-01 18:10:33 +01:00
Jon Häggblad c6e41ca3f3 Update to rust edition 2021 everywhere (#1086)
* chore: update to rust edition 2021 everywhere

* validator-api: simplify into_iter call in rust 2021
2022-02-01 13:28:02 +01:00