Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: panic in unregisterDispatchStrategy during market-sim fuzz testing #9787

Closed
cdummett opened this issue Oct 16, 2023 · 3 comments · Fixed by #9792
Closed

[Bug]: panic in unregisterDispatchStrategy during market-sim fuzz testing #9787

cdummett opened this issue Oct 16, 2023 · 3 comments · Fixed by #9792

Comments

@cdummett
Copy link
Contributor

Problem encountered

VMS PR narrowing fuzzing of recurring transfers causes panic.

Link to failing test logs:
https://jenkins.vega.rocks/job/common/job/vega-market-sim/1604/artifact/network_home/vega-sim-wkxl1cmg/

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x13bc00e]

goroutine 50024 [running]:
code.vegaprotocol.io/vega/core/banking.(*Engine).unregisterDispatchStrategy(...)
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/banking/recurring_transfers.go:148
code.vegaprotocol.io/vega/core/banking.(*Engine).deleteTransfer(0xc0014b6d00, {0xc00b4e3c00, 0x40})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/banking/recurring_transfers.go:354 +0xee
code.vegaprotocol.io/vega/core/banking.(*Engine).distributeRecurringTransfers(0xc0014b6d00, {0x40e93f8, 0xc0045f3020}, 0x1c)
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/banking/recurring_transfers.go:342 +0x8d7
code.vegaprotocol.io/vega/core/banking.(*Engine).OnEpoch(0xc0014b6d00, {0x40e93f8, 0xc0045f3020}, {0x1c, {0x0, 0xedbec1d80, 0x0}, {0x0, 0xedbec1df8, 0x0}, ...})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/banking/engine.go:280 +0xcd
code.vegaprotocol.io/vega/core/epochtime.(*Svc).notify(0xc000e62b40, {0x40e93f8, 0xc0045f3020}, {0x1c, {0x0, 0xedbec1d80, 0x0}, {0x0, 0xedbec1df8, 0x0}, ...})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/epochtime/service.go:204 +0xe5
code.vegaprotocol.io/vega/core/epochtime.(*Svc).OnTick(0xc000e62b40, {0x40e93f8, 0xc0045f3020}, {0x1?, 0x4103d68?, 0x0?})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/epochtime/service.go:134 +0x718
code.vegaprotocol.io/vega/core/vegatime.(*Svc).notify(...)
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/vegatime/service.go:107
code.vegaprotocol.io/vega/core/vegatime.(*Svc).SetTimeNow(0xc000476280, {0x40e93f8, 0xc0045f3020}, {0x40?, 0x30bc9c0?, 0x0?})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/vegatime/service.go:80 +0x24f
code.vegaprotocol.io/vega/core/processor.(*App).OnBeginBlock(_, {{0xc009a45500, 0x20, 0x20}, {{0x0, 0x0}, {0xc00046a210, 0x6}, 0xd5b, {0x0, ...}, ...}, ...})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/processor/abci.go:840 +0x747
code.vegaprotocol.io/vega/core/blockchain/abci.(*App).BeginBlock(_, {{0xc009a45500, 0x20, 0x20}, {{0x0, 0x0}, {0xc00046a210, 0x6}, 0xd5b, {0x0, ...}, ...}, ...})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/blockchain/abci/abci.go:49 +0x75
code.vegaprotocol.io/vega/cmd/vega/commands/node.(*appW).BeginBlock(_, {{0xc009a45500, 0x20, 0x20}, {{0x0, 0x0}, {0xc00046a210, 0x6}, 0xd5b, {0x0, ...}, ...}, ...})
	/jenkins/workspace/common/vega-market-sim/extern/vega/cmd/vega/commands/node/app_wrapper.go:67 +0x55
