feat: deploy to B² Network (#4894)

### Description

feat: deploy to B² Network

### Drive-by changes

<!--
Are there any minor or drive-by changes also included?
-->

### Related issues

<!--
- Fixes #[issue number here]
-->

### Backward compatibility

<!--
Are these changes backward compatible? Are there any infrastructure
implications, e.g. changes that would prohibit deploying older commits
using this infra tooling?

Yes/No
-->

### Testing

manual

---------

Signed-off-by: pbio <10051819+paulbalaji@users.noreply.github.com>
pull/4761/merge
Paul Balaji 3 days ago committed by GitHub
parent 3f013d1d8d
commit a94b1600f3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      .registryrc
  2. 83
      rust/main/config/mainnet_config.json
  3. 9
      typescript/infra/config/environments/mainnet3/agent.ts
  4. 3
      typescript/infra/config/environments/mainnet3/aw-validators/hyperlane.json
  5. 70
      typescript/infra/config/environments/mainnet3/core/verification.json
  6. 3
      typescript/infra/config/environments/mainnet3/funding.ts
  7. 4
      typescript/infra/config/environments/mainnet3/gasPrices.json
  8. 86
      typescript/infra/config/environments/mainnet3/ism/verification.json
  9. 21
      typescript/infra/config/environments/mainnet3/middleware/accounts/verification.json
  10. 1
      typescript/infra/config/environments/mainnet3/supportedChainNames.ts
  11. 1
      typescript/infra/config/environments/mainnet3/tokenPrices.json
  12. 11
      typescript/infra/config/environments/mainnet3/validators.ts
  13. 5
      typescript/sdk/src/consts/multisigIsm.ts

@ -1 +1 @@
3cd1c7d8af8718fcac340027d147ba3c4a6df12c
fa13e998aceff5a82b1a4e0791fe392791bb0393

@ -5774,7 +5774,7 @@
"interchainAccountIsm": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"interchainAccountRouter": "0xfF26696DcDb6BbFD27e959b847D4f1399D5BcF64",
"interchainGasPaymaster": "0x9534122Aae7978dB8f5f10dF4432233c53e820A1",
"interchainSecurityModule": "0x46De8b87577624b9ce63201238982b95ad0d7Ea4",
"interchainSecurityModule": "0x9c582a96B7350eEd313560Aeb9aBDff047aeaD36",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x9eaaC366BFD70430cFee6E70265fefFf1CfC9E47",
"pausableHook": "0x9eb56085DdbDA60aDf7d2B533AFeD90e38fC9666",
@ -5844,7 +5844,7 @@
"interchainAccountIsm": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"interchainAccountRouter": "0xfF26696DcDb6BbFD27e959b847D4f1399D5BcF64",
"interchainGasPaymaster": "0x9534122Aae7978dB8f5f10dF4432233c53e820A1",
"interchainSecurityModule": "0x46De8b87577624b9ce63201238982b95ad0d7Ea4",
"interchainSecurityModule": "0x739800B825916456b55CF832A535eE253bC1f358",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x9eaaC366BFD70430cFee6E70265fefFf1CfC9E47",
"pausableHook": "0x9eb56085DdbDA60aDf7d2B533AFeD90e38fC9666",
@ -5905,7 +5905,7 @@
"interchainAccountIsm": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"interchainAccountRouter": "0xfF26696DcDb6BbFD27e959b847D4f1399D5BcF64",
"interchainGasPaymaster": "0x9534122Aae7978dB8f5f10dF4432233c53e820A1",
"interchainSecurityModule": "0x46De8b87577624b9ce63201238982b95ad0d7Ea4",
"interchainSecurityModule": "0x9bdafD7aEd501B30f72b24Ce85d423eB77f51ba0",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x9eaaC366BFD70430cFee6E70265fefFf1CfC9E47",
"pausableHook": "0x9eb56085DdbDA60aDf7d2B533AFeD90e38fC9666",
@ -5969,7 +5969,7 @@
"interchainAccountIsm": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"interchainAccountRouter": "0xfF26696DcDb6BbFD27e959b847D4f1399D5BcF64",
"interchainGasPaymaster": "0x9534122Aae7978dB8f5f10dF4432233c53e820A1",
"interchainSecurityModule": "0x46De8b87577624b9ce63201238982b95ad0d7Ea4",
"interchainSecurityModule": "0xce5718713f019b71F7d37058cD75d12e01dE2611",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x9eaaC366BFD70430cFee6E70265fefFf1CfC9E47",
"pausableHook": "0x9eb56085DdbDA60aDf7d2B533AFeD90e38fC9666",
@ -6033,7 +6033,7 @@
"interchainAccountIsm": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"interchainAccountRouter": "0xfF26696DcDb6BbFD27e959b847D4f1399D5BcF64",
"interchainGasPaymaster": "0x9534122Aae7978dB8f5f10dF4432233c53e820A1",
"interchainSecurityModule": "0x46De8b87577624b9ce63201238982b95ad0d7Ea4",
"interchainSecurityModule": "0xce5718713f019b71F7d37058cD75d12e01dE2611",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0x9eaaC366BFD70430cFee6E70265fefFf1CfC9E47",
"pausableHook": "0x9eb56085DdbDA60aDf7d2B533AFeD90e38fC9666",
@ -6054,6 +6054,79 @@
"index": {
"from": 629917
}
},
"bsquared": {
"blockExplorers": [
{
"apiUrl": "https://explorer.bsquared.network/api",
"family": "etherscan",
"name": "B² Network Explorer",
"url": "https://explorer.bsquared.network"
}
],
"blocks": {
"confirmations": 1,
"estimateBlockTime": 3,
"reorgPeriod": 5
},
"chainId": 223,
"deployer": {
"name": "Abacus Works",
"url": "https://www.hyperlane.xyz"
},
"displayName": "B² Network",
"domainId": 223,
"gasCurrencyCoinGeckoId": "bitcoin",
"name": "bsquared",
"nativeToken": {
"decimals": 18,
"name": "Bitcoin",
"symbol": "BTC"
},
"protocol": "ethereum",
"rpcUrls": [
{
"http": "https://rpc.bsquared.network"
},
{
"http": "https://rpc.ankr.com/b2"
},
{
"http": "https://mainnet.b2-rpc.com"
},
{
"http": "https://b2-mainnet.alt.technology"
}
],
"technicalStack": "other",
"aggregationHook": "0x03D610d916D5D274e4A31c026fd6884281A35d9C",
"domainRoutingIsm": "0xBD70Ea9D599a0FC8158B026797177773C3445730",
"domainRoutingIsmFactory": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"fallbackRoutingHook": "0x60bB6D060393D3C206719A7bD61844cC82891cfB",
"interchainAccountIsm": "0xfF26696DcDb6BbFD27e959b847D4f1399D5BcF64",
"interchainAccountRouter": "0x4D50044335dc1d4D26c343AdeDf6E47808475Deb",
"interchainGasPaymaster": "0x70EbA87Cd15616f32C736B3f3BdCfaeD0713a82B",
"interchainSecurityModule": "0x7dBb82188F553161d4B4ac3a2362Bff3a57e21D2",
"mailbox": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"merkleTreeHook": "0xbb0AE51BCa526cF313b6a95BfaB020794af6C394",
"pausableHook": "0x83475ca5bEB2Eaa59A2FF48a0544ebaa4a32c2de",
"pausableIsm": "0x0D3bD9F1bcDA82bD1682b2C895a907d7aaE45849",
"protocolFee": "0xbB88a31E4b709b645c06825c0E0b5CAC906d97DE",
"proxyAdmin": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"staticAggregationHookFactory": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"staticAggregationIsm": "0x7dBb82188F553161d4B4ac3a2362Bff3a57e21D2",
"staticAggregationIsmFactory": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"staticMerkleRootMultisigIsmFactory": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"staticMerkleRootWeightedMultisigIsmFactory": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"staticMessageIdMultisigIsmFactory": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"staticMessageIdWeightedMultisigIsmFactory": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"storageGasOracle": "0x451dF8AB0936D85526D816f0b4dCaDD934A034A4",
"testRecipient": "0x0F9d4704E1Fb25e416042524e594F1cEac6fF597",
"timelockController": "0x0000000000000000000000000000000000000000",
"validatorAnnounce": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"index": {
"from": 9687363
}
}
},
"defaultRpcConsensusType": "fallback"

