alloy-rs / alloy-rs/examples

ERC1167 demonstration

Aperta
#182 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Rust
Stelle
234
Fork
64
Merge medio
19h 34m
PR unite (30g)
6

Descrizione

### Component

consensus, eips, genesis

### Describe the feature you would like

https://eips.ethereum.org/EIPS/eip-1167
```rust
use alloy::primitives::{hex, Address, FixedBytes};

const INITIALIZATION_CODE: FixedBytes<10> = FixedBytes::new(hex!("3d602d80600a3d3981f3"));
const RUNTIME_CODE_1: FixedBytes<10> = FixedBytes::new(hex!("363d3d373d3d3d363d73"));
const RUNTIME_CODE_2: FixedBytes<15> = FixedBytes::new(hex!("5af43d82803e903d91602b57fd5bf3"));

pub const fn minimal_proxy_bytecode(address: [u8; 20]) -> [u8; 55] {
let address = Address::new(address);
let part1: FixedBytes<20> = INITIALIZATION_CODE.concat_const(RUNTIME_CODE_1);
let part2: FixedBytes<40> = part1.concat_const(address.0);
let part3: FixedBytes<55> = part2.concat_const(RUNTIME_CODE_2);
part3.0
}
```
We could also make an extension method (a trait in alloy-eips implemented for `alloy::primitives::Address`) similar to [`alloy::primitives::Address::create2(...)`](https://docs.rs/alloy/latest/alloy/primitives/struct.Address.html#method.create2).

### Additional context

_No response_

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.