diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a133f9e..42c60cb 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -15,9 +15,9 @@ concurrency: env: CARGO_TERM_COLOR: always REGISTRY: ghcr.io - RUST_VERSION: 1.77.0 - FORC_VERSION: 0.61.0 - CORE_VERSION: 0.26.0 + RUST_VERSION: 1.80.1 + FORC_VERSION: 0.63.3 + CORE_VERSION: 0.34.0 PATH_TO_SCRIPTS: .github/scripts jobs: diff --git a/CHANGELOG.md b/CHANGELOG.md index a248bf6..30ebfcf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ### Changed Unreleased -- Something changed here 1 +- [#135](https://github.com/FuelLabs/sway-standards/pull/135) Updates standards, examples and CI to latest forc 0.63.3. - Something changed here 2 ### Fixed Unreleased diff --git a/README.md b/README.md index ae45a84..c394c83 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ - - + + @@ -162,12 +162,12 @@ Example of a minimal SRC-14 implementation with no access control. Example of a SRC-14 implementation that also implements [SRC-5](https://docs.fuel.network/docs/sway-standards/src-5-ownership/). > **Note** -> All standards currently use `forc v0.61.0`. +> All standards currently use `forc v0.63.3`. > **Note** diff --git a/docs/src/index.md b/docs/src/index.md index 3935ca0..02d8b59 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -7,7 +7,7 @@ Standards in this repository may be in various stages of development. Use of dra If you don't find what you're looking for, feel free to create an issue and propose a new standard! > **Note** -> All standards currently use `forc v0.61.0`. +> All standards currently use `forc v0.63.3`. ## Using a standard diff --git a/examples/src14-simple-proxy/minimal/src/minimal.sw b/examples/src14-simple-proxy/minimal/src/minimal.sw index 721dcac..b23600f 100644 --- a/examples/src14-simple-proxy/minimal/src/minimal.sw +++ b/examples/src14-simple-proxy/minimal/src/minimal.sw @@ -4,19 +4,25 @@ use std::execution::run_external; use standards::src14::{SRC14, SRC14_TARGET_STORAGE}; storage { - // target is at sha256("storage_SRC14_0") - target: ContractId = ContractId::zero(), + SRC14 { + /// The [ContractId] of the target contract. + /// + /// # Additional Information + /// + /// `target` is stored at sha256("storage_SRC14_0") + target in 0x7bb458adc1d118713319a5baa00a2d049dd64d2916477d2688d76970c898cd55: ContractId = ContractId::zero(), + }, } impl SRC14 for Contract { #[storage(read, write)] fn set_proxy_target(new_target: ContractId) { - storage.target.write(new_target); + storage::SRC14.target.write(new_target); } #[storage(read)] fn proxy_target() -> Option { - storage.target.try_read() + storage::SRC14.target.try_read() } } @@ -24,5 +30,5 @@ impl SRC14 for Contract { #[storage(read)] fn fallback() { // pass through any other method call to the target - run_external(storage.target.read()) + run_external(storage::SRC14.target.read()) } diff --git a/examples/src14-simple-proxy/owned/src/owned.sw b/examples/src14-simple-proxy/owned/src/owned.sw index 5e5ba6d..3f6b55d 100644 --- a/examples/src14-simple-proxy/owned/src/owned.sw +++ b/examples/src14-simple-proxy/owned/src/owned.sw @@ -8,30 +8,35 @@ use standards::src14::{SRC14, SRC14_TARGET_STORAGE, SRC14Extension}; const INITIAL_OWNER: Identity = Identity::Address(Address::zero()); storage { - proxy { - // target is at sha256("storage_SRC14_0") + SRC14 { + /// The [ContractId] of the target contract. + /// + /// # Additional Information + /// + /// `target` is stored at sha256("storage_SRC14_0") + target in 0x7bb458adc1d118713319a5baa00a2d049dd64d2916477d2688d76970c898cd55: ContractId = ContractId::zero(), + /// The [State] of the proxy owner. owner: State = State::Initialized(INITIAL_OWNER), }, - target: ContractId = ContractId::zero(), } impl SRC14 for Contract { #[storage(read, write)] fn set_proxy_target(new_target: ContractId) { only_owner(); - storage.target.write(new_target); + storage::SRC14.target.write(new_target); } #[storage(read)] fn proxy_target() -> Option { - storage.target.try_read() + storage::SRC14.target.try_read() } } impl SRC14Extension for Contract { #[storage(read)] fn proxy_owner() -> State { - storage::proxy.owner.read() + storage::SRC14.owner.read() } } @@ -39,13 +44,13 @@ impl SRC14Extension for Contract { #[storage(read)] fn fallback() { // pass through any other method call to the target - run_external(storage.target.read()) + run_external(storage::SRC14.target.read()) } #[storage(read)] fn only_owner() { require( - storage::proxy + storage::SRC14 .owner .read() == State::Initialized(msg_sender().unwrap()), AccessError::NotOwner,