From de1d237e5bf881720fd900beb7dae6e9898d8a20 Mon Sep 17 00:00:00 2001 From: pcw109550 Date: Wed, 12 Jun 2024 16:43:00 -0400 Subject: [PATCH 1/5] Remove more suffixed bindings --- rvgo/bindings/preimageoracle_more.go | 27 ------ rvgo/bindings/registry.go | 128 --------------------------- rvgo/bindings/riscv_more.go | 27 ------ 3 files changed, 182 deletions(-) delete mode 100644 rvgo/bindings/preimageoracle_more.go delete mode 100644 rvgo/bindings/registry.go delete mode 100644 rvgo/bindings/riscv_more.go diff --git a/rvgo/bindings/preimageoracle_more.go b/rvgo/bindings/preimageoracle_more.go deleted file mode 100644 index 7e543f93..00000000 --- a/rvgo/bindings/preimageoracle_more.go +++ /dev/null @@ -1,27 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package bindings - -import ( - "encoding/json" - - "github.com/ethereum-optimism/optimism/op-bindings/solc" -) - -const PreimageOracleStorageLayoutJSON = "{\"storage\":null,\"types\":{}}" - -var PreimageOracleStorageLayout = new(solc.StorageLayout) - -var PreimageOracleDeployedBin = "0x6080604052600436106101cd5760003560e01c80638dc4be11116100f7578063dd24f9bf11610095578063ec5efcbc11610064578063ec5efcbc1461065f578063f3f480d91461067f578063faf37bc7146106b2578063fef2b4ed146106c557600080fd5b8063dd24f9bf1461059f578063ddcd58de146105d2578063e03110e11461060a578063e15926111461063f57600080fd5b8063b2e67ba8116100d1578063b2e67ba814610512578063b4801e611461054a578063d18534b51461056a578063da35c6641461058a57600080fd5b80638dc4be11146104835780639d53a648146104a35780639d7e8769146104f257600080fd5b806354fd4d501161016f5780637917de1d1161013e5780637917de1d146103bf5780637ac54767146103df5780638542cf50146103ff578063882856ef1461044a57600080fd5b806354fd4d50146102dd57806361238bde146103335780636551927b1461036b5780637051472e146103a357600080fd5b80632055b36b116101ab5780632055b36b146102735780633909af5c146102885780634d52b4c9146102a857806352f0f3ad146102bd57600080fd5b8063013cf08b146101d25780630359a5631461022357806304697c7814610251575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612d1c565b6106f2565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152015b60405180910390f35b34801561022f57600080fd5b5061024361023e366004612d5e565b610737565b60405190815260200161021a565b34801561025d57600080fd5b5061027161026c366004612dd1565b61086f565b005b34801561027f57600080fd5b50610243601081565b34801561029457600080fd5b506102716102a3366004612ff5565b6109a5565b3480156102b457600080fd5b50610243610bfc565b3480156102c957600080fd5b506102436102d83660046130e1565b610c17565b3480156102e957600080fd5b506103266040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161021a9190613148565b34801561033f57600080fd5b5061024361034e366004613199565b600160209081526000928352604080842090915290825290205481565b34801561037757600080fd5b50610243610386366004612d5e565b601560209081526000928352604080842090915290825290205481565b3480156103af57600080fd5b506102436703782dace9d9000081565b3480156103cb57600080fd5b506102716103da3660046131bb565b610cec565b3480156103eb57600080fd5b506102436103fa366004612d1c565b6111dc565b34801561040b57600080fd5b5061043a61041a366004613199565b600260209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161021a565b34801561045657600080fd5b5061046a610465366004613257565b6111f3565b60405167ffffffffffffffff909116815260200161021a565b34801561048f57600080fd5b5061027161049e36600461328a565b61124d565b3480156104af57600080fd5b506102436104be366004612d5e565b73ffffffffffffffffffffffffffffffffffffffff9091166000908152601860209081526040808320938352929052205490565b3480156104fe57600080fd5b5061027161050d3660046132d6565b611348565b34801561051e57600080fd5b5061024361052d366004612d5e565b601760209081526000928352604080842090915290825290205481565b34801561055657600080fd5b50610243610565366004613257565b6114ff565b34801561057657600080fd5b50610271610585366004612ff5565b611531565b34801561059657600080fd5b50601354610243565b3480156105ab57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610243565b3480156105de57600080fd5b506102436105ed366004612d5e565b601660209081526000928352604080842090915290825290205481565b34801561061657600080fd5b5061062a610625366004613199565b6118f3565b6040805192835260208301919091520161021a565b34801561064b57600080fd5b5061027161065a36600461328a565b6119e4565b34801561066b57600080fd5b5061027161067a366004613362565b611aec565b34801561068b57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610243565b6102716106c03660046133fb565b611c72565b3480156106d157600080fd5b506102436106e0366004612d1c565b60006020819052908152604090205481565b6013818154811061070257600080fd5b60009182526020909120600290910201805460019091015473ffffffffffffffffffffffffffffffffffffffff909116915082565b73ffffffffffffffffffffffffffffffffffffffff82166000908152601560209081526040808320848452909152812054819061077a9060601c63ffffffff1690565b63ffffffff16905060005b6010811015610867578160011660010361080d5773ffffffffffffffffffffffffffffffffffffffff85166000908152601460209081526040808320878452909152902081601081106107da576107da613437565b0154604080516020810192909252810184905260600160405160208183030381529060405280519060200120925061084e565b826003826010811061082157610821613437565b01546040805160208101939093528201526060016040516020818303038152906040528051906020012092505b60019190911c908061085f81613495565b915050610785565b505092915050565b600080600080608060146030823785878260140137601480870182207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f06000000000000000000000000000000000000000000000000000000000000001794506000908190889084018b5afa94503d60010191506008820189106108fc5763fe2549876000526004601cfd5b60c082901b81526008018481533d6000600183013e88017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8015160008481526002602090815260408083208c8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915587845282528083209b83529a81528a82209290925593845283905296909120959095555050505050565b60006109b18a8a610737565b90506109d486868360208b01356109cf6109ca8d6134cd565b611edd565b611f1d565b80156109f257506109f283838360208801356109cf6109ca8a6134cd565b610a28576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b866040013588604051602001610a3e919061359c565b6040516020818303038152906040528051906020012014610a8b576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836020013587602001356001610aa191906135da565b14610ad8576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b2088610ae686806135f2565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f7e92505050565b610b29886120d9565b836040013588604051602001610b3f919061359c565b6040516020818303038152906040528051906020012003610b8c576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526015602090815260408083208c8452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055610bf08a8a33612881565b50505050505050505050565b6001610c0a60106002613779565b610c149190613785565b81565b6000610c23868661293a565b9050610c308360086135da565b821180610c3d5750602083115b15610c74576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602081815260c085901b82526008959095528251828252600286526040808320858452875280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558484528752808320948352938652838220558181529384905292205592915050565b60608115610d0557610cfe86866129e7565b9050610d3f565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b3360009081526014602090815260408083208b845290915280822081516102008101928390529160109082845b815481526020019060010190808311610d6c57505050505090506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b81526020019081526020016000205490506000610ded8260601c63ffffffff1690565b63ffffffff169050333214610e2e576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e3e8260801c63ffffffff1690565b63ffffffff16600003610e7d576040517f87138d5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e878260c01c90565b67ffffffffffffffff1615610ec8576040517f475a253500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b898114610f01576040517f60f95d5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f0e89898d8886612a60565b83516020850160888204881415608883061715610f33576307b1daf16000526004601cfd5b60405160c8810160405260005b83811015610fe3578083018051835260208101516020840152604081015160408401526060810151606084015260808101516080840152508460888301526088810460051b8b013560a883015260c882206001860195508560005b610200811015610fd8576001821615610fb85782818b0152610fd8565b8981015160009081526020938452604090209260019290921c9101610f9b565b505050608801610f40565b50505050600160106002610ff79190613779565b6110019190613785565b81111561103a576040517f6229572300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110af61104d8360401c63ffffffff1690565b61105d9063ffffffff168a6135da565b60401b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff606084901b167fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff8516171790565b9150841561113c5777ffffffffffffffffffffffffffffffffffffffffffffffff82164260c01b1791506110e98260801c63ffffffff1690565b63ffffffff166110ff8360401c63ffffffff1690565b63ffffffff161461113c576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526014602090815260408083208e8452909152902061116290846010612c92565b50503360008181526018602090815260408083208e8452825280832080546001810182559084528284206004820401805460039092166008026101000a67ffffffffffffffff818102199093164390931602919091179055928252601581528282209c82529b909b52909920989098555050505050505050565b600381601081106111ec57600080fd5b0154905081565b6018602052826000526040600020602052816000526040600020818154811061121b57600080fd5b906000526020600020906004918282040191900660080292509250509054906101000a900467ffffffffffffffff1681565b60443560008060088301861061126b5763fe2549876000526004601cfd5b60c083901b60805260888386823786600882030151915060206000858360025afa90508061129857600080fd5b50600080517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0400000000000000000000000000000000000000000000000000000000000000178082526002602090815260408084208a8552825280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558385528252808420998452988152888320939093558152908190529490942055505050565b600080603087600037602060006030600060025afa806113705763f91129696000526004601cfd5b6000517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f010000000000000000000000000000000000000000000000000000000000000017608081815260a08c905260c08b905260308a60e037603088609083013760008060c083600a5afa9250826113f2576309bde3396000526004601cfd5b602886106114085763fe2549876000526004601cfd5b6000602882015278200000000000000000000000000000000000000000000000008152600881018b905285810151935060308a8237603081019b909b52505060509098207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0500000000000000000000000000000000000000000000000000000000000000176000818152600260209081526040808320868452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209583529481528482209a909a559081528089529190912096909655505050505050565b6014602052826000526040600020602052816000526040600020816010811061152757600080fd5b0154925083915050565b73ffffffffffffffffffffffffffffffffffffffff891660009081526015602090815260408083208b845290915290205467ffffffffffffffff8116156115a4576040517fc334f06900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006115cf8260c01c90565b6115e39067ffffffffffffffff1642613785565b1161161a576040517f55d4cbf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006116268b8b610737565b905061163f87878360208c01356109cf6109ca8e6134cd565b801561165d575061165d84848360208901356109cf6109ca8b6134cd565b611693576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8760400135896040516020016116a9919061359c565b60405160208183030381529060405280519060200120146116f6576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84602001358860200135600161170c91906135da565b14158061173e575060016117268360601c63ffffffff1690565b611730919061379c565b63ffffffff16856020013514155b15611775576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61178389610ae687806135f2565b61178c896120d9565b60006117978a612bb3565b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f020000000000000000000000000000000000000000000000000000000000000017905060006117ee8460a01c63ffffffff1690565b67ffffffffffffffff169050600160026000848152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff021916908315150217905550601760008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d815260200190815260200160002054600160008481526020019081526020016000206000838152602001908152602001600020819055506118c08460801c63ffffffff1690565b600083815260208190526040902063ffffffff9190911690556118e48d8d81612881565b50505050505050505050505050565b6000828152600260209081526040808320848452909152812054819060ff1661197c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7072652d696d616765206d757374206578697374000000000000000000000000604482015260640160405180910390fd5b50600083815260208181526040909120546119988160086135da565b6119a38560206135da565b106119c157836119b48260086135da565b6119be9190613785565b91505b506000938452600160209081526040808620948652939052919092205492909150565b604435600080600883018610611a025763fe2549876000526004601cfd5b60c083901b6080526088838682378087017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80151908490207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f02000000000000000000000000000000000000000000000000000000000000001760008181526002602090815260408083208b8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209a83529981528982209390935590815290819052959095209190915550505050565b6000611af88686610737565b9050611b1183838360208801356109cf6109ca8a6134cd565b611b47576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084013515611b83576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b8b612cd0565b611b9981610ae687806135f2565b611ba2816120d9565b846040013581604051602001611bb8919061359c565b6040516020818303038152906040528051906020012003611c05576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152601560209081526040808320898452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055611c69878733612881565b50505050505050565b6703782dace9d90000341015611cb4576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b333214611ced576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611cf88160086137c1565b63ffffffff168263ffffffff1610611d3c576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008163ffffffff161015611d9c576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000818152601560209081526040808320878452825280832080547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1660a09790971b7fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff169690961760809590951b949094179094558251808401845282815280850186815260138054600181018255908452915160029092027f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0908101805473ffffffffffffffffffffffffffffffffffffffff9094167fffffffffffffffffffffffff000000000000000000000000000000000000000090941693909317909255517f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0919091015590815260168352818120938152929091529020349055565b6000816000015182602001518360400151604051602001611f00939291906137e9565b604051602081830303815290604052805190602001209050919050565b60008160005b6010811015611f71578060051b880135600186831c1660018114611f565760008481526020839052604090209350611f67565b600082815260208590526040902093505b5050600101611f23565b5090931495945050505050565b6088815114611f8c57600080fd5b602081016020830161200d565b8260031b8201518060001a8160011a60081b178160021a60101b8260031a60181b17178160041a60201b8260051a60281b178260061a60301b8360071a60381b171717905061200781611ff2868560059190911b015190565b1867ffffffffffffffff16600586901b840152565b50505050565b61201960008383611f99565b61202560018383611f99565b61203160028383611f99565b61203d60038383611f99565b61204960048383611f99565b61205560058383611f99565b61206160068383611f99565b61206d60078383611f99565b61207960088383611f99565b61208560098383611f99565b612091600a8383611f99565b61209d600b8383611f99565b6120a9600c8383611f99565b6120b5600d8383611f99565b6120c1600e8383611f99565b6120cd600f8383611f99565b61200760108383611f99565b6040805178010000000000008082800000000000808a8000000080008000602082015279808b00000000800000018000000080008081800000000000800991810191909152788a00000000000000880000000080008009000000008000000a60608201527b8000808b800000000000008b8000000000008089800000000000800360808201527f80000000000080028000000000000080000000000000800a800000008000000a60a08201527f800000008000808180000000000080800000000080000001800000008000800860c082015260009060e00160405160208183030381529060405290506020820160208201612761565b6102808101516101e082015161014083015160a0840151845118189118186102a082015161020083015161016084015160c0850151602086015118189118186102c083015161022084015161018085015160e0860151604087015118189118186102e08401516102408501516101a0860151610100870151606088015118189118186103008501516102608601516101c0870151610120880151608089015118189118188084603f1c61228c8660011b67ffffffffffffffff1690565b18188584603f1c6122a78660011b67ffffffffffffffff1690565b18188584603f1c6122c28660011b67ffffffffffffffff1690565b181895508483603f1c6122df8560011b67ffffffffffffffff1690565b181894508387603f1c6122fc8960011b67ffffffffffffffff1690565b60208b01518b51861867ffffffffffffffff168c5291189190911897508118600181901b603f9190911c18935060c08801518118601481901c602c9190911b1867ffffffffffffffff1660208901526101208801518718602c81901c60149190911b1867ffffffffffffffff1660c08901526102c08801518618600381901c603d9190911b1867ffffffffffffffff166101208901526101c08801518718601981901c60279190911b1867ffffffffffffffff166102c08901526102808801518218602e81901c60129190911b1867ffffffffffffffff166101c089015260408801518618600281901c603e9190911b1867ffffffffffffffff166102808901526101808801518618601581901c602b9190911b1867ffffffffffffffff1660408901526101a08801518518602781901c60199190911b1867ffffffffffffffff166101808901526102608801518718603881901c60089190911b1867ffffffffffffffff166101a08901526102e08801518518600881901c60389190911b1867ffffffffffffffff166102608901526101e08801518218601781901c60299190911b1867ffffffffffffffff166102e089015260808801518718602581901c601b9190911b1867ffffffffffffffff166101e08901526103008801518718603281901c600e9190911b1867ffffffffffffffff1660808901526102a08801518118603e81901c60029190911b1867ffffffffffffffff166103008901526101008801518518600981901c60379190911b1867ffffffffffffffff166102a08901526102008801518118601381901c602d9190911b1867ffffffffffffffff1661010089015260a08801518218601c81901c60249190911b1867ffffffffffffffff1661020089015260608801518518602481901c601c9190911b1867ffffffffffffffff1660a08901526102408801518518602b81901c60159190911b1867ffffffffffffffff1660608901526102208801518618603181901c600f9190911b1867ffffffffffffffff166102408901526101608801518118603681901c600a9190911b1867ffffffffffffffff166102208901525060e08701518518603a81901c60069190911b1867ffffffffffffffff166101608801526101408701518118603d81901c60039190911b1867ffffffffffffffff1660e0880152505067ffffffffffffffff81166101408601525b5050505050565b600582811b8201805160018501831b8401805160028701851b8601805160038901871b8801805160048b0190981b8901805167ffffffffffffffff861985168918811690995283198a16861889169096528819861683188816909352841986168818871690528419831684189095169052919391929190611c69565b6126fb600082612674565b612706600582612674565b612711600a82612674565b61271c600f82612674565b612727601482612674565b50565b612733816121cf565b61273c816126f0565b600383901b820151815160c09190911c9061200790821867ffffffffffffffff168352565b61276d6000828461272a565b6127796001828461272a565b6127856002828461272a565b6127916003828461272a565b61279d6004828461272a565b6127a96005828461272a565b6127b56006828461272a565b6127c16007828461272a565b6127cd6008828461272a565b6127d96009828461272a565b6127e5600a828461272a565b6127f1600b828461272a565b6127fd600c828461272a565b612809600d828461272a565b612815600e828461272a565b612821600f828461272a565b61282d6010828461272a565b6128396011828461272a565b6128456012828461272a565b6128516013828461272a565b61285d6014828461272a565b6128696015828461272a565b6128756016828461272a565b6120076017828461272a565b73ffffffffffffffffffffffffffffffffffffffff83811660009081526016602090815260408083208684529091528082208054908390559051909284169083908381818185875af1925050503d80600081146128fa576040519150601f19603f3d011682016040523d82523d6000602084013e6128ff565b606091505b505090508061266d576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8316176129e0818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b6060604051905081602082018181018286833760888306808015612a305760888290038501848101848103803687375060806001820353506001845160001a1784538652612a47565b608836843760018353608060878401536088850186525b5050505050601f19603f82510116810160405292915050565b6000612a728260a01c63ffffffff1690565b67ffffffffffffffff1690506000612a908360801c63ffffffff1690565b63ffffffff1690506000612aaa8460401c63ffffffff1690565b63ffffffff169050600883108015612ac0575080155b15612af45760c082901b6000908152883560085283513382526017602090815260408084208a855290915290912055612ba9565b60088310158015612b12575080612b0c600885613785565b93508310155b8015612b265750612b2387826135da565b83105b15612ba9576000612b378285613785565b905087612b458260206135da565b10158015612b51575085155b15612b88576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526017602090815260408083208a845290915290209089013590555b5050505050505050565b6000612c36565b66ff00ff00ff00ff8160081c1667ff00ff00ff00ff00612be48360081b67ffffffffffffffff1690565b1617905065ffff0000ffff8160101c1667ffff0000ffff0000612c118360101b67ffffffffffffffff1690565b1617905060008160201c612c2f8360201b67ffffffffffffffff1690565b1792915050565b60808201516020830190612c4e90612bba565b612bba565b6040820151612c5c90612bba565b60401b17612c74612c4960018460059190911b015190565b825160809190911b90612c8690612bba565b60c01b17179392505050565b8260108101928215612cc0579160200282015b82811115612cc0578251825591602001919060010190612ca5565b50612ccc929150612ce8565b5090565b6040518060200160405280612ce3612cfd565b905290565b5b80821115612ccc5760008155600101612ce9565b6040518061032001604052806019906020820280368337509192915050565b600060208284031215612d2e57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114612d5957600080fd5b919050565b60008060408385031215612d7157600080fd5b612d7a83612d35565b946020939093013593505050565b60008083601f840112612d9a57600080fd5b50813567ffffffffffffffff811115612db257600080fd5b602083019150836020828501011115612dca57600080fd5b9250929050565b60008060008060608587031215612de757600080fd5b84359350612df760208601612d35565b9250604085013567ffffffffffffffff811115612e1357600080fd5b612e1f87828801612d88565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610320810167ffffffffffffffff81118282101715612e7e57612e7e612e2b565b60405290565b6040516060810167ffffffffffffffff81118282101715612e7e57612e7e612e2b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612eee57612eee612e2b565b604052919050565b6000610320808385031215612f0a57600080fd5b604051602080820167ffffffffffffffff8382108183111715612f2f57612f2f612e2b565b8160405283955087601f880112612f4557600080fd5b612f4d612e5a565b9487019491508188861115612f6157600080fd5b875b86811015612f895780358381168114612f7c5760008081fd5b8452928401928401612f63565b50909352509295945050505050565b600060608284031215612faa57600080fd5b50919050565b60008083601f840112612fc257600080fd5b50813567ffffffffffffffff811115612fda57600080fd5b6020830191508360208260051b8501011115612dca57600080fd5b60008060008060008060008060006103e08a8c03121561301457600080fd5b61301d8a612d35565b985060208a013597506130338b60408c01612ef6565b96506103608a013567ffffffffffffffff8082111561305157600080fd5b61305d8d838e01612f98565b97506103808c013591508082111561307457600080fd5b6130808d838e01612fb0565b90975095506103a08c013591508082111561309a57600080fd5b6130a68d838e01612f98565b94506103c08c01359150808211156130bd57600080fd5b506130ca8c828d01612fb0565b915080935050809150509295985092959850929598565b600080600080600060a086880312156130f957600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60005b8381101561313757818101518382015260200161311f565b838111156120075750506000910152565b602081526000825180602084015261316781604085016020870161311c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600080604083850312156131ac57600080fd5b50508035926020909101359150565b600080600080600080600060a0888a0312156131d657600080fd5b8735965060208801359550604088013567ffffffffffffffff808211156131fc57600080fd5b6132088b838c01612d88565b909750955060608a013591508082111561322157600080fd5b5061322e8a828b01612fb0565b9094509250506080880135801515811461324757600080fd5b8091505092959891949750929550565b60008060006060848603121561326c57600080fd5b61327584612d35565b95602085013595506040909401359392505050565b60008060006040848603121561329f57600080fd5b83359250602084013567ffffffffffffffff8111156132bd57600080fd5b6132c986828701612d88565b9497909650939450505050565b600080600080600080600060a0888a0312156132f157600080fd5b8735965060208801359550604088013567ffffffffffffffff8082111561331757600080fd5b6133238b838c01612d88565b909750955060608a013591508082111561333c57600080fd5b506133498a828b01612d88565b989b979a50959894979596608090950135949350505050565b60008060008060006080868803121561337a57600080fd5b61338386612d35565b945060208601359350604086013567ffffffffffffffff808211156133a757600080fd5b6133b389838a01612f98565b945060608801359150808211156133c957600080fd5b506133d688828901612fb0565b969995985093965092949392505050565b803563ffffffff81168114612d5957600080fd5b60008060006060848603121561341057600080fd5b83359250613420602085016133e7565b915061342e604085016133e7565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134c6576134c6613466565b5060010190565b6000606082360312156134df57600080fd5b6134e7612e84565b823567ffffffffffffffff808211156134ff57600080fd5b9084019036601f83011261351257600080fd5b813560208282111561352657613526612e2b565b613556817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612ea7565b9250818352368183860101111561356c57600080fd5b81818501828501376000918301810191909152908352848101359083015250604092830135928101929092525090565b81516103208201908260005b60198110156135d157825167ffffffffffffffff168252602092830192909101906001016135a8565b50505092915050565b600082198211156135ed576135ed613466565b500190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261362757600080fd5b83018035915067ffffffffffffffff82111561364257600080fd5b602001915036819003821315612dca57600080fd5b600181815b808511156136b057817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561369657613696613466565b808516156136a357918102915b93841c939080029061365c565b509250929050565b6000826136c757506001613773565b816136d457506000613773565b81600181146136ea57600281146136f457613710565b6001915050613773565b60ff84111561370557613705613466565b50506001821b613773565b5060208310610133831016604e8410600b8410161715613733575081810a613773565b61373d8383613657565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561376f5761376f613466565b0290505b92915050565b60006129e083836136b8565b60008282101561379757613797613466565b500390565b600063ffffffff838116908316818110156137b9576137b9613466565b039392505050565b600063ffffffff8083168185168083038211156137e0576137e0613466565b01949350505050565b600084516137fb81846020890161311c565b9190910192835250602082015260400191905056fea26469706673582212203eea3ab996394eed5b784a162e5609658d9de3de8391b1f5031feb87ef5390cd64736f6c634300080f0033" - - -func init() { - if err := json.Unmarshal([]byte(PreimageOracleStorageLayoutJSON), PreimageOracleStorageLayout); err != nil { - panic(err) - } - - layouts["PreimageOracle"] = PreimageOracleStorageLayout - deployedBytecodes["PreimageOracle"] = PreimageOracleDeployedBin - immutableReferences["PreimageOracle"] = true -} diff --git a/rvgo/bindings/registry.go b/rvgo/bindings/registry.go deleted file mode 100644 index 32e31e0a..00000000 --- a/rvgo/bindings/registry.go +++ /dev/null @@ -1,128 +0,0 @@ -package bindings - -import ( - "fmt" - "strings" - - "github.com/ethereum-optimism/superchain-registry/superchain" - - "github.com/ethereum-optimism/optimism/op-bindings/solc" - "github.com/ethereum/go-ethereum/common" -) - -// layouts represents the set of storage layouts. It is populated in an init function. -var layouts = make(map[string]*solc.StorageLayout) - -// deployedBytecodes represents the set of deployed bytecodes. It is populated -// in an init function. -var deployedBytecodes = make(map[string]string) - -var initBytecodes = make(map[string]string) -var deploymentSalts = make(map[string]string) -var deployers = make(map[string]string) - -// immutableReferences represents the set of immutable references. It is populated -// in an init function. -var immutableReferences = make(map[string]bool) - -// Create2DeployerCodeHash represents the codehash of the Create2Deployer contract. -var Create2DeployerCodeHash = common.HexToHash("0xb0550b5b431e30d38000efb7107aaa0ade03d48a7198a140edda9d27134468b2") - -func init() { - code, err := superchain.LoadContractBytecode(superchain.Hash(Create2DeployerCodeHash)) - if err != nil { - panic(err) - } - deployedBytecodes["Create2Deployer"] = common.Bytes2Hex(code) -} - -// GetStorageLayout returns the storage layout of a contract by name. -func GetStorageLayout(name string) (*solc.StorageLayout, error) { - layout := layouts[name] - if layout == nil { - return nil, fmt.Errorf("%s: storage layout not found", name) - } - return layout, nil -} - -// GetDeployedBytecode returns the deployed bytecode of a contract by name. -func GetDeployedBytecode(name string) ([]byte, error) { - bc := deployedBytecodes[name] - if bc == "" { - return nil, fmt.Errorf("%s: deployed bytecode not found", name) - } - - if !isHex(bc) { - return nil, fmt.Errorf("%s: invalid deployed bytecode", name) - } - - return common.FromHex(bc), nil -} - -// HasImmutableReferences returns the immutable references of a contract by name. -func HasImmutableReferences(name string) (bool, error) { - has, ok := immutableReferences[name] - if !ok { - return false, fmt.Errorf("%s: immutable reference not found", name) - } - return has, nil -} - -func GetInitBytecode(name string) ([]byte, error) { - bc := initBytecodes[name] - if bc == "" { - return nil, fmt.Errorf("%s: init bytecode not found", name) - } - - if !isHex(bc) { - return nil, fmt.Errorf("%s: invalid init bytecode", name) - } - - return common.FromHex(bc), nil -} - -func GetDeployerAddress(name string) ([]byte, error) { - addr := deployers[name] - if addr == "" { - return nil, fmt.Errorf("%s: deployer address not found", name) - } - - if !common.IsHexAddress(addr) { - return nil, fmt.Errorf("%s: invalid deployer address", name) - } - - return common.FromHex(addr), nil -} - -func GetDeploymentSalt(name string) ([]byte, error) { - salt := deploymentSalts[name] - if salt == "" { - return nil, fmt.Errorf("%s: deployment salt not found", name) - } - - if !isHex(salt) { - return nil, fmt.Errorf("%s: invalid deployment salt", name) - } - - return common.FromHex(salt), nil -} - -// isHexCharacter returns bool of c being a valid hexadecimal. -func isHexCharacter(c byte) bool { - return ('0' <= c && c <= '9') || ('a' <= c && c <= 'f') || ('A' <= c && c <= 'F') -} - -// isHex validates whether each byte is valid hexadecimal string. -func isHex(str string) bool { - if len(str)%2 != 0 { - return false - } - str = strings.TrimPrefix(str, "0x") - - for _, c := range []byte(str) { - if !isHexCharacter(c) { - return false - } - } - return true -} diff --git a/rvgo/bindings/riscv_more.go b/rvgo/bindings/riscv_more.go deleted file mode 100644 index cecf2eb1..00000000 --- a/rvgo/bindings/riscv_more.go +++ /dev/null @@ -1,27 +0,0 @@ -// Code generated - DO NOT EDIT. -// This file is a generated binding and any manual changes will be lost. - -package bindings - -import ( - "encoding/json" - - "github.com/ethereum-optimism/optimism/op-bindings/solc" -) - -const RISCVStorageLayoutJSON = "{\"storage\":null,\"types\":{}}" - -var RISCVStorageLayout = new(solc.StorageLayout) - -var RISCVDeployedBin = "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80637dc0d1d01461003b578063e14ced3214610085575b600080fd5b60005461005b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610098610093366004612039565b6100a6565b60405190815260200161007c565b6000610370565b8060005260206000fd5b905090565b600067ffffffffffffffff6100cf565b90565b909116919050565b60006100f2601f6100ed63ffffffff5b85610287565b610110565b92915050565b6000600160405b1b905090565b60006001603f6100ff565b60006001831b821680156101345767ffffffffffffffff841c841b8317915061014d565b61014a67ffffffffffffffff85603f031c841690565b91505b5092915050565b600061015e610105565b82168015610190577fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000083179150610194565b8291505b50919050565b60006101ae6101a76100f8565b8484010690565b9392505050565b60006101ae6101c26100f8565b8484030690565b60006101ae8383026100bc565b60006101ae8383046100bc565b60006101ae6101f184610154565b6101fa84610154565b056100bc565b60008282066101ae565b60006101ae61021884610154565b61022184610154565b076100bc565b60006100f282196100bc565b60008282106101ae565b60008282116101ae565b60006101ae61025584610154565b61025e84610154565b1290565b60006101ae61027084610154565b61027984610154565b1390565b60008183146101ae565b60008183166101ae565b60008183176101ae565b60008183186101ae565b60006101ae83831b6100bc565b600082821c6101ae565b60006101ae6102ca84610154565b831d6100bc565b60208110156101945760ff83168260081b1791508260081c92506001810190506102d1565b6000602060005b01905090565b600060206102fd6102f6565b600060086102fd610303565b600060086102fd61030f565b600060016102fd61031b565b600060016102fd610327565b600060086102fd610333565b600060086102fd61033f565b600060086102fd61034b565b60006101006102fd610357565b60806040511461037f57600080fd5b6084861461038c57600080fd5b610394610363565b6020870335146103a357600080fd5b60206103bd6103b0610363565b601f808216602003160190565b87010184146103cb57600080fd5b61022484146103d957600080fd5b6103e1610363565b6080016040526103ef610363565b866080376113cf565b6080015160209190910360031b1c90565b60800180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209390930360031b92831b19169290911b919091179052565b50565b60006100b760206103f86102f6565b6104498160206104096102f6565b60006100b760086103f8610303565b610449816008610409610303565b60006100b760086103f861030f565b61044981600861040961030f565b60006100b760016103f8610327565b6104c0600180610409610327565b565b60006100b760016103f861031b565b61044981600161040961031b565b60006100b760086103f8610333565b610449816008610409610333565b60006100b760086103f861033f565b61044981600861040961033f565b60006100b760086103f861034b565b61044981600861040961034b565b6000610543601f8361023d565b156105545761055462bad4e96100ad565b6105726105626008846101c9565b61056d6100cc610357565b61019a565b608081015160c01c6101ae565b80610588575050565b610594601f5b8261023d565b156105a5576105a562bad4e96100ad565b6105b36105626008836101c9565b60808101805177ffffffffffffffffffffffffffffffffffffffffffffffff1660c085901b179052505050565b505050565b60006105ef6104a3565b600181146105ff57600391505090565b6106076104c2565b801561061e57600181146106275760029250505090565b60009250505090565b60019250505090565b610638610363565b6080a06000610645610363565b60802090506106526105e5565b60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091161790565b60006100f2600b6100ed8460146102b2565b6102b2565b60006100f2600b6100ed6106b3601f6106ae8760076102b2565b610287565b6106cd6106c18760196102b2565b60056102a5565b6102a5565b610291565b60006100f2600c6100ed61070e6106f46106ed87601f6102b2565b600c6102a5565b6106cd61070760016106ae8a60076102b2565b600b6102a5565b6106cd6107246106c1603f6106ae8a60196102b2565b6106cd610737600f6106ae8b60086102b2565b60016102a5565b60006100f260136100ed84600c6102b2565b60006100f260136100ed61078561077261076b87601f6102b2565b60136102a5565b6106cd61070760ff6106ae8a600c6102b2565b6106cd6107a261079b60016106ae8a60146102b2565b600a6102a5565b6106cd6103ff6106ae8a60156102b2565b60006100f2607f5b83610287565b60006100f2601f6106ae8460076102b2565b60006100f260076106ae84600c6102b2565b60006100f2601f6106ae84600f6102b2565b60006100f2601f6106ae8460146102b2565b60006100f28260196102b2565b60006100f28260146102b2565b600061083a6020610835603c856101c9565b6101c9565b90506100f26102245b8261019a565b6000610855601f6107bb565b156108675761086763bad10ad06100ad565b61087083610823565b803561087e60205b8361019a565b915061088b8460056102b2565b8160005b603b8110156108f95784356108a560208761019a565b95506108b660016106ae86856102b2565b80156108c957600181146108de576108ef565b600084815260208390526040902093506108ef565b600082815260208590526040902093505b505060010161088f565b5060805193508381146109135761091363badf00d16100ad565b509095945050505050565b61092a601f5b82610287565b1561093c5761093c63bad10ad06100ad565b61094583610823565b826109506020610878565b915061095d8360056102b2565b60005b603b8110156109cb57833561097760205b8661019a565b945061098860016106ae85856102b2565b801561099b57600181146109b0576109c1565b600085815260208390526040902094506109c1565b600082815260208690526040902094505b5050600101610960565b50506109d681608052565b5050505050565b600060088311156109f5576109f563bad512e06100ad565b610a076107bb601f610227565b610227565b610a146100cc8783610849565b610a1e82856101b5565b6000610a41610a2d601f610227565b6106ae610a3b60018b6101b5565b8961019a565b610a5388610a4e85602082565b6101b5565b6000610a66610a62848961027d565b1590565b15610aa35760ff8d03610a8057610a8063bad222206100ad565b610a8d6100cc8e85610849565b935060009150610aa08a610a4e87604082565b90505b85610ab26100cc8460036102a5565b1c955083610ac46100cc8360036102a5565b1c9350505050600091505b86821015610b5957610af7610ae4601f610227565b6106ae84610a4e6001610a4e8d8d61019a565b6000610b03868361027d565b60018114610b16578015610b2657610b32565b600886901c9560ff169150610b32565b600884901c9360ff1691505b50610b4a610b3f826100bc565b6106cd8960086102a5565b96505050600182019150610acf565b505050508315610b8157610b736001610a4e8560036102a5565b610b7d8183610110565b9150505b95945050505050565b60008060008084610b9b878761019a565b60005b6040811015610c635780610bb3602082610233565b8060018114610bc7578015610bd857610be5565b8760081b97508960081b9950610be5565b8660081b96508860081b98505b50610c07610bf38584610233565b6106ae6000610c028987610233565b61027d565b15610c595760ff8c610c266100cc610c1f8e876101b5565b60036102a5565b1c168160018114610c3c578015610c4b57610c56565b9781179760ff8b179a50610c56565b9681179660ff8a1799505b50505b5050600101610b9e565b50505093509350935093565b6020821115610c8557610c8563bad512e16100ad565b610c92610924601f610227565b610cb3610c9f601f610227565b6106ae610cad6001876101b5565b8561019a565b610cbd82846101b5565b610cc8868683610b8a565b9350610cd76100cc8b88610849565b8319168117610ce78b828961091e565b5050610cf3848661027d565b15610d045750505050505050505050565b60ff8a03610d1957610d1963bad222216100ad565b610d266100cc8b86610849565b9019169091179250610d41905087610d3b8490565b8361091e565b50505050505050565b6109d68585858585610c6f565b60008360018114610d7f5760028114610d845760038114610d9557610d7f63badc0de06100ad565b610da4565b610d8e8483610291565b9350610da4565b610da16107bb85610227565b93505b509392505050565b6000610db8601f6107bb565b610dc38160206101b5565b610dcd818661023d565b15610dd6578094505b50610dee6100cc6001610de984876101b5565b610849565b80610dfd6100cc8460036102a5565b1b905080610e126100cc610c1f8860206101b5565b1c90508460031b9150610e2361044c565b821b8117610e308161045b565b505050610e43610e3e600090565b610478565b5090919050565b600080805460405163e03110e160e01b8152846004820152856024820152620186a06040600060448460008786f1925050508015610e92576000519250602051915050610ea0565b50610ea063badf00d06100ad565b9250929050565b6000610eb161044c565b610eb9610469565b8160f81c60018103610f2157604080516000858152336020528983526060902091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001792505b50610f2c8183610e4a565b925082610f3f57600093505050506101ae565b610f4b601f5b86610287565b610f568160206101b5565b610f60818961023d565b15610f69578097505b50610f74848861023d565b15610f7d578396505b610f8b610c1f8860206101b5565b6001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01199350610fc26100cc8260036102a5565b93841c9382901c9150610fd5878461019a565b9250610fe083610478565b610fef6001610de983896101b5565b84191684831617925061100d600184611008848a6101b5565b61091e565b50949695505050505050565b6110236011610536565b80605d81146110b057605e81146110b05760d681146110cf5760de81146110f157603f811461116a5760408114611200576019811461125a576038811461130857607181146113235760dc81146113555760a3811461135f5761010581146113c2576101a681146113c257606581146113c2576110a360005b600a61057f565b6105e060005b600b61057f565b6110ba600a610536565b6110c660ff82166104d1565b506105e06104b2565b6110db6001601e6102a5565b6110e681600a61057f565b506105e060006110a9565b6110fb600a610536565b611105600b610536565b818061115c57611116610fff6107bb565b80156111345761113161112b826110006101b5565b8461019a565b92505b5061113d6104fc565b61114881600a61057f565b61115a611155848361019a565b61050b565b505b5050506105e06110a9600090565b611174600a610536565b61117e600b610536565b611188600c610536565b6000808480156111b857600381146111c357600581146111cd5767ffffffffffffffff5b9250604d5b91506111df565b6000925060006111b1565b83925060006111b1565b6111d8898587610ea7565b9250600091505b506111eb82600a61057f565b6111f681600b61057f565b5050505050505050565b61120a600a610536565b611214600b610536565b61121e600c610536565b60008084600181146111c357600281146111c357600481146111c357600681146112505767ffffffffffffffff6111ac565b6111d88486610dac565b611264600a610536565b61126e600b610536565b600080826003811461128e5767ffffffffffffffff9250601691506112f1565b8480156112d957600181146112e357600281146112e357600381146112d957600481146112e357600581146112d957600681146112ea5767ffffffffffffffff9350604d92506112ef565b60005b93506112ef565b60016112dc565b600193505b505b506112fd82600a61057f565b610d4181600b61057f565b61131967ffffffffffffffff61109c565b6105e0600d6110a9565b61132d600b610536565b682a0000000000000539611348600260018360105b86610c6f565b50506110a361109c600090565b6110a3600161109c565b611369600a610536565b611373600b610536565b816007811461138d57611388620f00126100ad565b6113ba565b6113a66002600169040000000000000004006010611342565b6113b0600061109c565b6113ba60006110a9565b505050505050565b6105e063f001ca116100ad565b6113d76104a3565b156113ed576113e4610630565b60005260206000f35b6114026113fd600161056d6104df565b6104ee565b61140a610486565b61141a60ff6000806004856109dd565b611423816107b3565b61142c826107c1565b611435836107d3565b61143e846107e5565b611447856107f7565b61145086610809565b85600381146114eb576023811461156157606381146115b7576013811461169c57601b81146117a4576033811461186157603b8114611a685760378114611c5b5760178114611c7b57606f8114611c975760678114611cd75760738114611d2b57602f8114611dcb57600f8114611fcc5760078114611fcc5760278114611fcc5760538114611fd9576114e663f001c0de6100ad565b611fe6565b6114f48861067d565b611503610a6260045b88610287565b61151460016106c860035b8a610287565b61151d87610536565b61152c610843600b5b86610110565b93505061153e600260018484876109dd565b9250505061154c818861057f565b506114e661155c60045b8b61019a565b610495565b61156a88610694565b6115756001876102a5565b61157e85610536565b61158787610536565b611594610843600b611526565b9350506115a660026001838587610d4a565b5050506114e661155c611556600490565b6115c084610536565b6115c984610536565b60008780156115ff57600181146116105760048114611622576005811461162c576006811461163e57600781146116485761165d565b611609838561027d565b915061165d565b61160960016106ae610a02868861027d565b6116098385610247565b61160960016106ae610a028688610247565b6116098385610233565b61165a60016106ae610a028688610233565b91505b508080156116815761166e8c6106d2565b935061167a848e61019a565b9c5061168f565b61168c60048e61019a565b9c505b505050506114e689610495565b6116a584610536565b6116ae8961067d565b60008780156116f457600181146117055760028114611713576003811461171d576004811461172757600581146117315760068114611782576007811461178c57611799565b6116fe838561019a565b9150611799565b6116fe846106c8603f610f45565b6116fe8385610247565b6116fe8385610233565b6116fe838561029b565b61173c8360066102b2565b801561174f57601081146117665761177c565b61175f8561068f603f5b87610287565b925061177c565b61177985611774603f611759565b6102bc565b92505b50611799565b6116fe8385610291565b6117968385610287565b91505b506115a6818a61057f565b6117ad84610536565b6117b68961067d565b60008780156117d457600181146117e657600581146117f757611799565b6116fe6117e1848661019a565b6100d7565b6116fe6117e1856106c8601f611759565b611802601f84610287565b61180d8460056102b2565b8015611820576020811461184357611854565b61183c601f5b6100ed61183663ffffffff61150e565b856102b2565b9350611854565b61185161182683601f6101b5565b93505b5050506115a6818a61057f565b61186a84610536565b61187384610536565b6000846001811461196a578880156118c257600181146118fa57600281146119085760038114611912576004811461191c5760058114611926576006811461195657600781146119605761177c565b8680156118d657602081146118e7576118f4565b6118e0858761019a565b93506118f4565b6118f185876101b5565b93505b5061177c565b61175f856106c8603f611759565b61175f8486610247565b61175f8486610233565b61175f848661029b565b86801561193a5760208114611948576118f4565b6118e08661068f603f6114fd565b6118f186611774603f6114fd565b61175f8486610291565b6117798486610287565b8880156119ae57600181146119bf57600281146119dd57600381146119e657600481146119f05760058114611a1b5760068114611a2c5760078114611a4657611a5c565b6119b884866101c9565b9250611a5c565b6119b86119cb85610154565b6119d487610154565b0260401c6100bc565b6119b8846119cb565b6119b884866119d4565b838015611a0857611a0185876101e3565b9350611a15565b67ffffffffffffffff5b93505b50611a5c565b838015611a0857611a0185876101d6565b838015611a3d57611a01858761020a565b85935050611a5c565b838015611a575761183c8587610200565b859350505b50506115a6818a61057f565b611a7184610536565b611a7a84610536565b60008460018114611b5b57888015611aa15760018114611af55760058114611b065761177c565b868015611ab55760208114611ad5576118f4565b6118e06117e1611ac863ffffffff6114fd565b61056d63ffffffff61150e565b6118f16117e1611ae863ffffffff6114fd565b610a4e63ffffffff61150e565b61175f6117e1866106c8601f6114fd565b611b10601f6100e7565b878015611b245760208114611b4257611b53565b611b3b601f5b6100ed61183663ffffffff8b610287565b9450611b53565b611b50611b2a83601f6101b5565b94505b505050611799565b888015611b875760048114611ba95760058114611bcd5760068114611bf95760078114611c2657611a5c565b6119b86117e1611b9a63ffffffff611759565b61083563ffffffff5b89610287565b838015611a0857611a016117e1611bbf876100d7565b611bc8896100d7565b6101e3565b838015611a0857611a016117e1611be763ffffffff6114fd565b611bf463ffffffff61150e565b6101d6565b838015611c1d57611a016117e1611c0f876100d7565b611c18896100d7565b61020a565b611a12866100d7565b838015611c525761183c6117e1611c4063ffffffff6114fd565b611c4d63ffffffff61150e565b610200565b611851866100d7565b611c648861073e565b611c6f81600c6102a5565b905061154c818861057f565b611c848861073e565b611c6f611556601f6100ed84600c6102a5565b611ca088610750565b611caa6004611556565b611cb4818961057f565b50611cd161155c611ccb60146100ed8560016102a5565b8c61019a565b50611fe6565b611ce084610536565b611ce98961067d565b611cf36004611ccb565b611cfd818a61057f565b50611d2461155c611d17600167ffffffffffffffff61029b565b6106ae610971600b611526565b5050611fe6565b848015611d9057611d3b89610816565b85611d49610a62600461150e565b15611d5a57611d5787610536565b90505b611d646003611ba3565b611d6f818385610d57565b92505050611d7d818961057f565b50611d8b61155c6004611ccb565b611cd1565b611d9b8960146102b2565b8015611db557611db061155c60045b8d61019a565b611d24565b611dbe8d611019565b611d2461155c6004611daa565b611dd66001866102a5565b611de0600861058e565b611deb600483610233565b1715611dfd57611dfd62bada706100ad565b611e0685610536565b611e118460026102b2565b8060028114611f475760038114611f6f57611e2b87610536565b611e3660048661027d565b15611e4757611e44816100d7565b90505b611e56600260018088886109dd565b80848015611eb05760018114611ec15760048114611ec95760088114611ed357600c8114611edd5760108114611ee75760148114611efe5760188114611f0857601c8114611f1257611eab630f001a706100ad565b611f25565b611eba848461019a565b9250611f25565b839250611f25565b611eba848461029b565b611eba8484610291565b611eba8484610287565b611ef18385610247565b15611eab57839250611f25565b611ef18385610262565b611ef18385610233565b611f1c838561023d565b15611f25578392505b50611f3560036001848a8a610d4a565b611f3f818e61057f565b505050611fba565b611f56600260018087876109dd565b611f60818c61057f565b50611f6a83610528565b611fba565b6001611f82611f7c610519565b8561027d565b15611fa557611f9088610536565b611f9f60026001838989610d4a565b50600090505b611faf818c61057f565b50611fba6000610528565b505050506114e661155c611556600490565b6114e661155c6004611556565b611fe661155c6004611556565b5050505050505050506113e4610630565b60008083601f84011261200957600080fd5b50813567ffffffffffffffff81111561202157600080fd5b602083019150836020828501011115610ea057600080fd5b60008060008060006060868803121561205157600080fd5b853567ffffffffffffffff8082111561206957600080fd5b61207589838a01611ff7565b9097509550602088013591508082111561208e57600080fd5b5061209b88828901611ff7565b9699959850966040013594935050505056fea2646970667358221220b56fa7ccb04f35ec52a8b6db1efaa1609dbd5aea86e180015e0cfff668730b4c64736f6c634300080f0033" - - -func init() { - if err := json.Unmarshal([]byte(RISCVStorageLayoutJSON), RISCVStorageLayout); err != nil { - panic(err) - } - - layouts["RISCV"] = RISCVStorageLayout - deployedBytecodes["RISCV"] = RISCVDeployedBin - immutableReferences["RISCV"] = false -} From 08936f24e535a4d4c4fd52a59e079cc649595f84 Mon Sep 17 00:00:00 2001 From: pcw109550 Date: Wed, 12 Jun 2024 16:56:31 -0400 Subject: [PATCH 2/5] Use abigen for bindings --- rvgo/Makefile | 19 +++---------------- rvgo/bindings/preimageoracle.go | 22 ---------------------- rvgo/bindings/riscv.go | 22 ---------------------- rvgo/justfile | 19 +++++++++++++++++++ 4 files changed, 22 insertions(+), 60 deletions(-) create mode 100644 rvgo/justfile diff --git a/rvgo/Makefile b/rvgo/Makefile index 9f2e6c2c..eb8825dc 100644 --- a/rvgo/Makefile +++ b/rvgo/Makefile @@ -33,19 +33,6 @@ lint-fix: golangci-lint run --fix .PHONY: lint-fix -build-bindgen: - cd ../rvsol/lib/optimism/op-bindings && \ - go build -o ./bin/op-bindings ./cmd/. && \ - cp ./bin/op-bindings ../../../../rvgo/ -.PHONY: build-bindgen - -bindgen-generate-local: - ./op-bindings \ - generate \ - --metadata-out ./bindings \ - --bindings-package bindings \ - --contracts-list ../rvsol/artifacts.json \ - --log.level info \ - local \ - --forge-artifacts ../rvsol/out -.PHONY: bindgen-generate-local +gen-bindings: + just bindings-upgrades +.PHONY: gen-bindings diff --git a/rvgo/bindings/preimageoracle.go b/rvgo/bindings/preimageoracle.go index 7ebeb0d6..9ae8a050 100644 --- a/rvgo/bindings/preimageoracle.go +++ b/rvgo/bindings/preimageoracle.go @@ -44,34 +44,12 @@ type PreimageOracleLeaf struct { // PreimageOracleMetaData contains all meta data concerning the PreimageOracle contract. var PreimageOracleMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_minProposalSize\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_challengePeriod\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"KECCAK_TREE_DEPTH\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MAX_LEAF_COUNT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"MIN_BOND_SIZE\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addLeavesLPP\",\"inputs\":[{\"name\":\"_uuid\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_inputStartBlock\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_input\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"_stateCommitments\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"_finalize\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"challengeFirstLPP\",\"inputs\":[{\"name\":\"_claimant\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_uuid\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_postState\",\"type\":\"tuple\",\"internalType\":\"structPreimageOracle.Leaf\",\"components\":[{\"name\":\"input\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"stateCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"_postStateProof\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"challengeLPP\",\"inputs\":[{\"name\":\"_claimant\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_uuid\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_stateMatrix\",\"type\":\"tuple\",\"internalType\":\"structLibKeccak.StateMatrix\",\"components\":[{\"name\":\"state\",\"type\":\"uint64[25]\",\"internalType\":\"uint64[25]\"}]},{\"name\":\"_preState\",\"type\":\"tuple\",\"internalType\":\"structPreimageOracle.Leaf\",\"components\":[{\"name\":\"input\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"stateCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"_preStateProof\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"_postState\",\"type\":\"tuple\",\"internalType\":\"structPreimageOracle.Leaf\",\"components\":[{\"name\":\"input\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"stateCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"_postStateProof\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"challengePeriod\",\"inputs\":[],\"outputs\":[{\"name\":\"challengePeriod_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTreeRootLPP\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_uuid\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"treeRoot_\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initLPP\",\"inputs\":[{\"name\":\"_uuid\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_partOffset\",\"type\":\"uint32\",\"internalType\":\"uint32\"},{\"name\":\"_claimedSize\",\"type\":\"uint32\",\"internalType\":\"uint32\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"loadBlobPreimagePart\",\"inputs\":[{\"name\":\"_z\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_y\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_commitment\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"_proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"_partOffset\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"loadKeccak256PreimagePart\",\"inputs\":[{\"name\":\"_partOffset\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_preimage\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"loadLocalData\",\"inputs\":[{\"name\":\"_ident\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_localContext\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"_word\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"_size\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_partOffset\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"key_\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"loadPrecompilePreimagePart\",\"inputs\":[{\"name\":\"_partOffset\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_precompile\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_input\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"loadSha256PreimagePart\",\"inputs\":[{\"name\":\"_partOffset\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_preimage\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"minProposalSize\",\"inputs\":[],\"outputs\":[{\"name\":\"minProposalSize_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"preimageLengths\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"preimagePartOk\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"preimageParts\",\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proposalBlocks\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proposalBlocksLen\",\"inputs\":[{\"name\":\"_claimant\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_uuid\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"len_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proposalBonds\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proposalBranches\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proposalCount\",\"inputs\":[],\"outputs\":[{\"name\":\"count_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proposalMetadata\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"LPPMetaData\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proposalParts\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"proposals\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"claimant\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"uuid\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"readPreimage\",\"inputs\":[{\"name\":\"_key\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"_offset\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"dat_\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"datLen_\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"squeezeLPP\",\"inputs\":[{\"name\":\"_claimant\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"_uuid\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"_stateMatrix\",\"type\":\"tuple\",\"internalType\":\"structLibKeccak.StateMatrix\",\"components\":[{\"name\":\"state\",\"type\":\"uint64[25]\",\"internalType\":\"uint64[25]\"}]},{\"name\":\"_preState\",\"type\":\"tuple\",\"internalType\":\"structPreimageOracle.Leaf\",\"components\":[{\"name\":\"input\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"stateCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"_preStateProof\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"_postState\",\"type\":\"tuple\",\"internalType\":\"structPreimageOracle.Leaf\",\"components\":[{\"name\":\"input\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"index\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"stateCommitment\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"_postStateProof\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"version\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"zeroHashes\",\"inputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"view\"},{\"type\":\"error\",\"name\":\"ActiveProposal\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"AlreadyFinalized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"BadProposal\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"BondTransferFailed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InsufficientBond\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidInputSize\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidPreimage\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidProof\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotEOA\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"NotInitialized\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PartOffsetOOB\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"PostStateMatches\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"StatesNotContiguous\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"TreeSizeOverflow\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"WrongStartingBlock\",\"inputs\":[]}]", - Bin: "0x60c06040523480156200001157600080fd5b5060405162003a0f38038062003a0f8339810160408190526200003491620000f3565b60a0829052608081905260005b6200004f600160106200012e565b811015620000ea57600381601081106200006d576200006d62000148565b01546003826010811062000085576200008562000148565b0154604080516020810193909352820152606001604051602081830303815290604052805190602001206003826001620000c091906200015e565b60108110620000d357620000d362000148565b015580620000e18162000179565b91505062000041565b50505062000195565b600080604083850312156200010757600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b60008282101562000143576200014362000118565b500390565b634e487b7160e01b600052603260045260246000fd5b6000821982111562000174576200017462000118565b500190565b6000600182016200018e576200018e62000118565b5060010190565b60805160a051613846620001c9600039600081816105ae0152611d3e01526000818161068e01526115a601526138466000f3fe6080604052600436106101cd5760003560e01c80638dc4be11116100f7578063dd24f9bf11610095578063ec5efcbc11610064578063ec5efcbc1461065f578063f3f480d91461067f578063faf37bc7146106b2578063fef2b4ed146106c557600080fd5b8063dd24f9bf1461059f578063ddcd58de146105d2578063e03110e11461060a578063e15926111461063f57600080fd5b8063b2e67ba8116100d1578063b2e67ba814610512578063b4801e611461054a578063d18534b51461056a578063da35c6641461058a57600080fd5b80638dc4be11146104835780639d53a648146104a35780639d7e8769146104f257600080fd5b806354fd4d501161016f5780637917de1d1161013e5780637917de1d146103bf5780637ac54767146103df5780638542cf50146103ff578063882856ef1461044a57600080fd5b806354fd4d50146102dd57806361238bde146103335780636551927b1461036b5780637051472e146103a357600080fd5b80632055b36b116101ab5780632055b36b146102735780633909af5c146102885780634d52b4c9146102a857806352f0f3ad146102bd57600080fd5b8063013cf08b146101d25780630359a5631461022357806304697c7814610251575b600080fd5b3480156101de57600080fd5b506101f26101ed366004612d1c565b6106f2565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152015b60405180910390f35b34801561022f57600080fd5b5061024361023e366004612d5e565b610737565b60405190815260200161021a565b34801561025d57600080fd5b5061027161026c366004612dd1565b61086f565b005b34801561027f57600080fd5b50610243601081565b34801561029457600080fd5b506102716102a3366004612ff5565b6109a5565b3480156102b457600080fd5b50610243610bfc565b3480156102c957600080fd5b506102436102d83660046130e1565b610c17565b3480156102e957600080fd5b506103266040518060400160405280600581526020017f302e312e3000000000000000000000000000000000000000000000000000000081525081565b60405161021a9190613148565b34801561033f57600080fd5b5061024361034e366004613199565b600160209081526000928352604080842090915290825290205481565b34801561037757600080fd5b50610243610386366004612d5e565b601560209081526000928352604080842090915290825290205481565b3480156103af57600080fd5b506102436703782dace9d9000081565b3480156103cb57600080fd5b506102716103da3660046131bb565b610cec565b3480156103eb57600080fd5b506102436103fa366004612d1c565b6111dc565b34801561040b57600080fd5b5061043a61041a366004613199565b600260209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161021a565b34801561045657600080fd5b5061046a610465366004613257565b6111f3565b60405167ffffffffffffffff909116815260200161021a565b34801561048f57600080fd5b5061027161049e36600461328a565b61124d565b3480156104af57600080fd5b506102436104be366004612d5e565b73ffffffffffffffffffffffffffffffffffffffff9091166000908152601860209081526040808320938352929052205490565b3480156104fe57600080fd5b5061027161050d3660046132d6565b611348565b34801561051e57600080fd5b5061024361052d366004612d5e565b601760209081526000928352604080842090915290825290205481565b34801561055657600080fd5b50610243610565366004613257565b6114ff565b34801561057657600080fd5b50610271610585366004612ff5565b611531565b34801561059657600080fd5b50601354610243565b3480156105ab57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610243565b3480156105de57600080fd5b506102436105ed366004612d5e565b601660209081526000928352604080842090915290825290205481565b34801561061657600080fd5b5061062a610625366004613199565b6118f3565b6040805192835260208301919091520161021a565b34801561064b57600080fd5b5061027161065a36600461328a565b6119e4565b34801561066b57600080fd5b5061027161067a366004613362565b611aec565b34801561068b57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610243565b6102716106c03660046133fb565b611c72565b3480156106d157600080fd5b506102436106e0366004612d1c565b60006020819052908152604090205481565b6013818154811061070257600080fd5b60009182526020909120600290910201805460019091015473ffffffffffffffffffffffffffffffffffffffff909116915082565b73ffffffffffffffffffffffffffffffffffffffff82166000908152601560209081526040808320848452909152812054819061077a9060601c63ffffffff1690565b63ffffffff16905060005b6010811015610867578160011660010361080d5773ffffffffffffffffffffffffffffffffffffffff85166000908152601460209081526040808320878452909152902081601081106107da576107da613437565b0154604080516020810192909252810184905260600160405160208183030381529060405280519060200120925061084e565b826003826010811061082157610821613437565b01546040805160208101939093528201526060016040516020818303038152906040528051906020012092505b60019190911c908061085f81613495565b915050610785565b505092915050565b600080600080608060146030823785878260140137601480870182207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f06000000000000000000000000000000000000000000000000000000000000001794506000908190889084018b5afa94503d60010191506008820189106108fc5763fe2549876000526004601cfd5b60c082901b81526008018481533d6000600183013e88017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8015160008481526002602090815260408083208c8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915587845282528083209b83529a81528a82209290925593845283905296909120959095555050505050565b60006109b18a8a610737565b90506109d486868360208b01356109cf6109ca8d6134cd565b611edd565b611f1d565b80156109f257506109f283838360208801356109cf6109ca8a6134cd565b610a28576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b866040013588604051602001610a3e919061359c565b6040516020818303038152906040528051906020012014610a8b576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836020013587602001356001610aa191906135da565b14610ad8576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610b2088610ae686806135f2565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f7e92505050565b610b29886120d9565b836040013588604051602001610b3f919061359c565b6040516020818303038152906040528051906020012003610b8c576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8a1660009081526015602090815260408083208c8452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055610bf08a8a33612881565b50505050505050505050565b6001610c0a60106002613779565b610c149190613785565b81565b6000610c23868661293a565b9050610c308360086135da565b821180610c3d5750602083115b15610c74576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602081815260c085901b82526008959095528251828252600286526040808320858452875280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558484528752808320948352938652838220558181529384905292205592915050565b60608115610d0557610cfe86866129e7565b9050610d3f565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050505b3360009081526014602090815260408083208b845290915280822081516102008101928390529160109082845b815481526020019060010190808311610d6c57505050505090506000601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b81526020019081526020016000205490506000610ded8260601c63ffffffff1690565b63ffffffff169050333214610e2e576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e3e8260801c63ffffffff1690565b63ffffffff16600003610e7d576040517f87138d5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e878260c01c90565b67ffffffffffffffff1615610ec8576040517f475a253500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b898114610f01576040517f60f95d5a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610f0e89898d8886612a60565b83516020850160888204881415608883061715610f33576307b1daf16000526004601cfd5b60405160c8810160405260005b83811015610fe3578083018051835260208101516020840152604081015160408401526060810151606084015260808101516080840152508460888301526088810460051b8b013560a883015260c882206001860195508560005b610200811015610fd8576001821615610fb85782818b0152610fd8565b8981015160009081526020938452604090209260019290921c9101610f9b565b505050608801610f40565b50505050600160106002610ff79190613779565b6110019190613785565b81111561103a576040517f6229572300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110af61104d8360401c63ffffffff1690565b61105d9063ffffffff168a6135da565b60401b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff606084901b167fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff8516171790565b9150841561113c5777ffffffffffffffffffffffffffffffffffffffffffffffff82164260c01b1791506110e98260801c63ffffffff1690565b63ffffffff166110ff8360401c63ffffffff1690565b63ffffffff161461113c576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526014602090815260408083208e8452909152902061116290846010612c92565b50503360008181526018602090815260408083208e8452825280832080546001810182559084528284206004820401805460039092166008026101000a67ffffffffffffffff818102199093164390931602919091179055928252601581528282209c82529b909b52909920989098555050505050505050565b600381601081106111ec57600080fd5b0154905081565b6018602052826000526040600020602052816000526040600020818154811061121b57600080fd5b906000526020600020906004918282040191900660080292509250509054906101000a900467ffffffffffffffff1681565b60443560008060088301861061126b5763fe2549876000526004601cfd5b60c083901b60805260888386823786600882030151915060206000858360025afa90508061129857600080fd5b50600080517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0400000000000000000000000000000000000000000000000000000000000000178082526002602090815260408084208a8552825280842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660019081179091558385528252808420998452988152888320939093558152908190529490942055505050565b600080603087600037602060006030600060025afa806113705763f91129696000526004601cfd5b6000517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f010000000000000000000000000000000000000000000000000000000000000017608081815260a08c905260c08b905260308a60e037603088609083013760008060c083600a5afa9250826113f2576309bde3396000526004601cfd5b602886106114085763fe2549876000526004601cfd5b6000602882015278200000000000000000000000000000000000000000000000008152600881018b905285810151935060308a8237603081019b909b52505060509098207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0500000000000000000000000000000000000000000000000000000000000000176000818152600260209081526040808320868452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209583529481528482209a909a559081528089529190912096909655505050505050565b6014602052826000526040600020602052816000526040600020816010811061152757600080fd5b0154925083915050565b73ffffffffffffffffffffffffffffffffffffffff891660009081526015602090815260408083208b845290915290205467ffffffffffffffff8116156115a4576040517fc334f06900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006115cf8260c01c90565b6115e39067ffffffffffffffff1642613785565b1161161a576040517f55d4cbf900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006116268b8b610737565b905061163f87878360208c01356109cf6109ca8e6134cd565b801561165d575061165d84848360208901356109cf6109ca8b6134cd565b611693576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8760400135896040516020016116a9919061359c565b60405160208183030381529060405280519060200120146116f6576040517f1968a90200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84602001358860200135600161170c91906135da565b14158061173e575060016117268360601c63ffffffff1690565b611730919061379c565b63ffffffff16856020013514155b15611775576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61178389610ae687806135f2565b61178c896120d9565b60006117978a612bb3565b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f020000000000000000000000000000000000000000000000000000000000000017905060006117ee8460a01c63ffffffff1690565b67ffffffffffffffff169050600160026000848152602001908152602001600020600083815260200190815260200160002060006101000a81548160ff021916908315150217905550601760008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d815260200190815260200160002054600160008481526020019081526020016000206000838152602001908152602001600020819055506118c08460801c63ffffffff1690565b600083815260208190526040902063ffffffff9190911690556118e48d8d81612881565b50505050505050505050505050565b6000828152600260209081526040808320848452909152812054819060ff1661197c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f7072652d696d616765206d757374206578697374000000000000000000000000604482015260640160405180910390fd5b50600083815260208181526040909120546119988160086135da565b6119a38560206135da565b106119c157836119b48260086135da565b6119be9190613785565b91505b506000938452600160209081526040808620948652939052919092205492909150565b604435600080600883018610611a025763fe2549876000526004601cfd5b60c083901b6080526088838682378087017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80151908490207effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f02000000000000000000000000000000000000000000000000000000000000001760008181526002602090815260408083208b8452825280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915584845282528083209a83529981528982209390935590815290819052959095209190915550505050565b6000611af88686610737565b9050611b1183838360208801356109cf6109ca8a6134cd565b611b47576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602084013515611b83576040517f9a3b119900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b8b612cd0565b611b9981610ae687806135f2565b611ba2816120d9565b846040013581604051602001611bb8919061359c565b6040516020818303038152906040528051906020012003611c05576040517f9843145b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff87166000908152601560209081526040808320898452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001179055611c69878733612881565b50505050505050565b6703782dace9d90000341015611cb4576040517fe92c469f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b333214611ced576040517fba092d1600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611cf88160086137c1565b63ffffffff168263ffffffff1610611d3c576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008163ffffffff161015611d9c576040517f7b1dafd100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000818152601560209081526040808320878452825280832080547fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff1660a09790971b7fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff169690961760809590951b949094179094558251808401845282815280850186815260138054600181018255908452915160029092027f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0908101805473ffffffffffffffffffffffffffffffffffffffff9094167fffffffffffffffffffffffff000000000000000000000000000000000000000090941693909317909255517f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0919091015590815260168352818120938152929091529020349055565b6000816000015182602001518360400151604051602001611f00939291906137e9565b604051602081830303815290604052805190602001209050919050565b60008160005b6010811015611f71578060051b880135600186831c1660018114611f565760008481526020839052604090209350611f67565b600082815260208590526040902093505b5050600101611f23565b5090931495945050505050565b6088815114611f8c57600080fd5b602081016020830161200d565b8260031b8201518060001a8160011a60081b178160021a60101b8260031a60181b17178160041a60201b8260051a60281b178260061a60301b8360071a60381b171717905061200781611ff2868560059190911b015190565b1867ffffffffffffffff16600586901b840152565b50505050565b61201960008383611f99565b61202560018383611f99565b61203160028383611f99565b61203d60038383611f99565b61204960048383611f99565b61205560058383611f99565b61206160068383611f99565b61206d60078383611f99565b61207960088383611f99565b61208560098383611f99565b612091600a8383611f99565b61209d600b8383611f99565b6120a9600c8383611f99565b6120b5600d8383611f99565b6120c1600e8383611f99565b6120cd600f8383611f99565b61200760108383611f99565b6040805178010000000000008082800000000000808a8000000080008000602082015279808b00000000800000018000000080008081800000000000800991810191909152788a00000000000000880000000080008009000000008000000a60608201527b8000808b800000000000008b8000000000008089800000000000800360808201527f80000000000080028000000000000080000000000000800a800000008000000a60a08201527f800000008000808180000000000080800000000080000001800000008000800860c082015260009060e00160405160208183030381529060405290506020820160208201612761565b6102808101516101e082015161014083015160a0840151845118189118186102a082015161020083015161016084015160c0850151602086015118189118186102c083015161022084015161018085015160e0860151604087015118189118186102e08401516102408501516101a0860151610100870151606088015118189118186103008501516102608601516101c0870151610120880151608089015118189118188084603f1c61228c8660011b67ffffffffffffffff1690565b18188584603f1c6122a78660011b67ffffffffffffffff1690565b18188584603f1c6122c28660011b67ffffffffffffffff1690565b181895508483603f1c6122df8560011b67ffffffffffffffff1690565b181894508387603f1c6122fc8960011b67ffffffffffffffff1690565b60208b01518b51861867ffffffffffffffff168c5291189190911897508118600181901b603f9190911c18935060c08801518118601481901c602c9190911b1867ffffffffffffffff1660208901526101208801518718602c81901c60149190911b1867ffffffffffffffff1660c08901526102c08801518618600381901c603d9190911b1867ffffffffffffffff166101208901526101c08801518718601981901c60279190911b1867ffffffffffffffff166102c08901526102808801518218602e81901c60129190911b1867ffffffffffffffff166101c089015260408801518618600281901c603e9190911b1867ffffffffffffffff166102808901526101808801518618601581901c602b9190911b1867ffffffffffffffff1660408901526101a08801518518602781901c60199190911b1867ffffffffffffffff166101808901526102608801518718603881901c60089190911b1867ffffffffffffffff166101a08901526102e08801518518600881901c60389190911b1867ffffffffffffffff166102608901526101e08801518218601781901c60299190911b1867ffffffffffffffff166102e089015260808801518718602581901c601b9190911b1867ffffffffffffffff166101e08901526103008801518718603281901c600e9190911b1867ffffffffffffffff1660808901526102a08801518118603e81901c60029190911b1867ffffffffffffffff166103008901526101008801518518600981901c60379190911b1867ffffffffffffffff166102a08901526102008801518118601381901c602d9190911b1867ffffffffffffffff1661010089015260a08801518218601c81901c60249190911b1867ffffffffffffffff1661020089015260608801518518602481901c601c9190911b1867ffffffffffffffff1660a08901526102408801518518602b81901c60159190911b1867ffffffffffffffff1660608901526102208801518618603181901c600f9190911b1867ffffffffffffffff166102408901526101608801518118603681901c600a9190911b1867ffffffffffffffff166102208901525060e08701518518603a81901c60069190911b1867ffffffffffffffff166101608801526101408701518118603d81901c60039190911b1867ffffffffffffffff1660e0880152505067ffffffffffffffff81166101408601525b5050505050565b600582811b8201805160018501831b8401805160028701851b8601805160038901871b8801805160048b0190981b8901805167ffffffffffffffff861985168918811690995283198a16861889169096528819861683188816909352841986168818871690528419831684189095169052919391929190611c69565b6126fb600082612674565b612706600582612674565b612711600a82612674565b61271c600f82612674565b612727601482612674565b50565b612733816121cf565b61273c816126f0565b600383901b820151815160c09190911c9061200790821867ffffffffffffffff168352565b61276d6000828461272a565b6127796001828461272a565b6127856002828461272a565b6127916003828461272a565b61279d6004828461272a565b6127a96005828461272a565b6127b56006828461272a565b6127c16007828461272a565b6127cd6008828461272a565b6127d96009828461272a565b6127e5600a828461272a565b6127f1600b828461272a565b6127fd600c828461272a565b612809600d828461272a565b612815600e828461272a565b612821600f828461272a565b61282d6010828461272a565b6128396011828461272a565b6128456012828461272a565b6128516013828461272a565b61285d6014828461272a565b6128696015828461272a565b6128756016828461272a565b6120076017828461272a565b73ffffffffffffffffffffffffffffffffffffffff83811660009081526016602090815260408083208684529091528082208054908390559051909284169083908381818185875af1925050503d80600081146128fa576040519150601f19603f3d011682016040523d82523d6000602084013e6128ff565b606091505b505090508061266d576040517f83e6cc6b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f01000000000000000000000000000000000000000000000000000000000000007effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8316176129e0818360408051600093845233602052918152606090922091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001790565b9392505050565b6060604051905081602082018181018286833760888306808015612a305760888290038501848101848103803687375060806001820353506001845160001a1784538652612a47565b608836843760018353608060878401536088850186525b5050505050601f19603f82510116810160405292915050565b6000612a728260a01c63ffffffff1690565b67ffffffffffffffff1690506000612a908360801c63ffffffff1690565b63ffffffff1690506000612aaa8460401c63ffffffff1690565b63ffffffff169050600883108015612ac0575080155b15612af45760c082901b6000908152883560085283513382526017602090815260408084208a855290915290912055612ba9565b60088310158015612b12575080612b0c600885613785565b93508310155b8015612b265750612b2387826135da565b83105b15612ba9576000612b378285613785565b905087612b458260206135da565b10158015612b51575085155b15612b88576040517ffe25498700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526017602090815260408083208a845290915290209089013590555b5050505050505050565b6000612c36565b66ff00ff00ff00ff8160081c1667ff00ff00ff00ff00612be48360081b67ffffffffffffffff1690565b1617905065ffff0000ffff8160101c1667ffff0000ffff0000612c118360101b67ffffffffffffffff1690565b1617905060008160201c612c2f8360201b67ffffffffffffffff1690565b1792915050565b60808201516020830190612c4e90612bba565b612bba565b6040820151612c5c90612bba565b60401b17612c74612c4960018460059190911b015190565b825160809190911b90612c8690612bba565b60c01b17179392505050565b8260108101928215612cc0579160200282015b82811115612cc0578251825591602001919060010190612ca5565b50612ccc929150612ce8565b5090565b6040518060200160405280612ce3612cfd565b905290565b5b80821115612ccc5760008155600101612ce9565b6040518061032001604052806019906020820280368337509192915050565b600060208284031215612d2e57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114612d5957600080fd5b919050565b60008060408385031215612d7157600080fd5b612d7a83612d35565b946020939093013593505050565b60008083601f840112612d9a57600080fd5b50813567ffffffffffffffff811115612db257600080fd5b602083019150836020828501011115612dca57600080fd5b9250929050565b60008060008060608587031215612de757600080fd5b84359350612df760208601612d35565b9250604085013567ffffffffffffffff811115612e1357600080fd5b612e1f87828801612d88565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610320810167ffffffffffffffff81118282101715612e7e57612e7e612e2b565b60405290565b6040516060810167ffffffffffffffff81118282101715612e7e57612e7e612e2b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612eee57612eee612e2b565b604052919050565b6000610320808385031215612f0a57600080fd5b604051602080820167ffffffffffffffff8382108183111715612f2f57612f2f612e2b565b8160405283955087601f880112612f4557600080fd5b612f4d612e5a565b9487019491508188861115612f6157600080fd5b875b86811015612f895780358381168114612f7c5760008081fd5b8452928401928401612f63565b50909352509295945050505050565b600060608284031215612faa57600080fd5b50919050565b60008083601f840112612fc257600080fd5b50813567ffffffffffffffff811115612fda57600080fd5b6020830191508360208260051b8501011115612dca57600080fd5b60008060008060008060008060006103e08a8c03121561301457600080fd5b61301d8a612d35565b985060208a013597506130338b60408c01612ef6565b96506103608a013567ffffffffffffffff8082111561305157600080fd5b61305d8d838e01612f98565b97506103808c013591508082111561307457600080fd5b6130808d838e01612fb0565b90975095506103a08c013591508082111561309a57600080fd5b6130a68d838e01612f98565b94506103c08c01359150808211156130bd57600080fd5b506130ca8c828d01612fb0565b915080935050809150509295985092959850929598565b600080600080600060a086880312156130f957600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60005b8381101561313757818101518382015260200161311f565b838111156120075750506000910152565b602081526000825180602084015261316781604085016020870161311c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600080604083850312156131ac57600080fd5b50508035926020909101359150565b600080600080600080600060a0888a0312156131d657600080fd5b8735965060208801359550604088013567ffffffffffffffff808211156131fc57600080fd5b6132088b838c01612d88565b909750955060608a013591508082111561322157600080fd5b5061322e8a828b01612fb0565b9094509250506080880135801515811461324757600080fd5b8091505092959891949750929550565b60008060006060848603121561326c57600080fd5b61327584612d35565b95602085013595506040909401359392505050565b60008060006040848603121561329f57600080fd5b83359250602084013567ffffffffffffffff8111156132bd57600080fd5b6132c986828701612d88565b9497909650939450505050565b600080600080600080600060a0888a0312156132f157600080fd5b8735965060208801359550604088013567ffffffffffffffff8082111561331757600080fd5b6133238b838c01612d88565b909750955060608a013591508082111561333c57600080fd5b506133498a828b01612d88565b989b979a50959894979596608090950135949350505050565b60008060008060006080868803121561337a57600080fd5b61338386612d35565b945060208601359350604086013567ffffffffffffffff808211156133a757600080fd5b6133b389838a01612f98565b945060608801359150808211156133c957600080fd5b506133d688828901612fb0565b969995985093965092949392505050565b803563ffffffff81168114612d5957600080fd5b60008060006060848603121561341057600080fd5b83359250613420602085016133e7565b915061342e604085016133e7565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134c6576134c6613466565b5060010190565b6000606082360312156134df57600080fd5b6134e7612e84565b823567ffffffffffffffff808211156134ff57600080fd5b9084019036601f83011261351257600080fd5b813560208282111561352657613526612e2b565b613556817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011601612ea7565b9250818352368183860101111561356c57600080fd5b81818501828501376000918301810191909152908352848101359083015250604092830135928101929092525090565b81516103208201908260005b60198110156135d157825167ffffffffffffffff168252602092830192909101906001016135a8565b50505092915050565b600082198211156135ed576135ed613466565b500190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261362757600080fd5b83018035915067ffffffffffffffff82111561364257600080fd5b602001915036819003821315612dca57600080fd5b600181815b808511156136b057817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561369657613696613466565b808516156136a357918102915b93841c939080029061365c565b509250929050565b6000826136c757506001613773565b816136d457506000613773565b81600181146136ea57600281146136f457613710565b6001915050613773565b60ff84111561370557613705613466565b50506001821b613773565b5060208310610133831016604e8410600b8410161715613733575081810a613773565b61373d8383613657565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561376f5761376f613466565b0290505b92915050565b60006129e083836136b8565b60008282101561379757613797613466565b500390565b600063ffffffff838116908316818110156137b9576137b9613466565b039392505050565b600063ffffffff8083168185168083038211156137e0576137e0613466565b01949350505050565b600084516137fb81846020890161311c565b9190910192835250602082015260400191905056fea26469706673582212203eea3ab996394eed5b784a162e5609658d9de3de8391b1f5031feb87ef5390cd64736f6c634300080f0033", } // PreimageOracleABI is the input ABI used to generate the binding from. // Deprecated: Use PreimageOracleMetaData.ABI instead. var PreimageOracleABI = PreimageOracleMetaData.ABI -// PreimageOracleBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use PreimageOracleMetaData.Bin instead. -var PreimageOracleBin = PreimageOracleMetaData.Bin - -// DeployPreimageOracle deploys a new Ethereum contract, binding an instance of PreimageOracle to it. -func DeployPreimageOracle(auth *bind.TransactOpts, backend bind.ContractBackend, _minProposalSize *big.Int, _challengePeriod *big.Int) (common.Address, *types.Transaction, *PreimageOracle, error) { - parsed, err := PreimageOracleMetaData.GetAbi() - if err != nil { - return common.Address{}, nil, nil, err - } - if parsed == nil { - return common.Address{}, nil, nil, errors.New("GetABI returned nil") - } - - address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(PreimageOracleBin), backend, _minProposalSize, _challengePeriod) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &PreimageOracle{PreimageOracleCaller: PreimageOracleCaller{contract: contract}, PreimageOracleTransactor: PreimageOracleTransactor{contract: contract}, PreimageOracleFilterer: PreimageOracleFilterer{contract: contract}}, nil -} - // PreimageOracle is an auto generated Go binding around an Ethereum contract. type PreimageOracle struct { PreimageOracleCaller // Read-only binding to the contract diff --git a/rvgo/bindings/riscv.go b/rvgo/bindings/riscv.go index d3a265ce..a8c815f1 100644 --- a/rvgo/bindings/riscv.go +++ b/rvgo/bindings/riscv.go @@ -32,34 +32,12 @@ var ( // RISCVMetaData contains all meta data concerning the RISCV contract. var RISCVMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"_oracle\",\"type\":\"address\",\"internalType\":\"contractIPreimageOracle\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"oracle\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIPreimageOracle\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"step\",\"inputs\":[{\"name\":\"stateData\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"proof\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"localContext\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"}]", - Bin: "0x608060405234801561001057600080fd5b50604051620021793803806200217983398101604081905261003191610056565b600080546001600160a01b0319166001600160a01b0392909216919091179055610086565b60006020828403121561006857600080fd5b81516001600160a01b038116811461007f57600080fd5b9392505050565b6120e380620000966000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637dc0d1d01461003b578063e14ced3214610085575b600080fd5b60005461005b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b610098610093366004612039565b6100a6565b60405190815260200161007c565b6000610370565b8060005260206000fd5b905090565b600067ffffffffffffffff6100cf565b90565b909116919050565b60006100f2601f6100ed63ffffffff5b85610287565b610110565b92915050565b6000600160405b1b905090565b60006001603f6100ff565b60006001831b821680156101345767ffffffffffffffff841c841b8317915061014d565b61014a67ffffffffffffffff85603f031c841690565b91505b5092915050565b600061015e610105565b82168015610190577fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000083179150610194565b8291505b50919050565b60006101ae6101a76100f8565b8484010690565b9392505050565b60006101ae6101c26100f8565b8484030690565b60006101ae8383026100bc565b60006101ae8383046100bc565b60006101ae6101f184610154565b6101fa84610154565b056100bc565b60008282066101ae565b60006101ae61021884610154565b61022184610154565b076100bc565b60006100f282196100bc565b60008282106101ae565b60008282116101ae565b60006101ae61025584610154565b61025e84610154565b1290565b60006101ae61027084610154565b61027984610154565b1390565b60008183146101ae565b60008183166101ae565b60008183176101ae565b60008183186101ae565b60006101ae83831b6100bc565b600082821c6101ae565b60006101ae6102ca84610154565b831d6100bc565b60208110156101945760ff83168260081b1791508260081c92506001810190506102d1565b6000602060005b01905090565b600060206102fd6102f6565b600060086102fd610303565b600060086102fd61030f565b600060016102fd61031b565b600060016102fd610327565b600060086102fd610333565b600060086102fd61033f565b600060086102fd61034b565b60006101006102fd610357565b60806040511461037f57600080fd5b6084861461038c57600080fd5b610394610363565b6020870335146103a357600080fd5b60206103bd6103b0610363565b601f808216602003160190565b87010184146103cb57600080fd5b61022484146103d957600080fd5b6103e1610363565b6080016040526103ef610363565b866080376113cf565b6080015160209190910360031b1c90565b60800180517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209390930360031b92831b19169290911b919091179052565b50565b60006100b760206103f86102f6565b6104498160206104096102f6565b60006100b760086103f8610303565b610449816008610409610303565b60006100b760086103f861030f565b61044981600861040961030f565b60006100b760016103f8610327565b6104c0600180610409610327565b565b60006100b760016103f861031b565b61044981600161040961031b565b60006100b760086103f8610333565b610449816008610409610333565b60006100b760086103f861033f565b61044981600861040961033f565b60006100b760086103f861034b565b61044981600861040961034b565b6000610543601f8361023d565b156105545761055462bad4e96100ad565b6105726105626008846101c9565b61056d6100cc610357565b61019a565b608081015160c01c6101ae565b80610588575050565b610594601f5b8261023d565b156105a5576105a562bad4e96100ad565b6105b36105626008836101c9565b60808101805177ffffffffffffffffffffffffffffffffffffffffffffffff1660c085901b179052505050565b505050565b60006105ef6104a3565b600181146105ff57600391505090565b6106076104c2565b801561061e57600181146106275760029250505090565b60009250505090565b60019250505090565b610638610363565b6080a06000610645610363565b60802090506106526105e5565b60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff919091161790565b60006100f2600b6100ed8460146102b2565b6102b2565b60006100f2600b6100ed6106b3601f6106ae8760076102b2565b610287565b6106cd6106c18760196102b2565b60056102a5565b6102a5565b610291565b60006100f2600c6100ed61070e6106f46106ed87601f6102b2565b600c6102a5565b6106cd61070760016106ae8a60076102b2565b600b6102a5565b6106cd6107246106c1603f6106ae8a60196102b2565b6106cd610737600f6106ae8b60086102b2565b60016102a5565b60006100f260136100ed84600c6102b2565b60006100f260136100ed61078561077261076b87601f6102b2565b60136102a5565b6106cd61070760ff6106ae8a600c6102b2565b6106cd6107a261079b60016106ae8a60146102b2565b600a6102a5565b6106cd6103ff6106ae8a60156102b2565b60006100f2607f5b83610287565b60006100f2601f6106ae8460076102b2565b60006100f260076106ae84600c6102b2565b60006100f2601f6106ae84600f6102b2565b60006100f2601f6106ae8460146102b2565b60006100f28260196102b2565b60006100f28260146102b2565b600061083a6020610835603c856101c9565b6101c9565b90506100f26102245b8261019a565b6000610855601f6107bb565b156108675761086763bad10ad06100ad565b61087083610823565b803561087e60205b8361019a565b915061088b8460056102b2565b8160005b603b8110156108f95784356108a560208761019a565b95506108b660016106ae86856102b2565b80156108c957600181146108de576108ef565b600084815260208390526040902093506108ef565b600082815260208590526040902093505b505060010161088f565b5060805193508381146109135761091363badf00d16100ad565b509095945050505050565b61092a601f5b82610287565b1561093c5761093c63bad10ad06100ad565b61094583610823565b826109506020610878565b915061095d8360056102b2565b60005b603b8110156109cb57833561097760205b8661019a565b945061098860016106ae85856102b2565b801561099b57600181146109b0576109c1565b600085815260208390526040902094506109c1565b600082815260208690526040902094505b5050600101610960565b50506109d681608052565b5050505050565b600060088311156109f5576109f563bad512e06100ad565b610a076107bb601f610227565b610227565b610a146100cc8783610849565b610a1e82856101b5565b6000610a41610a2d601f610227565b6106ae610a3b60018b6101b5565b8961019a565b610a5388610a4e85602082565b6101b5565b6000610a66610a62848961027d565b1590565b15610aa35760ff8d03610a8057610a8063bad222206100ad565b610a8d6100cc8e85610849565b935060009150610aa08a610a4e87604082565b90505b85610ab26100cc8460036102a5565b1c955083610ac46100cc8360036102a5565b1c9350505050600091505b86821015610b5957610af7610ae4601f610227565b6106ae84610a4e6001610a4e8d8d61019a565b6000610b03868361027d565b60018114610b16578015610b2657610b32565b600886901c9560ff169150610b32565b600884901c9360ff1691505b50610b4a610b3f826100bc565b6106cd8960086102a5565b96505050600182019150610acf565b505050508315610b8157610b736001610a4e8560036102a5565b610b7d8183610110565b9150505b95945050505050565b60008060008084610b9b878761019a565b60005b6040811015610c635780610bb3602082610233565b8060018114610bc7578015610bd857610be5565b8760081b97508960081b9950610be5565b8660081b96508860081b98505b50610c07610bf38584610233565b6106ae6000610c028987610233565b61027d565b15610c595760ff8c610c266100cc610c1f8e876101b5565b60036102a5565b1c168160018114610c3c578015610c4b57610c56565b9781179760ff8b179a50610c56565b9681179660ff8a1799505b50505b5050600101610b9e565b50505093509350935093565b6020821115610c8557610c8563bad512e16100ad565b610c92610924601f610227565b610cb3610c9f601f610227565b6106ae610cad6001876101b5565b8561019a565b610cbd82846101b5565b610cc8868683610b8a565b9350610cd76100cc8b88610849565b8319168117610ce78b828961091e565b5050610cf3848661027d565b15610d045750505050505050505050565b60ff8a03610d1957610d1963bad222216100ad565b610d266100cc8b86610849565b9019169091179250610d41905087610d3b8490565b8361091e565b50505050505050565b6109d68585858585610c6f565b60008360018114610d7f5760028114610d845760038114610d9557610d7f63badc0de06100ad565b610da4565b610d8e8483610291565b9350610da4565b610da16107bb85610227565b93505b509392505050565b6000610db8601f6107bb565b610dc38160206101b5565b610dcd818661023d565b15610dd6578094505b50610dee6100cc6001610de984876101b5565b610849565b80610dfd6100cc8460036102a5565b1b905080610e126100cc610c1f8860206101b5565b1c90508460031b9150610e2361044c565b821b8117610e308161045b565b505050610e43610e3e600090565b610478565b5090919050565b600080805460405163e03110e160e01b8152846004820152856024820152620186a06040600060448460008786f1925050508015610e92576000519250602051915050610ea0565b50610ea063badf00d06100ad565b9250929050565b6000610eb161044c565b610eb9610469565b8160f81c60018103610f2157604080516000858152336020528983526060902091527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01000000000000000000000000000000000000000000000000000000000000001792505b50610f2c8183610e4a565b925082610f3f57600093505050506101ae565b610f4b601f5b86610287565b610f568160206101b5565b610f60818961023d565b15610f69578097505b50610f74848861023d565b15610f7d578396505b610f8b610c1f8860206101b5565b6001901b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01199350610fc26100cc8260036102a5565b93841c9382901c9150610fd5878461019a565b9250610fe083610478565b610fef6001610de983896101b5565b84191684831617925061100d600184611008848a6101b5565b61091e565b50949695505050505050565b6110236011610536565b80605d81146110b057605e81146110b05760d681146110cf5760de81146110f157603f811461116a5760408114611200576019811461125a576038811461130857607181146113235760dc81146113555760a3811461135f5761010581146113c2576101a681146113c257606581146113c2576110a360005b600a61057f565b6105e060005b600b61057f565b6110ba600a610536565b6110c660ff82166104d1565b506105e06104b2565b6110db6001601e6102a5565b6110e681600a61057f565b506105e060006110a9565b6110fb600a610536565b611105600b610536565b818061115c57611116610fff6107bb565b80156111345761113161112b826110006101b5565b8461019a565b92505b5061113d6104fc565b61114881600a61057f565b61115a611155848361019a565b61050b565b505b5050506105e06110a9600090565b611174600a610536565b61117e600b610536565b611188600c610536565b6000808480156111b857600381146111c357600581146111cd5767ffffffffffffffff5b9250604d5b91506111df565b6000925060006111b1565b83925060006111b1565b6111d8898587610ea7565b9250600091505b506111eb82600a61057f565b6111f681600b61057f565b5050505050505050565b61120a600a610536565b611214600b610536565b61121e600c610536565b60008084600181146111c357600281146111c357600481146111c357600681146112505767ffffffffffffffff6111ac565b6111d88486610dac565b611264600a610536565b61126e600b610536565b600080826003811461128e5767ffffffffffffffff9250601691506112f1565b8480156112d957600181146112e357600281146112e357600381146112d957600481146112e357600581146112d957600681146112ea5767ffffffffffffffff9350604d92506112ef565b60005b93506112ef565b60016112dc565b600193505b505b506112fd82600a61057f565b610d4181600b61057f565b61131967ffffffffffffffff61109c565b6105e0600d6110a9565b61132d600b610536565b682a0000000000000539611348600260018360105b86610c6f565b50506110a361109c600090565b6110a3600161109c565b611369600a610536565b611373600b610536565b816007811461138d57611388620f00126100ad565b6113ba565b6113a66002600169040000000000000004006010611342565b6113b0600061109c565b6113ba60006110a9565b505050505050565b6105e063f001ca116100ad565b6113d76104a3565b156113ed576113e4610630565b60005260206000f35b6114026113fd600161056d6104df565b6104ee565b61140a610486565b61141a60ff6000806004856109dd565b611423816107b3565b61142c826107c1565b611435836107d3565b61143e846107e5565b611447856107f7565b61145086610809565b85600381146114eb576023811461156157606381146115b7576013811461169c57601b81146117a4576033811461186157603b8114611a685760378114611c5b5760178114611c7b57606f8114611c975760678114611cd75760738114611d2b57602f8114611dcb57600f8114611fcc5760078114611fcc5760278114611fcc5760538114611fd9576114e663f001c0de6100ad565b611fe6565b6114f48861067d565b611503610a6260045b88610287565b61151460016106c860035b8a610287565b61151d87610536565b61152c610843600b5b86610110565b93505061153e600260018484876109dd565b9250505061154c818861057f565b506114e661155c60045b8b61019a565b610495565b61156a88610694565b6115756001876102a5565b61157e85610536565b61158787610536565b611594610843600b611526565b9350506115a660026001838587610d4a565b5050506114e661155c611556600490565b6115c084610536565b6115c984610536565b60008780156115ff57600181146116105760048114611622576005811461162c576006811461163e57600781146116485761165d565b611609838561027d565b915061165d565b61160960016106ae610a02868861027d565b6116098385610247565b61160960016106ae610a028688610247565b6116098385610233565b61165a60016106ae610a028688610233565b91505b508080156116815761166e8c6106d2565b935061167a848e61019a565b9c5061168f565b61168c60048e61019a565b9c505b505050506114e689610495565b6116a584610536565b6116ae8961067d565b60008780156116f457600181146117055760028114611713576003811461171d576004811461172757600581146117315760068114611782576007811461178c57611799565b6116fe838561019a565b9150611799565b6116fe846106c8603f610f45565b6116fe8385610247565b6116fe8385610233565b6116fe838561029b565b61173c8360066102b2565b801561174f57601081146117665761177c565b61175f8561068f603f5b87610287565b925061177c565b61177985611774603f611759565b6102bc565b92505b50611799565b6116fe8385610291565b6117968385610287565b91505b506115a6818a61057f565b6117ad84610536565b6117b68961067d565b60008780156117d457600181146117e657600581146117f757611799565b6116fe6117e1848661019a565b6100d7565b6116fe6117e1856106c8601f611759565b611802601f84610287565b61180d8460056102b2565b8015611820576020811461184357611854565b61183c601f5b6100ed61183663ffffffff61150e565b856102b2565b9350611854565b61185161182683601f6101b5565b93505b5050506115a6818a61057f565b61186a84610536565b61187384610536565b6000846001811461196a578880156118c257600181146118fa57600281146119085760038114611912576004811461191c5760058114611926576006811461195657600781146119605761177c565b8680156118d657602081146118e7576118f4565b6118e0858761019a565b93506118f4565b6118f185876101b5565b93505b5061177c565b61175f856106c8603f611759565b61175f8486610247565b61175f8486610233565b61175f848661029b565b86801561193a5760208114611948576118f4565b6118e08661068f603f6114fd565b6118f186611774603f6114fd565b61175f8486610291565b6117798486610287565b8880156119ae57600181146119bf57600281146119dd57600381146119e657600481146119f05760058114611a1b5760068114611a2c5760078114611a4657611a5c565b6119b884866101c9565b9250611a5c565b6119b86119cb85610154565b6119d487610154565b0260401c6100bc565b6119b8846119cb565b6119b884866119d4565b838015611a0857611a0185876101e3565b9350611a15565b67ffffffffffffffff5b93505b50611a5c565b838015611a0857611a0185876101d6565b838015611a3d57611a01858761020a565b85935050611a5c565b838015611a575761183c8587610200565b859350505b50506115a6818a61057f565b611a7184610536565b611a7a84610536565b60008460018114611b5b57888015611aa15760018114611af55760058114611b065761177c565b868015611ab55760208114611ad5576118f4565b6118e06117e1611ac863ffffffff6114fd565b61056d63ffffffff61150e565b6118f16117e1611ae863ffffffff6114fd565b610a4e63ffffffff61150e565b61175f6117e1866106c8601f6114fd565b611b10601f6100e7565b878015611b245760208114611b4257611b53565b611b3b601f5b6100ed61183663ffffffff8b610287565b9450611b53565b611b50611b2a83601f6101b5565b94505b505050611799565b888015611b875760048114611ba95760058114611bcd5760068114611bf95760078114611c2657611a5c565b6119b86117e1611b9a63ffffffff611759565b61083563ffffffff5b89610287565b838015611a0857611a016117e1611bbf876100d7565b611bc8896100d7565b6101e3565b838015611a0857611a016117e1611be763ffffffff6114fd565b611bf463ffffffff61150e565b6101d6565b838015611c1d57611a016117e1611c0f876100d7565b611c18896100d7565b61020a565b611a12866100d7565b838015611c525761183c6117e1611c4063ffffffff6114fd565b611c4d63ffffffff61150e565b610200565b611851866100d7565b611c648861073e565b611c6f81600c6102a5565b905061154c818861057f565b611c848861073e565b611c6f611556601f6100ed84600c6102a5565b611ca088610750565b611caa6004611556565b611cb4818961057f565b50611cd161155c611ccb60146100ed8560016102a5565b8c61019a565b50611fe6565b611ce084610536565b611ce98961067d565b611cf36004611ccb565b611cfd818a61057f565b50611d2461155c611d17600167ffffffffffffffff61029b565b6106ae610971600b611526565b5050611fe6565b848015611d9057611d3b89610816565b85611d49610a62600461150e565b15611d5a57611d5787610536565b90505b611d646003611ba3565b611d6f818385610d57565b92505050611d7d818961057f565b50611d8b61155c6004611ccb565b611cd1565b611d9b8960146102b2565b8015611db557611db061155c60045b8d61019a565b611d24565b611dbe8d611019565b611d2461155c6004611daa565b611dd66001866102a5565b611de0600861058e565b611deb600483610233565b1715611dfd57611dfd62bada706100ad565b611e0685610536565b611e118460026102b2565b8060028114611f475760038114611f6f57611e2b87610536565b611e3660048661027d565b15611e4757611e44816100d7565b90505b611e56600260018088886109dd565b80848015611eb05760018114611ec15760048114611ec95760088114611ed357600c8114611edd5760108114611ee75760148114611efe5760188114611f0857601c8114611f1257611eab630f001a706100ad565b611f25565b611eba848461019a565b9250611f25565b839250611f25565b611eba848461029b565b611eba8484610291565b611eba8484610287565b611ef18385610247565b15611eab57839250611f25565b611ef18385610262565b611ef18385610233565b611f1c838561023d565b15611f25578392505b50611f3560036001848a8a610d4a565b611f3f818e61057f565b505050611fba565b611f56600260018087876109dd565b611f60818c61057f565b50611f6a83610528565b611fba565b6001611f82611f7c610519565b8561027d565b15611fa557611f9088610536565b611f9f60026001838989610d4a565b50600090505b611faf818c61057f565b50611fba6000610528565b505050506114e661155c611556600490565b6114e661155c6004611556565b611fe661155c6004611556565b5050505050505050506113e4610630565b60008083601f84011261200957600080fd5b50813567ffffffffffffffff81111561202157600080fd5b602083019150836020828501011115610ea057600080fd5b60008060008060006060868803121561205157600080fd5b853567ffffffffffffffff8082111561206957600080fd5b61207589838a01611ff7565b9097509550602088013591508082111561208e57600080fd5b5061209b88828901611ff7565b9699959850966040013594935050505056fea2646970667358221220b56fa7ccb04f35ec52a8b6db1efaa1609dbd5aea86e180015e0cfff668730b4c64736f6c634300080f0033", } // RISCVABI is the input ABI used to generate the binding from. // Deprecated: Use RISCVMetaData.ABI instead. var RISCVABI = RISCVMetaData.ABI -// RISCVBin is the compiled bytecode used for deploying new contracts. -// Deprecated: Use RISCVMetaData.Bin instead. -var RISCVBin = RISCVMetaData.Bin - -// DeployRISCV deploys a new Ethereum contract, binding an instance of RISCV to it. -func DeployRISCV(auth *bind.TransactOpts, backend bind.ContractBackend, _oracle common.Address) (common.Address, *types.Transaction, *RISCV, error) { - parsed, err := RISCVMetaData.GetAbi() - if err != nil { - return common.Address{}, nil, nil, err - } - if parsed == nil { - return common.Address{}, nil, nil, errors.New("GetABI returned nil") - } - - address, tx, contract, err := bind.DeployContract(auth, *parsed, common.FromHex(RISCVBin), backend, _oracle) - if err != nil { - return common.Address{}, nil, nil, err - } - return address, tx, &RISCV{RISCVCaller: RISCVCaller{contract: contract}, RISCVTransactor: RISCVTransactor{contract: contract}, RISCVFilterer: RISCVFilterer{contract: contract}}, nil -} - // RISCV is an auto generated Go binding around an Ethereum contract. type RISCV struct { RISCVCaller // Read-only binding to the contract diff --git a/rvgo/justfile b/rvgo/justfile new file mode 100644 index 00000000..606417cc --- /dev/null +++ b/rvgo/justfile @@ -0,0 +1,19 @@ +out := '../rvsol/out' + +bindings-upgrades: + #!/usr/bin/env bash + set -euxo pipefail + + build_abi() { + jq .abi "{{out}}/$1.sol/$1.json" > "/tmp/$1.json" + + local lowercase=$(echo "$1" | awk '{print tolower($0)}') + abigen \ + --abi "/tmp/$1.json" \ + --pkg bindings \ + --out "bindings/$lowercase.go" \ + --type $1 + } + + build_abi RISCV + build_abi PreimageOracle From dc0bb7957db01b4f81ffdecb55e9509fa646d72c Mon Sep 17 00:00:00 2001 From: pcw109550 Date: Wed, 12 Jun 2024 17:21:05 -0400 Subject: [PATCH 3/5] Check bindings at CI --- .github/workflows/ci.yaml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 39d8a569..5af3dc6b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -104,3 +104,30 @@ jobs: - name: Run op-program run: tar -xzvf ./preimages.tar.gz && ./local_cmd.sh working-directory: tests/op-program-test + + rvgo-abigen: + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Install justfile + uses: extractions/setup-just@v2 + with: + just-version: '1.28.0' + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + - name: Install abigen + run: | + wget https://gethstore.blob.core.windows.net/builds/geth-alltools-linux-amd64-1.13.14-2bd6bd01.tar.gz + echo "76a04354dba9980fcbc35bece2957b30 geth-alltools-linux-amd64-1.13.14-2bd6bd01.tar.gz" | md5sum -c - + tar -xvf geth-alltools-linux-amd64-1.13.14-2bd6bd01.tar.gz + sudo mv geth-alltools-linux-amd64-1.13.14-2bd6bd01/abigen /usr/local/bin/ + - name: Build rvsol + run: forge build + working-directory: rvsol + - name: Check bindings + run: | + make gen-bindings + git diff --exit-code bindings + working-directory: rvgo From d99f83f35e5713581eba48634e7c93364c10de1c Mon Sep 17 00:00:00 2001 From: pcw109550 Date: Wed, 12 Jun 2024 17:30:54 -0400 Subject: [PATCH 4/5] Cache abigen --- .github/workflows/ci.yaml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5af3dc6b..f5e7a707 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -117,10 +117,19 @@ jobs: just-version: '1.28.0' - name: Install Foundry uses: foundry-rs/foundry-toolchain@v1 - - name: Install abigen + - name: Cache geth alltools + id: cache-geth + uses: actions/cache@v3 + with: + path: geth-alltools-linux-amd64-1.13.14-2bd6bd01.tar.gz + key: ${{ runner.os }}-geth-alltools-linux-amd64-1.13.14-2bd6bd01 + - name: Download geth alltools if not cached + if: steps.cache-geth.outputs.cache-hit != 'true' run: | wget https://gethstore.blob.core.windows.net/builds/geth-alltools-linux-amd64-1.13.14-2bd6bd01.tar.gz echo "76a04354dba9980fcbc35bece2957b30 geth-alltools-linux-amd64-1.13.14-2bd6bd01.tar.gz" | md5sum -c - + - name: Install abigen + run: | tar -xvf geth-alltools-linux-amd64-1.13.14-2bd6bd01.tar.gz sudo mv geth-alltools-linux-amd64-1.13.14-2bd6bd01/abigen /usr/local/bin/ - name: Build rvsol From c52299d03f5494209db5c14b4c3a855cba94305e Mon Sep 17 00:00:00 2001 From: pcw109550 Date: Wed, 12 Jun 2024 17:37:01 -0400 Subject: [PATCH 5/5] Use actions cache v4 --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f5e7a707..bf7f6f87 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -119,7 +119,7 @@ jobs: uses: foundry-rs/foundry-toolchain@v1 - name: Cache geth alltools id: cache-geth - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: geth-alltools-linux-amd64-1.13.14-2bd6bd01.tar.gz key: ${{ runner.os }}-geth-alltools-linux-amd64-1.13.14-2bd6bd01