foundry: forge verify-contract is unable to verify contracts with --via-ir option
Component
Forge
Have you ensured that all of these are up to date?
- Foundry
- Foundryup
What version of Foundry are you on?
forge 0.2.0 (fb4a836 2022-10-18T00:07:33.891597Z)
What command(s) is the bug in?
forge verify-contract 0x82c1e732d00dc8850ed723d326fc859e21641302 src/Circlets.sol:Circlets --watch --num-of-optimizations 200
Operating System
macOS (Apple Silicon)
Describe the bug
I think this might be similar to #2996
I compile my contract with --via-ir option, I added the --verifyoption when I executed the deploy contract but it failed to verify forge script script/Counter.s.sol:CounterScript --rpc-url url --gas-price 15 --broadcast --verify --via-ir -vvvv
Start verification for (1) contracts
Submitting verification for [src/Circlets.sol:Circlets] "0x82C1e732D00DC8850Ed723D326FC859e21641302".
Submitted contract for verification:
Response: `OK`
GUID: `kgsiiumttlafyz75snewzmmigpvffbteye4kpmd96rbtzhrl7k`
URL:
https://etherscan.io/address/0x82c1e732d00dc8850ed723d326fc859e21641302
Waiting for verification result...
Contract verification failed:
Response: `NOTOK`
Details: `Fail - Unable to verify`
I also got this error during the first simulation, which I don’t know if it’s related or not:
2022-10-18T00:52:49.201545Z ERROR foundry_cli::cmd::forge::script::transaction: Failed to extract constructor args from CREATE data constructor="constructor()" contract=Some("Circlets") bytecode="60806040523462000178576200001462000194565b602067436972636c65747360c01b8183015262000030620001c9565b634349524360e01b82820152825190916001600160401b03821162000168575b620000688262000062600254620001fe565b6200023b565b80601f8311600114620000d757508190620000a194600092620000cb575b50508160011b916000199060031b1c191617600255620002ed565b60008055620000b03362000494565b620000bb33620003f1565b6040516124ea9081620004e38239f35b01519050388062000086565b60026000529193601f1985167f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace936000905b8282106200014f575050916001939186620000a197941062000135575b505050811b01600255620002ed565b015160001960f88460031b161c1916905538808062000126565b8060018697829497870151815501960194019062000109565b620001726200017d565b62000050565b600080fd5b50634e487b7160e01b600052604160045260246000fd5b60408051919082016001600160401b03811183821017620001b9575b60405260088252565b620001c36200017d565b620001b0565b60408051919082016001600160401b03811183821017620001ee575b60405260048252565b620001f86200017d565b620001e5565b90600182811c9216801562000230575b60208310146200021a57565b634e487b7160e01b600052602260045260246000fd5b91607f16916200020e565b601f811162000248575050565b6000906002825260208220906020601f850160051c8301941062000289575b601f0160051c01915b8281106200027d57505050565b81815560010162000270565b909250829062000267565b601f8111620002a1575050565b6000906003825260208220906020601f850160051c83019410620002e2575b601f0160051c01915b828110620002d657505050565b818155600101620002c9565b9092508290620002c0565b80519091906001600160401b038111620003e1575b6200031a8162000314600354620001fe565b62000294565b602080601f83116001146200035957508192936000926200034d575b50508160011b916000199060031b1c191617600355565b01519050388062000336565b6003600052601f198316949091907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b926000905b878210620003c8575050836001959610620003ae575b505050811b01600355565b015160001960f88460031b161c19169055388080620003a3565b806001859682949686015181550195019301906200038d565b620003eb6200017d565b62000302565b600080549160018060a01b0316808252600560205260408220680f000000000000000f815401905582825260046020524260a01b81176040832055600f8301927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef818385838180a460018092015b858103620004845750505015620004735755565b604051622e076360e81b8152600490fd5b8083918587858180a4016200045f565b600880546001600160a01b039283166001600160a01b031982168117909255604051919216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a356fe60806040526004361015610013575b600080fd5b60003560e01c806301ffc9a7146101b757806306fdde03146101ae578063081812fc146101a5578063095ea7b31461019c57806318160ddd1461019357806323b872dd1461018a57806332cb6b0c1461018157806342842e0e146101785780636352211e1461016f57806370a0823114610166578063715018a61461015d5780638da5cb5b1461015457806395d89b411461014b578063a0712d6814610142578063a0ef91df14610139578063a22cb46514610130578063b88d4fde14610127578063c002d23d1461011e578063c87b56dd14610115578063e985e9c51461010c5763f2fde38b1461010457600080fd5b61000e610e5d565b5061000e610dff565b5061000e610b28565b5061000e610b05565b5061000e610a80565b5061000e61090b565b5061000e610888565b5061000e6107c7565b5061000e610703565b5061000e6106d9565b5061000e610677565b5061000e61061a565b5061000e6105ea565b5061000e6105a7565b5061000e610589565b5061000e610574565b5061000e61051b565b5061000e610460565b5061000e6103bc565b5061000e6102af565b5061000e6101d2565b6001600160e01b031981160361000e57565b503461000e57602036600319011261000e5760206004356101f2816101c0565b63ffffffff60e01b166301ffc9a760e01b8114908115610230575b811561021f575b506040519015158152f35b635b5e139f60e01b14905038610214565b6380ac58cd60e01b8114915061020d565b918091926000905b82821061026157501161025a575050565b6000910152565b91508060209183015181860152018291610249565b9060209161028f81518092818552858086019101610241565b601f01601f1916010190565b9060206102ac928181520190610276565b90565b503461000e576000806003193601126103b95760405190806002549060019180831c928082169283156103af575b602092838610851461039b57858852602088019490811561037a5750600114610321575b61031d8761031181890382610a12565b6040519182918261029b565b0390f35b600260005294509192917f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b83861061036957505050910190506103118261031d3880610301565b80548587015294820194810161034d565b60ff191685525050505090151560051b0190506103118261031d3880610301565b634e487b7160e01b82526022600452602482fd5b93607f16936102dd565b80fd5b503461000e57602036600319011261000e57600435600054811080610418575b15610406576000908152600660209081526040918290205491516001600160a01b03909216825290f35b6040516333d1c03960e21b8152600490fd5b50600081815260046020526040902054600160e01b16156103dc565b600435906001600160a01b038216820361000e57565b602435906001600160a01b038216820361000e57565b50604036600319011261000e57610475610434565b6001600160a01b03906024358261048b82610f2e565b168033036104e8575b600082815260066020526040812080546001600160a01b0319166001600160a01b038616179055936040519316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258585a4f35b600081815260076020908152604080832033845290915290205460ff16610494576040516367d9dca160e11b8152600490fd5b503461000e57600036600319011261000e5760206000546001549003604051908152f35b606090600319011261000e576001600160a01b0390600435828116810361000e5791602435908116810361000e579060443590565b506105876105813661053f565b91610f9c565b005b503461000e57600036600319011261000e5760206040516101008152f35b506105876105b43661053f565b90604051926020840184811067ffffffffffffffff8211176105dd575b60405260008452611183565b6105e561099a565b6105d1565b503461000e57602036600319011261000e5760206001600160a01b03610611600435610f2e565b16604051908152f35b503461000e57602036600319011261000e576001600160a01b0361063c610434565b168015610665576000526005602052602067ffffffffffffffff60406000205416604051908152f35b6040516323d3ad8160e21b8152600490fd5b503461000e576000806003193601126103b9576106926112e6565b600880546001600160a01b031981169091556040519082906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08284a3f35b503461000e57600036600319011261000e576008546040516001600160a01b039091168152602090f35b503461000e576000806003193601126103b95760405190806003549060019180831c928082169283156107bd575b602092838610851461039b57858852602088019490811561037a57506001146107645761031d8761031181890382610a12565b600360005294509192917fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8386106107ac57505050910190506103118261031d3880610301565b805485870152948201948101610790565b93607f1693610731565b50602036600319011261000e5760043580156108525780790734aca5f6226f0ada6175f343cc4d4d9dfb8b60d6e93f84291e6105879211600116610845575b61081b81662386f26fc100000234101561137a565b61083f61010061083883610833600054600154900390565b61142a565b1115611436565b33611477565b61084d61133e565b610806565b60405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a5908185b5bdd5b9d60921b6044820152606490fd5b503461000e576000806003193601126103b9576108a36112e6565b60085460405182918291829147906001600160a01b03165af16108c461120d565b50156108cf57604051f35b60405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b6044820152606490fd5b503461000e57604036600319011261000e57610925610434565b6024359081151580920361000e573360009081526007602090815260408083206001600160a01b0385168452909152902060ff1981541660ff841617905560405191825260018060a01b0316907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b50634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176109cd57604052565b6109d561099a565b604052565b6060810190811067ffffffffffffffff8211176109cd57604052565b6020810190811067ffffffffffffffff8211176109cd57604052565b90601f8019910116810190811067ffffffffffffffff8211176109cd57604052565b60405190610100820182811067ffffffffffffffff8211176109cd57604052565b60209067ffffffffffffffff8111610a73575b601f01601f19160190565b610a7b61099a565b610a68565b50608036600319011261000e57610a95610434565b610a9d61044a565b6064359167ffffffffffffffff831161000e573660238401121561000e57826004013591610aca83610a55565b92610ad86040519485610a12565b808452366024828701011161000e5760208160009260246105879801838801378501015260443591611183565b503461000e57600036600319011261000e576020604051662386f26fc100008152f35b503461000e57602036600319011261000e57600435600054811015610dcb57610dbf610311610c3d610d8a6020610d76610d67610d04610c3d610d2561031d9a610b7061154c565b50610c3d610b7d82611764565b959092610c3d610c43610bb2610bac610ba6610ba189610b9b611578565b9d611b30565b611689565b946115ba565b966115ba565b986040519e8f9d8e016063907f7b226465736372697074696f6e223a22436972636c657473206172652061206681527f6573746976616c206f66206c6967687420616e64206d6f76656d656e7420737460208201527f6f726564206f6e2d636861696e20666f72657665722e2045616368206f66207460408201526203432960ed1b60608201520190565b90611565565b7f20436972636c65747320726570726573656e74732074686520736572656e646981527f70697479206f66206c69666520616e6420686f7720736f6d652070656f706c6560208201527f2063616e206368616e67652074686520636f6c6f72206f66206576657279746860408201527f696e67206a757374206279206265696e672061726f756e642e222c22696d616760608201527f65223a22646174613a696d6167652f7376672b786d6c3b6261736536342c00006080820152609e0190565b74222c226e616d65223a2022436972636c657473202360581b815260150190565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a224381526f34b931b632b99116113b30b63ab2911d60811b602082015260300190565b627d5d7d60e81b815260030190565b0391610ba1601f1993848101835282610a12565b6040517f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000006020820152938491603d8301610c3d565b03908101835282610a12565b60405162461bcd60e51b815260206004820152600c60248201526b1a59081b9bdd08199bdd5b9960a21b6044820152606490fd5b503461000e57604036600319011261000e57602060ff610e51610e20610434565b610e2861044a565b6001600160a01b0391821660009081526007865260408082209290931681526020919091522090565b54166040519015158152f35b503461000e57602036600319011261000e57610e77610434565b610e7f6112e6565b6001600160a01b03908116908115610eda5760009160085491816bffffffffffffffffffffffff60a01b84161760085560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08484a3f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b60008181548110610f4c575b604051636f96cda160e11b8152600490fd5b81526004906020918083526040928383205494600160e01b861615610f7357505050610f3a565b93929190935b8515610f8757505050505090565b60001901808352818552838320549550610f79565b90610fa683610f2e565b6001600160a01b038381169282821684900361115f57600086815260066020526040902080549092610feb6001600160a01b03881633908114908414171590565b1590565b611104575b82169586156110f25761104393611021926110e8575b506001600160a01b0316600090815260056020526040902090565b80546000190190556001600160a01b0316600090815260056020526040902090565b80546001019055600160e11b804260a01b85171761106b866000526004602052604060002090565b5581161561109e575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051a4565b600184016110b6816000526004602052604060002090565b54156110c3575b50611074565b60005481146110bd576110e0906000526004602052604060002090565b5538806110bd565b6000905538611006565b604051633a954ecd60e21b8152600490fd5b611148610fe76111413361112a8b60018060a01b03166000526007602052604060002090565b9060018060a01b0316600052602052604060002090565b5460ff1690565b15610ff057604051632ce44b5f60e11b8152600490fd5b60405162a1148160e81b8152600490fd5b6040519061117d826109f6565b60008252565b929190611191828286610f9c565b803b61119e575b50505050565b6111a79361123d565b156111b55738808080611198565b6040516368d2bf6b60e11b8152600490fd5b9081602091031261000e57516102ac816101c0565b6001600160a01b0391821681529116602082015260408101919091526080606082018190526102ac92910190610276565b3d15611238573d9061121e82610a55565b9161122c6040519384610a12565b82523d6000602084013e565b606090565b92602091611266936000604051809681958294630a85bd0160e11b9a8b855233600486016111dc565b03926001600160a01b03165af1600091816112b6575b506112a85761128961120d565b805190816112a3576040516368d2bf6b60e11b8152600490fd5b602001fd5b6001600160e01b0319161490565b6112d891925060203d81116112df575b6112d08183610a12565b8101906111c7565b903861127c565b503d6112c6565b6008546001600160a01b031633036112fa57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b50634e487b7160e01b600052601160045260246000fd5b6001600160fe1b03811160011661136d575b60021b90565b61137561133e565b611367565b1561138157565b60405162461bcd60e51b81526020600482015260156024820152741b9bdd08195b9bdd59da08195d1a195c881c185a59605a1b6044820152606490fd5b60029060021981116113ce570190565b6113d661133e565b0190565b60649060641981116113ce570190565b600a90600a1981116113ce570190565b60059060051981116113ce570190565b60019060011981116113ce570190565b60149060141981116113ce570190565b811981116113ce570190565b1561143d57565b60405162461bcd60e51b81526020600482015260126024820152711b585e081cdd5c1c1b1e481c995858da195960721b6044820152606490fd5b90600090815492811561153a576001600160a01b0381166000908152600560205260409020805468010000000000000001840201905560008481526004602052604090206001600160a01b03909116916001914260a01b83831460e11b1784179055840193817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91808587858180a4015b85810361152b575050501561151a5755565b604051622e076360e81b8152600490fd5b8083918587858180a401611508565b60405163b562e8dd60e01b8152600490fd5b60405190611559826109b1565b60006020838281520152565b906113d660209282815194859201610241565b6040519060a08201604052608082019160008352610100925b6000190192600a90603082820601855304928361159157809350608091030191601f1901918252565b9060405160a08101604052608081019260008452926000190192600a90603082820601855304928361159157809350608091030191601f1901918252565b60405190611605826109da565b604082527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f6040837f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201520152565b9061166182610a55565b61166e6040519182610a12565b828152809261167f601f1991610a55565b0190602036910137565b80511561175b576116986115f8565b6116bc6116b76116b26116ab85516113be565b6003900490565b611355565b611657565b9160208301918182518301915b828210611709575050506003905106806001146116f6576002146116eb575090565b603d90600019015390565b50603d9081600019820153600119015390565b9091936004906003809401938451600190603f9082828260121c16880101518553828282600c1c16880101518386015382828260061c16880101516002860153168501015190820153019391906116c9565b506102ac611170565b9061176d61154c565b506040519161177b836109b1565b82526003602083016000815261178f61154c565b50610a008151106117c0575b8051600a80820490925206811981116117b357019190565b6117bb61133e565b019190565b835160405160208101918252602081526117d9816109b1565b519020808552815261179b565b6117ee61154c565b5080916020820191610e00835110611810575b50815191600e80840693049052565b80516040516020810191825260208152611829816109b1565b519020809152825238611801565b61183f61154c565b5080916020820191612400835110611861575b50815191602480840693049052565b8051604051602081019182526020815261187a816109b1565b519020809152825238611852565b61189061154c565b5080916020820191620104008351106118b4575b5081519161010480840693049052565b805160405160208101918252602081526118cd816109b1565b5190208091528252386118a4565b6118e361154c565b5080916020820191611400835110611905575b50815191601480840693049052565b8051604051602081019182526020815261191e816109b1565b5190208091528252386118f6565b61193461154c565b5080916020820191610500835110611956575b50815191600580840693049052565b8051604051602081019182526020815261196f816109b1565b519020809152825238611947565b61198561154c565b50809160208201916103008351106119a7575b50815191600380840693049052565b805160405160208101918252602081526119c0816109b1565b519020809152825238611998565b6119d661154c565b50809160208201916164008351106119f8575b50815191606480840693049052565b80516040516020810191825260208152611a11816109b1565b5190208091528252386119e9565b611a2761154c565b5080916020820191610f00835110611a49575b50815191600f80840693049052565b80516040516020810191825260208152611a62816109b1565b519020809152825238611a3a565b611a7861154c565b508091602082019162010000835110611a9c575b5081519160ff83169260081c9052565b80516040516020810191825260208152611ab5816109b1565b519020809152825238611a8c565b60405190610100820182811067ffffffffffffffff821117611b13575b6040528160e060609182815282602082015282604082015282808201528260808201528260a08201528260c08201520152565b611b1b61099a565b611ae0565b60019060001981146113ce570190565b9060609182611b3d611ac3565b506000905b838210611bf557505091611be7611bd5611b626102ac94610c3d96611e13565b92604051958694610c3d60208701604c907f3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323081527f30302f737667222076657273696f6e3d22312e32222076696577426f783d223060208201526b10181018981810189818111f60a11b60408201520190565b651e17b9bb339f60d11b815260060190565b03601f198101835282610a12565b908094611c00611ac3565b5082611c0b856117e6565b6001829392911615600014611dad5750611c63610c3d611c2d611c5d946117e6565b909490600a811115611d9f57611be7611c4d611c476121a4565b926115ba565b6040519485936020850190611565565b92611837565b6004819392931180611d95575b15611d8c5750611c7e612187565b91610c3d611d54611d6797611d6196611be7956003611cbf611cbf611ce6611ce0611cd8611cd2611cca611cc4611cb7611cbf9f611888565b9f909f6113da565b6115ba565b9d6118db565b9690966113ea565b946118db565b9390936113ea565b9161192c565b90931180159290611d7e57611cf96121e4565b925b15611d6d57611d1e611cbf611d17611d116121c1565b966118db565b90506113fa565b94611d27610a34565b96875260209c8d88015260409a8b880152860152608085015260a084015260c083015260e0820152612209565b9151958694850190611565565b94611b20565b90611b42565b611d1e611cbf611d17611d116121e4565b611d866121c1565b92611cfb565b611c7e906115ba565b50601e8110611c70565b611be7611c4d611c47611170565b9150611c63611c5d612187565b60405190611dc7826109da565b60606040838281528260208201520152565b60405190611de6826109b1565b60018252603560f81b6020830152565b60405190611e03826109b1565b60018252603360f81b6020830152565b606091611e1e611dba565b506000915b818310611e6a575050506102ac611e5791611be7604051938492610c3d60208501600690651e3232b3399f60d11b81520190565b661e17b232b3399f60c91b815260070190565b92611e8d611e86611e7f611e9494959661197d565b91906119ce565b9290611a1f565b949061211c565b91909194611ea7611c47611cbf8a61140a565b936001611ebf611cbf611eb9846115ba565b9461141a565b911661210e57611ecd611df6565b905b84519260209687870151956040809801519751998a998a01611ef091611565565b7f3c72616469616c4772616469656e742069643d224772616469656e74000000008152601c01611f1f91611565565b7f222063783d22353025222063793d22353025222066783d2200000000000000008152601801611f4e91611565565b601760f91b8152600101611f6191611565565b7f25222066793d223530252220723d222e35223e3c616e696d617465206174747281527334b13aba32a730b6b29e91333c1110323ab91e9160611b6020820152603401611fad91611565565b6d73222076616c7565733d2230253b60901b8152600e01611fcd91611565565b7f253b30252220726570656174436f756e743d22696e646566696e697465222f3e81527f3c73746f70206f66667365743d223025222073746f702d636f6c6f723d2272676020820152620c4c2560eb1b604082015260430161202f9082611565565b61016160f51b81526002016120449083611565565b61016160f51b81526002016120599084611565565b7f2c203129222f3e3c73746f70206f66667365743d2231303025222073746f702d81526b0c6ded8dee47a44e4cec4c2560a31b6020820152602c0161209d91611565565b61016160f51b81526002016120b191611565565b61016160f51b81526002016120c591611565565b7f2c203029222f3e3c2f72616469616c4772616469656e743e0000000000000000815260180103601f19810182526120fd9082610a12565b9261210790611b20565b9190611e23565b612116611dd9565b90611ecf565b9061215561215d61216961216361214761214e96612138611dba565b5061214161154c565b50611a70565b9690611a70565b9490611a70565b9390966115ba565b936115ba565b916115ba565b9060405192612177846109da565b8352602083015260408201529190565b60405190612194826109b1565b60018252600360fc1b6020830152565b604051906121b1826109b1565b60018252602d60f81b6020830152565b604051906121ce826109b1565b60078252660302035302035360cc1b6020830152565b604051906121f1826109b1565b600982526803336302035302035360bc1b6020830152565b80519060208101519261221b9061140a565b612224906115ba565b906040810151606082015160808301519060a08401519260c08501519460e001519560405198899860208a0161226a90600990681e3932b1ba103c1e9160b91b81520190565b61227391611565565b651291103c9e9160d11b815260060161228b91611565565b7f25222077696474683d223130302522206865696768743d2231303025222066698152701b1b0f489d5c9b0a08d1dc98591a595b9d607a1b60208201526031016122d491611565565b740524440e8e4c2dce6ccdee4da7a44e4dee8c2e8ca5605b1b81526015016122fb91611565565b7f20353020353029223e3c616e696d617465206174747269627574654e616d653d815268113c1110323ab91e9160b91b602082015260290161233c91611565565b7f73222076616c7565733d2230253b3235253b30252220726570656174436f756e81527f743d22696e646566696e697465222f3e3c616e696d617465206174747269627560208201526f3a32a730b6b29e913c9110323ab91e9160811b60408201526050016123aa91611565565b7f73222076616c7565733d2230253b3235253b30252220726570656174436f756e81527f743d22696e646566696e697465222f3e3c616e696d6174655472616e73666f7260208201527f6d206174747269627574654e616d653d227472616e73666f726d22207479706560408201526f1e913937ba30ba329110333937b69e9160811b606082015260700161243e91611565565b6511103a379e9160d11b815260060161245691611565565b661110323ab91e9160c91b815260070161246f91611565565b7f732220726570656174436f756e743d22696e646566696e697465222f3e3c2f7281526332b1ba1f60e11b602082015260240103601f19810182526102ac9082610a1256fea26469706673582212204939115ffe171f6c9ab78d7de2b502a8a513b1c8955d2330be2305a284cd686a64736f6c634300080f0033"
This is the deployed contract: https://etherscan.io/address/0x82c1e732d00dc8850ed723d326fc859e21641302
The same error happens when I run forge verify-contract 0x82c1e732d00dc8850ed723d326fc859e21641302 src/Circlets.sol:Circlets --watch --num-of-optimizations 200
Submitted contract for verification:
Response: `OK`
GUID: `b3vd1jhhu1txlvshfmpmaf9kgvemryn7ufg58urwdi5irgvfre`
URL:
https://etherscan.io/address/0x82c1e732d00dc8850ed723d326fc859e21641302
Waiting for verification result...
Contract verification failed:
Response: `NOTOK`
Details: `Fail - Unable to verify`
I’ve tried to verify it manually in Etherscan with the flatten option, but I get
CompilerError: Stack too deep. Try compiling with –via-ir(cli) or the equivalentviaIR: true (standard JSON) while enabling the optimizer. Otherwise, try removing local variables. When compiling inline assembly: Variable length is 2 slot(s) too deep inside the stack. which I can’t see any option to add it there?
Let me know if I can help to debug this, this is the whole flattened contract in case it helps https://gist.github.com/apeblond/014e76bde633791270809daacb68df34
About this issue
- Original URL
- State: open
- Created 2 years ago
- Comments: 40 (11 by maintainers)
Commits related to this issue
- Document forge verify-contract --show-standard-json-input option I found this option in this issue - https://github.com/foundry-rs/foundry/issues/3507 This was helpful for verifying a contract on ... — committed to sbauch/book by sbauch a year ago
- Document forge verify-contract --show-standard-json-input option (#956) I found this option in this issue - https://github.com/foundry-rs/foundry/issues/3507 This was helpful for verifying a contr... — committed to foundry-rs/book by sbauch a year ago
@0xV4L3NT1N3 success!
So, steps are:
forge verify-contract ADDRESS CONTRACT ETHERSCANKEY --optimizer-runs=100 --constructor-args "<ABI encoded ctor args>" --show-standard-json-input > etherscan.json"optimizer":{"enabled":true,"runs":100}->"optimizer":{"enabled":true,"runs":100},"viaIR":true(or something of that sort)hey @apeblond, thanks for reporting. this is an issue our users have been experiencing for a while now, we’re chatting with etherscan to see how we can resolve the resulting bytecode mismatch
Confirm this works, just verified it on polygon zkevm.
This worked for me too!
No worries, @Evalir - that’s understandable. FWIW, I have tried to install an older version of Foundry with
foundryup, but that didn’t work. As in, runningforge --versionwas still returning the present-day version.Anyway …
More Context
After a long and painful debugging session, we have managed to obtain more clarity on this issue. It appears that there are two bugs:
Below, I will focus on the 2nd bug, because it applies even after upgrading to Solidity v0.8.23.
Repro
bug/foundry-sji-repropnpm install(you need to have pnpm installed).envby following the.env.exampleVerification Command
Deployment Command (Optional)
Here’s a deployment command in case you want to tinker with a new contract (this is what I used):
Even More Context
Installing the Node.js dependencies with Yarn instead of PNPM makes the verification command work, which leads me to suspect that PNPM’s symbolic links are the culprit. They may be throwing a wrench in the standard JSON input file generated by Foundry.
There are two categories of potential solutions:
verify-contractQuestions
Context
Just bumped into this issue, too. It looks like a recent change has introduced a bug in the
verify-contractcommand, @mattsse, @Evalir.Reproduction
Let’s attempt to verify this contract on Ethereum Mainnet:
https://etherscan.io/address/0xe99AEff5BB41d0d7340e7B0c8001F593768ba0E5
Using this standard JSON input file:
https://gist.github.com/PaulRBerg/5b130690330ffa6cf28fc5fa238e56ce
I generated that file by running this command:
In this GitHub repo (tag
v1.1.1).Error
The verification will fail with this error:
Uploading the file manually on Etherscan yields the same error. I have prepared a diff between the actual contract (what the bytecode is according to the local compilation output) and the contract bytecode expected by Etherscan:
As you can see, there are a lot of differences.
Possible Explanation
It looks like Foundry generates the standard JSON input file incorrectly, or at least not in the way that Etherscan expects. As @seanconnollydev pointed out above, Etherscan wants “literal contents not URLs”. But in the file generated by Foundry, the
useLiteralContentsetting is set tofalse.Cc @harithk in case he is able to confirm my understanding here.
Environment
Confirmed it works. But Etherscan has a more restrictive limitation on
runs. I think the compiler supports up to2**32 - 1 = 4294967295. However Etherscan may not be happy with numbers greater than2**22. The exact upper bound is unknown. When it fails, it says things like “unable to parse json” which makes you think it’s a json format issue.I.e. it is not possible to pass the
--verifyflag to theforge scriptcommand during deployment?same problem, but I am using truffle, so this is probably something etherscan needs to fix
chiming in here that I am running into a similar issue verifying a contract on arbiscan using 0.8.24 solidity and via_ir true
facing issue with arbiscan and trying to verify 0.8.24 contracts: says invalid or unsupported solc version, although it is on the list and can be verified manually through arbiscan but not by using command seen below:
Upgrading to 0.8.21 fixed this for me.
Still a bug, but happy to report the workaround works now: https://github.com/foundry-rs/foundry/issues/3507#issuecomment-1465382107
Before, broken: 0.8.19 After, fixed: 0.8.21
Is it possible that one of the tools is using the latest-installed solc instead of the pragma and foundry.toml-specified solc?
We tried submitting with the truffle verify plugin which I believe submits the json files, and got this:
Moonscan isEtherscan for moonbeam/moonriver EVMs, so the same thing basically
Also, using json files in Moonscan does not work cause the binaries don’t match, which I believe is the same error as above.
Here is the relevant bit of the metadata of the Oracle json file:
"optimizer\":{\"enabled\":true,\"runs\":438000},\"remappings\":[],\"viaIR\":true}gm all, chiming in here from Etherscan, could anyone try manually submitting a standard-json verification from the web interface with the
viaIRsetting specified ?This will help debug if its something related to the endpoint, though can confirm we’ve added support for
viaIRExperiencing this as well but surprisingly not for every project where I’ve had to set
via_ir = true.I also have not found a way to perform the verification manually. I’ve tried uploading a standard-json-input at Etherscan’s behest but I can’t figure out how to get foundry to build the output in a way that Etherscan is pleased with.
I’ve tried
forge build --extra-output-files metadataand then uploading the file under/out/MyContract.sol/MyContract.metadata.jsonbut Etherscan doesn’t permit URLs in the source fields:Etherscan lists these recommendations:
I assume 1 or 2 are relevant here but I don’t really know how to act on that.
Is there a way to update
foundry.tomlor pass an argument toforge buildthat formats sources in the json file as “literal contents”?Same issue here. When I deploy the contract I can’t verify it manually with the flatten command either - shows different bytecode.