@@ -158,21 +158,21 @@ where
158
158
let sys_st = SystemState :: new ( store) . unwrap ( ) ;
159
159
let sys_head = v. put_store ( & sys_st) ;
160
160
let sys_value = faucet_total. clone ( ) ; // delegate faucet funds to system so we can construct faucet by sending to bls addr
161
- v. set_actor ( SYSTEM_ACTOR_ADDR , actor ( * SYSTEM_ACTOR_CODE_ID , sys_head, 0 , sys_value, None ) ) ;
161
+ v. set_actor ( & SYSTEM_ACTOR_ADDR , actor ( * SYSTEM_ACTOR_CODE_ID , sys_head, 0 , sys_value, None ) ) ;
162
162
163
163
// init
164
164
let init_st = InitState :: new ( store, "integration-test" . to_string ( ) ) . unwrap ( ) ;
165
165
let init_head = v. put_store ( & init_st) ;
166
166
v. set_actor (
167
- INIT_ACTOR_ADDR ,
167
+ & INIT_ACTOR_ADDR ,
168
168
actor ( * INIT_ACTOR_CODE_ID , init_head, 0 , TokenAmount :: zero ( ) , None ) ,
169
169
) ;
170
170
171
171
// reward
172
172
173
173
let reward_head = v. put_store ( & RewardState :: new ( StoragePower :: zero ( ) ) ) ;
174
174
v. set_actor (
175
- REWARD_ACTOR_ADDR ,
175
+ & REWARD_ACTOR_ADDR ,
176
176
actor ( * REWARD_ACTOR_CODE_ID , reward_head, 0 , reward_total, None ) ,
177
177
) ;
178
178
@@ -189,30 +189,30 @@ where
189
189
] ;
190
190
let cron_head = v. put_store ( & CronState { entries : builtin_entries } ) ;
191
191
v. set_actor (
192
- CRON_ACTOR_ADDR ,
192
+ & CRON_ACTOR_ADDR ,
193
193
actor ( * CRON_ACTOR_CODE_ID , cron_head, 0 , TokenAmount :: zero ( ) , None ) ,
194
194
) ;
195
195
196
196
// power
197
197
let power_head = v. put_store ( & PowerState :: new ( & v. store ) . unwrap ( ) ) ;
198
198
v. set_actor (
199
- STORAGE_POWER_ACTOR_ADDR ,
199
+ & STORAGE_POWER_ACTOR_ADDR ,
200
200
actor ( * POWER_ACTOR_CODE_ID , power_head, 0 , TokenAmount :: zero ( ) , None ) ,
201
201
) ;
202
202
203
203
// market
204
204
let market_head = v. put_store ( & MarketState :: new ( & v. store ) . unwrap ( ) ) ;
205
205
v. set_actor (
206
- STORAGE_MARKET_ACTOR_ADDR ,
206
+ & STORAGE_MARKET_ACTOR_ADDR ,
207
207
actor ( * MARKET_ACTOR_CODE_ID , market_head, 0 , TokenAmount :: zero ( ) , None ) ,
208
208
) ;
209
209
210
210
// verifreg
211
211
// initialize verifreg root signer
212
212
v. apply_message (
213
- INIT_ACTOR_ADDR ,
214
- Address :: new_bls ( VERIFREG_ROOT_KEY ) . unwrap ( ) ,
215
- TokenAmount :: zero ( ) ,
213
+ & INIT_ACTOR_ADDR ,
214
+ & Address :: new_bls ( VERIFREG_ROOT_KEY ) . unwrap ( ) ,
215
+ & TokenAmount :: zero ( ) ,
216
216
METHOD_SEND ,
217
217
None :: < RawBytes > ,
218
218
)
@@ -233,9 +233,9 @@ where
233
233
. unwrap ( ) ;
234
234
let msig_ctor_ret: ExecReturn = v
235
235
. apply_message (
236
- SYSTEM_ACTOR_ADDR ,
237
- INIT_ACTOR_ADDR ,
238
- TokenAmount :: zero ( ) ,
236
+ & SYSTEM_ACTOR_ADDR ,
237
+ & INIT_ACTOR_ADDR ,
238
+ & TokenAmount :: zero ( ) ,
239
239
fil_actor_init:: Method :: Exec as u64 ,
240
240
Some ( fil_actor_init:: ExecParams {
241
241
code_cid : * MULTISIG_ACTOR_CODE_ID ,
@@ -252,36 +252,36 @@ where
252
252
// verifreg
253
253
let verifreg_head = v. put_store ( & VerifRegState :: new ( & v. store , root_msig_addr) . unwrap ( ) ) ;
254
254
v. set_actor (
255
- VERIFIED_REGISTRY_ACTOR_ADDR ,
255
+ & VERIFIED_REGISTRY_ACTOR_ADDR ,
256
256
actor ( * VERIFREG_ACTOR_CODE_ID , verifreg_head, 0 , TokenAmount :: zero ( ) , None ) ,
257
257
) ;
258
258
259
259
// Ethereum Address Manager
260
260
v. set_actor (
261
- EAM_ACTOR_ADDR ,
261
+ & EAM_ACTOR_ADDR ,
262
262
actor ( * EAM_ACTOR_CODE_ID , EMPTY_ARR_CID , 0 , TokenAmount :: zero ( ) , None ) ,
263
263
) ;
264
264
265
265
// datacap
266
266
let datacap_head =
267
267
v. put_store ( & DataCapState :: new ( & v. store , VERIFIED_REGISTRY_ACTOR_ADDR ) . unwrap ( ) ) ;
268
268
v. set_actor (
269
- DATACAP_TOKEN_ACTOR_ADDR ,
269
+ & DATACAP_TOKEN_ACTOR_ADDR ,
270
270
actor ( * DATACAP_TOKEN_ACTOR_CODE_ID , datacap_head, 0 , TokenAmount :: zero ( ) , None ) ,
271
271
) ;
272
272
273
273
// burnt funds
274
274
let burnt_funds_head = v. put_store ( & AccountState { address : BURNT_FUNDS_ACTOR_ADDR } ) ;
275
275
v. set_actor (
276
- BURNT_FUNDS_ACTOR_ADDR ,
276
+ & BURNT_FUNDS_ACTOR_ADDR ,
277
277
actor ( * ACCOUNT_ACTOR_CODE_ID , burnt_funds_head, 0 , TokenAmount :: zero ( ) , None ) ,
278
278
) ;
279
279
280
280
// create a faucet with 1 billion FIL for setting up test accounts
281
281
v. apply_message (
282
- SYSTEM_ACTOR_ADDR ,
283
- Address :: new_bls ( FAUCET_ROOT_KEY ) . unwrap ( ) ,
284
- faucet_total,
282
+ & SYSTEM_ACTOR_ADDR ,
283
+ & Address :: new_bls ( FAUCET_ROOT_KEY ) . unwrap ( ) ,
284
+ & faucet_total,
285
285
METHOD_SEND ,
286
286
None :: < RawBytes > ,
287
287
)
@@ -305,7 +305,7 @@ where
305
305
}
306
306
}
307
307
308
- pub fn get_miner_balance ( & self , maddr : Address ) -> MinerBalances {
308
+ pub fn get_miner_balance ( & self , maddr : & Address ) -> MinerBalances {
309
309
let a = self . get_actor ( maddr) . unwrap ( ) ;
310
310
let st = self . get_state :: < MinerState > ( maddr) . unwrap ( ) ;
311
311
MinerBalances {
@@ -316,15 +316,15 @@ where
316
316
}
317
317
}
318
318
319
- pub fn get_miner_info ( & self , maddr : Address ) -> MinerInfo {
319
+ pub fn get_miner_info ( & self , maddr : & Address ) -> MinerInfo {
320
320
let st = self . get_state :: < MinerState > ( maddr) . unwrap ( ) ;
321
321
self . store . get_cbor :: < MinerInfo > ( & st. info ) . unwrap ( ) . unwrap ( )
322
322
}
323
323
324
324
pub fn get_network_stats ( & self ) -> NetworkStats {
325
- let power_state = self . get_state :: < PowerState > ( STORAGE_POWER_ACTOR_ADDR ) . unwrap ( ) ;
326
- let reward_state = self . get_state :: < RewardState > ( REWARD_ACTOR_ADDR ) . unwrap ( ) ;
327
- let market_state = self . get_state :: < MarketState > ( STORAGE_MARKET_ACTOR_ADDR ) . unwrap ( ) ;
325
+ let power_state = self . get_state :: < PowerState > ( & STORAGE_POWER_ACTOR_ADDR ) . unwrap ( ) ;
326
+ let reward_state = self . get_state :: < RewardState > ( & REWARD_ACTOR_ADDR ) . unwrap ( ) ;
327
+ let market_state = self . get_state :: < MarketState > ( & STORAGE_MARKET_ACTOR_ADDR ) . unwrap ( ) ;
328
328
329
329
NetworkStats {
330
330
total_raw_byte_power : power_state. total_raw_byte_power ,
@@ -354,9 +354,9 @@ where
354
354
self . store . put_cbor ( obj, Code :: Blake2b256 ) . unwrap ( )
355
355
}
356
356
357
- pub fn get_actor ( & self , addr : Address ) -> Option < Actor > {
357
+ pub fn get_actor ( & self , addr : & Address ) -> Option < Actor > {
358
358
// check for inclusion in cache of changed actors
359
- if let Some ( act) = self . actors_cache . borrow ( ) . get ( & addr) {
359
+ if let Some ( act) = self . actors_cache . borrow ( ) . get ( addr) {
360
360
return Some ( act. clone ( ) ) ;
361
361
}
362
362
// go to persisted map
@@ -365,14 +365,14 @@ where
365
365
. unwrap ( ) ;
366
366
let actor = actors. get ( & addr. to_bytes ( ) ) . unwrap ( ) . cloned ( ) ;
367
367
actor. iter ( ) . for_each ( |a| {
368
- self . actors_cache . borrow_mut ( ) . insert ( addr, a. clone ( ) ) ;
368
+ self . actors_cache . borrow_mut ( ) . insert ( * addr, a. clone ( ) ) ;
369
369
} ) ;
370
370
actor
371
371
}
372
372
373
373
// blindly overwrite the actor at this address whether it previously existed or not
374
- pub fn set_actor ( & self , key : Address , a : Actor ) {
375
- self . actors_cache . borrow_mut ( ) . insert ( key, a) ;
374
+ pub fn set_actor ( & self , key : & Address , a : Actor ) {
375
+ self . actors_cache . borrow_mut ( ) . insert ( * key, a) ;
376
376
self . actors_dirty . replace ( true ) ;
377
377
}
378
378
@@ -397,11 +397,11 @@ where
397
397
}
398
398
399
399
pub fn normalize_address ( & self , addr : & Address ) -> Option < Address > {
400
- let st = self . get_state :: < InitState > ( INIT_ACTOR_ADDR ) . unwrap ( ) ;
400
+ let st = self . get_state :: < InitState > ( & INIT_ACTOR_ADDR ) . unwrap ( ) ;
401
401
st. resolve_address :: < BS > ( self . store , addr) . unwrap ( )
402
402
}
403
403
404
- pub fn get_state < T : DeserializeOwned > ( & self , addr : Address ) -> Option < T > {
404
+ pub fn get_state < T : DeserializeOwned > ( & self , addr : & Address ) -> Option < T > {
405
405
let a_opt = self . get_actor ( addr) ;
406
406
if a_opt == None {
407
407
return None ;
@@ -410,7 +410,7 @@ where
410
410
self . store . get_cbor :: < T > ( & a. head ) . unwrap ( )
411
411
}
412
412
413
- pub fn mutate_state < S , F > ( & self , addr : Address , f : F )
413
+ pub fn mutate_state < S , F > ( & self , addr : & Address , f : F )
414
414
where
415
415
S : Serialize + DeserializeOwned ,
416
416
F : FnOnce ( & mut S ) ,
@@ -428,13 +428,13 @@ where
428
428
429
429
pub fn apply_message < S : serde:: Serialize > (
430
430
& self ,
431
- from : Address ,
432
- to : Address ,
433
- value : TokenAmount ,
431
+ from : & Address ,
432
+ to : & Address ,
433
+ value : & TokenAmount ,
434
434
method : MethodNum ,
435
435
params : Option < S > ,
436
436
) -> Result < MessageResult , TestVMError > {
437
- let from_id = self . normalize_address ( & from) . unwrap ( ) ;
437
+ let from_id = & self . normalize_address ( from) . unwrap ( ) ;
438
438
let mut a = self . get_actor ( from_id) . unwrap ( ) ;
439
439
let call_seq = a. call_seq_num ;
440
440
a. call_seq_num = call_seq + 1 ;
@@ -449,15 +449,15 @@ where
449
449
// big.Mul(big.NewInt(1e9), big.NewInt(1e18))
450
450
// make top level context with internal context
451
451
let top = TopCtx {
452
- originator_stable_addr : from,
452
+ originator_stable_addr : * from,
453
453
originator_call_seq : call_seq,
454
454
new_actor_addr_count : RefCell :: new ( 0 ) ,
455
455
circ_supply : TokenAmount :: from_whole ( 1_000_000_000 ) ,
456
456
} ;
457
457
let msg = InternalMessage {
458
- from : from_id,
459
- to,
460
- value,
458
+ from : * from_id,
459
+ to : * to ,
460
+ value : value . clone ( ) ,
461
461
method,
462
462
params : params. map ( |p| IpldBlock :: serialize_cbor ( & p) . unwrap ( ) . unwrap ( ) ) ,
463
463
} ;
@@ -623,7 +623,7 @@ where
623
623
{
624
624
fn resolve_target ( & ' invocation self , target : & Address ) -> Result < ( Actor , Address ) , ActorError > {
625
625
if let Some ( a) = self . v . normalize_address ( target) {
626
- if let Some ( act) = self . v . get_actor ( a) {
626
+ if let Some ( act) = self . v . get_actor ( & a) {
627
627
return Ok ( ( act, a) ) ;
628
628
}
629
629
} ;
@@ -634,7 +634,7 @@ where
634
634
Payload :: Delegated ( da)
635
635
// Validate that there's an actor at the target ID (we don't care what is there,
636
636
// just that something is there).
637
- if self . v . get_actor ( Address :: new_id ( da. namespace ( ) ) ) . is_some ( ) =>
637
+ if self . v . get_actor ( & Address :: new_id ( da. namespace ( ) ) ) . is_some ( ) =>
638
638
{
639
639
false
640
640
}
@@ -654,13 +654,13 @@ where
654
654
) ) ;
655
655
}
656
656
657
- let mut st = self . v . get_state :: < InitState > ( INIT_ACTOR_ADDR ) . unwrap ( ) ;
657
+ let mut st = self . v . get_state :: < InitState > ( & INIT_ACTOR_ADDR ) . unwrap ( ) ;
658
658
let ( target_id, existing) = st. map_addresses_to_id ( self . v . store , target, None ) . unwrap ( ) ;
659
659
assert ! ( !existing, "should never have existing actor when no f4 address is specified" ) ;
660
660
let target_id_addr = Address :: new_id ( target_id) ;
661
- let mut init_actor = self . v . get_actor ( INIT_ACTOR_ADDR ) . unwrap ( ) ;
661
+ let mut init_actor = self . v . get_actor ( & INIT_ACTOR_ADDR ) . unwrap ( ) ;
662
662
init_actor. head = self . v . store . put_cbor ( & st, Code :: Blake2b256 ) . unwrap ( ) ;
663
- self . v . set_actor ( INIT_ACTOR_ADDR , init_actor) ;
663
+ self . v . set_actor ( & INIT_ACTOR_ADDR , init_actor) ;
664
664
665
665
let new_actor_msg = InternalMessage {
666
666
from : SYSTEM_ACTOR_ADDR ,
@@ -693,7 +693,7 @@ where
693
693
}
694
694
}
695
695
696
- Ok ( ( self . v . get_actor ( target_id_addr) . unwrap ( ) , target_id_addr) )
696
+ Ok ( ( self . v . get_actor ( & target_id_addr) . unwrap ( ) , target_id_addr) )
697
697
}
698
698
699
699
fn gather_trace (
@@ -720,7 +720,7 @@ where
720
720
let prior_root = self . v . checkpoint ( ) ;
721
721
722
722
// Transfer funds
723
- let mut from_actor = self . v . get_actor ( self . msg . from ) . unwrap ( ) ;
723
+ let mut from_actor = self . v . get_actor ( & self . msg . from ) . unwrap ( ) ;
724
724
if !self . msg . value . is_zero ( ) {
725
725
if self . msg . value . is_negative ( ) {
726
726
return Err ( ActorError :: unchecked (
@@ -744,9 +744,9 @@ where
744
744
745
745
// Load, deduct, store from actor before loading to actor to handle self-send case
746
746
from_actor. balance -= & self . msg . value ;
747
- self . v . set_actor ( self . msg . from , from_actor) ;
747
+ self . v . set_actor ( & self . msg . from , from_actor) ;
748
748
749
- let ( mut to_actor, to_addr) = self . resolve_target ( & self . msg . to ) ?;
749
+ let ( mut to_actor, ref to_addr) = self . resolve_target ( & self . msg . to ) ?;
750
750
to_actor. balance = to_actor. balance . add ( & self . msg . value ) ;
751
751
self . v . set_actor ( to_addr, to_actor) ;
752
752
@@ -811,7 +811,7 @@ where
811
811
) ) ;
812
812
}
813
813
}
814
- let addr = Address :: new_id ( actor_id) ;
814
+ let addr = & Address :: new_id ( actor_id) ;
815
815
let actor = match self . v . get_actor ( addr) {
816
816
Some ( mut act) if act. code == * PLACEHOLDER_ACTOR_CODE_ID => {
817
817
act. code = code_id;
@@ -940,7 +940,7 @@ where
940
940
) ) ;
941
941
}
942
942
self . caller_validated . replace ( true ) ;
943
- let to_match = ACTOR_TYPES . get ( & self . v . get_actor ( self . msg . from ) . unwrap ( ) . code ) . unwrap ( ) ;
943
+ let to_match = ACTOR_TYPES . get ( & self . v . get_actor ( & self . msg . from ) . unwrap ( ) . code ) . unwrap ( ) ;
944
944
if types. into_iter ( ) . any ( |t| * t == * to_match) {
945
945
return Ok ( ( ) ) ;
946
946
}
@@ -951,7 +951,7 @@ where
951
951
}
952
952
953
953
fn current_balance ( & self ) -> TokenAmount {
954
- self . v . get_actor ( self . to ( ) ) . unwrap ( ) . balance
954
+ self . v . get_actor ( & self . to ( ) ) . unwrap ( ) . balance
955
955
}
956
956
957
957
fn resolve_address ( & self , addr : & Address ) -> Option < ActorID > {
@@ -964,15 +964,15 @@ where
964
964
}
965
965
966
966
fn get_actor_code_cid ( & self , id : & ActorID ) -> Option < Cid > {
967
- let maybe_act = self . v . get_actor ( Address :: new_id ( * id) ) ;
967
+ let maybe_act = self . v . get_actor ( & Address :: new_id ( * id) ) ;
968
968
match maybe_act {
969
969
None => None ,
970
970
Some ( act) => Some ( act. code ) ,
971
971
}
972
972
}
973
973
974
974
fn lookup_delegated_address ( & self , id : ActorID ) -> Option < Address > {
975
- self . v . get_actor ( Address :: new_id ( id) ) . and_then ( |act| act. predictable_address )
975
+ self . v . get_actor ( & Address :: new_id ( id) ) . and_then ( |act| act. predictable_address )
976
976
}
977
977
978
978
fn send (
@@ -1036,19 +1036,19 @@ where
1036
1036
}
1037
1037
1038
1038
fn get_state_root ( & self ) -> Result < Cid , ActorError > {
1039
- Ok ( self . v . get_actor ( self . to ( ) ) . unwrap ( ) . head )
1039
+ Ok ( self . v . get_actor ( & self . to ( ) ) . unwrap ( ) . head )
1040
1040
}
1041
1041
1042
1042
fn set_state_root ( & self , root : & Cid ) -> Result < ( ) , ActorError > {
1043
- let maybe_act = self . v . get_actor ( self . to ( ) ) ;
1043
+ let maybe_act = self . v . get_actor ( & self . to ( ) ) ;
1044
1044
match maybe_act {
1045
1045
None => Err ( ActorError :: unchecked (
1046
1046
ExitCode :: SYS_ASSERTION_FAILED ,
1047
1047
"actor does not exist" . to_string ( ) ,
1048
1048
) ) ,
1049
1049
Some ( mut act) if !self . read_only ( ) => {
1050
1050
act. head = * root;
1051
- self . v . set_actor ( self . to ( ) , act) ;
1051
+ self . v . set_actor ( & self . to ( ) , act) ;
1052
1052
Ok ( ( ) )
1053
1053
}
1054
1054
_ => Err ( ActorError :: unchecked (
@@ -1068,7 +1068,7 @@ where
1068
1068
let result = f ( & mut st, self ) ;
1069
1069
self . allow_side_effects . replace ( true ) ;
1070
1070
let ret = result?;
1071
- let mut act = self . v . get_actor ( self . to ( ) ) . unwrap ( ) ;
1071
+ let mut act = self . v . get_actor ( & self . to ( ) ) . unwrap ( ) ;
1072
1072
act. head = self . v . store . put_cbor ( & st, Code :: Blake2b256 ) . unwrap ( ) ;
1073
1073
1074
1074
if self . read_only {
@@ -1078,7 +1078,7 @@ where
1078
1078
) ) ;
1079
1079
}
1080
1080
1081
- self . v . set_actor ( self . to ( ) , act) ;
1081
+ self . v . set_actor ( & self . to ( ) , act) ;
1082
1082
Ok ( ret)
1083
1083
}
1084
1084
@@ -1112,7 +1112,7 @@ where
1112
1112
}
1113
1113
1114
1114
fn actor_balance ( & self , id : ActorID ) -> Option < TokenAmount > {
1115
- self . v . get_actor ( Address :: new_id ( id) ) . map ( |act| act. balance )
1115
+ self . v . get_actor ( & Address :: new_id ( id) ) . map ( |act| act. balance )
1116
1116
}
1117
1117
1118
1118
fn gas_available ( & self ) -> u64 {
0 commit comments