Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
fe81abd
Use frontier fork with frame-evm-balances
dmitrylavrenov May 16, 2023
62784a0
Update frontier
dmitrylavrenov May 17, 2023
57888c0
Use own AccountId at precompile_set
dmitrylavrenov May 17, 2023
bf5df71
Use AccountId from pallet_evm account provider for EvmTransactionCharger
dmitrylavrenov May 17, 2023
6802258
Update frontier
dmitrylavrenov May 18, 2023
6aafeed
Define and use evm treasury pot account at runtime
dmitrylavrenov May 22, 2023
d394cf4
Use DustRemoval for evm balances with evm treasury pot account
dmitrylavrenov May 22, 2023
b055ae2
Define and use evm fee pot account at runtime
dmitrylavrenov May 22, 2023
d4a8375
Fix EvmTransactionCharger with account id from account provider
dmitrylavrenov May 22, 2023
cdb3351
Use EvmTransactionCharger for pallet_evm with EvmBalances and EvmFeesPot
dmitrylavrenov May 22, 2023
eabdca4
Define full account id type
dmitrylavrenov May 22, 2023
ae3cc45
Update frontier
dmitrylavrenov May 24, 2023
cf83dbc
Add evm fees and evm treasurey pot accounts into testnet genesis
dmitrylavrenov May 25, 2023
5762e4a
Fix genesis_config test at runtime
dmitrylavrenov May 25, 2023
2430c22
Fix fees tests at runtime
dmitrylavrenov May 25, 2023
a7d9698
Fix claims and vesting tests
dmitrylavrenov May 26, 2023
07cefa3
Refactor genesis for fees tests
dmitrylavrenov May 26, 2023
4adc9c9
Define a helper function to get EvmAccountId
dmitrylavrenov May 27, 2023
dfb165e
Fix fixed_supply tests
dmitrylavrenov May 27, 2023
dd7ed4a
Use EnsureAddressNever for CallOrigin at pallet-evm
dmitrylavrenov May 27, 2023
db2ac8e
Add ethereum execute test transaction into fixed supply tests
dmitrylavrenov May 29, 2023
60cde20
Proper evm accounts info setting up at chain spec
dmitrylavrenov May 29, 2023
e94b0b2
Update frontier
dmitrylavrenov May 29, 2023
6ed3a47
Add try-runtime features
dmitrylavrenov May 29, 2023
67f5d45
Update frontier
dmitrylavrenov Jun 5, 2023
fc6d1c1
Rename AccountIdOf into EvmAccountIdOf
dmitrylavrenov Jun 5, 2023
bfe8b22
Update frontier
dmitrylavrenov Jun 16, 2023
e8c4ced
Use EvmSystem as AccountProvider for pallet_evm
dmitrylavrenov Jun 18, 2023
3d47fbd
Use frontier locked/polkadot-v0.9.38 version
dmitrylavrenov Jun 20, 2023
dd2dcba
Merge branch 'master' into separate-evm-accounts
dmitrylavrenov Jun 30, 2023
d2e7d49
Remove evm fees and treasure accounts usage
dmitrylavrenov Jun 30, 2023
7f4a4fb
Merge branch 'master' into separate-evm-accounts
dmitrylavrenov Jul 3, 2023
57febbf
Implement configs for NativeToEvmOneToOne and EvmToNativeOneToOne
dmitrylavrenov Jul 3, 2023
3d0c685
Add required pot accounts and pallet_currency_swap
dmitrylavrenov Jul 3, 2023
f2bae2a
Add genesis pot accounts
dmitrylavrenov Jul 3, 2023
71b99ff
Integrate precompile-currency-swap into runtime
dmitrylavrenov Jul 3, 2023
d051113
Remove redundant genesis config field for tests
dmitrylavrenov Jul 3, 2023
c01527c
Properly setup dust removal and fees logic using currency swap proxy …
dmitrylavrenov Jul 3, 2023
1b3dd55
Add required pot accounts at testnet genesis logic
dmitrylavrenov Jul 3, 2023
16149ad
Fix tests with introduced logic
dmitrylavrenov Jul 3, 2023
8e4fa80
Merge branch 'master' into separate-evm-accounts
dmitrylavrenov Jul 3, 2023
28787a3
Add currency swap related tests
dmitrylavrenov Jul 3, 2023
5685181
Rename BalancesPot to NativeToEvmSwapBridgePot
dmitrylavrenov Jul 3, 2023
97c3884
Rename EvmBalancesPot to EvmToNativeSwapBridgePot
dmitrylavrenov Jul 3, 2023
c186f28
Rename evm_non_system_genesis_account to evm_genesis_account
dmitrylavrenov Jul 3, 2023
bb2fe07
Rename pallet ids at runtime
dmitrylavrenov Jul 3, 2023
0507c03
Rename EvmToNativeProxy to EvmToNativeProxyConfig and move defintions…
dmitrylavrenov Jul 3, 2023
47e31fb
Update pallets ids with numeric at the end
dmitrylavrenov Jul 3, 2023
0509c17
More explisit use of EvmToNativeOneToOne at frontier precompiles
dmitrylavrenov Jul 3, 2023
ff44e47
More explicit use of CurrencySwap
dmitrylavrenov Jul 3, 2023
f8efc66
Use a vec of tuples form fot genesis evm accounts in tests
dmitrylavrenov Jul 3, 2023
adc89d5
Merge branch 'master' into separate-evm-accounts
dmitrylavrenov Jul 3, 2023
5ed73b4
Improve docs for evm genesis account creation helper function
dmitrylavrenov Jul 3, 2023
557cdcd
Remove redundant BTreeMap
dmitrylavrenov Jul 3, 2023
af4a45f
Fix genesis pot accounts with new pallet ids
dmitrylavrenov Jul 3, 2023
9858247
Rename total_issuance_ethereum_execute to total_issuance_ethereum_tra…
dmitrylavrenov Jul 3, 2023
d6a0a80
Return total_issuance_evm_withdraw test
dmitrylavrenov Jul 3, 2023
462f06e
Remove misadded test file
dmitrylavrenov Jul 3, 2023
ee64028
Change test place
dmitrylavrenov Jul 3, 2023
fed6101
Return evm call and create tests for fixed supply
dmitrylavrenov Jul 3, 2023
e6de3ea
Improve total issuance checks
dmitrylavrenov Jul 3, 2023
25c5312
Add assert_total_issuance helper function
dmitrylavrenov Jul 3, 2023
a45c594
Add fees and dust removal related tests
dmitrylavrenov Jul 3, 2023
88f01c7
Add currency_swap_precompile test
dmitrylavrenov Jul 3, 2023
0c698b7
Merge branch 'master' into separate-evm-accounts
dmitrylavrenov Jul 4, 2023
2bfca2d
Revert humanode prefix
dmitrylavrenov Jul 4, 2023
613e324
Add total issuance assert
dmitrylavrenov Jul 4, 2023
aec3bd2
Properly init genesis with bridge accounts for some tests mods
dmitrylavrenov Jul 10, 2023
3c08bdd
Return removed comment
dmitrylavrenov Jul 10, 2023
fb74ec2
Add todo to calculate proper dynamoc gas cost estimation for currency…
dmitrylavrenov Jul 10, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Cargo.lock

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

