Skip to content

Commit

Permalink
starknet: rename IMaintenance functions
Browse files Browse the repository at this point in the history
  • Loading branch information
ptisserand committed Aug 28, 2024
1 parent 535e1e7 commit 0567cfb
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 31 deletions.
34 changes: 17 additions & 17 deletions contracts/ark_starknet/src/executor.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -106,15 +106,15 @@ mod executor {
default_fees: FeesRatio,
creator_fees: LegacyMap<ContractAddress, (ContractAddress, FeesRatio)>,
// maintenance mode
enabled: bool,
in_maintenance: bool,
}

#[event]
#[derive(Drop, starknet::Event)]
enum Event {
OrderExecuted: OrderExecuted,
CollectionFallbackFees: CollectionFallbackFees,
ExecutorEnabled: ExecutorEnabled,
ExecutorInMaintenance: ExecutorInMaintenance,
}

#[derive(Drop, starknet::Event)]
Expand All @@ -137,12 +137,12 @@ mod executor {
}

#[derive(Drop, starknet::Event)]
struct ExecutorEnabled {
enable: bool
struct ExecutorInMaintenance {
on: bool
}

mod Errors {
const NOT_ENABLED: felt252 = 'Executor not enabled';
const IN_MAINTENANCE: felt252 = 'Executor not enabled';
const UNAUTHORIZED_ADMIN: felt252 = 'Unauthorized admin address';
const FEES_RATIO_INVALID: felt252 = 'Fees ratio is invalid';
}
Expand All @@ -162,7 +162,7 @@ mod executor {
self.ark_fees.write(Default::default());
self.default_receiver.write(admin_address);
self.default_fees.write(Default::default());
self.enabled.write(true); // enabled by default
self.in_maintenance.write(false); // enabled by default
}


Expand Down Expand Up @@ -296,7 +296,7 @@ mod executor {
}

fn cancel_order(ref self: ContractState, cancelInfo: CancelInfo) {
_ensure_is_enabled(@self);
_ensure_is_not_in_maintenance(@self);
let messaging = IAppchainMessagingDispatcher {
contract_address: self.messaging_address.read()
};
Expand All @@ -315,7 +315,7 @@ mod executor {
}

fn create_order(ref self: ContractState, order: OrderV1) {
_ensure_is_enabled(@self);
_ensure_is_not_in_maintenance(@self);
let messaging = IAppchainMessagingDispatcher {
contract_address: self.messaging_address.read()
};
Expand All @@ -339,7 +339,7 @@ mod executor {
}

fn fulfill_order(ref self: ContractState, fulfillInfo: FulfillInfo) {
_ensure_is_enabled(@self);
_ensure_is_not_in_maintenance(@self);
let messaging = IAppchainMessagingDispatcher {
contract_address: self.messaging_address.read()
};
Expand All @@ -366,7 +366,7 @@ mod executor {
// );

// Check if execution_info.currency_contract_address is whitelisted
_ensure_is_enabled(@self);
_ensure_is_not_in_maintenance(@self);
assert(
execution_info.payment_currency_chain_id == self.chain_id.read(),
'Chain ID is not SN_MAIN'
Expand Down Expand Up @@ -507,14 +507,14 @@ mod executor {

#[abi(embed_v0)]
impl ExecutorMaintenanceImpl of IMaintenance<ContractState> {
fn is_enabled(self: @ContractState) -> bool {
self.enabled.read()
fn is_in_maintenance(self: @ContractState) -> bool {
self.in_maintenance.read()
}

fn enable(ref self: ContractState, enable: bool) {
fn set_maintenance_mode(ref self: ContractState, on: bool) {
_ensure_admin(@self);
self.enabled.write(enable);
self.emit(ExecutorEnabled { enable })
self.in_maintenance.write(on);
self.emit(ExecutorInMaintenance { on })
}
}

Expand Down Expand Up @@ -809,8 +809,8 @@ mod executor {
);
}

fn _ensure_is_enabled(self: @ContractState) {
assert(self.enabled.read(), Errors::NOT_ENABLED)
fn _ensure_is_not_in_maintenance(self: @ContractState) {
assert(!self.in_maintenance.read(), Errors::IN_MAINTENANCE)
}

fn _compute_fees_amount(
Expand Down
4 changes: 2 additions & 2 deletions contracts/ark_starknet/src/interfaces.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,6 @@ trait IUpgradable<T> {

#[starknet::interface]
trait IMaintenance<T> {
fn is_enabled(self: @T) -> bool;
fn enable(ref self: T, enable: bool);
fn is_in_maintenance(self: @T) -> bool;
fn set_maintenance_mode(ref self: T, on: bool);
}
4 changes: 2 additions & 2 deletions contracts/ark_starknet/tests/integration/create_order.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ fn test_create_order_erc20_to_erc721_disabled() {
order.start_amount = start_amount;

snf::start_prank(CheatTarget::One(executor_address), admin);
IMaintenanceDispatcher { contract_address: executor_address }.enable(false);
IMaintenanceDispatcher { contract_address: executor_address }.set_maintenance_mode(true);
snf::stop_prank(CheatTarget::One(executor_address));

snf::start_prank(CheatTarget::One(executor_address), offerer);
Expand All @@ -155,7 +155,7 @@ fn test_create_order_erc721_to_erc20_disabled() {
order.token_id = Option::Some(token_id);

snf::start_prank(CheatTarget::One(executor_address), admin);
IMaintenanceDispatcher { contract_address: executor_address }.enable(false);
IMaintenanceDispatcher { contract_address: executor_address }.set_maintenance_mode(true);
snf::stop_prank(CheatTarget::One(executor_address));

snf::start_prank(CheatTarget::One(executor_address), offerer);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -673,7 +673,7 @@ fn test_execute_order_disabled() {
);

snf::start_prank(CheatTarget::One(executor_address), admin_address);
IMaintenanceDispatcher { contract_address: executor_address }.enable(false);
IMaintenanceDispatcher { contract_address: executor_address }.set_maintenance_mode(true);
snf::stop_prank(CheatTarget::One(executor_address));

IExecutorDispatcher { contract_address: executor_address }.execute_order(execution_info);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -534,7 +534,7 @@ fn test_fulfill_order_not_enabled() {
snf::stop_prank(CheatTarget::One(nft_address));

snf::start_prank(CheatTarget::One(executor_address), admin);
IMaintenanceDispatcher { contract_address: executor_address }.enable(false);
IMaintenanceDispatcher { contract_address: executor_address }.set_maintenance_mode(true);
snf::stop_prank(CheatTarget::One(executor_address));

snf::start_prank(CheatTarget::One(executor_address), fulfiller);
Expand Down
20 changes: 12 additions & 8 deletions contracts/ark_starknet/tests/integration/maintenance.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -15,26 +15,30 @@ fn admin_can_change_executor_state() {
let executor = IMaintenanceDispatcher { contract_address: executor_address };
let mut spy = spy_events(SpyOn::One(executor_address));
snf::start_prank(snf::CheatTarget::One(executor_address), admin);
executor.enable(false);
assert!(!executor.is_enabled(), "Executor should be disabled");
executor.set_maintenance_mode(true);
assert!(executor.is_in_maintenance(), "Executor should be in maintenance");
spy
.assert_emitted(
@array![
(
executor_address,
executor::Event::ExecutorEnabled(executor::ExecutorEnabled { enable: false, })
executor::Event::ExecutorInMaintenance(
executor::ExecutorInMaintenance { on: true, }
)
)
]
);

executor.enable(true);
assert!(executor.is_enabled(), "Executor should be enabled");
executor.set_maintenance_mode(false);
assert!(!executor.is_in_maintenance(), "Executor should not be in maintenance");
spy
.assert_emitted(
@array![
(
executor_address,
executor::Event::ExecutorEnabled(executor::ExecutorEnabled { enable: true, })
executor::Event::ExecutorInMaintenance(
executor::ExecutorInMaintenance { on: false, }
)
)
]
);
Expand All @@ -49,7 +53,7 @@ fn only_admin_can_change_disable_executor() {
let alice = contract_address_const::<'alice'>();

snf::start_prank(snf::CheatTarget::One(executor_address), alice);
IMaintenanceDispatcher { contract_address: executor_address }.enable(false);
IMaintenanceDispatcher { contract_address: executor_address }.set_maintenance_mode(true);
snf::stop_prank(snf::CheatTarget::One(executor_address));
}

Expand All @@ -60,6 +64,6 @@ fn only_admin_can_change_enable_executor() {
let alice = contract_address_const::<'alice'>();

snf::start_prank(snf::CheatTarget::One(executor_address), alice);
IMaintenanceDispatcher { contract_address: executor_address }.enable(true);
IMaintenanceDispatcher { contract_address: executor_address }.set_maintenance_mode(false);
snf::stop_prank(snf::CheatTarget::One(executor_address));
}

0 comments on commit 0567cfb

Please sign in to comment.