11
11
12
12
namespace fc ::vm::actor::builtin::states {
13
13
using primitives::kChainEpochUndefined ;
14
- using runtime::Runtime;
15
14
using toolchain::Toolchain;
16
15
using namespace types ::market;
17
16
18
17
outcome::result<void > MarketActorState::unlockBalance (
19
- const Runtime &runtime,
20
18
const Address &address,
21
19
const TokenAmount &amount,
22
20
BalanceLockingReason lock_reason) {
23
- VM_ASSERT ( amount >= 0 );
21
+ OUTCOME_TRY ( check ( amount >= 0 ) );
24
22
25
23
OUTCOME_TRY (locked_table.subtract (address, amount));
26
24
@@ -39,41 +37,34 @@ namespace fc::vm::actor::builtin::states {
39
37
}
40
38
41
39
outcome::result<void > MarketActorState::slashBalance (
42
- const Runtime &runtime,
43
40
const Address &address,
44
41
const TokenAmount &amount,
45
42
BalanceLockingReason reason) {
46
- VM_ASSERT ( amount >= 0 );
43
+ OUTCOME_TRY ( check ( amount >= 0 ) );
47
44
OUTCOME_TRY (escrow_table.subtract (address, amount));
48
- return unlockBalance (runtime, address, amount, reason);
45
+ return unlockBalance (address, amount, reason);
49
46
}
50
47
51
48
outcome::result<void > MarketActorState::transferBalance (
52
- const Runtime &runtime,
53
- const Address &from,
54
- const Address &to,
55
- const TokenAmount &amount) {
56
- VM_ASSERT (amount >= 0 );
49
+ const Address &from, const Address &to, const TokenAmount &amount) {
50
+ OUTCOME_TRY (check (amount >= 0 ));
57
51
CHANGE_ERROR_ABORT (escrow_table.subtract (from, amount),
58
52
VMExitCode::kErrIllegalState );
59
53
CHANGE_ERROR_ABORT (
60
- unlockBalance (
61
- runtime, from, amount, BalanceLockingReason::kClientStorageFee ),
54
+ unlockBalance (from, amount, BalanceLockingReason::kClientStorageFee ),
62
55
VMExitCode::kErrIllegalState );
63
56
CHANGE_ERROR_ABORT (escrow_table.add (to, amount),
64
57
VMExitCode::kErrIllegalState );
65
58
return outcome::success ();
66
59
}
67
60
68
61
outcome::result<TokenAmount> MarketActorState::processDealInitTimedOut (
69
- const Runtime &runtime, const DealProposal &deal) {
70
- CHANGE_ERROR_ABORT (unlockBalance (runtime,
71
- deal.client ,
62
+ const DealProposal &deal) {
63
+ CHANGE_ERROR_ABORT (unlockBalance (deal.client ,
72
64
deal.getTotalStorageFee (),
73
65
BalanceLockingReason::kClientStorageFee ),
74
66
VMExitCode::kErrIllegalState );
75
- CHANGE_ERROR_ABORT (unlockBalance (runtime,
76
- deal.client ,
67
+ CHANGE_ERROR_ABORT (unlockBalance (deal.client ,
77
68
deal.client_collateral ,
78
69
BalanceLockingReason::kClientCollateral ),
79
70
VMExitCode::kErrIllegalState );
@@ -82,13 +73,11 @@ namespace fc::vm::actor::builtin::states {
82
73
collateralPenaltyForDealActivationMissed (deal.provider_collateral );
83
74
const auto amount_remaining = deal.providerBalanceRequirement () - slashed;
84
75
85
- CHANGE_ERROR_ABORT (slashBalance (runtime,
86
- deal.provider ,
87
- slashed,
88
- BalanceLockingReason::kProviderCollateral ),
89
- VMExitCode::kErrIllegalState );
90
- CHANGE_ERROR_ABORT (unlockBalance (runtime,
91
- deal.provider ,
76
+ CHANGE_ERROR_ABORT (
77
+ slashBalance (
78
+ deal.provider , slashed, BalanceLockingReason::kProviderCollateral ),
79
+ VMExitCode::kErrIllegalState );
80
+ CHANGE_ERROR_ABORT (unlockBalance (deal.provider ,
92
81
amount_remaining,
93
82
BalanceLockingReason::kProviderCollateral ),
94
83
VMExitCode::kErrIllegalState );
@@ -97,18 +86,14 @@ namespace fc::vm::actor::builtin::states {
97
86
}
98
87
99
88
outcome::result<void > MarketActorState::processDealExpired (
100
- const Runtime &runtime,
101
- const DealProposal &deal,
102
- const DealState &deal_state) {
103
- VM_ASSERT (deal_state.sector_start_epoch != kChainEpochUndefined );
89
+ const DealProposal &deal, const DealState &deal_state) {
90
+ OUTCOME_TRY (check (deal_state.sector_start_epoch != kChainEpochUndefined ));
104
91
105
- CHANGE_ERROR_ABORT (unlockBalance (runtime,
106
- deal.provider ,
92
+ CHANGE_ERROR_ABORT (unlockBalance (deal.provider ,
107
93
deal.provider_collateral ,
108
94
BalanceLockingReason::kProviderCollateral ),
109
95
VMExitCode::kErrIllegalState );
110
- CHANGE_ERROR_ABORT (unlockBalance (runtime,
111
- deal.client ,
96
+ CHANGE_ERROR_ABORT (unlockBalance (deal.client ,
112
97
deal.client_collateral ,
113
98
BalanceLockingReason::kClientCollateral ),
114
99
VMExitCode::kErrIllegalState );
@@ -127,16 +112,16 @@ namespace fc::vm::actor::builtin::states {
127
112
const auto updated{deal_state.last_updated_epoch != kChainEpochUndefined };
128
113
const auto slashed{deal_state.slash_epoch != kChainEpochUndefined };
129
114
130
- VM_ASSERT ( !updated || (deal_state.last_updated_epoch <= epoch));
115
+ OUTCOME_TRY ( check ( !updated || (deal_state.last_updated_epoch <= epoch) ));
131
116
132
117
if (deal.start_epoch > epoch) {
133
118
return std::make_tuple (slashed_sum, kChainEpochUndefined , false );
134
119
}
135
120
136
121
auto payment_end_epoch = deal.end_epoch ;
137
122
if (slashed) {
138
- VM_ASSERT ( epoch >= deal_state.slash_epoch );
139
- VM_ASSERT ( deal_state.slash_epoch <= deal.end_epoch );
123
+ OUTCOME_TRY ( check ( epoch >= deal_state.slash_epoch ) );
124
+ OUTCOME_TRY ( check ( deal_state.slash_epoch <= deal.end_epoch ) );
140
125
payment_end_epoch = deal_state.slash_epoch ;
141
126
} else if (epoch < payment_end_epoch) {
142
127
payment_end_epoch = epoch;
@@ -152,8 +137,7 @@ namespace fc::vm::actor::builtin::states {
152
137
epochs_elapsed * deal.storage_price_per_epoch ;
153
138
154
139
if (total_payment > 0 ) {
155
- OUTCOME_TRY (
156
- transferBalance (runtime, deal.client , deal.provider , total_payment));
140
+ OUTCOME_TRY (transferBalance (deal.client , deal.provider , total_payment));
157
141
}
158
142
159
143
const auto utils = Toolchain::createMarketUtils (runtime);
@@ -162,23 +146,20 @@ namespace fc::vm::actor::builtin::states {
162
146
OUTCOME_TRY (remaining,
163
147
utils->dealGetPaymentRemaining (deal, deal_state.slash_epoch ));
164
148
165
- CHANGE_ERROR_ABORT (unlockBalance (runtime,
166
- deal.client ,
167
- remaining,
168
- BalanceLockingReason::kClientStorageFee ),
169
- VMExitCode::kErrIllegalState );
149
+ CHANGE_ERROR_ABORT (
150
+ unlockBalance (
151
+ deal.client , remaining, BalanceLockingReason::kClientStorageFee ),
152
+ VMExitCode::kErrIllegalState );
170
153
171
- CHANGE_ERROR_ABORT (unlockBalance (runtime,
172
- deal.client ,
154
+ CHANGE_ERROR_ABORT (unlockBalance (deal.client ,
173
155
deal.client_collateral ,
174
156
BalanceLockingReason::kClientCollateral ),
175
157
VMExitCode::kErrIllegalState );
176
158
177
159
slashed_sum = deal.provider_collateral ;
178
160
179
161
CHANGE_ERROR_ABORT (
180
- slashBalance (runtime,
181
- deal.provider ,
162
+ slashBalance (deal.provider ,
182
163
slashed_sum,
183
164
BalanceLockingReason::kProviderCollateral ),
184
165
VMExitCode::kErrIllegalState );
@@ -187,7 +168,7 @@ namespace fc::vm::actor::builtin::states {
187
168
}
188
169
189
170
if (epoch >= deal.end_epoch ) {
190
- OUTCOME_TRY (processDealExpired (runtime, deal, deal_state));
171
+ OUTCOME_TRY (processDealExpired (deal, deal_state));
191
172
return std::make_tuple (slashed_sum, kChainEpochUndefined , true );
192
173
}
193
174
@@ -197,10 +178,8 @@ namespace fc::vm::actor::builtin::states {
197
178
}
198
179
199
180
outcome::result<void > MarketActorState::maybeLockBalance (
200
- const Runtime &runtime,
201
- const Address &address,
202
- const TokenAmount &amount) {
203
- VM_ASSERT (amount >= 0 );
181
+ const Address &address, const TokenAmount &amount) {
182
+ OUTCOME_TRY (check (amount >= 0 ));
204
183
205
184
CHANGE_ERROR_A (
206
185
locked, locked_table.get (address), VMExitCode::kErrIllegalState );
@@ -218,11 +197,10 @@ namespace fc::vm::actor::builtin::states {
218
197
}
219
198
220
199
outcome::result<void > MarketActorState::lockClientAndProviderBalances (
221
- const Runtime &runtime, const DealProposal &deal) {
222
- OUTCOME_TRY (maybeLockBalance (
223
- runtime, deal.client , deal.clientBalanceRequirement ()));
224
- OUTCOME_TRY (maybeLockBalance (
225
- runtime, deal.provider , deal.providerBalanceRequirement ()));
200
+ const DealProposal &deal) {
201
+ OUTCOME_TRY (maybeLockBalance (deal.client , deal.clientBalanceRequirement ()));
202
+ OUTCOME_TRY (
203
+ maybeLockBalance (deal.provider , deal.providerBalanceRequirement ()));
226
204
total_client_locked_collateral += deal.client_collateral ;
227
205
total_client_storage_fee += deal.getTotalStorageFee ();
228
206
total_provider_locked_collateral += deal.provider_collateral ;
0 commit comments