Skip to content

Commit

Permalink
test: tests for nine more proxies
Browse files Browse the repository at this point in the history
  • Loading branch information
0xthedance committed Jan 13, 2025
1 parent 7f20fde commit 208cfd2
Show file tree
Hide file tree
Showing 18 changed files with 13,170 additions and 1 deletion.
233 changes: 233 additions & 0 deletions tests/functional/data/contracts/ethereum/local/CWIA.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,233 @@
{
"abi": [
{
"inputs": [
{
"internalType": "contract ExampleClone",
"name": "implementation_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "CreateFail",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "Target",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "param1",
"type": "address"
},
{
"internalType": "uint256",
"name": "param2",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "param3",
"type": "uint64"
},
{
"internalType": "uint8",
"name": "param4",
"type": "uint8"
}
],
"name": "addressOfClone2",
"outputs": [
{
"internalType": "address",
"name": "clone",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
}
],
"name": "addressOfClone3",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "param1",
"type": "address"
},
{
"internalType": "uint256",
"name": "param2",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "param3",
"type": "uint64"
},
{
"internalType": "uint8",
"name": "param4",
"type": "uint8"
}
],
"name": "createClone",
"outputs": [
{
"internalType": "contract ExampleClone",
"name": "clone",
"type": "address"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "param1",
"type": "address"
},
{
"internalType": "uint256",
"name": "param2",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "param3",
"type": "uint64"
},
{
"internalType": "uint8",
"name": "param4",
"type": "uint8"
}
],
"name": "createClone2",
"outputs": [
{
"internalType": "contract ExampleClone",
"name": "clone",
"type": "address"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "param1",
"type": "address"
},
{
"internalType": "uint256",
"name": "param2",
"type": "uint256"
},
{
"internalType": "uint64",
"name": "param3",
"type": "uint64"
},
{
"internalType": "uint8",
"name": "param4",
"type": "uint8"
},
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
}
],
"name": "createClone3",
"outputs": [
{
"internalType": "contract ExampleClone",
"name": "clone",
"type": "address"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "implementation",
"outputs": [
{
"internalType": "contract ExampleClone",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
],
"contractName": "ExampleCloneFactory",
"deploymentBytecode": {
"bytecode": "0x6080604052348015600e575f5ffd5b5060405161080b38038061080b833981016040819052602b91604e565b5f80546001600160a01b0319166001600160a01b03929092169190911790556079565b5f60208284031215605d575f5ffd5b81516001600160a01b03811681146072575f5ffd5b9392505050565b610785806100865f395ff3fe608060405260043610610054575f3560e01c80633feab925146100585780635c60da1b14610087578063684fbe55146100a55780637df12552146100b85780638059ce3d146100d7578063ea8fb4df146100f6575b5f5ffd5b61006b610066366004610654565b610109565b6040516001600160a01b03909116815260200160405180910390f35b348015610092575f5ffd5b505f5461006b906001600160a01b031681565b61006b6100b3366004610654565b610155565b3480156100c3575f5ffd5b5061006b6100d2366004610654565b6101df565b3480156100e2575f5ffd5b5061006b6100f136600461069e565b610220565b61006b6101043660046106b5565b610230565b5f5f858585856040516020016101229493929190610706565b60408051601f198184030181529190525f5490915061014b906001600160a01b0316823461027e565b9695505050505050565b5f5f8585858560405160200161016e9493929190610706565b60408051601f198184030181529190525f54909150610197906001600160a01b031682346102c6565b6040516001600160a01b03821681529092507ff3a1fccdf4778ea6c44fd680f7bdbf5d53a02733614e6e82354bfcb238eb611a9060200160405180910390a150949350505050565b5f5f858585856040516020016101f89493929190610706565b60408051601f198184030181529190525f5490915061014b906001600160a01b031682610305565b5f61022a8261036d565b92915050565b5f5f868686866040516020016102499493929190610706565b60408051601f198184030181529190525f54909150610273906001600160a01b03168285346103cb565b979650505050505050565b5f5f61028a8585610525565b90505f81516020830185f591506001600160a01b0382166102be57604051631d7fde3160e31b815260040160405180910390fd5b509392505050565b5f5f6102d28585610525565b905080516020820184f091506001600160a01b0382166102be57604051631d7fde3160e31b815260040160405180910390fd5b5f5f6103118484610525565b8051602091820120604080516001600160f81b0319818501523060601b6bffffffffffffffffffffffff191660218201525f60358201526055808201939093528151808203909301835260750190528051910120949350505050565b5f604051305f5260ff600b53826020527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f6040526055600b20601452806040525061d6945f52600160345350506017601e206001600160a01b031690565b8251604051613d6160f01b8152603a820160f090811b6002838101919091526680600b3d3981f360c81b600484015264363d3d376160d81b600b8401528301901b6010820181905268603836393d3d3d366160b81b6012830152601b82015262013d7360e81b601d820152606086901b6020808301919091526e5af43d82803e903d91603657fd5bf360881b60348301525f929160458301918390604383019089015b6020831061048d5780518252601f19909201916020918201910161046e565b5f6001846020036101000a0319905080825116835283830192508660f01b83526f67363d3d37363d34f03d5260086018f35f52896010805ff5806104d85763ebfef1885f526004601cfd5b8060145261d6945f5260016034536001600160a01b036017601e201698505f5f88888d855af115893b15171561051557638f86d2f15f526004601cfd5b5050505050505050949350505050565b80516040805160438084018083528285019091018352606160f81b60208084019182526039860160f081811b60218701526f3d81600a3d39f33d3d3d3d363d3d376160801b602387015260028801901b603386018190526560373639366160d01b6035870152603b86015262013d7360e81b603d860152606089901b958501959095526c5af43d3d93803e603557fd5bf360981b6054850152929493919286019084606187015b602082106105eb5783518152602093840193601f1990920191016105cc565b92515f1960208390036101000a011916835260f09590951b91909401525091949350505050565b80356001600160a01b0381168114610628575f5ffd5b919050565b803567ffffffffffffffff81168114610628575f5ffd5b803560ff81168114610628575f5ffd5b5f5f5f5f60808587031215610667575f5ffd5b61067085610612565b9350602085013592506106856040860161062d565b915061069360608601610644565b905092959194509250565b5f602082840312156106ae575f5ffd5b5035919050565b5f5f5f5f5f60a086880312156106c9575f5ffd5b6106d286610612565b9450602086013593506106e76040870161062d565b92506106f560608701610644565b949793965091946080013592915050565b60609490941b6bffffffffffffffffffffffff19168452601484019290925260c01b6001600160c01b031916603483015260f81b6001600160f81b031916603c820152603d019056fea26469706673582212205559884f32a8a932c7edc025fca15945f9c4d5c0aba79378ff3471ff2c39348b64736f6c634300081c0033"
},
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"methodIdentifiers": {
"addressOfClone2(address,uint256,uint64,uint8)": "0x7df12552",
"addressOfClone3(bytes32)": "0x8059ce3d",
"createClone(address,uint256,uint64,uint8)": "0x684fbe55",
"createClone2(address,uint256,uint64,uint8)": "0x3feab925",
"createClone3(address,uint256,uint64,uint8,bytes32)": "0xea8fb4df",
"implementation()": "0x5c60da1b"
},
"runtimeBytecode": {
"bytecode": "0x608060405260043610610054575f3560e01c80633feab925146100585780635c60da1b14610087578063684fbe55146100a55780637df12552146100b85780638059ce3d146100d7578063ea8fb4df146100f6575b5f5ffd5b61006b610066366004610654565b610109565b6040516001600160a01b03909116815260200160405180910390f35b348015610092575f5ffd5b505f5461006b906001600160a01b031681565b61006b6100b3366004610654565b610155565b3480156100c3575f5ffd5b5061006b6100d2366004610654565b6101df565b3480156100e2575f5ffd5b5061006b6100f136600461069e565b610220565b61006b6101043660046106b5565b610230565b5f5f858585856040516020016101229493929190610706565b60408051601f198184030181529190525f5490915061014b906001600160a01b0316823461027e565b9695505050505050565b5f5f8585858560405160200161016e9493929190610706565b60408051601f198184030181529190525f54909150610197906001600160a01b031682346102c6565b6040516001600160a01b03821681529092507ff3a1fccdf4778ea6c44fd680f7bdbf5d53a02733614e6e82354bfcb238eb611a9060200160405180910390a150949350505050565b5f5f858585856040516020016101f89493929190610706565b60408051601f198184030181529190525f5490915061014b906001600160a01b031682610305565b5f61022a8261036d565b92915050565b5f5f868686866040516020016102499493929190610706565b60408051601f198184030181529190525f54909150610273906001600160a01b03168285346103cb565b979650505050505050565b5f5f61028a8585610525565b90505f81516020830185f591506001600160a01b0382166102be57604051631d7fde3160e31b815260040160405180910390fd5b509392505050565b5f5f6102d28585610525565b905080516020820184f091506001600160a01b0382166102be57604051631d7fde3160e31b815260040160405180910390fd5b5f5f6103118484610525565b8051602091820120604080516001600160f81b0319818501523060601b6bffffffffffffffffffffffff191660218201525f60358201526055808201939093528151808203909301835260750190528051910120949350505050565b5f604051305f5260ff600b53826020527f21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f6040526055600b20601452806040525061d6945f52600160345350506017601e206001600160a01b031690565b8251604051613d6160f01b8152603a820160f090811b6002838101919091526680600b3d3981f360c81b600484015264363d3d376160d81b600b8401528301901b6010820181905268603836393d3d3d366160b81b6012830152601b82015262013d7360e81b601d820152606086901b6020808301919091526e5af43d82803e903d91603657fd5bf360881b60348301525f929160458301918390604383019089015b6020831061048d5780518252601f19909201916020918201910161046e565b5f6001846020036101000a0319905080825116835283830192508660f01b83526f67363d3d37363d34f03d5260086018f35f52896010805ff5806104d85763ebfef1885f526004601cfd5b8060145261d6945f5260016034536001600160a01b036017601e201698505f5f88888d855af115893b15171561051557638f86d2f15f526004601cfd5b5050505050505050949350505050565b80516040805160438084018083528285019091018352606160f81b60208084019182526039860160f081811b60218701526f3d81600a3d39f33d3d3d3d363d3d376160801b602387015260028801901b603386018190526560373639366160d01b6035870152603b86015262013d7360e81b603d860152606089901b958501959095526c5af43d3d93803e603557fd5bf360981b6054850152929493919286019084606187015b602082106105eb5783518152602093840193601f1990920191016105cc565b92515f1960208390036101000a011916835260f09590951b91909401525091949350505050565b80356001600160a01b0381168114610628575f5ffd5b919050565b803567ffffffffffffffff81168114610628575f5ffd5b803560ff81168114610628575f5ffd5b5f5f5f5f60808587031215610667575f5ffd5b61067085610612565b9350602085013592506106856040860161062d565b915061069360608601610644565b905092959194509250565b5f602082840312156106ae575f5ffd5b5035919050565b5f5f5f5f5f60a086880312156106c9575f5ffd5b6106d286610612565b9450602086013593506106e76040870161062d565b92506106f560608701610644565b949793965091946080013592915050565b60609490941b6bffffffffffffffffffffffff19168452601484019290925260c01b6001600160c01b031916603483015260f81b6001600160f81b031916603c820152603d019056fea26469706673582212205559884f32a8a932c7edc025fca15945f9c4d5c0aba79378ff3471ff2c39348b64736f6c634300081c0033"
},
"sourceId": "CWIA.sol",
"sourcemap": "30048:1808:0:-:0;;;30205:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30257:14;:32;;-1:-1:-1;;;;;;30257:32:0;-1:-1:-1;;;;;30257:32:0;;;;;;;;;;30048:1808;;14:310:1;104:6;157:2;145:9;136:7;132:23;128:32;125:52;;;173:1;170;163:12;125:52;199:16;;-1:-1:-1;;;;;244:31:1;;234:42;;224:70;;290:1;287;280:12;224:70;313:5;14:310;-1:-1:-1;;;14:310:1:o;:::-;30048:1808:0;;;;;;",
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
70 changes: 70 additions & 0 deletions tests/functional/data/contracts/ethereum/local/ClonesFactory.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
{
"abi": [
{
"inputs": [],
"name": "CreateError",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "Target",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_implementation",
"type": "address"
}
],
"name": "deployClonesProxy",
"outputs": [
{
"internalType": "address",
"name": "split",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"contractName": "ClonesFactory",
"deploymentBytecode": {
"bytecode": "0x608060405234801561001057600080fd5b506101c6806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063303d29d814610030575b600080fd5b61004361003e366004610162565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b600061006a826100ae565b6040516001600160a01b03821681529091507ff3a1fccdf4778ea6c44fd680f7bdbf5d53a02733614e6e82354bfcb238eb611a9060200160405180910390a1919050565b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528260601b60468201526c5af43d3d93803e605b57fd5bf360981b605a8201526067816000f09150506001600160a01b03811661015d57604051630985da9b60e41b815260040160405180910390fd5b919050565b600060208284031215610173578081fd5b81356001600160a01b0381168114610189578182fd5b939250505056fea2646970667358221220892d71408f9c85c29b24e1d399653328e4fe20da80e56db141ab111318d618d164736f6c63430008040033"
},
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"methodIdentifiers": {
"deployClonesProxy(address)": "0x303d29d8"
},
"runtimeBytecode": {
"bytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063303d29d814610030575b600080fd5b61004361003e366004610162565b61005f565b6040516001600160a01b03909116815260200160405180910390f35b600061006a826100ae565b6040516001600160a01b03821681529091507ff3a1fccdf4778ea6c44fd680f7bdbf5d53a02733614e6e82354bfcb238eb611a9060200160405180910390a1919050565b6000604051723d605d80600a3d3981f336603057343d52307f60681b81527f830d2d700a97af574b186c80d40429385d24241565b08a7c559ba283a964d9b160138201527260203da23d3df35b3d3d3d3d363d3d37363d7360681b60338201528260601b60468201526c5af43d3d93803e605b57fd5bf360981b605a8201526067816000f09150506001600160a01b03811661015d57604051630985da9b60e41b815260040160405180910390fd5b919050565b600060208284031215610173578081fd5b81356001600160a01b0381168114610189578182fd5b939250505056fea2646970667358221220892d71408f9c85c29b24e1d399653328e4fe20da80e56db141ab111318d618d164736f6c63430008040033"
},
"sourceId": "tests/functional/data/sources/ClonesFactory.sol",
"sourcemap": "6708:230:0:-:0;;;;;;;;;;;;;;;;;;;",
"userdoc": {
"errors": {
"CreateError()": [
{
"notice": "create opcode failed"
}
]
},
"kind": "user",
"methods": {},
"version": 1
}
}
Loading

0 comments on commit 208cfd2

Please sign in to comment.