Some checks failed
Build SimApp / build (amd64) (push) Waiting to run
Build SimApp / build (arm64) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Build & Push / build (push) Waiting to run
Run Gosec / Gosec (push) Waiting to run
Lint / golangci-lint (push) Waiting to run
Checks dependencies and mocks generation / Check go mod tidy (push) Waiting to run
Checks dependencies and mocks generation / Check up to date mocks (push) Waiting to run
System Tests / setup (push) Waiting to run
System Tests / test-system (push) Blocked by required conditions
System Tests / test-system-legacy (push) Blocked by required conditions
Tests / Code Coverage / split-test-files (push) Waiting to run
Tests / Code Coverage / tests (00) (push) Blocked by required conditions
Tests / Code Coverage / tests (01) (push) Blocked by required conditions
Tests / Code Coverage / tests (02) (push) Blocked by required conditions
Tests / Code Coverage / tests (03) (push) Blocked by required conditions
Tests / Code Coverage / test-integration (push) Waiting to run
Tests / Code Coverage / test-e2e (push) Waiting to run
Tests / Code Coverage / repo-analysis (push) Blocked by required conditions
Tests / Code Coverage / test-sim-nondeterminism (push) Waiting to run
Tests / Code Coverage / test-clientv2 (push) Waiting to run
Tests / Code Coverage / test-core (push) Waiting to run
Tests / Code Coverage / test-depinject (push) Waiting to run
Tests / Code Coverage / test-errors (push) Waiting to run
Tests / Code Coverage / test-math (push) Waiting to run
Tests / Code Coverage / test-schema (push) Waiting to run
Tests / Code Coverage / test-collections (push) Waiting to run
Tests / Code Coverage / test-cosmovisor (push) Waiting to run
Tests / Code Coverage / test-confix (push) Waiting to run
Tests / Code Coverage / test-store (push) Waiting to run
Tests / Code Coverage / test-log (push) Waiting to run
Tests / Code Coverage / test-x-tx (push) Waiting to run
Tests / Code Coverage / test-x-nft (push) Waiting to run
Tests / Code Coverage / test-x-circuit (push) Waiting to run
Tests / Code Coverage / test-x-feegrant (push) Waiting to run
Tests / Code Coverage / test-x-evidence (push) Waiting to run
Tests / Code Coverage / test-x-upgrade (push) Waiting to run
Tests / Code Coverage / test-tools-benchmark (push) Waiting to run
Build & Push SDK Proto Builder / build (push) Has been cancelled
50 lines
1.5 KiB
Text
50 lines
1.5 KiB
Text
@startuml
|
|
'https://plantuml.com/sequence-diagram
|
|
|
|
title: Redelegation
|
|
|
|
msgServer -> keeper : BeginRedelegation(delAddr, valSrcAddr, valDstAddr, sharesAmount)
|
|
participant "keeper (staking)" as keeper
|
|
keeper -> keeper : get number of sharew
|
|
note left: If the delegator has more shares than the total shares in the validator\n(due to rounding errors), then just withdraw the max number of shares.
|
|
keeper -> keeper : check the redelegation uses correct denom
|
|
|
|
alt valSrcAddr == valDstAddr
|
|
keeper --> msgServer : error
|
|
end
|
|
alt transitive redelegation
|
|
keeper --> msgServer : error
|
|
end
|
|
alt already has max redelegations
|
|
keeper --> msgServer : error
|
|
note left : this is the number of redelegations for a specific (del, valSrc, valDst) triple\ndefault : 7
|
|
end
|
|
|
|
|
|
keeper -> keeper : Unbond(del, valSrc) returns returnAmount
|
|
...
|
|
note left : See unbonding diagram
|
|
|
|
alt returnAmount is zero
|
|
keeper -> msgServer : error
|
|
end
|
|
|
|
keeper -> keeper : Delegate(del, returnAmount, status := valSrc.status, valDst, subtractAccount := false)
|
|
note left : See delegation diagram
|
|
...
|
|
|
|
alt validator is unbonded
|
|
keeper -> msgServer : current time
|
|
end
|
|
|
|
alt unbonding not complete, or just started
|
|
database store
|
|
keeper -> store : create redelegation object
|
|
keeper -> store : insert redelegation in queue, to be processed at the appropriate time
|
|
end
|
|
|
|
msgServer <-- keeper : completion time of the redelegation
|
|
msgServer -> msgServer : emit event: delegator, valSrc, valSrc,\nsharesAmount, completionTime
|
|
|
|
@enduml
|
|
|