Changelog
All notable changes included in each Chainflip release will be documented in this file.
[1.4.2] - 2024-06-03
Features
- Add arbitrum support ((PRO-1154)) (#4486)
- Per chain safe mode to restrict deposits (#4819)
- Limit the number of utxos selected for egress (#4559)
- Rpc endpoint for json-encoded events (#4610)
- Update sisyphos and perseverance chainspecs (#4621) (#4635)
- Move broker_fee_collection_test inside all_concurrent_test (#4622)
- Add broker api connection limit option (#4643)
- RPC for returning scale-encoded System events (#4638)
- Support account deletion (#4314)
- Lock
bitcoin
andpolkadot
images to a specific commit 🔒 (#4686) - Add chainspecs of all network to docker 📜🐳 (#4702)
- Update metric's buckets values (#4708)
- Gas swaps use swapping queue (#4697)
- Continuous transfer of old utxos (#4680)
- Handle prewitness deposits (#4698)
- Emit event to help diagnose failed witnessing reports (#4741)
- Add prewitness deposit events (#4745)
- Make price impact limit configurable per pool (#4750)
- Write snapshot if try runtime check fails (#4657)
- Add pool created events (#4761)
- Authorities should be sorted pseudo-randomly (#4752)
- Cf_boost_pools_depth rpc (#4771)
- Added safe mode for ingress egress pallet (#4779)
- Cf_boost_pool_details rpc (#4780)
- Allow for single binary CFE upgrades (#4634)
- Optimistic build, streamlined ci-main (#4806)
- Try-runtime build step on dev ci (#4807)
- Better diagnostics for bouncer swaps (#4812)
- Governance extrinsic to create boost pools (#4816)
- Store boost fees explicitly + rpc (#4818)
- LP Asset rebalancing ((PRO-1259)) (#4784)
- Efficient Arbitrum witnessing ((PRO-1098)) (#4811)
- Affiliate Brokers (#4777)
Fixes
- Start localnet using correct commit (#4623)
- Allow OldAsset to support unambiguously encoding Arb USDC and Eth USDC, while maintaining backcompat ((PRO-1237)) (#4614)
- Usdt should use new encoding not legacy (#4633)
- Missing feature flags (#4639)
- Change pallet ordering to prevent breakage (#4640)
- Revert changes to sisyphos chainspec (#4641)
- Return rpc error (#4637)
- More try-runtime unwraps. (#4648)
- Publish
chainflip-engine1.3
to debian packages 🐞 (#4653) - Correct cfe-events pallet version (#4658)
- Remove unused cli command line options (#4644)
- Replace u128 with U256 (#4656)
- Remove cfe events migration (#4671)
- Update confusing runtime spec version check 🤦♂️ (#4672)
- Submission watcher could confuse/lose track of submissions (#4667)
- Cf_pools_environment rpc encoding (#4674)
- Rename slippage -> price impact (#4679)
- Replace sepolia usdt address (#4683)
- Add dummy benchmark for account roles pallet (#4684)
- Typo in the error message (#4694)
- Correct perseverance chainspec on main (#4704)
- Continuous adapter (#4707)
- Make benchmarks work again (#4716)
- Uncomment pools pallet migration (#4725)
- Remove misleading error (#4726)
- Migration for earned fees (#4733)
- Broker flakiness on bouncer CI (#4736)
- Update some obvious gaps / inaccuracies in the main readmes (#4738)
- Use new perseverance genesis hash (#4748)
- Set initial arb block (#4753)
- Initialise ingress egress pallet values for arbitrum (#4762)
- (PRO-1330) - Move Location::panic() to inside the function, so it outputs the caller of the fn and not of the async block poll fn. (#4769)
- Arb vault rotation migration (#4770)
- Use
ubuntu-22.04
for benchmark runner provisioning workflow 🐛 (#4773) - Extend upgrade timeout (#4774)
- Increase concurrent timeout (#4775)
- Git fetch all before checkout (#4776)
- Dry run gets fresh runtime version ((PRO-1249)) (#4669)
- Dot metadata update (#4786)
- Take fee on to usdc (#4801) (#4804)
- Sign tx with correct key during rotation (#4794)
- Don't set code red on "agg-key set by gov-key" (#4813)
- Improve container pull times ⌚️ (#4827)
- Dont delete
/sbin
dirs 😵💫 (#4828) - Upgrade test permissions (#4838)
- Upgrade test to kill node correctly (#4865)
- Add
ca-certificates
to docker images 🐛 (#4867) - Increase localnet chainflip-node request and response size 1.4 (#4880)
- Prevent liquidity saturation during fee estimation (#4834) (#4883)
- Increase javascript memory limit for bouncer all_concurrent_tests (#4904)
Refactor
- Move vanity names to account roles pallet (#4719)
- Autodisconnect dot clients (#4772)
- Minor cleanup of retrier code and vault pallet (#4803)
- Auto-disconnect client (#4820)
- Refactor setup (#4825)
Documentation
- Fix a typo and minor grammar issue in PRACTICES.md (#4695)
[1.3.2] - 2024-03-27
Features
- Add chainspecs of all network to docker 📜🐳 (#4705)
- Remove backcompat asset encoding from rpcs (and make them line up with newer Asset encoding) (#4710
Fixes
- Typo in the error message (#4694)
- Cherry-pick correct chainspecs for sisyphos and perseverance (#4703)
- Continuous adapter (#4707)
[1.3.1] - 2024-03-22
- Logging: LP-API panic reported in submission watcher (#4664)
- Remove unused CLI command line options ([#4644] (#4644))
- Add USDT to banana mode and update code to reflect storage changes (#4685)
- Add broker api connection limit option (#4643)
- Update sisyphos and perseverance chainspecs (#4621) (#4635)
- Update confusing runtime spec version check for releases (#4672)
- Fix: submission watcher could confuse/lose track of submissions (#4667)
- Fix: cf_pools_environment rpc encoding (#4674)
- Revert changes to sisyphos chainspec (#4641)
- Allow OldAsset to support unambiguously encoding Arb USDC and Eth USDC, while maintaining backcompat ((PRO-1237)) (#4614)
- Remove aptly check from publish workflow ([#4650] (#4650))
- Run CI on
nscloud
runners (#4505) - Usdt should use new encoding not legacy (#4633)
- Publish
chainflip-engine1.3
to debian packages (#4653) (#4654) - Replace u128 with U256 (#4656) (#4663)
- Update usdt address for testnet (#4678)
- Scheduled Swaps Subscription (#4525)
- Added boost_fee param (#4469)
- Added network fee to swapping environment (#4470)
- Add boost fee field to DepositChannelDetails (#4492)
- Expose ingress egress env fees in asset amounts (#4497)
- Storage migrations for signing refactor. (#4493)
- Ingress-egress-tracker on localnet startup (#4481)
- Punish nodes that do not witness in time (#4507)
- Auto pick non-breaking changes (#4498)
- Charge a fee for opening swap deposit addresses (#4512)
- More information added to AllBatchError. ((PRO-1171)) (#4535)
- Bump substrate deps to polkadot-sdk 1.6 (#4504)
- Extensible multi-key rotator (#4546)
- Debug logs on runtime upgrade test (#4556)
- Deploy L2 contracts upon localnet startup and send L2 TXs (#4558)
- Add broker info [(WEB-925)] (#4560)
- Store prewitnessed deposits with id (#4496)
- Relative Slippage Limits ((PRO-1207)) (#4547)
- Expose tx_hash on BroadcastSuccess event (#4561)
- Add boost lp account to bouncer and fund it on setup_swaps (#4552)
- Expose command for broker fee withdrawal (#4581)
- Add block height and deposit details to PrewitnessedDeposit (#4606)
- Introduce tx fee multiplier storage item (#4594)
- Add channel opening fee to DepositAddressReady Events (#4609)
- Use swapping queue when swapping network fee for burn (#4584)
- Reputation safe mode should not prevent backup emissions (#4485)
- Recreate debug.log in build-localnet (#4487)
- Allow redemption if balance < sum of restricted funds (#4488)
- Update
snow
package to fix audit issue (#4506) - Nicer formatting of dot addresses and payloads (#4511)
- Downgrade upload/download artifact (#4516)
- Remove old runtime benchmarks (#4514)
- Version flag (#4520)
- Remove old failed ccms (#4502)
- Pull first (#4526)
- Re-add version update (#4533)
- Don't remove
docker-compose.yml
when network stops (#4541) - Upgrade-test should restart the chainflip-nodes on an incompatible upgrade (#4490)
- Ensure channel open fee can be paid in benchmarks (#4544)
- Activate missing migrations (#4550)
- Allow test coverage to run (#4555)
- More lenient max deposit fee in bouncer test (#4564)
- Wait for ThresholdSignature success before switching to NewKeysActivated (#4534)
- Continuous adapter ((PRO-684)) (#4503)
- Remove bounded balance check (#4575)
- Disable try-state checks (#4576)
- Runtime upgrade state check uses AllPalletsWithoutSystem (#4583)
- Just check that the balance after is greater than before (#4587)
- Remove tight bound for ingress fee on broker test (#4591)
- Use correct pnpm deps for upgrade-test (#4596)
- Upgrade test pnpm install from commit (#4600)
- RUSTSEC-2024-0019 (#4604)
- Patch 1.2 broker test (#4607)
- Allow CLI to run in Debug mode (#4605)
- Swap subscription amounts as hex (#4611)
- Remove RpcAsset ((PRO-1187)) (#4491)
- Use ForeignChainAndAsset (#4536)
- Pass tx_ref as an extrinsic parameter (#4579)
- Pass out CFE incompatibility exit information to main (#4563)
- Update Solana image to latest tag (#4574)
- Ingress-egress-tracker: Add tx_ref to redis (#4573)
- Remove Arbitrum from cherry-picked code
- Add USDT (#4628)
[1.2.1] - 2024-03-04
Features
- Price impact protection for swaps (#4547)
[1.2.0] - 2024-02-02
Features
- Decouple CFE from SC events (#4382)
- Expose ingress and egress fees on events (#4442)
- BitcoinFeeInfo: Store single field, derive the rest ((PRO-1073)) (#4372)
- Track btc fees on success (#4334)
- Shave fees on ingress (#4335)
- Add version cmd to all bins (#4343)
- API Bins check SC compatibility (#4342)
- Enforce version is greater than release version on PRs to main (#4351)
- Spec_version of PR is greater than spec version of current release (#4355)
- End to end network upgrade github action (#4274)
- Btc utxo consolidation (#4338)
- Add chaintracking metric (#4369)
- Order_fills rpc ((PRO-1044)) (#4376)
- Track deposit witnesses and egress confirmations [(WEB-715)] (#4370)
- Nightly bouncer (#4400)
- Bouncer command to check how many validator witnessed something (#4408)
- Add witness safety margin [(PRO-1059)] (#4438)
- Solana localnet (#4428)
- Upgrade test can be run from any commit on main (#4421)
- Improve ceremony metrics (#4354)
- Upgrade-test can work on releases (#4453)
- CFE processes SC events in the initial block on startup (#4228)
- Nightly upgrade (#4462)
- Run tests in release-mode (pragmatic approach) (#4441)
- Expose all ignored egresses in ingress-egress pallet (#4458)
Fixes
- CFE Witnessing, use parent block metadata when decoding events (#4331)
- Build sisyphos with production profile (#4327)
- Sweeping before withdrawal (#4337)
- Changelog check 🤫 (#4348)
- Connections can become stale when reconnecting (#4310)
- Btc witnesser test failing sometimes (#4353)
- Remove pre-witnessing functionality (#4358)
- Can timeout when updating CFE version (#4365)
- Use correct runtime name for upgrade test (#4378)
- Bitcoin deposit witness code ((PRO-1078)) (#4373)
- Ensure api lib version is bumped (#4387)
- Cargo fmt (#4392)
- Remove meaningless bearer token (#4397)
- Avoid SCC "sparse stream" error in CLI when making requests ((PRO-998)) (#4393)
- Bump subxt version to 0.32.1 (#4388)
- Return correct error in cf-pool pallet (#4405)
- Use existing script for upgrade job (#4403)
- Don't have conflicting redis port with localnet (#4415)
- Pool_orders rpc filters empty orders ((PRO-1039)) (#4377)
- Await finalisation before starting broker (#4412)
- Bump spec version command only bumps when necessary (#4422)
- Restore correct restriction on redemption expiry ((PRO-1072))
- RUSTSEC-2024-0006 (#4439)
- Filter incompatible blocks ((PRO-1108)) (#4432)
- Use custom subxt config + nextAccountIndex (#4440)
- 🐛 fixed storage version (#4447)
- Const UNFINALIZED = false; (#4452)
- Use 127.0.0.1 instead of localhost (#4457)
- Issues with merge (#4466)
- Spelling of AssetConversionError::UnsupportedAsset (#4474)
- Force egress success for benchmarks (#4480)
Refactor
- Code cleaniness (#4389)
- Save data to redis [(WEB-761)] (#4399)
- Improve panic behaviour (#4391)
- Give structure [(WEB-761)] (#4402)
- Configurable expiry times [(WEB-761)] (#4406)
- Use yargs for all try_runtime_command options (#4423)
- Remove unnecessary fields (#4425)
Documentation
- Correct env vars (#4416)
Testing
- Cfe event encoding (#4429)
- Latest_then adapter testing (#4322)
- Polkadot runtime update bouncer test (#4286)
- Ensure DepositIgnored(NotEnoughToPayFees) event is emitted (#4460)
[1.1.5] - 2024-01-02
Fixes
- Ensure all nodes consistently witness Bitcoin deposits (#4374)
[1.1.4] - 2023-12-21
Features
- More accurate btc fees (#4367)
[1.1.3] - 2023-12-19
Fixes
- Remove pre-witnessing functionality (#4359)
[1.1.1] - 2023-12-13
Features
Fixes
- CFE Witnessing, use parent block metadata when decoding events (#4331)
- Sweeping before withdrawal (#4337)
Testing
- Latest_then adapter testing (#4322)
[1.1.0] - 2023-12-07
Features
- Handle failed vault transfers (#4304)
- Rpc to get list of supported assets. (#4222)
- Try-runtime loop (#4267)
- Original order size and accumulative fees (#4211)
- Store witness safety margins on SC (#4260)
- Simulate order book RPC (#4269)
- Upgrade_network command using prebuilt binaries (#4280)
- Try runtime in upgrade tool (#4282)
- Re-sign failed CCMs (#4277)
- (PRO-932): add fee info to cf_pool_orders tpc (#4295)
- Add max swap amounts to swapping env (#4306)
- Broadcast barrier (#4207)
- Add redeeming to LP API (#4292)
- Try-runtime build to CI (#4293)
- New Lp Interfaces (#4313)
- Lp_subscribe_order_fills (#4319)
Fixes
- Correlate new and old broadcast ids [(WEB-575)] (#4221)
- Build sisyphos with production profile (#4327)
- Substract broker fee from swap (#4226)
- Reduce permissions of backend token (#4265)
- No dup chain tracking submissions for reorgs on unsafe stream (#4268)
- Disable spec version check for try-runtime (#4272)
- Set_fees (#4255)
- Add missing migration hook (#4275)
- Use current MAB for bond (#4279)
- Typos (#4283)
- Make restricted address storage optional (#4285)
- Bump openssl as per cargo audit (#4289)
- Correct amm migration (#4288)
- Don't remove awaiting broadcast before retry (#4291)
- Lp logs in localnet (#4297)
- Ignore extra btc vouts (#4296)
- Transaction already in chain reported as success (#4300)
- Allow deposits to different addresses in the same tx (#4299)
- Don't block unfinalised dot source when can't find events (#4301)
- Benchmark (#4308)
- Update release version on runtime upgrade (#4281)
- CLI redeem amount rounding error (#4303)
- Current release version bumped checks (#4311)
- Threshold sig migrations (#4312)
- Add migration for PendingRequestInstructions (#4316)
- Broker endpoint as env var (#4317)
Refactor
[1.0.3] - 2023-12-07
Fixes
- Use current MAB to set bond (#4276)
[1.0.2] - 2023-11-21
Features
- Add MAB to current auction state (#4253)
- Add SECURITY.md file (#4263)
- Get new block streams from scc after creation (#4217)
- Prewitnessing uses unfinalised sc stream (#4220)
- Improve Dot Existential Deposit Test (#4195)
- Dynamic min authority count (#4224)
- User friendly error on asset parse failure (#4229)
- CLI generate keys outputs peer id (#4241)
- Maximum Swap amount (#4238)
Fixes
- All lp api return NumberOrHex (#4247)
- Revert restricted balances (#4237)
- Add missing spans in multisig logs (#4239)
- Remove bound addresses on account deletion (#4244)
- Remove existential deposit (#4243)
- Egress id race condition (#4235)
- Remove unwrap when getting tx receipt (#4231)
- Protect against double witnessing after safe mode (#4254)
- Runtime upgrade utils and migrations (#4258)
Documentation
- Deposit channel lifecycle (#4261)
Refactor
- Replace latest_finalized_hash with latest_finalized_header (#4206)
- Use btc rpc client for mempool tracker (#4227)
- Shared source inside chunked_by adapters (#4232)
[1.0.0] - 2023-11-03
Features
- Don't include dust btc amounts on rotation (#4063)
- Set pool fees (#4050)
- Ensure correct process termination in ingress/egress tracker (#4101)
- Ingress-egress tracking for DOT (#4121)
- Btc ingress egress tracking (#4133)
- Wait for registration before starting p2p (#4160)
- Add dry run CLI and use it in register_account_role (#3992)
- Shorter protocol id (#3906)
- New lp interface (#3886)
- More forgiving dot address parsing (#3938)
- (PRO-474) broadcast safe mode (#3902)
- Backup RPC (#3951)
- Governance-pre-authorised-calls (#3964)
- Threshold signing with specific fixed key (#3979)
- Add new archive node service file (#3937)
- Qualify nodes by minimum cfe version (#4003)
- Update substrate dependency (#3994) (#4004)
- Calculate ccm gas limit (#3935)
- [(PRO-823)] bind-nodes-executor-to-address (#3987)
- Witnesser dispatch call filter (#4001)
- Subcribe_price and depth rpc (#3978)
- Speedy scc ((PRO-777) (PRO-593)) (#3986)
- Add initiated_at block number for egresses (#4046)
- Simple pre-witnessing (#4056)
- Size limit for CCM (#4015)
- Add WS subscription for prewitnessed swaps (#4065)
- Added logging server port setting (#4076)
- Add account roles and LP info to custom RPC (#4089)
- Add external expiry block to event [(WEB-496)] (#4097)
- Add websocket eth subscription to deposit tracker (#4081)
- Catch dot port missing early (#4082)
- Add expiry block to liquidity channel event (#4111)
- Use snake case for lp api method names (#4108)
- Add restricted balances to AccountInfoV2 (#4048)
- Add flip balance to account info (#4119)
- Bouncer command for submitting runtime upgrades (#4122)
- Changelog config file. (#4095)
- Account_info_v2 APY (#4112)
- Required changes for multi engine release (#4123)
- Bouncer, auto bump spec version for runtime upgrades (#4143)
- Add ingress-egress documentation (#4140)
- Auto sweep earnings and accurate free balance rpc ((PRO-856)) (#4145)
- Nested polkadot fetch (#4006)
- Verify transaction metadata (#4078)((PRO-819))
- Automate compatible CFE upgrades (#4149)
- Restricted address should override bound restrictions (#4159)
- Improve environment RPC (#4154)
- Replace NumberOrHex (#4163)
- 3-node localnet (#4086)
- Update slashing values for mainnet (#4148)
- Optimistic polkadot rotation (#4182)
- Implement dry-run (#4155)
- P2p stale connections (#4189)
Fixes
- Correct Select Median Implementation (#3934)
- Ensure existing p2p connection is removed before reconnecting (#4045)
- Limit ZMQ Buffer Size for Outgoing Messages (#4051)
- Correctly handle peer updates while waiting to reconnect (#4052)
- Correct rotation transitions on failure (#3875)
- Start ARB network and increase polkadot rpc connection limit 🐛🚀 (#3897)
- Index and hash log (#3898)
- Strictly monotonic (#3899)
- Dot decode xt (#3904)
- Is_qualified should be called for all checks (#3910)
- Broadcast success should be witnessable after a rotation (#3921)
- Log error when we try to transfer more than we have fetched (#3930)
- Independent witnessing startup (#3913)
- Only burn flip if non zero (#3932)
- Duplicate logging (#3939)
- Update substrate ref to use Kademlia fix (#3941)
- Tweak cli generate-keys output (#3943)
- CanonicalAssetPair encoding issue (#3958)
- Prefer finalize_signed_extrinsic in engine (#3956)
- Scale encoding skip phantom data (#3967)
- Set limit order to zero (#3971)
- Clear failed broadcasters after abort (#3972)
- Submit eip1559 transactions (#3973)
- Release build (#3975)
- Fund-redeem test (#3982)
- Set network fee to 10bps (#4010)
- Use stderr for cli messages (#4022)
- Update cfe version record even if Idle (#4002)
- Use saturating sub while calculating change amount (#4026)
- Deposit channel expiry (#3998)
- Polkadot nonce issue (#4054)
- Warn -> info (#4060)
- Loop_select conditions ((PRO-587)) (#4061)
- Take settings backup only if migration required (#4077)
- Use percentage for eth fee history (#4071)
- Delete auction phase check for redeem cli command (#4090)
- Stop LPs without refund addresses for both assets from creating orders in a pool ((PRO-896)) (#4099)
- Stale error handling for unsigned extrinsics ((PRO-804)) (#4100)
- Don't abort broadcast if signers are unavailable (#4104)
- Don't egress empty all_batch calls (#4102)
- DOT swap output less than existential deposit (#4062)
- Account_info rpc address conversion (#4144)
- Add .rpc for consistency in engine settings (#4158)
- Use sc client to synchronise cfe upgrade (#4157)
- Don't ignore valid deposits when another one fails (#4165)
- Sweep broke lp returned events (#4176)
- Use
ubuntu:22.04
for docker containers 🐛 (#4188) - Handle relative path to db (#4164)
- Change panic to bail on LP and Broker API's (#4190)
Documentation
- Metadata fetching (#3900)
- Update funding readme with redemption restrictions (#3914)
- Amm and pools pallet (#4005)
[0.10.0] - 2023-10-18
Features
- Backup RPC
Operators can now configure a backup rpc provider for the engine. - Qualify nodes by minimum cfe version
Operators that have not upgraded their Engines can now be excluded from Keygen ceremonies. - Calculate ccm gas limit
Cross chain messages now set the correct gas limit on egress. - Executor address binding
Accounts can now be irreversibly bound to a specific Redemption Executor. - Witnesser dispatch call filter
Enables selective witnessing during safe mode. - Subcribe_price and depth rpc
Adds AMM price and depth rpc subscriptions. - Speedy SCC
Extrinsic submissions via the apis no longer wait for finality. - Add initiated_at block number for egresses
Egress event now contains the block number at which it occurred. - Size limit for CCM
Limits the size of cross-chain messages. - Required changes for multi engine release
Adds configuration for running two Engines in parallel.
Fixes
- Ensure existing p2p connection is removed before reconnecting
- Correctly handle peer updates while waiting to reconnect
- Clear failed broadcasters after abort
- Use stderr for cli messages
- Update cfe version record even if Idle
- State Chain client drives runtime upgrade activation