@@ -46,9 +46,11 @@ contract FastBridgeReceiverOnEthereum is SafeBridgeReceiverOnEthereum, IFastBrid
46
46
// * Storage * //
47
47
// ************************************* //
48
48
49
+ uint256 public constant ONE_BASIS_POINT = 1e4 ; // One basis point, for scaling.
49
50
uint256 public override claimDeposit;
50
51
uint256 public override challengeDeposit;
51
52
uint256 public override challengeDuration;
53
+ uint256 public override alpha; // Basis point of claim or challenge deposit that are lost when dishonest.
52
54
mapping (uint256 => Ticket) public tickets; // The tickets by ticketID.
53
55
54
56
// ************************************* //
@@ -64,11 +66,13 @@ contract FastBridgeReceiverOnEthereum is SafeBridgeReceiverOnEthereum, IFastBrid
64
66
address _inbox ,
65
67
uint256 _claimDeposit ,
66
68
uint256 _challengeDeposit ,
67
- uint256 _challengeDuration
69
+ uint256 _challengeDuration ,
70
+ uint256 _alpha
68
71
) SafeBridgeReceiverOnEthereum (_governor, _safeBridgeSender, _inbox) {
69
72
claimDeposit = _claimDeposit;
70
73
challengeDeposit = _challengeDeposit;
71
74
challengeDuration = _challengeDuration;
75
+ alpha = _alpha;
72
76
}
73
77
74
78
// ************************************* //
@@ -154,7 +158,7 @@ contract FastBridgeReceiverOnEthereum is SafeBridgeReceiverOnEthereum, IFastBrid
154
158
require (ticket.claim.bridger != address (0 ), "Claim does not exist " );
155
159
require (ticket.claim.verified == true , "Claim not verified: deposit forfeited " );
156
160
157
- uint256 amount = ticket.claim.claimDeposit + ticket.challenge.challengeDeposit;
161
+ uint256 amount = ticket.claim.claimDeposit + ( ticket.challenge.challengeDeposit * alpha) / ONE_BASIS_POINT ;
158
162
ticket.claim.claimDeposit = 0 ;
159
163
ticket.challenge.challengeDeposit = 0 ;
160
164
payable (ticket.claim.bridger).send (amount); // Use of send to prevent reverting fallback. User is responsibility for accepting ETH.
@@ -167,7 +171,7 @@ contract FastBridgeReceiverOnEthereum is SafeBridgeReceiverOnEthereum, IFastBrid
167
171
require (ticket.challenge.challenger != address (0 ), "Challenge does not exist " );
168
172
require (ticket.claim.verified == false , "Claim verified: deposit forfeited " );
169
173
170
- uint256 amount = ticket.claim.claimDeposit + ticket.challenge.challengeDeposit ;
174
+ uint256 amount = ticket.challenge.challengeDeposit + ( ticket.claim.claimDeposit * alpha) / ONE_BASIS_POINT ;
171
175
ticket.claim.claimDeposit = 0 ;
172
176
ticket.challenge.challengeDeposit = 0 ;
173
177
payable (ticket.challenge.challenger).send (amount); // Use of send to prevent reverting fallback. User is responsibility for accepting ETH.
@@ -203,6 +207,10 @@ contract FastBridgeReceiverOnEthereum is SafeBridgeReceiverOnEthereum, IFastBrid
203
207
challengeDuration = _challengeDuration;
204
208
}
205
209
210
+ function changeAlpha (uint256 _alpha ) external onlyByGovernor {
211
+ alpha = _alpha;
212
+ }
213
+
206
214
// ************************ //
207
215
// * Internal * //
208
216
// ************************ //
0 commit comments