/**
Generated by the following Solidity interface...
```solidity
interface SelfHostedApplicationFactory {
constructor(address authorityFactory, address applicationFactory);
function calculateAddresses(address authorityOwner, uint256 epochLength, address appOwner, bytes32 templateHash, bytes memory dataAvailability, bytes32 salt) external view returns (address application, address authority);
function deployContracts(address authorityOwner, uint256 epochLength, address appOwner, bytes32 templateHash, bytes memory dataAvailability, bytes32 salt) external returns (address application, address authority);
function getApplicationFactory() external view returns (address);
function getAuthorityFactory() external view returns (address);
}
```
...which was generated by the following JSON ABI:
```json
[
{
"type": "constructor",
"inputs": [
{
"name": "authorityFactory",
"type": "address",
"internalType": "contract IAuthorityFactory"
},
{
"name": "applicationFactory",
"type": "address",
"internalType": "contract IApplicationFactory"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "calculateAddresses",
"inputs": [
{
"name": "authorityOwner",
"type": "address",
"internalType": "address"
},
{
"name": "epochLength",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "appOwner",
"type": "address",
"internalType": "address"
},
{
"name": "templateHash",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "dataAvailability",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "application",
"type": "address",
"internalType": "address"
},
{
"name": "authority",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "deployContracts",
"inputs": [
{
"name": "authorityOwner",
"type": "address",
"internalType": "address"
},
{
"name": "epochLength",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "appOwner",
"type": "address",
"internalType": "address"
},
{
"name": "templateHash",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "dataAvailability",
"type": "bytes",
"internalType": "bytes"
},
{
"name": "salt",
"type": "bytes32",
"internalType": "bytes32"
}
],
"outputs": [
{
"name": "application",
"type": "address",
"internalType": "contract IApplication"
},
{
"name": "authority",
"type": "address",
"internalType": "contract IAuthority"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "getApplicationFactory",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IApplicationFactory"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getAuthorityFactory",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IAuthorityFactory"
}
],
"stateMutability": "view"
}
]
```*/
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style,
clippy::empty_structs_with_brackets
)]
pub mod SelfHostedApplicationFactory {
use super::*;
use alloy::sol_types as alloy_sol_types;
/// The creation / init bytecode of the contract.
///
/// ```text
///0x60c0346100a657601f61061238819003918201601f19168301916001600160401b038311848410176100aa5780849260409485528339810103126100a6578051906001600160a01b03821682036100a65760200151906001600160a01b03821682036100a65760805260a05260405161055390816100bf823960805181818160de0152818161022e01526102ae015260a051818181605d0152818161016e01526103420152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816350567b3a1461025d5750806375689f8314610219578063938f7adc146100905763e63d50ff14610048575f80fd5b3461008c575f36600319011261008c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461008c5760206100a036610423565b604051631442f7bb60e01b81526001600160a01b039097166004880152602487019590955260448601859052959094939192919084806064810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9384156101f157602094610162915f916101fc575b5060018060a01b0316956040519788958695634269667b60e01b875289600488015260018060a01b03166024870152604486015260a0606486015260a48501916104de565b608483019190915203817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101f1576040925f926101c0575b5082516001600160a01b0390921682526020820152f35b6101e391925060203d6020116101ea575b6101db81836104a8565b8101906104fe565b90836101a9565b503d6101d1565b6040513d5f823e3d90fd5b6102139150863d88116101ea576101db81836104a8565b8861011d565b3461008c575f36600319011261008c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461008c578060206102a98261027236610423565b989489919a949b93989296631d9324cd60e31b855260048501604091949392606082019560018060a01b0316825260208201520152565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19182156101f1575f926103db575b50604051630b30fbdf60e21b81526001600160a01b0392831660048201819052969092166024830152604482019290925260a0606482015292602092849283926103359160a4850191906104de565b608483019190915203815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156101f1575f91610396575b50604080516001600160a01b0390921682526020820192909252f35b90506020813d6020116103d3575b816103b1602093836104a8565b8101031261008c5751906001600160a01b038216820361008c5790604061037a565b3d91506103a4565b9091506020813d60201161041b575b816103f7602093836104a8565b8101031261008c5751926001600160a01b038416840361008c5792906103356102e6565b3d91506103ea565b9060c060031983011261008c576004356001600160a01b038116810361008c5791602435916044356001600160a01b038116810361008c57916064359160843567ffffffffffffffff811161008c578260238201121561008c5780600401359267ffffffffffffffff841161008c576024848301011161008c57602401919060a43590565b90601f8019910116810190811067ffffffffffffffff8211176104ca57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b9081602091031261008c57516001600160a01b038116810361008c579056fea2646970667358221220b050025436a14d03ea9cafcd9e287687bf9664d712975447941f83ceb0c5b94f64736f6c634300081e0033
/// ```
#[rustfmt::skip]
#[allow(clippy::all)]
pub static BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
b"`\xC04a\0\xA6W`\x1Fa\x06\x128\x81\x90\x03\x91\x82\x01`\x1F\x19\x16\x83\x01\x91`\x01`\x01`@\x1B\x03\x83\x11\x84\x84\x10\x17a\0\xAAW\x80\x84\x92`@\x94\x85R\x839\x81\x01\x03\x12a\0\xA6W\x80Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\0\xA6W` \x01Q\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\0\xA6W`\x80R`\xA0R`@Qa\x05S\x90\x81a\0\xBF\x829`\x80Q\x81\x81\x81`\xDE\x01R\x81\x81a\x02.\x01Ra\x02\xAE\x01R`\xA0Q\x81\x81\x81`]\x01R\x81\x81a\x01n\x01Ra\x03B\x01R\xF3[_\x80\xFD[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD\xFE`\x80\x80`@R`\x046\x10\x15a\0\x12W_\x80\xFD[_5`\xE0\x1C\x90\x81cPV{:\x14a\x02]WP\x80cuh\x9F\x83\x14a\x02\x19W\x80c\x93\x8Fz\xDC\x14a\0\x90Wc\xE6=P\xFF\x14a\0HW_\x80\xFD[4a\0\x8CW_6`\x03\x19\x01\x12a\0\x8CW`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[_\x80\xFD[4a\0\x8CW` a\0\xA06a\x04#V[`@Qc\x14B\xF7\xBB`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x90\x97\x16`\x04\x88\x01R`$\x87\x01\x95\x90\x95R`D\x86\x01\x85\x90R\x95\x90\x94\x93\x91\x92\x91\x90\x84\x80`d\x81\x01\x03\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16Z\xFA\x93\x84\x15a\x01\xF1W` \x94a\x01b\x91_\x91a\x01\xFCW[P`\x01\x80`\xA0\x1B\x03\x16\x95`@Q\x97\x88\x95\x86\x95cBif{`\xE0\x1B\x87R\x89`\x04\x88\x01R`\x01\x80`\xA0\x1B\x03\x16`$\x87\x01R`D\x86\x01R`\xA0`d\x86\x01R`\xA4\x85\x01\x91a\x04\xDEV[`\x84\x83\x01\x91\x90\x91R\x03\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16Z\xFA\x90\x81\x15a\x01\xF1W`@\x92_\x92a\x01\xC0W[P\x82Q`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x82R` \x82\x01R\xF3[a\x01\xE3\x91\x92P` =` \x11a\x01\xEAW[a\x01\xDB\x81\x83a\x04\xA8V[\x81\x01\x90a\x04\xFEV[\x90\x83a\x01\xA9V[P=a\x01\xD1V[`@Q=_\x82>=\x90\xFD[a\x02\x13\x91P\x86=\x88\x11a\x01\xEAWa\x01\xDB\x81\x83a\x04\xA8V[\x88a\x01\x1DV[4a\0\x8CW_6`\x03\x19\x01\x12a\0\x8CW`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\0\x8CW\x80` a\x02\xA9\x82a\x02r6a\x04#V[\x98\x94\x89\x91\x9A\x94\x9B\x93\x98\x92\x96c\x1D\x93$\xCD`\xE3\x1B\x85R`\x04\x85\x01`@\x91\x94\x93\x92``\x82\x01\x95`\x01\x80`\xA0\x1B\x03\x16\x82R` \x82\x01R\x01RV[\x03\x81_\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16Z\xF1\x91\x82\x15a\x01\xF1W_\x92a\x03\xDBW[P`@Qc\x0B0\xFB\xDF`\xE2\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x92\x83\x16`\x04\x82\x01\x81\x90R\x96\x90\x92\x16`$\x83\x01R`D\x82\x01\x92\x90\x92R`\xA0`d\x82\x01R\x92` \x92\x84\x92\x83\x92a\x035\x91`\xA4\x85\x01\x91\x90a\x04\xDEV[`\x84\x83\x01\x91\x90\x91R\x03\x81_\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16Z\xF1\x90\x81\x15a\x01\xF1W_\x91a\x03\x96W[P`@\x80Q`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x82R` \x82\x01\x92\x90\x92R\xF3[\x90P` \x81=` \x11a\x03\xD3W[\x81a\x03\xB1` \x93\x83a\x04\xA8V[\x81\x01\x03\x12a\0\x8CWQ\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\0\x8CW\x90`@a\x03zV[=\x91Pa\x03\xA4V[\x90\x91P` \x81=` \x11a\x04\x1BW[\x81a\x03\xF7` \x93\x83a\x04\xA8V[\x81\x01\x03\x12a\0\x8CWQ\x92`\x01`\x01`\xA0\x1B\x03\x84\x16\x84\x03a\0\x8CW\x92\x90a\x035a\x02\xE6V[=\x91Pa\x03\xEAV[\x90`\xC0`\x03\x19\x83\x01\x12a\0\x8CW`\x045`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0\x8CW\x91`$5\x91`D5`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0\x8CW\x91`d5\x91`\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\x8CW\x82`#\x82\x01\x12\x15a\0\x8CW\x80`\x04\x015\x92g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x11a\0\x8CW`$\x84\x83\x01\x01\x11a\0\x8CW`$\x01\x91\x90`\xA45\x90V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x04\xCAW`@RV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[\x90\x80` \x93\x92\x81\x84R\x84\x84\x017_\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90\x81` \x91\x03\x12a\0\x8CWQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0\x8CW\x90V\xFE\xA2dipfsX\"\x12 \xB0P\x02T6\xA1M\x03\xEA\x9C\xAF\xCD\x9E(v\x87\xBF\x96d\xD7\x12\x97TG\x94\x1F\x83\xCE\xB0\xC5\xB9OdsolcC\0\x08\x1E\x003",
);
/// The runtime bytecode of the contract, as deployed on the network.
///
/// ```text
///0x6080806040526004361015610012575f80fd5b5f3560e01c90816350567b3a1461025d5750806375689f8314610219578063938f7adc146100905763e63d50ff14610048575f80fd5b3461008c575f36600319011261008c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461008c5760206100a036610423565b604051631442f7bb60e01b81526001600160a01b039097166004880152602487019590955260448601859052959094939192919084806064810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9384156101f157602094610162915f916101fc575b5060018060a01b0316956040519788958695634269667b60e01b875289600488015260018060a01b03166024870152604486015260a0606486015260a48501916104de565b608483019190915203817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101f1576040925f926101c0575b5082516001600160a01b0390921682526020820152f35b6101e391925060203d6020116101ea575b6101db81836104a8565b8101906104fe565b90836101a9565b503d6101d1565b6040513d5f823e3d90fd5b6102139150863d88116101ea576101db81836104a8565b8861011d565b3461008c575f36600319011261008c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461008c578060206102a98261027236610423565b989489919a949b93989296631d9324cd60e31b855260048501604091949392606082019560018060a01b0316825260208201520152565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19182156101f1575f926103db575b50604051630b30fbdf60e21b81526001600160a01b0392831660048201819052969092166024830152604482019290925260a0606482015292602092849283926103359160a4850191906104de565b608483019190915203815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156101f1575f91610396575b50604080516001600160a01b0390921682526020820192909252f35b90506020813d6020116103d3575b816103b1602093836104a8565b8101031261008c5751906001600160a01b038216820361008c5790604061037a565b3d91506103a4565b9091506020813d60201161041b575b816103f7602093836104a8565b8101031261008c5751926001600160a01b038416840361008c5792906103356102e6565b3d91506103ea565b9060c060031983011261008c576004356001600160a01b038116810361008c5791602435916044356001600160a01b038116810361008c57916064359160843567ffffffffffffffff811161008c578260238201121561008c5780600401359267ffffffffffffffff841161008c576024848301011161008c57602401919060a43590565b90601f8019910116810190811067ffffffffffffffff8211176104ca57604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b9081602091031261008c57516001600160a01b038116810361008c579056fea2646970667358221220b050025436a14d03ea9cafcd9e287687bf9664d712975447941f83ceb0c5b94f64736f6c634300081e0033
/// ```
#[rustfmt::skip]
#[allow(clippy::all)]
pub static DEPLOYED_BYTECODE: alloy_sol_types::private::Bytes = alloy_sol_types::private::Bytes::from_static(
b"`\x80\x80`@R`\x046\x10\x15a\0\x12W_\x80\xFD[_5`\xE0\x1C\x90\x81cPV{:\x14a\x02]WP\x80cuh\x9F\x83\x14a\x02\x19W\x80c\x93\x8Fz\xDC\x14a\0\x90Wc\xE6=P\xFF\x14a\0HW_\x80\xFD[4a\0\x8CW_6`\x03\x19\x01\x12a\0\x8CW`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[_\x80\xFD[4a\0\x8CW` a\0\xA06a\x04#V[`@Qc\x14B\xF7\xBB`\xE0\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x90\x97\x16`\x04\x88\x01R`$\x87\x01\x95\x90\x95R`D\x86\x01\x85\x90R\x95\x90\x94\x93\x91\x92\x91\x90\x84\x80`d\x81\x01\x03\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16Z\xFA\x93\x84\x15a\x01\xF1W` \x94a\x01b\x91_\x91a\x01\xFCW[P`\x01\x80`\xA0\x1B\x03\x16\x95`@Q\x97\x88\x95\x86\x95cBif{`\xE0\x1B\x87R\x89`\x04\x88\x01R`\x01\x80`\xA0\x1B\x03\x16`$\x87\x01R`D\x86\x01R`\xA0`d\x86\x01R`\xA4\x85\x01\x91a\x04\xDEV[`\x84\x83\x01\x91\x90\x91R\x03\x81\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16Z\xFA\x90\x81\x15a\x01\xF1W`@\x92_\x92a\x01\xC0W[P\x82Q`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x82R` \x82\x01R\xF3[a\x01\xE3\x91\x92P` =` \x11a\x01\xEAW[a\x01\xDB\x81\x83a\x04\xA8V[\x81\x01\x90a\x04\xFEV[\x90\x83a\x01\xA9V[P=a\x01\xD1V[`@Q=_\x82>=\x90\xFD[a\x02\x13\x91P\x86=\x88\x11a\x01\xEAWa\x01\xDB\x81\x83a\x04\xA8V[\x88a\x01\x1DV[4a\0\x8CW_6`\x03\x19\x01\x12a\0\x8CW`@Q\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16\x81R` \x90\xF3[4a\0\x8CW\x80` a\x02\xA9\x82a\x02r6a\x04#V[\x98\x94\x89\x91\x9A\x94\x9B\x93\x98\x92\x96c\x1D\x93$\xCD`\xE3\x1B\x85R`\x04\x85\x01`@\x91\x94\x93\x92``\x82\x01\x95`\x01\x80`\xA0\x1B\x03\x16\x82R` \x82\x01R\x01RV[\x03\x81_\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16Z\xF1\x91\x82\x15a\x01\xF1W_\x92a\x03\xDBW[P`@Qc\x0B0\xFB\xDF`\xE2\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x92\x83\x16`\x04\x82\x01\x81\x90R\x96\x90\x92\x16`$\x83\x01R`D\x82\x01\x92\x90\x92R`\xA0`d\x82\x01R\x92` \x92\x84\x92\x83\x92a\x035\x91`\xA4\x85\x01\x91\x90a\x04\xDEV[`\x84\x83\x01\x91\x90\x91R\x03\x81_\x7F\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\x01`\x01`\xA0\x1B\x03\x16Z\xF1\x90\x81\x15a\x01\xF1W_\x91a\x03\x96W[P`@\x80Q`\x01`\x01`\xA0\x1B\x03\x90\x92\x16\x82R` \x82\x01\x92\x90\x92R\xF3[\x90P` \x81=` \x11a\x03\xD3W[\x81a\x03\xB1` \x93\x83a\x04\xA8V[\x81\x01\x03\x12a\0\x8CWQ\x90`\x01`\x01`\xA0\x1B\x03\x82\x16\x82\x03a\0\x8CW\x90`@a\x03zV[=\x91Pa\x03\xA4V[\x90\x91P` \x81=` \x11a\x04\x1BW[\x81a\x03\xF7` \x93\x83a\x04\xA8V[\x81\x01\x03\x12a\0\x8CWQ\x92`\x01`\x01`\xA0\x1B\x03\x84\x16\x84\x03a\0\x8CW\x92\x90a\x035a\x02\xE6V[=\x91Pa\x03\xEAV[\x90`\xC0`\x03\x19\x83\x01\x12a\0\x8CW`\x045`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0\x8CW\x91`$5\x91`D5`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0\x8CW\x91`d5\x91`\x845g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11a\0\x8CW\x82`#\x82\x01\x12\x15a\0\x8CW\x80`\x04\x015\x92g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x84\x11a\0\x8CW`$\x84\x83\x01\x01\x11a\0\x8CW`$\x01\x91\x90`\xA45\x90V[\x90`\x1F\x80\x19\x91\x01\x16\x81\x01\x90\x81\x10g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x82\x11\x17a\x04\xCAW`@RV[cNH{q`\xE0\x1B_R`A`\x04R`$_\xFD[\x90\x80` \x93\x92\x81\x84R\x84\x84\x017_\x82\x82\x01\x84\x01R`\x1F\x01`\x1F\x19\x16\x01\x01\x90V[\x90\x81` \x91\x03\x12a\0\x8CWQ`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x03a\0\x8CW\x90V\xFE\xA2dipfsX\"\x12 \xB0P\x02T6\xA1M\x03\xEA\x9C\xAF\xCD\x9E(v\x87\xBF\x96d\xD7\x12\x97TG\x94\x1F\x83\xCE\xB0\xC5\xB9OdsolcC\0\x08\x1E\x003",
);
/**Constructor`.
```solidity
constructor(address authorityFactory, address applicationFactory);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct constructorCall {
#[allow(missing_docs)]
pub authorityFactory: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub applicationFactory: alloy::sol_types::private::Address,
}
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<constructorCall> for UnderlyingRustTuple<'_> {
fn from(value: constructorCall) -> Self {
(value.authorityFactory, value.applicationFactory)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for constructorCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
authorityFactory: tuple.0,
applicationFactory: tuple.1,
}
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolConstructor for constructorCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.authorityFactory,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.applicationFactory,
),
)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `calculateAddresses(address,uint256,address,bytes32,bytes,bytes32)` and selector `0x938f7adc`.
```solidity
function calculateAddresses(address authorityOwner, uint256 epochLength, address appOwner, bytes32 templateHash, bytes memory dataAvailability, bytes32 salt) external view returns (address application, address authority);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct calculateAddressesCall {
#[allow(missing_docs)]
pub authorityOwner: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub epochLength: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub appOwner: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub templateHash: alloy::sol_types::private::FixedBytes<32>,
#[allow(missing_docs)]
pub dataAvailability: alloy::sol_types::private::Bytes,
#[allow(missing_docs)]
pub salt: alloy::sol_types::private::FixedBytes<32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`calculateAddresses(address,uint256,address,bytes32,bytes,bytes32)`](calculateAddressesCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct calculateAddressesReturn {
#[allow(missing_docs)]
pub application: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub authority: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Bytes,
alloy::sol_types::sol_data::FixedBytes<32>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::Address,
alloy::sol_types::private::FixedBytes<32>,
alloy::sol_types::private::Bytes,
alloy::sol_types::private::FixedBytes<32>,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<calculateAddressesCall>
for UnderlyingRustTuple<'_> {
fn from(value: calculateAddressesCall) -> Self {
(
value.authorityOwner,
value.epochLength,
value.appOwner,
value.templateHash,
value.dataAvailability,
value.salt,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for calculateAddressesCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
authorityOwner: tuple.0,
epochLength: tuple.1,
appOwner: tuple.2,
templateHash: tuple.3,
dataAvailability: tuple.4,
salt: tuple.5,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<calculateAddressesReturn>
for UnderlyingRustTuple<'_> {
fn from(value: calculateAddressesReturn) -> Self {
(value.application, value.authority)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for calculateAddressesReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
application: tuple.0,
authority: tuple.1,
}
}
}
}
impl calculateAddressesReturn {
fn _tokenize(
&self,
) -> <calculateAddressesCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.application,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.authority,
),
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for calculateAddressesCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Bytes,
alloy::sol_types::sol_data::FixedBytes<32>,
);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = calculateAddressesReturn;
type ReturnTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "calculateAddresses(address,uint256,address,bytes32,bytes,bytes32)";
const SELECTOR: [u8; 4] = [147u8, 143u8, 122u8, 220u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.authorityOwner,
),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.epochLength),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.appOwner,
),
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.templateHash),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.dataAvailability,
),
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.salt),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
calculateAddressesReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `deployContracts(address,uint256,address,bytes32,bytes,bytes32)` and selector `0x50567b3a`.
```solidity
function deployContracts(address authorityOwner, uint256 epochLength, address appOwner, bytes32 templateHash, bytes memory dataAvailability, bytes32 salt) external returns (address application, address authority);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct deployContractsCall {
#[allow(missing_docs)]
pub authorityOwner: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub epochLength: alloy::sol_types::private::primitives::aliases::U256,
#[allow(missing_docs)]
pub appOwner: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub templateHash: alloy::sol_types::private::FixedBytes<32>,
#[allow(missing_docs)]
pub dataAvailability: alloy::sol_types::private::Bytes,
#[allow(missing_docs)]
pub salt: alloy::sol_types::private::FixedBytes<32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`deployContracts(address,uint256,address,bytes32,bytes,bytes32)`](deployContractsCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct deployContractsReturn {
#[allow(missing_docs)]
pub application: alloy::sol_types::private::Address,
#[allow(missing_docs)]
pub authority: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Bytes,
alloy::sol_types::sol_data::FixedBytes<32>,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::primitives::aliases::U256,
alloy::sol_types::private::Address,
alloy::sol_types::private::FixedBytes<32>,
alloy::sol_types::private::Bytes,
alloy::sol_types::private::FixedBytes<32>,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<deployContractsCall> for UnderlyingRustTuple<'_> {
fn from(value: deployContractsCall) -> Self {
(
value.authorityOwner,
value.epochLength,
value.appOwner,
value.templateHash,
value.dataAvailability,
value.salt,
)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>> for deployContractsCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
authorityOwner: tuple.0,
epochLength: tuple.1,
appOwner: tuple.2,
templateHash: tuple.3,
dataAvailability: tuple.4,
salt: tuple.5,
}
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (
alloy::sol_types::private::Address,
alloy::sol_types::private::Address,
);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<deployContractsReturn>
for UnderlyingRustTuple<'_> {
fn from(value: deployContractsReturn) -> Self {
(value.application, value.authority)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for deployContractsReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self {
application: tuple.0,
authority: tuple.1,
}
}
}
}
impl deployContractsReturn {
fn _tokenize(
&self,
) -> <deployContractsCall as alloy_sol_types::SolCall>::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.application,
),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.authority,
),
)
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for deployContractsCall {
type Parameters<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Uint<256>,
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::FixedBytes<32>,
alloy::sol_types::sol_data::Bytes,
alloy::sol_types::sol_data::FixedBytes<32>,
);
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = deployContractsReturn;
type ReturnTuple<'a> = (
alloy::sol_types::sol_data::Address,
alloy::sol_types::sol_data::Address,
);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "deployContracts(address,uint256,address,bytes32,bytes,bytes32)";
const SELECTOR: [u8; 4] = [80u8, 86u8, 123u8, 58u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.authorityOwner,
),
<alloy::sol_types::sol_data::Uint<
256,
> as alloy_sol_types::SolType>::tokenize(&self.epochLength),
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
&self.appOwner,
),
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.templateHash),
<alloy::sol_types::sol_data::Bytes as alloy_sol_types::SolType>::tokenize(
&self.dataAvailability,
),
<alloy::sol_types::sol_data::FixedBytes<
32,
> as alloy_sol_types::SolType>::tokenize(&self.salt),
)
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
deployContractsReturn::_tokenize(ret)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(Into::into)
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(Into::into)
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getApplicationFactory()` and selector `0xe63d50ff`.
```solidity
function getApplicationFactory() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getApplicationFactoryCall;
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getApplicationFactory()`](getApplicationFactoryCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getApplicationFactoryReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getApplicationFactoryCall>
for UnderlyingRustTuple<'_> {
fn from(value: getApplicationFactoryCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for getApplicationFactoryCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getApplicationFactoryReturn>
for UnderlyingRustTuple<'_> {
fn from(value: getApplicationFactoryReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for getApplicationFactoryReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getApplicationFactoryCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getApplicationFactory()";
const SELECTOR: [u8; 4] = [230u8, 61u8, 80u8, 255u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: getApplicationFactoryReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: getApplicationFactoryReturn = r.into();
r._0
})
}
}
};
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
/**Function with signature `getAuthorityFactory()` and selector `0x75689f83`.
```solidity
function getAuthorityFactory() external view returns (address);
```*/
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getAuthorityFactoryCall;
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Default, Debug, PartialEq, Eq, Hash)]
///Container type for the return parameters of the [`getAuthorityFactory()`](getAuthorityFactoryCall) function.
#[allow(non_camel_case_types, non_snake_case, clippy::pub_underscore_fields)]
#[derive(Clone)]
pub struct getAuthorityFactoryReturn {
#[allow(missing_docs)]
pub _0: alloy::sol_types::private::Address,
}
#[allow(
non_camel_case_types,
non_snake_case,
clippy::pub_underscore_fields,
clippy::style
)]
const _: () = {
use alloy::sol_types as alloy_sol_types;
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = ();
#[doc(hidden)]
type UnderlyingRustTuple<'a> = ();
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getAuthorityFactoryCall>
for UnderlyingRustTuple<'_> {
fn from(value: getAuthorityFactoryCall) -> Self {
()
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for getAuthorityFactoryCall {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self
}
}
}
{
#[doc(hidden)]
#[allow(dead_code)]
type UnderlyingSolTuple<'a> = (alloy::sol_types::sol_data::Address,);
#[doc(hidden)]
type UnderlyingRustTuple<'a> = (alloy::sol_types::private::Address,);
#[cfg(test)]
#[allow(dead_code, unreachable_patterns)]
fn _type_assertion(
_t: alloy_sol_types::private::AssertTypeEq<UnderlyingRustTuple>,
) {
match _t {
alloy_sol_types::private::AssertTypeEq::<
<UnderlyingSolTuple as alloy_sol_types::SolType>::RustType,
>(_) => {}
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<getAuthorityFactoryReturn>
for UnderlyingRustTuple<'_> {
fn from(value: getAuthorityFactoryReturn) -> Self {
(value._0,)
}
}
#[automatically_derived]
#[doc(hidden)]
impl ::core::convert::From<UnderlyingRustTuple<'_>>
for getAuthorityFactoryReturn {
fn from(tuple: UnderlyingRustTuple<'_>) -> Self {
Self { _0: tuple.0 }
}
}
}
#[automatically_derived]
impl alloy_sol_types::SolCall for getAuthorityFactoryCall {
type Parameters<'a> = ();
type Token<'a> = <Self::Parameters<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
type Return = alloy::sol_types::private::Address;
type ReturnTuple<'a> = (alloy::sol_types::sol_data::Address,);
type ReturnToken<'a> = <Self::ReturnTuple<
'a,
> as alloy_sol_types::SolType>::Token<'a>;
const SIGNATURE: &'static str = "getAuthorityFactory()";
const SELECTOR: [u8; 4] = [117u8, 104u8, 159u8, 131u8];
#[inline]
fn new<'a>(
tuple: <Self::Parameters<'a> as alloy_sol_types::SolType>::RustType,
) -> Self {
tuple.into()
}
#[inline]
fn tokenize(&self) -> Self::Token<'_> {
()
}
#[inline]
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_> {
(
<alloy::sol_types::sol_data::Address as alloy_sol_types::SolType>::tokenize(
ret,
),
)
}
#[inline]
fn abi_decode_returns(data: &[u8]) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence(data)
.map(|r| {
let r: getAuthorityFactoryReturn = r.into();
r._0
})
}
#[inline]
fn abi_decode_returns_validate(
data: &[u8],
) -> alloy_sol_types::Result<Self::Return> {
<Self::ReturnTuple<
'_,
> as alloy_sol_types::SolType>::abi_decode_sequence_validate(data)
.map(|r| {
let r: getAuthorityFactoryReturn = r.into();
r._0
})
}
}
};
///Container for all the [`SelfHostedApplicationFactory`](self) function calls.
#[derive(Clone)]
#[derive(serde::Serialize, serde::Deserialize)]
#[derive()]
pub enum SelfHostedApplicationFactoryCalls {
#[allow(missing_docs)]
calculateAddresses(calculateAddressesCall),
#[allow(missing_docs)]
deployContracts(deployContractsCall),
#[allow(missing_docs)]
getApplicationFactory(getApplicationFactoryCall),
#[allow(missing_docs)]
getAuthorityFactory(getAuthorityFactoryCall),
}
impl SelfHostedApplicationFactoryCalls {
/// All the selectors of this enum.
///
/// Note that the selectors might not be in the same order as the variants.
/// No guarantees are made about the order of the selectors.
///
/// Prefer using `SolInterface` methods instead.
pub const SELECTORS: &'static [[u8; 4usize]] = &[
[80u8, 86u8, 123u8, 58u8],
[117u8, 104u8, 159u8, 131u8],
[147u8, 143u8, 122u8, 220u8],
[230u8, 61u8, 80u8, 255u8],
];
/// The names of the variants in the same order as `SELECTORS`.
pub const VARIANT_NAMES: &'static [&'static str] = &[
::core::stringify!(deployContracts),
::core::stringify!(getAuthorityFactory),
::core::stringify!(calculateAddresses),
::core::stringify!(getApplicationFactory),
];
/// The signatures in the same order as `SELECTORS`.
pub const SIGNATURES: &'static [&'static str] = &[
<deployContractsCall as alloy_sol_types::SolCall>::SIGNATURE,
<getAuthorityFactoryCall as alloy_sol_types::SolCall>::SIGNATURE,
<calculateAddressesCall as alloy_sol_types::SolCall>::SIGNATURE,
<getApplicationFactoryCall as alloy_sol_types::SolCall>::SIGNATURE,
];
/// Returns the signature for the given selector, if known.
#[inline]
pub fn signature_by_selector(
selector: [u8; 4usize],
) -> ::core::option::Option<&'static str> {
match Self::SELECTORS.binary_search(&selector) {
::core::result::Result::Ok(idx) => {
::core::option::Option::Some(Self::SIGNATURES[idx])
}
::core::result::Result::Err(_) => ::core::option::Option::None,
}
}
/// Returns the enum variant name for the given selector, if known.
#[inline]
pub fn name_by_selector(
selector: [u8; 4usize],
) -> ::core::option::Option<&'static str> {
let sig = Self::signature_by_selector(selector)?;
sig.split_once('(').map(|(name, _)| name)
}
}
#[automatically_derived]
impl alloy_sol_types::SolInterface for SelfHostedApplicationFactoryCalls {
const NAME: &'static str = "SelfHostedApplicationFactoryCalls";
const MIN_DATA_LENGTH: usize = 0usize;
const COUNT: usize = 4usize;
#[inline]
fn selector(&self) -> [u8; 4] {
match self {
Self::calculateAddresses(_) => {
<calculateAddressesCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::deployContracts(_) => {
<deployContractsCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getApplicationFactory(_) => {
<getApplicationFactoryCall as alloy_sol_types::SolCall>::SELECTOR
}
Self::getAuthorityFactory(_) => {
<getAuthorityFactoryCall as alloy_sol_types::SolCall>::SELECTOR
}
}
}
#[inline]
fn selector_at(i: usize) -> ::core::option::Option<[u8; 4]> {
Self::SELECTORS.get(i).copied()
}
#[inline]
fn valid_selector(selector: [u8; 4]) -> bool {
Self::SELECTORS.binary_search(&selector).is_ok()
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw(
selector: [u8; 4],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
static DECODE_SHIMS: &[fn(
&[u8],
) -> alloy_sol_types::Result<SelfHostedApplicationFactoryCalls>] = &[
{
fn deployContracts(
data: &[u8],
) -> alloy_sol_types::Result<SelfHostedApplicationFactoryCalls> {
<deployContractsCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(SelfHostedApplicationFactoryCalls::deployContracts)
}
deployContracts
},
{
fn getAuthorityFactory(
data: &[u8],
) -> alloy_sol_types::Result<SelfHostedApplicationFactoryCalls> {
<getAuthorityFactoryCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(SelfHostedApplicationFactoryCalls::getAuthorityFactory)
}
getAuthorityFactory
},
{
fn calculateAddresses(
data: &[u8],
) -> alloy_sol_types::Result<SelfHostedApplicationFactoryCalls> {
<calculateAddressesCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(SelfHostedApplicationFactoryCalls::calculateAddresses)
}
calculateAddresses
},
{
fn getApplicationFactory(
data: &[u8],
) -> alloy_sol_types::Result<SelfHostedApplicationFactoryCalls> {
<getApplicationFactoryCall as alloy_sol_types::SolCall>::abi_decode_raw(
data,
)
.map(
SelfHostedApplicationFactoryCalls::getApplicationFactory,
)
}
getApplicationFactory
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(
alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
),
);
};
DECODE_SHIMS[idx](data)
}
#[inline]
#[allow(non_snake_case)]
fn abi_decode_raw_validate(
selector: [u8; 4],
data: &[u8],
) -> alloy_sol_types::Result<Self> {
static DECODE_VALIDATE_SHIMS: &[fn(
&[u8],
) -> alloy_sol_types::Result<SelfHostedApplicationFactoryCalls>] = &[
{
fn deployContracts(
data: &[u8],
) -> alloy_sol_types::Result<SelfHostedApplicationFactoryCalls> {
<deployContractsCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(SelfHostedApplicationFactoryCalls::deployContracts)
}
deployContracts
},
{
fn getAuthorityFactory(
data: &[u8],
) -> alloy_sol_types::Result<SelfHostedApplicationFactoryCalls> {
<getAuthorityFactoryCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(SelfHostedApplicationFactoryCalls::getAuthorityFactory)
}
getAuthorityFactory
},
{
fn calculateAddresses(
data: &[u8],
) -> alloy_sol_types::Result<SelfHostedApplicationFactoryCalls> {
<calculateAddressesCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(SelfHostedApplicationFactoryCalls::calculateAddresses)
}
calculateAddresses
},
{
fn getApplicationFactory(
data: &[u8],
) -> alloy_sol_types::Result<SelfHostedApplicationFactoryCalls> {
<getApplicationFactoryCall as alloy_sol_types::SolCall>::abi_decode_raw_validate(
data,
)
.map(
SelfHostedApplicationFactoryCalls::getApplicationFactory,
)
}
getApplicationFactory
},
];
let Ok(idx) = Self::SELECTORS.binary_search(&selector) else {
return Err(
alloy_sol_types::Error::unknown_selector(
<Self as alloy_sol_types::SolInterface>::NAME,
selector,
),
);
};
DECODE_VALIDATE_SHIMS[idx](data)
}
#[inline]
fn abi_encoded_size(&self) -> usize {
match self {
Self::calculateAddresses(inner) => {
<calculateAddressesCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::deployContracts(inner) => {
<deployContractsCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getApplicationFactory(inner) => {
<getApplicationFactoryCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
Self::getAuthorityFactory(inner) => {
<getAuthorityFactoryCall as alloy_sol_types::SolCall>::abi_encoded_size(
inner,
)
}
}
}
#[inline]
fn abi_encode_raw(&self, out: &mut alloy_sol_types::private::Vec<u8>) {
match self {
Self::calculateAddresses(inner) => {
<calculateAddressesCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::deployContracts(inner) => {
<deployContractsCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getApplicationFactory(inner) => {
<getApplicationFactoryCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
Self::getAuthorityFactory(inner) => {
<getAuthorityFactoryCall as alloy_sol_types::SolCall>::abi_encode_raw(
inner,
out,
)
}
}
}
}
use alloy::contract as alloy_contract;
/**Creates a new wrapper around an on-chain [`SelfHostedApplicationFactory`](self) contract instance.
See the [wrapper's documentation](`SelfHostedApplicationFactoryInstance`) for more details.*/
#[inline]
pub const fn new<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
address: alloy_sol_types::private::Address,
__provider: P,
) -> SelfHostedApplicationFactoryInstance<P, N> {
SelfHostedApplicationFactoryInstance::<P, N>::new(address, __provider)
}
/**Deploys this contract using the given `provider` and constructor arguments, if any.
Returns a new instance of the contract, if the deployment was successful.
For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
#[inline]
pub fn deploy<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
__provider: P,
authorityFactory: alloy::sol_types::private::Address,
applicationFactory: alloy::sol_types::private::Address,
) -> impl ::core::future::Future<
Output = alloy_contract::Result<SelfHostedApplicationFactoryInstance<P, N>>,
> {
SelfHostedApplicationFactoryInstance::<
P,
N,
>::deploy(__provider, authorityFactory, applicationFactory)
}
/**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
and constructor arguments, if any.
This is a simple wrapper around creating a `RawCallBuilder` with the data set to
the bytecode concatenated with the constructor's ABI-encoded arguments.*/
#[inline]
pub fn deploy_builder<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
>(
__provider: P,
authorityFactory: alloy::sol_types::private::Address,
applicationFactory: alloy::sol_types::private::Address,
) -> alloy_contract::RawCallBuilder<P, N> {
SelfHostedApplicationFactoryInstance::<
P,
N,
>::deploy_builder(__provider, authorityFactory, applicationFactory)
}
/**A [`SelfHostedApplicationFactory`](self) instance.
Contains type-safe methods for interacting with an on-chain instance of the
[`SelfHostedApplicationFactory`](self) contract located at a given `address`, using a given
provider `P`.
If the contract bytecode is available (see the [`sol!`](alloy_sol_types::sol!)
documentation on how to provide it), the `deploy` and `deploy_builder` methods can
be used to deploy a new instance of the contract.
See the [module-level documentation](self) for all the available methods.*/
#[derive(Clone)]
pub struct SelfHostedApplicationFactoryInstance<
P,
N = alloy_contract::private::Ethereum,
> {
address: alloy_sol_types::private::Address,
provider: P,
_network: ::core::marker::PhantomData<N>,
}
#[automatically_derived]
impl<P, N> ::core::fmt::Debug for SelfHostedApplicationFactoryInstance<P, N> {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
f.debug_tuple("SelfHostedApplicationFactoryInstance")
.field(&self.address)
.finish()
}
}
/// Instantiation and getters/setters.
impl<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
> SelfHostedApplicationFactoryInstance<P, N> {
/**Creates a new wrapper around an on-chain [`SelfHostedApplicationFactory`](self) contract instance.
See the [wrapper's documentation](`SelfHostedApplicationFactoryInstance`) for more details.*/
#[inline]
pub const fn new(
address: alloy_sol_types::private::Address,
__provider: P,
) -> Self {
Self {
address,
provider: __provider,
_network: ::core::marker::PhantomData,
}
}
/**Deploys this contract using the given `provider` and constructor arguments, if any.
Returns a new instance of the contract, if the deployment was successful.
For more fine-grained control over the deployment process, use [`deploy_builder`] instead.*/
#[inline]
pub async fn deploy(
__provider: P,
authorityFactory: alloy::sol_types::private::Address,
applicationFactory: alloy::sol_types::private::Address,
) -> alloy_contract::Result<SelfHostedApplicationFactoryInstance<P, N>> {
let call_builder = Self::deploy_builder(
__provider,
authorityFactory,
applicationFactory,
);
let contract_address = call_builder.deploy().await?;
Ok(Self::new(contract_address, call_builder.provider))
}
/**Creates a `RawCallBuilder` for deploying this contract using the given `provider`
and constructor arguments, if any.
This is a simple wrapper around creating a `RawCallBuilder` with the data set to
the bytecode concatenated with the constructor's ABI-encoded arguments.*/
#[inline]
pub fn deploy_builder(
__provider: P,
authorityFactory: alloy::sol_types::private::Address,
applicationFactory: alloy::sol_types::private::Address,
) -> alloy_contract::RawCallBuilder<P, N> {
alloy_contract::RawCallBuilder::new_raw_deploy(
__provider,
[
&BYTECODE[..],
&alloy_sol_types::SolConstructor::abi_encode(
&constructorCall {
authorityFactory,
applicationFactory,
},
)[..],
]
.concat()
.into(),
)
}
/// Returns a reference to the address.
#[inline]
pub const fn address(&self) -> &alloy_sol_types::private::Address {
&self.address
}
/// Sets the address.
#[inline]
pub fn set_address(&mut self, address: alloy_sol_types::private::Address) {
self.address = address;
}
/// Sets the address and returns `self`.
pub fn at(mut self, address: alloy_sol_types::private::Address) -> Self {
self.set_address(address);
self
}
/// Returns a reference to the provider.
#[inline]
pub const fn provider(&self) -> &P {
&self.provider
}
}
impl<P: ::core::clone::Clone, N> SelfHostedApplicationFactoryInstance<&P, N> {
/// Clones the provider and returns a new instance with the cloned provider.
#[inline]
pub fn with_cloned_provider(self) -> SelfHostedApplicationFactoryInstance<P, N> {
SelfHostedApplicationFactoryInstance {
address: self.address,
provider: ::core::clone::Clone::clone(&self.provider),
_network: ::core::marker::PhantomData,
}
}
}
/// Function calls.
impl<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
> SelfHostedApplicationFactoryInstance<P, N> {
/// Creates a new call builder using this contract instance's provider and address.
///
/// Note that the call can be any function call, not just those defined in this
/// contract. Prefer using the other methods for building type-safe contract calls.
pub fn call_builder<C: alloy_sol_types::SolCall>(
&self,
call: &C,
) -> alloy_contract::SolCallBuilder<&P, C, N> {
alloy_contract::SolCallBuilder::new_sol(&self.provider, &self.address, call)
}
///Creates a new call builder for the [`calculateAddresses`] function.
pub fn calculateAddresses(
&self,
authorityOwner: alloy::sol_types::private::Address,
epochLength: alloy::sol_types::private::primitives::aliases::U256,
appOwner: alloy::sol_types::private::Address,
templateHash: alloy::sol_types::private::FixedBytes<32>,
dataAvailability: alloy::sol_types::private::Bytes,
salt: alloy::sol_types::private::FixedBytes<32>,
) -> alloy_contract::SolCallBuilder<&P, calculateAddressesCall, N> {
self.call_builder(
&calculateAddressesCall {
authorityOwner,
epochLength,
appOwner,
templateHash,
dataAvailability,
salt,
},
)
}
///Creates a new call builder for the [`deployContracts`] function.
pub fn deployContracts(
&self,
authorityOwner: alloy::sol_types::private::Address,
epochLength: alloy::sol_types::private::primitives::aliases::U256,
appOwner: alloy::sol_types::private::Address,
templateHash: alloy::sol_types::private::FixedBytes<32>,
dataAvailability: alloy::sol_types::private::Bytes,
salt: alloy::sol_types::private::FixedBytes<32>,
) -> alloy_contract::SolCallBuilder<&P, deployContractsCall, N> {
self.call_builder(
&deployContractsCall {
authorityOwner,
epochLength,
appOwner,
templateHash,
dataAvailability,
salt,
},
)
}
///Creates a new call builder for the [`getApplicationFactory`] function.
pub fn getApplicationFactory(
&self,
) -> alloy_contract::SolCallBuilder<&P, getApplicationFactoryCall, N> {
self.call_builder(&getApplicationFactoryCall)
}
///Creates a new call builder for the [`getAuthorityFactory`] function.
pub fn getAuthorityFactory(
&self,
) -> alloy_contract::SolCallBuilder<&P, getAuthorityFactoryCall, N> {
self.call_builder(&getAuthorityFactoryCall)
}
}
/// Event filters.
impl<
P: alloy_contract::private::Provider<N>,
N: alloy_contract::private::Network,
> SelfHostedApplicationFactoryInstance<P, N> {
/// Creates a new event filter using this contract instance's provider and address.
///
/// Note that the type can be any event, not just those defined in this contract.
/// Prefer using the other methods for building type-safe event filters.
pub fn event_filter<E: alloy_sol_types::SolEvent>(
&self,
) -> alloy_contract::Event<&P, E, N> {
alloy_contract::Event::new_sol(&self.provider, &self.address)
}
}
}