@@ -21,18 +21,24 @@ import (
2121 "github.com/rs/zerolog/log"
2222 "github.com/spf13/cobra"
2323
24+ banana_committee "github.com/0xPolygon/cdk-contracts-tooling/contracts/banana/polygondatacommittee"
2425 banana_rollup "github.com/0xPolygon/cdk-contracts-tooling/contracts/banana/polygonrollupbaseetrog"
2526 banana_rollup_manager "github.com/0xPolygon/cdk-contracts-tooling/contracts/banana/polygonrollupmanager"
27+ banana_validium "github.com/0xPolygon/cdk-contracts-tooling/contracts/banana/polygonvalidiumetrog"
2628 banana_bridge "github.com/0xPolygon/cdk-contracts-tooling/contracts/banana/polygonzkevmbridgev2"
2729 banana_ger "github.com/0xPolygon/cdk-contracts-tooling/contracts/banana/polygonzkevmglobalexitrootv2"
2830
31+ elderberry_committee "github.com/0xPolygon/cdk-contracts-tooling/contracts/elderberry/polygondatacommittee"
2932 elderberry_rollup "github.com/0xPolygon/cdk-contracts-tooling/contracts/elderberry/polygonrollupbaseetrog"
3033 elderberry_rollup_manager "github.com/0xPolygon/cdk-contracts-tooling/contracts/elderberry/polygonrollupmanager"
34+ elderberry_validium "github.com/0xPolygon/cdk-contracts-tooling/contracts/elderberry/polygonvalidiumetrog"
3135 elderberry_bridge "github.com/0xPolygon/cdk-contracts-tooling/contracts/elderberry/polygonzkevmbridgev2"
3236 elderberry_ger "github.com/0xPolygon/cdk-contracts-tooling/contracts/elderberry/polygonzkevmglobalexitrootv2"
3337
38+ etrog_committee "github.com/0xPolygon/cdk-contracts-tooling/contracts/etrog/polygondatacommittee"
3439 etrog_rollup "github.com/0xPolygon/cdk-contracts-tooling/contracts/etrog/polygonrollupbaseetrog"
3540 etrog_rollup_manager "github.com/0xPolygon/cdk-contracts-tooling/contracts/etrog/polygonrollupmanager"
41+ etrog_validium "github.com/0xPolygon/cdk-contracts-tooling/contracts/etrog/polygonvalidiumetrog"
3642 etrog_bridge "github.com/0xPolygon/cdk-contracts-tooling/contracts/etrog/polygonzkevmbridgev2"
3743 etrog_ger "github.com/0xPolygon/cdk-contracts-tooling/contracts/etrog/polygonzkevmglobalexitrootv2"
3844)
@@ -65,7 +71,10 @@ const (
6571 contractRequestInterval = 200 * time .Millisecond
6672)
6773
68- var ErrRollupNotFound = errors .New ("rollup not found" )
74+ var (
75+ ErrRollupNotFound = errors .New ("rollup not found" )
76+ ErrMethodNotSupported = errors .New ("method not supported" )
77+ )
6978
7079var (
7180 knownRollupManagerAddresses = map [string ]string {
@@ -285,13 +294,28 @@ func getRollup(cdkArgs parsedCDKArgs, rpcClient *ethclient.Client, addr common.A
285294 var contract * rollup
286295 var contractABI * abi.ABI
287296 log .Info ().Stringer ("addr" , addr ).Msg ("Getting rollup" )
297+
288298 switch cdkArgs .forkID {
289299 case etrog :
290300 contractInstance , err := etrog_rollup .NewPolygonrollupbaseetrog (addr , rpcClient )
291301 if err != nil {
292302 return nil , nil , err
293303 }
294- contract = & rollup {contractInstance , reflect .ValueOf (contractInstance )}
304+
305+ validiumContractInstance , err := etrog_validium .NewPolygonvalidiumetrog (addr , rpcClient )
306+ if err != nil {
307+ return nil , nil , err
308+ }
309+ _ , err = validiumContractInstance .DataAvailabilityProtocol (nil )
310+ if err != nil {
311+ if err .Error () == "execution reverted" {
312+ validiumContractInstance = nil
313+ } else {
314+ return nil , nil , err
315+ }
316+ }
317+
318+ contract = & rollup {contractInstance , validiumContractInstance , reflect .ValueOf (contractInstance )}
295319 contractABI , err = etrog_rollup .PolygonrollupbaseetrogMetaData .GetAbi ()
296320 if err != nil {
297321 return nil , nil , err
@@ -301,7 +325,21 @@ func getRollup(cdkArgs parsedCDKArgs, rpcClient *ethclient.Client, addr common.A
301325 if err != nil {
302326 return nil , nil , err
303327 }
304- contract = & rollup {contractInstance , reflect .ValueOf (contractInstance )}
328+
329+ validiumContractInstance , err := elderberry_validium .NewPolygonvalidiumetrog (addr , rpcClient )
330+ if err != nil {
331+ return nil , nil , err
332+ }
333+ _ , err = validiumContractInstance .DataAvailabilityProtocol (nil )
334+ if err != nil {
335+ if err .Error () == "execution reverted" {
336+ validiumContractInstance = nil
337+ } else {
338+ return nil , nil , err
339+ }
340+ }
341+
342+ contract = & rollup {contractInstance , validiumContractInstance , reflect .ValueOf (contractInstance )}
305343 contractABI , err = elderberry_rollup .PolygonrollupbaseetrogMetaData .GetAbi ()
306344 if err != nil {
307345 return nil , nil , err
@@ -311,7 +349,21 @@ func getRollup(cdkArgs parsedCDKArgs, rpcClient *ethclient.Client, addr common.A
311349 if err != nil {
312350 return nil , nil , err
313351 }
314- contract = & rollup {contractInstance , reflect .ValueOf (contractInstance )}
352+
353+ validiumContractInstance , err := banana_validium .NewPolygonvalidiumetrog (addr , rpcClient )
354+ if err != nil {
355+ return nil , nil , err
356+ }
357+ _ , err = validiumContractInstance .DataAvailabilityProtocol (nil )
358+ if err != nil {
359+ if err .Error () == "execution reverted" {
360+ validiumContractInstance = nil
361+ } else {
362+ return nil , nil , err
363+ }
364+ }
365+
366+ contract = & rollup {contractInstance , validiumContractInstance , reflect .ValueOf (contractInstance )}
315367 contractABI , err = banana_rollup .PolygonrollupbaseetrogMetaData .GetAbi ()
316368 if err != nil {
317369 return nil , nil , err
@@ -322,6 +374,47 @@ func getRollup(cdkArgs parsedCDKArgs, rpcClient *ethclient.Client, addr common.A
322374 return contract , contractABI , nil
323375}
324376
377+ func getCommittee (cdkArgs parsedCDKArgs , rpcClient * ethclient.Client , addr common.Address ) (* committee , * abi.ABI , error ) {
378+ var contract * committee
379+ var contractABI * abi.ABI
380+ log .Info ().Stringer ("addr" , addr ).Msg ("Getting committee" )
381+ switch cdkArgs .forkID {
382+ case etrog :
383+ contractInstance , err := etrog_committee .NewPolygondatacommittee (addr , rpcClient )
384+ if err != nil {
385+ return nil , nil , err
386+ }
387+ contract = & committee {contractInstance , reflect .ValueOf (contractInstance )}
388+ contractABI , err = etrog_committee .PolygondatacommitteeMetaData .GetAbi ()
389+ if err != nil {
390+ return nil , nil , err
391+ }
392+ case elderberry :
393+ contractInstance , err := elderberry_committee .NewPolygondatacommittee (addr , rpcClient )
394+ if err != nil {
395+ return nil , nil , err
396+ }
397+ contract = & committee {contractInstance , reflect .ValueOf (contractInstance )}
398+ contractABI , err = elderberry_committee .PolygondatacommitteeMetaData .GetAbi ()
399+ if err != nil {
400+ return nil , nil , err
401+ }
402+ case banana :
403+ contractInstance , err := banana_committee .NewPolygondatacommittee (addr , rpcClient )
404+ if err != nil {
405+ return nil , nil , err
406+ }
407+ contract = & committee {contractInstance , reflect .ValueOf (contractInstance )}
408+ contractABI , err = banana_committee .PolygondatacommitteeMetaData .GetAbi ()
409+ if err != nil {
410+ return nil , nil , err
411+ }
412+ default :
413+ return nil , nil , invalidForkIDErr ()
414+ }
415+ return contract , contractABI , nil
416+ }
417+
325418func getBridge (cdkArgs parsedCDKArgs , rpcClient * ethclient.Client , addr common.Address ) (* bridge , * abi.ABI , error ) {
326419 var contract * bridge
327420 var contractABI * abi.ABI
0 commit comments