Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion node/pkg/watchers/solana/testdata/static_bundles.json

Large diffs are not rendered by default.

36 changes: 17 additions & 19 deletions node/pkg/watchers/solana/testgen/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,13 @@ type WormholeFields struct {

// AccountContent describes the generated message account data.
type AccountContent struct {
Prefix string // overrides "msg"/"msu"; empty => derived from Kind
Owner *solana.PublicKey // overrides owner; nil => core contract
VaaVersion uint8
RawConsistency *uint8 // overrides the account consistency byte; nil => derived from Commitment
EmitterAuthority [32]byte
MessageStatus uint8
Gap [3]byte
SubmissionTime *uint32 // overrides; nil => WormholeFields.Timestamp
Prefix string // overrides "msg"/"msu"; empty => derived from Kind
Owner *solana.PublicKey // overrides owner; nil => core contract
VaaVersion uint8
RawConsistency *uint8 // overrides the account consistency byte; nil => derived from Commitment
VaaTime uint32
VaaSignatureAccount solana.PublicKey
SubmissionTime *uint32 // overrides; nil => WormholeFields.Timestamp
}

// PostMessageSpec describes an account-based post_message. The message account is
Expand Down Expand Up @@ -380,17 +379,16 @@ func (b *Builder) accountBlob(kind MessageKind, m WormholeFields, ac AccountCont
st = *ac.SubmissionTime
}
body, err := borsh.Serialize(solwatch.MessagePublicationAccount{
VaaVersion: ac.VaaVersion,
ConsistencyLevel: cons,
EmitterAuthority: toAddr(ac.EmitterAuthority),
MessageStatus: ac.MessageStatus,
Gap: ac.Gap,
SubmissionTime: st,
Nonce: m.Nonce,
Sequence: m.Sequence,
EmitterChain: m.EmitterChain,
EmitterAddress: toAddr(m.EmitterAddress),
Payload: m.Payload,
VaaVersion: ac.VaaVersion,
ConsistencyLevel: cons,
VaaTime: ac.VaaTime,
VaaSignatureAccount: ac.VaaSignatureAccount,
SubmissionTime: st,
Nonce: m.Nonce,
Sequence: m.Sequence,
EmitterChain: m.EmitterChain,
EmitterAddress: toAddr(m.EmitterAddress),
Payload: m.Payload,
})
b.fail(err)
return append([]byte(prefix), body...)
Expand Down
15 changes: 11 additions & 4 deletions node/pkg/watchers/solana/testgen/cmd/static.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,17 @@ func scenarios() []scenario {
return testgen.NewBuilder(baseCfg("pm_reliable_inner")).
AddPostMessage(testgen.PostMessageSpec{Location: testgen.Inner, Kind: testgen.PostMessage, Msg: fields(3, 3, "cpi-message")}).Build()
}},
{"pm_incomplete_logs", func() (*testgen.Bundle, error) {
bundle, err := testgen.NewBuilder(baseCfg("pm_incomplete_logs")).
AddPostMessage(testgen.PostMessageSpec{Location: testgen.Outer, Kind: testgen.PostMessage, Msg: fields(12, 12, "incomplete-logs")}).Build()
if err != nil {
return nil, err
}
bundle.Meta.LogMessages = []string{
fmt.Sprintf("Program %s invoke [1]", core),
}
return bundle, nil
}},

// --- Shim, direct vs integrator ---
{"shim_direct", func() (*testgen.Bundle, error) {
Expand Down Expand Up @@ -104,10 +115,6 @@ func scenarios() []scenario {
return testgen.NewBuilder(baseCfg("pm_reliable_wrong_owner")).
AddPostMessage(testgen.PostMessageSpec{Location: testgen.Outer, Kind: testgen.PostMessage, Msg: fields(9, 9, "hi"), Account: testgen.AccountContent{Owner: &badOwner}}).Build()
}},
{"pm_reliable_not_finalized", func() (*testgen.Bundle, error) {
return testgen.NewBuilder(baseCfg("pm_reliable_not_finalized")).
AddPostMessage(testgen.PostMessageSpec{Location: testgen.Outer, Kind: testgen.PostMessage, Msg: fields(10, 10, "hi"), Account: testgen.AccountContent{MessageStatus: 1}}).Build()
}},
{"pm_reliable_bad_prefix", func() (*testgen.Bundle, error) {
return testgen.NewBuilder(baseCfg("pm_reliable_bad_prefix")).
AddPostMessage(testgen.PostMessageSpec{Location: testgen.Outer, Kind: testgen.PostMessage, Msg: fields(11, 11, "hi"), Account: testgen.AccountContent{Prefix: "bad"}}).Build()
Expand Down