Skip to content

Commit 35d5716

Browse files
authored
[compiler-v2] fixed unittest of starcoin-stdlib, starcoin-token, starcoin-token-object (#4312)
* [compiler-v2 framework] Solved the problem that the session extension list was empty in the unit test scenario * [compiler-v2 framework] fixed some unittest * [compiler-v2 framework] fixed test_chain_id * [compiler-v2 framework] block some error for test * [compiler-v2 framework] fixed create object error * [compiler-v2 framework] remove log * [compiler-v2 framework] move truncate_16 from `from_bcs` into `bcs_util.move` * [compiler-v2 framework] In order to pass the test, the Contract Event v2 part was transplanted * [compiler-v2 framework] In order to pass the test, the Contract Event v2 part was transplanted * [compiler-v2 framework] fixed object create address error * [compiler-v2 framework] fixed object create address error * [compiler-v2 framework] remove unused codes * [compiler-v2 framework] Fixed cargo fmt
1 parent 54860e9 commit 35d5716

Some content is hidden

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

48 files changed

+1824
-13075
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -429,15 +429,11 @@ move-prover-test-utils = { git = "https://github.com/starcoinorg/move", rev = "a
429429
move-resource-viewer = { git = "https://github.com/starcoinorg/move", rev = "a14d2393e91b88465f1b3b351b20d34f0373e01f" }
430430
move-stdlib = { git = "https://github.com/starcoinorg/move", rev = "a14d2393e91b88465f1b3b351b20d34f0373e01f" }
431431
move-transactional-test-runner = { git = "https://github.com/starcoinorg/move", rev = "a14d2393e91b88465f1b3b351b20d34f0373e01f" }
432-
move-unit-test = { git = "https://github.com/starcoinorg/move", rev = "a14d2393e91b88465f1b3b351b20d34f0373e01f", features = [
433-
"table-extension",
434-
] }
432+
move-unit-test = { git = "https://github.com/starcoinorg/move", rev = "a14d2393e91b88465f1b3b351b20d34f0373e01f" }
435433
move-vm-runtime = { git = "https://github.com/starcoinorg/move", rev = "a14d2393e91b88465f1b3b351b20d34f0373e01f" }
436434
move-vm-types = { git = "https://github.com/starcoinorg/move", rev = "a14d2393e91b88465f1b3b351b20d34f0373e01f" }
437435
move-table-extension = { git = "https://github.com/starcoinorg/move", rev = "a14d2393e91b88465f1b3b351b20d34f0373e01f" }
438-
move-vm-test-utils = { git = "https://github.com/starcoinorg/move", rev = "a14d2393e91b88465f1b3b351b20d34f0373e01f", features = [
439-
"table-extension",
440-
] }
436+
move-vm-test-utils = { git = "https://github.com/starcoinorg/move", rev = "a14d2393e91b88465f1b3b351b20d34f0373e01f" }
441437

442438
names = { version = "0.14.0", default-features = false }
443439
network-api = { path = "network/api", package = "network-api" }

account/service/src/account_events.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ impl EventHandler<Self, ContractEventNotification> for AccountEventService {
5353
}
5454

5555
for i in item.0 .1.as_ref() {
56-
if watched_keys.contains(i.contract_event.key()) {
56+
let event = i.contract_event.v1().expect("contract event not v1");
57+
if watched_keys.contains(event.key()) {
5758
if let Err(e) = self.handle_contract_event(&i.contract_event) {
5859
error!(
5960
"fail to save accept token event: {:?}, err: {}",
@@ -66,7 +67,8 @@ impl EventHandler<Self, ContractEventNotification> for AccountEventService {
6667
}
6768

6869
impl AccountEventService {
69-
fn handle_contract_event(&self, event: &ContractEvent) -> Result<(), Error> {
70+
fn handle_contract_event(&self, contract_event: &ContractEvent) -> Result<(), Error> {
71+
let event = contract_event.v1()?;
7072
if event.is::<AcceptTokenEvent>() {
7173
let evt = event.decode_event::<AcceptTokenEvent>()?;
7274
let addr = event.key().get_creator_address();

cmd/starcoin/src/view.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,8 @@ impl From<TransactionEventView> for EventView {
271271

272272
impl From<ContractEvent> for EventView {
273273
/// Tries to convert the provided byte array into Event Key.
274-
fn from(event: ContractEvent) -> Self {
274+
fn from(contract_event: ContractEvent) -> Self {
275+
let event = contract_event.v1().expect("not v1");
275276
let event_data = EventDataView::new(event.type_tag(), event.event_data());
276277
Self {
277278
key: *event.key(),

dataformat-generator/build.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use starcoin_types::account_config::{
1717
VoteChangedEvent, WithdrawEvent,
1818
};
1919
use starcoin_types::block_metadata::BlockMetadata;
20-
use starcoin_types::contract_event::{ContractEvent, ContractEventV0};
20+
use starcoin_types::contract_event::{ContractEvent, ContractEventV1};
2121
use starcoin_types::event::EventKey;
2222
use starcoin_types::language_storage::TypeTag;
2323
use starcoin_types::sign_message::{SignedMessage, SigningMessage};
@@ -74,7 +74,7 @@ fn generate() -> Result<(), Error> {
7474
tracer.trace_type::<BlockMetadata>(&samples)?;
7575

7676
tracer.trace_value(&mut samples, &EventKey::new(0, AccountAddress::random()))?;
77-
tracer.trace_type::<ContractEventV0>(&samples)?;
77+
tracer.trace_type::<ContractEventV1>(&samples)?;
7878
tracer.trace_type::<ContractEvent>(&samples)?;
7979
tracer.trace_type::<StateKey>(&samples)?;
8080
tracer.trace_type::<PersistedStateValueMetadata>(&samples)?;

etc/starcoin_types.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,26 @@ ChainId:
5353
ContractEvent:
5454
ENUM:
5555
0:
56-
V0:
56+
V1:
57+
NEWTYPE:
58+
TYPENAME: ContractEventV1
59+
1:
60+
V2:
5761
NEWTYPE:
58-
TYPENAME: ContractEventV0
59-
ContractEventV0:
62+
TYPENAME: ContractEventV2
63+
ContractEventV1:
6064
STRUCT:
6165
- key:
6266
TYPENAME: EventKey
6367
- sequence_number: U64
6468
- type_tag:
6569
TYPENAME: TypeTag
6670
- event_data: BYTES
71+
ContractEventV2:
72+
STRUCT:
73+
- type_tag:
74+
TYPENAME: TypeTag
75+
- event_data: BYTES
6776
DataPath:
6877
ENUM:
6978
0:

rpc/api/src/types.rs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ use std::convert::{TryFrom, TryInto};
5555
use std::str::FromStr;
5656

5757
pub type ByteCode = Vec<u8>;
58+
5859
mod node_api_types;
5960
pub mod pubsub;
6061

@@ -1119,23 +1120,25 @@ pub struct TransactionEventView {
11191120

11201121
impl From<ContractEventInfo> for TransactionEventView {
11211122
fn from(info: ContractEventInfo) -> Self {
1123+
let event = info.event.v1().expect("not v1");
11221124
Self {
11231125
block_hash: Some(info.block_hash),
11241126
block_number: Some(info.block_number.into()),
11251127
transaction_hash: Some(info.transaction_hash),
11261128
transaction_index: Some(info.transaction_index),
11271129
transaction_global_index: Some(info.transaction_global_index.into()),
1128-
data: StrView(info.event.event_data().to_vec()),
1129-
type_tag: info.event.type_tag().clone().into(),
1130+
data: StrView(event.event_data().to_vec()),
1131+
type_tag: event.type_tag().clone().into(),
11301132
event_index: Some(info.event_index),
1131-
event_key: *info.event.key(),
1132-
event_seq_number: info.event.sequence_number().into(),
1133+
event_key: *event.key(),
1134+
event_seq_number: event.sequence_number().into(),
11331135
}
11341136
}
11351137
}
11361138

11371139
impl From<ContractEvent> for TransactionEventView {
1138-
fn from(event: ContractEvent) -> Self {
1140+
fn from(contract_event: ContractEvent) -> Self {
1141+
let event = contract_event.v1().expect("not v1");
11391142
Self {
11401143
block_hash: None,
11411144
block_number: None,
@@ -1161,6 +1164,7 @@ impl TransactionEventView {
11611164
event_index: Option<u32>,
11621165
contract_event: &ContractEvent,
11631166
) -> Self {
1167+
let event = contract_event.v1().expect("not v1");
11641168
Self {
11651169
block_hash,
11661170
block_number: block_number.map(Into::into),
@@ -1170,8 +1174,8 @@ impl TransactionEventView {
11701174
data: StrView(contract_event.event_data().to_vec()),
11711175
type_tag: contract_event.type_tag().clone().into(),
11721176
event_index,
1173-
event_key: *contract_event.key(),
1174-
event_seq_number: contract_event.sequence_number().into(),
1177+
event_key: *event.key(),
1178+
event_seq_number: event.sequence_number().into(),
11751179
}
11761180
}
11771181
}
@@ -1239,6 +1243,7 @@ impl From<TransactionOutput> for TransactionOutputView {
12391243
}
12401244
}
12411245
}
1246+
12421247
impl From<(AccessPath, WriteOp)> for TransactionOutputAction {
12431248
fn from((access_path, op): (AccessPath, WriteOp)) -> Self {
12441249
let (action, value) = match op {
@@ -1260,6 +1265,7 @@ impl From<(AccessPath, WriteOp)> for TransactionOutputAction {
12601265
}
12611266
}
12621267
}
1268+
12631269
#[derive(Clone, Debug, Serialize, Deserialize, JsonSchema)]
12641270
pub struct TransactionOutputAction {
12651271
pub access_path: AccessPath,
@@ -1842,6 +1848,7 @@ pub struct ConnectLocal;
18421848
impl ServiceRequest for ConnectLocal {
18431849
type Response = RpcChannel;
18441850
}
1851+
18451852
#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize, JsonSchema)]
18461853
pub struct AccumulatorInfoView {
18471854
/// Accumulator root hash

test-helper/src/executor.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ pub fn execute_and_apply(chain_state: &ChainStateDB, txn: Transaction) -> Transa
7979

8080
output
8181
}
82+
8283
pub fn current_block_number<S: StateView>(state_view: &S) -> u64 {
8384
let mut ret = execute_readonly_function(
8485
state_view,
@@ -173,13 +174,15 @@ pub fn account_execute(
173174
) -> Result<TransactionOutput> {
174175
user_execute(*account.address(), account.private_key(), state, payload)
175176
}
177+
176178
pub fn account_execute_should_success(
177179
account: &Account,
178180
state: &ChainStateDB,
179181
payload: TransactionPayload,
180182
) -> Result<TransactionOutput> {
181183
user_execute_should_success(*account.address(), account.private_key(), state, payload)
182184
}
185+
183186
pub fn account_execute_with_output(
184187
account: &Account,
185188
state: &ChainStateDB,
@@ -296,7 +299,7 @@ pub fn expect_event<Event: MoveResource>(output: &TransactionOutput) -> Contract
296299
output
297300
.events()
298301
.iter()
299-
.filter(|event| event.is::<Event>())
302+
.filter(|event| event.v1().expect("not v1").is::<Event>())
300303
.last()
301304
.cloned()
302305
.unwrap_or_else(|| panic!("Expect event: {}", Event::struct_tag()))
@@ -306,9 +309,9 @@ pub fn expect_decode_event<Event: MoveResource>(output: &TransactionOutput) -> E
306309
output
307310
.events()
308311
.iter()
309-
.filter(|event| event.is::<Event>())
312+
.filter(|event| event.v1().expect("not v1").is::<Event>())
310313
.last()
311314
.cloned()
312-
.and_then(|event| event.decode_event::<Event>().ok())
315+
.and_then(|event| event.v1().expect("not v1").decode_event::<Event>().ok())
313316
.unwrap_or_else(|| panic!("Expect event: {}", Event::struct_tag()))
314317
}

types/src/filter.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,13 @@ impl Default for Filter {
5555

5656
impl Filter {
5757
pub fn matching(&self, block_number: BlockNumber, e: &ContractEvent) -> bool {
58+
let event_key = e.v1().unwrap().key();
5859
if self.from_block <= block_number
5960
&& block_number <= self.to_block
60-
&& (self.event_keys.is_empty() || self.event_keys.contains(e.key()))
61-
&& (self.addrs.is_empty() || self.addrs.contains(&e.key().get_creator_address()))
61+
&& (self.event_keys.is_empty()
62+
|| self.event_keys.contains(event_key)
63+
&& (self.addrs.is_empty()
64+
|| self.addrs.contains(&event_key.get_creator_address())))
6265
{
6366
if self.type_tags.is_empty() {
6467
return true;

0 commit comments

Comments
 (0)