diff --git a/integration-tests/config.ts b/integration-tests/config.ts index 22ecf1fc4e..2ac24680e6 100644 --- a/integration-tests/config.ts +++ b/integration-tests/config.ts @@ -7,7 +7,7 @@ import { RpcClient, RpcClientCache } from '@taquito/rpc'; import { knownBigMapContractProtoALph, knownContractProtoALph, knownOnChainViewContractAddressProtoALph, knownSaplingContractProtoALph, knownTzip12BigMapOffChainContractProtoALph } from './known-contracts-ProtoALph'; import { knownContractPtLimaPtL, knownBigMapContractPtLimaPtL, knownTzip12BigMapOffChainContractPtLimaPtL, knownSaplingContractPtLimaPtL, knownOnChainViewContractAddressPtLimaPtL } from './known-contracts-PtLimaPtL'; import { knownContractPtGhostnet, knownBigMapContractPtGhostnet, knownTzip12BigMapOffChainContractPtGhostnet, knownSaplingContractPtGhostnet, knownOnChainViewContractAddressPtGhostnet } from './known-contracts-PtGhostnet'; -import { knownContractPtMumbaii, knownBigMapContractPtMumbaii, knownTzip12BigMapOffChainContractPtMumbaii, knownSaplingContractPtMumbaii, knownOnChainViewContractAddressPtMumbaii } from './known-contracts-PtMumbaii'; +import { knownContractPtMumbai2, knownBigMapContractPtMumbai2, knownTzip12BigMapOffChainContractPtMumbai2, knownSaplingContractPtMumbai2, knownOnChainViewContractAddressPtMumbai2 } from './known-contracts-PtMumbai2'; const nodeCrypto = require('crypto'); @@ -96,12 +96,12 @@ const mumbainetEphemeral = { pollingIntervalMilliseconds: process.env['POLLING_INTERVAL_MILLISECONDS'] || undefined, rpcCacheMilliseconds: process.env['RPC_CACHE_MILLISECONDS'] || '1000', knownBaker: process.env['TEZOS_BAKER'] || 'tz1cjyja1TU6fiyiFav3mFAdnDsCReJ12hPD', - knownContract: process.env['TEZOS_MUMBAINET_CONTRACT_ADDRESS'] || knownContractPtMumbaii, - knownBigMapContract: process.env['TEZOS_MUMBAINET_BIGMAPCONTRACT_ADDRESS'] || knownBigMapContractPtMumbaii, - knownTzip1216Contract: process.env['TEZOS_MUMBAINET_TZIP1216CONTRACT_ADDRESS'] || knownTzip12BigMapOffChainContractPtMumbaii, - knownSaplingContract: process.env['TEZOS_MUMBAINET_SAPLINGCONTRACT_ADDRESS'] || knownSaplingContractPtMumbaii, - knownViewContract: process.env['TEZOS_MUMBAINET_ON_CHAIN_VIEW_CONTRACT'] || knownOnChainViewContractAddressPtMumbaii, - protocol: Protocols.PtMumbaii, + knownContract: process.env['TEZOS_MUMBAINET_CONTRACT_ADDRESS'] || knownContractPtMumbai2, + knownBigMapContract: process.env['TEZOS_MUMBAINET_BIGMAPCONTRACT_ADDRESS'] || knownBigMapContractPtMumbai2, + knownTzip1216Contract: process.env['TEZOS_MUMBAINET_TZIP1216CONTRACT_ADDRESS'] || knownTzip12BigMapOffChainContractPtMumbai2, + knownSaplingContract: process.env['TEZOS_MUMBAINET_SAPLINGCONTRACT_ADDRESS'] || knownSaplingContractPtMumbai2, + knownViewContract: process.env['TEZOS_MUMBAINET_ON_CHAIN_VIEW_CONTRACT'] || knownOnChainViewContractAddressPtMumbai2, + protocol: Protocols.PtMumbai2, signerConfig: { type: SignerType.EPHEMERAL_KEY as SignerType.EPHEMERAL_KEY, keyUrl: 'https://api.tez.ie/keys/mumbainet', @@ -164,12 +164,12 @@ const mumbainetSecretKey = { pollingIntervalMilliseconds: process.env['POLLING_INTERVAL_MILLISECONDS'] || undefined, rpcCacheMilliseconds: process.env['RPC_CACHE_MILLISECONDS'] || '1000', knownBaker: process.env['TEZOS_BAKER'] || 'tz1cjyja1TU6fiyiFav3mFAdnDsCReJ12hPD', - knownContract: process.env['TEZOS_MUMBAINET_CONTRACT_ADDRESS'] || knownContractPtMumbaii, - knownBigMapContract: process.env['TEZOS_MUMBAINET_BIGMAPCONTRACT_ADDRESS'] || knownBigMapContractPtMumbaii, - knownTzip1216Contract: process.env['TEZOS_MUMBAINET_TZIP1216CONTRACT_ADDRESS'] || knownTzip12BigMapOffChainContractPtMumbaii, - knownSaplingContract: process.env['TEZOS_MUMBAINET_SAPLINGCONTRACT_ADDRESS'] || knownSaplingContractPtMumbaii, - knownViewContract: process.env['TEZOS_MUMBAINET_ON_CHAIN_VIEW_CONTRACT'] || knownOnChainViewContractAddressPtMumbaii, - protocol: Protocols.PtMumbaii, + knownContract: process.env['TEZOS_MUMBAINET_CONTRACT_ADDRESS'] || knownContractPtMumbai2, + knownBigMapContract: process.env['TEZOS_MUMBAINET_BIGMAPCONTRACT_ADDRESS'] || knownBigMapContractPtMumbai2, + knownTzip1216Contract: process.env['TEZOS_MUMBAINET_TZIP1216CONTRACT_ADDRESS'] || knownTzip12BigMapOffChainContractPtMumbai2, + knownSaplingContract: process.env['TEZOS_MUMBAINET_SAPLINGCONTRACT_ADDRESS'] || knownSaplingContractPtMumbai2, + knownViewContract: process.env['TEZOS_MUMBAINET_ON_CHAIN_VIEW_CONTRACT'] || knownOnChainViewContractAddressPtMumbai2, + protocol: Protocols.PtMumbai2, signerConfig: defaultSecretKey }; diff --git a/integration-tests/contract-batch-smart-rollup-add-messages.spec.ts b/integration-tests/contract-batch-smart-rollup-add-messages.spec.ts index 455779b7d3..9fb593f5d5 100644 --- a/integration-tests/contract-batch-smart-rollup-add-messages.spec.ts +++ b/integration-tests/contract-batch-smart-rollup-add-messages.spec.ts @@ -4,7 +4,7 @@ import { Protocols } from '@taquito/taquito'; CONFIGS().forEach(({ lib, rpc, setup, protocol }) => { const Tezos = lib; - const mumbaiAndAlpha = protocol === Protocols.PtMumbaii || protocol === Protocols.ProtoALpha ? test : test.skip; + const mumbaiAndAlpha = protocol === Protocols.PtMumbai2 || protocol === Protocols.ProtoALpha ? test : test.skip; describe(`Test contract.batch with smart rollup add messages using: ${rpc}`, () => { beforeEach(async (done) => { diff --git a/integration-tests/contract-simple-transaction.spec.ts b/integration-tests/contract-simple-transaction.spec.ts index ac1e8b096d..124362895a 100644 --- a/integration-tests/contract-simple-transaction.spec.ts +++ b/integration-tests/contract-simple-transaction.spec.ts @@ -3,7 +3,7 @@ import { Protocols } from '@taquito/taquito'; CONFIGS().forEach(({ lib, rpc, setup, protocol }) => { const Tezos = lib; - const mumbaiAndAlpha = protocol === Protocols.PtMumbaii || protocol === Protocols.ProtoALpha ? test : test.skip; + const mumbaiAndAlpha = protocol === Protocols.PtMumbai2 || protocol === Protocols.ProtoALpha ? test : test.skip; describe(`Test simple transaction to tezos public key hashes: ${rpc}`, () => { beforeEach(async (done) => { diff --git a/integration-tests/contract-smart-rollup-add-messages.spec.ts b/integration-tests/contract-smart-rollup-add-messages.spec.ts index e0f390ce49..4507363187 100644 --- a/integration-tests/contract-smart-rollup-add-messages.spec.ts +++ b/integration-tests/contract-smart-rollup-add-messages.spec.ts @@ -3,7 +3,7 @@ import { Protocols } from '@taquito/taquito'; CONFIGS().forEach(({ lib, rpc, protocol, setup }) => { const Tezos = lib; - const mumbaiAndAlpha = protocol === Protocols.PtMumbaii || protocol === Protocols.ProtoALpha ? test : test.skip; + const mumbaiAndAlpha = protocol === Protocols.PtMumbai2 || protocol === Protocols.ProtoALpha ? test : test.skip; describe(`Smart Rollup Add Messages operation test using: ${rpc}`, () => { beforeEach(async (done) => { diff --git a/integration-tests/contract-transfer-ticket-between-implicit-and-originated-accounts.spec.ts b/integration-tests/contract-transfer-ticket-between-implicit-and-originated-accounts.spec.ts index 3f44eaf11c..4b5a7cabda 100644 --- a/integration-tests/contract-transfer-ticket-between-implicit-and-originated-accounts.spec.ts +++ b/integration-tests/contract-transfer-ticket-between-implicit-and-originated-accounts.spec.ts @@ -6,7 +6,7 @@ import { RpcClient, TicketTokenParams } from '@taquito/rpc'; CONFIGS().forEach(({ lib, protocol, rpc, setup, createAddress }) => { const Tezos1 = lib; const client = new RpcClient(rpc); - const mumbaiAndAlpha = protocol === Protocols.PtMumbaii || protocol === Protocols.ProtoALpha ? test : test.skip; + const mumbaiAndAlpha = protocol === Protocols.PtMumbai2 || protocol === Protocols.ProtoALpha ? test : test.skip; let tezos1Pkh: string; let tezos2Pkh: string; let Tezos2: TezosToolkit; diff --git a/integration-tests/injecting-multiple-manager-operations-in-a-block.spec.ts b/integration-tests/injecting-multiple-manager-operations-in-a-block.spec.ts index 1431a31b05..7e9ee6fc26 100644 --- a/integration-tests/injecting-multiple-manager-operations-in-a-block.spec.ts +++ b/integration-tests/injecting-multiple-manager-operations-in-a-block.spec.ts @@ -4,7 +4,7 @@ import { CONFIGS } from "./config"; CONFIGS().forEach(({ lib, rpc, setup, protocol }) => { const Tezos = lib; const limanet = (protocol === Protocols.PtLimaPtL) ? test : test.skip; - const mumbaiAndAlpha = protocol === Protocols.PtMumbaii || protocol === Protocols.ProtoALpha ? test : test.skip; + const mumbaiAndAlpha = protocol === Protocols.PtMumbai2 || protocol === Protocols.ProtoALpha ? test : test.skip; describe(`Test injecting more than one manager operation in a block: ${rpc}`, () => { diff --git a/integration-tests/instructions-with-bytes-conversion.spec.ts b/integration-tests/instructions-with-bytes-conversion.spec.ts index b808bcba58..7a164acb23 100644 --- a/integration-tests/instructions-with-bytes-conversion.spec.ts +++ b/integration-tests/instructions-with-bytes-conversion.spec.ts @@ -6,7 +6,7 @@ import { HttpResponseError } from "@taquito/http-utils"; CONFIGS().forEach(({ lib, protocol, setup }) => { const Tezos = lib; const limanet = protocol === Protocols.PtLimaPtL ? test : test.skip; - const mumbaiAndAlpha = protocol === Protocols.PtMumbaii || protocol === Protocols.ProtoALpha ? test : test.skip; + const mumbaiAndAlpha = protocol === Protocols.PtMumbai2 || protocol === Protocols.ProtoALpha ? test : test.skip; describe(`Test origination of contract with instructions now supporting bytes conversion`, () => { diff --git a/integration-tests/instructions-with-bytes.spec.ts b/integration-tests/instructions-with-bytes.spec.ts index c832d59ea7..b978226944 100644 --- a/integration-tests/instructions-with-bytes.spec.ts +++ b/integration-tests/instructions-with-bytes.spec.ts @@ -5,7 +5,7 @@ import { addContract, lslContract, lsrContract, notContract, orContract, xorCont CONFIGS().forEach(({ lib, protocol, setup }) => { const Tezos = lib; const limanet = protocol === Protocols.PtLimaPtL ? test : test.skip; - const mumbaiAndAlpha = protocol === Protocols.PtMumbaii || protocol === Protocols.ProtoALpha ? test : test.skip; + const mumbaiAndAlpha = protocol === Protocols.PtMumbai2 || protocol === Protocols.ProtoALpha ? test : test.skip; describe(`Test origination of contract with instructions now supporting bytes`, () => { diff --git a/integration-tests/known-contracts-PtMumbai2.ts b/integration-tests/known-contracts-PtMumbai2.ts new file mode 100644 index 0000000000..2f3f0dfe68 --- /dev/null +++ b/integration-tests/known-contracts-PtMumbai2.ts @@ -0,0 +1,5 @@ +export const knownContractPtMumbai2 = "KT1XFiUYC36XSeLTanGJwZxqLzsxz9zquLFB"; +export const knownBigMapContractPtMumbai2 = "KT1KbbvszHoWVSS8Nzh9yLgvRBDkzVjKmCtj"; +export const knownTzip12BigMapOffChainContractPtMumbai2 = "KT1KKU19PxFbQUT9sBJS8KwYCVaXAzYsTkUK"; +export const knownSaplingContractPtMumbai2 = "KT1UHkJDY1CWAgYZJR1NkxXv27gsuu7hC77R"; +export const knownOnChainViewContractAddressPtMumbai2 = "KT1JxWH1vtMiTcvg4AdhTaGmyHt2oBb71tzW"; diff --git a/integration-tests/known-contracts-PtMumbaii.ts b/integration-tests/known-contracts-PtMumbaii.ts deleted file mode 100644 index 50332dbfa8..0000000000 --- a/integration-tests/known-contracts-PtMumbaii.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const knownContractPtMumbaii = "KT1Pt75B5Sgf5nz4m7GX1yGCA36pR2Lf6Eit"; -export const knownBigMapContractPtMumbaii = "KT1ToCtqCSAqK85sYmD3f1AUC1h17Ho9J8J4"; -export const knownTzip12BigMapOffChainContractPtMumbaii = "KT1AJwEfLhur9snYyv86GAXdoQZqygED3X3b"; -export const knownSaplingContractPtMumbaii = "KT1MU6HasZvDrnDk7TdNVGj9zFVfDDGGrkFD"; -export const knownOnChainViewContractAddressPtMumbaii = "KT1Mon6pBMP2M48tRSCAuSTgccsnwwG7PnHw"; diff --git a/integration-tests/local-forging.spec.ts b/integration-tests/local-forging.spec.ts index cb6c2846ba..302ff5e390 100644 --- a/integration-tests/local-forging.spec.ts +++ b/integration-tests/local-forging.spec.ts @@ -7,7 +7,7 @@ CONFIGS().forEach(({ rpc, protocol }) => { const Tezos = new TezosToolkit(rpc); describe(`Test local forger: ${rpc}`, () => { - const mumbaiAndAlpha = protocol === Protocols.ProtoALpha || protocol == Protocols.PtMumbaii ? it : it.skip; + const mumbaiAndAlpha = protocol === Protocols.ProtoALpha || protocol == Protocols.PtMumbai2 ? it : it.skip; // all protocols commonCases.forEach(({ name, operation, expected }) => { it(`Verify that .forge for local forge will return same result as for network forge for rpc: ${name} (${rpc})`, async done => { diff --git a/integration-tests/rpc-get-protocol-constants.spec.ts b/integration-tests/rpc-get-protocol-constants.spec.ts index 6e08d4c47e..427c9adba4 100644 --- a/integration-tests/rpc-get-protocol-constants.spec.ts +++ b/integration-tests/rpc-get-protocol-constants.spec.ts @@ -14,7 +14,7 @@ import { CONFIGS().forEach(({ lib, protocol, rpc }) => { const Tezos = lib; const limanet = (protocol === Protocols.PtLimaPtL) ? test : test.skip; - const mumbainet = (protocol === Protocols.PtMumbaii) ? test : test.skip; + const mumbainet = (protocol === Protocols.PtMumbai2) ? test : test.skip; const alpha = (protocol === Protocols.ProtoALpha) ? test : test.skip; describe('Test fetching constants for all protocols on Mainnet', () => { @@ -771,11 +771,11 @@ CONFIGS().forEach(({ lib, protocol, rpc }) => { cache_stake_distribution_cycles: 8, cycles_per_voting_period: 1, smart_rollup_arith_pvm_enable: false, - smart_rollup_challenge_window_in_blocks: 80640, - smart_rollup_commitment_period_in_blocks: 60, + smart_rollup_challenge_window_in_blocks: 40, + smart_rollup_commitment_period_in_blocks: 20, smart_rollup_enable: true, - smart_rollup_max_active_outbox_levels: 80640, - smart_rollup_max_lookahead_in_blocks: 172800, + smart_rollup_max_active_outbox_levels: 20160, + smart_rollup_max_lookahead_in_blocks: 30000, smart_rollup_max_number_of_cemented_commitments: 5, smart_rollup_max_number_of_messages_per_level: "1000000", smart_rollup_max_number_of_parallel_games: 32, @@ -785,7 +785,7 @@ CONFIGS().forEach(({ lib, protocol, rpc }) => { smart_rollup_number_of_sections_in_dissection: 32, smart_rollup_origination_size: 6314, smart_rollup_stake_amount: "10000000000", - smart_rollup_timeout_period_in_blocks: 40320, + smart_rollup_timeout_period_in_blocks: 500, tx_rollup_commitment_bond: new BigNumber(10000000000), tx_rollup_cost_per_byte_ema_factor: 120, tx_rollup_enable: false, @@ -801,7 +801,7 @@ CONFIGS().forEach(({ lib, protocol, rpc }) => { tx_rollup_rejection_max_proof_size: 30000, tx_rollup_sunset_level: 10000000, tx_rollup_withdraw_period: 40000, - vdf_difficulty: new BigNumber('2000000000'), + vdf_difficulty: new BigNumber('10000000000'), zk_rollup_enable: false, zk_rollup_min_pending_to_process: 10, zk_rollup_origination_size: 4000, diff --git a/integration-tests/rpc-nodes.spec.ts b/integration-tests/rpc-nodes.spec.ts index 68e53e848c..251c336cc8 100644 --- a/integration-tests/rpc-nodes.spec.ts +++ b/integration-tests/rpc-nodes.spec.ts @@ -20,7 +20,7 @@ CONFIGS().forEach( }) => { const Tezos = lib; - const mumbaiAndAlpha = protocol === Protocols.PtMumbaii || protocol === Protocols.ProtoALpha ? test : test.skip; + const mumbaiAndAlpha = protocol === Protocols.PtMumbai2 || protocol === Protocols.ProtoALpha ? test : test.skip; const unrestrictedRPCNode = rpc.endsWith("ecadinfra.com") ? test.skip : test; let ticketContract: DefaultContractType; @@ -40,7 +40,7 @@ CONFIGS().forEach( const ticketCallOp = await ticketContract.methods.auto_call(1).send(); await ticketCallOp.confirmation(); } catch (e) { - console.log(JSON.stringify(e)); + console.log('Failed to originate ticket contract', JSON.stringify(e)); } done(); diff --git a/packages/taquito-local-forging/src/protocols.ts b/packages/taquito-local-forging/src/protocols.ts index c0be6a0892..85e5de68d5 100644 --- a/packages/taquito-local-forging/src/protocols.ts +++ b/packages/taquito-local-forging/src/protocols.ts @@ -13,6 +13,7 @@ export enum ProtocolsHash { PtKathman = 'PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg', PtLimaPtL = 'PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW', PtMumbaii = 'PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc', + PtMumbai2 = 'PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1', ProtoALpha = 'ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK', } @@ -31,6 +32,7 @@ const protoLevel: Record = { PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg: 14, PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW: 15, PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc: 16, + PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1: 16, ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK: 17, }; diff --git a/packages/taquito-local-forging/src/taquito-local-forging.ts b/packages/taquito-local-forging/src/taquito-local-forging.ts index 8ffb630bce..df020f12ef 100644 --- a/packages/taquito-local-forging/src/taquito-local-forging.ts +++ b/packages/taquito-local-forging/src/taquito-local-forging.ts @@ -21,7 +21,7 @@ export * from './interface'; export { VERSION } from './version'; export { ProtocolsHash } from './protocols'; -const PROTOCOL_CURRENT = ProtocolsHash.PtMumbaii; +const PROTOCOL_CURRENT = ProtocolsHash.PtMumbai2; export function getCodec(codec: CODEC, _proto: ProtocolsHash) { return { diff --git a/packages/taquito-michel-codec/src/michelson-types.ts b/packages/taquito-michel-codec/src/michelson-types.ts index ffd6cfde2e..af21df12f7 100644 --- a/packages/taquito-michel-codec/src/michelson-types.ts +++ b/packages/taquito-michel-codec/src/michelson-types.ts @@ -400,6 +400,7 @@ export enum Protocol { PtKathman = 'PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg', PtLimaPtL = 'PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW', PtMumbaii = 'PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc', + PtMumbai2 = 'PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1', ProtoALpha = 'ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK', // temporary protocol hash } @@ -430,6 +431,7 @@ const protoLevel: Record = { PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg: 14, PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW: 15, PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc: 16, + PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1: 16, ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK: 17, }; diff --git a/packages/taquito/src/constants.ts b/packages/taquito/src/constants.ts index ae9754a512..2de6d2bbb4 100644 --- a/packages/taquito/src/constants.ts +++ b/packages/taquito/src/constants.ts @@ -35,6 +35,7 @@ export enum Protocols { PtKathman = 'PtKathmankSpLLDALzWw7CGD2j2MtyveTwboEYokqUCP4a1LxMg', PtLimaPtL = 'PtLimaPtLMwfNinJi9rCfDPWea8dFgTZ1MeJ9f1m2SRic6ayiwW', PtMumbaii = 'PtMumbaiiFFEGbew1rRjzSPyzRbA51Tm3RVZL5suHPxSZYDhCEc', + PtMumbai2 = 'PtMumbai2TmsJHNGRkD8v8YDbtao7BLUC3wjASn1inAKLFCjaH1', ProtoALpha = 'ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK', } @@ -51,7 +52,7 @@ export const protocols = { '013': [Protocols.PtJakart2], '014': [Protocols.PtKathman], '015': [Protocols.PtLimaPtL], - '016': [Protocols.PtMumbaii], + '016': [Protocols.PtMumbai2], // mumbai v2 '017': [Protocols.ProtoALpha], }; @@ -69,4 +70,5 @@ export enum ChainIds { KATHMANDUNET = 'NetXazhm4yetmff', LIMANET = 'NetXizpkH94bocH', MUMBAINET = 'NetXQw6nWSnrJ5t', + MUMBAINET2 = 'NetXgbcrNtXD2yA', }