{ "abi": [{ "type": "function", "name": "DECIMALS", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "baseFee", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "baseFeeScalar", "inputs": [], "outputs": [{ "name": "", "type": "uint32", "internalType": "uint32" }], "stateMutability": "view" }, { "type": "function", "name": "blobBaseFee", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "blobBaseFeeScalar", "inputs": [], "outputs": [{ "name": "", "type": "uint32", "internalType": "uint32" }], "stateMutability": "view" }, { "type": "function", "name": "decimals", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "pure" }, { "type": "function", "name": "gasPrice", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "getL1Fee", "inputs": [{ "name": "_data", "type": "bytes", "internalType": "bytes" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "getL1GasUsed", "inputs": [{ "name": "_data", "type": "bytes", "internalType": "bytes" }], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "isEcotone", "inputs": [], "outputs": [{ "name": "", "type": "bool", "internalType": "bool" }], "stateMutability": "view" }, { "type": "function", "name": "l1BaseFee", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "overhead", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "scalar", "inputs": [], "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }], "stateMutability": "view" }, { "type": "function", "name": "setEcotone", "inputs": [], "outputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "version", "inputs": [], "outputs": [{ "name": "", "type": "string", "internalType": "string" }], "stateMutability": "view" }], "bytecode": { "object": "0x608060405234801561001057600080fd5b50610fb5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806354fd4d5011610097578063de26c4a111610066578063de26c4a1146101da578063f45e65d8146101ed578063f8206140146101f5578063fe173b97146101cc57600080fd5b806354fd4d501461016657806368d5dca6146101af5780636ef25c3a146101cc578063c5985918146101d257600080fd5b8063313ce567116100d3578063313ce5671461012757806349948e0e1461012e5780634ef6e22414610141578063519b4bd31461015e57600080fd5b80630c18c162146100fa57806322b90ab3146101155780632e0f26251461011f575b600080fd5b6101026101fd565b6040519081526020015b60405180910390f35b61011d61031e565b005b610102600681565b6006610102565b61010261013c366004610b73565b610541565b60005461014e9060ff1681565b604051901515815260200161010c565b610102610565565b6101a26040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c9190610c42565b6101b76105c6565b60405163ffffffff909116815260200161010c565b48610102565b6101b761064b565b6101026101e8366004610b73565b6106ac565b610102610760565b610102610853565b6000805460ff1615610296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f47617350726963654f7261636c653a206f76657268656164282920697320646560448201527f707265636174656400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610cb5565b905090565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663e591b2826040518163ffffffff1660e01b8152600401602060405180830381865afa15801561037d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a19190610cce565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e2073657420697345636f746f6e6520666c6160648201527f6700000000000000000000000000000000000000000000000000000000000000608482015260a40161028d565b60005460ff1615610514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a2045636f746f6e6520616c72656164792060448201527f6163746976650000000000000000000000000000000000000000000000000000606482015260840161028d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000805460ff161561055c57610556826108b4565b92915050565b61055682610958565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16635cf249696040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff166368d5dca66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610627573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610d04565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663c59859186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610627573d6000803e3d6000fd5b6000806106b883610ab4565b60005490915060ff16156106cc5792915050565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f9190610cb5565b6107599082610d59565b9392505050565b6000805460ff16156107f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a207363616c61722829206973206465707260448201527f6563617465640000000000000000000000000000000000000000000000000000606482015260840161028d565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663f82061406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b6000806108c083610ab4565b905060006108cc610565565b6108d461064b565b6108df906010610d71565b63ffffffff166108ef9190610d9d565b905060006108fb610853565b6109036105c6565b63ffffffff166109139190610d9d565b905060006109218284610d59565b61092b9085610d9d565b90506109396006600a610efa565b610944906010610d9d565b61094e9082610f06565b9695505050505050565b60008061096483610ab4565b9050600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109eb9190610cb5565b6109f3610565565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190610cb5565b610a809085610d59565b610a8a9190610d9d565b610a949190610d9d565b9050610aa26006600a610efa565b610aac9082610f06565b949350505050565b80516000908190815b81811015610b3757848181518110610ad757610ad7610f41565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016600003610b1757610b10600484610d59565b9250610b25565b610b22601084610d59565b92505b80610b2f81610f70565b915050610abd565b50610aac82610440610d59565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610b8557600080fd5b813567ffffffffffffffff80821115610b9d57600080fd5b818401915084601f830112610bb157600080fd5b813581811115610bc357610bc3610b44565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610c0957610c09610b44565b81604052828152876020848701011115610c2257600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b81811015610c6f57858101830151858201604001528201610c53565b81811115610c81576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610cc757600080fd5b5051919050565b600060208284031215610ce057600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461075957600080fd5b600060208284031215610d1657600080fd5b815163ffffffff8116811461075957600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610d6c57610d6c610d2a565b500190565b600063ffffffff80831681851681830481118215151615610d9457610d94610d2a565b02949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610dd557610dd5610d2a565b500290565b600181815b80851115610e3357817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610e1957610e19610d2a565b80851615610e2657918102915b93841c9390800290610ddf565b509250929050565b600082610e4a57506001610556565b81610e5757506000610556565b8160018114610e6d5760028114610e7757610e93565b6001915050610556565b60ff841115610e8857610e88610d2a565b50506001821b610556565b5060208310610133831016604e8410600b8410161715610eb6575081810a610556565b610ec08383610dda565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610ef257610ef2610d2a565b029392505050565b60006107598383610e3b565b600082610f3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610fa157610fa1610d2a565b506001019056fea164736f6c634300080f000a", "sourceMap": "1153:5825:144:-:0;;;;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806354fd4d5011610097578063de26c4a111610066578063de26c4a1146101da578063f45e65d8146101ed578063f8206140146101f5578063fe173b97146101cc57600080fd5b806354fd4d501461016657806368d5dca6146101af5780636ef25c3a146101cc578063c5985918146101d257600080fd5b8063313ce567116100d3578063313ce5671461012757806349948e0e1461012e5780634ef6e22414610141578063519b4bd31461015e57600080fd5b80630c18c162146100fa57806322b90ab3146101155780632e0f26251461011f575b600080fd5b6101026101fd565b6040519081526020015b60405180910390f35b61011d61031e565b005b610102600681565b6006610102565b61010261013c366004610b73565b610541565b60005461014e9060ff1681565b604051901515815260200161010c565b610102610565565b6101a26040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60405161010c9190610c42565b6101b76105c6565b60405163ffffffff909116815260200161010c565b48610102565b6101b761064b565b6101026101e8366004610b73565b6106ac565b610102610760565b610102610853565b6000805460ff1615610296576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f47617350726963654f7261636c653a206f76657268656164282920697320646560448201527f707265636174656400000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610cb5565b905090565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663e591b2826040518163ffffffff1660e01b8152600401602060405180830381865afa15801561037d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a19190610cce565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f47617350726963654f7261636c653a206f6e6c7920746865206465706f73697460448201527f6f72206163636f756e742063616e2073657420697345636f746f6e6520666c6160648201527f6700000000000000000000000000000000000000000000000000000000000000608482015260a40161028d565b60005460ff1615610514576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a2045636f746f6e6520616c72656164792060448201527f6163746976650000000000000000000000000000000000000000000000000000606482015260840161028d565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b6000805460ff161561055c57610556826108b4565b92915050565b61055682610958565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16635cf249696040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff166368d5dca66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610627573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103199190610d04565b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663c59859186040518163ffffffff1660e01b8152600401602060405180830381865afa158015610627573d6000803e3d6000fd5b6000806106b883610ab4565b60005490915060ff16156106cc5792915050565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa15801561072b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f9190610cb5565b6107599082610d59565b9392505050565b6000805460ff16156107f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f47617350726963654f7261636c653a207363616c61722829206973206465707260448201527f6563617465640000000000000000000000000000000000000000000000000000606482015260840161028d565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff1663f82061406040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f5573d6000803e3d6000fd5b6000806108c083610ab4565b905060006108cc610565565b6108d461064b565b6108df906010610d71565b63ffffffff166108ef9190610d9d565b905060006108fb610853565b6109036105c6565b63ffffffff166109139190610d9d565b905060006109218284610d59565b61092b9085610d9d565b90506109396006600a610efa565b610944906010610d9d565b61094e9082610f06565b9695505050505050565b60008061096483610ab4565b9050600073420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16639e8c49666040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109eb9190610cb5565b6109f3610565565b73420000000000000000000000000000000000001573ffffffffffffffffffffffffffffffffffffffff16638b239f736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a769190610cb5565b610a809085610d59565b610a8a9190610d9d565b610a949190610d9d565b9050610aa26006600a610efa565b610aac9082610f06565b949350505050565b80516000908190815b81811015610b3757848181518110610ad757610ad7610f41565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016600003610b1757610b10600484610d59565b9250610b25565b610b22601084610d59565b92505b80610b2f81610f70565b915050610abd565b50610aac82610440610d59565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215610b8557600080fd5b813567ffffffffffffffff80821115610b9d57600080fd5b818401915084601f830112610bb157600080fd5b813581811115610bc357610bc3610b44565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610c0957610c09610b44565b81604052828152876020848701011115610c2257600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208083528351808285015260005b81811015610c6f57858101830151858201604001528201610c53565b81811115610c81576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600060208284031215610cc757600080fd5b5051919050565b600060208284031215610ce057600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461075957600080fd5b600060208284031215610d1657600080fd5b815163ffffffff8116811461075957600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610d6c57610d6c610d2a565b500190565b600063ffffffff80831681851681830481118215151615610d9457610d94610d2a565b02949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610dd557610dd5610d2a565b500290565b600181815b80851115610e3357817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610e1957610e19610d2a565b80851615610e2657918102915b93841c9390800290610ddf565b509250929050565b600082610e4a57506001610556565b81610e5757506000610556565b8160018114610e6d5760028114610e7757610e93565b6001915050610556565b60ff841115610e8857610e88610d2a565b50506001821b610556565b5060208310610133831016604e8410600b8410161715610eb6575081810a610556565b610ec08383610dda565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115610ef257610ef2610d2a565b029392505050565b60006107598383610e3b565b600082610f3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610fa157610fa1610d2a565b506001019056fea164736f6c634300080f000a", "sourceMap": "1153:5825:144:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2951:202;;;:::i;:::-;;;160:25:357;;;148:2;133:18;2951:202:144;;;;;;;;2115:338;;;:::i;:::-;;1249:36;;1284:1;1249:36;;4561:82;1284:1;4561:82;;1835:196;;;;;;:::i;:::-;;:::i;1486:21::-;;;;;;;;;;;;1535:14:357;;1528:22;1510:41;;1498:2;1483:18;1486:21:144;1370:187:357;3568:124:144;;;:::i;1355:40::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4267:141::-;;;:::i;:::-;;;2397:10:357;2385:23;;;2367:42;;2355:2;2340:18;4267:141:144;2223:192:357;2746:86:144;2812:13;2746:86;;4022:133;;;:::i;4975:280::-;;;;;;:::i;:::-;;:::i;3268:196::-;;;:::i;3790:130::-;;;:::i;2951:202::-;2992:7;3020:9;;;;3019:10;3011:63;;;;;;;2622:2:357;3011:63:144;;;2604:21:357;2661:2;2641:18;;;2634:30;2700:34;2680:18;;;2673:62;2771:10;2751:18;;;2744:38;2799:19;;3011:63:144;;;;;;;;;1455:42:199;3091:53:144;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3084:62;;2951:202;:::o;2115:338::-;1455:42:199;2191:57:144;;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2177:73;;:10;:73;;;2156:185;;;;;;;3538:2:357;2156:185:144;;;3520:21:357;3577:2;3557:18;;;3550:30;3616:34;3596:18;;;3589:62;3687:34;3667:18;;;3660:62;3759:3;3738:19;;;3731:32;3780:19;;2156:185:144;3336:469:357;2156:185:144;2359:9;;;;:18;2351:69;;;;;;;4012:2:357;2351:69:144;;;3994:21:357;4051:2;4031:18;;;4024:30;4090:34;4070:18;;;4063:62;4161:8;4141:18;;;4134:36;4187:19;;2351:69:144;3810:402:357;2351:69:144;2430:9;:16;;;;2442:4;2430:16;;;2115:338::o;1835:196::-;1896:7;1919:9;;;;1915:70;;;1951:23;1968:5;1951:16;:23::i;:::-;1944:30;1835:196;-1:-1:-1;;1835:196:144:o;1915:70::-;2001:23;2018:5;2001:16;:23::i;3568:124::-;3610:7;1455:42:199;3636:47:144;;;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4267:141;4317:6;1455:42:199;4342:57:144;;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4022:133::-;4068:6;1455:42:199;4093:53:144;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4975:280;5038:7;5057:17;5077:22;5093:5;5077:15;:22::i;:::-;5113:9;;5057:42;;-1:-1:-1;5113:9:144;;5109:56;;;5145:9;4975:280;-1:-1:-1;;4975:280:144:o;5109:56::-;1455:42:199;5193:53:144;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5181:67;;:9;:67;:::i;:::-;5174:74;4975:280;-1:-1:-1;;;4975:280:144:o;3268:196::-;3307:7;3335:9;;;;3334:10;3326:61;;;;;;;5026:2:357;3326:61:144;;;5008:21:357;5065:2;5045:18;;;5038:30;5104:34;5084:18;;;5077:62;5175:8;5155:18;;;5148:36;5201:19;;3326:61:144;4824:402:357;3326:61:144;1455:42:199;3404:51:144;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3790:130;3834:7;1455:42:199;3860:51:144;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6015:393;6084:7;6103:17;6123:22;6139:5;6123:15;:22::i;:::-;6103:42;;6155:21;6202:11;:9;:11::i;:::-;6179:15;:13;:15::i;:::-;:20;;6197:2;6179:20;:::i;:::-;:34;;;;;;:::i;:::-;6155:58;;6223:25;6273:13;:11;:13::i;:::-;6251:19;:17;:19::i;:::-;:35;;;;;;:::i;:::-;6223:63;-1:-1:-1;6296:11:144;6323:33;6223:63;6323:13;:33;:::i;:::-;6310:47;;:9;:47;:::i;:::-;6296:61;-1:-1:-1;6386:14:144;1284:1;6386:2;:14;:::i;:::-;6381:19;;:2;:19;:::i;:::-;6374:27;;:3;:27;:::i;:::-;6367:34;6015:393;-1:-1:-1;;;;;;6015:393:144:o;5468:351::-;5537:7;5556:17;5576:22;5592:5;5576:15;:22::i;:::-;5556:42;;5608:11;1455:42:199;5720:51:144;;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5694:11;:9;:11::i;:::-;1455:42:199;5635:53:144;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5623:67;;:9;:67;:::i;:::-;5622:83;;;;:::i;:::-;:151;;;;:::i;:::-;5608:165;-1:-1:-1;5797:14:144;1284:1;5797:2;:14;:::i;:::-;5790:22;;:3;:22;:::i;:::-;5783:29;5468:351;-1:-1:-1;;;;5468:351:144:o;6610:366::-;6741:12;;6678:7;;;;;6763:173;6787:6;6783:1;:10;6763:173;;;6818:5;6824:1;6818:8;;;;;;;;:::i;:::-;;;;;;;6830:1;6818:13;6814:112;;6851:10;6860:1;6851:10;;:::i;:::-;;;6814:112;;;6900:11;6909:2;6900:11;;:::i;:::-;;;6814:112;6795:3;;;;:::i;:::-;;;;6763:173;;;-1:-1:-1;6952:17:144;:5;6961:7;6952:17;:::i;196:184:357:-;248:77;245:1;238:88;345:4;342:1;335:15;369:4;366:1;359:15;385:980;453:6;506:2;494:9;485:7;481:23;477:32;474:52;;;522:1;519;512:12;474:52;562:9;549:23;591:18;632:2;624:6;621:14;618:34;;;648:1;645;638:12;618:34;686:6;675:9;671:22;661:32;;731:7;724:4;720:2;716:13;712:27;702:55;;753:1;750;743:12;702:55;789:2;776:16;811:2;807;804:10;801:36;;;817:18;;:::i;:::-;951:2;945:9;1013:4;1005:13;;856:66;1001:22;;;1025:2;997:31;993:40;981:53;;;1049:18;;;1069:22;;;1046:46;1043:72;;;1095:18;;:::i;:::-;1135:10;1131:2;1124:22;1170:2;1162:6;1155:18;1210:7;1205:2;1200;1196;1192:11;1188:20;1185:33;1182:53;;;1231:1;1228;1221:12;1182:53;1287:2;1282;1278;1274:11;1269:2;1261:6;1257:15;1244:46;1332:1;1310:15;;;1327:2;1306:24;1299:35;;;;-1:-1:-1;1314:6:357;385:980;-1:-1:-1;;;;;385:980:357:o;1562:656::-;1674:4;1703:2;1732;1721:9;1714:21;1764:6;1758:13;1807:6;1802:2;1791:9;1787:18;1780:34;1832:1;1842:140;1856:6;1853:1;1850:13;1842:140;;;1951:14;;;1947:23;;1941:30;1917:17;;;1936:2;1913:26;1906:66;1871:10;;1842:140;;;2000:6;1997:1;1994:13;1991:91;;;2070:1;2065:2;2056:6;2045:9;2041:22;2037:31;2030:42;1991:91;-1:-1:-1;2134:2:357;2122:15;2139:66;2118:88;2103:104;;;;2209:2;2099:113;;1562:656;-1:-1:-1;;;1562:656:357:o;2829:184::-;2899:6;2952:2;2940:9;2931:7;2927:23;2923:32;2920:52;;;2968:1;2965;2958:12;2920:52;-1:-1:-1;2991:16:357;;2829:184;-1:-1:-1;2829:184:357:o;3018:313::-;3088:6;3141:2;3129:9;3120:7;3116:23;3112:32;3109:52;;;3157:1;3154;3147:12;3109:52;3189:9;3183:16;3239:42;3232:5;3228:54;3221:5;3218:65;3208:93;;3297:1;3294;3287:12;4217:280;4286:6;4339:2;4327:9;4318:7;4314:23;4310:32;4307:52;;;4355:1;4352;4345:12;4307:52;4387:9;4381:16;4437:10;4430:5;4426:22;4419:5;4416:33;4406:61;;4463:1;4460;4453:12;4502:184;4554:77;4551:1;4544:88;4651:4;4648:1;4641:15;4675:4;4672:1;4665:15;4691:128;4731:3;4762:1;4758:6;4755:1;4752:13;4749:39;;;4768:18;;:::i;:::-;-1:-1:-1;4804:9:357;;4691:128::o;5231:262::-;5270:7;5302:10;5339:2;5336:1;5332:10;5369:2;5366:1;5362:10;5425:3;5421:2;5417:12;5412:3;5409:21;5402:3;5395:11;5388:19;5384:47;5381:73;;;5434:18;;:::i;:::-;5474:13;;5231:262;-1:-1:-1;;;;5231:262:357:o;5498:228::-;5538:7;5664:1;5596:66;5592:74;5589:1;5586:81;5581:1;5574:9;5567:17;5563:105;5560:131;;;5671:18;;:::i;:::-;-1:-1:-1;5711:9:357;;5498:228::o;5731:482::-;5820:1;5863:5;5820:1;5877:330;5898:7;5888:8;5885:21;5877:330;;;6017:4;5949:66;5945:77;5939:4;5936:87;5933:113;;;6026:18;;:::i;:::-;6076:7;6066:8;6062:22;6059:55;;;6096:16;;;;6059:55;6175:22;;;;6135:15;;;;5877:330;;;5881:3;5731:482;;;;;:::o;6218:866::-;6267:5;6297:8;6287:80;;-1:-1:-1;6338:1:357;6352:5;;6287:80;6386:4;6376:76;;-1:-1:-1;6423:1:357;6437:5;;6376:76;6468:4;6486:1;6481:59;;;;6554:1;6549:130;;;;6461:218;;6481:59;6511:1;6502:10;;6525:5;;;6549:130;6586:3;6576:8;6573:17;6570:43;;;6593:18;;:::i;:::-;-1:-1:-1;;6649:1:357;6635:16;;6664:5;;6461:218;;6763:2;6753:8;6750:16;6744:3;6738:4;6735:13;6731:36;6725:2;6715:8;6712:16;6707:2;6701:4;6698:12;6694:35;6691:77;6688:159;;;-1:-1:-1;6800:19:357;;;6832:5;;6688:159;6879:34;6904:8;6898:4;6879:34;:::i;:::-;7009:6;6941:66;6937:79;6928:7;6925:92;6922:118;;;7020:18;;:::i;:::-;7058:20;;6218:866;-1:-1:-1;;;6218:866:357:o;7089:131::-;7149:5;7178:36;7205:8;7199:4;7178:36;:::i;7225:274::-;7265:1;7291;7281:189;;7326:77;7323:1;7316:88;7427:4;7424:1;7417:15;7455:4;7452:1;7445:15;7281:189;-1:-1:-1;7484:9:357;;7225:274::o;7504:184::-;7556:77;7553:1;7546:88;7653:4;7650:1;7643:15;7677:4;7674:1;7667:15;7693:195;7732:3;7763:66;7756:5;7753:77;7750:103;;7833:18;;:::i;:::-;-1:-1:-1;7880:1:357;7869:13;;7693:195::o", "linkReferences": {} }, "methodIdentifiers": { "DECIMALS()": "2e0f2625", "baseFee()": "6ef25c3a", "baseFeeScalar()": "c5985918", "blobBaseFee()": "f8206140", "blobBaseFeeScalar()": "68d5dca6", "decimals()": "313ce567", "gasPrice()": "fe173b97", "getL1Fee(bytes)": "49948e0e", "getL1GasUsed(bytes)": "de26c4a1", "isEcotone()": "4ef6e224", "l1BaseFee()": "519b4bd3", "overhead()": "0c18c162", "scalar()": "f45e65d8", "setEcotone()": "22b90ab3", "version()": "54fd4d50" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DECIMALS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseFeeScalar\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blobBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"blobBaseFeeScalar\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gasPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"getL1Fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"getL1GasUsed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isEcotone\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1BaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"overhead\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scalar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setEcotone\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"custom:proxied\":\"@custom:predeploy 0x420000000000000000000000000000000000000F\",\"kind\":\"dev\",\"methods\":{\"baseFee()\":{\"returns\":{\"_0\":\"Current L2 base fee.\"}},\"baseFeeScalar()\":{\"returns\":{\"_0\":\"Current base fee scalar.\"}},\"blobBaseFee()\":{\"returns\":{\"_0\":\"Current blob base fee.\"}},\"blobBaseFeeScalar()\":{\"returns\":{\"_0\":\"Current blob base fee scalar.\"}},\"decimals()\":{\"custom:legacy\":\"@notice Retrieves the number of decimals used in the scalar.\",\"returns\":{\"_0\":\"Number of decimals used in the scalar.\"}},\"gasPrice()\":{\"returns\":{\"_0\":\"Current L2 gas price (base fee).\"}},\"getL1Fee(bytes)\":{\"params\":{\"_data\":\"Unsigned fully RLP-encoded transaction to get the L1 fee for.\"},\"returns\":{\"_0\":\"L1 fee that should be paid for the tx\"}},\"getL1GasUsed(bytes)\":{\"params\":{\"_data\":\"Unsigned fully RLP-encoded transaction to get the L1 gas for.\"},\"returns\":{\"_0\":\"Amount of L1 gas used to publish the transaction.\"}},\"l1BaseFee()\":{\"returns\":{\"_0\":\"Latest known L1 base fee.\"}},\"overhead()\":{\"custom:legacy\":\"@notice Retrieves the current fee overhead.\",\"returns\":{\"_0\":\"Current fee overhead.\"}},\"scalar()\":{\"custom:legacy\":\"@notice Retrieves the current fee scalar.\",\"returns\":{\"_0\":\"Current fee scalar.\"}}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.2.0\"}},\"title\":\"GasPriceOracle\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DECIMALS()\":{\"notice\":\"Number of decimals used in the scalar.\"},\"baseFee()\":{\"notice\":\"Retrieves the current base fee.\"},\"baseFeeScalar()\":{\"notice\":\"Retrieves the current base fee scalar.\"},\"blobBaseFee()\":{\"notice\":\"Retrieves the current blob base fee.\"},\"blobBaseFeeScalar()\":{\"notice\":\"Retrieves the current blob base fee scalar.\"},\"gasPrice()\":{\"notice\":\"Retrieves the current gas price (base fee).\"},\"getL1Fee(bytes)\":{\"notice\":\"Computes the L1 portion of the fee based on the size of the rlp encoded input         transaction, the current L1 base fee, and the various dynamic parameters.\"},\"getL1GasUsed(bytes)\":{\"notice\":\"Computes the amount of L1 gas used for a transaction. Adds 68 bytes         of padding to account for the fact that the input does not have a signature.\"},\"isEcotone()\":{\"notice\":\"Indicates whether the network has gone through the Ecotone upgrade.\"},\"l1BaseFee()\":{\"notice\":\"Retrieves the latest known L1 base fee.\"},\"setEcotone()\":{\"notice\":\"Set chain to be Ecotone chain (callable by depositor account)\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"This contract maintains the variables responsible for computing the L1 portion of the         total fee charged on L2. Before Bedrock, this contract held variables in state that were         read during the state transition function to compute the L1 portion of the transaction         fee. After Bedrock, this contract now simply proxies the L1Block contract, which has         the values used to compute the L1 portion of the fee in its state.         The contract exposes an API that is useful for knowing how large the L1 portion of the         transaction fee will be. The following events were deprecated with Bedrock:         - event OverheadUpdated(uint256 overhead);         - event ScalarUpdated(uint256 scalar);         - event DecimalsUpdated(uint256 decimals);\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L2/GasPriceOracle.sol\":\"GasPriceOracle\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"src/L2/GasPriceOracle.sol\":{\"keccak256\":\"0x299b0722d301a4bc075ba09c73e55a98e3dc509444906f285e2ceba9c1fa69b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17f7ffe4744b7bde10d61ce376ac0b497d40dab962b1c4c47bf7fd9784350cb7\",\"dweb:/ipfs/QmYp8vZtid8GBWrm7QSPxNCV9D4Mm9ELm29PGup7b6dJ7H\"]},\"src/L2/L1Block.sol\":{\"keccak256\":\"0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7\",\"dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv\"]},\"src/libraries/Predeploys.sol\":{\"keccak256\":\"0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663\",\"dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.15+commit.e14f2714" }, "language": "Solidity", "output": { "abi": [{ "inputs": [], "stateMutability": "view", "type": "function", "name": "DECIMALS", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "baseFee", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "baseFeeScalar", "outputs": [{ "internalType": "uint32", "name": "", "type": "uint32" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "blobBaseFee", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "blobBaseFeeScalar", "outputs": [{ "internalType": "uint32", "name": "", "type": "uint32" }] }, { "inputs": [], "stateMutability": "pure", "type": "function", "name": "decimals", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "gasPrice", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [{ "internalType": "bytes", "name": "_data", "type": "bytes" }], "stateMutability": "view", "type": "function", "name": "getL1Fee", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [{ "internalType": "bytes", "name": "_data", "type": "bytes" }], "stateMutability": "view", "type": "function", "name": "getL1GasUsed", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "isEcotone", "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "l1BaseFee", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "overhead", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "scalar", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "setEcotone" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "version", "outputs": [{ "internalType": "string", "name": "", "type": "string" }] }], "devdoc": { "kind": "dev", "methods": { "baseFee()": { "returns": { "_0": "Current L2 base fee." } }, "baseFeeScalar()": { "returns": { "_0": "Current base fee scalar." } }, "blobBaseFee()": { "returns": { "_0": "Current blob base fee." } }, "blobBaseFeeScalar()": { "returns": { "_0": "Current blob base fee scalar." } }, "decimals()": { "custom:legacy": "@notice Retrieves the number of decimals used in the scalar.", "returns": { "_0": "Number of decimals used in the scalar." } }, "gasPrice()": { "returns": { "_0": "Current L2 gas price (base fee)." } }, "getL1Fee(bytes)": { "params": { "_data": "Unsigned fully RLP-encoded transaction to get the L1 fee for." }, "returns": { "_0": "L1 fee that should be paid for the tx" } }, "getL1GasUsed(bytes)": { "params": { "_data": "Unsigned fully RLP-encoded transaction to get the L1 gas for." }, "returns": { "_0": "Amount of L1 gas used to publish the transaction." } }, "l1BaseFee()": { "returns": { "_0": "Latest known L1 base fee." } }, "overhead()": { "custom:legacy": "@notice Retrieves the current fee overhead.", "returns": { "_0": "Current fee overhead." } }, "scalar()": { "custom:legacy": "@notice Retrieves the current fee scalar.", "returns": { "_0": "Current fee scalar." } } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "DECIMALS()": { "notice": "Number of decimals used in the scalar." }, "baseFee()": { "notice": "Retrieves the current base fee." }, "baseFeeScalar()": { "notice": "Retrieves the current base fee scalar." }, "blobBaseFee()": { "notice": "Retrieves the current blob base fee." }, "blobBaseFeeScalar()": { "notice": "Retrieves the current blob base fee scalar." }, "gasPrice()": { "notice": "Retrieves the current gas price (base fee)." }, "getL1Fee(bytes)": { "notice": "Computes the L1 portion of the fee based on the size of the rlp encoded input         transaction, the current L1 base fee, and the various dynamic parameters." }, "getL1GasUsed(bytes)": { "notice": "Computes the amount of L1 gas used for a transaction. Adds 68 bytes         of padding to account for the fact that the input does not have a signature." }, "isEcotone()": { "notice": "Indicates whether the network has gone through the Ecotone upgrade." }, "l1BaseFee()": { "notice": "Retrieves the latest known L1 base fee." }, "setEcotone()": { "notice": "Set chain to be Ecotone chain (callable by depositor account)" }, "version()": { "notice": "Semantic version." } }, "version": 1 } }, "settings": { "remappings": ["@lib-keccak/=lib/lib-keccak/contracts/lib/", "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@rari-capital/solmate/=lib/solmate/", "@solady-test/=lib/lib-keccak/lib/solady/test/", "@solady/=lib/solady/src/", "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/", "lib-keccak/=lib/lib-keccak/contracts/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "safe-contracts/=lib/safe-contracts/contracts/", "solady/=lib/solady/", "solmate/=lib/solmate/src/"], "optimizer": { "enabled": true, "runs": 999999 }, "metadata": { "bytecodeHash": "none" }, "compilationTarget": { "src/L2/GasPriceOracle.sol": "GasPriceOracle" }, "evmVersion": "london", "libraries": {} }, "sources": { "src/L2/GasPriceOracle.sol": { "keccak256": "0x299b0722d301a4bc075ba09c73e55a98e3dc509444906f285e2ceba9c1fa69b1", "urls": ["bzz-raw://17f7ffe4744b7bde10d61ce376ac0b497d40dab962b1c4c47bf7fd9784350cb7", "dweb:/ipfs/QmYp8vZtid8GBWrm7QSPxNCV9D4Mm9ELm29PGup7b6dJ7H"], "license": "MIT" }, "src/L2/L1Block.sol": { "keccak256": "0x5819beb85b23c31c5f5d639977bf5d5cf6768975d6d3eecde78299f37ba04cd6", "urls": ["bzz-raw://55cdc404753dcc0cd9d3fac3554a4a16abd7dc39f43f7ae0ebcb0990fa52f7e7", "dweb:/ipfs/QmNXMUmNBmNCmL5k8tC1jJ6CmY2hZKJ7owFwuvhMKXr5fv"], "license": "MIT" }, "src/libraries/Predeploys.sol": { "keccak256": "0x7b48b32b75e9ba0cd7f83b3304c6c1676dd8de20a5d40e8846bf7018ae9aff02", "urls": ["bzz-raw://7574fcc79c0d545b90071023aa81ee7880ab50b3057df598fa693bc4cf303663", "dweb:/ipfs/QmWLxHzgfaTJ7thfb7khXkTY5UtSBZ5VTUB4DaAXVw7DRe"], "license": "MIT" }, "src/universal/ISemver.sol": { "keccak256": "0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44", "urls": ["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a", "dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"], "license": "MIT" } }, "version": 1 }, "storageLayout": { "storage": [{ "astId": 89850, "contract": "src/L2/GasPriceOracle.sol:GasPriceOracle", "label": "isEcotone", "offset": 0, "slot": "0", "type": "t_bool" }], "types": { "t_bool": { "encoding": "inplace", "label": "bool", "numberOfBytes": "1" } } }, "userdoc": { "version": 1, "kind": "user", "methods": { "DECIMALS()": { "notice": "Number of decimals used in the scalar." }, "baseFee()": { "notice": "Retrieves the current base fee." }, "baseFeeScalar()": { "notice": "Retrieves the current base fee scalar." }, "blobBaseFee()": { "notice": "Retrieves the current blob base fee." }, "blobBaseFeeScalar()": { "notice": "Retrieves the current blob base fee scalar." }, "gasPrice()": { "notice": "Retrieves the current gas price (base fee)." }, "getL1Fee(bytes)": { "notice": "Computes the L1 portion of the fee based on the size of the rlp encoded input         transaction, the current L1 base fee, and the various dynamic parameters." }, "getL1GasUsed(bytes)": { "notice": "Computes the amount of L1 gas used for a transaction. Adds 68 bytes         of padding to account for the fact that the input does not have a signature." }, "isEcotone()": { "notice": "Indicates whether the network has gone through the Ecotone upgrade." }, "l1BaseFee()": { "notice": "Retrieves the latest known L1 base fee." }, "setEcotone()": { "notice": "Set chain to be Ecotone chain (callable by depositor account)" }, "version()": { "notice": "Semantic version." } }, "notice": "This contract maintains the variables responsible for computing the L1 portion of the         total fee charged on L2. Before Bedrock, this contract held variables in state that were         read during the state transition function to compute the L1 portion of the transaction         fee. After Bedrock, this contract now simply proxies the L1Block contract, which has         the values used to compute the L1 portion of the fee in its state.         The contract exposes an API that is useful for knowing how large the L1 portion of the         transaction fee will be. The following events were deprecated with Bedrock:         - event OverheadUpdated(uint256 overhead);         - event ScalarUpdated(uint256 scalar);         - event DecimalsUpdated(uint256 decimals);" }, "devdoc": { "version": 1, "kind": "dev", "methods": { "baseFee()": { "returns": { "_0": "Current L2 base fee." } }, "baseFeeScalar()": { "returns": { "_0": "Current base fee scalar." } }, "blobBaseFee()": { "returns": { "_0": "Current blob base fee." } }, "blobBaseFeeScalar()": { "returns": { "_0": "Current blob base fee scalar." } }, "decimals()": { "returns": { "_0": "Number of decimals used in the scalar." } }, "gasPrice()": { "returns": { "_0": "Current L2 gas price (base fee)." } }, "getL1Fee(bytes)": { "params": { "_data": "Unsigned fully RLP-encoded transaction to get the L1 fee for." }, "returns": { "_0": "L1 fee that should be paid for the tx" } }, "getL1GasUsed(bytes)": { "params": { "_data": "Unsigned fully RLP-encoded transaction to get the L1 gas for." }, "returns": { "_0": "Amount of L1 gas used to publish the transaction." } }, "l1BaseFee()": { "returns": { "_0": "Latest known L1 base fee." } }, "overhead()": { "returns": { "_0": "Current fee overhead." } }, "scalar()": { "returns": { "_0": "Current fee scalar." } } }, "title": "GasPriceOracle" }, "ast": { "absolutePath": "src/L2/GasPriceOracle.sol", "id": 90203, "exportedSymbols": { "GasPriceOracle": [90202], "ISemver": [109417], "L1Block": [90318], "Predeploys": [104124] }, "nodeType": "SourceUnit", "src": "32:6947:144", "nodes": [{ "id": 89830, "nodeType": "PragmaDirective", "src": "32:23:144", "nodes": [], "literals": ["solidity", "0.8", ".15"] }, { "id": 89832, "nodeType": "ImportDirective", "src": "57:52:144", "nodes": [], "absolutePath": "src/universal/ISemver.sol", "file": "src/universal/ISemver.sol", "nameLocation": "-1:-1:-1", "scope": 90203, "sourceUnit": 109418, "symbolAliases": [{ "foreign": { "id": 89831, "name": "ISemver", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 109417, "src": "66:7:144", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 89834, "nodeType": "ImportDirective", "src": "110:58:144", "nodes": [], "absolutePath": "src/libraries/Predeploys.sol", "file": "src/libraries/Predeploys.sol", "nameLocation": "-1:-1:-1", "scope": 90203, "sourceUnit": 104125, "symbolAliases": [{ "foreign": { "id": 89833, "name": "Predeploys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104124, "src": "119:10:144", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 89836, "nodeType": "ImportDirective", "src": "169:45:144", "nodes": [], "absolutePath": "src/L2/L1Block.sol", "file": "src/L2/L1Block.sol", "nameLocation": "-1:-1:-1", "scope": 90203, "sourceUnit": 90319, "symbolAliases": [{ "foreign": { "id": 89835, "name": "L1Block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90318, "src": "178:7:144", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }], "unitAlias": "" }, { "id": 90202, "nodeType": "ContractDefinition", "src": "1153:5825:144", "nodes": [{ "id": 89843, "nodeType": "VariableDeclaration", "src": "1249:36:144", "nodes": [], "constant": true, "documentation": { "id": 89840, "nodeType": "StructuredDocumentation", "src": "1194:50:144", "text": "@notice Number of decimals used in the scalar." }, "functionSelector": "2e0f2625", "mutability": "constant", "name": "DECIMALS", "nameLocation": "1273:8:144", "scope": 90202, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 89841, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1249:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "hexValue": "36", "id": 89842, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1284:1:144", "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", "typeString": "int_const 6" }, "value": "6" }, "visibility": "public" }, { "id": 89847, "nodeType": "VariableDeclaration", "src": "1355:40:144", "nodes": [], "baseFunctions": [109416], "constant": true, "documentation": { "id": 89844, "nodeType": "StructuredDocumentation", "src": "1292:58:144", "text": "@notice Semantic version.\n @custom:semver 1.2.0" }, "functionSelector": "54fd4d50", "mutability": "constant", "name": "version", "nameLocation": "1378:7:144", "scope": 90202, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 89845, "name": "string", "nodeType": "ElementaryTypeName", "src": "1355:6:144", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": { "hexValue": "312e322e30", "id": 89846, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1388:7:144", "typeDescriptions": { "typeIdentifier": "t_stringliteral_e374587661e69268352d25204d81b23ce801573f4b09f3545e69536dc085a37a", "typeString": "literal_string \"1.2.0\"" }, "value": "1.2.0" }, "visibility": "public" }, { "id": 89850, "nodeType": "VariableDeclaration", "src": "1486:21:144", "nodes": [], "constant": false, "documentation": { "id": 89848, "nodeType": "StructuredDocumentation", "src": "1402:79:144", "text": "@notice Indicates whether the network has gone through the Ecotone upgrade." }, "functionSelector": "4ef6e224", "mutability": "mutable", "name": "isEcotone", "nameLocation": "1498:9:144", "scope": 90202, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 89849, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1486:4:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "public" }, { "id": 89870, "nodeType": "FunctionDefinition", "src": "1835:196:144", "nodes": [], "body": { "id": 89869, "nodeType": "Block", "src": "1905:126:144", "nodes": [], "statements": [{ "condition": { "id": 89858, "name": "isEcotone", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89850, "src": "1919:9:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 89864, "nodeType": "IfStatement", "src": "1915:70:144", "trueBody": { "id": 89863, "nodeType": "Block", "src": "1930:55:144", "statements": [{ "expression": { "arguments": [{ "id": 89860, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89853, "src": "1968:5:144", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }], "id": 89859, "name": "_getL1FeeEcotone", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90148, "src": "1951:16:144", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_uint256_$", "typeString": "function (bytes memory) view returns (uint256)" } }, "id": 89861, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1951:23:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 89857, "id": 89862, "nodeType": "Return", "src": "1944:30:144" }] } }, { "expression": { "arguments": [{ "id": 89866, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89853, "src": "2018:5:144", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }], "id": 89865, "name": "_getL1FeeBedrock", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90097, "src": "2001:16:144", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_uint256_$", "typeString": "function (bytes memory) view returns (uint256)" } }, "id": 89867, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2001:23:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 89857, "id": 89868, "nodeType": "Return", "src": "1994:30:144" }] }, "documentation": { "id": 89851, "nodeType": "StructuredDocumentation", "src": "1514:316:144", "text": "@notice Computes the L1 portion of the fee based on the size of the rlp encoded input\n         transaction, the current L1 base fee, and the various dynamic parameters.\n @param _data Unsigned fully RLP-encoded transaction to get the L1 fee for.\n @return L1 fee that should be paid for the tx" }, "functionSelector": "49948e0e", "implemented": true, "kind": "function", "modifiers": [], "name": "getL1Fee", "nameLocation": "1844:8:144", "parameters": { "id": 89854, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 89853, "mutability": "mutable", "name": "_data", "nameLocation": "1866:5:144", "nodeType": "VariableDeclaration", "scope": 89870, "src": "1853:18:144", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 89852, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1853:5:144", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }], "src": "1852:20:144" }, "returnParameters": { "id": 89857, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 89856, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 89870, "src": "1896:7:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 89855, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1896:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "1895:9:144" }, "scope": 90202, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 89899, "nodeType": "FunctionDefinition", "src": "2115:338:144", "nodes": [], "body": { "id": 89898, "nodeType": "Block", "src": "2146:307:144", "nodes": [], "statements": [{ "expression": { "arguments": [{ "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 89883, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 89875, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "2177:3:144", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 89876, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "2177:10:144", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [{ "expression": { "id": 89878, "name": "Predeploys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104124, "src": "2199:10:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Predeploys_$104124_$", "typeString": "type(library Predeploys)" } }, "id": 89879, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "L1_BLOCK_ATTRIBUTES", "nodeType": "MemberAccess", "referencedDeclaration": 104027, "src": "2199:30:144", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], "id": 89877, "name": "L1Block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90318, "src": "2191:7:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_L1Block_$90318_$", "typeString": "type(contract L1Block)" } }, "id": 89880, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2191:39:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_L1Block_$90318", "typeString": "contract L1Block" } }, "id": 89881, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "DEPOSITOR_ACCOUNT", "nodeType": "MemberAccess", "referencedDeclaration": 90213, "src": "2191:57:144", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", "typeString": "function () view external returns (address)" } }, "id": 89882, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2191:59:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2177:73:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "47617350726963654f7261636c653a206f6e6c7920746865206465706f7369746f72206163636f756e742063616e2073657420697345636f746f6e6520666c6167", "id": 89884, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2264:67:144", "typeDescriptions": { "typeIdentifier": "t_stringliteral_a6497d84b1fcb87671ee1e7d83fa633da5bca5b69ea1e0c7b61a9ee91a07700c", "typeString": "literal_string \"GasPriceOracle: only the depositor account can set isEcotone flag\"" }, "value": "GasPriceOracle: only the depositor account can set isEcotone flag" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_a6497d84b1fcb87671ee1e7d83fa633da5bca5b69ea1e0c7b61a9ee91a07700c", "typeString": "literal_string \"GasPriceOracle: only the depositor account can set isEcotone flag\"" }], "id": 89874, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2156:7:144", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 89885, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2156:185:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 89886, "nodeType": "ExpressionStatement", "src": "2156:185:144" }, { "expression": { "arguments": [{ "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 89890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 89888, "name": "isEcotone", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89850, "src": "2359:9:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "66616c7365", "id": 89889, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "2372:5:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "2359:18:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "47617350726963654f7261636c653a2045636f746f6e6520616c726561647920616374697665", "id": 89891, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2379:40:144", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5923a2a5f6dac6b5f7274d34a2dd94f4b6ab3b4a09fa25eddc1c3f3c5ff8cc39", "typeString": "literal_string \"GasPriceOracle: Ecotone already active\"" }, "value": "GasPriceOracle: Ecotone already active" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_5923a2a5f6dac6b5f7274d34a2dd94f4b6ab3b4a09fa25eddc1c3f3c5ff8cc39", "typeString": "literal_string \"GasPriceOracle: Ecotone already active\"" }], "id": 89887, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "2351:7:144", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 89892, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "2351:69:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 89893, "nodeType": "ExpressionStatement", "src": "2351:69:144" }, { "expression": { "id": 89896, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 89894, "name": "isEcotone", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89850, "src": "2430:9:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "74727565", "id": 89895, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "2442:4:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "2430:16:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 89897, "nodeType": "ExpressionStatement", "src": "2430:16:144" }] }, "documentation": { "id": 89871, "nodeType": "StructuredDocumentation", "src": "2037:73:144", "text": "@notice Set chain to be Ecotone chain (callable by depositor account)" }, "functionSelector": "22b90ab3", "implemented": true, "kind": "function", "modifiers": [], "name": "setEcotone", "nameLocation": "2124:10:144", "parameters": { "id": 89872, "nodeType": "ParameterList", "parameters": [], "src": "2134:2:144" }, "returnParameters": { "id": 89873, "nodeType": "ParameterList", "parameters": [], "src": "2146:0:144" }, "scope": 90202, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 89909, "nodeType": "FunctionDefinition", "src": "2568:87:144", "nodes": [], "body": { "id": 89908, "nodeType": "Block", "src": "2618:37:144", "nodes": [], "statements": [{ "expression": { "expression": { "id": 89905, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "2635:5:144", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 89906, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "basefee", "nodeType": "MemberAccess", "src": "2635:13:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 89904, "id": 89907, "nodeType": "Return", "src": "2628:20:144" }] }, "documentation": { "id": 89900, "nodeType": "StructuredDocumentation", "src": "2459:104:144", "text": "@notice Retrieves the current gas price (base fee).\n @return Current L2 gas price (base fee)." }, "functionSelector": "fe173b97", "implemented": true, "kind": "function", "modifiers": [], "name": "gasPrice", "nameLocation": "2577:8:144", "parameters": { "id": 89901, "nodeType": "ParameterList", "parameters": [], "src": "2585:2:144" }, "returnParameters": { "id": 89904, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 89903, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 89909, "src": "2609:7:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 89902, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2609:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "2608:9:144" }, "scope": 90202, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 89919, "nodeType": "FunctionDefinition", "src": "2746:86:144", "nodes": [], "body": { "id": 89918, "nodeType": "Block", "src": "2795:37:144", "nodes": [], "statements": [{ "expression": { "expression": { "id": 89915, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "2812:5:144", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 89916, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "basefee", "nodeType": "MemberAccess", "src": "2812:13:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 89914, "id": 89917, "nodeType": "Return", "src": "2805:20:144" }] }, "documentation": { "id": 89910, "nodeType": "StructuredDocumentation", "src": "2661:80:144", "text": "@notice Retrieves the current base fee.\n @return Current L2 base fee." }, "functionSelector": "6ef25c3a", "implemented": true, "kind": "function", "modifiers": [], "name": "baseFee", "nameLocation": "2755:7:144", "parameters": { "id": 89911, "nodeType": "ParameterList", "parameters": [], "src": "2762:2:144" }, "returnParameters": { "id": 89914, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 89913, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 89919, "src": "2786:7:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 89912, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2786:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "2785:9:144" }, "scope": 90202, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 89939, "nodeType": "FunctionDefinition", "src": "2951:202:144", "nodes": [], "body": { "id": 89938, "nodeType": "Block", "src": "3001:152:144", "nodes": [], "statements": [{ "expression": { "arguments": [{ "id": 89927, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "3019:10:144", "subExpression": { "id": 89926, "name": "isEcotone", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89850, "src": "3020:9:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "47617350726963654f7261636c653a206f7665726865616428292069732064657072656361746564", "id": 89928, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3031:42:144", "typeDescriptions": { "typeIdentifier": "t_stringliteral_25a8f9debbed12be50767fc7babd300130a5ca203afc2f904ec6e57d0959fbbf", "typeString": "literal_string \"GasPriceOracle: overhead() is deprecated\"" }, "value": "GasPriceOracle: overhead() is deprecated" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_25a8f9debbed12be50767fc7babd300130a5ca203afc2f904ec6e57d0959fbbf", "typeString": "literal_string \"GasPriceOracle: overhead() is deprecated\"" }], "id": 89925, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3011:7:144", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 89929, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3011:63:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 89930, "nodeType": "ExpressionStatement", "src": "3011:63:144" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [{ "expression": { "id": 89932, "name": "Predeploys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104124, "src": "3099:10:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Predeploys_$104124_$", "typeString": "type(library Predeploys)" } }, "id": 89933, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "L1_BLOCK_ATTRIBUTES", "nodeType": "MemberAccess", "referencedDeclaration": 104027, "src": "3099:30:144", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], "id": 89931, "name": "L1Block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90318, "src": "3091:7:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_L1Block_$90318_$", "typeString": "type(contract L1Block)" } }, "id": 89934, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3091:39:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_L1Block_$90318", "typeString": "contract L1Block" } }, "id": 89935, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "l1FeeOverhead", "nodeType": "MemberAccess", "referencedDeclaration": 90240, "src": "3091:53:144", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 89936, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3091:55:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 89924, "id": 89937, "nodeType": "Return", "src": "3084:62:144" }] }, "documentation": { "id": 89920, "nodeType": "StructuredDocumentation", "src": "2838:108:144", "text": "@custom:legacy\n @notice Retrieves the current fee overhead.\n @return Current fee overhead." }, "functionSelector": "0c18c162", "implemented": true, "kind": "function", "modifiers": [], "name": "overhead", "nameLocation": "2960:8:144", "parameters": { "id": 89921, "nodeType": "ParameterList", "parameters": [], "src": "2968:2:144" }, "returnParameters": { "id": 89924, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 89923, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 89939, "src": "2992:7:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 89922, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2992:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "2991:9:144" }, "scope": 90202, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 89959, "nodeType": "FunctionDefinition", "src": "3268:196:144", "nodes": [], "body": { "id": 89958, "nodeType": "Block", "src": "3316:148:144", "nodes": [], "statements": [{ "expression": { "arguments": [{ "id": 89947, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "3334:10:144", "subExpression": { "id": 89946, "name": "isEcotone", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89850, "src": "3335:9:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "47617350726963654f7261636c653a207363616c617228292069732064657072656361746564", "id": 89948, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3346:40:144", "typeDescriptions": { "typeIdentifier": "t_stringliteral_fdcd11c052395e9256e13a80dcc0e9d323cf16472d08af1bed3d17258d3603d3", "typeString": "literal_string \"GasPriceOracle: scalar() is deprecated\"" }, "value": "GasPriceOracle: scalar() is deprecated" }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_fdcd11c052395e9256e13a80dcc0e9d323cf16472d08af1bed3d17258d3603d3", "typeString": "literal_string \"GasPriceOracle: scalar() is deprecated\"" }], "id": 89945, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [-18, -18], "referencedDeclaration": -18, "src": "3326:7:144", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 89949, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3326:61:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 89950, "nodeType": "ExpressionStatement", "src": "3326:61:144" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [{ "expression": { "id": 89952, "name": "Predeploys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104124, "src": "3412:10:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Predeploys_$104124_$", "typeString": "type(library Predeploys)" } }, "id": 89953, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "L1_BLOCK_ATTRIBUTES", "nodeType": "MemberAccess", "referencedDeclaration": 104027, "src": "3412:30:144", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], "id": 89951, "name": "L1Block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90318, "src": "3404:7:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_L1Block_$90318_$", "typeString": "type(contract L1Block)" } }, "id": 89954, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3404:39:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_L1Block_$90318", "typeString": "contract L1Block" } }, "id": 89955, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "l1FeeScalar", "nodeType": "MemberAccess", "referencedDeclaration": 90243, "src": "3404:51:144", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 89956, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3404:53:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 89944, "id": 89957, "nodeType": "Return", "src": "3397:60:144" }] }, "documentation": { "id": 89940, "nodeType": "StructuredDocumentation", "src": "3159:104:144", "text": "@custom:legacy\n @notice Retrieves the current fee scalar.\n @return Current fee scalar." }, "functionSelector": "f45e65d8", "implemented": true, "kind": "function", "modifiers": [], "name": "scalar", "nameLocation": "3277:6:144", "parameters": { "id": 89941, "nodeType": "ParameterList", "parameters": [], "src": "3283:2:144" }, "returnParameters": { "id": 89944, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 89943, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 89959, "src": "3307:7:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 89942, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3307:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "3306:9:144" }, "scope": 90202, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 89973, "nodeType": "FunctionDefinition", "src": "3568:124:144", "nodes": [], "body": { "id": 89972, "nodeType": "Block", "src": "3619:73:144", "nodes": [], "statements": [{ "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [{ "expression": { "id": 89966, "name": "Predeploys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104124, "src": "3644:10:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Predeploys_$104124_$", "typeString": "type(library Predeploys)" } }, "id": 89967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "L1_BLOCK_ATTRIBUTES", "nodeType": "MemberAccess", "referencedDeclaration": 104027, "src": "3644:30:144", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], "id": 89965, "name": "L1Block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90318, "src": "3636:7:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_L1Block_$90318_$", "typeString": "type(contract L1Block)" } }, "id": 89968, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3636:39:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_L1Block_$90318", "typeString": "contract L1Block" } }, "id": 89969, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "basefee", "nodeType": "MemberAccess", "referencedDeclaration": 90222, "src": "3636:47:144", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 89970, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3636:49:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 89964, "id": 89971, "nodeType": "Return", "src": "3629:56:144" }] }, "documentation": { "id": 89960, "nodeType": "StructuredDocumentation", "src": "3470:93:144", "text": "@notice Retrieves the latest known L1 base fee.\n @return Latest known L1 base fee." }, "functionSelector": "519b4bd3", "implemented": true, "kind": "function", "modifiers": [], "name": "l1BaseFee", "nameLocation": "3577:9:144", "parameters": { "id": 89961, "nodeType": "ParameterList", "parameters": [], "src": "3586:2:144" }, "returnParameters": { "id": 89964, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 89963, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 89973, "src": "3610:7:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 89962, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3610:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "3609:9:144" }, "scope": 90202, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 89987, "nodeType": "FunctionDefinition", "src": "3790:130:144", "nodes": [], "body": { "id": 89986, "nodeType": "Block", "src": "3843:77:144", "nodes": [], "statements": [{ "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [{ "expression": { "id": 89980, "name": "Predeploys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104124, "src": "3868:10:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Predeploys_$104124_$", "typeString": "type(library Predeploys)" } }, "id": 89981, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "L1_BLOCK_ATTRIBUTES", "nodeType": "MemberAccess", "referencedDeclaration": 104027, "src": "3868:30:144", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], "id": 89979, "name": "L1Block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90318, "src": "3860:7:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_L1Block_$90318_$", "typeString": "type(contract L1Block)" } }, "id": 89982, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3860:39:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_L1Block_$90318", "typeString": "contract L1Block" } }, "id": 89983, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "blobBaseFee", "nodeType": "MemberAccess", "referencedDeclaration": 90246, "src": "3860:51:144", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 89984, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "3860:53:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 89978, "id": 89985, "nodeType": "Return", "src": "3853:60:144" }] }, "documentation": { "id": 89974, "nodeType": "StructuredDocumentation", "src": "3698:87:144", "text": "@notice Retrieves the current blob base fee.\n @return Current blob base fee." }, "functionSelector": "f8206140", "implemented": true, "kind": "function", "modifiers": [], "name": "blobBaseFee", "nameLocation": "3799:11:144", "parameters": { "id": 89975, "nodeType": "ParameterList", "parameters": [], "src": "3810:2:144" }, "returnParameters": { "id": 89978, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 89977, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 89987, "src": "3834:7:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 89976, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3834:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "3833:9:144" }, "scope": 90202, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 90001, "nodeType": "FunctionDefinition", "src": "4022:133:144", "nodes": [], "body": { "id": 90000, "nodeType": "Block", "src": "4076:79:144", "nodes": [], "statements": [{ "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [{ "expression": { "id": 89994, "name": "Predeploys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104124, "src": "4101:10:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Predeploys_$104124_$", "typeString": "type(library Predeploys)" } }, "id": 89995, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "L1_BLOCK_ATTRIBUTES", "nodeType": "MemberAccess", "referencedDeclaration": 104027, "src": "4101:30:144", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], "id": 89993, "name": "L1Block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90318, "src": "4093:7:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_L1Block_$90318_$", "typeString": "type(contract L1Block)" } }, "id": 89996, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4093:39:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_L1Block_$90318", "typeString": "contract L1Block" } }, "id": 89997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "baseFeeScalar", "nodeType": "MemberAccess", "referencedDeclaration": 90234, "src": "4093:53:144", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", "typeString": "function () view external returns (uint32)" } }, "id": 89998, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4093:55:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "functionReturnParameters": 89992, "id": 89999, "nodeType": "Return", "src": "4086:62:144" }] }, "documentation": { "id": 89988, "nodeType": "StructuredDocumentation", "src": "3926:91:144", "text": "@notice Retrieves the current base fee scalar.\n @return Current base fee scalar." }, "functionSelector": "c5985918", "implemented": true, "kind": "function", "modifiers": [], "name": "baseFeeScalar", "nameLocation": "4031:13:144", "parameters": { "id": 89989, "nodeType": "ParameterList", "parameters": [], "src": "4044:2:144" }, "returnParameters": { "id": 89992, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 89991, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 90001, "src": "4068:6:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 89990, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "4068:6:144", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }], "src": "4067:8:144" }, "scope": 90202, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 90015, "nodeType": "FunctionDefinition", "src": "4267:141:144", "nodes": [], "body": { "id": 90014, "nodeType": "Block", "src": "4325:83:144", "nodes": [], "statements": [{ "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [{ "expression": { "id": 90008, "name": "Predeploys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104124, "src": "4350:10:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Predeploys_$104124_$", "typeString": "type(library Predeploys)" } }, "id": 90009, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "L1_BLOCK_ATTRIBUTES", "nodeType": "MemberAccess", "referencedDeclaration": 104027, "src": "4350:30:144", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], "id": 90007, "name": "L1Block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90318, "src": "4342:7:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_L1Block_$90318_$", "typeString": "type(contract L1Block)" } }, "id": 90010, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4342:39:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_L1Block_$90318", "typeString": "contract L1Block" } }, "id": 90011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "blobBaseFeeScalar", "nodeType": "MemberAccess", "referencedDeclaration": 90231, "src": "4342:57:144", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint32_$", "typeString": "function () view external returns (uint32)" } }, "id": 90012, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "4342:59:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "functionReturnParameters": 90006, "id": 90013, "nodeType": "Return", "src": "4335:66:144" }] }, "documentation": { "id": 90002, "nodeType": "StructuredDocumentation", "src": "4161:101:144", "text": "@notice Retrieves the current blob base fee scalar.\n @return Current blob base fee scalar." }, "functionSelector": "68d5dca6", "implemented": true, "kind": "function", "modifiers": [], "name": "blobBaseFeeScalar", "nameLocation": "4276:17:144", "parameters": { "id": 90003, "nodeType": "ParameterList", "parameters": [], "src": "4293:2:144" }, "returnParameters": { "id": 90006, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 90005, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 90015, "src": "4317:6:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 90004, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "4317:6:144", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }], "src": "4316:8:144" }, "scope": 90202, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 90024, "nodeType": "FunctionDefinition", "src": "4561:82:144", "nodes": [], "body": { "id": 90023, "nodeType": "Block", "src": "4611:32:144", "nodes": [], "statements": [{ "expression": { "id": 90021, "name": "DECIMALS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89843, "src": "4628:8:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 90020, "id": 90022, "nodeType": "Return", "src": "4621:15:144" }] }, "documentation": { "id": 90016, "nodeType": "StructuredDocumentation", "src": "4414:142:144", "text": "@custom:legacy\n @notice Retrieves the number of decimals used in the scalar.\n @return Number of decimals used in the scalar." }, "functionSelector": "313ce567", "implemented": true, "kind": "function", "modifiers": [], "name": "decimals", "nameLocation": "4570:8:144", "parameters": { "id": 90017, "nodeType": "ParameterList", "parameters": [], "src": "4578:2:144" }, "returnParameters": { "id": 90020, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 90019, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 90024, "src": "4602:7:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90018, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4602:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "4601:9:144" }, "scope": 90202, "stateMutability": "pure", "virtual": false, "visibility": "public" }, { "id": 90053, "nodeType": "FunctionDefinition", "src": "4975:280:144", "nodes": [], "body": { "id": 90052, "nodeType": "Block", "src": "5047:208:144", "nodes": [], "statements": [{ "assignments": [90033], "declarations": [{ "constant": false, "id": 90033, "mutability": "mutable", "name": "l1GasUsed", "nameLocation": "5065:9:144", "nodeType": "VariableDeclaration", "scope": 90052, "src": "5057:17:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90032, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5057:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 90037, "initialValue": { "arguments": [{ "id": 90035, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90027, "src": "5093:5:144", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }], "id": 90034, "name": "_getCalldataGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90201, "src": "5077:15:144", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$", "typeString": "function (bytes memory) pure returns (uint256)" } }, "id": 90036, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5077:22:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5057:42:144" }, { "condition": { "id": 90038, "name": "isEcotone", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89850, "src": "5113:9:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 90042, "nodeType": "IfStatement", "src": "5109:56:144", "trueBody": { "id": 90041, "nodeType": "Block", "src": "5124:41:144", "statements": [{ "expression": { "id": 90039, "name": "l1GasUsed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90033, "src": "5145:9:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 90031, "id": 90040, "nodeType": "Return", "src": "5138:16:144" }] } }, { "expression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90050, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 90043, "name": "l1GasUsed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90033, "src": "5181:9:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [{ "expression": { "id": 90045, "name": "Predeploys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104124, "src": "5201:10:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Predeploys_$104124_$", "typeString": "type(library Predeploys)" } }, "id": 90046, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "L1_BLOCK_ATTRIBUTES", "nodeType": "MemberAccess", "referencedDeclaration": 104027, "src": "5201:30:144", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], "id": 90044, "name": "L1Block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90318, "src": "5193:7:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_L1Block_$90318_$", "typeString": "type(contract L1Block)" } }, "id": 90047, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5193:39:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_L1Block_$90318", "typeString": "contract L1Block" } }, "id": 90048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "l1FeeOverhead", "nodeType": "MemberAccess", "referencedDeclaration": 90240, "src": "5193:53:144", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 90049, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5193:55:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5181:67:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 90031, "id": 90051, "nodeType": "Return", "src": "5174:74:144" }] }, "documentation": { "id": 90025, "nodeType": "StructuredDocumentation", "src": "4649:321:144", "text": "@notice Computes the amount of L1 gas used for a transaction. Adds 68 bytes\n         of padding to account for the fact that the input does not have a signature.\n @param _data Unsigned fully RLP-encoded transaction to get the L1 gas for.\n @return Amount of L1 gas used to publish the transaction." }, "functionSelector": "de26c4a1", "implemented": true, "kind": "function", "modifiers": [], "name": "getL1GasUsed", "nameLocation": "4984:12:144", "parameters": { "id": 90028, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 90027, "mutability": "mutable", "name": "_data", "nameLocation": "5010:5:144", "nodeType": "VariableDeclaration", "scope": 90053, "src": "4997:18:144", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 90026, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4997:5:144", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }], "src": "4996:20:144" }, "returnParameters": { "id": 90031, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 90030, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 90053, "src": "5038:7:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90029, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5038:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "5037:9:144" }, "scope": 90202, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 90097, "nodeType": "FunctionDefinition", "src": "5468:351:144", "nodes": [], "body": { "id": 90096, "nodeType": "Block", "src": "5546:273:144", "nodes": [], "statements": [{ "assignments": [90062], "declarations": [{ "constant": false, "id": 90062, "mutability": "mutable", "name": "l1GasUsed", "nameLocation": "5564:9:144", "nodeType": "VariableDeclaration", "scope": 90096, "src": "5556:17:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90061, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5556:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 90066, "initialValue": { "arguments": [{ "id": 90064, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90056, "src": "5592:5:144", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }], "id": 90063, "name": "_getCalldataGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90201, "src": "5576:15:144", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$", "typeString": "function (bytes memory) pure returns (uint256)" } }, "id": 90065, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5576:22:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5556:42:144" }, { "assignments": [90068], "declarations": [{ "constant": false, "id": 90068, "mutability": "mutable", "name": "fee", "nameLocation": "5616:3:144", "nodeType": "VariableDeclaration", "scope": 90096, "src": "5608:11:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90067, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5608:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 90088, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90087, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90080, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "components": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90076, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 90069, "name": "l1GasUsed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90062, "src": "5623:9:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [{ "expression": { "id": 90071, "name": "Predeploys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104124, "src": "5643:10:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Predeploys_$104124_$", "typeString": "type(library Predeploys)" } }, "id": 90072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "L1_BLOCK_ATTRIBUTES", "nodeType": "MemberAccess", "referencedDeclaration": 104027, "src": "5643:30:144", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], "id": 90070, "name": "L1Block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90318, "src": "5635:7:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_L1Block_$90318_$", "typeString": "type(contract L1Block)" } }, "id": 90073, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5635:39:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_L1Block_$90318", "typeString": "contract L1Block" } }, "id": 90074, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "l1FeeOverhead", "nodeType": "MemberAccess", "referencedDeclaration": 90240, "src": "5635:53:144", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 90075, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5635:55:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5623:67:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "id": 90077, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "5622:69:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 90078, "name": "l1BaseFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89973, "src": "5694:9:144", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, "id": 90079, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5694:11:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5622:83:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "arguments": [{ "expression": { "id": 90082, "name": "Predeploys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 104124, "src": "5728:10:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Predeploys_$104124_$", "typeString": "type(library Predeploys)" } }, "id": 90083, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "L1_BLOCK_ATTRIBUTES", "nodeType": "MemberAccess", "referencedDeclaration": 104027, "src": "5728:30:144", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_address", "typeString": "address" }], "id": 90081, "name": "L1Block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90318, "src": "5720:7:144", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_L1Block_$90318_$", "typeString": "type(contract L1Block)" } }, "id": 90084, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5720:39:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_L1Block_$90318", "typeString": "contract L1Block" } }, "id": 90085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "l1FeeScalar", "nodeType": "MemberAccess", "referencedDeclaration": 90243, "src": "5720:51:144", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 90086, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "5720:53:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5622:151:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "5608:165:144" }, { "expression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 90089, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90068, "src": "5790:3:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "components": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90092, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", "id": 90090, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "5797:2:144", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "id": 90091, "name": "DECIMALS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89843, "src": "5803:8:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5797:14:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "id": 90093, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "5796:16:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "5790:22:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 90060, "id": 90095, "nodeType": "Return", "src": "5783:29:144" }] }, "documentation": { "id": 90054, "nodeType": "StructuredDocumentation", "src": "5261:202:144", "text": "@notice Computation of the L1 portion of the fee for Bedrock.\n @param _data Unsigned fully RLP-encoded transaction to get the L1 fee for.\n @return L1 fee that should be paid for the tx" }, "implemented": true, "kind": "function", "modifiers": [], "name": "_getL1FeeBedrock", "nameLocation": "5477:16:144", "parameters": { "id": 90057, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 90056, "mutability": "mutable", "name": "_data", "nameLocation": "5507:5:144", "nodeType": "VariableDeclaration", "scope": 90097, "src": "5494:18:144", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 90055, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5494:5:144", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }], "src": "5493:20:144" }, "returnParameters": { "id": 90060, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 90059, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 90097, "src": "5537:7:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90058, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5537:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "5536:9:144" }, "scope": 90202, "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "id": 90148, "nodeType": "FunctionDefinition", "src": "6015:393:144", "nodes": [], "body": { "id": 90147, "nodeType": "Block", "src": "6093:315:144", "nodes": [], "statements": [{ "assignments": [90106], "declarations": [{ "constant": false, "id": 90106, "mutability": "mutable", "name": "l1GasUsed", "nameLocation": "6111:9:144", "nodeType": "VariableDeclaration", "scope": 90147, "src": "6103:17:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90105, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6103:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 90110, "initialValue": { "arguments": [{ "id": 90108, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90100, "src": "6139:5:144", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }], "expression": { "argumentTypes": [{ "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }], "id": 90107, "name": "_getCalldataGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90201, "src": "6123:15:144", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$", "typeString": "function (bytes memory) pure returns (uint256)" } }, "id": 90109, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6123:22:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6103:42:144" }, { "assignments": [90112], "declarations": [{ "constant": false, "id": 90112, "mutability": "mutable", "name": "scaledBaseFee", "nameLocation": "6163:13:144", "nodeType": "VariableDeclaration", "scope": 90147, "src": "6155:21:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90111, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6155:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 90120, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90119, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 90116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 90113, "name": "baseFeeScalar", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90001, "src": "6179:13:144", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint32_$", "typeString": "function () view returns (uint32)" } }, "id": 90114, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6179:15:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "hexValue": "3136", "id": 90115, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6197:2:144", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, "src": "6179:20:144", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 90117, "name": "l1BaseFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89973, "src": "6202:9:144", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, "id": 90118, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6202:11:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6179:34:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6155:58:144" }, { "assignments": [90122], "declarations": [{ "constant": false, "id": 90122, "mutability": "mutable", "name": "scaledBlobBaseFee", "nameLocation": "6231:17:144", "nodeType": "VariableDeclaration", "scope": 90147, "src": "6223:25:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90121, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6223:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 90128, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90127, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 90123, "name": "blobBaseFeeScalar", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90015, "src": "6251:17:144", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint32_$", "typeString": "function () view returns (uint32)" } }, "id": 90124, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6251:19:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 90125, "name": "blobBaseFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89987, "src": "6273:11:144", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, "id": 90126, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "6273:13:144", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6251:35:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6223:63:144" }, { "assignments": [90130], "declarations": [{ "constant": false, "id": 90130, "mutability": "mutable", "name": "fee", "nameLocation": "6304:3:144", "nodeType": "VariableDeclaration", "scope": 90147, "src": "6296:11:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90129, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6296:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 90137, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90136, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 90131, "name": "l1GasUsed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90106, "src": "6310:9:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "components": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90134, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 90132, "name": "scaledBaseFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90112, "src": "6323:13:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 90133, "name": "scaledBlobBaseFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90122, "src": "6339:17:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6323:33:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "id": 90135, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "6322:35:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6310:47:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6296:61:144" }, { "expression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90145, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 90138, "name": "fee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90130, "src": "6374:3:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "components": [{ "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90143, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3136", "id": 90139, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6381:2:144", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90142, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", "id": 90140, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6386:2:144", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, "value": "10" }, "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { "id": 90141, "name": "DECIMALS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 89843, "src": "6392:8:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6386:14:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6381:19:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }], "id": 90144, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "6380:21:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6374:27:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 90104, "id": 90146, "nodeType": "Return", "src": "6367:34:144" }] }, "documentation": { "id": 90098, "nodeType": "StructuredDocumentation", "src": "5825:185:144", "text": "@notice L1 portion of the fee after Ecotone.\n @param _data Unsigned fully RLP-encoded transaction to get the L1 fee for.\n @return L1 fee that should be paid for the tx" }, "implemented": true, "kind": "function", "modifiers": [], "name": "_getL1FeeEcotone", "nameLocation": "6024:16:144", "parameters": { "id": 90101, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 90100, "mutability": "mutable", "name": "_data", "nameLocation": "6054:5:144", "nodeType": "VariableDeclaration", "scope": 90148, "src": "6041:18:144", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 90099, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6041:5:144", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }], "src": "6040:20:144" }, "returnParameters": { "id": 90104, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 90103, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 90148, "src": "6084:7:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90102, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6084:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "6083:9:144" }, "scope": 90202, "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "id": 90201, "nodeType": "FunctionDefinition", "src": "6610:366:144", "nodes": [], "body": { "id": 90200, "nodeType": "Block", "src": "6687:289:144", "nodes": [], "statements": [{ "assignments": [90157], "declarations": [{ "constant": false, "id": 90157, "mutability": "mutable", "name": "total", "nameLocation": "6705:5:144", "nodeType": "VariableDeclaration", "scope": 90200, "src": "6697:13:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90156, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6697:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 90159, "initialValue": { "hexValue": "30", "id": 90158, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6713:1:144", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "6697:17:144" }, { "assignments": [90161], "declarations": [{ "constant": false, "id": 90161, "mutability": "mutable", "name": "length", "nameLocation": "6732:6:144", "nodeType": "VariableDeclaration", "scope": 90200, "src": "6724:14:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90160, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6724:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 90164, "initialValue": { "expression": { "id": 90162, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90151, "src": "6741:5:144", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 90163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "src": "6741:12:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "6724:29:144" }, { "body": { "id": 90191, "nodeType": "Block", "src": "6800:136:144", "statements": [{ "condition": { "commonType": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" }, "id": 90179, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { "id": 90175, "name": "_data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90151, "src": "6818:5:144", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 90177, "indexExpression": { "id": 90176, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90166, "src": "6824:1:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6818:8:144", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 90178, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6830:1:144", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "6818:13:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 90189, "nodeType": "Block", "src": "6882:44:144", "statements": [{ "expression": { "id": 90187, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 90185, "name": "total", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90157, "src": "6900:5:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "hexValue": "3136", "id": 90186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6909:2:144", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, "src": "6900:11:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 90188, "nodeType": "ExpressionStatement", "src": "6900:11:144" }] }, "id": 90190, "nodeType": "IfStatement", "src": "6814:112:144", "trueBody": { "id": 90184, "nodeType": "Block", "src": "6833:43:144", "statements": [{ "expression": { "id": 90182, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 90180, "name": "total", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90157, "src": "6851:5:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "hexValue": "34", "id": 90181, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6860:1:144", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "src": "6851:10:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 90183, "nodeType": "ExpressionStatement", "src": "6851:10:144" }] } }] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90171, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 90169, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90166, "src": "6783:1:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "id": 90170, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90161, "src": "6787:6:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "6783:10:144", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 90192, "initializationExpression": { "assignments": [90166], "declarations": [{ "constant": false, "id": 90166, "mutability": "mutable", "name": "i", "nameLocation": "6776:1:144", "nodeType": "VariableDeclaration", "scope": 90192, "src": "6768:9:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90165, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6768:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "id": 90168, "initialValue": { "hexValue": "30", "id": 90167, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6780:1:144", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "6768:13:144" }, "loopExpression": { "expression": { "id": 90173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "6795:3:144", "subExpression": { "id": 90172, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90166, "src": "6795:1:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 90174, "nodeType": "ExpressionStatement", "src": "6795:3:144" }, "nodeType": "ForStatement", "src": "6763:173:144" }, { "expression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 90198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 90193, "name": "total", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90157, "src": "6952:5:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "components": [{ "commonType": { "typeIdentifier": "t_rational_1088_by_1", "typeString": "int_const 1088" }, "id": 90196, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3638", "id": 90194, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6961:2:144", "typeDescriptions": { "typeIdentifier": "t_rational_68_by_1", "typeString": "int_const 68" }, "value": "68" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "hexValue": "3136", "id": 90195, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6966:2:144", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, "src": "6961:7:144", "typeDescriptions": { "typeIdentifier": "t_rational_1088_by_1", "typeString": "int_const 1088" } }], "id": 90197, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "6960:9:144", "typeDescriptions": { "typeIdentifier": "t_rational_1088_by_1", "typeString": "int_const 1088" } }, "src": "6952:17:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 90155, "id": 90199, "nodeType": "Return", "src": "6945:24:144" }] }, "documentation": { "id": 90149, "nodeType": "StructuredDocumentation", "src": "6414:191:144", "text": "@notice L1 gas estimation calculation.\n @param _data Unsigned fully RLP-encoded transaction to get the L1 gas for.\n @return Amount of L1 gas used to publish the transaction." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_getCalldataGas", "nameLocation": "6619:15:144", "parameters": { "id": 90152, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 90151, "mutability": "mutable", "name": "_data", "nameLocation": "6648:5:144", "nodeType": "VariableDeclaration", "scope": 90201, "src": "6635:18:144", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 90150, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6635:5:144", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }], "src": "6634:20:144" }, "returnParameters": { "id": 90155, "nodeType": "ParameterList", "parameters": [{ "constant": false, "id": 90154, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 90201, "src": "6678:7:144", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 90153, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6678:7:144", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }], "src": "6677:9:144" }, "scope": 90202, "stateMutability": "pure", "virtual": false, "visibility": "internal" }], "abstract": false, "baseContracts": [{ "baseName": { "id": 89838, "name": "ISemver", "nodeType": "IdentifierPath", "referencedDeclaration": 109417, "src": "1180:7:144" }, "id": 89839, "nodeType": "InheritanceSpecifier", "src": "1180:7:144" }], "canonicalName": "GasPriceOracle", "contractDependencies": [], "contractKind": "contract", "documentation": { "id": 89837, "nodeType": "StructuredDocumentation", "src": "216:937:144", "text": "@custom:proxied\n @custom:predeploy 0x420000000000000000000000000000000000000F\n @title GasPriceOracle\n @notice This contract maintains the variables responsible for computing the L1 portion of the\n         total fee charged on L2. Before Bedrock, this contract held variables in state that were\n         read during the state transition function to compute the L1 portion of the transaction\n         fee. After Bedrock, this contract now simply proxies the L1Block contract, which has\n         the values used to compute the L1 portion of the fee in its state.\n         The contract exposes an API that is useful for knowing how large the L1 portion of the\n         transaction fee will be. The following events were deprecated with Bedrock:\n         - event OverheadUpdated(uint256 overhead);\n         - event ScalarUpdated(uint256 scalar);\n         - event DecimalsUpdated(uint256 decimals);" }, "fullyImplemented": true, "linearizedBaseContracts": [90202, 109417], "name": "GasPriceOracle", "nameLocation": "1162:14:144", "scope": 90203, "usedErrors": [] }], "license": "MIT" }, "id": 144 }
