Skip to content

Commit 6d198ae

Browse files
committed
More support for peer staking in GUI
1 parent 5df209a commit 6d198ae

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+127
-56
lines changed

convex-benchmarks/src/main/java/convex/benchmarks/BigBlockBenchmark.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import convex.core.cpos.BlockResult;
1313
import convex.core.cvm.State;
1414
import convex.core.crypto.AKeyPair;
15-
import convex.core.data.AccountStatus;
15+
import convex.core.cvm.AccountStatus;
1616
import convex.core.data.Address;
1717
import convex.core.data.Cells;
1818
import convex.core.data.SignedData;

convex-cli/src/test/java/convex/cli/account/AccountTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import convex.cli.CLTester;
1414
import convex.cli.ExitCodes;
1515
import convex.core.crypto.AKeyPair;
16-
import convex.core.data.AccountStatus;
1716
import convex.core.data.Address;
1817
import convex.core.data.Keyword;
1918
import convex.core.data.Keywords;
@@ -42,7 +41,7 @@ public static void setupPeer() throws LaunchException, ConfigException, Interrup
4241
public void testBalance() {
4342
CLTester tester;;
4443

45-
AccountStatus as=SERVER.getPeer().getConsensusState().getAccount(Address.create(11));
44+
convex.core.cvm.AccountStatus as=SERVER.getPeer().getConsensusState().getAccount(Address.create(11));
4645
tester = CLTester.run(
4746
"account",
4847
"balance",

convex-core/src/main/java/convex/core/cpos/BeliefMerge.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.util.function.Function;
1010

1111
import convex.core.crypto.AKeyPair;
12+
import convex.core.cvm.PeerStatus;
1213
import convex.core.cvm.State;
1314
import convex.core.data.ABlob;
1415
import convex.core.data.ACell;
@@ -17,7 +18,6 @@
1718
import convex.core.data.AccountKey;
1819
import convex.core.data.Index;
1920
import convex.core.data.MapEntry;
20-
import convex.core.data.PeerStatus;
2121
import convex.core.data.SignedData;
2222
import convex.core.exceptions.BadSignatureException;
2323
import convex.core.exceptions.InvalidDataException;

convex-core/src/main/java/convex/core/data/AccountStatus.java renamed to convex-core/src/main/java/convex/core/cvm/AccountStatus.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,25 @@
1-
package convex.core.data;
1+
package convex.core.cvm;
22

33
import convex.core.Coin;
44
import convex.core.Constants;
5+
import convex.core.data.ACell;
6+
import convex.core.data.AHashMap;
7+
import convex.core.data.ARecord;
8+
import convex.core.data.ASet;
9+
import convex.core.data.AccountKey;
10+
import convex.core.data.Address;
11+
import convex.core.data.Blob;
12+
import convex.core.data.Cells;
13+
import convex.core.data.Format;
14+
import convex.core.data.IRefFunction;
15+
import convex.core.data.Index;
16+
import convex.core.data.Keyword;
17+
import convex.core.data.Keywords;
18+
import convex.core.data.Maps;
19+
import convex.core.data.Ref;
20+
import convex.core.data.Sets;
21+
import convex.core.data.Symbol;
22+
import convex.core.data.Tag;
523
import convex.core.data.prim.CVMLong;
624
import convex.core.exceptions.BadFormatException;
725
import convex.core.exceptions.InvalidDataException;

convex-core/src/main/java/convex/core/cvm/Peer.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,11 @@
1919
import convex.core.data.AMap;
2020
import convex.core.data.AVector;
2121
import convex.core.data.AccountKey;
22-
import convex.core.data.AccountStatus;
2322
import convex.core.data.Address;
2423
import convex.core.data.Hash;
2524
import convex.core.data.Keyword;
2625
import convex.core.data.Keywords;
2726
import convex.core.data.Maps;
28-
import convex.core.data.PeerStatus;
2927
import convex.core.data.Ref;
3028
import convex.core.data.SignedData;
3129
import convex.core.data.Vectors;

convex-core/src/main/java/convex/core/data/PeerStatus.java renamed to convex-core/src/main/java/convex/core/cvm/PeerStatus.java

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,28 @@
1-
package convex.core.data;
1+
package convex.core.cvm;
22

33
import convex.core.cpos.CPoSConstants;
4+
import convex.core.data.ACell;
5+
import convex.core.data.AHashMap;
6+
import convex.core.data.ARecord;
7+
import convex.core.data.AString;
8+
import convex.core.data.Address;
9+
import convex.core.data.Blob;
10+
import convex.core.data.Cells;
11+
import convex.core.data.Format;
12+
import convex.core.data.Hash;
13+
import convex.core.data.IRefFunction;
14+
import convex.core.data.Index;
15+
import convex.core.data.Keyword;
16+
import convex.core.data.Keywords;
17+
import convex.core.data.Maps;
18+
import convex.core.data.Ref;
19+
import convex.core.data.Tag;
420
import convex.core.data.prim.CVMLong;
521
import convex.core.exceptions.BadFormatException;
622
import convex.core.exceptions.InvalidDataException;
723
import convex.core.lang.RT;
824
import convex.core.lang.RecordFormat;
25+
import convex.core.util.Utils;
926

1027
/**
1128
* Class describing the on-chain state of a Peer declared on the network.
@@ -96,8 +113,10 @@ public Index<Address,CVMLong> getStakes() {
96113
* @return Own stake, excluding delegated stake
97114
*/
98115
public long getPeerStake() {
99-
// TODO: include rewards?
100-
return peerStake;
116+
long totalShares=peerStake+delegatedStake;
117+
if (totalShares<=0) return 0; // nobody has any stake. Negative should not be possible, just in case
118+
119+
return Utils.mulDiv(balance,peerStake,totalShares);
101120
}
102121

103122
/**
@@ -109,11 +128,12 @@ public long getPeerStake() {
109128
* @return Value of delegated stake
110129
*/
111130
public long getDelegatedStake(Address delegator) {
112-
// TODO: include rewards?
113-
131+
if (delegatedStake<=0) return 0; // nobody has any delegated stake. Negative should not be possible, just in case
114132
CVMLong a = stakes.get(delegator);
115133
if (a == null) return 0;
116-
return a.longValue();
134+
135+
long delShares=a.longValue();
136+
return Utils.mulDiv(balance-getPeerStake(),delShares,delegatedStake);
117137
}
118138

119139
/**

convex-core/src/main/java/convex/core/cvm/State.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import convex.core.data.ARecord;
2323
import convex.core.data.AVector;
2424
import convex.core.data.AccountKey;
25-
import convex.core.data.AccountStatus;
2625
import convex.core.data.Address;
2726
import convex.core.data.Blob;
2827
import convex.core.data.Cells;
@@ -33,7 +32,6 @@
3332
import convex.core.data.Keyword;
3433
import convex.core.data.Keywords;
3534
import convex.core.data.MapEntry;
36-
import convex.core.data.PeerStatus;
3735
import convex.core.data.Ref;
3836
import convex.core.data.SignedData;
3937
import convex.core.data.Strings;

convex-core/src/main/java/convex/core/data/Format.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
import convex.core.cpos.Block;
1414
import convex.core.cpos.BlockResult;
1515
import convex.core.cpos.Order;
16+
import convex.core.cvm.AccountStatus;
17+
import convex.core.cvm.PeerStatus;
1618
import convex.core.cvm.Receipt;
1719
import convex.core.cvm.State;
1820
import convex.core.data.prim.AByteFlag;

convex-core/src/main/java/convex/core/init/Init.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55

66
import convex.core.Coin;
77
import convex.core.Constants;
8+
import convex.core.cvm.AccountStatus;
9+
import convex.core.cvm.PeerStatus;
810
import convex.core.cvm.State;
911
import convex.core.data.ABlob;
1012
import convex.core.data.ACell;
1113
import convex.core.data.AList;
1214
import convex.core.data.AVector;
1315
import convex.core.data.AccountKey;
14-
import convex.core.data.AccountStatus;
1516
import convex.core.data.Address;
1617
import convex.core.data.Index;
17-
import convex.core.data.PeerStatus;
1818
import convex.core.data.Symbol;
1919
import convex.core.data.Vectors;
2020
import convex.core.lang.Code;

convex-core/src/main/java/convex/core/lang/Context.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import convex.core.ResultContext;
77
import convex.core.SourceCodes;
88
import convex.core.cpos.CPoSConstants;
9+
import convex.core.cvm.AccountStatus;
10+
import convex.core.cvm.PeerStatus;
911
import convex.core.cvm.State;
1012
import convex.core.data.ACell;
1113
import convex.core.data.AHashMap;
@@ -14,15 +16,13 @@
1416
import convex.core.data.AString;
1517
import convex.core.data.AVector;
1618
import convex.core.data.AccountKey;
17-
import convex.core.data.AccountStatus;
1819
import convex.core.data.Address;
1920
import convex.core.data.Hash;
2021
import convex.core.data.Index;
2122
import convex.core.data.Keyword;
2223
import convex.core.data.Keywords;
2324
import convex.core.data.MapEntry;
2425
import convex.core.data.Maps;
25-
import convex.core.data.PeerStatus;
2626
import convex.core.data.Strings;
2727
import convex.core.data.Symbol;
2828
import convex.core.data.Syntax;

0 commit comments

Comments
 (0)