Skip to content

Commit

Permalink
Axelar with main merged, fixes, upgrade updates (#236)
Browse files Browse the repository at this point in the history
* 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]>
  • Loading branch information
3 people committed Dec 10, 2023
1 parent 471e383 commit 10451f0
Show file tree
Hide file tree
Showing 83 changed files with 28,791 additions and 581 deletions.
2 changes: 1 addition & 1 deletion .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ linters:
enable:
- bodyclose
- deadcode
- depguard
# - depguard
- dogsled
# - errcheck
- goconst
Expand Down
49 changes: 45 additions & 4 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,10 @@ import (
auctionclient "github.com/peggyjv/sommelier/v7/x/auction/client"
auctionkeeper "github.com/peggyjv/sommelier/v7/x/auction/keeper"
auctiontypes "github.com/peggyjv/sommelier/v7/x/auction/types"
"github.com/peggyjv/sommelier/v7/x/axelarcork"
axelarcorkclient "github.com/peggyjv/sommelier/v7/x/axelarcork/client"
axelarcorkkeeper "github.com/peggyjv/sommelier/v7/x/axelarcork/keeper"
axelarcorktypes "github.com/peggyjv/sommelier/v7/x/axelarcork/types"
"github.com/peggyjv/sommelier/v7/x/cellarfees"
cellarfeeskeeper "github.com/peggyjv/sommelier/v7/x/cellarfees/keeper"
cellarfeestypes "github.com/peggyjv/sommelier/v7/x/cellarfees/types"
Expand Down Expand Up @@ -159,6 +163,14 @@ var (
gravityclient.ProposalHandler,
corkclient.AddProposalHandler,
corkclient.RemoveProposalHandler,
axelarcorkclient.AddProposalHandler,
axelarcorkclient.RemoveProposalHandler,
axelarcorkclient.AddChainConfigurationHandler,
axelarcorkclient.RemoveChainConfigurationHandler,
axelarcorkclient.ScheduledCorkProposalHandler,
axelarcorkclient.CommunityPoolEthereumSpendProposalHandler,
axelarcorkclient.UpgradeAxelarProxyContractHandler,
axelarcorkclient.CancelAxelarProxyContractUpgradeHandler,
corkclient.ScheduledCorkProposalHandler,
auctionclient.SetProposalHandler,
pubsubclient.AddPublisherProposalHandler,
Expand All @@ -179,6 +191,7 @@ var (
authzmodule.AppModuleBasic{},
gravity.AppModuleBasic{},
cork.AppModuleBasic{},
axelarcork.AppModuleBasic{},
cellarfees.AppModuleBasic{},
incentives.AppModuleBasic{},
auction.AppModuleBasic{},
Expand All @@ -198,6 +211,7 @@ var (
gravitytypes.ModuleName: {authtypes.Minter, authtypes.Burner},
cellarfeestypes.ModuleName: nil,
incentivestypes.ModuleName: nil,
axelarcorktypes.ModuleName: nil,
auctiontypes.ModuleName: nil,
pubsubtypes.ModuleName: nil,
}
Expand Down Expand Up @@ -247,15 +261,17 @@ type SommelierApp struct {

// Sommelier keepers
CorkKeeper corkkeeper.Keeper
AxelarCorkKeeper axelarcorkkeeper.Keeper
CellarFeesKeeper cellarfeeskeeper.Keeper
IncentivesKeeper incentiveskeeper.Keeper
AuctionKeeper auctionkeeper.Keeper
PubsubKeeper pubsubkeeper.Keeper

// make capability scoped keepers public for test purposes (IBC only)
ScopedIBCKeeper capabilitykeeper.ScopedKeeper
ScopedTransferKeeper capabilitykeeper.ScopedKeeper
ScopedICAHostKeeper capabilitykeeper.ScopedKeeper
ScopedAxelarCorkKeeper capabilitykeeper.ScopedKeeper
ScopedIBCKeeper capabilitykeeper.ScopedKeeper
ScopedTransferKeeper capabilitykeeper.ScopedKeeper
ScopedICAHostKeeper capabilitykeeper.ScopedKeeper

// the module manager
mm *module.Manager
Expand Down Expand Up @@ -309,6 +325,7 @@ func NewSommelierApp(
feegrant.StoreKey,
authzkeeper.StoreKey,
corktypes.StoreKey,
axelarcorktypes.StoreKey,
incentivestypes.StoreKey,
auctiontypes.StoreKey,
cellarfeestypes.StoreKey,
Expand Down Expand Up @@ -337,6 +354,7 @@ func NewSommelierApp(
scopedIBCKeeper := app.CapabilityKeeper.ScopeToModule(ibchost.ModuleName)
scopedTransferKeeper := app.CapabilityKeeper.ScopeToModule(ibctransfertypes.ModuleName)
scopedICAHostKeeper := app.CapabilityKeeper.ScopeToModule(icahosttypes.SubModuleName)
scopedAxelarCorkKeeper := app.CapabilityKeeper.ScopeToModule(axelarcorktypes.ModuleName)
app.CapabilityKeeper.Seal()

// add keepers
Expand Down Expand Up @@ -394,8 +412,23 @@ func NewSommelierApp(
app.IBCKeeper.ChannelKeeper, app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper,
app.AccountKeeper, app.BankKeeper, scopedTransferKeeper,
)

// create axelar cork keeper
app.AxelarCorkKeeper = axelarcorkkeeper.NewKeeper(
appCodec,
keys[axelarcorktypes.StoreKey],
app.GetSubspace(axelarcorktypes.ModuleName),
app.AccountKeeper,
app.StakingKeeper,
app.TransferKeeper,
app.DistrKeeper,
app.IBCKeeper.ChannelKeeper,
app.GravityKeeper,
)
transferModule := ibctransfer.NewAppModule(app.TransferKeeper)
transferIBCModule := ibctransfer.NewIBCModule(app.TransferKeeper)
var transferStack ibcporttypes.IBCModule = transferIBCModule
transferStack = axelarcork.NewIBCMiddleware(app.AxelarCorkKeeper, transferStack)

// Create the ICAHost Keeper
app.ICAHostKeeper = icahostkeeper.NewKeeper(
Expand Down Expand Up @@ -462,6 +495,7 @@ func NewSommelierApp(
AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)).
AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)).
AddRoute(corktypes.RouterKey, cork.NewProposalHandler(app.CorkKeeper)).
AddRoute(axelarcorktypes.RouterKey, axelarcork.NewProposalHandler(app.AxelarCorkKeeper)).
AddRoute(gravitytypes.RouterKey, gravity.NewCommunityPoolEthereumSpendProposalHandler(app.GravityKeeper)).
AddRoute(auctiontypes.RouterKey, auction.NewSetTokenPricesProposalHandler(app.AuctionKeeper)).
AddRoute(pubsubtypes.RouterKey, pubsub.NewPubsubProposalHandler(app.PubsubKeeper))
Expand All @@ -473,7 +507,7 @@ func NewSommelierApp(
// Create static IBC router, add transfer route, then set and seal it
ibcRouter := ibcporttypes.NewRouter()
ibcRouter.
AddRoute(ibctransfertypes.ModuleName, transferIBCModule).
AddRoute(ibctransfertypes.ModuleName, transferStack).
AddRoute(icahosttypes.SubModuleName, icaHostIBCModule)
app.IBCKeeper.SetRouter(ibcRouter)

Expand Down Expand Up @@ -517,6 +551,7 @@ func NewSommelierApp(
ica.NewAppModule(nil, &app.ICAHostKeeper),
params.NewAppModule(app.ParamsKeeper),
transferModule,
axelarcork.NewAppModule(app.AxelarCorkKeeper, appCodec),
gravity.NewAppModule(app.GravityKeeper, app.BankKeeper),
authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
cork.NewAppModule(app.CorkKeeper, appCodec),
Expand Down Expand Up @@ -554,6 +589,7 @@ func NewSommelierApp(
incentivestypes.ModuleName,
gravitytypes.ModuleName,
corktypes.ModuleName,
axelarcorktypes.ModuleName,
cellarfeestypes.ModuleName,
auctiontypes.ModuleName,
pubsubtypes.ModuleName,
Expand Down Expand Up @@ -583,6 +619,7 @@ func NewSommelierApp(
incentivestypes.ModuleName,
gravitytypes.ModuleName,
corktypes.ModuleName,
axelarcorktypes.ModuleName,
cellarfeestypes.ModuleName,
auctiontypes.ModuleName,
pubsubtypes.ModuleName,
Expand Down Expand Up @@ -620,6 +657,7 @@ func NewSommelierApp(
gravitytypes.ModuleName,
incentivestypes.ModuleName,
corktypes.ModuleName,
axelarcorktypes.ModuleName,
cellarfeestypes.ModuleName,
auctiontypes.ModuleName,
pubsubtypes.ModuleName,
Expand Down Expand Up @@ -651,6 +689,7 @@ func NewSommelierApp(
ibc.NewAppModule(app.IBCKeeper),
authzmodule.NewAppModule(appCodec, app.AuthzKeeper, app.AccountKeeper, app.BankKeeper, app.interfaceRegistry),
cork.NewAppModule(app.CorkKeeper, appCodec),
axelarcork.NewAppModule(app.AxelarCorkKeeper, appCodec),
incentives.NewAppModule(app.IncentivesKeeper, app.DistrKeeper, app.BankKeeper, app.MintKeeper, appCodec),
cellarfees.NewAppModule(app.CellarFeesKeeper, appCodec, app.AccountKeeper, app.BankKeeper, app.MintKeeper, app.CorkKeeper, app.GravityKeeper, app.AuctionKeeper),
auction.NewAppModule(app.AuctionKeeper, app.BankKeeper, app.AccountKeeper, appCodec),
Expand Down Expand Up @@ -691,6 +730,7 @@ func NewSommelierApp(
app.ScopedIBCKeeper = scopedIBCKeeper
app.ScopedTransferKeeper = scopedTransferKeeper
app.ScopedICAHostKeeper = scopedICAHostKeeper
app.ScopedAxelarCorkKeeper = scopedAxelarCorkKeeper

return app
}
Expand Down Expand Up @@ -887,6 +927,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
paramsKeeper.Subspace(icahosttypes.SubModuleName)
paramsKeeper.Subspace(gravitytypes.ModuleName)
paramsKeeper.Subspace(corktypes.ModuleName)
paramsKeeper.Subspace(axelarcorktypes.ModuleName)
paramsKeeper.Subspace(cellarfeestypes.ModuleName)
paramsKeeper.Subspace(incentivestypes.ModuleName)
paramsKeeper.Subspace(auctiontypes.ModuleName)
Expand Down
39 changes: 0 additions & 39 deletions app/upgrades/v4/upgrades_test.go

This file was deleted.

161 changes: 158 additions & 3 deletions app/upgrades/v7/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,13 @@ package v7
const UpgradeName = "v7"

// 7seas domain
const SevenSeasDomain = "7seas.capital"
const SevenSeasDomain = "sevenseas.capital"

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

// Publisher CA certificate
const SevenSeasPublisherCA = `-----BEGIN CERTIFICATE-----
Expand Down Expand Up @@ -499,3 +500,157 @@ N6juZKqdOw03MA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwMDaAAwZQIwc7wP
+8beG8Zyz8+MC8geQT/pOBFjYMo+zS0/WqxiuXWCHGLDedOApOWAv3xwiuaHfvRX
-----END CERTIFICATE-----
`

const GoldenRatioSubscriberCA = `-----BEGIN CERTIFICATE-----
MIICwjCCAkigAwIBAgIUTmlbzxXN7lCSmCmeYsW5BHpbDmUwCgYIKoZIzj0EAwMw
gZcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJ
bnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxKTAnBgNVBAMMIHNvbW1lbGllci5nb2xk
ZW5yYXRpb3N0YWtpbmcubmV0MSUwIwYJKoZIhvcNAQkBFhZpbmZvQGdvbGRlbnN0
YWtpbmcuY29tMB4XDTIzMDYxNTE3NDg0NloXDTI1MDYxNDE3NDg0NlowgZcxCzAJ
BgNVBAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5l
dCBXaWRnaXRzIFB0eSBMdGQxKTAnBgNVBAMMIHNvbW1lbGllci5nb2xkZW5yYXRp
b3N0YWtpbmcubmV0MSUwIwYJKoZIhvcNAQkBFhZpbmZvQGdvbGRlbnN0YWtpbmcu
Y29tMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEoOPN2wIe3BxLKHkfPgSfqndnpSIC
Cjb6eapS9zWzWE3BSm8PkqFX5ilIdQFre7vC5kdkx+wcP4K1ENKrG8mJiNwsfPME
tYr0dt9yTA0u5XWcH4nhim4fuq4dixrmWFCco1MwUTAdBgNVHQ4EFgQUEZOE8j2w
J7JFu9/Fn7SBIjf1N7AwHwYDVR0jBBgwFoAUEZOE8j2wJ7JFu9/Fn7SBIjf1N7Aw
DwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjBDlZ/sXQ+yiu3uzCpN
Y8sgQ+yFCuutwnC0LkmVwYybw9gtdQE79JOpwgb4vZUgX7QCMQCvA9wfEoS3LDhW
E+m4CKm4jME2S9VYpmHN656R5mX8CQQ7Wy1G+IUcOX/QBCHLl1g=
-----END CERTIFICATE-----
`

const CryptoCrewSubscriberCA = `-----BEGIN CERTIFICATE-----
MIIDCDCCAo6gAwIBAgIUNUTiLAvawlgyAdvdGlYsTGmLw8kwCgYIKoZIzj0EAwMw
gboxCzAJBgNVBAYTAkFUMRMwEQYDVQQIDApTb21lLVN0YXRlMSgwJgYDVQQKDB9T
T0xWQSBCbG9ja2NoYWluIFNvbHV0aW9ucyBHbWJIMR4wHAYDVQQLDBVDcnlwdG9D
cmV3IFZhbGlkYXRvcnMxJjAkBgNVBAMMHXN0ZXdhcmQtc29tbS5jY3ZhbGlkYXRv
cnMuY29tMSQwIgYJKoZIhvcNAQkBFhVpbmZvQGNjdmFsaWRhdG9ycy5jb20wHhcN
MjMwNDEzMDQ0NTI2WhcNMjUwNDEyMDQ0NTI2WjCBujELMAkGA1UEBhMCQVQxEzAR
BgNVBAgMClNvbWUtU3RhdGUxKDAmBgNVBAoMH1NPTFZBIEJsb2NrY2hhaW4gU29s
dXRpb25zIEdtYkgxHjAcBgNVBAsMFUNyeXB0b0NyZXcgVmFsaWRhdG9yczEmMCQG
A1UEAwwdc3Rld2FyZC1zb21tLmNjdmFsaWRhdG9ycy5jb20xJDAiBgkqhkiG9w0B
CQEWFWluZm9AY2N2YWxpZGF0b3JzLmNvbTB2MBAGByqGSM49AgEGBSuBBAAiA2IA
BNUprvPRhwB864jaknavI4RPzgXv9BfWOdl8oIVwggpNH0w8KbsKq9nIZ9J4Viqk
UsY+kS8hJzR2jjEK9763T40BYhEruZ+4RkiuCb/hxICI1tcB8T4Y0CFYe37YDab6
XaNTMFEwHQYDVR0OBBYEFOuGYuXRFowcT1ZHB43fGDxeHeJMMB8GA1UdIwQYMBaA
FOuGYuXRFowcT1ZHB43fGDxeHeJMMA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0E
AwMDaAAwZQIweTKXQJ463bUH3DhJuLfpCGrewq5GwSQMcc0DXS01OTh4UbXjod+J
G/ksdyOwZqMGAjEA4nwkWotwVMu988zgOl/w5n+NmdH9b/qybqujnqY8VFvEk5lH
utjI6FZqrPdhiQDw
-----END CERTIFICATE-----
`

const DoraFactorySubscriberCA = `-----BEGIN CERTIFICATE-----
MIICNzCCAbygAwIBAgIUYKbPgbWEtiNqgB4bao3JR5Xzgt4wCgYIKoZIzj0EAwMw
UjEVMBMGA1UECgwMRG9yYSBGYWN0b3J5MRUwEwYDVQQLDAxEb3JhIEZhY3Rvcnkx
IjAgBgNVBAMMGXNvbW1lbGllci5kb3JhZmFjdG9yeS5vcmcwHhcNMjMxMDMxMDkw
MjUzWhcNMjUxMDMwMDkwMjUzWjBSMRUwEwYDVQQKDAxEb3JhIEZhY3RvcnkxFTAT
BgNVBAsMDERvcmEgRmFjdG9yeTEiMCAGA1UEAwwZc29tbWVsaWVyLmRvcmFmYWN0
b3J5Lm9yZzB2MBAGByqGSM49AgEGBSuBBAAiA2IABFe7uMCjv2jFQD+WmRbZZ2IF
20JW935FImH2t1ZLny5KMTyBpcqnUdYKR8ZkJBTPZk6Uv58mKr1nXVY6f9PTmaZx
OulptPgcZqjN3vbYWqeQ7RPqHA6uRxv+e4MLYdD7mqNTMFEwHQYDVR0OBBYEFMWX
BT8YThoH4Ay50Psdeqx5no4uMB8GA1UdIwQYMBaAFMWXBT8YThoH4Ay50Psdeqx5
no4uMA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwMDaQAwZgIxAK/znJs5LblZ
Pz7OaQM+T3ODVMmKo/5twhd4XUZsENQgIoev6vogu1LBY/hHnQoQ7gIxAJ1qqxMt
RscyQImrpQQiNAI8oLxTQOeKYmjZDzKAYt6aRtuDtuq07mJISbLo64J8Ug==
-----END CERTIFICATE-----
`

const FrenchChocolatineSubscriberCA = `-----BEGIN CERTIFICATE-----
MIICYjCCAeigAwIBAgIUXFbtefdxA1Iiv/MyYZODseX/AP4wCgYIKoZIzj0EAwMw
aDELMAkGA1UEBhMCRlIxEzARBgNVBAgMClNvbWUtU3RhdGUxGjAYBgNVBAoMEWZy
ZW5jaGNob2NvbGF0aW5lMSgwJgYDVQQDDB9zb21tZWxpZXIuZnJlbmNoY2hvY29s
YXRpbmUuY29tMB4XDTIzMDkxMDE0NDEyOVoXDTI1MDkwOTE0NDEyOVowaDELMAkG
A1UEBhMCRlIxEzARBgNVBAgMClNvbWUtU3RhdGUxGjAYBgNVBAoMEWZyZW5jaGNo
b2NvbGF0aW5lMSgwJgYDVQQDDB9zb21tZWxpZXIuZnJlbmNoY2hvY29sYXRpbmUu
Y29tMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE5z4t7/q0dkwuvX9pV+bgjQbKADed
iaVpHPTJkfdvYKdokxXh+cIQXqdlObVDf55Cwaj1PnMo3gbSRgpYzbdjdQ72HeYv
+k036fJkxuEk8fELAHhISBr/tPSb8Uc4YHFPo1MwUTAdBgNVHQ4EFgQUxWDtaeP9
5ja/24RfDVrWeW542bkwHwYDVR0jBBgwFoAUxWDtaeP95ja/24RfDVrWeW542bkw
DwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEAxW8CtSO2ksGMbagp
CfxZqZJFoGyksz1NC9AoTE3hjsoK0Mzneyfg6VOnC5+Vc0z8AjBwHDWLkggPUs5f
GxXeMxoqZLNzIZ1BnMsMTrdId+jQnvzwI1zRBG1NiKvS4RnpIEI=
-----END CERTIFICATE-----
`
const FreshStakingSubscriberCA = `-----BEGIN CERTIFICATE-----
MIICBDCCAYqgAwIBAgIUKwEbgwfVTJ2Dwro3dVQR3oblUHIwCgYIKoZIzj0EAwMw
OTEVMBMGA1UECwwMRnJlc2hTVEFLSU5HMSAwHgYDVQQDDBdzb21tLXN0ZXdhcmQu
bWl0ZXJhLm5ldDAeFw0yMzAyMjcwMjU2MzlaFw0yNTAyMjYwMjU2MzlaMDkxFTAT
BgNVBAsMDEZyZXNoU1RBS0lORzEgMB4GA1UEAwwXc29tbS1zdGV3YXJkLm1pdGVy
YS5uZXQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4aTg3HyOXG2lVgYNjEN9fVBx9
Mdbc/pH6IB1Mquz6zZ0L6X0DjynOls9V0Mc5ip1iXIM/+LUD95wp4C0uFQg9zPzH
9BtKYSbpvyGToMDeLfC3JGBKP0KdwAx3pIxae+ujUzBRMB0GA1UdDgQWBBTPyFz7
9C4ye4m6YnR7cM9z6ngInTAfBgNVHSMEGDAWgBTPyFz79C4ye4m6YnR7cM9z6ngI
nTAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMFYHsqLWfD23WnCW
qrNyTdccEgcRkC1879tfI/+siPXOqi4FM1XY2PdIXgW5ibO+bwIxAPpX/Vskfclr
JCq5Apxw0R+f3wZxca4/oUGbNzzXSog6VBjaL8EjBGVELhTu1IL28w==
-----END CERTIFICATE-----
`

const KleomedesSubscriberCA = `-----BEGIN CERTIFICATE-----
MIICnDCCAiKgAwIBAgIUb7tPRyrYNpfSekDia+U2/OLFjtEwCgYIKoZIzj0EAwMw
gYQxCzAJBgNVBAYTAklUMQswCQYDVQQIDAJOQTEPMA0GA1UEBwwGTmFwb2xpMRIw
EAYDVQQKDAlLbGVvbWVkZXMxIjAgBgNVBAMMGXN0ZXdhcmQua2xlb21lZGVzLm5l
dHdvcmsxHzAdBgkqhkiG9w0BCQEWEG1hcmNvQGtsZW9tZWQuZXMwHhcNMjMwNTA5
MTQ1NDM5WhcNMjUwNTA4MTQ1NDM5WjCBhDELMAkGA1UEBhMCSVQxCzAJBgNVBAgM
Ak5BMQ8wDQYDVQQHDAZOYXBvbGkxEjAQBgNVBAoMCUtsZW9tZWRlczEiMCAGA1UE
AwwZc3Rld2FyZC5rbGVvbWVkZXMubmV0d29yazEfMB0GCSqGSIb3DQEJARYQbWFy
Y29Aa2xlb21lZC5lczB2MBAGByqGSM49AgEGBSuBBAAiA2IABLn0Q1D1K6wBY2ZI
MaA8GwMtLbMvnXTpKmTv/Eo+KKcI0Sb+LEYRZNjXWi2cF7k0vHi2zfynu5elfITj
5tRiOtNdSZDSzitjlzRoRRMhr+L8TigAOm2wu3eifLrejqBzfqNTMFEwHQYDVR0O
BBYEFLaeB97GB2b5cS4O+cumy+WCDxyrMB8GA1UdIwQYMBaAFLaeB97GB2b5cS4O
+cumy+WCDxyrMA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwMDaAAwZQIxALEO
BOo3c6ZXDwGgY36mi/xPb49yzvNxpMZpf0pyPwHXSrTG3KIfyL+aQ5Pf6Xjy2gIw
OWa00eoN0gQOaWmjGn8mJVcyNqI8T9nYO5XElE3EOfrmO11yYCPcVH17siYmKad6
-----END CERTIFICATE-----
`

const MeriaSubscriberCA = `-----BEGIN CERTIFICATE-----
MIICMzCCAbigAwIBAgIUDgDLT0raIVX67OkmtJmwyR6ABPEwCgYIKoZIzj0EAwMw
UDELMAkGA1UEBhMCRlIxEzARBgNVBAgMClNvbWUtU3RhdGUxDjAMBgNVBAoMBU1l
cmlhMRwwGgYDVQQDDBNzb21tZWxpZXIubWVyaWEuY29tMB4XDTIzMDQyNzE1MDcy
NloXDTI1MDQyNjE1MDcyNlowUDELMAkGA1UEBhMCRlIxEzARBgNVBAgMClNvbWUt
U3RhdGUxDjAMBgNVBAoMBU1lcmlhMRwwGgYDVQQDDBNzb21tZWxpZXIubWVyaWEu
Y29tMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE+aqP3x5uJRWbmicyoPQ/5/fp4AJU
ipiZ7KU6oLHV2vNvAVorBvnzE090ySUZ8Kac5tp6amxltJGQ5K3bWOYip5xJ9EqF
VS/ey12Lq7PUrr28p8RT6DTIB8RZYat+SDk3o1MwUTAdBgNVHQ4EFgQU+s3IFOYw
j+yPSH96D4+xlqBcbBkwHwYDVR0jBBgwFoAU+s3IFOYwj+yPSH96D4+xlqBcbBkw
DwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEA0qB3CcN/R5ud3wGh
zP2Q8bM26FMgaaa09gyybk4drtzVXXHFKHDbbkh4zDH56oP+AjEA5ZpzvOScWlFB
M5BSLEfX2TIRLnEXeDUuT9eqYnLuoSADDJYbrxeTsVmRBZrR/wZs
-----END CERTIFICATE-----
`

const RorcualSubscriberCA = `-----BEGIN CERTIFICATE-----
MIICWTCCAeCgAwIBAgIUKZU8T1uBzNoJYC3GMSAOYLbJk0MwCgYIKoZIzj0EAwMw
ZDETMBEGA1UECAwKU29tZS1TdGF0ZTEWMBQGA1UECgwNUm9yY3VhbCBOb2RlczES
MBAGA1UECwwJU29tbWVsaWVyMSEwHwYDVQQDDBhzdGV3YXJkLnJvcmN1YWxub2Rl
cy5jb20wHhcNMjMwOTA3MTAzMzA3WhcNMjUwOTA2MTAzMzA3WjBkMRMwEQYDVQQI
DApTb21lLVN0YXRlMRYwFAYDVQQKDA1Sb3JjdWFsIE5vZGVzMRIwEAYDVQQLDAlT
b21tZWxpZXIxITAfBgNVBAMMGHN0ZXdhcmQucm9yY3VhbG5vZGVzLmNvbTB2MBAG
ByqGSM49AgEGBSuBBAAiA2IABAMDRP48Wyz7MDSToorAUlqaAuyG1WB064Z5zJyf
o3h//kOKVeztdQUykt8ofuD8wk62dMT4tBcnkg+w3/7Ongo2igleEfG05ll7AMB5
ncOZsWn4vTYqw1mlI1/begCYdKNTMFEwHQYDVR0OBBYEFMLkt17TGgsW+kPft8Ni
yZJFZ2esMB8GA1UdIwQYMBaAFMLkt17TGgsW+kPft8NiyZJFZ2esMA8GA1UdEwEB
/wQFMAMBAf8wCgYIKoZIzj0EAwMDZwAwZAIwJ+h9jQXvgpDc6sX53MSSe8tI7Aen
MVLx2wBAhdYsVvNtjVqVOBtCGo1gzR2wihrWAjABbD66jIHchtaEr8aBD0bSvKz/
aRst4l0zNFMLLfOf6tFbWpKDwINgPBV9z9gqAyE=
-----END CERTIFICATE-----
`

const BlockHuntersSubscriberCA = `-----BEGIN CERTIFICATE-----
MIICHTCCAaKgAwIBAgIUWz0AydVEseLf+oVwtnduqyomJJwwCgYIKoZIzj0EAwMw
RTELMAkGA1UEBhMCUk8xEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoMGElu
dGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMzA5MjgxNDMwNTNaFw0yNTA5Mjcx
NDMwNTNaMEUxCzAJBgNVBAYTAlJPMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYD
VQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwdjAQBgcqhkjOPQIBBgUrgQQA
IgNiAATJS/2WwSqTFKWap02Wch4HAJvBxHNf6LvAowuLdwgyTB1LdWf48q6hpynj
LxCFJ1DmaHVHFDm1pK4l2qkkUGc7u2VUd8tJry0gF1L5BYK0X9P+KfRjjEteX2oL
5MnofQKjUzBRMB0GA1UdDgQWBBRlRlgWuQhgOUwVPsRnNfNIpBSg9zAfBgNVHSME
GDAWgBRlRlgWuQhgOUwVPsRnNfNIpBSg9zAPBgNVHRMBAf8EBTADAQH/MAoGCCqG
SM49BAMDA2kAMGYCMQCOY65+yHeBu4U06IvUSBsVZnmI9uMl6hLzimBaScbCCk+q
g/Le+wXH+HmRtFjTsQACMQCwD7aYZ6EFwDiPsyARB8FnO5tTn5+C8b44FXnDU8Fv
nPXK16h1kHHF7cNSPQKkXFg=
-----END CERTIFICATE-----
`
Loading

0 comments on commit 10451f0

Please sign in to comment.