code.vegaprotocol.io/vega/core/blockchain/nullchain.(*NullBlockchain).BeginBlock(0xc000470000)
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/blockchain/nullchain/nullchain.go:340 +0x399
code.vegaprotocol.io/vega/core/blockchain/nullchain.(*NullBlockchain).processBlock(0xc000470000)
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/blockchain/nullchain/nullchain.go:199 +0x24b
code.vegaprotocol.io/vega/core/blockchain/nullchain.(*NullBlockchain).ForwardTime(0xc000470000, 0x3b9aca00)
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/blockchain/nullchain/nullchain.go:276 +0x1e5
code.vegaprotocol.io/vega/core/blockchain/nullchain.(*NullBlockchain).handleForwardTime.func1()
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/blockchain/nullchain/server.go:132 +0x2a
created by code.vegaprotocol.io/vega/core/blockchain/nullchain.(*NullBlockchain).handleForwardTime
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/blockchain/nullchain/server.go:131 +0x24a

Observed behaviour

panic

Expected behaviour

no-panic

Steps to reproduce

1. cd vega-market-sim
1. git checkout feat/rework_reward_fuzzing
1. python -m vega_sim.replay.replay --dir PATH_TO_YOUR_REPLAY_FILE

Software version

35b59f2

Failing test

tests/integration/test_fuzz.py

Jenkins run

https://jenkins.vega.rocks/blue/organizations/jenkins/common%2Fvega-market-sim/detail/vega-market-sim/1604/pipeline

Configuration used

