@eth-optimism/contracts-periphery
Version:
[Optimism] External (out-of-protocol) L1 and L2 smart contracts for Optimism
258 lines (257 loc) • 24.1 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "Faucet",
"sourceName": "contracts/universal/faucet/Faucet.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_admin",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "string",
"name": "authModule",
"type": "string"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "userId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "recipient",
"type": "address"
}
],
"name": "Drip",
"type": "event"
},
{
"inputs": [],
"name": "ADMIN",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IFaucetAuthModule",
"name": "_module",
"type": "address"
},
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bool",
"name": "enabled",
"type": "bool"
},
{
"internalType": "uint256",
"name": "ttl",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"internalType": "struct Faucet.ModuleConfig",
"name": "_config",
"type": "tuple"
}
],
"name": "configure",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address payable",
"name": "recipient",
"type": "address"
},
{
"internalType": "bytes32",
"name": "nonce",
"type": "bytes32"
}
],
"internalType": "struct Faucet.DripParameters",
"name": "_params",
"type": "tuple"
},
{
"components": [
{
"internalType": "contract IFaucetAuthModule",
"name": "module",
"type": "address"
},
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "proof",
"type": "bytes"
}
],
"internalType": "struct Faucet.AuthParameters",
"name": "_auth",
"type": "tuple"
}
],
"name": "drip",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IFaucetAuthModule",
"name": "",
"type": "address"
}
],
"name": "modules",
"outputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bool",
"name": "enabled",
"type": "bool"
},
{
"internalType": "uint256",
"name": "ttl",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "nonces",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IFaucetAuthModule",
"name": "",
"type": "address"
},
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "timeouts",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x60a060405234801561001057600080fd5b5060405161124a38038061124a83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516111b16100996000396000818161010401528181610219015261098701526111b16000f3fe6080604052600436106100745760003560e01c806338757bfd1161004e57806338757bfd1461014b578063a8ee49fe14610191578063b960bc2b146101c1578063f3fef3a3146101e157600080fd5b80631cb81b88146100805780631d5d26bc146100a25780632a0acc6a146100f257600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100a061009b366004610bf3565b610201565b005b3480156100ae57600080fd5b506100dd6100bd366004610cb4565b600260209081526000928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b3480156100fe57600080fd5b506101267f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e9565b34801561015757600080fd5b50610183610166366004610cd6565b600160209081526000928352604080842090915290825290205481565b6040519081526020016100e9565b34801561019d57600080fd5b506101b16101ac366004610d02565b610352565b6040516100e99493929190610d9c565b3480156101cd57600080fd5b506100a06101dc366004610dcb565b610408565b3480156101ed57600080fd5b506100a06101fc366004610cd6565b61096f565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4661756365743a2066756e6374696f6e2063616e206f6e6c792062652063616c60448201527f6c65642062792061646d696e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152602081905260409020815182919081906103019082610f47565b5060208201516001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055604082015160028201556060909101516003909101555050565b60006020819052908152604090208054819061036d90610ea5565b80601f016020809104026020016040519081016040528092919081815260200182805461039990610ea5565b80156103e65780601f106103bb576101008083540402835291602001916103e6565b820191906000526020600020905b8154815290600101906020018083116103c957829003601f168201915b5050505060018301546002840154600390940154929360ff9091169290915084565b805173ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604080822081516080810190925280548290829061044790610ea5565b80601f016020809104026020016040519081016040528092919081815260200182805461047390610ea5565b80156104c05780601f10610495576101008083540402835291602001916104c0565b820191906000526020600020905b8154815290600101906020018083116104a357829003601f168201915b5050509183525050600182015460ff16151560208083019190915260028301546040830152600390920154606090910152810151909150610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603c60248201527f4661756365743a2070726f76696465642061757468206d6f64756c652069732060448201527f6e6f7420737570706f727465642062792074686973206661756365740000000060648201526084016102c2565b6020808301516000908152600282526040808220868401518352909252205460ff1615610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4661756365743a206e6f6e63652068617320616c7265616479206265656e207560448201527f736564000000000000000000000000000000000000000000000000000000000060648201526084016102c2565b815173ffffffffffffffffffffffffffffffffffffffff16600090815260016020908152604080832082860151845290915290205442116106f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4661756365743a20617574682063616e6e6f742062652075736564207965742060448201527f626563617573652074696d656f757420686173206e6f7420656c61707365640060648201526084016102c2565b8151602083015160408085015190517ff5431ffa00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9093169263f5431ffa92610754928892600401611061565b602060405180830381865afa158015610771573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079591906110aa565b61082357604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f4661756365743a206472697020706172616d657465727320636f756c64206e6f60448201527f74206265207665726966696564206279207365637572697479206d6f64756c6560648201526084016102c2565b604081015161083290426110c7565b825173ffffffffffffffffffffffffffffffffffffffff1660009081526001602081815260408084208288018051865290835281852095909555935183526002815283832087820151845290529082902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690911790556060820151845191519091906108c190610a82565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f09050801580156108fb573d6000803e3d6000fd5b505082516020830151825160405173ffffffffffffffffffffffffffffffffffffffff9093169261092c9190611106565b60405190819003812060608501518252907f2cebdf1cc706a50e1b28bf2fc5cfbd7204747a3b82439b85721a474df3a355a49060200160405180910390a4505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4661756365743a2066756e6374696f6e2063616e206f6e6c792062652063616c60448201527f6c65642062792061646d696e000000000000000000000000000000000000000060648201526084016102c2565b8082604051610a4290610a82565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f0905080158015610a7c573d6000803e3d6000fd5b50505050565b60598061112383390190565b73ffffffffffffffffffffffffffffffffffffffff81168114610ab057600080fd5b50565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610b0557610b05610ab3565b60405290565b6040805190810167ffffffffffffffff81118282101715610b0557610b05610ab3565b6040516060810167ffffffffffffffff81118282101715610b0557610b05610ab3565b600067ffffffffffffffff80841115610b6c57610b6c610ab3565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610bb257610bb2610ab3565b81604052809350858152868686011115610bcb57600080fd5b858560208301376000602087830101525050509392505050565b8015158114610ab057600080fd5b60008060408385031215610c0657600080fd5b8235610c1181610a8e565b9150602083013567ffffffffffffffff80821115610c2e57600080fd5b9084019060808287031215610c4257600080fd5b610c4a610ae2565b823582811115610c5957600080fd5b83019150601f82018713610c6c57600080fd5b610c7b87833560208501610b51565b815260208301359150610c8d82610be5565b81602082015260408301356040820152606083013560608201528093505050509250929050565b60008060408385031215610cc757600080fd5b50508035926020909101359150565b60008060408385031215610ce957600080fd5b8235610cf481610a8e565b946020939093013593505050565b600060208284031215610d1457600080fd5b8135610d1f81610a8e565b9392505050565b60005b83811015610d41578181015183820152602001610d29565b83811115610a7c5750506000910152565b60008151808452610d6a816020860160208601610d26565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b608081526000610daf6080830187610d52565b9415156020830152506040810192909252606090910152919050565b6000808284036060811215610ddf57600080fd5b6040811215610ded57600080fd5b50610df6610b0b565b8335610e0181610a8e565b8152602084810135908201529150604083013567ffffffffffffffff80821115610e2a57600080fd5b9084019060608287031215610e3e57600080fd5b610e46610b2e565b8235610e5181610a8e565b815260208381013590820152604083013582811115610e6f57600080fd5b80840193505086601f840112610e8457600080fd5b610e9387843560208601610b51565b60408201528093505050509250929050565b600181811c90821680610eb957607f821691505b602082108103610ef2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610f4257600081815260208120601f850160051c81016020861015610f1f5750805b601f850160051c820191505b81811015610f3e57828155600101610f2b565b5050505b505050565b815167ffffffffffffffff811115610f6157610f61610ab3565b610f7581610f6f8454610ea5565b84610ef8565b602080601f831160018114610fc85760008415610f925750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610f3e565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561101557888601518255948401946001909101908401610ff6565b508582101561105157878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b73ffffffffffffffffffffffffffffffffffffffff8451168152602084015160208201528260408201526080606082015260006110a16080830184610d52565b95945050505050565b6000602082840312156110bc57600080fd5b8151610d1f81610be5565b60008219821115611101577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b60008251611118818460208701610d26565b919091019291505056fe608060405260405160593803806059833981016040819052601e91602a565b806001600160a01b0316ff5b600060208284031215603b57600080fd5b81516001600160a01b0381168114605157600080fd5b939250505056fea26469706673582212202d806554cdcd266a1bedbb6eb746f2109e8a6172580f95e38b3449e2cc49b8f564736f6c634300080f0033",
"deployedBytecode": "0x6080604052600436106100745760003560e01c806338757bfd1161004e57806338757bfd1461014b578063a8ee49fe14610191578063b960bc2b146101c1578063f3fef3a3146101e157600080fd5b80631cb81b88146100805780631d5d26bc146100a25780632a0acc6a146100f257600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100a061009b366004610bf3565b610201565b005b3480156100ae57600080fd5b506100dd6100bd366004610cb4565b600260209081526000928352604080842090915290825290205460ff1681565b60405190151581526020015b60405180910390f35b3480156100fe57600080fd5b506101267f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e9565b34801561015757600080fd5b50610183610166366004610cd6565b600160209081526000928352604080842090915290825290205481565b6040519081526020016100e9565b34801561019d57600080fd5b506101b16101ac366004610d02565b610352565b6040516100e99493929190610d9c565b3480156101cd57600080fd5b506100a06101dc366004610dcb565b610408565b3480156101ed57600080fd5b506100a06101fc366004610cd6565b61096f565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146102cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4661756365743a2066756e6374696f6e2063616e206f6e6c792062652063616c60448201527f6c65642062792061646d696e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000908152602081905260409020815182919081906103019082610f47565b5060208201516001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055604082015160028201556060909101516003909101555050565b60006020819052908152604090208054819061036d90610ea5565b80601f016020809104026020016040519081016040528092919081815260200182805461039990610ea5565b80156103e65780601f106103bb576101008083540402835291602001916103e6565b820191906000526020600020905b8154815290600101906020018083116103c957829003601f168201915b5050505060018301546002840154600390940154929360ff9091169290915084565b805173ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604080822081516080810190925280548290829061044790610ea5565b80601f016020809104026020016040519081016040528092919081815260200182805461047390610ea5565b80156104c05780601f10610495576101008083540402835291602001916104c0565b820191906000526020600020905b8154815290600101906020018083116104a357829003601f168201915b5050509183525050600182015460ff16151560208083019190915260028301546040830152600390920154606090910152810151909150610583576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603c60248201527f4661756365743a2070726f76696465642061757468206d6f64756c652069732060448201527f6e6f7420737570706f727465642062792074686973206661756365740000000060648201526084016102c2565b6020808301516000908152600282526040808220868401518352909252205460ff1615610632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4661756365743a206e6f6e63652068617320616c7265616479206265656e207560448201527f736564000000000000000000000000000000000000000000000000000000000060648201526084016102c2565b815173ffffffffffffffffffffffffffffffffffffffff16600090815260016020908152604080832082860151845290915290205442116106f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f4661756365743a20617574682063616e6e6f742062652075736564207965742060448201527f626563617573652074696d656f757420686173206e6f7420656c61707365640060648201526084016102c2565b8151602083015160408085015190517ff5431ffa00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9093169263f5431ffa92610754928892600401611061565b602060405180830381865afa158015610771573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079591906110aa565b61082357604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f4661756365743a206472697020706172616d657465727320636f756c64206e6f60448201527f74206265207665726966696564206279207365637572697479206d6f64756c6560648201526084016102c2565b604081015161083290426110c7565b825173ffffffffffffffffffffffffffffffffffffffff1660009081526001602081815260408084208288018051865290835281852095909555935183526002815283832087820151845290529082902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690911790556060820151845191519091906108c190610a82565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f09050801580156108fb573d6000803e3d6000fd5b505082516020830151825160405173ffffffffffffffffffffffffffffffffffffffff9093169261092c9190611106565b60405190819003812060608501518252907f2cebdf1cc706a50e1b28bf2fc5cfbd7204747a3b82439b85721a474df3a355a49060200160405180910390a4505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610a34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4661756365743a2066756e6374696f6e2063616e206f6e6c792062652063616c60448201527f6c65642062792061646d696e000000000000000000000000000000000000000060648201526084016102c2565b8082604051610a4290610a82565b73ffffffffffffffffffffffffffffffffffffffff90911681526020016040518091039082f0905080158015610a7c573d6000803e3d6000fd5b50505050565b60598061112383390190565b73ffffffffffffffffffffffffffffffffffffffff81168114610ab057600080fd5b50565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516080810167ffffffffffffffff81118282101715610b0557610b05610ab3565b60405290565b6040805190810167ffffffffffffffff81118282101715610b0557610b05610ab3565b6040516060810167ffffffffffffffff81118282101715610b0557610b05610ab3565b600067ffffffffffffffff80841115610b6c57610b6c610ab3565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610bb257610bb2610ab3565b81604052809350858152868686011115610bcb57600080fd5b858560208301376000602087830101525050509392505050565b8015158114610ab057600080fd5b60008060408385031215610c0657600080fd5b8235610c1181610a8e565b9150602083013567ffffffffffffffff80821115610c2e57600080fd5b9084019060808287031215610c4257600080fd5b610c4a610ae2565b823582811115610c5957600080fd5b83019150601f82018713610c6c57600080fd5b610c7b87833560208501610b51565b815260208301359150610c8d82610be5565b81602082015260408301356040820152606083013560608201528093505050509250929050565b60008060408385031215610cc757600080fd5b50508035926020909101359150565b60008060408385031215610ce957600080fd5b8235610cf481610a8e565b946020939093013593505050565b600060208284031215610d1457600080fd5b8135610d1f81610a8e565b9392505050565b60005b83811015610d41578181015183820152602001610d29565b83811115610a7c5750506000910152565b60008151808452610d6a816020860160208601610d26565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b608081526000610daf6080830187610d52565b9415156020830152506040810192909252606090910152919050565b6000808284036060811215610ddf57600080fd5b6040811215610ded57600080fd5b50610df6610b0b565b8335610e0181610a8e565b8152602084810135908201529150604083013567ffffffffffffffff80821115610e2a57600080fd5b9084019060608287031215610e3e57600080fd5b610e46610b2e565b8235610e5181610a8e565b815260208381013590820152604083013582811115610e6f57600080fd5b80840193505086601f840112610e8457600080fd5b610e9387843560208601610b51565b60408201528093505050509250929050565b600181811c90821680610eb957607f821691505b602082108103610ef2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b601f821115610f4257600081815260208120601f850160051c81016020861015610f1f5750805b601f850160051c820191505b81811015610f3e57828155600101610f2b565b5050505b505050565b815167ffffffffffffffff811115610f6157610f61610ab3565b610f7581610f6f8454610ea5565b84610ef8565b602080601f831160018114610fc85760008415610f925750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610f3e565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561101557888601518255948401946001909101908401610ff6565b508582101561105157878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b73ffffffffffffffffffffffffffffffffffffffff8451168152602084015160208201528260408201526080606082015260006110a16080830184610d52565b95945050505050565b6000602082840312156110bc57600080fd5b8151610d1f81610be5565b60008219821115611101577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b60008251611118818460208701610d26565b919091019291505056fe608060405260405160593803806059833981016040819052601e91602a565b806001600160a01b0316ff5b600060208284031215603b57600080fd5b81516001600160a01b0381168114605157600080fd5b939250505056fea26469706673582212202d806554cdcd266a1bedbb6eb746f2109e8a6172580f95e38b3449e2cc49b8f564736f6c634300080f0033",
"linkReferences": {},
"deployedLinkReferences": {}
}