Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../build-info/167571dafa48e7ff636310c6c9f0fc8e202e44bc.json"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
{
"_format": "hh3-artifact-1",
"contractName": "DynamicCallEncoder",
"sourceName": "contracts/dynamic-calls/DynamicCallEncoder.sol",
"abi": [
{
"inputs": [],
"name": "BytesLibSliceOutOfBounds",
"type": "error"
},
{
"inputs": [],
"name": "DynamicCallEncoderBadLength",
"type": "error"
},
{
"inputs": [],
"name": "DynamicCallEncoderEmptyDynamic",
"type": "error"
},
{
"inputs": [],
"name": "DynamicCallEncoderInvalidArgKind",
"type": "error"
},
{
"inputs": [],
"name": "DynamicCallEncoderVariableOutOfBounds",
"type": "error"
},
{
"inputs": [],
"name": "DynamicCallEncoderVariableRefBadLength",
"type": "error"
},
{
"inputs": [],
"name": "DynamicCallEncoderVariablesLengthOutOfBounds",
"type": "error"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "bytes4",
"name": "selector",
"type": "bytes4"
},
{
"components": [
{
"internalType": "enum DynamicArgKind",
"name": "kind",
"type": "uint8"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
},
{
"internalType": "bool",
"name": "isDynamic",
"type": "bool"
}
],
"internalType": "struct DynamicArg[]",
"name": "arguments",
"type": "tuple[]"
}
],
"internalType": "struct DynamicCall",
"name": "dynamicCall",
"type": "tuple"
},
{
"internalType": "bytes[][]",
"name": "variables",
"type": "bytes[][]"
},
{
"internalType": "uint256",
"name": "variablesLength",
"type": "uint256"
}
],
"name": "encode",
"outputs": [
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"bytecode": "0x6080604052348015600e575f5ffd5b50610c3c8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063f964081d1461002d575b5f5ffd5b61004061003b3660046109c2565b610056565b60405161004d9190610ace565b60405180910390f35b60608251821115610093576040517f66e32eb400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100a78460400151856060015185856100af565b949350505050565b82516060905f8167ffffffffffffffff8111156100ce576100ce6106ae565b60405190808252806020026020018201604052801561010157816020015b60608152602001906001900390816100ec5790505b5090505f8267ffffffffffffffff81111561011e5761011e6106ae565b604051908082528060200260200182016040528015610147578160200160208202803683370190505b5090505f805b848110156101ea575f61017a8a838151811061016b5761016b610b03565b60200260200101518a8a610322565b9050805f015185838151811061019257610192610b03565b602002602001018190525080602001518483815181106101b4576101b4610b03565b9115156020928302919091018201528101516101d2578051516101d5565b60205b6101df9084610b2b565b92505060010161014d565b50606080825f5b878110156102ec5785818151811061020b5761020b610b03565b6020026020010151156102a65760405161022b9085908490602001610b55565b60405160208183030381529060405293508287828151811061024f5761024f610b03565b6020026020010151604051602001610268929190610b6d565b604051602081830303815290604052925086818151811061028b5761028b610b03565b6020026020010151518261029f9190610b2b565b91506102e4565b838782815181106102b9576102b9610b03565b60200260200101516040516020016102d2929190610b6d565b60405160208183030381529060405293505b6001016101f1565b508b838360405160200161030293929190610b81565b604051602081830303815290604052975050505050505050949350505050565b60408051808201909152606081525f60208201525f8451600181111561034a5761034a610bc0565b0361035f57610358846103bd565b90506103b6565b60018451600181111561037457610374610bc0565b03610384576103588484846103e9565b6040517f51c907b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9392505050565b60408051808201909152606081525f60208201526103e382602001518360400151610500565b92915050565b60408051808201909152606081525f602082015283602001515160401461043c576040517f893ed1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61044a85602001516105dd565b90505f61045a86602001516105e9565b905083821061047c57604051630310496160e21b815260040160405180910390fd5b84828151811061048e5761048e610b03565b60200260200101515181106104b657604051630310496160e21b815260040160405180910390fd5b6104f68583815181106104cb576104cb610b03565b602002602001015182815181106104e4576104e4610b03565b60200260200101518760400151610500565b9695505050505050565b60408051808201909152606081525f60208201528251158061052e57506020835161052b9190610bd4565b15155b1561054c5760405163dd42b1e560e01b815260040160405180910390fd5b81156105d05760408351101561058e576040517f3202a09c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610597836105dd565b6020146105b75760405163dd42b1e560e01b815260040160405180910390fd5b6105c28360206105f5565b8152600160208201526103e3565b918252505f602082015290565b60208101515f906103e3565b60408101515f906103e3565b60606103b683838551606082821015610621576040516319359e9d60e11b815260040160405180910390fd5b8351821115610643576040516319359e9d60e11b815260040160405180910390fd5b5f61064e8484610bf3565b90508067ffffffffffffffff811115610669576106696106ae565b6040519080825280601f01601f191660200182016040528015610693576020820181803683370190505b509150836020860101602083018282825e5050509392505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156106e5576106e56106ae565b60405290565b6040516080810167ffffffffffffffff811182821017156106e5576106e56106ae565b604051601f8201601f1916810167ffffffffffffffff81118282101715610737576107376106ae565b604052919050565b5f67ffffffffffffffff821115610758576107586106ae565b5060051b60200190565b5f82601f830112610771575f5ffd5b813567ffffffffffffffff81111561078b5761078b6106ae565b61079e601f8201601f191660200161070e565b8181528460208386010111156107b2575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f82601f8301126107dd575f5ffd5b81356107f06107eb8261073f565b61070e565b8082825260208201915060208360051b860101925085831115610811575f5ffd5b602085015b838110156108bc57803567ffffffffffffffff811115610834575f5ffd5b86016060818903601f19011215610849575f5ffd5b6108516106c2565b602082013560028110610862575f5ffd5b8152604082013567ffffffffffffffff81111561087d575f5ffd5b61088c8a602083860101610762565b6020830152506060820135915081151582146108a6575f5ffd5b6040810191909152835260209283019201610816565b5095945050505050565b5f82601f8301126108d5575f5ffd5b81356108e36107eb8261073f565b8082825260208201915060208360051b860101925085831115610904575f5ffd5b602085015b838110156108bc57803567ffffffffffffffff811115610927575f5ffd5b8601603f81018813610937575f5ffd5b60208101356109486107eb8261073f565b808282526020820191506020808460051b8601010192508a83111561096b575f5ffd5b604084015b838110156109ac57803567ffffffffffffffff81111561098e575f5ffd5b61099d8d604088840101610762565b84525060209283019201610970565b5086525050602093840193919091019050610909565b5f5f5f606084860312156109d4575f5ffd5b833567ffffffffffffffff8111156109ea575f5ffd5b8401608081870312156109fb575f5ffd5b610a036106eb565b813573ffffffffffffffffffffffffffffffffffffffff81168114610a26575f5ffd5b81526020828101359082015260408201357fffffffff0000000000000000000000000000000000000000000000000000000081168114610a64575f5ffd5b6040820152606082013567ffffffffffffffff811115610a82575f5ffd5b610a8e888285016107ce565b606083015250935050602084013567ffffffffffffffff811115610ab0575f5ffd5b610abc868287016108c6565b93969395505050506040919091013590565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156103e3576103e3610b17565b5f81518060208401855e5f93019283525090919050565b5f610b608285610b3e565b9283525050602001919050565b5f6100a7610b7b8386610b3e565b84610b3e565b7fffffffff00000000000000000000000000000000000000000000000000000000841681525f610bb7610b7b6004840186610b3e565b95945050505050565b634e487b7160e01b5f52602160045260245ffd5b5f82610bee57634e487b7160e01b5f52601260045260245ffd5b500690565b818103818111156103e3576103e3610b1756fea264697066735822122041c689a80661212112e3fbf381b7d34afdaa30aa22cea997acd8b19bbe4d093864736f6c634300081c0033",
"deployedBytecode": "0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063f964081d1461002d575b5f5ffd5b61004061003b3660046109c2565b610056565b60405161004d9190610ace565b60405180910390f35b60608251821115610093576040517f66e32eb400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100a78460400151856060015185856100af565b949350505050565b82516060905f8167ffffffffffffffff8111156100ce576100ce6106ae565b60405190808252806020026020018201604052801561010157816020015b60608152602001906001900390816100ec5790505b5090505f8267ffffffffffffffff81111561011e5761011e6106ae565b604051908082528060200260200182016040528015610147578160200160208202803683370190505b5090505f805b848110156101ea575f61017a8a838151811061016b5761016b610b03565b60200260200101518a8a610322565b9050805f015185838151811061019257610192610b03565b602002602001018190525080602001518483815181106101b4576101b4610b03565b9115156020928302919091018201528101516101d2578051516101d5565b60205b6101df9084610b2b565b92505060010161014d565b50606080825f5b878110156102ec5785818151811061020b5761020b610b03565b6020026020010151156102a65760405161022b9085908490602001610b55565b60405160208183030381529060405293508287828151811061024f5761024f610b03565b6020026020010151604051602001610268929190610b6d565b604051602081830303815290604052925086818151811061028b5761028b610b03565b6020026020010151518261029f9190610b2b565b91506102e4565b838782815181106102b9576102b9610b03565b60200260200101516040516020016102d2929190610b6d565b60405160208183030381529060405293505b6001016101f1565b508b838360405160200161030293929190610b81565b604051602081830303815290604052975050505050505050949350505050565b60408051808201909152606081525f60208201525f8451600181111561034a5761034a610bc0565b0361035f57610358846103bd565b90506103b6565b60018451600181111561037457610374610bc0565b03610384576103588484846103e9565b6040517f51c907b200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9392505050565b60408051808201909152606081525f60208201526103e382602001518360400151610500565b92915050565b60408051808201909152606081525f602082015283602001515160401461043c576040517f893ed1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61044a85602001516105dd565b90505f61045a86602001516105e9565b905083821061047c57604051630310496160e21b815260040160405180910390fd5b84828151811061048e5761048e610b03565b60200260200101515181106104b657604051630310496160e21b815260040160405180910390fd5b6104f68583815181106104cb576104cb610b03565b602002602001015182815181106104e4576104e4610b03565b60200260200101518760400151610500565b9695505050505050565b60408051808201909152606081525f60208201528251158061052e57506020835161052b9190610bd4565b15155b1561054c5760405163dd42b1e560e01b815260040160405180910390fd5b81156105d05760408351101561058e576040517f3202a09c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610597836105dd565b6020146105b75760405163dd42b1e560e01b815260040160405180910390fd5b6105c28360206105f5565b8152600160208201526103e3565b918252505f602082015290565b60208101515f906103e3565b60408101515f906103e3565b60606103b683838551606082821015610621576040516319359e9d60e11b815260040160405180910390fd5b8351821115610643576040516319359e9d60e11b815260040160405180910390fd5b5f61064e8484610bf3565b90508067ffffffffffffffff811115610669576106696106ae565b6040519080825280601f01601f191660200182016040528015610693576020820181803683370190505b509150836020860101602083018282825e5050509392505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156106e5576106e56106ae565b60405290565b6040516080810167ffffffffffffffff811182821017156106e5576106e56106ae565b604051601f8201601f1916810167ffffffffffffffff81118282101715610737576107376106ae565b604052919050565b5f67ffffffffffffffff821115610758576107586106ae565b5060051b60200190565b5f82601f830112610771575f5ffd5b813567ffffffffffffffff81111561078b5761078b6106ae565b61079e601f8201601f191660200161070e565b8181528460208386010111156107b2575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f82601f8301126107dd575f5ffd5b81356107f06107eb8261073f565b61070e565b8082825260208201915060208360051b860101925085831115610811575f5ffd5b602085015b838110156108bc57803567ffffffffffffffff811115610834575f5ffd5b86016060818903601f19011215610849575f5ffd5b6108516106c2565b602082013560028110610862575f5ffd5b8152604082013567ffffffffffffffff81111561087d575f5ffd5b61088c8a602083860101610762565b6020830152506060820135915081151582146108a6575f5ffd5b6040810191909152835260209283019201610816565b5095945050505050565b5f82601f8301126108d5575f5ffd5b81356108e36107eb8261073f565b8082825260208201915060208360051b860101925085831115610904575f5ffd5b602085015b838110156108bc57803567ffffffffffffffff811115610927575f5ffd5b8601603f81018813610937575f5ffd5b60208101356109486107eb8261073f565b808282526020820191506020808460051b8601010192508a83111561096b575f5ffd5b604084015b838110156109ac57803567ffffffffffffffff81111561098e575f5ffd5b61099d8d604088840101610762565b84525060209283019201610970565b5086525050602093840193919091019050610909565b5f5f5f606084860312156109d4575f5ffd5b833567ffffffffffffffff8111156109ea575f5ffd5b8401608081870312156109fb575f5ffd5b610a036106eb565b813573ffffffffffffffffffffffffffffffffffffffff81168114610a26575f5ffd5b81526020828101359082015260408201357fffffffff0000000000000000000000000000000000000000000000000000000081168114610a64575f5ffd5b6040820152606082013567ffffffffffffffff811115610a82575f5ffd5b610a8e888285016107ce565b606083015250935050602084013567ffffffffffffffff811115610ab0575f5ffd5b610abc868287016108c6565b93969395505050506040919091013590565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156103e3576103e3610b17565b5f81518060208401855e5f93019283525090919050565b5f610b608285610b3e565b9283525050602001919050565b5f6100a7610b7b8386610b3e565b84610b3e565b7fffffffff00000000000000000000000000000000000000000000000000000000841681525f610bb7610b7b6004840186610b3e565b95945050505050565b634e487b7160e01b5f52602160045260245ffd5b5f82610bee57634e487b7160e01b5f52601260045260245ffd5b500690565b818103818111156103e3576103e3610b1756fea264697066735822122041c689a80661212112e3fbf381b7d34afdaa30aa22cea997acd8b19bbe4d093864736f6c634300081c0033",
"linkReferences": {},
"deployedLinkReferences": {},
"immutableReferences": {},
"inputSourceName": "project/contracts/dynamic-calls/DynamicCallEncoder.sol",
"buildInfoId": "167571dafa48e7ff636310c6c9f0fc8e202e44bc"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../build-info/167571dafa48e7ff636310c6c9f0fc8e202e44bc.json"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"_format": "hh3-artifact-1",
"contractName": "ICreateX",
"sourceName": "contracts/interfaces/ICreateX.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newContract",
"type": "address"
}
],
"name": "ContractCreation",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "initCode",
"type": "bytes"
}
],
"name": "deployCreate3",
"outputs": [
{
"internalType": "address",
"name": "newContract",
"type": "address"
}
],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {},
"immutableReferences": {},
"inputSourceName": "project/contracts/interfaces/ICreateX.sol",
"buildInfoId": "167571dafa48e7ff636310c6c9f0fc8e202e44bc"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../build-info/167571dafa48e7ff636310c6c9f0fc8e202e44bc.json"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"_format": "hh3-artifact-1",
"contractName": "ICreateX",
"sourceName": "contracts/interfaces/ICreateX.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "newContract",
"type": "address"
}
],
"name": "ContractCreation",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "initCode",
"type": "bytes"
}
],
"name": "deployCreate3",
"outputs": [
{
"internalType": "address",
"name": "newContract",
"type": "address"
}
],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"linkReferences": {},
"deployedLinkReferences": {},
"immutableReferences": {},
"inputSourceName": "project/contracts/interfaces/ICreateX.sol",
"buildInfoId": "167571dafa48e7ff636310c6c9f0fc8e202e44bc"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"_format": "hh-sol-dbg-1",
"buildInfo": "../build-info/167571dafa48e7ff636310c6c9f0fc8e202e44bc.json"
}
Loading
Loading