{
  "genesis_time": "2023-05-09T10:00:00.000000000Z",
  "chain_id": "CUSTOM",
  "initial_height": "0",
  "consensus_params": {
    "block": {
      "max_bytes": "22020096",
      "max_gas": "-1",
      "time_iota_ms": "1"
    },
    "evidence": {
      "max_age_num_blocks": "100000",
      "max_age_duration": "172800000000000",
      "max_bytes": "1048576"
    },
    "validator": {
      "pub_key_types": ["ed25519"]
    },
    "version": {}
  },
  "validators": [
    {
      "address": "7DFD3744A773C166B36F170E4F5EF3E998703F4E",
      "pub_key": {
        "type": "tendermint/PubKeyEd25519",
        "value": "2lPO6I0p5uCBZzeoA2+ECJ2+57LtLVMjXpxH5za9TvE="
      },
      "power": "10",
      "name": ""
    }
  ],
  "app_hash": "",
  "app_state": {
    "assets": {
      "VOTE": {
        "name": "VOTE",
        "symbol": "VOTE",
        "decimals": 5,
        "min_lp_stake": "1",
        "source": {
          "builtin_asset": {
            "max_faucet_amount_mint": "100000000000"
          }
        }
      }
    },
    "validators": {
      "6NemqXSfN4zfZvAQeIANflEFqQ98izX9C0KLI2dITSY=": {
        "id": "c2b0ab69fb1bd19862c04df401920ea62d3e0bce41a50148240f42017824d17a",
        "vega_pub_key": "dfcf0fa8d67cfa11b3a511e320f3c47807a5e0735cc06dd9c2bc00f7ccc67117",
        "vega_pub_key_index": 1,
        "ethereum_address": "0x9e5BEEC6E56B28cCbd02864840B0f1e0125e42Ce",
        "tm_pub_key": "6NemqXSfN4zfZvAQeIANflEFqQ98izX9C0KLI2dITSY=",
        "info_url": "",
        "country": "",
        "name": "",
        "avatar_url": ""
      }
    },
    "network": {
      "replay_attack_threshold": 150
    },
    "network_parameters": {
      "blockchains.ethereumConfig": "{\"network_id\": \"3\", \"chain_id\": \"3\", \"collateral_bridge_contract\": { \"address\": \"0xa6F1E140daC13002Dfd9789D6dBA59117c717D7a\" }, \"confirmations\": 50, \"staking_bridge_contract\": { \"address\": \"0xfce2CC92203A266a9C8e67461ae5067c78f67235\", \"deployment_block_height\": 11001702}, \"multisig_control_contract\": {\"address\": \"0xCF6d41235911184fe6F35D47207813bFF3B91601\", \"deployment_block_height\": 12710009 } }",
      "governance.proposal.asset.maxClose": "8760h0m0s",
      "governance.proposal.asset.maxEnact": "8760h0m0s",
      "governance.proposal.asset.minClose": "1s",
      "governance.proposal.asset.minEnact": "1s",
      "governance.proposal.asset.minProposerBalance": "1",
      "governance.proposal.asset.minVoterBalance": "1",
      "governance.proposal.asset.requiredMajority": "0.66",
      "governance.proposal.asset.requiredParticipation": "0.00001",
      "governance.proposal.freeform.maxClose": "8760h0m0s",
      "governance.proposal.freeform.minClose": "1s",
      "governance.proposal.freeform.minProposerBalance": "1",
      "governance.proposal.freeform.minVoterBalance": "1",
      "governance.proposal.freeform.requiredMajority": "0.66",
      "governance.proposal.freeform.requiredParticipation": "0.00001",
      "governance.proposal.market.maxClose": "8760h0m0s",
      "governance.proposal.market.maxEnact": "8760h0m0s",
      "governance.proposal.market.minClose": "1s",
      "governance.proposal.market.minEnact": "2s",
      "governance.proposal.market.minProposerBalance": "1",
      "governance.proposal.market.minVoterBalance": "1",
      "governance.proposal.market.requiredMajority": "0.66",
      "governance.proposal.market.requiredParticipation": "0.00001",
      "governance.proposal.updateAsset.maxClose": "720h",
      "governance.proposal.updateAsset.maxEnact": "720h",
      "governance.proposal.updateAsset.minClose": "1s",
      "governance.proposal.updateAsset.minEnact": "1s",
      "governance.proposal.updateAsset.minProposerBalance": "1",
      "governance.proposal.updateAsset.minVoterBalance": "1",
      "governance.proposal.updateAsset.requiredMajority": "0.66",
      "governance.proposal.updateAsset.requiredParticipation": "0.09",
      "governance.proposal.updateMarket.maxClose": "8760h0m0s",
      "governance.proposal.updateMarket.maxEnact": "8760h0m0s",
      "governance.proposal.updateMarket.minClose": "1s",
      "governance.proposal.updateMarket.minEnact": "1s",
      "governance.proposal.updateMarket.minProposerBalance": "1",
      "governance.proposal.updateMarket.minProposerEquityLikeShare": "0",
      "governance.proposal.updateMarket.minVoterBalance": "1",
      "governance.proposal.updateMarket.requiredMajority": "0.66",
      "governance.proposal.updateMarket.requiredMajorityLP": "0.66",
      "governance.proposal.updateMarket.requiredParticipation": "0.00001",
      "governance.proposal.updateMarket.requiredParticipationLP": "0",
      "governance.proposal.updateNetParam.maxClose": "8760h0m0s",
      "governance.proposal.updateNetParam.maxEnact": "8760h0m0s",
      "governance.proposal.updateNetParam.minClose": "1s",
      "governance.proposal.updateNetParam.minEnact": "1s",
      "governance.proposal.updateNetParam.minProposerBalance": "1",
      "governance.proposal.updateNetParam.minVoterBalance": "1",
      "governance.proposal.updateNetParam.requiredMajority": "0.5",
      "governance.proposal.updateNetParam.requiredParticipation": "0.00001",
      "governance.proposal.referralProgram.maxClose": "8760h0m0s",
      "governance.proposal.referralProgram.maxEnact": "8760h0m0s",
      "governance.proposal.referralProgram.minClose": "1s",
      "governance.proposal.referralProgram.minEnact": "1s",
      "governance.proposal.referralProgram.minProposerBalance": "1",
      "governance.proposal.referralProgram.minVoterBalance": "1",
      "governance.proposal.referralProgram.requiredMajority": "0.5",
      "governance.proposal.referralProgram.requiredParticipation": "0.00001",
      "governance.proposal.VolumeDiscountProgram.maxClose": "8760h0m0s",
      "governance.proposal.VolumeDiscountProgram.maxEnact": "8760h0m0s",
      "governance.proposal.VolumeDiscountProgram.minClose": "1s",
      "governance.proposal.VolumeDiscountProgram.minEnact": "1s",
      "governance.proposal.VolumeDiscountProgram.minProposerBalance": "1",
      "governance.proposal.VolumeDiscountProgram.minVoterBalance": "1",
      "governance.proposal.VolumeDiscountProgram.requiredMajority": "0.5",
      "governance.proposal.VolumeDiscountProgram.requiredParticipation": "0.00001",
      "limits.markets.maxPeggedOrders": "1500",
      "market.auction.maximumDuration": "168h",
      "market.auction.minimumDuration": "1s",
      "market.fee.factors.infrastructureFee": "0.0005",
      "market.fee.factors.makerFee": "0.0002",
      "market.liquidity.bondPenaltyParameter": "0.1",
      "market.liquidity.earlyExitPenalty": "0.1",
      "market.liquidity.maximumLiquidityFeeFactorLevel": "0.03",
      "market.liquidity.minimum.probabilityOfTrading.lpOrders": "1e-6",
      "market.liquidity.probabilityOfTrading.tau.scaling": "10.0",
      "market.liquidity.providersFeeCalculationTimeStep": "1s",
      "market.liquidity.sla.nonPerformanceBondPenaltyMax": "0.5",
      "market.liquidity.sla.nonPerformanceBondPenaltySlope": "2",
      "market.liquidity.stakeToCcyVolume": "1.0",
      "market.liquidity.targetstake.triggering.ratio": "0.25",
      "market.liquidityProvision.minLpStakeQuantumMultiple": "5000",
      "market.liquidityProvision.shapes.maxSize": "100",
      "market.margin.scalingFactors": "{\"search_level\": 1.1, \"initial_margin\": 1.5, \"collateral_release\": 1.7}",
      "market.monitor.price.defaultParameters": "{\"triggers\": [{\"auction_extension\": 300, \"horizon\": 43200, \"probability\": \"0.9999999\"}] }",
      "market.stake.target.scalingFactor": "0.0001",
      "market.stake.target.timeWindow": "1h",
      "market.value.windowLength": "2h0m0s",
      "network.checkpoint.timeElapsedBetweenCheckpoints": "5m",
      "network.floatingPointUpdates.delay": "5m",
      "network.markPriceUpdateMaximumFrequency": "5s",
      "network.transaction.defaultgas": "1",
      "network.transactions.maxgasperblock": "3000000",
      "network.transactions.minBlockCapacity": "32",
      "network.validators.ersatz.multipleOfTendermintValidators": "0",
      "network.validators.ersatz.rewardFactor": "0.85",
      "network.validators.incumbentBonus": "0.05",
      "network.validators.minimumEthereumEventsForNewValidator": "3",
      "network.validators.multisig.numberOfSigners": "13",
      "network.validators.tendermint.number": "13",
      "reward.asset": "VOTE",
      "reward.staking.delegation.competitionLevel": "1.3",
      "reward.staking.delegation.delegatorShare": "0.8",
      "reward.staking.delegation.maxPayoutPerEpoch": "9890000000000000000000",
      "reward.staking.delegation.maxPayoutPerParticipant": "700000000000000000000",
      "reward.staking.delegation.minimumValidatorStake": "3000000000000000000000",
      "reward.staking.delegation.minValidators": "5",
      "reward.staking.delegation.optimalStakeMultiplier": "3.0",
      "reward.staking.delegation.payoutDelay": "0h",
      "reward.staking.delegation.payoutFraction": "1.0",
      "rewards.marketCreationQuantumMultiple": "1",
      "snapshot.interval.length": "300",
      "spam.pow.difficulty": "15",
      "spam.pow.hashFunction": "sha3_24_rounds",
      "spam.pow.increaseDifficulty": "0",
      "spam.pow.numberOfPastBlocks": "100",
      "spam.pow.numberOfTxPerBlock": "1000",
      "spam.protection.delegation.min.tokens": "100000000000000000",
      "spam.protection.max.batchSize": "30",
      "spam.protection.max.delegations": "360",
      "spam.protection.max.proposals": "300",
      "spam.protection.max.votes": "300",
      "spam.protection.maxUserTransfersPerEpoch": "10000",
      "spam.protection.minimumWithdrawalQuantumMultiple": "10",
      "spam.protection.minMultisigUpdates": "100000000000000000000",
      "spam.protection.proposal.min.tokens": "2000000000000000000000",
      "spam.protection.voting.min.tokens": "1000000000000000000",
      "spam.protection.applyReferral.min.funds": "0",
      "transfer.fee.factor": "0.001",
      "transfer.minTransferQuantumMultiple": "100",
      "validator.performance.scaling.factor": "0",
      "validators.delegation.minAmount": "1",
      "validators.epoch.length": "2m",
      "validators.vote.required": "0.67",
      "referralProgram.maxReferralTiers": "10",
      "referralProgram.maxReferralRewardFactor": "1",
      "referralProgram.maxReferralDiscountFactor": "1",
      "referralProgram.maxPartyNotionalVolumeByQuantumPerEpoch": "10000",
      "referralProgram.minStakedVegaTokens": "0",
      "referralProgram.maxReferralRewardProportion": "1"
    },
    "network_limits": {
      "propose_market_enabled": true,
      "propose_asset_enabled": true,
      "bootstrap_block_count": 0
    },
    "checkpoint": {
      "load_hash": ""
    }
  }
}