@ -66,6 +66,7 @@ export const hyperlaneContextAgentChainConfig: AgentChainConfig<
bob: true,
boba: true,
bsc: true,
bsquared: true,
celo: true,
cheesechain: true,
chilizmainnet: true,
@ -159,6 +160,7 @@ export const hyperlaneContextAgentChainConfig: AgentChainConfig<
bob: true,
boba: true,
bsc: true,
bsquared: true,
celo: true,
cheesechain: true,
chilizmainnet: true,
@ -253,6 +255,7 @@ export const hyperlaneContextAgentChainConfig: AgentChainConfig<
bob: true,
boba: true,
bsc: true,
bsquared: true,
celo: true,
cheesechain: true,
chilizmainnet: true,
@ -444,7 +447,7 @@ const hyperlane: RootAgentConfig = {
rpcConsensusType: RpcConsensusType.Fallback,
docker: {
repo,
tag: 'e70431a-20241121-160243',
tag: 'd834d81-20241125-135658',
},
gasPaymentEnforcement: gasPaymentEnforcement,
metricAppContextsGetter,
@ -453,7 +456,7 @@ const hyperlane: RootAgentConfig = {
validators: {
docker: {
repo,
tag: 'e70431a-20241121-160243',
tag: 'd834d81-20241125-135658',
},
rpcConsensusType: RpcConsensusType.Quorum,
chains: validatorChainConfig(Contexts.Hyperlane),
@ -463,7 +466,7 @@ const hyperlane: RootAgentConfig = {
rpcConsensusType: RpcConsensusType.Fallback,
docker: {
repo,
tag: 'e70431a-20241121-160243',
tag: 'd834d81-20241125-135658',
},
resources: scraperResources,
},

@ -63,6 +63,9 @@
"0x03047213365800f065356b4a2fe97c3c3a52296a"
]
},
"bsquared": {
"validators": ["0xcadc90933c9fbe843358a4e70e46ad2db78e28aa"]
},
"celo": {
"validators": [
"0x63478422679303c3e4fc611b771fa4a707ef7f4a",

@ -5726,5 +5726,75 @@
"constructorArguments": "0000000000000000000000003a464f746d23ab22155710f44db16dca53e0775e",
"isProxy": false
}
],
"bsquared": [
{
"name": "ProxyAdmin",
"address": "0x2f2aFaE1139Ce54feFC03593FeE8AB2aDF4a85A7",
"constructorArguments": "",
"isProxy": false
},
{
"name": "Mailbox",
"address": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D",
"constructorArguments": "00000000000000000000000000000000000000000000000000000000000000df",
"isProxy": false
},
{
"name": "TransparentUpgradeableProxy",
"address": "0x3a464f746D23Ab22155710f44dB16dcA53e0775E",
"constructorArguments": "000000000000000000000000ea87ae93fa0019a82a727bfd3ebd1cfca8f64f1d0000000000000000000000002f2afae1139ce54fefc03593fee8ab2adf4a85a700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000",
"isProxy": true,
"expectedimplementation": "0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D"
},
{
"name": "MerkleTreeHook",
"address": "0xbb0AE51BCa526cF313b6a95BfaB020794af6C394",
"constructorArguments": "0000000000000000000000003a464f746d23ab22155710f44db16dca53e0775e",
"isProxy": false
},
{
"name": "FallbackRoutingHook",
"address": "0x60bB6D060393D3C206719A7bD61844cC82891cfB",
"constructorArguments": "0000000000000000000000003a464f746d23ab22155710f44db16dca53e0775e000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000bb0ae51bca526cf313b6a95bfab020794af6c394",
"isProxy": false
},
{
"name": "PausableHook",
"address": "0x83475ca5bEB2Eaa59A2FF48a0544ebaa4a32c2de",
"constructorArguments": "",
"isProxy": false
},
{
"name": "StorageGasOracle",
"address": "0x451dF8AB0936D85526D816f0b4dCaDD934A034A4",
"constructorArguments": "",
"isProxy": false
},
{
"name": "InterchainGasPaymaster",
"address": "0x81EbEdfc1220BE33C3B9c5E09c1FCab849a392A6",
"constructorArguments": "",
"isProxy": false
},
{
"name": "TransparentUpgradeableProxy",
"address": "0x70EbA87Cd15616f32C736B3f3BdCfaeD0713a82B",
"constructorArguments": "00000000000000000000000081ebedfc1220be33c3b9c5e09c1fcab849a392a60000000000000000000000002f2afae1139ce54fefc03593fee8ab2adf4a85a700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044485cc955000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba00000000000000000000000000000000000000000000000000000000",
"isProxy": true,
"expectedimplementation": "0x81EbEdfc1220BE33C3B9c5E09c1FCab849a392A6"
},
{
"name": "ProtocolFee",
"address": "0xbB88a31E4b709b645c06825c0E0b5CAC906d97DE",
"constructorArguments": "000000000000000000000000000000000000000000000000000000003b9aca000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba",
"isProxy": false
},
{
"name": "ValidatorAnnounce",
"address": "0x25EAC2007b0D40E3f0AF112FD346412321038719",
"constructorArguments": "0000000000000000000000003a464f746d23ab22155710f44db16dca53e0775e",
"isProxy": false
}
]
}

