Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
46 changes: 0 additions & 46 deletions build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@ use std::io::{self, Write};
use std::path::Path;

const TEMPLATES_DIR: &str = "src/new/templates";
const CHAIN_KINOSTATE_DIR: &str = "src/chain/kinostate";
const TARGET_DIR: &str = "target";
const NEW_INCLUDES: &str = "new_includes.rs";
const CHAIN_INCLUDES: &str = "chain_includes.rs";

/// create target/new_includes.rs to build templates into binary
fn make_new_includes() -> anyhow::Result<()> {
Expand Down Expand Up @@ -85,49 +83,6 @@ fn visit_dirs(dir: &Path, output_buffer: &mut Vec<u8>) -> io::Result<()> {
Ok(())
}

fn make_chain_includes() -> anyhow::Result<()> {
let mut output_buffer = Vec::new();
writeln!(
&mut output_buffer,
"const FOUNDRY_COMMIT_TO_CONTENT: &[(&str, &str)] = &["
)?;

for entry in fs::read_dir(CHAIN_KINOSTATE_DIR)? {
let entry = entry?;
let path = entry.path();
let commit = path
.file_stem()
.and_then(|c| c.to_str())
.ok_or_else(|| anyhow::anyhow!("couldn't get commit from {path:?}"))?;
writeln!(
output_buffer,
" (\"{}\", include_str!(\"{}\")),",
commit,
Path::new("..").join(&path).display(),
)?;
println!("cargo::rerun-if-changed={}", path.display());
}

writeln!(&mut output_buffer, "];")?;

let target_dir = Path::new(TARGET_DIR);
let chain_output_path = target_dir.join(CHAIN_INCLUDES);
// create *_includes.rs if it does not exist
if !target_dir.exists() {
fs::create_dir_all(target_dir)?;
}
if !chain_output_path.exists() {
fs::write(&chain_output_path, &output_buffer)?;
} else {
let existing_file = fs::read(&chain_output_path)?;
if output_buffer != existing_file {
fs::write(&chain_output_path, &output_buffer)?;
}
}

Ok(())
}

fn add_commit_hash(repo: &git2::Repository) -> anyhow::Result<()> {
let sha = repo
.head()?
Expand All @@ -152,7 +107,6 @@ fn add_branch_name(repo: &git2::Repository) -> anyhow::Result<()> {

fn main() -> anyhow::Result<()> {
make_new_includes()?;
make_chain_includes()?;

// write version info into binary
let repo = git2::Repository::open(".")?;
Expand Down
1 change: 1 addition & 0 deletions src/chain/bytecode/deploykinoaccountminter.txt

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions src/chain/bytecode/erc1967proxy.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0x6080604052600a600c565b005b60186014601a565b6026565b565b5f60216044565b905090565b365f5f375f5f365f845af43d5f5f3e805f81146040573d5ff35b3d5ffd5b5f606e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b6095565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81905091905056fea2646970667358221220007164f6221bb880865e4c02f3e712035e61170dee11d10e7bc3f3b8047b844c64736f6c634300081b0033
1 change: 1 addition & 0 deletions src/chain/bytecode/erc6551_registry.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063246a00211461003b5780638a54c52f1461006a575b600080fd5b61004e6100493660046101b7565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b61004e6100783660046101b7565b6100e1565b600060806024608c376e5af43d82803e903d91602b57fd5bf3606c5285605d52733d60ad80600a3d3981f3363d3d373d3d3d363d7360495260ff60005360b76055206035523060601b60015284601552605560002060601b60601c60005260206000f35b600060806024608c376e5af43d82803e903d91602b57fd5bf3606c5285605d52733d60ad80600a3d3981f3363d3d373d3d3d363d7360495260ff60005360b76055206035523060601b600152846015526055600020803b61018b578560b760556000f580610157576320188a596000526004601cfd5b80606c52508284887f79f19b3655ee38b1ce526556b7731a20c8f218fbda4a3990b6cc4172fdf887226060606ca46020606cf35b8060601b60601c60005260206000f35b80356001600160a01b03811681146101b257600080fd5b919050565b600080600080600060a086880312156101cf57600080fd5b6101d88661019b565b945060208601359350604086013592506101f46060870161019b565b94979396509194608001359291505056fea2646970667358221220ea2fe53af507453c64dd7c1db05549fa47a298dfb825d6d11e1689856135f16764736f6c63430008110033
1 change: 1 addition & 0 deletions src/chain/bytecode/kimap.txt

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions src/chain/bytecode/kinoaccount.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0x6080604052600436106100e6575f3560e01c80636d70f7ae11610087578063ca3b98bb11610057578063ca3b98bb1461029d578063d087d28814610289578063f23a6e61146102b0578063fc0c546a146102dc575f5ffd5b80636d70f7ae1461020e578063b0d691fe1461022d578063bc197c811461025b578063c19d93fb14610289575f5ffd5b80631626ba7e116100c25780631626ba7e1461018357806319822f7c146101a257806351945447146101cf578063523e3260146101ef575f5ffd5b806223de29146100f157806301ffc9a714610117578063150b7a021461014b575f5ffd5b366100ed57005b5f5ffd5b3480156100fc575f5ffd5b5061011561010b366004610d14565b5050505050505050565b005b348015610122575f5ffd5b50610136610131366004610dd6565b610313565b60405190151581526020015b60405180910390f35b348015610156575f5ffd5b5061016a610165366004610df1565b61033e565b6040516001600160e01b03199091168152602001610142565b34801561018e575f5ffd5b5061016a61019d366004610e72565b610398565b3480156101ad575f5ffd5b506101c16101bc366004610f2c565b6104bd565b604051908152602001610142565b6101e26101dd366004610f8f565b6104ef565b6040516101429190611028565b3480156101fa575f5ffd5b5061016a61020936600461103a565b610563565b348015610219575f5ffd5b5061013661022836600461108a565b610588565b348015610238575f5ffd5b50604051735ff137d4b0fdcd49dca30c7cf57e578a026d27898152602001610142565b348015610266575f5ffd5b5061016a6102753660046110e5565b63bc197c8160e01b98975050505050505050565b348015610294575f5ffd5b506101c1610626565b6101e26102ab366004611185565b6106af565b3480156102bb575f5ffd5b5061016a6102ca3660046111fa565b63f23a6e6160e01b9695505050505050565b3480156102e7575f5ffd5b506102f0610730565b604080519384526001600160a01b03909216602084015290820152606001610142565b5f61031d82610746565b8061033857506001600160e01b03198216636faff5f160e01b145b92915050565b5f5f5f610349610730565b909350915050336001600160a01b03831614801561036657508086145b156103845760405163b79e3f3f60e01b815260040160405180910390fd5b50630a85bd0160e11b979650505050505050565b5f5f5f5f6103b885602081015160408201516060909201515f1a92909190565b9094509250905060ff81165f0361048357828583016020016103d982610588565b1580156103ef57506001600160a01b0382163014155b1561040a57506001600160e01b031994506103389350505050565b604051630b135d3f60e11b81526001600160a01b03831690631626ba7e90610438908b908590600401611270565b602060405180830381865afa158015610453573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104779190611288565b95505050505050610338565b610492610228878386866107e7565b156104aa5750630b135d3f60e11b9250610338915050565b506001600160e01b031995945050505050565b5f6104c6610813565b6104d0848461087d565b90506104df8460200135610920565b6104e882610969565b9392505050565b60606104fa33610588565b15801561051b575033735ff137d4b0fdcd49dca30c7cf57e578a026d278914155b1561053957604051634780295360e11b815260040160405180910390fd5b5f61054887878787875a6109be565b925090508061055957815160208301fd5b5095945050505050565b5f61056d84610588565b610577575f610580565b630291f19360e51b5b949350505050565b5f5f5f610593610730565b6040516331a9108f60e11b81526004810182905291945092506001600160a01b038087169250841690636352211e90602401602060405180830381865afa1580156105e0573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061060491906112a3565b6001600160a01b031614801561058057505050506001600160a01b0316151590565b5f735ff137d4b0fdcd49dca30c7cf57e578a026d2789604051631aab3f0d60e11b81523060048201525f60248201526001600160a01b0391909116906335567e1a90604401602060405180830381865afa158015610686573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106aa91906112be565b905090565b60606106ba33610588565b1580156106db575033735ff137d4b0fdcd49dca30c7cf57e578a026d278914155b156106f957604051634780295360e11b815260040160405180910390fd5b5f6107148888888888881561070e57886109be565b5a6109be565b925090508061072557815160208301fd5b509695505050505050565b5f5f5f61073b610ad8565b925092509250909192565b5f6001600160e01b03198216633ce4a3e960e01b148061077657506001600160e01b031982166301ffc9a760e01b145b8061079157506001600160e01b031982166306608bdf60e21b145b806107ac57506001600160e01b03198216630b135d3f60e11b145b806107c757506001600160e01b03198216630271189760e51b145b8061033857506001600160e01b03198216635194544760e01b1492915050565b5f5f5f5f6107f788888888610ae4565b9250925092506108078282610bac565b50909695505050505050565b33735ff137d4b0fdcd49dca30c7cf57e578a026d27891461087b5760405162461bcd60e51b815260206004820152601c60248201527f6163636f756e743a206e6f742066726f6d20456e747279506f696e740000000060448201526064015b60405180910390fd5b565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c829052603c8120630b135d3f60e11b6108fe826108c56101008801886112d5565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061039892505050565b6001600160e01b03191614610917576001915050610338565b505f9392505050565b6001600160401b0381106109665760405162461bcd60e51b815260206004820152600d60248201526c496e76616c6964206e6f6e636560981b6044820152606401610872565b50565b8015610966576040515f9033905f1990849084818181858888f193505050503d805f81146109b2576040519150601f19603f3d011682016040523d82523d5f602084013e6109b7565b606091505b5050505050565b5f60608360ff165f03610a3257876001600160a01b0316838888886040516109e7929190611317565b5f60405180830381858888f193505050503d805f8114610a22576040519150601f19603f3d011682016040523d82523d5f602084013e610a27565b606091505b509092509050610acd565b8360ff16600103610a9157876001600160a01b0316838787604051610a58929190611317565b5f604051808303818686f4925050503d805f8114610a22576040519150601f19603f3d011682016040523d82523d5f602084013e610a27565b60405162461bcd60e51b815260206004820152601160248201527024b73b30b634b21037b832b930ba34b7b760791b6044820152606401610872565b965096945050505050565b5f5f5f61073b30610c68565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610b1d57505f91506003905082610ba2565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610b6e573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116610b9957505f925060019150829050610ba2565b92505f91508190505b9450945094915050565b5f826003811115610bbf57610bbf611326565b03610bc8575050565b6001826003811115610bdc57610bdc611326565b03610bfa5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610c0e57610c0e611326565b03610c2f5760405163fce698f760e01b815260048101829052602401610872565b6003826003811115610c4357610c43611326565b03610c64576040516335e2f38360e21b815260048101829052602401610872565b5050565b604080516060808252608082019092525f91829182918291906020820181803683370190505090506060604d60208301873c80806020019051810190610cae919061133a565b935093509350509193909250565b6001600160a01b0381168114610966575f5ffd5b5f5f83601f840112610ce0575f5ffd5b5081356001600160401b03811115610cf6575f5ffd5b602083019150836020828501011115610d0d575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60c0898b031215610d2b575f5ffd5b8835610d3681610cbc565b97506020890135610d4681610cbc565b96506040890135610d5681610cbc565b95506060890135945060808901356001600160401b03811115610d77575f5ffd5b610d838b828c01610cd0565b90955093505060a08901356001600160401b03811115610da1575f5ffd5b610dad8b828c01610cd0565b999c989b5096995094979396929594505050565b6001600160e01b031981168114610966575f5ffd5b5f60208284031215610de6575f5ffd5b81356104e881610dc1565b5f5f5f5f5f60808688031215610e05575f5ffd5b8535610e1081610cbc565b94506020860135610e2081610cbc565b93506040860135925060608601356001600160401b03811115610e41575f5ffd5b610e4d88828901610cd0565b969995985093965092949392505050565b634e487b7160e01b5f52604160045260245ffd5b5f5f60408385031215610e83575f5ffd5b8235915060208301356001600160401b03811115610e9f575f5ffd5b8301601f81018513610eaf575f5ffd5b80356001600160401b03811115610ec857610ec8610e5e565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610ef657610ef6610e5e565b604052818152828201602001871015610f0d575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f5f60608486031215610f3e575f5ffd5b83356001600160401b03811115610f53575f5ffd5b84016101208187031215610f65575f5ffd5b95602085013595506040909401359392505050565b803560ff81168114610f8a575f5ffd5b919050565b5f5f5f5f5f60808688031215610fa3575f5ffd5b8535610fae81610cbc565b94506020860135935060408601356001600160401b03811115610fcf575f5ffd5b610fdb88828901610cd0565b9094509250610fee905060608701610f7a565b90509295509295909350565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6104e86020830184610ffa565b5f5f5f6040848603121561104c575f5ffd5b833561105781610cbc565b925060208401356001600160401b03811115611071575f5ffd5b61107d86828701610cd0565b9497909650939450505050565b5f6020828403121561109a575f5ffd5b81356104e881610cbc565b5f5f83601f8401126110b5575f5ffd5b5081356001600160401b038111156110cb575f5ffd5b6020830191508360208260051b8501011115610d0d575f5ffd5b5f5f5f5f5f5f5f5f60a0898b0312156110fc575f5ffd5b883561110781610cbc565b9750602089013561111781610cbc565b965060408901356001600160401b03811115611131575f5ffd5b61113d8b828c016110a5565b90975095505060608901356001600160401b0381111561115b575f5ffd5b6111678b828c016110a5565b90955093505060808901356001600160401b03811115610da1575f5ffd5b5f5f5f5f5f5f60a0878903121561119a575f5ffd5b86356111a581610cbc565b95506020870135945060408701356001600160401b038111156111c6575f5ffd5b6111d289828a01610cd0565b90955093506111e5905060608801610f7a565b95989497509295919493608090920135925050565b5f5f5f5f5f5f60a0878903121561120f575f5ffd5b863561121a81610cbc565b9550602087013561122a81610cbc565b9450604087013593506060870135925060808701356001600160401b03811115611252575f5ffd5b61125e89828a01610cd0565b979a9699509497509295939492505050565b828152604060208201525f6105806040830184610ffa565b5f60208284031215611298575f5ffd5b81516104e881610dc1565b5f602082840312156112b3575f5ffd5b81516104e881610cbc565b5f602082840312156112ce575f5ffd5b5051919050565b5f5f8335601e198436030181126112ea575f5ffd5b8301803591506001600160401b03821115611303575f5ffd5b602001915036819003821315610d0d575f5ffd5b818382375f9101908152919050565b634e487b7160e01b5f52602160045260245ffd5b5f5f5f6060848603121561134c575f5ffd5b8351602085015190935061135f81610cbc565b604094909401519295939450919291505056fea264697066735822122002390aa2047f18c7e70d9db3c183206222fedbd9e850724681683c6be808325964736f6c634300081b0033
Loading