Relevant log output

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x13bc00e]

goroutine 50024 [running]:
code.vegaprotocol.io/vega/core/banking.(*Engine).unregisterDispatchStrategy(...)
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/banking/recurring_transfers.go:148
code.vegaprotocol.io/vega/core/banking.(*Engine).deleteTransfer(0xc0014b6d00, {0xc00b4e3c00, 0x40})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/banking/recurring_transfers.go:354 +0xee
code.vegaprotocol.io/vega/core/banking.(*Engine).distributeRecurringTransfers(0xc0014b6d00, {0x40e93f8, 0xc0045f3020}, 0x1c)
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/banking/recurring_transfers.go:342 +0x8d7
code.vegaprotocol.io/vega/core/banking.(*Engine).OnEpoch(0xc0014b6d00, {0x40e93f8, 0xc0045f3020}, {0x1c, {0x0, 0xedbec1d80, 0x0}, {0x0, 0xedbec1df8, 0x0}, ...})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/banking/engine.go:280 +0xcd
code.vegaprotocol.io/vega/core/epochtime.(*Svc).notify(0xc000e62b40, {0x40e93f8, 0xc0045f3020}, {0x1c, {0x0, 0xedbec1d80, 0x0}, {0x0, 0xedbec1df8, 0x0}, ...})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/epochtime/service.go:204 +0xe5
code.vegaprotocol.io/vega/core/epochtime.(*Svc).OnTick(0xc000e62b40, {0x40e93f8, 0xc0045f3020}, {0x1?, 0x4103d68?, 0x0?})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/epochtime/service.go:134 +0x718
code.vegaprotocol.io/vega/core/vegatime.(*Svc).notify(...)
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/vegatime/service.go:107
code.vegaprotocol.io/vega/core/vegatime.(*Svc).SetTimeNow(0xc000476280, {0x40e93f8, 0xc0045f3020}, {0x40?, 0x30bc9c0?, 0x0?})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/vegatime/service.go:80 +0x24f
code.vegaprotocol.io/vega/core/processor.(*App).OnBeginBlock(_, {{0xc009a45500, 0x20, 0x20}, {{0x0, 0x0}, {0xc00046a210, 0x6}, 0xd5b, {0x0, ...}, ...}, ...})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/processor/abci.go:840 +0x747
code.vegaprotocol.io/vega/core/blockchain/abci.(*App).BeginBlock(_, {{0xc009a45500, 0x20, 0x20}, {{0x0, 0x0}, {0xc00046a210, 0x6}, 0xd5b, {0x0, ...}, ...}, ...})
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/blockchain/abci/abci.go:49 +0x75
code.vegaprotocol.io/vega/cmd/vega/commands/node.(*appW).BeginBlock(_, {{0xc009a45500, 0x20, 0x20}, {{0x0, 0x0}, {0xc00046a210, 0x6}, 0xd5b, {0x0, ...}, ...}, ...})
	/jenkins/workspace/common/vega-market-sim/extern/vega/cmd/vega/commands/node/app_wrapper.go:67 +0x55
