Skip to content

Commit 2f496d3

Browse files
authored
Merge pull request #5334 from zajko/system_message_on_vm2_contract_installed
System message on vm2 contract installed
2 parents c1250d2 + c108b68 commit 2f496d3

File tree

98 files changed

+1486
-758
lines changed

Some content is hidden

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

98 files changed

+1486
-758
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.

binary_port/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ exclude = ["proptest-regressions"]
1313
[dependencies]
1414
bincode = "1.3.3"
1515
bytes = "1.0.1"
16-
casper-types = { version = "6.0.1", path = "../types", features = ["datasize", "json-schema", "std"] }
16+
casper-types = { version = "7.0.0", path = "../types", features = ["datasize", "json-schema", "std"] }
1717
num-derive = { workspace = true }
1818
num-traits = { workspace = true }
1919
once_cell = { version = "1.5.2" }

binary_port/src/information_request.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,10 @@ impl PackageIdentifier {
717717
pub(crate) fn random(rng: &mut TestRng) -> Self {
718718
match rng.gen_range(0..2) {
719719
0 => PackageIdentifier::ContractPackageHash(ContractPackageHash::new(rng.gen())),
720-
1 => PackageIdentifier::PackageAddr(rng.gen()),
720+
1 => {
721+
let addr: [u8; 32] = rng.gen();
722+
PackageIdentifier::PackageAddr(addr.into())
723+
}
721724
_ => unreachable!(),
722725
}
723726
}

execution_engine/CHANGELOG.md

Lines changed: 112 additions & 107 deletions
Large diffs are not rendered by default.

execution_engine/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ blake3 = { version = "1.5.0", default-features = false, features = ["pure"] }
1919
sha2 = { version = "0.10.8", default-features = false }
2020
keccak-asm = { version = "0.1.4", default-features = false }
2121
casper-storage = { version = "3.0.0", path = "../storage", default-features = true }
22-
casper-types = { version = "6.0.1", path = "../types", default-features = false, features = ["datasize", "gens", "json-schema", "std"] }
22+
casper-types = { version = "7.0.0", path = "../types", default-features = false, features = ["datasize", "gens", "json-schema", "std"] }
2323
casper-wasm = { version = "1.0.0", default-features = false, features = ["sign_ext", "call_indirect_overlong"] }
2424
casper-wasm-utils = { version = "4.0.0", default-features = false, features = ["sign_ext", "call_indirect_overlong"] }
2525
casper-wasmi = { version = "1.0.0", features = ["sign_ext", "call_indirect_overlong"] }

execution_engine/src/engine_state/execution_kind.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
use casper_types::{
44
bytesrepr::Bytes,
55
contracts::{NamedKeys, ProtocolVersionMajor},
6-
AddressableEntityHash, EntityVersion, Key, PackageHash, TransactionInvocationTarget,
6+
AddressableEntityHash, EntityVersion, Key, PackageAddr, TransactionInvocationTarget,
77
};
88

99
use super::{wasm_v1::SessionKind, Error, ExecutableItem};
@@ -30,7 +30,7 @@ pub(crate) enum ExecutionKind<'a> {
3030
Deploy(&'a Bytes),
3131
/// A call to an entity/contract in a package/contract package.
3232
VersionedCall {
33-
package_hash: PackageHash,
33+
package_hash: PackageAddr,
3434
entity_version: Option<EntityVersion>,
3535
protocol_version_major: Option<ProtocolVersionMajor>,
3636
/// Entry point.
@@ -86,7 +86,7 @@ impl<'a> ExecutionKind<'a> {
8686
version,
8787
protocol_version_major,
8888
} => {
89-
let package_hash = PackageHash::from(*addr);
89+
let package_hash = *addr;
9090
return Ok(Self::VersionedCall {
9191
package_hash,
9292
entity_version: *version,
@@ -104,7 +104,8 @@ impl<'a> ExecutionKind<'a> {
104104
.ok_or_else(|| Error::Exec(ExecError::NamedKeyNotFound(name.to_string())))?;
105105

106106
let package_hash = match package_key {
107-
Key::Hash(hash) | Key::Package(hash) => PackageHash::new(*hash),
107+
Key::Package(hash) => PackageAddr::new(hash.value()),
108+
Key::Hash(hash) => PackageAddr::new(*hash),
108109
_ => return Err(Error::InvalidKeyVariant(*package_key)),
109110
};
110111
return Ok(Self::VersionedCall {

execution_engine/src/engine_state/wasm_v1.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -756,7 +756,7 @@ fn build_session_info_for_executable_item(
756756
args,
757757
} => {
758758
session = ExecutableItem::Invocation(TransactionInvocationTarget::ByPackageHash {
759-
addr: hash.value(),
759+
addr: hash.value().into(),
760760
version: *version,
761761
protocol_version_major: None,
762762
});
@@ -922,7 +922,7 @@ fn build_payment_info_for_executable_item(
922922
entry_point,
923923
} => Ok(PaymentInfo(ExecutableInfo {
924924
item: ExecutableItem::Invocation(TransactionInvocationTarget::ByPackageHash {
925-
addr: hash.value(),
925+
addr: hash.value().into(),
926926
version: *version,
927927
protocol_version_major: None,
928928
}),

execution_engine/src/execution/error.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use casper_types::{
99
bytesrepr,
1010
execution::TransformError,
1111
system, AccessRights, AddressableEntityHash, ApiError, ByteCodeHash, CLType, CLValueError,
12-
ContractRuntimeTag, EntityKind, EntityVersionKey, Key, PackageHash, StoredValueTypeMismatch,
12+
ContractRuntimeTag, EntityKind, EntityVersionKey, Key, PackageAddr, StoredValueTypeMismatch,
1313
URef,
1414
};
1515
use casper_wasm::elements;
@@ -114,7 +114,7 @@ pub enum Error {
114114
UnsupportedWasmStart,
115115
/// Contract package has no active contract versions.
116116
#[error("No active contract versions for contract package")]
117-
NoActiveEntityVersions(PackageHash),
117+
NoActiveEntityVersions(PackageAddr),
118118
/// Invalid entity version supplied.
119119
#[error("Invalid entity version: {}", _0)]
120120
InvalidEntityVersion(EntityVersionKey),
@@ -138,7 +138,7 @@ pub enum Error {
138138
UnexpectedStoredValueVariant,
139139
/// Error upgrading a locked contract package.
140140
#[error("A locked contract cannot be upgraded")]
141-
LockedEntity(PackageHash),
141+
LockedEntity(PackageAddr),
142142
/// Unable to find a contract by a specified hash address.
143143
#[error("Invalid contract: {}", _0)]
144144
InvalidEntity(AddressableEntityHash),
@@ -208,6 +208,12 @@ pub enum Error {
208208
/// Unexpected entity addr.
209209
#[error("Unexpected entity kind variant: {0}")]
210210
UnexpectedEntityKind(EntityKind),
211+
/// Tried to add messages to a topic but it's full
212+
#[error("Couldn't add messages to topic with key: {0} becuase it's full")]
213+
TopicFull(Key),
214+
/// No more messages in block allowed
215+
#[error("No more messages in block allowed")]
216+
MaxMessagesPerBlockExceeded,
211217
}
212218

213219
impl From<PreprocessingError> for Error {

execution_engine/src/runtime/externals.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use casper_types::{
1616
ContractPackageHash, EntryPoints as ContractEntryPoints, NamedKeys, ProtocolVersionMajor,
1717
},
1818
AddressableEntityHash, ApiError, EntityVersion, Gas, Group, HashAlgorithm, HostFunction,
19-
HostFunctionCost, Key, PackageHash, PackageStatus, PublicKey, Signature, StoredValue, URef,
19+
HostFunctionCost, Key, PackageAddr, PackageStatus, PublicKey, Signature, StoredValue, URef,
2020
U512, UREF_SERIALIZED_LENGTH,
2121
};
2222

@@ -588,7 +588,7 @@ where
588588
],
589589
)?;
590590

591-
let contract_package_hash: PackageHash =
591+
let contract_package_hash: PackageAddr =
592592
self.t_from_mem(package_key_ptr, package_key_size)?;
593593
let label: String = self.t_from_mem(label_ptr, label_size)?;
594594
let existing_urefs: BTreeSet<URef> =
@@ -644,7 +644,7 @@ where
644644

645645
let contract_package_hash: ContractPackageHash =
646646
self.t_from_mem(contract_package_hash_ptr, contract_package_hash_size)?;
647-
let package_hash = PackageHash::new(contract_package_hash.value());
647+
let package_hash = PackageAddr::new(contract_package_hash.value());
648648
let entry_points: EntryPoints = {
649649
let contract_entry_points: ContractEntryPoints =
650650
self.t_from_mem(entry_points_ptr, entry_points_size)?;
@@ -718,7 +718,7 @@ where
718718
)))));
719719
}
720720

721-
let package_hash: PackageHash =
721+
let package_hash: PackageAddr =
722722
self.t_from_mem(contract_package_hash_ptr, contract_package_hash_size)?;
723723
let entry_points: EntryPoints =
724724
self.t_from_mem(entry_points_ptr, entry_points_size)?;
@@ -805,7 +805,7 @@ where
805805
)))));
806806
}
807807

808-
let package_hash: PackageHash =
808+
let package_hash: PackageAddr =
809809
self.t_from_mem(contract_package_hash_ptr, contract_package_hash_size)?;
810810
let entry_points: EntryPoints =
811811
self.t_from_mem(entry_points_ptr, entry_points_size)?;
@@ -949,7 +949,7 @@ where
949949
],
950950
)?;
951951

952-
let contract_package_hash: PackageHash =
952+
let contract_package_hash: PackageAddr =
953953
self.t_from_mem(contract_package_hash_ptr, contract_package_hash_size)?;
954954
let contract_version: Option<EntityVersion> =
955955
self.t_from_mem(contract_version_ptr, contract_package_size)?;
@@ -1578,7 +1578,7 @@ where
15781578
],
15791579
)?;
15801580

1581-
let contract_package_hash: PackageHash =
1581+
let contract_package_hash: PackageAddr =
15821582
self.t_from_mem(contract_package_hash_ptr, contract_package_hash_size)?;
15831583
let contract_version: Option<EntityVersion> =
15841584
self.t_from_mem(contract_version_ptr, contract_version_size)?;

0 commit comments

Comments
 (0)