evmlib/contract/payment_vault/
implementation.rs

1use crate::common::Address;
2use alloy::network::Network;
3use alloy::providers::Provider;
4use alloy::sol;
5
6sol!(
7    #[allow(missing_docs)]
8    #[sol(rpc)]
9    PaymentVaultImplementation,
10    "artifacts/PaymentVaultNoProxyV2.json"
11);
12
13/// Deploys the payment vault contract and returns the contract address
14pub async fn deploy<P, N>(provider: &P, network_token_address: Address) -> Address
15where
16    P: Provider<N>,
17    N: Network,
18{
19    let contract = PaymentVaultImplementation::deploy(provider, network_token_address)
20        .await
21        .expect("Could not deploy payment vault implementation contract");
22
23    *contract.address()
24}