Skip to content

Commit

Permalink
Merge pull request #219 from multiversx/refactor-scstorage
Browse files Browse the repository at this point in the history
refactor sc-storage
  • Loading branch information
dragos-rebegea authored Nov 4, 2024
2 parents 697dde1 + c9eb08a commit 34639d5
Show file tree
Hide file tree
Showing 67 changed files with 2,331 additions and 1,984 deletions.
36 changes: 36 additions & 0 deletions Cargo.lock

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

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ members = [
"bridged-tokens-wrapper/meta",
"test-caller",
"test-caller/meta",
"common/storage-module",
"common/mock-contracts/mock-price-aggregator/meta",
"common/mock-contracts/mock-multi-transfer-esdt/meta",
"common/mock-contracts/mock-bridge-proxy/meta",
Expand Down
18 changes: 18 additions & 0 deletions bridge-proxy/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,18 @@ path = "../common/eth-address"
[dependencies.token-module]
path = "../common/token-module"

[dependencies.storage-module]
path = "../common/storage-module"

[dependencies.tx-batch-module]
path = "../common/tx-batch-module"

[dependencies.sc-proxies]
path = "../common/sc-proxies"

[dependencies.mock-proxies]
path = "../common/mock-proxies"

[dependencies.esdt-safe]
path = "../esdt-safe"

Expand All @@ -32,6 +38,18 @@ path = "../bridged-tokens-wrapper"
[dependencies.mock-bridged-tokens-wrapper]
path = "../common/mock-contracts/mock-bridged-tokens-wrapper"

[dependencies.mock-esdt-safe]
path = "../common/mock-contracts/mock-esdt-safe"

[dependencies.mock-multisig]
path = "../common/mock-contracts/mock-multisig"

[dependencies.mock-price-aggregator]
path = "../common/mock-contracts/mock-price-aggregator"

[dependencies.mock-multi-transfer-esdt]
path = "../common/mock-contracts/mock-multi-transfer-esdt"

[dependencies.multiversx-sc]
version = "=0.53.2"

Expand Down
10 changes: 5 additions & 5 deletions bridge-proxy/src/bridge-proxy.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ const DELAY_BEFORE_OWNER_CAN_CANCEL_TRANSACTION: u64 = 300;
pub trait BridgeProxyContract:
config::ConfigModule
+ multiversx_sc_modules::pause::PauseModule
+ storage_module::CommonStorageModule
{
#[init]
fn init(&self, opt_multi_transfer_address: OptionalValue<ManagedAddress>) {
self.set_multi_transfer_contract_address(opt_multi_transfer_address);
fn init(&self) {
self.set_paused(true);
}

Expand All @@ -34,7 +34,7 @@ pub trait BridgeProxyContract:
let caller = self.blockchain().get_caller();
let payment = self.call_value().single_esdt();
require!(
caller == self.multi_transfer_address().get(),
caller == self.get_multi_transfer_address(),
"Only MultiTransfer can do deposits"
);
let next_tx_id = self.get_next_tx_id();
Expand Down Expand Up @@ -128,7 +128,7 @@ pub trait BridgeProxyContract:

fn refund_transaction(&self, tx_id: usize) {
let tx = self.get_pending_transaction_by_id(tx_id);
let esdt_safe_contract_address = self.esdt_safe_contract_address().get();
let esdt_safe_contract_address = self.get_esdt_safe_address();

let unwrapped_token = self.unwrap_token(&tx.token_id, tx_id);
let batch_id = self.batch_id(tx_id).get();
Expand All @@ -153,7 +153,7 @@ pub trait BridgeProxyContract:

fn unwrap_token(&self, requested_token: &TokenIdentifier, tx_id: usize) -> EsdtTokenPayment {
let payment = self.payments(tx_id).get();
let bridged_tokens_wrapper_address = self.bridged_tokens_wrapper_address().get();
let bridged_tokens_wrapper_address = self.get_bridged_tokens_wrapper_address();

if requested_token == &payment.token_identifier {
return payment;
Expand Down
63 changes: 0 additions & 63 deletions bridge-proxy/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,69 +4,6 @@ use transaction::EthTransaction;

#[multiversx_sc::module]
pub trait ConfigModule {
#[only_owner]
#[endpoint(setMultiTransferAddress)]
fn set_multi_transfer_contract_address(
&self,
opt_multi_transfer_address: OptionalValue<ManagedAddress>,
) {
match opt_multi_transfer_address {
OptionalValue::Some(sc_addr) => {
require!(
self.blockchain().is_smart_contract(&sc_addr),
"Invalid multi-transfer address"
);
self.multi_transfer_address().set(&sc_addr);
}
OptionalValue::None => self.multi_transfer_address().clear(),
}
}

#[only_owner]
#[endpoint(setBridgedTokensWrapperAddress)]
fn set_bridged_tokens_wrapper_contract_address(
&self,
opt_address: OptionalValue<ManagedAddress>,
) {
match opt_address {
OptionalValue::Some(sc_addr) => {
require!(
self.blockchain().is_smart_contract(&sc_addr),
"Invalid bridged tokens wrapper address"
);
self.bridged_tokens_wrapper_address().set(&sc_addr);
}
OptionalValue::None => self.bridged_tokens_wrapper_address().clear(),
}
}

#[only_owner]
#[endpoint(setEsdtSafeAddress)]
fn set_esdt_safe_contract_address(&self, opt_address: OptionalValue<ManagedAddress>) {
match opt_address {
OptionalValue::Some(sc_addr) => {
require!(
self.blockchain().is_smart_contract(&sc_addr),
"Invalid bridged tokens wrapper address"
);
self.esdt_safe_contract_address().set(&sc_addr);
}
OptionalValue::None => self.esdt_safe_contract_address().clear(),
}
}

#[view(getMultiTransferAddress)]
#[storage_mapper("multiTransferAddress")]
fn multi_transfer_address(&self) -> SingleValueMapper<ManagedAddress>;

#[view(getBridgedTokensWrapperAddress)]
#[storage_mapper("bridgedTokensWrapperAddress")]
fn bridged_tokens_wrapper_address(&self) -> SingleValueMapper<ManagedAddress>;

#[view(getEsdtSafeContractAddress)]
#[storage_mapper("esdtSafeContractAddress")]
fn esdt_safe_contract_address(&self) -> SingleValueMapper<ManagedAddress>;

#[storage_mapper("pending_transactions")]
fn pending_transactions(&self) -> MapMapper<usize, EthTransaction<Self::Api>>;

Expand Down
Loading

0 comments on commit 34639d5

Please sign in to comment.