66 changes: 44 additions & 22 deletions crates/humanode-peer/src/chain_spec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,17 @@ use frame_support::BoundedVec;
use hex_literal::hex;
use humanode_runtime::{
opaque::SessionKeys, robonode, token_claims::types::ClaimInfo, AccountId, BabeConfig, Balance,
BalancesConfig, BioauthConfig, BootnodesConfig, ChainPropertiesConfig, EthereumAddress,
EthereumChainIdConfig, EthereumConfig, EvmAccountsMappingConfig, GenesisConfig, GrandpaConfig,
ImOnlineConfig, SessionConfig, Signature, SudoConfig, SystemConfig, TokenClaimsConfig,
WASM_BINARY,
BalancesConfig, BioauthConfig, BootnodesConfig, ChainPropertiesConfig, EVMConfig,
EthereumAddress, EthereumChainIdConfig, EthereumConfig, EvmAccountId, GenesisConfig,
GrandpaConfig, ImOnlineConfig, SessionConfig, Signature, SudoConfig, SystemConfig,
TokenClaimsConfig, WASM_BINARY,
};
use pallet_im_online::sr25519::AuthorityId as ImOnlineId;
use sc_chain_spec_derive::{ChainSpecExtension, ChainSpecGroup};
use sc_service::ChainType;
use serde::{Deserialize, Serialize};
use sp_consensus_babe::AuthorityId as BabeId;
use sp_core::H160;
use sp_finality_grandpa::AuthorityId as GrandpaId;
use sp_runtime::{app_crypto::sr25519, traits::Verify};

