Skip to content

Commit b7ad2c5

Browse files
authored
feat: update sdk & shared for TokenAmount and hashing changes (#588)
1 parent f5855ac commit b7ad2c5

File tree

126 files changed

+1278
-1322
lines changed

Some content is hidden

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

126 files changed

+1278
-1322
lines changed

Cargo.lock

Lines changed: 166 additions & 174 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

actors/account/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ crate-type = ["cdylib", "lib"]
1414

1515
[dependencies]
1616
fil_actors_runtime = { version = "9.0.0-alpha.1", path = "../../runtime", features = ["fil-actor"] }
17-
fvm_shared = { version = "0.8.0", default-features = false }
17+
fvm_shared = { version = "2.0.0-alpha.2", default-features = false }
1818
serde = { version = "1.0.136", features = ["derive"] }
1919
num-traits = "0.2.14"
2020
num-derive = "0.3.3"

actors/cron/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ crate-type = ["cdylib", "lib"]
1515

1616
[dependencies]
1717
fil_actors_runtime = { version = "9.0.0-alpha.1", path = "../../runtime", features = ["fil-actor"] }
18-
fvm_shared = { version = "0.8.0", default-features = false }
18+
fvm_shared = { version = "2.0.0-alpha.2", default-features = false }
1919
num-traits = "0.2.14"
2020
num-derive = "0.3.3"
2121
log = "0.4.14"

actors/cron/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use fvm_shared::econ::TokenAmount;
1010

1111
use fvm_shared::{MethodNum, METHOD_CONSTRUCTOR};
1212
use num_derive::FromPrimitive;
13-
use num_traits::FromPrimitive;
13+
use num_traits::{FromPrimitive, Zero};
1414

1515
pub use self::state::{Entry, State};
1616

@@ -68,7 +68,7 @@ impl Actor {
6868
&entry.receiver,
6969
entry.method_num,
7070
RawBytes::default(),
71-
TokenAmount::from(0u8),
71+
TokenAmount::zero(),
7272
);
7373
if let Err(e) = res {
7474
log::error!(

actors/cron/tests/cron_actor_test.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ use fil_actors_runtime::test_utils::*;
77
use fil_actors_runtime::SYSTEM_ACTOR_ADDR;
88
use fvm_ipld_encoding::RawBytes;
99
use fvm_shared::address::Address;
10+
use fvm_shared::econ::TokenAmount;
1011
use fvm_shared::error::ExitCode;
12+
use num_traits::Zero;
1113

1214
fn check_state(rt: &MockRuntime) {
1315
let (_, acc) = check_state_invariants(&rt.get_state());
@@ -79,31 +81,31 @@ fn epoch_tick_with_entries() {
7981
entry1.receiver,
8082
entry1.method_num,
8183
RawBytes::default(),
82-
0u8.into(),
84+
TokenAmount::zero(),
8385
RawBytes::default(),
8486
ExitCode::OK,
8587
);
8688
rt.expect_send(
8789
entry2.receiver,
8890
entry2.method_num,
8991
RawBytes::default(),
90-
0u8.into(),
92+
TokenAmount::zero(),
9193
RawBytes::default(),
9294
ExitCode::USR_ILLEGAL_ARGUMENT,
9395
);
9496
rt.expect_send(
9597
entry3.receiver,
9698
entry3.method_num,
9799
RawBytes::default(),
98-
0u8.into(),
100+
TokenAmount::zero(),
99101
RawBytes::default(),
100102
ExitCode::OK,
101103
);
102104
rt.expect_send(
103105
entry4.receiver,
104106
entry4.method_num,
105107
RawBytes::default(),
106-
0u8.into(),
108+
TokenAmount::zero(),
107109
RawBytes::default(),
108110
ExitCode::OK,
109111
);

actors/init/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ crate-type = ["cdylib", "lib"]
1515

1616
[dependencies]
1717
fil_actors_runtime = { version = "9.0.0-alpha.1", path = "../../runtime", features = ["fil-actor"] }
18-
fvm_shared = { version = "0.8.0", default-features = false }
18+
fvm_shared = { version = "2.0.0-alpha.2", default-features = false }
1919
fvm_ipld_hamt = "0.5.1"
2020
serde = { version = "1.0.136", features = ["derive"] }
2121
num-traits = "0.2.14"

actors/init/tests/init_actor_test.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use fvm_shared::address::Address;
1616
use fvm_shared::econ::TokenAmount;
1717
use fvm_shared::error::ExitCode;
1818
use fvm_shared::{HAMT_BIT_WIDTH, METHOD_CONSTRUCTOR};
19+
use num_traits::Zero;
1920
use serde::Serialize;
2021

2122
fn check_state(rt: &MockRuntime) {
@@ -72,7 +73,7 @@ fn repeated_robust_address() {
7273
expected_id_addr,
7374
METHOD_CONSTRUCTOR,
7475
RawBytes::serialize(&fake_params).unwrap(),
75-
0u8.into(),
76+
TokenAmount::zero(),
7677
RawBytes::default(),
7778
ExitCode::OK,
7879
);
@@ -116,8 +117,8 @@ fn create_2_payment_channels() {
116117
let pay_channel_string = format!("paych_{}", n);
117118
let paych = pay_channel_string.as_bytes();
118119

119-
rt.set_balance(TokenAmount::from(100));
120-
rt.value_received = TokenAmount::from(100);
120+
rt.set_balance(TokenAmount::from_atto(100));
121+
rt.value_received = TokenAmount::from_atto(100);
121122

122123
let unique_address = Address::new_actor(paych);
123124
rt.new_actor_addr = Some(Address::new_actor(paych));
@@ -129,7 +130,7 @@ fn create_2_payment_channels() {
129130
let fake_params = ConstructorParams { network_name: String::from("fake_param") };
130131

131132
// expect anne creating a payment channel to trigger a send to the payment channels constructor
132-
let balance = TokenAmount::from(100u8);
133+
let balance = TokenAmount::from_atto(100u8);
133134

134135
rt.expect_send(
135136
expected_id_addr,
@@ -177,7 +178,7 @@ fn create_storage_miner() {
177178
expected_id_addr,
178179
METHOD_CONSTRUCTOR,
179180
RawBytes::serialize(&fake_params).unwrap(),
180-
0u8.into(),
181+
TokenAmount::zero(),
181182
RawBytes::default(),
182183
ExitCode::OK,
183184
);
@@ -228,7 +229,7 @@ fn create_multisig_actor() {
228229
expected_id_addr,
229230
METHOD_CONSTRUCTOR,
230231
RawBytes::serialize(&fake_params).unwrap(),
231-
0u8.into(),
232+
TokenAmount::zero(),
232233
RawBytes::default(),
233234
ExitCode::OK,
234235
);
@@ -263,7 +264,7 @@ fn sending_constructor_failure() {
263264
expected_id_addr,
264265
METHOD_CONSTRUCTOR,
265266
RawBytes::serialize(&fake_params).unwrap(),
266-
0u8.into(),
267+
TokenAmount::zero(),
267268
RawBytes::default(),
268269
ExitCode::USR_ILLEGAL_STATE,
269270
);

actors/market/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ crate-type = ["cdylib", "lib"]
1616
[dependencies]
1717
fil_actors_runtime = { version = "9.0.0-alpha.1", path = "../../runtime", features = ["fil-actor"] }
1818
fvm_ipld_hamt = "0.5.1"
19-
fvm_shared = { version = "0.8.0", default-features = false }
19+
fvm_shared = { version = "2.0.0-alpha.2", default-features = false }
2020
fvm_ipld_bitfield = "0.5.2"
2121
num-traits = "0.2.14"
2222
num-derive = "0.3.3"

actors/market/src/balance_table.rs

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,15 @@ use cid::Cid;
55
use fvm_ipld_blockstore::Blockstore;
66
use fvm_ipld_hamt::Error as HamtError;
77
use fvm_shared::address::Address;
8-
use fvm_shared::bigint::bigint_ser::BigIntDe;
98
use fvm_shared::econ::TokenAmount;
10-
use num_traits::{Signed, Zero};
9+
use num_traits::Zero;
1110

1211
use fil_actors_runtime::{make_empty_map, make_map_with_root_and_bitwidth, Map};
1312

1413
pub const BALANCE_TABLE_BITWIDTH: u32 = 6;
1514

1615
/// Balance table which handles getting and updating token balances specifically
17-
pub struct BalanceTable<'a, BS>(pub Map<'a, BS, BigIntDe>);
16+
pub struct BalanceTable<'a, BS>(pub Map<'a, BS, TokenAmount>);
1817

1918
impl<'a, BS> BalanceTable<'a, BS>
2019
where
@@ -38,9 +37,9 @@ where
3837
/// Gets token amount for given address in balance table
3938
pub fn get(&self, key: &Address) -> Result<TokenAmount, HamtError> {
4039
if let Some(v) = self.0.get(&key.to_bytes())? {
41-
Ok(v.0.clone())
40+
Ok(v.clone())
4241
} else {
43-
Ok(0.into())
42+
Ok(TokenAmount::zero())
4443
}
4544
}
4645

@@ -54,7 +53,7 @@ where
5453
self.0.delete(&key.to_bytes())?;
5554
Ok(())
5655
} else {
57-
self.0.set(key.to_bytes().into(), BigIntDe(sum))?;
56+
self.0.set(key.to_bytes().into(), sum)?;
5857
Ok(())
5958
}
6059
}
@@ -93,10 +92,10 @@ where
9392
/// Returns total balance held by this balance table
9493
#[allow(dead_code)]
9594
pub fn total(&self) -> Result<TokenAmount, HamtError> {
96-
let mut total = TokenAmount::default();
95+
let mut total = TokenAmount::zero();
9796

98-
self.0.for_each(|_, v: &BigIntDe| {
99-
total += &v.0;
97+
self.0.for_each(|_, v: &TokenAmount| {
98+
total += v;
10099
Ok(())
101100
})?;
102101

@@ -119,7 +118,7 @@ mod tests {
119118
let store = MemoryBlockstore::default();
120119
let mut bt = BalanceTable::new(&store);
121120

122-
assert_eq!(bt.total().unwrap(), TokenAmount::from(0u8));
121+
assert!(bt.total().unwrap().is_zero());
123122

124123
struct TotalTestCase<'a> {
125124
amount: u64,
@@ -134,9 +133,9 @@ mod tests {
134133
];
135134

136135
for t in cases.iter() {
137-
bt.add(t.addr, &TokenAmount::from(t.amount)).unwrap();
136+
bt.add(t.addr, &TokenAmount::from_atto(t.amount)).unwrap();
138137

139-
assert_eq!(bt.total().unwrap(), TokenAmount::from(t.total));
138+
assert_eq!(bt.total().unwrap(), TokenAmount::from_atto(t.total));
140139
}
141140
}
142141

@@ -146,29 +145,37 @@ mod tests {
146145
let store = MemoryBlockstore::default();
147146
let mut bt = BalanceTable::new(&store);
148147

149-
bt.add(&addr, &TokenAmount::from(80u8)).unwrap();
150-
assert_eq!(bt.get(&addr).unwrap(), TokenAmount::from(80u8));
148+
bt.add(&addr, &TokenAmount::from_atto(80u8)).unwrap();
149+
assert_eq!(bt.get(&addr).unwrap(), TokenAmount::from_atto(80u8));
151150
// Test subtracting past minimum only subtracts correct amount
152151
assert_eq!(
153-
bt.subtract_with_minimum(&addr, &TokenAmount::from(20u8), &TokenAmount::from(70u8))
154-
.unwrap(),
155-
TokenAmount::from(10u8)
152+
bt.subtract_with_minimum(
153+
&addr,
154+
&TokenAmount::from_atto(20u8),
155+
&TokenAmount::from_atto(70u8)
156+
)
157+
.unwrap(),
158+
TokenAmount::from_atto(10u8)
156159
);
157-
assert_eq!(bt.get(&addr).unwrap(), TokenAmount::from(70u8));
160+
assert_eq!(bt.get(&addr).unwrap(), TokenAmount::from_atto(70u8));
158161

159162
// Test subtracting to limit
160163
assert_eq!(
161-
bt.subtract_with_minimum(&addr, &TokenAmount::from(10u8), &TokenAmount::from(60u8))
162-
.unwrap(),
163-
TokenAmount::from(10u8)
164+
bt.subtract_with_minimum(
165+
&addr,
166+
&TokenAmount::from_atto(10u8),
167+
&TokenAmount::from_atto(60u8)
168+
)
169+
.unwrap(),
170+
TokenAmount::from_atto(10u8)
164171
);
165-
assert_eq!(bt.get(&addr).unwrap(), TokenAmount::from(60u8));
172+
assert_eq!(bt.get(&addr).unwrap(), TokenAmount::from_atto(60u8));
166173

167174
// Test must subtract success
168-
bt.must_subtract(&addr, &TokenAmount::from(10u8)).unwrap();
169-
assert_eq!(bt.get(&addr).unwrap(), TokenAmount::from(50u8));
175+
bt.must_subtract(&addr, &TokenAmount::from_atto(10u8)).unwrap();
176+
assert_eq!(bt.get(&addr).unwrap(), TokenAmount::from_atto(50u8));
170177

171178
// Test subtracting more than available
172-
assert!(bt.must_subtract(&addr, &TokenAmount::from(100u8)).is_err());
179+
assert!(bt.must_subtract(&addr, &TokenAmount::from_atto(100u8)).is_err());
173180
}
174181
}

actors/market/src/deal.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ use fil_actors_runtime::DealWeight;
66
use fvm_ipld_encoding::tuple::*;
77
use fvm_ipld_encoding::{BytesSer, Cbor};
88
use fvm_shared::address::Address;
9-
use fvm_shared::bigint::bigint_ser;
109
use fvm_shared::clock::ChainEpoch;
1110
use fvm_shared::commcid::{FIL_COMMITMENT_UNSEALED, SHA2_256_TRUNC254_PADDED};
1211
use fvm_shared::crypto::signature::Signature;
@@ -108,12 +107,9 @@ pub struct DealProposal {
108107
// otherwise it is invalid.
109108
pub start_epoch: ChainEpoch,
110109
pub end_epoch: ChainEpoch,
111-
#[serde(with = "bigint_ser")]
112110
pub storage_price_per_epoch: TokenAmount,
113111

114-
#[serde(with = "bigint_ser")]
115112
pub provider_collateral: TokenAmount,
116-
#[serde(with = "bigint_ser")]
117113
pub client_collateral: TokenAmount,
118114
}
119115

0 commit comments

Comments
 (0)