@ -10,7 +10,7 @@ export const keyFunderConfig: KeyFunderConfig<
> = {
docker: {
repo: 'gcr.io/abacus-labs-dev/hyperlane-monorepo',
tag: 'e70431a-20241121-160255',
tag: 'd834d81-20241125-135642',
},
// We're currently using the same deployer/key funder key as mainnet2.
// To minimize nonce clobbering we offset the key funder cron
@ -42,6 +42,7 @@ export const keyFunderConfig: KeyFunderConfig<
bob: '0.2',
boba: '0.05',
bsc: '5',
bsquared: '0.002',
celo: '3',
cheesechain: '50',
chilizmainnet: '200',

@ -63,6 +63,10 @@
"amount": "1.0",
"decimals": 9
},
"bsquared": {
"amount": "0.001000252",
"decimals": 9
},
"celo": {
"amount": "10.0",
"decimals": 9

@ -7346,5 +7346,91 @@
"constructorArguments": "",
"isProxy": true
}
],
"bsquared": [
{
"name": "StaticMerkleRootMultisigIsmFactory",
"address": "0x2C1FAbEcd7bFBdEBF27CcdB67baADB38b6Df90fC",
"constructorArguments": "",
"isProxy": false
},
{
"name": "StaticMerkleRootMultisigIsm",
"address": "0x4725F7b8037513915aAf6D6CBDE2920E28540dDc",
"constructorArguments": "",
"isProxy": true
},
{
"name": "StaticMessageIdMultisigIsmFactory",
"address": "0x8b83fefd896fAa52057798f6426E9f0B080FCCcE",
"constructorArguments": "",
"isProxy": false
},
{
"name": "StaticMessageIdMultisigIsm",
"address": "0xAF03386044373E2fe26C5b1dCedF5a7e854a7a3F",
"constructorArguments": "",
"isProxy": true
},
{
"name": "StaticAggregationIsmFactory",
"address": "0x8F7454AC98228f3504Bb91eA3D8Adafe6406110A",
"constructorArguments": "",
"isProxy": false
},
{
"name": "StaticAggregationIsm",
"address": "0x882CD0C5D50b6dD74b36Da4BDb059507fddEDdf2",
"constructorArguments": "",
"isProxy": true
},
{
"name": "StaticAggregationHookFactory",
"address": "0xEb9FcFDC9EfDC17c1EC5E1dc085B98485da213D6",
"constructorArguments": "",
"isProxy": false
},
{
"name": "StaticAggregationHook",
"address": "0x19930232E9aFC4f4F09d09fe2375680fAc2100D0",
"constructorArguments": "",
"isProxy": true
},
{
"name": "DomainRoutingIsmFactory",
"address": "0x1052eF3419f26Bec74Ed7CEf4a4FA6812Bc09908",
"constructorArguments": "",
"isProxy": false
},
{
"name": "DomaingRoutingIsm",
"address": "0x12Ed1BbA182CbC63692F813651BD493B7445C874",
"constructorArguments": "",
"isProxy": true
},
{
"name": "StaticMerkleRootWeightedMultisigIsmFactory",
"address": "0x0761b0827849abbf7b0cC09CE14e1C93D87f5004",
"constructorArguments": "",
"isProxy": false
},
{
"name": "StaticMerkleRootWeightedMultisigIsm",
"address": "0x3b9f24fD2ecfed0d3A88fa7f0E4e5747671981D7",
"constructorArguments": "",
"isProxy": true
},
{
"name": "StaticMessageIdWeightedMultisigIsmFactory",
"address": "0x4Ed7d626f1E96cD1C0401607Bf70D95243E3dEd1",
"constructorArguments": "",
"isProxy": false
},
{
"name": "StaticMessageIdWeightedMultisigIsm",
"address": "0x71DCcD21B912F7d4f636af0C9eA5DC0C10617354",
"constructorArguments": "",
"isProxy": true
}
]
}

