Skip to content

Commit 702ea2e

Browse files
smartcontract: add changelog for multicast group code-based PDA
Resolves: #3115
1 parent e7c61ac commit 702ea2e

File tree

2 files changed

+14
-17
lines changed

2 files changed

+14
-17
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ All notable changes to this project will be documented in this file.
1515
- Smartcontract
1616
- Serviceability: add `Reservation` account and `ReserveConnection`/`CloseReservation` instructions for pre-reserving connection seats on devices, with `reserved_seats` factored into capacity checks on both reservation and user creation
1717
- Allow sentinel authority to add/remove multicast publisher and subscriber allowlist entries
18+
- Multicast group PDA derivation now uses `code` instead of `account_index`, preventing duplicate codes at the PDA level; code-based lookups fall back to `getProgramAccounts` scan for legacy index-based accounts
1819
- Telemetry
1920
- Fix global monitor crash when IBRL and multicast users share the same client IP but are on different devices, by preferring non-multicast users in client IP lookups to match status device selection
2021
- E2E tests

e2e/compatibility_test.go

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -57,25 +57,21 @@ type knownIncompat struct {
5757
}
5858

5959
var knownIncompatibilities = map[string]knownIncompat{
60-
// multicast_group_create: The MulticastGroupCreateArgs Borsh struct changed in v0.8.1.
61-
// The index and bump_seed fields were removed. Older CLIs send the old format which
62-
// causes Borsh deserialization failure in the current program.
63-
"write/multicast_group_create": {minVersion: "0.8.1"},
60+
// multicast_group_create: v0.9.0 changed PDA derivation from account_index to code.
61+
// Older CLIs compute the wrong PDA, causing an assertion failure in the onchain program.
62+
"write/multicast_group_create": {minVersion: "0.9.0"},
6463

6564
// All multicast operations that depend on multicast_group_create. When the group
66-
// can't be created (< 0.8.1), these all fail with "MulticastGroup not found".
67-
"write/multicast_group_wait_activated": {minVersion: "0.8.1"},
68-
// multicast_group_update: In addition to the dependency above, v0.8.1-v0.8.8 parsed
69-
// --max-bandwidth as a plain integer. v0.8.9 added validate_parse_bandwidth (a855ca7a)
70-
// which accepts unit strings like "200Mbps".
71-
"write/multicast_group_update": {minVersion: "0.8.9"},
72-
"write/multicast_group_pub_allowlist_add": {minVersion: "0.8.1"},
73-
"write/multicast_group_pub_allowlist_remove": {minVersion: "0.8.1"},
74-
"write/multicast_group_sub_allowlist_add": {minVersion: "0.8.1"},
75-
"write/user_subscribe": {minVersion: "0.8.1"},
76-
"write/multicast_group_sub_allowlist_remove": {minVersion: "0.8.1"},
77-
"write/multicast_group_get": {minVersion: "0.8.1"},
78-
"write/multicast_group_delete": {minVersion: "0.8.1"},
65+
// can't be created (< 0.9.0), these all fail with "MulticastGroup not found".
66+
"write/multicast_group_wait_activated": {minVersion: "0.9.0"},
67+
"write/multicast_group_update": {minVersion: "0.9.0"},
68+
"write/multicast_group_pub_allowlist_add": {minVersion: "0.9.0"},
69+
"write/multicast_group_pub_allowlist_remove": {minVersion: "0.9.0"},
70+
"write/multicast_group_sub_allowlist_add": {minVersion: "0.9.0"},
71+
"write/user_subscribe": {minVersion: "0.9.0"},
72+
"write/multicast_group_sub_allowlist_remove": {minVersion: "0.9.0"},
73+
"write/multicast_group_get": {minVersion: "0.9.0"},
74+
"write/multicast_group_delete": {minVersion: "0.9.0"},
7975

8076
// set-health commands: The CLI subcommand was added in commit eb7ea308 (Jan 16).
8177
// mainnet-beta v0.8.2 was built Jan 13 (before set-health) → doesn't have it.

0 commit comments

Comments
 (0)