From 57c0357a5b1ca4a58a903441e1420e47baa48f0a Mon Sep 17 00:00:00 2001 From: Vladimir Shchukin Date: Fri, 3 Apr 2026 11:26:14 -0400 Subject: [PATCH 1/2] skip init state if state address present in datastore --- .../solana/sequence/seq_forwarder.go | 23 ++++++++++++++----- .../solana/sequence/seq_forwarder.go | 23 ++++++++++++++----- 2 files changed, 34 insertions(+), 12 deletions(-) diff --git a/deployment/cre/forwarder/solana/sequence/seq_forwarder.go b/deployment/cre/forwarder/solana/sequence/seq_forwarder.go index 3ad5fb49b31..754695b7839 100644 --- a/deployment/cre/forwarder/solana/sequence/seq_forwarder.go +++ b/deployment/cre/forwarder/solana/sequence/seq_forwarder.go @@ -70,15 +70,26 @@ func deployForwarder(b operations.Bundle, deps operation.Deps, in DeployForwarde out.ProgramID = forwarderID // 2. Initialize - initOut, err := operations.ExecuteOperation(b, operation.InitForwarderOp, deps, operation.InitForwarderInput{ - ProgramID: out.ProgramID, - ChainSel: in.ChainSel, - }) + stateRef, err := deps.Datastore.Addresses().Get(datastore.NewAddressRefKey( + in.ChainSel, + datastore.ContractType(string(in.ContractType)+"State"), + in.Version, + in.Qualifier, + )) if err != nil { - return DeployForwarderSeqOutput{}, fmt.Errorf("initialize forwarder op failed: %w", err) + initOut, err2 := operations.ExecuteOperation(b, operation.InitForwarderOp, deps, operation.InitForwarderInput{ + ProgramID: out.ProgramID, + ChainSel: in.ChainSel, + }) + if err2 != nil { + return DeployForwarderSeqOutput{}, fmt.Errorf("initialize forwarder op failed: %w", err2) + } + out.State = initOut.Output.StatePubKey + } else { + deps.Env.Logger.Info("Forwarder state is already present in datastore for given version and qualifier. Proceed sequence without initializing") + out.State = solana.MustPublicKeyFromBase58(stateRef.Address) } - out.State = initOut.Output.StatePubKey return out, nil } diff --git a/deployment/keystone/changeset/solana/sequence/seq_forwarder.go b/deployment/keystone/changeset/solana/sequence/seq_forwarder.go index 86d2331655f..076f0f81687 100644 --- a/deployment/keystone/changeset/solana/sequence/seq_forwarder.go +++ b/deployment/keystone/changeset/solana/sequence/seq_forwarder.go @@ -70,15 +70,26 @@ func deployForwarder(b operations.Bundle, deps operation.Deps, in DeployForwarde out.ProgramID = forwarderID // 2. Initialize - initOut, err := operations.ExecuteOperation(b, operation.InitForwarderOp, deps, operation.InitForwarderInput{ - ProgramID: out.ProgramID, - ChainSel: in.ChainSel, - }) + stateRef, err := deps.Datastore.Addresses().Get(datastore.NewAddressRefKey( + in.ChainSel, + datastore.ContractType(string(in.ContractType)+"State"), + in.Version, + in.Qualifier, + )) if err != nil { - return DeployForwarderSeqOutput{}, fmt.Errorf("initialize forwarder op failed: %w", err) + initOut, err2 := operations.ExecuteOperation(b, operation.InitForwarderOp, deps, operation.InitForwarderInput{ + ProgramID: out.ProgramID, + ChainSel: in.ChainSel, + }) + if err2 != nil { + return DeployForwarderSeqOutput{}, fmt.Errorf("initialize forwarder op failed: %w", err2) + } + out.State = initOut.Output.StatePubKey + } else { + deps.Env.Logger.Info("Forwarder state is already present in datastore for given version and qualifier. Proceed sequence without initializing") + out.State = solana.MustPublicKeyFromBase58(stateRef.Address) } - out.State = initOut.Output.StatePubKey return out, nil } From bf6d0952b0a994bccb530cf45f7644b4eeef793c Mon Sep 17 00:00:00 2001 From: Vladimir Shchukin Date: Fri, 3 Apr 2026 11:36:47 -0400 Subject: [PATCH 2/2] revert keystone dir changes --- .../solana/sequence/seq_forwarder.go | 23 +++++-------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/deployment/keystone/changeset/solana/sequence/seq_forwarder.go b/deployment/keystone/changeset/solana/sequence/seq_forwarder.go index 076f0f81687..86d2331655f 100644 --- a/deployment/keystone/changeset/solana/sequence/seq_forwarder.go +++ b/deployment/keystone/changeset/solana/sequence/seq_forwarder.go @@ -70,26 +70,15 @@ func deployForwarder(b operations.Bundle, deps operation.Deps, in DeployForwarde out.ProgramID = forwarderID // 2. Initialize - stateRef, err := deps.Datastore.Addresses().Get(datastore.NewAddressRefKey( - in.ChainSel, - datastore.ContractType(string(in.ContractType)+"State"), - in.Version, - in.Qualifier, - )) + initOut, err := operations.ExecuteOperation(b, operation.InitForwarderOp, deps, operation.InitForwarderInput{ + ProgramID: out.ProgramID, + ChainSel: in.ChainSel, + }) if err != nil { - initOut, err2 := operations.ExecuteOperation(b, operation.InitForwarderOp, deps, operation.InitForwarderInput{ - ProgramID: out.ProgramID, - ChainSel: in.ChainSel, - }) - if err2 != nil { - return DeployForwarderSeqOutput{}, fmt.Errorf("initialize forwarder op failed: %w", err2) - } - out.State = initOut.Output.StatePubKey - } else { - deps.Env.Logger.Info("Forwarder state is already present in datastore for given version and qualifier. Proceed sequence without initializing") - out.State = solana.MustPublicKeyFromBase58(stateRef.Address) + return DeployForwarderSeqOutput{}, fmt.Errorf("initialize forwarder op failed: %w", err) } + out.State = initOut.Output.StatePubKey return out, nil }