Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/wicked-zoos-live.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"chainlink": minor
---

Bump Solana Token Pool Contracts
2 changes: 1 addition & 1 deletion core/scripts/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -450,7 +450,7 @@ require (
github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect
github.com/smartcontractkit/ccip-owner-contracts v0.1.0 // indirect
github.com/smartcontractkit/chainlink-aptos v0.0.0-20250626122206-319db248496a // indirect
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250609091505-5c8cd74b92ed // indirect
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250704143810-ee587a6c0562 // indirect
github.com/smartcontractkit/chainlink-common/pkg/workflows/sdk/v2/pb v0.0.0-20250707133321-27faefc9ce45 // indirect
github.com/smartcontractkit/chainlink-feeds v0.1.2-0.20250227211209-7cd000095135 // indirect
github.com/smartcontractkit/chainlink-framework/capabilities v0.0.0-20250702183345-3f9ae622e391 // indirect
Expand Down
4 changes: 2 additions & 2 deletions core/scripts/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1509,8 +1509,8 @@ github.com/smartcontractkit/chainlink-automation v0.8.1 h1:sTc9LKpBvcKPc1JDYAmgB
github.com/smartcontractkit/chainlink-automation v0.8.1/go.mod h1:Iij36PvWZ6blrdC5A/nrQUBuf3MH3JvsBB9sSyc9W08=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250707220619-84bd6c292469 h1:W3GY5pqeFUerM01DgbXdj8pqufd22H4xysP/KMIBmvc=
github.com/smartcontractkit/chainlink-ccip v0.0.0-20250707220619-84bd6c292469/go.mod h1:zPpo78Fv3zQE3WVZFEqRiRNER9QHaCzl+HNeTSaS0kE=
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250609091505-5c8cd74b92ed h1:rjtXQLTCLa/+AmMwMTP5WwJUdPBeBAF3Ivwc1GXetBw=
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250609091505-5c8cd74b92ed/go.mod h1:k3/Z6AvwurPUlfuDFEonRbkkiTSgNSrtVNhJEWNlUZA=
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250704143810-ee587a6c0562 h1:13wKm1WS8NDf6FUDWu6h3dIy3zlobN/6VqPl3K1iKwg=
github.com/smartcontractkit/chainlink-ccip/chains/solana v0.0.0-20250704143810-ee587a6c0562/go.mod h1:k3/Z6AvwurPUlfuDFEonRbkkiTSgNSrtVNhJEWNlUZA=
github.com/smartcontractkit/chainlink-common v0.7.1-0.20250708173959-fbb435dd18c8 h1:z8Ecvu4rJHn7e1Zl4oXEciZWr/ZgUwMyGHzLnJex3Qw=
github.com/smartcontractkit/chainlink-common v0.7.1-0.20250708173959-fbb435dd18c8/go.mod h1:SrzacsyKxhRg/U0fNJc1aMwiZJLq064dZ4Pk5dWCNrg=
github.com/smartcontractkit/chainlink-common/pkg/monitoring v0.0.0-20250415235644-8703639403c7 h1:9wh1G+WbXwPVqf0cfSRSgwIcaXTQgvYezylEAfwmrbw=
Expand Down
4 changes: 2 additions & 2 deletions deployment/ccip/changeset/solana/cs_deploy_chain_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ import (

// For remote fetching, we need to use the short sha
const (
OldSha = "0ee732e80586c2e9df5e9b0c3b5e9a19ee66b3a1"
NewSha = "cb02e90f9d6d1dd65f534c60a77bb1e3384a42cb"
OldSha = "cb02e90f9d6d1dd65f534c60a77bb1e3384a42cb"
NewSha = "ee587a6c056204009310019b790ed6d474825316"
)

func verifyProgramSizes(t *testing.T, e cldf.Environment) {
Expand Down
33 changes: 32 additions & 1 deletion deployment/ccip/changeset/solana/cs_e2e.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
var _ cldf.ChangeSet[E2ETokenPoolConfig] = E2ETokenPool

type E2ETokenPoolConfig struct {
InitializeGlobalTokenPoolConfig []TokenPoolConfigWithMCM
AddTokenPoolAndLookupTable []AddTokenPoolAndLookupTableConfig
RegisterTokenAdminRegistry []RegisterTokenAdminRegistryConfig
AcceptAdminRoleTokenAdminRegistry []AcceptAdminRoleTokenAdminRegistryConfig
Expand Down Expand Up @@ -53,7 +54,11 @@ func E2ETokenPool(e cldf.Environment, cfg E2ETokenPoolConfig) (cldf.ChangesetOut
cfg.MCMS = cfg.SetPool[0].MCMS
}
}
err := ProcessConfig(&e, cfg.AddTokenPoolAndLookupTable, AddTokenPoolAndLookupTable, &finalOutput, addressBookToRemove)
err := ProcessConfig(&e, cfg.InitializeGlobalTokenPoolConfig, InitGlobalConfigTokenPoolProgram, &finalOutput, addressBookToRemove)
if err != nil {
return cldf.ChangesetOutput{}, fmt.Errorf("failed to initialize global config for token pool: %w", err)
}
err = ProcessConfig(&e, cfg.AddTokenPoolAndLookupTable, AddTokenPoolAndLookupTable, &finalOutput, addressBookToRemove)
if err != nil {
return cldf.ChangesetOutput{}, fmt.Errorf("failed to add token pool and lookup table: %w", err)
}
Expand Down Expand Up @@ -248,6 +253,7 @@ func E2ETokenPoolv2(env cldf.Environment, cfg E2ETokenPoolConfigv2) (cldf.Change
}
poolsByType := transferPoolToTimelockConfig.ContractsByChain[cfg.ChainSelector]

var uniquePoolTypeConfigs []E2ETokenConfig
for _, tokenCfg := range cfg.E2ETokens {
if err := tokenCfg.Validate(); err != nil {
return cldf.ChangesetOutput{}, fmt.Errorf("failed to validate token config: %w, token cfg: %+v", err, tokenCfg)
Expand Down Expand Up @@ -305,6 +311,31 @@ func E2ETokenPoolv2(env cldf.Environment, cfg E2ETokenPoolConfigv2) (cldf.Change
)
}
}
isUniquePoolType := true
for _, uniqueCfg := range uniquePoolTypeConfigs {
if *uniqueCfg.PoolType == *tokenCfg.PoolType {
isUniquePoolType = false
}
}
if isUniquePoolType {
uniquePoolTypeConfigs = append(uniquePoolTypeConfigs, tokenCfg)
}
}
// Initialize global configs once for each unique token pool
for _, tokenCfg := range uniquePoolTypeConfigs {
output, err := InitGlobalConfigTokenPoolProgram(e, TokenPoolConfigWithMCM{
ChainSelector: cfg.ChainSelector,
PoolType: tokenCfg.PoolType,
TokenPubKey: tokenCfg.TokenPubKey,
Metadata: tokenCfg.Metadata,
MCMS: cfg.MCMS,
})
if err != nil {
return cldf.ChangesetOutput{}, fmt.Errorf("failed to initialize global config for token pool: %w", err)
}
if err = cldf.MergeChangesetOutput(e, finalCSOut, output); err != nil {
return cldf.ChangesetOutput{}, fmt.Errorf("failed to merge changeset output after running InitGlobalConfigTokenPoolProgram: %w", err)
}
}
output, err := AddTokenPoolAndLookupTable(e, tokenPoolAndLookupTableCfg)
if err != nil {
Expand Down
Loading
Loading