From 64a145b3e080b9ce44eb53ff56e2eae076f44df0 Mon Sep 17 00:00:00 2001 From: Ed Rotthoff Date: Wed, 20 Sep 2023 15:33:13 -0600 Subject: [PATCH] proxied vote weight proxied vote weight --- contracts/fio.system/src/voting.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/contracts/fio.system/src/voting.cpp b/contracts/fio.system/src/voting.cpp index 6747b745..f0f4820a 100755 --- a/contracts/fio.system/src/voting.cpp +++ b/contracts/fio.system/src/voting.cpp @@ -1178,10 +1178,21 @@ namespace eosiosystem { fio_400_assert((isproxy != pitr->is_proxy)|| !isproxy, "fio_address", fio_address, "Already registered as proxy. ", ErrorPubAddressExist); name nm; + + if(pitr->proxy != nm){ + auto pitr_old_proxy = votersbyowner.find(pitr->proxy.value); + if(pitr_old_proxy != votersbyowner.end()) + { + votersbyowner.modify(pitr_old_proxy, same_payer, [&](auto &vp) { + vp.proxied_vote_weight -= pitr->last_vote_weight; + }); + propagate_weight_change(*pitr_old_proxy); + } + } + votersbyowner.modify(pitr, same_payer, [&](auto &p) { p.fioaddress = fio_address; p.addresshash = addresshash; - p.proxied_vote_weight = 0; p.is_proxy = isproxy; p.is_auto_proxy = false; p.proxy = nm;