diff --git a/contracts/local-deployments-artifacts/executeAllOpcodes.ts b/contracts/local-deployments-artifacts/executeAllOpcodes.ts index e688dc15..c688ef5c 100644 --- a/contracts/local-deployments-artifacts/executeAllOpcodes.ts +++ b/contracts/local-deployments-artifacts/executeAllOpcodes.ts @@ -15,7 +15,7 @@ */ import { getRequiredEnvVar } from "../common/helpers/environment"; -import { ethers } from "ethers"; +import { TransactionReceipt, ethers } from "ethers"; import { abi as opcodeTesterAbi } from "./static-artifacts/OpcodeTester.json"; async function main() { @@ -31,9 +31,19 @@ async function main() { for (let i = 1; i <= executionRunCount; i++) { console.log(`Executing all opcodes for runs ${i} of ${executionRunCount}`); + const valueBeforeExecution = await opcodeTester.rollingBlockDetailComputations(); const executeTx = await opcodeTester.executeAllOpcodes({ gasLimit: 5_000_000 }); - const receipt = await executeTx.wait(); - console.log(` - Gas used in run: ${receipt?.gasUsed}`); + const receipt: TransactionReceipt = await executeTx.wait(); + const valueAfterExecution = await opcodeTester.rollingBlockDetailComputations(); + + if (valueBeforeExecution == valueAfterExecution) { + throw "No state changes were persisted!"; + } + + console.log(` - Gas used in run: ${receipt?.gasUsed} at block number=${receipt?.blockNumber}`); + console.log( + ` - State variable rollingBlockDetailComputations changed from=${valueBeforeExecution} to=${valueAfterExecution} `, + ); } } diff --git a/contracts/local-deployments-artifacts/static-artifacts/OpcodeTester.json b/contracts/local-deployments-artifacts/static-artifacts/OpcodeTester.json index 9e5ee802..1c899d26 100644 --- a/contracts/local-deployments-artifacts/static-artifacts/OpcodeTester.json +++ b/contracts/local-deployments-artifacts/static-artifacts/OpcodeTester.json @@ -40,6 +40,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "rollingBlockDetailComputations", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "yulContract", @@ -54,8 +67,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161115a38038061115a83398101604081905261002f91610054565b600180546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6110c7806100936000396000f3fe6080604052600436106100345760003560e01c8063690696f0146100395780638f0a4cc414610043578063a147ee551461009a575b600080fd5b6100416100d5565b005b34801561004f57600080fd5b506001546100709073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100a657600080fd5b506100c76100b5366004610dc8565b60006020819052908152604090205481565b604051908152602001610091565b6100dd6100ef565b6100e561063c565b6100ed610c44565b565b60006040516100fd90610dbc565b604051809103906000f080158015610119573d6000803e3d6000fd5b5060408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb3907bb900000000000000000000000000000000000000000000000000000000179052905191925060009173ffffffffffffffffffffffffffffffffffffffff84169161019991610e41565b6000604051808303816000865af19150503d80600081146101d6576040519150601f19603f3d011682016040523d82523d6000602084013e6101db565b606091505b50909150508015610272576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4572726f723a2065787465726e616c52657665727420646964206e6f7420726560448201527f766572740000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb3907bb900000000000000000000000000000000000000000000000000000000179052905173ffffffffffffffffffffffffffffffffffffffff8416916102eb91610e41565b600060405180830381855afa9150503d8060008114610326576040519150601f19603f3d011682016040523d82523d6000602084013e61032b565b606091505b509091505080156103bd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4572726f723a2065787465726e616c52657665727420646964206e6f7420726560448201527f76657274000000000000000000000000000000000000000000000000000000006064820152608401610269565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe32689ab00000000000000000000000000000000000000000000000000000000179052905173ffffffffffffffffffffffffffffffffffffffff84169161043691610e41565b6000604051808303816000865af19150503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050809150508061050b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4572726f723a2072657665727463616c6c6d65546f53656c664465737472756360448201527f74204661696c65640000000000000000000000000000000000000000000000006064820152608401610269565b60015460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa378ff3e00000000000000000000000000000000000000000000000000000000179052905173ffffffffffffffffffffffffffffffffffffffff909216916105899190610e41565b6000604051808303816000865af19150503d80600081146105c6576040519150601f19603f3d011682016040523d82523d6000602084013e6105cb565b606091505b50508091505080610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f65786563757465416c6c206f6e2079756c436f6e7472616374204661696c65646044820152606401610269565b5050565b60005b600b8161ffff16116106d4577fffff00000000000000000000000000000000000000000000000000000000000060f082901b1660009081526020819052604090205461068c906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b166000908152602081905260409020556106cd600182610e95565b905061063f565b5060105b601d8161ffff161161076d577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610725906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610766600182610e95565b90506106d8565b507e2000000000000000000000000000000000000000000000000000000000000060009081526020527f0e50cdfef060ff4ae83dba37f786195c629c8b0ccdbe7a22b3da87f8ab7ae239546107c3906001610e7c565b7e2000000000000000000000000000000000000000000000000000000000000060009081526020527f0e50cdfef060ff4ae83dba37f786195c629c8b0ccdbe7a22b3da87f8ab7ae2395560305b60488161ffff16116108a5577fffff00000000000000000000000000000000000000000000000000000000000060f082901b1660009081526020819052604090205461085d906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b1660009081526020819052604090205561089e600182610e95565b9050610810565b5060505b605b8161ffff161161093e577fffff00000000000000000000000000000000000000000000000000000000000060f082901b166000908152602081905260409020546108f6906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610937600182610e95565b90506108a9565b5060605b609f8161ffff16116109d7577fffff00000000000000000000000000000000000000000000000000000000000060f082901b1660009081526020819052604090205461098f906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b166000908152602081905260409020556109d0600182610e95565b9050610942565b5060a05b60a48161ffff1611610a70577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610a28906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610a69600182610e95565b90506109db565b5060f05b60f58161ffff1611610b09577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610ac1906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610b02600182610e95565b9050610a74565b507efa00000000000000000000000000000000000000000000000000000000000060009081526020527f5a4c6900172b15702052e06818580b12ea1fe9c2b87992d0d87c54d1018b333354610b5f906001610e7c565b7efa00000000000000000000000000000000000000000000000000000000000060009081526020527f5a4c6900172b15702052e06818580b12ea1fe9c2b87992d0d87c54d1018b33335560fd5b60ff8161ffff1611610c41577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610bf9906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610c3a600182610e95565b9050610bac565b50565b600254600090610c55600143610eb7565b604080516020810193909352904090820152434060608201524860808201524660a08201524160c08201524460e08201526101000160405160208183030381529060405290506000454344425a6040805160208101969096528501939093526060840191909152608083015260a082015260c001604051602081830303815290604052905060008036336000357fffffffff0000000000000000000000000000000000000000000000000000000016343a32604051602001610d1d9796959493929190610eca565b60405160208183030381529060405290508282604051602001610d41929190610f75565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610d7e918390602001610f75565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120600255505050565b60ff80610f9383390190565b600060208284031215610dda57600080fd5b81357fffff00000000000000000000000000000000000000000000000000000000000081168114610e0a57600080fd5b9392505050565b6000815160005b81811015610e325760208185018101518683015201610e18565b50600093019283525090919050565b6000610e0a8284610e11565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610e8f57610e8f610e4d565b92915050565b61ffff818116838216019080821115610eb057610eb0610e4d565b5092915050565b81810381811115610e8f57610e8f610e4d565b60c081528660c0820152868860e0830137600060e088830181019190915273ffffffffffffffffffffffffffffffffffffffff96871660208301527fffffffff000000000000000000000000000000000000000000000000000000009590951660408201526060810193909352608083019190915290921660a0830152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b6000610f8a610f848386610e11565b84610e11565b94935050505056fe6080604052348015600f57600080fd5b5060e18061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c8063b3907bb9146037578063e32689ab14603f575b600080fd5b603d6045565b005b603d6000ff5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4f50434f44452046440000000000000000000000000000000000000000000000604482015260640160405180910390fdfea2646970667358221220868db823990a509cd2746b1f1a6273241894b2e33cbc6954461aa8d5dbdc6b2b64736f6c63430008130033a2646970667358221220fe695414ae5491baf8ef36c5bef30a8db5b9e98b8c6d4739af973b2e3112c4a864736f6c63430008130033", - "deployedBytecode": "0x6080604052600436106100345760003560e01c8063690696f0146100395780638f0a4cc414610043578063a147ee551461009a575b600080fd5b6100416100d5565b005b34801561004f57600080fd5b506001546100709073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100a657600080fd5b506100c76100b5366004610dc8565b60006020819052908152604090205481565b604051908152602001610091565b6100dd6100ef565b6100e561063c565b6100ed610c44565b565b60006040516100fd90610dbc565b604051809103906000f080158015610119573d6000803e3d6000fd5b5060408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb3907bb900000000000000000000000000000000000000000000000000000000179052905191925060009173ffffffffffffffffffffffffffffffffffffffff84169161019991610e41565b6000604051808303816000865af19150503d80600081146101d6576040519150601f19603f3d011682016040523d82523d6000602084013e6101db565b606091505b50909150508015610272576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4572726f723a2065787465726e616c52657665727420646964206e6f7420726560448201527f766572740000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb3907bb900000000000000000000000000000000000000000000000000000000179052905173ffffffffffffffffffffffffffffffffffffffff8416916102eb91610e41565b600060405180830381855afa9150503d8060008114610326576040519150601f19603f3d011682016040523d82523d6000602084013e61032b565b606091505b509091505080156103bd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4572726f723a2065787465726e616c52657665727420646964206e6f7420726560448201527f76657274000000000000000000000000000000000000000000000000000000006064820152608401610269565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe32689ab00000000000000000000000000000000000000000000000000000000179052905173ffffffffffffffffffffffffffffffffffffffff84169161043691610e41565b6000604051808303816000865af19150503d8060008114610473576040519150601f19603f3d011682016040523d82523d6000602084013e610478565b606091505b5050809150508061050b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4572726f723a2072657665727463616c6c6d65546f53656c664465737472756360448201527f74204661696c65640000000000000000000000000000000000000000000000006064820152608401610269565b60015460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa378ff3e00000000000000000000000000000000000000000000000000000000179052905173ffffffffffffffffffffffffffffffffffffffff909216916105899190610e41565b6000604051808303816000865af19150503d80600081146105c6576040519150601f19603f3d011682016040523d82523d6000602084013e6105cb565b606091505b50508091505080610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f65786563757465416c6c206f6e2079756c436f6e7472616374204661696c65646044820152606401610269565b5050565b60005b600b8161ffff16116106d4577fffff00000000000000000000000000000000000000000000000000000000000060f082901b1660009081526020819052604090205461068c906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b166000908152602081905260409020556106cd600182610e95565b905061063f565b5060105b601d8161ffff161161076d577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610725906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610766600182610e95565b90506106d8565b507e2000000000000000000000000000000000000000000000000000000000000060009081526020527f0e50cdfef060ff4ae83dba37f786195c629c8b0ccdbe7a22b3da87f8ab7ae239546107c3906001610e7c565b7e2000000000000000000000000000000000000000000000000000000000000060009081526020527f0e50cdfef060ff4ae83dba37f786195c629c8b0ccdbe7a22b3da87f8ab7ae2395560305b60488161ffff16116108a5577fffff00000000000000000000000000000000000000000000000000000000000060f082901b1660009081526020819052604090205461085d906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b1660009081526020819052604090205561089e600182610e95565b9050610810565b5060505b605b8161ffff161161093e577fffff00000000000000000000000000000000000000000000000000000000000060f082901b166000908152602081905260409020546108f6906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610937600182610e95565b90506108a9565b5060605b609f8161ffff16116109d7577fffff00000000000000000000000000000000000000000000000000000000000060f082901b1660009081526020819052604090205461098f906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b166000908152602081905260409020556109d0600182610e95565b9050610942565b5060a05b60a48161ffff1611610a70577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610a28906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610a69600182610e95565b90506109db565b5060f05b60f58161ffff1611610b09577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610ac1906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610b02600182610e95565b9050610a74565b507efa00000000000000000000000000000000000000000000000000000000000060009081526020527f5a4c6900172b15702052e06818580b12ea1fe9c2b87992d0d87c54d1018b333354610b5f906001610e7c565b7efa00000000000000000000000000000000000000000000000000000000000060009081526020527f5a4c6900172b15702052e06818580b12ea1fe9c2b87992d0d87c54d1018b33335560fd5b60ff8161ffff1611610c41577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610bf9906001610e7c565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610c3a600182610e95565b9050610bac565b50565b600254600090610c55600143610eb7565b604080516020810193909352904090820152434060608201524860808201524660a08201524160c08201524460e08201526101000160405160208183030381529060405290506000454344425a6040805160208101969096528501939093526060840191909152608083015260a082015260c001604051602081830303815290604052905060008036336000357fffffffff0000000000000000000000000000000000000000000000000000000016343a32604051602001610d1d9796959493929190610eca565b60405160208183030381529060405290508282604051602001610d41929190610f75565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610d7e918390602001610f75565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120600255505050565b60ff80610f9383390190565b600060208284031215610dda57600080fd5b81357fffff00000000000000000000000000000000000000000000000000000000000081168114610e0a57600080fd5b9392505050565b6000815160005b81811015610e325760208185018101518683015201610e18565b50600093019283525090919050565b6000610e0a8284610e11565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610e8f57610e8f610e4d565b92915050565b61ffff818116838216019080821115610eb057610eb0610e4d565b5092915050565b81810381811115610e8f57610e8f610e4d565b60c081528660c0820152868860e0830137600060e088830181019190915273ffffffffffffffffffffffffffffffffffffffff96871660208301527fffffffff000000000000000000000000000000000000000000000000000000009590951660408201526060810193909352608083019190915290921660a0830152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b6000610f8a610f848386610e11565b84610e11565b94935050505056fe6080604052348015600f57600080fd5b5060e18061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c8063b3907bb9146037578063e32689ab14603f575b600080fd5b603d6045565b005b603d6000ff5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4f50434f44452046440000000000000000000000000000000000000000000000604482015260640160405180910390fdfea2646970667358221220868db823990a509cd2746b1f1a6273241894b2e33cbc6954461aa8d5dbdc6b2b64736f6c63430008130033a2646970667358221220fe695414ae5491baf8ef36c5bef30a8db5b9e98b8c6d4739af973b2e3112c4a864736f6c63430008130033", + "bytecode": "0x608060405234801561001057600080fd5b5060405161117b38038061117b83398101604081905261002f91610054565b600180546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6110e8806100936000396000f3fe60806040526004361061003f5760003560e01c80635f854fdb14610044578063690696f01461006d5780638f0a4cc414610077578063a147ee55146100c9575b600080fd5b34801561005057600080fd5b5061005a60025481565b6040519081526020015b60405180910390f35b6100756100f6565b005b34801561008357600080fd5b506001546100a49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610064565b3480156100d557600080fd5b5061005a6100e4366004610de9565b60006020819052908152604090205481565b6100fe610110565b61010661065d565b61010e610c65565b565b600060405161011e90610ddd565b604051809103906000f08015801561013a573d6000803e3d6000fd5b5060408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb3907bb900000000000000000000000000000000000000000000000000000000179052905191925060009173ffffffffffffffffffffffffffffffffffffffff8416916101ba91610e62565b6000604051808303816000865af19150503d80600081146101f7576040519150601f19603f3d011682016040523d82523d6000602084013e6101fc565b606091505b50909150508015610293576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4572726f723a2065787465726e616c52657665727420646964206e6f7420726560448201527f766572740000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb3907bb900000000000000000000000000000000000000000000000000000000179052905173ffffffffffffffffffffffffffffffffffffffff84169161030c91610e62565b600060405180830381855afa9150503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b509091505080156103de576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4572726f723a2065787465726e616c52657665727420646964206e6f7420726560448201527f7665727400000000000000000000000000000000000000000000000000000000606482015260840161028a565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe32689ab00000000000000000000000000000000000000000000000000000000179052905173ffffffffffffffffffffffffffffffffffffffff84169161045791610e62565b6000604051808303816000865af19150503d8060008114610494576040519150601f19603f3d011682016040523d82523d6000602084013e610499565b606091505b5050809150508061052c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4572726f723a2072657665727463616c6c6d65546f53656c664465737472756360448201527f74204661696c6564000000000000000000000000000000000000000000000000606482015260840161028a565b60015460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa378ff3e00000000000000000000000000000000000000000000000000000000179052905173ffffffffffffffffffffffffffffffffffffffff909216916105aa9190610e62565b6000604051808303816000865af19150503d80600081146105e7576040519150601f19603f3d011682016040523d82523d6000602084013e6105ec565b606091505b50508091505080610659576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f65786563757465416c6c206f6e2079756c436f6e7472616374204661696c6564604482015260640161028a565b5050565b60005b600b8161ffff16116106f5577fffff00000000000000000000000000000000000000000000000000000000000060f082901b166000908152602081905260409020546106ad906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b166000908152602081905260409020556106ee600182610eb6565b9050610660565b5060105b601d8161ffff161161078e577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610746906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610787600182610eb6565b90506106f9565b507e2000000000000000000000000000000000000000000000000000000000000060009081526020527f0e50cdfef060ff4ae83dba37f786195c629c8b0ccdbe7a22b3da87f8ab7ae239546107e4906001610e9d565b7e2000000000000000000000000000000000000000000000000000000000000060009081526020527f0e50cdfef060ff4ae83dba37f786195c629c8b0ccdbe7a22b3da87f8ab7ae2395560305b60488161ffff16116108c6577fffff00000000000000000000000000000000000000000000000000000000000060f082901b1660009081526020819052604090205461087e906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b166000908152602081905260409020556108bf600182610eb6565b9050610831565b5060505b605b8161ffff161161095f577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610917906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610958600182610eb6565b90506108ca565b5060605b609f8161ffff16116109f8577fffff00000000000000000000000000000000000000000000000000000000000060f082901b166000908152602081905260409020546109b0906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b166000908152602081905260409020556109f1600182610eb6565b9050610963565b5060a05b60a48161ffff1611610a91577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610a49906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610a8a600182610eb6565b90506109fc565b5060f05b60f58161ffff1611610b2a577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610ae2906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610b23600182610eb6565b9050610a95565b507efa00000000000000000000000000000000000000000000000000000000000060009081526020527f5a4c6900172b15702052e06818580b12ea1fe9c2b87992d0d87c54d1018b333354610b80906001610e9d565b7efa00000000000000000000000000000000000000000000000000000000000060009081526020527f5a4c6900172b15702052e06818580b12ea1fe9c2b87992d0d87c54d1018b33335560fd5b60ff8161ffff1611610c62577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610c1a906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610c5b600182610eb6565b9050610bcd565b50565b600254600090610c76600143610ed8565b604080516020810193909352904090820152434060608201524860808201524660a08201524160c08201524460e08201526101000160405160208183030381529060405290506000454344425a6040805160208101969096528501939093526060840191909152608083015260a082015260c001604051602081830303815290604052905060008036336000357fffffffff0000000000000000000000000000000000000000000000000000000016343a32604051602001610d3e9796959493929190610eeb565b60405160208183030381529060405290508282604051602001610d62929190610f96565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610d9f918390602001610f96565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120600255505050565b60ff80610fb483390190565b600060208284031215610dfb57600080fd5b81357fffff00000000000000000000000000000000000000000000000000000000000081168114610e2b57600080fd5b9392505050565b6000815160005b81811015610e535760208185018101518683015201610e39565b50600093019283525090919050565b6000610e2b8284610e32565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610eb057610eb0610e6e565b92915050565b61ffff818116838216019080821115610ed157610ed1610e6e565b5092915050565b81810381811115610eb057610eb0610e6e565b60c081528660c0820152868860e0830137600060e088830181019190915273ffffffffffffffffffffffffffffffffffffffff96871660208301527fffffffff000000000000000000000000000000000000000000000000000000009590951660408201526060810193909352608083019190915290921660a0830152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b6000610fab610fa58386610e32565b84610e32565b94935050505056fe6080604052348015600f57600080fd5b5060e18061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c8063b3907bb9146037578063e32689ab14603f575b600080fd5b603d6045565b005b603d6000ff5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4f50434f44452046440000000000000000000000000000000000000000000000604482015260640160405180910390fdfea2646970667358221220868db823990a509cd2746b1f1a6273241894b2e33cbc6954461aa8d5dbdc6b2b64736f6c63430008130033a26469706673582212202f225a9e3febbcd8ca7b1c700b007c970abb845d9dd54dcb562b8d7d5d4fd44764736f6c63430008130033", + "deployedBytecode": "0x60806040526004361061003f5760003560e01c80635f854fdb14610044578063690696f01461006d5780638f0a4cc414610077578063a147ee55146100c9575b600080fd5b34801561005057600080fd5b5061005a60025481565b6040519081526020015b60405180910390f35b6100756100f6565b005b34801561008357600080fd5b506001546100a49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610064565b3480156100d557600080fd5b5061005a6100e4366004610de9565b60006020819052908152604090205481565b6100fe610110565b61010661065d565b61010e610c65565b565b600060405161011e90610ddd565b604051809103906000f08015801561013a573d6000803e3d6000fd5b5060408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb3907bb900000000000000000000000000000000000000000000000000000000179052905191925060009173ffffffffffffffffffffffffffffffffffffffff8416916101ba91610e62565b6000604051808303816000865af19150503d80600081146101f7576040519150601f19603f3d011682016040523d82523d6000602084013e6101fc565b606091505b50909150508015610293576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4572726f723a2065787465726e616c52657665727420646964206e6f7420726560448201527f766572740000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb3907bb900000000000000000000000000000000000000000000000000000000179052905173ffffffffffffffffffffffffffffffffffffffff84169161030c91610e62565b600060405180830381855afa9150503d8060008114610347576040519150601f19603f3d011682016040523d82523d6000602084013e61034c565b606091505b509091505080156103de576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4572726f723a2065787465726e616c52657665727420646964206e6f7420726560448201527f7665727400000000000000000000000000000000000000000000000000000000606482015260840161028a565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe32689ab00000000000000000000000000000000000000000000000000000000179052905173ffffffffffffffffffffffffffffffffffffffff84169161045791610e62565b6000604051808303816000865af19150503d8060008114610494576040519150601f19603f3d011682016040523d82523d6000602084013e610499565b606091505b5050809150508061052c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f4572726f723a2072657665727463616c6c6d65546f53656c664465737472756360448201527f74204661696c6564000000000000000000000000000000000000000000000000606482015260840161028a565b60015460408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa378ff3e00000000000000000000000000000000000000000000000000000000179052905173ffffffffffffffffffffffffffffffffffffffff909216916105aa9190610e62565b6000604051808303816000865af19150503d80600081146105e7576040519150601f19603f3d011682016040523d82523d6000602084013e6105ec565b606091505b50508091505080610659576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f65786563757465416c6c206f6e2079756c436f6e7472616374204661696c6564604482015260640161028a565b5050565b60005b600b8161ffff16116106f5577fffff00000000000000000000000000000000000000000000000000000000000060f082901b166000908152602081905260409020546106ad906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b166000908152602081905260409020556106ee600182610eb6565b9050610660565b5060105b601d8161ffff161161078e577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610746906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610787600182610eb6565b90506106f9565b507e2000000000000000000000000000000000000000000000000000000000000060009081526020527f0e50cdfef060ff4ae83dba37f786195c629c8b0ccdbe7a22b3da87f8ab7ae239546107e4906001610e9d565b7e2000000000000000000000000000000000000000000000000000000000000060009081526020527f0e50cdfef060ff4ae83dba37f786195c629c8b0ccdbe7a22b3da87f8ab7ae2395560305b60488161ffff16116108c6577fffff00000000000000000000000000000000000000000000000000000000000060f082901b1660009081526020819052604090205461087e906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b166000908152602081905260409020556108bf600182610eb6565b9050610831565b5060505b605b8161ffff161161095f577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610917906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610958600182610eb6565b90506108ca565b5060605b609f8161ffff16116109f8577fffff00000000000000000000000000000000000000000000000000000000000060f082901b166000908152602081905260409020546109b0906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b166000908152602081905260409020556109f1600182610eb6565b9050610963565b5060a05b60a48161ffff1611610a91577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610a49906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610a8a600182610eb6565b90506109fc565b5060f05b60f58161ffff1611610b2a577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610ae2906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610b23600182610eb6565b9050610a95565b507efa00000000000000000000000000000000000000000000000000000000000060009081526020527f5a4c6900172b15702052e06818580b12ea1fe9c2b87992d0d87c54d1018b333354610b80906001610e9d565b7efa00000000000000000000000000000000000000000000000000000000000060009081526020527f5a4c6900172b15702052e06818580b12ea1fe9c2b87992d0d87c54d1018b33335560fd5b60ff8161ffff1611610c62577fffff00000000000000000000000000000000000000000000000000000000000060f082901b16600090815260208190526040902054610c1a906001610e9d565b7fffff00000000000000000000000000000000000000000000000000000000000060f083901b16600090815260208190526040902055610c5b600182610eb6565b9050610bcd565b50565b600254600090610c76600143610ed8565b604080516020810193909352904090820152434060608201524860808201524660a08201524160c08201524460e08201526101000160405160208183030381529060405290506000454344425a6040805160208101969096528501939093526060840191909152608083015260a082015260c001604051602081830303815290604052905060008036336000357fffffffff0000000000000000000000000000000000000000000000000000000016343a32604051602001610d3e9796959493929190610eeb565b60405160208183030381529060405290508282604051602001610d62929190610f96565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610d9f918390602001610f96565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120600255505050565b60ff80610fb483390190565b600060208284031215610dfb57600080fd5b81357fffff00000000000000000000000000000000000000000000000000000000000081168114610e2b57600080fd5b9392505050565b6000815160005b81811015610e535760208185018101518683015201610e39565b50600093019283525090919050565b6000610e2b8284610e32565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610eb057610eb0610e6e565b92915050565b61ffff818116838216019080821115610ed157610ed1610e6e565b5092915050565b81810381811115610eb057610eb0610e6e565b60c081528660c0820152868860e0830137600060e088830181019190915273ffffffffffffffffffffffffffffffffffffffff96871660208301527fffffffff000000000000000000000000000000000000000000000000000000009590951660408201526060810193909352608083019190915290921660a0830152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b6000610fab610fa58386610e32565b84610e32565b94935050505056fe6080604052348015600f57600080fd5b5060e18061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c8063b3907bb9146037578063e32689ab14603f575b600080fd5b603d6045565b005b603d6000ff5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4f50434f44452046440000000000000000000000000000000000000000000000604482015260640160405180910390fdfea2646970667358221220868db823990a509cd2746b1f1a6273241894b2e33cbc6954461aa8d5dbdc6b2b64736f6c63430008130033a26469706673582212202f225a9e3febbcd8ca7b1c700b007c970abb845d9dd54dcb562b8d7d5d4fd44764736f6c63430008130033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/contracts/src/_testing/mocks/bridging/TestTokenBridge.sol b/contracts/src/_testing/mocks/bridging/TestTokenBridge.sol index 87f4c280..fb2e3e31 100644 --- a/contracts/src/_testing/mocks/bridging/TestTokenBridge.sol +++ b/contracts/src/_testing/mocks/bridging/TestTokenBridge.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.19; import { TokenBridge } from "../../../bridging/token/TokenBridge.sol"; - /// @custom:oz-upgrades-unsafe-allow missing-initializer +/// @custom:oz-upgrades-unsafe-allow missing-initializer contract TestTokenBridge is TokenBridge { function testReturnDataToString(bytes memory _data) public pure returns (string memory) { return _returnDataToString(_data); diff --git a/contracts/src/_testing/unit/messaging/TestL2MessageService.sol b/contracts/src/_testing/unit/messaging/TestL2MessageService.sol index 32e8d712..993b585e 100644 --- a/contracts/src/_testing/unit/messaging/TestL2MessageService.sol +++ b/contracts/src/_testing/unit/messaging/TestL2MessageService.sol @@ -3,7 +3,7 @@ pragma solidity 0.8.19; import { L2MessageService } from "../../../messaging/l2/L2MessageService.sol"; - /// @custom:oz-upgrades-unsafe-allow missing-initializer +/// @custom:oz-upgrades-unsafe-allow missing-initializer contract TestL2MessageService is L2MessageService { address public originalSender; bool private reentryDone; diff --git a/contracts/src/_testing/unit/opcodes/OpcodeTester.sol b/contracts/src/_testing/unit/opcodes/OpcodeTester.sol index 8eb1b100..a4bccc11 100644 --- a/contracts/src/_testing/unit/opcodes/OpcodeTester.sol +++ b/contracts/src/_testing/unit/opcodes/OpcodeTester.sol @@ -6,7 +6,7 @@ import { ErrorAndDestructionTesting } from "./ErrorAndDestructionTesting.sol"; contract OpcodeTester { mapping(bytes2 => uint256) public opcodeExecutions; address public yulContract; - bytes32 rollingBlockDetailComputations; + bytes32 public rollingBlockDetailComputations; // The opcodes are logged here for completeness sake even though not used. // NOTE: For looping we make it 2 bytes instead of one, so the real value is actually missing the 00 from 0x0001 (0x01) etc. diff --git a/docker/config/linea-local-dev-genesis-PoA-besu.json b/docker/config/linea-local-dev-genesis-PoA-besu.json index ce851a3b..6880cd5b 100644 --- a/docker/config/linea-local-dev-genesis-PoA-besu.json +++ b/docker/config/linea-local-dev-genesis-PoA-besu.json @@ -38,7 +38,7 @@ "balance": "90000000000000000000001", "@WARNING": "FOR LOCAL DEV ONLY - DO NOT REUSE THESE KEYS ELSEWHERE", "@privateKey": "8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63", - "@comment": "account 1, can be used as end user" + "@comment": "Used for OPCODE testing, do not use elsewhere" }, "627306090abaB3A6e1400e9345bC60c78a8BEf57": { "balance": "90000000000000000000002", diff --git a/docker/config/linea-local-dev-genesis-PoA.json b/docker/config/linea-local-dev-genesis-PoA.json index 45ff305f..32a4293f 100644 --- a/docker/config/linea-local-dev-genesis-PoA.json +++ b/docker/config/linea-local-dev-genesis-PoA.json @@ -36,7 +36,7 @@ "fe3b557e8fb62b89f4916b721be55ceb828dbd73": { "@WARNING": "FOR LOCAL DEV ONLY - DO NOT REUSE THESE KEYS ELSEWHERE", "privateKey": "8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63", - "comment": "account 1, can be used as end user", + "comment": "Used for OPCODE testing, do not use elsewhere", "balance": "90000000000000000000001" }, "627306090abaB3A6e1400e9345bC60c78a8BEf57": { diff --git a/makefile-contracts.mk b/makefile-contracts.mk index bb15c1a9..6e9e241a 100644 --- a/makefile-contracts.mk +++ b/makefile-contracts.mk @@ -108,17 +108,17 @@ deploy-contracts: deploy-l2-evm-opcode-tester: # WARNING: FOR LOCAL DEV ONLY - DO NOT REUSE THESE KEYS ELSEWHERE cd contracts/; \ - PRIVATE_KEY=0x1dd171cec7e2995408b5513004e8207fe88d6820aeff0d82463b3e41df251aae \ + PRIVATE_KEY=0x8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63 \ RPC_URL=http:\\localhost:8545/ \ npx ts-node local-deployments-artifacts/deployLondonEvmTestingFramework.ts -evm-opcode-tester-execute-all-opcodes: OPCODE_TEST_CONTRACT_ADDRESS:=0x997FC3aF1F193Cbdc013060076c67A13e218980e +evm-opcode-tester-execute-all-opcodes: OPCODE_TEST_CONTRACT_ADDRESS:=0xa50a51c09a5c451C52BB714527E1974b686D8e77 evm-opcode-tester-execute-all-opcodes: # WARNING: FOR LOCAL DEV ONLY - DO NOT REUSE THESE KEYS ELSEWHERE cd contracts/; \ OPCODE_TEST_CONTRACT_ADDRESS=$(OPCODE_TEST_CONTRACT_ADDRESS) \ NUMBER_OF_RUNS=3 \ - PRIVATE_KEY=0x1dd171cec7e2995408b5513004e8207fe88d6820aeff0d82463b3e41df251aae \ + PRIVATE_KEY=0x8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63 \ RPC_URL=http:\\localhost:8545/ \ npx ts-node local-deployments-artifacts/executeAllOpcodes.ts