Expand Down Expand Up @@ -48,8 +49,8 @@ pub fn authority_keys(seed: &str) -> (AccountId, BabeId, GrandpaId, ImOnlineId)
}

/// Generate an EVM account from seed.
pub fn evm_account(seed: &str) -> EthereumAddress {
EthereumAddress(evm_account_from_seed(seed))
pub fn evm_account_id(seed: &str) -> EvmAccountId {
H160::from_slice(&evm_account_from_seed(seed))
}

/// The default Humanode ss58 prefix.
Expand Down Expand Up @@ -80,6 +81,16 @@ fn dev_robonode_public_key(default: &'static [u8]) -> Result<robonode::PublicKey
.map_err(|err| format!("unable to parse robonode public key: {err:?}"))
}

/// A helper function to construct an EVM genesis account with a predefined balance.
fn evm_genesis_account(init_balance: Balance) -> fp_evm::GenesisAccount {
fp_evm::GenesisAccount {
balance: init_balance.into(),
code: Default::default(),
nonce: Default::default(),
storage: Default::default(),
}
}

/// A configuration for local testnet.
pub fn local_testnet_config() -> Result<ChainSpec, String> {
let wasm_binary =
Expand Down Expand Up @@ -115,6 +126,7 @@ pub fn local_testnet_config() -> Result<ChainSpec, String> {
account_id("Eve//stash"),
account_id("Ferdie//stash"),
],
vec![evm_account_id("EvmAlice"), evm_account_id("EvmBob")],
robonode_public_key,
vec![account_id("Alice")],
)
Expand Down Expand Up @@ -160,6 +172,7 @@ pub fn development_config() -> Result<ChainSpec, String> {
account_id("Alice//stash"),
account_id("Bob//stash"),
],
vec![evm_account_id("EvmAlice"), evm_account_id("EvmBob")],
robonode_public_key,
vec![account_id("Alice")],
)
Expand Down Expand Up @@ -210,6 +223,7 @@ pub fn benchmark_config() -> Result<ChainSpec, String> {
account_id("Alice//stash"),
account_id("Bob//stash"),
],
vec![evm_account_id("EvmAlice"), evm_account_id("EvmBob")],
robonode_public_key,
vec![account_id("Alice")],
)
Expand Down Expand Up @@ -238,19 +252,13 @@ const EXISTENTIAL_DEPOSIT: Balance = 500;
/// The initial pot accounts balance for testnet genesis.
const INITIAL_POT_ACCOUNT_BALANCE: Balance = EXISTENTIAL_DEPOSIT + DEV_ACCOUNT_BALANCE;

/// An Ethereum dev account; we call this one "Gerald".
/// Private key: `0x99b3c12287537e38c90a9219d4cb074a89a16e9cdb20bf85728ebd97c343e342`.
/// This is an Ethereum ECDSA compatible account, so it can be used in
/// Ethereum wallets and dapps to interface with Ethereum-compatible networks
/// (like our network!).
const ETHEREUM_ADDRESS_GERALD: [u8; 20] = hex!("6Be02d1d3665660d22FF9624b7BE0551ee1Ac91b");

