Skip to content

Commit 10451f0

Browse files
EricBoltenmvidcbrit
authored
Axelar with main merged, fixes, upgrade updates (#236)
* pin goreleaser to 1.9.2 * add tendermint to grpc gateway * v5 incentives/gravity rc1 (#201) * v5 upgrade with only incentives and gravity updates * go.mod major version v4 -> v5 * go 1.15 -> 1.16 * Update prost_build and somm_proto * Generate somm_proto for v5 * Fix proto import path bug and regenerate protos * Fix linter * Pin to ubuntu version in releaser * Set incentives cutoff height * v5 -> v6 * move to github runners, go to 1.19, mod tidy * cosmos-sdk 0.45.13, ibc-go 3.4.0 * fix proto go packages to v6 * v6 upgrade * Update linter for go 1.19 * Appease linter * clean build * bring over axelar module * redo axelar corks with cork v2 * rpc endpoints for hitting axelar * cleanup for CLI * clean up CLI * sdk down to 0.45.10, tendermint to 0.34.22 put back dragonberry replace directive after sdk downgrade to match gravity * golang back down to 1.18 * Update v6 upgrade README * proposal trasnfered from gravity * typo * update for heighliner * genesis updates * governance * rename msg field * some review updates * more review updates * even more review updates! * proposal updates * chain configs query * comment updates * fix issue with ID in key parsing * add staking mocks * all existing cork v2 tests pass * add mocks to sc * tests for middleware * empty payload * prost build * bring in changes from cork v2 * actual prost build * include modules * namespace issue * unique gov prop ids * unused interchain test * move scoped axelar keeper * issue with params key table * app.go fixes for axelar cork * something is funky with codec registrations * more prop types * all proposals * unit test pass * clarify all registered types * newer protos broken for axelar cork * downgrade bufbuild * old version cellar fees * Bolten/test axelar buf (#220) * old protocgen.sh * newline fix * regen protos --------- Co-authored-by: Eric Bolten <[email protected]> * rebuild prost from new (old) buf build * compiles * params unit tests * lint pass * prost build * validate disabled * review pass * only chain id * more updates * import gravity module to pull delegate information * adjust mocks * set protocgen back to previous * linting * test configuration correct for scenario * return proto update to previous style * resetting swagger script to previous * another pass * more changes * cleanup local script changes for protos * encode id to string on result retrieval * revert cellarfee protos * test update for hex * cork timeouts * updates for unused cancel msg * several review comments * Add AxelarContractCallNonce types and keeper methods * Update tests * Update protos, generate docs * Add deadline to AxelarCork state and keeper methods * Add deadline and noce to RelayCork payload * Initial axelar proxy upgrade types and logic * Unit tests and rename encoding method * Fix proto errors * Make linter happy * Upgrade data iterator * Init/ExportGenesis for upgrade data * Tweak keeper comments * More accurate test name * Tweak tests * Clarify proxy encoding arg name * Revert "Clarify proxy encoding arg name" This reverts commit 6dc13c2. * CLI tx commands for new proposals * Proposal boilerplate, queries, CLI, fixes * Wire up handlers * Improved Axelar call encoding/decoding, add unit test * Add proxy upgrade to IBC packet validation * Rename packet validation method * Add missing validation for upgrade packet * Remove unneeded comment * Add new axelar proposal handlers to BasicManager * Add message type constant for relay upgrade message * Remove unused struct * Register missing messages with legacy amino codec * Add ValidateBasic() for new state and add to default genesis * Update somm_proto crate * Add new query commands to CLI * Add new tx command to CLI * Lock somm_proto crate to steward compatible version * Update Cellar IDs query and add QueryCellarIDsByChainID * Remove duplicate chainID argument from axelar cork ID hash * Updates * Update subscribers * Update cellars in v7 upgrade * Update token prices in v7 upgrade * Update sizes and Seven Seas domain * lint fixes * Account keeper mocks for Axelar * Remove extraneous int parsing tests in auction CLI * Delete the v4 upgrade test We're long since past v4 and it breaks on the new Cosmos SDK. Was only here for historical reasons. --------- Co-authored-by: Mantas Vidutis <[email protected]> Co-authored-by: Collin Brittain <[email protected]>
1 parent 471e383 commit 10451f0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+28791
-581
lines changed

.golangci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ linters:
88
enable:
99
- bodyclose
1010
- deadcode
11-
- depguard
11+
# - depguard
1212
- dogsled
1313
# - errcheck
1414
- goconst

app/app.go

+45-4
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,10 @@ import (
103103
auctionclient "github.com/peggyjv/sommelier/v7/x/auction/client"
104104
auctionkeeper "github.com/peggyjv/sommelier/v7/x/auction/keeper"
105105
auctiontypes "github.com/peggyjv/sommelier/v7/x/auction/types"
106+
"github.com/peggyjv/sommelier/v7/x/axelarcork"
107+
axelarcorkclient "github.com/peggyjv/sommelier/v7/x/axelarcork/client"
108+
axelarcorkkeeper "github.com/peggyjv/sommelier/v7/x/axelarcork/keeper"
109+
axelarcorktypes "github.com/peggyjv/sommelier/v7/x/axelarcork/types"
106110
"github.com/peggyjv/sommelier/v7/x/cellarfees"
107111
cellarfeeskeeper "github.com/peggyjv/sommelier/v7/x/cellarfees/keeper"
108112
cellarfeestypes "github.com/peggyjv/sommelier/v7/x/cellarfees/types"
@@ -159,6 +163,14 @@ var (
159163
gravityclient.ProposalHandler,
160164
corkclient.AddProposalHandler,
161165
corkclient.RemoveProposalHandler,
166+
axelarcorkclient.AddProposalHandler,
167+
axelarcorkclient.RemoveProposalHandler,
168+
axelarcorkclient.AddChainConfigurationHandler,
169+
axelarcorkclient.RemoveChainConfigurationHandler,
170+
axelarcorkclient.ScheduledCorkProposalHandler,
171+
axelarcorkclient.CommunityPoolEthereumSpendProposalHandler,
172+
axelarcorkclient.UpgradeAxelarProxyContractHandler,
173+
axelarcorkclient.CancelAxelarProxyContractUpgradeHandler,
162174
corkclient.ScheduledCorkProposalHandler,
163175
auctionclient.SetProposalHandler,
164176
pubsubclient.AddPublisherProposalHandler,
@@ -179,6 +191,7 @@ var (
179191
authzmodule.AppModuleBasic{},
180192
gravity.AppModuleBasic{},
181193
cork.AppModuleBasic{},
194+
axelarcork.AppModuleBasic{},
182195
cellarfees.AppModuleBasic{},
183196
incentives.AppModuleBasic{},
184197
auction.AppModuleBasic{},
@@ -198,6 +211,7 @@ var (
198211
gravitytypes.ModuleName: {authtypes.Minter, authtypes.Burner},
199212
cellarfeestypes.ModuleName: nil,
200213
incentivestypes.ModuleName: nil,
214+
axelarcorktypes.ModuleName: nil,
201215
auctiontypes.ModuleName: nil,
202216
pubsubtypes.ModuleName: nil,
203217
}
@@ -247,15 +261,17 @@ type SommelierApp struct {
247261

248262
// Sommelier keepers
249263
CorkKeeper corkkeeper.Keeper
264+
AxelarCorkKeeper axelarcorkkeeper.Keeper
250265
CellarFeesKeeper cellarfeeskeeper.Keeper
251266
IncentivesKeeper incentiveskeeper.Keeper
252267
AuctionKeeper auctionkeeper.Keeper
253268
PubsubKeeper pubsubkeeper.Keeper
254269

255270
// make capability scoped keepers public for test purposes (IBC only)
256-
ScopedIBCKeeper capabilitykeeper.ScopedKeeper
257-
ScopedTransferKeeper capabilitykeeper.ScopedKeeper
258-
ScopedICAHostKeeper capabilitykeeper.ScopedKeeper
271+
ScopedAxelarCorkKeeper capabilitykeeper.ScopedKeeper
272+
ScopedIBCKeeper capabilitykeeper.ScopedKeeper
273+
ScopedTransferKeeper capabilitykeeper.ScopedKeeper
274+
ScopedICAHostKeeper capabilitykeeper.ScopedKeeper
259275

260276
// the module manager
261277
mm *module.Manager
@@ -309,6 +325,7 @@ func NewSommelierApp(
309325
feegrant.StoreKey,
310326
authzkeeper.StoreKey,
311327
corktypes.StoreKey,
328+
axelarcorktypes.StoreKey,
312329
incentivestypes.StoreKey,
313330
auctiontypes.StoreKey,
314331
cellarfeestypes.StoreKey,
@@ -337,6 +354,7 @@ func NewSommelierApp(
337354
scopedIBCKeeper := app.CapabilityKeeper.ScopeToModule(ibchost.ModuleName)
338355
scopedTransferKeeper := app.CapabilityKeeper.ScopeToModule(ibctransfertypes.ModuleName)
339356
scopedICAHostKeeper := app.CapabilityKeeper.ScopeToModule(icahosttypes.SubModuleName)
357+
scopedAxelarCorkKeeper := app.CapabilityKeeper.ScopeToModule(axelarcorktypes.ModuleName)
340358
app.CapabilityKeeper.Seal()
341359

342360
// add keepers
@@ -394,8 +412,23 @@ func NewSommelierApp(
394412
app.IBCKeeper.ChannelKeeper, app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper,
395413
app.AccountKeeper, app.BankKeeper, scopedTransferKeeper,
396414
)
415+
416+
// create axelar cork keeper
417+
app.AxelarCorkKeeper = axelarcorkkeeper.NewKeeper(
418+
appCodec,
419+
keys[axelarcorktypes.StoreKey],
420+
app.GetSubspace(axelarcorktypes.ModuleName),
421+
app.AccountKeeper,
422+
app.StakingKeeper,
423+
app.TransferKeeper,
424+
app.DistrKeeper,
425+
app.IBCKeeper.ChannelKeeper,
426+
app.GravityKeeper,
427+
)
397428
transferModule := ibctransfer.NewAppModule(app.TransferKeeper)
398429
transferIBCModule := ibctransfer.NewIBCModule(app.TransferKeeper)
430+
var transferStack ibcporttypes.IBCModule = transferIBCModule
431+
transferStack = axelarcork.NewIBCMiddleware(app.AxelarCorkKeeper, transferStack)
399432

400433
// Create the ICAHost Keeper
401434
app.ICAHostKeeper = icahostkeeper.NewKeeper(
@@ -462,6 +495,7 @@ func NewSommelierApp(
462495
AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)).
463496
AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)).
464497
AddRoute(corktypes.RouterKey, cork.NewProposalHandler(app.CorkKeeper)).
498+
AddRoute(axelarcorktypes.RouterKey, axelarcork.NewProposalHandler(app.AxelarCorkKeeper)).
465499
AddRoute(gravitytypes.RouterKey, gravity.NewCommunityPoolEthereumSpendProposalHandler(app.GravityKeeper)).
466500
AddRoute(auctiontypes.RouterKey, auction.NewSetTokenPricesProposalHandler(app.AuctionKeeper)).
467501
AddRoute(pubsubtypes.RouterKey, pubsub.NewPubsubProposalHandler(app.PubsubKeeper))
@@ -473,7 +507,7 @@ func NewSommelierApp(
473507
// Create static IBC router, add transfer route, then set and seal it
474508
ibcRouter := ibcporttypes.NewRouter()
475509
ibcRouter.
476-
AddRoute(ibctransfertypes.ModuleName, transferIBCModule).
510+
AddRoute(ibctransfertypes.ModuleName, transferStack).
477511
AddRoute(icahosttypes.SubModuleName, icaHostIBCModule)
478512
app.IBCKeeper.SetRouter(ibcRouter)
479513

@@ -517,6 +551,7 @@ func NewSommelierApp(
517551
ica.NewAppModule(nil, &app.ICAHostKeeper),
518552
params.NewAppModule(app.ParamsKeeper),
519553
transferModule,
554+
axelarcork.NewAppModule(app.AxelarCorkKeeper, appCodec),
520555
gravity.NewAppModule(app.GravityKeeper, app.BankKeeper),
521556
authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
522557
cork.NewAppModule(app.CorkKeeper, appCodec),
@@ -554,6 +589,7 @@ func NewSommelierApp(
554589
incentivestypes.ModuleName,
555590
gravitytypes.ModuleName,
556591
corktypes.ModuleName,
592+
axelarcorktypes.ModuleName,
557593
cellarfeestypes.ModuleName,
558594
auctiontypes.ModuleName,
559595
pubsubtypes.ModuleName,
@@ -583,6 +619,7 @@ func NewSommelierApp(
583619
incentivestypes.ModuleName,
584620
gravitytypes.ModuleName,
585621
corktypes.ModuleName,
622+
axelarcorktypes.ModuleName,
586623
cellarfeestypes.ModuleName,
587624
auctiontypes.ModuleName,
588625
pubsubtypes.ModuleName,
@@ -620,6 +657,7 @@ func NewSommelierApp(
620657
gravitytypes.ModuleName,
621658
incentivestypes.ModuleName,
622659
corktypes.ModuleName,
660+
axelarcorktypes.ModuleName,
623661
cellarfeestypes.ModuleName,
624662
auctiontypes.ModuleName,
625663
pubsubtypes.ModuleName,
@@ -651,6 +689,7 @@ func NewSommelierApp(
651689
ibc.NewAppModule(app.IBCKeeper),
652690
authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
653691
cork.NewAppModule(app.CorkKeeper, appCodec),
692+
axelarcork.NewAppModule(app.AxelarCorkKeeper, appCodec),
654693
incentives.NewAppModule(app.IncentivesKeeper, app.DistrKeeper, app.BankKeeper, app.MintKeeper, appCodec),
655694
cellarfees.NewAppModule(app.CellarFeesKeeper, appCodec, app.AccountKeeper, app.BankKeeper, app.MintKeeper, app.CorkKeeper, app.GravityKeeper, app.AuctionKeeper),
656695
auction.NewAppModule(app.AuctionKeeper, app.BankKeeper, app.AccountKeeper, appCodec),
@@ -691,6 +730,7 @@ func NewSommelierApp(
691730
app.ScopedIBCKeeper = scopedIBCKeeper
692731
app.ScopedTransferKeeper = scopedTransferKeeper
693732
app.ScopedICAHostKeeper = scopedICAHostKeeper
733+
app.ScopedAxelarCorkKeeper = scopedAxelarCorkKeeper
694734

695735
return app
696736
}
@@ -887,6 +927,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
887927
paramsKeeper.Subspace(icahosttypes.SubModuleName)
888928
paramsKeeper.Subspace(gravitytypes.ModuleName)
889929
paramsKeeper.Subspace(corktypes.ModuleName)
930+
paramsKeeper.Subspace(axelarcorktypes.ModuleName)
890931
paramsKeeper.Subspace(cellarfeestypes.ModuleName)
891932
paramsKeeper.Subspace(incentivestypes.ModuleName)
892933
paramsKeeper.Subspace(auctiontypes.ModuleName)

app/upgrades/v4/upgrades_test.go

-39
This file was deleted.

app/upgrades/v7/constants.go

+158-3
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ package v7
44
const UpgradeName = "v7"
55

66
// 7seas domain
7-
const SevenSeasDomain = "7seas.capital"
7+
const SevenSeasDomain = "sevenseas.capital"
88

9-
// TODO(bolten): update this
109
// CA certificate literals
1110
// See source data at: https://github.com/PeggyJV/steward-registry
12-
// data captured at commit cdee05a8bf97f264353e10ab65752710bfb85dc9
11+
// data captured at commit ecdb7f386e7e573edb5d8f6ad22a1a67cfa21863
12+
// leaving out made_in_block because I can't find their validator on-chain
13+
// blockhunters hadn't been merged, but verified and added here
1314

1415
// Publisher CA certificate
1516
const SevenSeasPublisherCA = `-----BEGIN CERTIFICATE-----
@@ -499,3 +500,157 @@ N6juZKqdOw03MA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwMDaAAwZQIwc7wP
499500
+8beG8Zyz8+MC8geQT/pOBFjYMo+zS0/WqxiuXWCHGLDedOApOWAv3xwiuaHfvRX
500501
-----END CERTIFICATE-----
501502
`
503+
504+
const GoldenRatioSubscriberCA = `-----BEGIN CERTIFICATE-----
505+
MIICwjCCAkigAwIBAgIUTmlbzxXN7lCSmCmeYsW5BHpbDmUwCgYIKoZIzj0EAwMw
506+
gZcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJ
507+
bnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxKTAnBgNVBAMMIHNvbW1lbGllci5nb2xk
508+
ZW5yYXRpb3N0YWtpbmcubmV0MSUwIwYJKoZIhvcNAQkBFhZpbmZvQGdvbGRlbnN0
509+
YWtpbmcuY29tMB4XDTIzMDYxNTE3NDg0NloXDTI1MDYxNDE3NDg0NlowgZcxCzAJ
510+
BgNVBAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5l
511+
dCBXaWRnaXRzIFB0eSBMdGQxKTAnBgNVBAMMIHNvbW1lbGllci5nb2xkZW5yYXRp
512+
b3N0YWtpbmcubmV0MSUwIwYJKoZIhvcNAQkBFhZpbmZvQGdvbGRlbnN0YWtpbmcu
513+
Y29tMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEoOPN2wIe3BxLKHkfPgSfqndnpSIC
514+
Cjb6eapS9zWzWE3BSm8PkqFX5ilIdQFre7vC5kdkx+wcP4K1ENKrG8mJiNwsfPME
515+
tYr0dt9yTA0u5XWcH4nhim4fuq4dixrmWFCco1MwUTAdBgNVHQ4EFgQUEZOE8j2w
516+
J7JFu9/Fn7SBIjf1N7AwHwYDVR0jBBgwFoAUEZOE8j2wJ7JFu9/Fn7SBIjf1N7Aw
517+
DwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjBDlZ/sXQ+yiu3uzCpN
518+
Y8sgQ+yFCuutwnC0LkmVwYybw9gtdQE79JOpwgb4vZUgX7QCMQCvA9wfEoS3LDhW
519+
E+m4CKm4jME2S9VYpmHN656R5mX8CQQ7Wy1G+IUcOX/QBCHLl1g=
520+
-----END CERTIFICATE-----
521+
`
522+
523+
const CryptoCrewSubscriberCA = `-----BEGIN CERTIFICATE-----
524+
MIIDCDCCAo6gAwIBAgIUNUTiLAvawlgyAdvdGlYsTGmLw8kwCgYIKoZIzj0EAwMw
525+
gboxCzAJBgNVBAYTAkFUMRMwEQYDVQQIDApTb21lLVN0YXRlMSgwJgYDVQQKDB9T
526+
T0xWQSBCbG9ja2NoYWluIFNvbHV0aW9ucyBHbWJIMR4wHAYDVQQLDBVDcnlwdG9D
527+
cmV3IFZhbGlkYXRvcnMxJjAkBgNVBAMMHXN0ZXdhcmQtc29tbS5jY3ZhbGlkYXRv
528+
cnMuY29tMSQwIgYJKoZIhvcNAQkBFhVpbmZvQGNjdmFsaWRhdG9ycy5jb20wHhcN
529+
MjMwNDEzMDQ0NTI2WhcNMjUwNDEyMDQ0NTI2WjCBujELMAkGA1UEBhMCQVQxEzAR
530+
BgNVBAgMClNvbWUtU3RhdGUxKDAmBgNVBAoMH1NPTFZBIEJsb2NrY2hhaW4gU29s
531+
dXRpb25zIEdtYkgxHjAcBgNVBAsMFUNyeXB0b0NyZXcgVmFsaWRhdG9yczEmMCQG
532+
A1UEAwwdc3Rld2FyZC1zb21tLmNjdmFsaWRhdG9ycy5jb20xJDAiBgkqhkiG9w0B
533+
CQEWFWluZm9AY2N2YWxpZGF0b3JzLmNvbTB2MBAGByqGSM49AgEGBSuBBAAiA2IA
534+
BNUprvPRhwB864jaknavI4RPzgXv9BfWOdl8oIVwggpNH0w8KbsKq9nIZ9J4Viqk
535+
UsY+kS8hJzR2jjEK9763T40BYhEruZ+4RkiuCb/hxICI1tcB8T4Y0CFYe37YDab6
536+
XaNTMFEwHQYDVR0OBBYEFOuGYuXRFowcT1ZHB43fGDxeHeJMMB8GA1UdIwQYMBaA
537+
FOuGYuXRFowcT1ZHB43fGDxeHeJMMA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0E
538+
AwMDaAAwZQIweTKXQJ463bUH3DhJuLfpCGrewq5GwSQMcc0DXS01OTh4UbXjod+J
539+
G/ksdyOwZqMGAjEA4nwkWotwVMu988zgOl/w5n+NmdH9b/qybqujnqY8VFvEk5lH
540+
utjI6FZqrPdhiQDw
541+
-----END CERTIFICATE-----
542+
`
543+
544+
const DoraFactorySubscriberCA = `-----BEGIN CERTIFICATE-----
545+
MIICNzCCAbygAwIBAgIUYKbPgbWEtiNqgB4bao3JR5Xzgt4wCgYIKoZIzj0EAwMw
546+
UjEVMBMGA1UECgwMRG9yYSBGYWN0b3J5MRUwEwYDVQQLDAxEb3JhIEZhY3Rvcnkx
547+
IjAgBgNVBAMMGXNvbW1lbGllci5kb3JhZmFjdG9yeS5vcmcwHhcNMjMxMDMxMDkw
548+
MjUzWhcNMjUxMDMwMDkwMjUzWjBSMRUwEwYDVQQKDAxEb3JhIEZhY3RvcnkxFTAT
549+
BgNVBAsMDERvcmEgRmFjdG9yeTEiMCAGA1UEAwwZc29tbWVsaWVyLmRvcmFmYWN0
550+
b3J5Lm9yZzB2MBAGByqGSM49AgEGBSuBBAAiA2IABFe7uMCjv2jFQD+WmRbZZ2IF
551+
20JW935FImH2t1ZLny5KMTyBpcqnUdYKR8ZkJBTPZk6Uv58mKr1nXVY6f9PTmaZx
552+
OulptPgcZqjN3vbYWqeQ7RPqHA6uRxv+e4MLYdD7mqNTMFEwHQYDVR0OBBYEFMWX
553+
BT8YThoH4Ay50Psdeqx5no4uMB8GA1UdIwQYMBaAFMWXBT8YThoH4Ay50Psdeqx5
554+
no4uMA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwMDaQAwZgIxAK/znJs5LblZ
555+
Pz7OaQM+T3ODVMmKo/5twhd4XUZsENQgIoev6vogu1LBY/hHnQoQ7gIxAJ1qqxMt
556+
RscyQImrpQQiNAI8oLxTQOeKYmjZDzKAYt6aRtuDtuq07mJISbLo64J8Ug==
557+
-----END CERTIFICATE-----
558+
`
559+
560+
const FrenchChocolatineSubscriberCA = `-----BEGIN CERTIFICATE-----
561+
MIICYjCCAeigAwIBAgIUXFbtefdxA1Iiv/MyYZODseX/AP4wCgYIKoZIzj0EAwMw
562+
aDELMAkGA1UEBhMCRlIxEzARBgNVBAgMClNvbWUtU3RhdGUxGjAYBgNVBAoMEWZy
563+
ZW5jaGNob2NvbGF0aW5lMSgwJgYDVQQDDB9zb21tZWxpZXIuZnJlbmNoY2hvY29s
564+
YXRpbmUuY29tMB4XDTIzMDkxMDE0NDEyOVoXDTI1MDkwOTE0NDEyOVowaDELMAkG
565+
A1UEBhMCRlIxEzARBgNVBAgMClNvbWUtU3RhdGUxGjAYBgNVBAoMEWZyZW5jaGNo
566+
b2NvbGF0aW5lMSgwJgYDVQQDDB9zb21tZWxpZXIuZnJlbmNoY2hvY29sYXRpbmUu
567+
Y29tMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE5z4t7/q0dkwuvX9pV+bgjQbKADed
568+
iaVpHPTJkfdvYKdokxXh+cIQXqdlObVDf55Cwaj1PnMo3gbSRgpYzbdjdQ72HeYv
569+
+k036fJkxuEk8fELAHhISBr/tPSb8Uc4YHFPo1MwUTAdBgNVHQ4EFgQUxWDtaeP9
570+
5ja/24RfDVrWeW542bkwHwYDVR0jBBgwFoAUxWDtaeP95ja/24RfDVrWeW542bkw
571+
DwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEAxW8CtSO2ksGMbagp
572+
CfxZqZJFoGyksz1NC9AoTE3hjsoK0Mzneyfg6VOnC5+Vc0z8AjBwHDWLkggPUs5f
573+
GxXeMxoqZLNzIZ1BnMsMTrdId+jQnvzwI1zRBG1NiKvS4RnpIEI=
574+
-----END CERTIFICATE-----
575+
`
576+
const FreshStakingSubscriberCA = `-----BEGIN CERTIFICATE-----
577+
MIICBDCCAYqgAwIBAgIUKwEbgwfVTJ2Dwro3dVQR3oblUHIwCgYIKoZIzj0EAwMw
578+
OTEVMBMGA1UECwwMRnJlc2hTVEFLSU5HMSAwHgYDVQQDDBdzb21tLXN0ZXdhcmQu
579+
bWl0ZXJhLm5ldDAeFw0yMzAyMjcwMjU2MzlaFw0yNTAyMjYwMjU2MzlaMDkxFTAT
580+
BgNVBAsMDEZyZXNoU1RBS0lORzEgMB4GA1UEAwwXc29tbS1zdGV3YXJkLm1pdGVy
581+
YS5uZXQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4aTg3HyOXG2lVgYNjEN9fVBx9
582+
Mdbc/pH6IB1Mquz6zZ0L6X0DjynOls9V0Mc5ip1iXIM/+LUD95wp4C0uFQg9zPzH
583+
9BtKYSbpvyGToMDeLfC3JGBKP0KdwAx3pIxae+ujUzBRMB0GA1UdDgQWBBTPyFz7
584+
9C4ye4m6YnR7cM9z6ngInTAfBgNVHSMEGDAWgBTPyFz79C4ye4m6YnR7cM9z6ngI
585+
nTAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMFYHsqLWfD23WnCW
586+
qrNyTdccEgcRkC1879tfI/+siPXOqi4FM1XY2PdIXgW5ibO+bwIxAPpX/Vskfclr
587+
JCq5Apxw0R+f3wZxca4/oUGbNzzXSog6VBjaL8EjBGVELhTu1IL28w==
588+
-----END CERTIFICATE-----
589+
`
590+
591+
const KleomedesSubscriberCA = `-----BEGIN CERTIFICATE-----
592+
MIICnDCCAiKgAwIBAgIUb7tPRyrYNpfSekDia+U2/OLFjtEwCgYIKoZIzj0EAwMw
593+
gYQxCzAJBgNVBAYTAklUMQswCQYDVQQIDAJOQTEPMA0GA1UEBwwGTmFwb2xpMRIw
594+
EAYDVQQKDAlLbGVvbWVkZXMxIjAgBgNVBAMMGXN0ZXdhcmQua2xlb21lZGVzLm5l
595+
dHdvcmsxHzAdBgkqhkiG9w0BCQEWEG1hcmNvQGtsZW9tZWQuZXMwHhcNMjMwNTA5
596+
MTQ1NDM5WhcNMjUwNTA4MTQ1NDM5WjCBhDELMAkGA1UEBhMCSVQxCzAJBgNVBAgM
597+
Ak5BMQ8wDQYDVQQHDAZOYXBvbGkxEjAQBgNVBAoMCUtsZW9tZWRlczEiMCAGA1UE
598+
AwwZc3Rld2FyZC5rbGVvbWVkZXMubmV0d29yazEfMB0GCSqGSIb3DQEJARYQbWFy
599+
Y29Aa2xlb21lZC5lczB2MBAGByqGSM49AgEGBSuBBAAiA2IABLn0Q1D1K6wBY2ZI
600+
MaA8GwMtLbMvnXTpKmTv/Eo+KKcI0Sb+LEYRZNjXWi2cF7k0vHi2zfynu5elfITj
601+
5tRiOtNdSZDSzitjlzRoRRMhr+L8TigAOm2wu3eifLrejqBzfqNTMFEwHQYDVR0O
602+
BBYEFLaeB97GB2b5cS4O+cumy+WCDxyrMB8GA1UdIwQYMBaAFLaeB97GB2b5cS4O
603+
+cumy+WCDxyrMA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwMDaAAwZQIxALEO
604+
BOo3c6ZXDwGgY36mi/xPb49yzvNxpMZpf0pyPwHXSrTG3KIfyL+aQ5Pf6Xjy2gIw
605+
OWa00eoN0gQOaWmjGn8mJVcyNqI8T9nYO5XElE3EOfrmO11yYCPcVH17siYmKad6
606+
-----END CERTIFICATE-----
607+
`
608+
609+
const MeriaSubscriberCA = `-----BEGIN CERTIFICATE-----
610+
MIICMzCCAbigAwIBAgIUDgDLT0raIVX67OkmtJmwyR6ABPEwCgYIKoZIzj0EAwMw
611+
UDELMAkGA1UEBhMCRlIxEzARBgNVBAgMClNvbWUtU3RhdGUxDjAMBgNVBAoMBU1l
612+
cmlhMRwwGgYDVQQDDBNzb21tZWxpZXIubWVyaWEuY29tMB4XDTIzMDQyNzE1MDcy
613+
NloXDTI1MDQyNjE1MDcyNlowUDELMAkGA1UEBhMCRlIxEzARBgNVBAgMClNvbWUt
614+
U3RhdGUxDjAMBgNVBAoMBU1lcmlhMRwwGgYDVQQDDBNzb21tZWxpZXIubWVyaWEu
615+
Y29tMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE+aqP3x5uJRWbmicyoPQ/5/fp4AJU
616+
ipiZ7KU6oLHV2vNvAVorBvnzE090ySUZ8Kac5tp6amxltJGQ5K3bWOYip5xJ9EqF
617+
VS/ey12Lq7PUrr28p8RT6DTIB8RZYat+SDk3o1MwUTAdBgNVHQ4EFgQU+s3IFOYw
618+
j+yPSH96D4+xlqBcbBkwHwYDVR0jBBgwFoAU+s3IFOYwj+yPSH96D4+xlqBcbBkw
619+
DwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEA0qB3CcN/R5ud3wGh
620+
zP2Q8bM26FMgaaa09gyybk4drtzVXXHFKHDbbkh4zDH56oP+AjEA5ZpzvOScWlFB
621+
M5BSLEfX2TIRLnEXeDUuT9eqYnLuoSADDJYbrxeTsVmRBZrR/wZs
622+
-----END CERTIFICATE-----
623+
`
624+
625+
const RorcualSubscriberCA = `-----BEGIN CERTIFICATE-----
626+
MIICWTCCAeCgAwIBAgIUKZU8T1uBzNoJYC3GMSAOYLbJk0MwCgYIKoZIzj0EAwMw
627+
ZDETMBEGA1UECAwKU29tZS1TdGF0ZTEWMBQGA1UECgwNUm9yY3VhbCBOb2RlczES
628+
MBAGA1UECwwJU29tbWVsaWVyMSEwHwYDVQQDDBhzdGV3YXJkLnJvcmN1YWxub2Rl
629+
cy5jb20wHhcNMjMwOTA3MTAzMzA3WhcNMjUwOTA2MTAzMzA3WjBkMRMwEQYDVQQI
630+
DApTb21lLVN0YXRlMRYwFAYDVQQKDA1Sb3JjdWFsIE5vZGVzMRIwEAYDVQQLDAlT
631+
b21tZWxpZXIxITAfBgNVBAMMGHN0ZXdhcmQucm9yY3VhbG5vZGVzLmNvbTB2MBAG
632+
ByqGSM49AgEGBSuBBAAiA2IABAMDRP48Wyz7MDSToorAUlqaAuyG1WB064Z5zJyf
633+
o3h//kOKVeztdQUykt8ofuD8wk62dMT4tBcnkg+w3/7Ongo2igleEfG05ll7AMB5
634+
ncOZsWn4vTYqw1mlI1/begCYdKNTMFEwHQYDVR0OBBYEFMLkt17TGgsW+kPft8Ni
635+
yZJFZ2esMB8GA1UdIwQYMBaAFMLkt17TGgsW+kPft8NiyZJFZ2esMA8GA1UdEwEB
636+
/wQFMAMBAf8wCgYIKoZIzj0EAwMDZwAwZAIwJ+h9jQXvgpDc6sX53MSSe8tI7Aen
637+
MVLx2wBAhdYsVvNtjVqVOBtCGo1gzR2wihrWAjABbD66jIHchtaEr8aBD0bSvKz/
638+
aRst4l0zNFMLLfOf6tFbWpKDwINgPBV9z9gqAyE=
639+
-----END CERTIFICATE-----
640+
`
641+
642+
const BlockHuntersSubscriberCA = `-----BEGIN CERTIFICATE-----
643+
MIICHTCCAaKgAwIBAgIUWz0AydVEseLf+oVwtnduqyomJJwwCgYIKoZIzj0EAwMw
644+
RTELMAkGA1UEBhMCUk8xEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGElu
645+
dGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMzA5MjgxNDMwNTNaFw0yNTA5Mjcx
646+
NDMwNTNaMEUxCzAJBgNVBAYTAlJPMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
647+
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwdjAQBgcqhkjOPQIBBgUrgQQA
648+
IgNiAATJS/2WwSqTFKWap02Wch4HAJvBxHNf6LvAowuLdwgyTB1LdWf48q6hpynj
649+
LxCFJ1DmaHVHFDm1pK4l2qkkUGc7u2VUd8tJry0gF1L5BYK0X9P+KfRjjEteX2oL
650+
5MnofQKjUzBRMB0GA1UdDgQWBBRlRlgWuQhgOUwVPsRnNfNIpBSg9zAfBgNVHSME
651+
GDAWgBRlRlgWuQhgOUwVPsRnNfNIpBSg9zAPBgNVHRMBAf8EBTADAQH/MAoGCCqG
652+
SM49BAMDA2kAMGYCMQCOY65+yHeBu4U06IvUSBsVZnmI9uMl6hLzimBaScbCCk+q
653+
g/Le+wXH+HmRtFjTsQACMQCwD7aYZ6EFwDiPsyARB8FnO5tTn5+C8b44FXnDU8Fv
654+
nPXK16h1kHHF7cNSPQKkXFg=
655+
-----END CERTIFICATE-----
656+
`

0 commit comments

Comments
 (0)