code.vegaprotocol.io/vega/core/blockchain/nullchain.(*NullBlockchain).BeginBlock(0xc000470000)
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/blockchain/nullchain/nullchain.go:340 +0x399
code.vegaprotocol.io/vega/core/blockchain/nullchain.(*NullBlockchain).processBlock(0xc000470000)
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/blockchain/nullchain/nullchain.go:199 +0x24b
code.vegaprotocol.io/vega/core/blockchain/nullchain.(*NullBlockchain).ForwardTime(0xc000470000, 0x3b9aca00)
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/blockchain/nullchain/nullchain.go:276 +0x1e5
code.vegaprotocol.io/vega/core/blockchain/nullchain.(*NullBlockchain).handleForwardTime.func1()
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/blockchain/nullchain/server.go:132 +0x2a
created by code.vegaprotocol.io/vega/core/blockchain/nullchain.(*NullBlockchain).handleForwardTime
	/jenkins/workspace/common/vega-market-sim/extern/vega/core/blockchain/nullchain/server.go:131 +0x24a
@cdummett
Copy link
Contributor Author

Currently trying to reproduce on latest commit - 3f69360f34666c26e2e0048b431dcc771f7ab30a
https://jenkins.vega.rocks/blue/organizations/jenkins/vega-market-sim/detail/PR-526/5/pipeline

