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,