Skip to content

Commit 76f41d8

Browse files
authored
Migrate Signatures to alloy (#3759)
1 parent 32c088c commit 76f41d8

File tree

13 files changed

+105
-80
lines changed

13 files changed

+105
-80
lines changed

crates/autopilot/src/infra/blockchain/contracts.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use {
99
#[derive(Debug, Clone)]
1010
pub struct Contracts {
1111
settlement: contracts::GPv2Settlement,
12-
signatures: contracts::support::Signatures,
12+
signatures: contracts::alloy::support::Signatures::Instance,
1313
weth: contracts::WETH9,
1414
balances: contracts::support::Balances,
1515
chainalysis_oracle: Option<ChainalysisOracle::Instance>,
@@ -47,12 +47,13 @@ impl Contracts {
4747
),
4848
);
4949

50-
let signatures = contracts::support::Signatures::at(
51-
web3,
52-
address_for(
53-
contracts::support::Signatures::raw_contract(),
54-
addresses.signatures,
55-
),
50+
let signatures = contracts::alloy::support::Signatures::Instance::new(
51+
addresses
52+
.signatures
53+
.map(IntoAlloy::into_alloy)
54+
.or_else(|| contracts::alloy::support::Signatures::deployment_address(&chain.id()))
55+
.unwrap(),
56+
web3.alloy.clone(),
5657
);
5758

5859
let weth = contracts::WETH9::at(
@@ -119,7 +120,7 @@ impl Contracts {
119120
&self.balances
120121
}
121122

122-
pub fn signatures(&self) -> &contracts::support::Signatures {
123+
pub fn signatures(&self) -> &contracts::alloy::support::Signatures::Instance {
123124
&self.signatures
124125
}
125126

crates/contracts/build.rs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -502,19 +502,6 @@ fn main() {
502502
.add_network_str(GNOSIS, "0x3e8C6De9510e7ECad902D005DE3Ab52f35cF4f1b")
503503
.add_network_str(SEPOLIA, "0x3e8C6De9510e7ECad902D005DE3Ab52f35cF4f1b")
504504
});
505-
generate_contract_with_config("Signatures", |builder| {
506-
builder
507-
.add_network_str(MAINNET, "0x8262d639c38470F38d2eff15926F7071c28057Af")
508-
.add_network_str(ARBITRUM_ONE, "0x8262d639c38470F38d2eff15926F7071c28057Af")
509-
.add_network_str(BASE, "0x8262d639c38470F38d2eff15926F7071c28057Af")
510-
.add_network_str(AVALANCHE, "0x8262d639c38470F38d2eff15926F7071c28057Af")
511-
.add_network_str(BNB, "0x8262d639c38470F38d2eff15926F7071c28057Af")
512-
.add_network_str(OPTIMISM, "0x8262d639c38470F38d2eff15926F7071c28057Af")
513-
.add_network_str(POLYGON, "0x8262d639c38470F38d2eff15926F7071c28057Af")
514-
.add_network_str(LENS, "0x8262d639c38470F38d2eff15926F7071c28057Af")
515-
.add_network_str(GNOSIS, "0x8262d639c38470F38d2eff15926F7071c28057Af")
516-
.add_network_str(SEPOLIA, "0x8262d639c38470F38d2eff15926F7071c28057Af")
517-
});
518505

519506
// Test Contract for incrementing arbitrary counters.
520507
generate_contract("Counter");

crates/contracts/src/alloy.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,22 @@ pub mod support {
540540
crate::bindings!(Trader);
541541
// Support contract used for solver fee simulations in the gnosis/solvers repo.
542542
crate::bindings!(Swapper);
543+
544+
crate::bindings!(
545+
Signatures,
546+
crate::deployments! {
547+
MAINNET => address!("0x8262d639c38470F38d2eff15926F7071c28057Af"),
548+
ARBITRUM_ONE => address!("0x8262d639c38470F38d2eff15926F7071c28057Af"),
549+
BASE => address!("0x8262d639c38470F38d2eff15926F7071c28057Af"),
550+
AVALANCHE => address!("0x8262d639c38470F38d2eff15926F7071c28057Af"),
551+
BNB => address!("0x8262d639c38470F38d2eff15926F7071c28057Af"),
552+
OPTIMISM => address!("0x8262d639c38470F38d2eff15926F7071c28057Af"),
553+
POLYGON => address!("0x8262d639c38470F38d2eff15926F7071c28057Af"),
554+
LENS => address!("0x8262d639c38470F38d2eff15926F7071c28057Af"),
555+
GNOSIS => address!("0x8262d639c38470F38d2eff15926F7071c28057Af"),
556+
SEPOLIA => address!("0x8262d639c38470F38d2eff15926F7071c28057Af"),
557+
}
558+
);
543559
}
544560

545561
pub use alloy::providers::DynProvider as Provider;

crates/contracts/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ include_contracts! {
7171
pub mod support {
7272
include_contracts! {
7373
Balances;
74-
Signatures;
7574
}
7675
}
7776

crates/driver/src/infra/blockchain/contracts.rs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ pub struct Contracts {
1515
settlement: contracts::GPv2Settlement,
1616
vault_relayer: eth::ContractAddress,
1717
vault: contracts::BalancerV2Vault,
18-
signatures: contracts::support::Signatures,
18+
signatures: contracts::alloy::support::Signatures::Instance,
1919
weth: contracts::WETH9,
2020

2121
/// The domain separator for settlement contract used for signing orders.
@@ -73,12 +73,13 @@ impl Contracts {
7373
addresses.balances,
7474
),
7575
);
76-
let signatures = contracts::support::Signatures::at(
77-
web3,
78-
address_for(
79-
contracts::support::Signatures::raw_contract(),
80-
addresses.signatures,
81-
),
76+
let signatures = contracts::alloy::support::Signatures::Instance::new(
77+
addresses
78+
.signatures
79+
.map(|addr| addr.0.into_alloy())
80+
.or_else(|| contracts::alloy::support::Signatures::deployment_address(&chain.id()))
81+
.unwrap(),
82+
web3.alloy.clone(),
8283
);
8384

8485
let weth = contracts::WETH9::at(
@@ -139,7 +140,7 @@ impl Contracts {
139140
&self.settlement
140141
}
141142

142-
pub fn signatures(&self) -> &contracts::support::Signatures {
143+
pub fn signatures(&self) -> &contracts::alloy::support::Signatures::Instance {
143144
&self.signatures
144145
}
145146

crates/driver/src/tests/setup/blockchain.rs

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use {
88
tests::{self, boundary, cases::EtherExt},
99
},
1010
alloy::{primitives::U256, signers::local::PrivateKeySigner},
11-
contracts::alloy::{ERC20Mintable, FlashLoanRouter},
11+
contracts::alloy::{ERC20Mintable, FlashLoanRouter, support::Signatures},
1212
ethcontract::PrivateKey,
1313
ethrpc::{
1414
Web3,
@@ -45,7 +45,7 @@ pub struct Blockchain {
4545
pub weth: contracts::WETH9,
4646
pub settlement: contracts::GPv2Settlement,
4747
pub balances: contracts::support::Balances,
48-
pub signatures: contracts::support::Signatures,
48+
pub signatures: Signatures::Instance,
4949
pub flashloan_router: FlashLoanRouter::Instance,
5050
pub ethflow: Option<ContractAddress>,
5151
pub domain_separator: boundary::DomainSeparator,
@@ -351,18 +351,16 @@ impl Blockchain {
351351
.await
352352
.unwrap();
353353

354-
let signatures = if let Some(signatures_address) = config.signatures_address {
355-
contracts::support::Signatures::at(&web3, signatures_address)
354+
let signatures_address = if let Some(signatures_address) = config.signatures_address {
355+
signatures_address.into_alloy()
356356
} else {
357-
wait_for(
358-
&web3,
359-
contracts::support::Signatures::builder(&web3)
360-
.from(main_trader_account.clone())
361-
.deploy(),
362-
)
363-
.await
364-
.unwrap()
357+
Signatures::Instance::deploy_builder(web3.alloy.clone())
358+
.from(main_trader_account.address().into_alloy())
359+
.deploy()
360+
.await
361+
.unwrap()
365362
};
363+
let signatures = Signatures::Instance::new(signatures_address, web3.alloy.clone());
366364

367365
let flashloan_router_address = FlashLoanRouter::Instance::deploy_builder(
368366
web3.alloy.clone(),

crates/driver/src/tests/setup/driver.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ async fn create_config_file(
236236
hex_address(blockchain.settlement.address()),
237237
hex_address(blockchain.weth.address()),
238238
hex_address(blockchain.balances.address()),
239-
hex_address(blockchain.signatures.address()),
239+
blockchain.signatures.address(),
240240
hex_address(blockchain.flashloan_router.address().into_legacy()),
241241
)
242242
.unwrap();

crates/driver/src/tests/setup/solver.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,7 @@ impl Solver {
471471
settlement: Some(config.blockchain.settlement.address().into()),
472472
weth: Some(config.blockchain.weth.address().into()),
473473
balances: Some(config.blockchain.balances.address().into()),
474-
signatures: Some(config.blockchain.signatures.address().into()),
474+
signatures: Some(config.blockchain.signatures.address().into_legacy().into()),
475475
cow_amms: vec![],
476476
flashloan_router: Some(
477477
config

crates/e2e/src/setup/deploy.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ use {
1414
InstanceExt,
1515
UniswapV2Factory,
1616
UniswapV2Router02,
17+
support::Signatures,
1718
},
18-
support::{Balances, Signatures},
19+
support::Balances,
1920
},
2021
ethcontract::{Address, H256, U256, errors::DeployError},
2122
ethrpc::alloy::conversions::IntoAlloy,
@@ -33,7 +34,7 @@ pub struct Contracts {
3334
pub chain_id: u64,
3435
pub balancer_vault: BalancerV2Vault,
3536
pub gp_settlement: GPv2Settlement,
36-
pub signatures: Signatures,
37+
pub signatures: Signatures::Instance,
3738
pub gp_authenticator: GPv2AllowListAuthentication,
3839
pub balances: Balances,
3940
pub uniswap_v2_factory: UniswapV2Factory::Instance,
@@ -71,8 +72,8 @@ impl Contracts {
7172
.expect("failed to find balances contract"),
7273
};
7374
let signatures = match deployed.signatures {
74-
Some(address) => Signatures::at(web3, address),
75-
None => Signatures::deployed(web3)
75+
Some(address) => Signatures::Instance::new(address.into_alloy(), web3.alloy.clone()),
76+
None => Signatures::Instance::deployed(&web3.alloy)
7677
.await
7778
.expect("failed to find signatures contract"),
7879
};
@@ -169,7 +170,9 @@ impl Contracts {
169170
GPv2Settlement(gp_authenticator.address(), balancer_vault.address(),)
170171
);
171172
let balances = deploy!(web3, Balances());
172-
let signatures = deploy!(web3, Signatures());
173+
let signatures = Signatures::Instance::deploy(web3.alloy.clone())
174+
.await
175+
.unwrap();
173176

174177
contracts::vault::grant_required_roles(
175178
&balancer_authorizer,

crates/e2e/tests/e2e/cow_amm.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
use {
22
app_data::AppDataHash,
3-
contracts::{
4-
ERC20,
5-
support::{Balances, Signatures},
6-
},
3+
contracts::{ERC20, alloy::support::Signatures, support::Balances},
74
driver::domain::eth::NonZeroU256,
85
e2e::{
96
deploy,
@@ -426,10 +423,12 @@ async fn cow_amm_driver_support(web3: Web3) {
426423
// syncing, we deploy the following SCs
427424
let deployed_contracts = {
428425
let balances = deploy!(&web3, Balances());
429-
let signatures = deploy!(&web3, Signatures());
426+
let signatures = Signatures::Instance::deploy(web3.alloy.clone())
427+
.await
428+
.unwrap();
430429
DeployedContracts {
431430
balances: Some(balances.address()),
432-
signatures: Some(signatures.address()),
431+
signatures: Some(signatures.address().into_legacy()),
433432
}
434433
};
435434
let mut onchain = OnchainComponents::deployed_with(web3.clone(), deployed_contracts).await;

0 commit comments

Comments
 (0)