-
Notifications
You must be signed in to change notification settings - Fork 2
refactor: update import paths and API calls for OZ v0.6.0 module structure #3
Copy link
Copy link
Open
Description
Context
Depends on #2 (dependency migration). Once Cargo.toml is updated the Rust source will fail to compile because the module paths and public API changed significantly between v0.3.0 and v0.6.0.
Import path changes
| Old (v0.3.0) | New (v0.6.0) |
|---|---|
use stellar_fungible::Base; |
use stellar_tokens::fungible::{Base, FungibleToken}; |
use stellar_access_control as access_control; |
use stellar_access::access_control; |
use stellar_pausable as pausable; |
use stellar_contract_utils::pausable; |
use stellar_pausable_macros::when_not_paused; |
use stellar_macros::when_not_paused; |
use stellar_upgradeable_macros::...; |
use stellar_macros::...; |
API call changes
Access control
// v0.3.0
access_control::ensure_role(&env, &caller, &Symbol::new(&env, MINTER_ROLE));
access_control::has_role(&env, &address, &role_symbol).is_some()
access_control::get_admin(&env)
// v0.6.0
access_control::ensure_role(&env, &caller, &Symbol::new(&env, MINTER_ROLE)); // same
access_control::has_role(&env, &address, &role_symbol) // returns Option<u32>
access_control::get_admin(&env) // samePausable
// v0.3.0
pausable::paused(&env)
pausable::pause(&env)
pausable::unpause(&env)
// v0.6.0 — same function signatures, different module path
stellar_contract_utils::pausable::paused(&env)
stellar_contract_utils::pausable::pause(&env)
stellar_contract_utils::pausable::unpause(&env)Fungible Base
// v0.3.0
Base::mint(&env, &to, amount)
Base::transfer(&env, &from, &to, amount) // to: &Address
Base::burn(&env, &from, amount)
// v0.6.0
Base::mint(&env, &to, amount) // same
Base::transfer(&env, &from, &to, amount) // to: &MuxedAddress ← breaking change
Base::burn(&env, &from, amount) // sameFiles to update
Contracts/stablecoin/src/contract.rs— all use/import statements +transfer/transfer_fromsignaturesContracts/stablecoin/src/extensions/burnable.rsContracts/stablecoin/src/extensions/pausable.rsContracts/stablecoin/src/extensions/upgradeable.rsContracts/stablecoin/src/utils.rs
Acceptance criteria
- All
usestatements reference the new v0.6.0 module paths -
transferandtransfer_fromacceptMuxedAddressfor thetoparameter -
cargo buildcompiles without errors
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels