Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,11 @@ ink! contracts are compiled to RISC-V bytecode for
This is how ink! smart contracts are executed on a blockchain:
they are uploaded to a blockchain that runs PolkaVM, PolkaVM then
interprets them.
As contracts are executed in a sandbox execution environment on the
blockchain itself we compile them to a `no_std` environment.
As contracts are executed in the runtime environment on the
blockchain we compile them to a `no_std` environment.
More specifically they are executed by the [`pallet-revive`](https://github.com/paritytech/polkadot-sdk/tree/master/substrate/frame/revive),
a module of the Polkadot SDK blockchain framework. This module takes ink!
smart contracts and runs them in a PolkaVM sandbox environment.
smart contracts and runs them in a PolkaVM execution environment.
It also provides an API to smart contracts for anything a smart contract
needs: storing + retrieving data, calling other contracts, sending value,
fetching the block number, ….
Expand Down Expand Up @@ -250,9 +250,9 @@ most smart-contract-specific events: `Called`, `ContractCodeUpdated, CodeStored`
The `Instantiated` event was brought back in a later PR.

(5) `pallet-revive` included `revm` as a non-optional dependency. As ink! has to
depend on `pallet-revive` for some features (e.g. sandboxed E2E testing), this
depend on `pallet-revive` for some features (e.g. runtime E2E testing), this
results in over 75 more child dependencies having to be build now. This increased
build times for sandboxed E2E tests significantly.
build times for runtime E2E tests significantly.
[We proposed](https://github.com/paritytech/polkadot-sdk/pull/9689) putting anything
`revm` behind a feature flag, but Parity is not open to it.

Expand Down
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

[Unreleased]

## Added
### Added
- Implements the API for the `pallet-revive` host functions `chain_id`, `balance_of`, `base_fee`, `origin`, `code_size`, `block_hash`, `block_author` - [#2719](https://github.com/use-ink/ink/pull/2719)
- Implement `From<ink::Address>` for "ink-as-dependency" contract refs - [#2728](https://github.com/use-ink/ink/pull/2728)

### Changed
- Rename `ink_sandbox` crate to `ink_runtime`, `Sandbox` trait to `RuntimeEnv`, and `SandboxClient` to `RuntimeClient` for improved clarity. Also simplifies syntax for e2e tests, both runtime and node e2e tests.

## Version 6.0.0-beta.1

### Added
Expand Down
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ members = [
"crates/revive-types",
"crates/prelude",
"crates/primitives",
"crates/sandbox",
"crates/runtime",
"crates/storage",
"crates/storage/traits"
]
Expand Down Expand Up @@ -81,7 +81,7 @@ tracing-subscriber = { version = "0.3.20" }
trybuild = { version = "1.0.110" }
which = { version = "8.0.0" }
xxhash-rust = { version = "0.8" }
const_env = { version = "0.1" }
const_env = { version = "0.1.4" }
const-hex = { version = "1.17.0", default-features = false }

# Substrate dependencies
Expand Down
8 changes: 4 additions & 4 deletions RELEASES_CHECKLIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,18 +60,18 @@ in the future.
- Release `cargo-contract` crates.
- Request update of `drink` client, which depends on the `cargo-contract` crates.
- Release `ink_e2e`.
1. The `ink_sandbox` crate depends on a git commit of `polkadot-sdk`, hence it
1. The `ink_runtime` crate depends on a git commit of `polkadot-sdk`, hence it
currently cannot be published to crates.io.
1. Do a dry run:
```bash
fd Cargo.toml crates/ | \
grep -v e2e | \
grep -v sandbox | \
grep -v runtime/ | \
xargs -n1 cargo no-dev-deps publish --allow-dirty --dry-run --manifest-path
```
This command ignores the `e2e` and `sandbox` folder: The `e2e` crates depend on the `cargo-contract/contract-build`
This command ignores the `e2e` and `runtime` folders: The `e2e` crates depend on the `cargo-contract/contract-build`
crate, so if you want to publish those, you need to publish `cargo-contract/contract-build` first.
The `sandbox` is ignored, as it depends on some crates via their `git` ref.
The `runtime` is ignored, as it depends on some crates via their `git` ref.
It uses [`no-dev-deps`](https://crates.io/crates/cargo-no-dev-deps)
for publishing, so that the `dev-dependencies` of ink! are ignored for publishing.
They are not needed and due to a cycle it's also not possible to publish with them.
Expand Down
2 changes: 1 addition & 1 deletion crates/e2e/macro/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ tracing = { workspace = true }
[dev-dependencies]
ink = { path = "../../ink" }
ink_e2e = { path = "../" }
ink_sandbox = { path = "../../sandbox" }
ink_runtime = { path = "../../runtime" }
temp-env = "0.3.6"

[features]
Expand Down
Loading
Loading