@gordsport gordsport assigned wwestgarth and unassigned gordsport Oct 16, 2023
@wwestgarth wwestgarth moved this to In Progress in Core Kanban Oct 16, 2023
@ze97286
Copy link
Contributor

ze97286 commented Oct 16, 2023

@wwestgarth I believe the issue is that we're not registering the dispatch strategy in recurring_transfers, only in governance transfers.

@wwestgarth
Copy link
Contributor

wwestgarth commented Oct 16, 2023

@ze97286 that might also be a bug, but in this particular case the market slice in the dispatch stragedy is changing between registering and unregistering. This causes the hash to be different.

adding   949f705e86bffa335dc3e045476ba6b14179cf59618441f252c00b15330bae45 metric:DISPATCH_METRIC_MARKET_VALUE markets:"64d37cfbd968ffa76a3dc0829648fd43dfdfac0f0b23b2f00aec43b167f7a2a6" markets:"32a02703a7231ab123958a1149b2f70c3eecd3fe3292a1f345e5192324af672a" entity_scope:ENTITY_SCOPE_INDIVIDUALS individual_scope:INDIVIDUAL_SCOPE_ALL lock_period:1
deleting 949f705e86bffa335dc3e045476ba6b14179cf59618441f252c00b15330bae45 metric:DISPATCH_METRIC_MARKET_VALUE markets:"32a02703a7231ab123958a1149b2f70c3eecd3fe3292a1f345e5192324af672a" markets:"64d37cfbd968ffa76a3dc0829648fd43dfdfac0f0b23b2f00aec43b167f7a2a6" entity_scope:ENTITY_SCOPE_INDIVIDUALS individual_scope:INDIVIDUAL_SCOPE_ALL lock_period:1

@vega-issues vega-issues moved this from In Progress to Waiting Review in Core Kanban Oct 16, 2023
@vega-issues vega-issues moved this from Waiting Review to Approved in Core Kanban Oct 16, 2023
@vega-issues vega-issues moved this from Approved to In Review in Core Kanban Oct 16, 2023
@github-project-automation github-project-automation bot moved this from In Review to Merged in Core Kanban Oct 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

4 participants