/// Configure initial storage state for FRAME modules.
fn testnet_genesis(
wasm_binary: &[u8],
initial_authorities: Vec<(AccountId, BabeId, GrandpaId, ImOnlineId)>,
root_key: AccountId,
endowed_accounts: Vec<AccountId>,
evm_endowed_accounts: Vec<EvmAccountId>,
robonode_public_key: robonode::PublicKey,
bootnodes: Vec<AccountId>,
) -> GenesisConfig {
Expand All @@ -275,6 +283,10 @@ fn testnet_genesis(
humanode_runtime::TokenClaimsPot::account_id(),
INITIAL_POT_ACCOUNT_BALANCE,
),
(
humanode_runtime::NativeToEvmSwapBridgePot::account_id(),
INITIAL_POT_ACCOUNT_BALANCE,
),
];
pot_accounts
.into_iter()
Expand Down Expand Up @@ -328,23 +340,33 @@ fn testnet_genesis(
ethereum_chain_id: EthereumChainIdConfig {
chain_id: ETH_CHAIN_ID,
},
evm: Default::default(),
evm_accounts_mapping: EvmAccountsMappingConfig {
mappings: vec![
(
account_id("Alice"),
EthereumAddress(ETHEREUM_ADDRESS_GERALD),
),
(account_id("Bob"), evm_account("Bob")),
],
evm: EVMConfig {
accounts: {
let evm_pot_accounts = vec![(
humanode_runtime::EvmToNativeSwapBridgePot::account_id(),
evm_genesis_account(INITIAL_POT_ACCOUNT_BALANCE),
)];

evm_pot_accounts
.into_iter()
.chain(
evm_endowed_accounts
.into_iter()
.map(|k| (k, evm_genesis_account(DEV_ACCOUNT_BALANCE))),
)
.collect()
},
},
evm_accounts_mapping: Default::default(),
ethereum: EthereumConfig {},
dynamic_fee: Default::default(),
base_fee: Default::default(),
transaction_payment: Default::default(),
fees_pot: Default::default(),
treasury_pot: Default::default(),
token_claims_pot: Default::default(),
native_to_evm_swap_bridge_pot: Default::default(),
evm_to_native_swap_bridge_pot: Default::default(),
token_claims: TokenClaimsConfig {
claims: vec![(
EthereumAddress(hex!("bf0b5a4099f0bf6c8bc4252ebec548bae95602ea")),
Expand Down
23 changes: 23 additions & 0 deletions crates/humanode-runtime/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ substrate-wasm-builder = { git = "https://github.com/humanode-network/substrate"
[dependencies]
author-ext-api = { version = "0.1", path = "../author-ext-api", default-features = false }
bioauth-flow-api = { version = "0.1", path = "../bioauth-flow-api", default-features = false }
bridge-pot-currency-swap = { version = "0.1", path = "../bridge-pot-currency-swap", default-features = false }
eip191-crypto = { version = "0.1", path = "../eip191-crypto", default-features = false }
eip191-token-claim = { version = "0.1", path = "../eip191-token-claim", default-features = false }
eip712-account-claim = { version = "0.1", path = "../eip712-account-claim", default-features = false }
Expand All @@ -20,15 +21,18 @@ pallet-bioauth = { version = "0.1", path = "../pallet-bioauth", default-features
pallet-bootnodes = { version = "0.1", path = "../pallet-bootnodes", default-features = false }
pallet-chain-properties = { version = "0.1", path = "../pallet-chain-properties", default-features = false }
pallet-chain-start-moment = { version = "0.1", path = "../pallet-chain-start-moment", default-features = false }
pallet-currency-swap = { version = "0.1", path = "../pallet-currency-swap", default-features = false }
pallet-ethereum-chain-id = { version = "0.1", path = "../pallet-ethereum-chain-id", default-features = false }
pallet-evm-accounts-mapping = { version = "0.1", path = "../pallet-evm-accounts-mapping", default-features = false }
pallet-humanode-session = { version = "0.1", path = "../pallet-humanode-session", default-features = false }
pallet-pot = { version = "0.1", path = "../pallet-pot", default-features = false }
pallet-token-claims = { version = "0.1", path = "../pallet-token-claims", default-features = false }
pallet-vesting = { version = "0.1", path = "../pallet-vesting", default-features = false }
precompile-bioauth = { version = "0.1", path = "../precompile-bioauth", default-features = false }
precompile-currency-swap = { version = "0.1", path = "../precompile-currency-swap", default-features = false }
precompile-evm-accounts-mapping = { version = "0.1", path = "../precompile-evm-accounts-mapping", default-features = false }
primitives-auth-ticket = { version = "0.1", path = "../primitives-auth-ticket", default-features = false }
primitives-currency-swap-proxy = { version = "0.1", path = "../primitives-currency-swap-proxy", default-features = false }
primitives-ethereum = { version = "0.1", path = "../primitives-ethereum", default-features = false }
robonode-crypto = { version = "0.1", path = "../robonode-crypto", default-features = false }
vesting-schedule-linear = { version = "0.1", path = "../vesting-schedule-linear", default-features = false }
Expand All @@ -54,9 +58,11 @@ pallet-base-fee = { default-features = false, git = "https://github.com/humanode
pallet-dynamic-fee = { default-features = false, git = "https://github.com/humanode-network/frontier", branch = "locked/polkadot-v0.9.38" }
pallet-ethereum = { default-features = false, git = "https://github.com/humanode-network/frontier", branch = "locked/polkadot-v0.9.38" }
pallet-evm = { default-features = false, git = "https://github.com/humanode-network/frontier", branch = "locked/polkadot-v0.9.38" }
pallet-evm-balances = { default-features = false, git = "https://github.com/humanode-network/frontier", branch = "locked/polkadot-v0.9.38" }
pallet-evm-precompile-modexp = { default-features = false, git = "https://github.com/humanode-network/frontier", branch = "locked/polkadot-v0.9.38" }
pallet-evm-precompile-sha3fips = { default-features = false, git = "https://github.com/humanode-network/frontier", branch = "locked/polkadot-v0.9.38" }
pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/humanode-network/frontier", branch = "locked/polkadot-v0.9.38" }
pallet-evm-system = { default-features = false, git = "https://github.com/humanode-network/frontier", branch = "locked/polkadot-v0.9.38" }
pallet-grandpa = { default-features = false, git = "https://github.com/humanode-network/substrate", branch = "locked/polkadot-v0.9.38" }
pallet-im-online = { default-features = false, git = "https://github.com/humanode-network/substrate", branch = "locked/polkadot-v0.9.38" }
pallet-multisig = { default-features = false, git = "https://github.com/humanode-network/substrate", branch = "locked/polkadot-v0.9.38" }
Expand Down Expand Up @@ -90,8 +96,12 @@ static_assertions = { version = "1.1.0", default-features = false }
[dev-dependencies]
crypto-utils = { version = "0.1", path = "../crypto-utils" }
eip712-common-test-utils = { version = "0.1", path = "../eip712-common-test-utils" }
precompile-utils = { path = "../precompile-utils", default-features = false }

ethereum = "0.14"
fp-evm = { git = "https://github.com/humanode-network/frontier", branch = "locked/polkadot-v0.9.38" }
hex = "0.4"
hex-literal = "0.4"
serde_json = "1"
sp-io = { git = "https://github.com/humanode-network/substrate", branch = "locked/polkadot-v0.9.38" }
sp-keystore = { git = "https://github.com/humanode-network/substrate", branch = "locked/polkadot-v0.9.38" }
Expand All @@ -110,6 +120,7 @@ runtime-benchmarks = [
"pallet-balances/runtime-benchmarks",
"pallet-bioauth/runtime-benchmarks",
"pallet-bootnodes/runtime-benchmarks",
"pallet-currency-swap/runtime-benchmarks",
"pallet-ethereum/runtime-benchmarks",
"pallet-evm-accounts-mapping/runtime-benchmarks",
"pallet-evm/runtime-benchmarks",
Expand All @@ -127,6 +138,7 @@ runtime-benchmarks = [
std = [
"author-ext-api/std",
"bioauth-flow-api/std",
"bridge-pot-currency-swap/std",
"chrono/std",
"codec/std",
"eip191-crypto/std",
Expand All @@ -151,6 +163,7 @@ std = [
"pallet-bootnodes/std",
"pallet-chain-properties/std",
"pallet-chain-start-moment/std",
"pallet-currency-swap/std",
"pallet-dynamic-fee/std",
"pallet-ethereum-chain-id/std",
"pallet-ethereum/std",
Expand All @@ -159,6 +172,8 @@ std = [
"pallet-evm-precompile-sha3fips/std",
"pallet-evm-precompile-simple/std",
"pallet-evm/std",
"pallet-evm-balances/std",
"pallet-evm-system/std",
"pallet-grandpa/std",
"pallet-humanode-session/std",
"pallet-im-online/std",
Expand All @@ -174,8 +189,11 @@ std = [
"pallet-utility/std",
"pallet-vesting/std",
"precompile-bioauth/std",
"precompile-currency-swap/std",
"precompile-evm-accounts-mapping/std",
"precompile-utils/std",
"primitives-auth-ticket/std",
"primitives-currency-swap-proxy/std",
"primitives-ethereum/std",
"robonode-crypto/std",
"scale-info/std",
Expand All @@ -199,6 +217,7 @@ std = [
"vesting-scheduling-timestamp/std",
]
try-runtime = [
"bridge-pot-currency-swap/try-runtime",
"fp-self-contained/try-runtime",
"frame-executive/try-runtime",
"frame-support/try-runtime",
Expand All @@ -212,11 +231,14 @@ try-runtime = [
"pallet-bootnodes/try-runtime",
"pallet-chain-properties/try-runtime",
"pallet-chain-start-moment/try-runtime",
"pallet-currency-swap/try-runtime",
"pallet-dynamic-fee/try-runtime",
"pallet-ethereum-chain-id/try-runtime",
"pallet-ethereum/try-runtime",
"pallet-evm-accounts-mapping/try-runtime",
"pallet-evm/try-runtime",
"pallet-evm-balances/try-runtime",
"pallet-evm-system/try-runtime",
"pallet-grandpa/try-runtime",
"pallet-humanode-session/try-runtime",
"pallet-im-online/try-runtime",
Expand All @@ -230,5 +252,6 @@ try-runtime = [
"pallet-transaction-payment/try-runtime",
"pallet-utility/try-runtime",
"pallet-vesting/try-runtime",
"primitives-currency-swap-proxy/try-runtime",
"sp-runtime/try-runtime",
]
62 changes: 62 additions & 0 deletions crates/humanode-runtime/src/currency_swap.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
use bridge_pot_currency_swap::ExistenceRequired;
use sp_runtime::traits::Identity;

use crate::{
parameter_types, AccountId, Balances, EvmAccountId, EvmBalances, EvmToNativeSwapBridgePot,
FeesPot, NativeToEvmSwapBridgePot, TreasuryPot,
};

parameter_types! {
pub NativeToEvmSwapBridgePotAccountId: AccountId = NativeToEvmSwapBridgePot::account_id();
pub EvmToNativeSwapBridgePotAccountId: EvmAccountId = EvmToNativeSwapBridgePot::account_id();
}

pub type NativeToEvmOneToOne =
bridge_pot_currency_swap::CurrencySwap<NativeToEvmOneToOneConfig, ExistenceRequired>;

pub struct NativeToEvmOneToOneConfig;

impl bridge_pot_currency_swap::Config for NativeToEvmOneToOneConfig {
type AccountIdFrom = AccountId;
type AccountIdTo = EvmAccountId;
type CurrencyFrom = Balances;
type CurrencyTo = EvmBalances;
type BalanceConverter = Identity;
type PotFrom = NativeToEvmSwapBridgePotAccountId;
type PotTo = EvmToNativeSwapBridgePotAccountId;
}

pub type EvmToNativeOneToOne =
bridge_pot_currency_swap::CurrencySwap<EvmToNativeOneToOneConfig, ExistenceRequired>;

pub struct EvmToNativeOneToOneConfig;

impl bridge_pot_currency_swap::Config for EvmToNativeOneToOneConfig {
type AccountIdFrom = EvmAccountId;
type AccountIdTo = AccountId;
type CurrencyFrom = EvmBalances;
type CurrencyTo = Balances;
type BalanceConverter = Identity;
type PotFrom = EvmToNativeSwapBridgePotAccountId;
type PotTo = NativeToEvmSwapBridgePotAccountId;
}

pub struct EvmToNativeProxyConfig;

impl primitives_currency_swap_proxy::Config for EvmToNativeProxyConfig {
type AccountIdFrom = EvmAccountId;
type AccountIdTo = AccountId;
type CurrencySwap = EvmToNativeOneToOne;
}

pub type FeesPotProxy = primitives_currency_swap_proxy::SwapUnbalanced<
EvmToNativeProxyConfig,
FeesPot,
EvmToNativeSwapBridgePot,
>;

pub type TreasuryPotProxy = primitives_currency_swap_proxy::SwapUnbalanced<
EvmToNativeProxyConfig,
TreasuryPot,
EvmToNativeSwapBridgePot,
>;
Loading