@ -1785,5 +1785,26 @@
"isProxy": true,
"expectedimplementation": "0x0F9d4704E1Fb25e416042524e594F1cEac6fF597"
}
],
"bsquared": [
{
"name": "InterchainAccountIsm",
"address": "0xfF26696DcDb6BbFD27e959b847D4f1399D5BcF64",
"constructorArguments": "0000000000000000000000003a464f746d23ab22155710f44db16dca53e0775e",
"isProxy": false
},
{
"name": "InterchainAccountRouter",
"address": "0x7CE76f5f0C469bBB4cd7Ea6EbabB54437A093127",
"constructorArguments": "0000000000000000000000003a464f746d23ab22155710f44db16dca53e0775e",
"isProxy": false
},
{
"name": "TransparentUpgradeableProxy",
"address": "0x4D50044335dc1d4D26c343AdeDf6E47808475Deb",
"constructorArguments": "0000000000000000000000007ce76f5f0c469bbb4cd7ea6ebabb54437a0931270000000000000000000000002f2afae1139ce54fefc03593fee8ab2adf4a85a700000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000064c0c53b8b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff26696dcdb6bbfd27e959b847d4f1399d5bcf64000000000000000000000000a7eccdb9be08178f896c26b7bbd8c3d4e844d9ba00000000000000000000000000000000000000000000000000000000",
"isProxy": true,
"expectedimplementation": "0x7CE76f5f0C469bBB4cd7Ea6EbabB54437A093127"
}
]
}

@ -17,6 +17,7 @@ export const mainnet3SupportedChainNames = [
'bob',
'boba',
'bsc',
'bsquared',
'celo',
'cheesechain',
'chilizmainnet',

@ -15,6 +15,7 @@
"bob": "3339.7",
"boba": "3339.7",
"bsc": "622.77",
"bsquared": "98146",
"celo": "0.69886",
"cheesechain": "0.00180143",
"chilizmainnet": "0.074224",

@ -1191,5 +1191,16 @@ export const validatorChainConfig = (
'vana',
),
},
bsquared: {
interval: 5,
reorgPeriod: getReorgPeriod('bsquared'),
validators: validatorsConfig(
{
[Contexts.Hyperlane]: ['0xcadc90933c9fbe843358a4e70e46ad2db78e28aa'],
},
'bsquared',
),
},
};
};

@ -187,6 +187,11 @@ export const defaultMultisigConfigs: ChainMap<MultisigConfig> = {
],
},
bsquared: {
threshold: 1,
validators: ['0xcadc90933c9fbe843358a4e70e46ad2db78e28aa'],
},
camptestnet: {
threshold: 1,
validators: ['0x238f40f055a7ff697ea6dbff3ae943c9eae7a38e'],

Loading…
Cancel
Save