-
Notifications
You must be signed in to change notification settings - Fork 122
Description
Describe the bug
When a Stacks Pool (a signle Stacks address) uses multiple signers, the "stackers-for-signer-in-cycle" endpoint incorrectly returns the stackers assigned to each signer.
To Reproduce
Consistent reproduction of the issue can be achieved using clarinet:
1. Create a pool key + address
Can use one of the pre-seeded wallets, e.g. wallet_5
as the Pool Admin.
2. Set up clarinet with three signers.
Add the private keys to settings/Devnet.toml
:
[devnet]
stacks_signers_keys = [
"1234...0001",
"1234...0002",
"1234...0003"
]
# ... other props
3. Stack against these signers
Create a few (e.g. 100) random wallets, fund them by pulling funds from the pre-seeded wallets, and delegate their funds to the pool.
The pool admin then stacks these funds, evenly distributing them among the three signers.
Expected behavior
When querying the "stackers-for-signer-in-cycle" endpoint, each signer should have the stackers it was assigned.
Actual behavior
Two things stand out:
Bug 1: The API seems to assign all stackers to a single signer. The results for each signer will look something like:
Signer 1: 100 stackers
Signer 2: 0 stackers
Signer 3: 0 stackers
Bug 2: As stackers continue to be added, the API will at some point start to "drop" them. For example, after stacking ~400 stackers, the API will return something like:
Signer 1: 233 stackers (expecting 400)
Signer 2: 0 stackers
Signer 3: 0 stackers
Desktop (please complete the following information):
- OS: MacOS 15.5
- Clarinet: clarinet 3.7.0