Skip to content

Commit 3a01b1c

Browse files
authored
Merge pull request #453 from pavel-main/patch-1
Show more user-friendly error message if proposer key is missing
2 parents 3504d42 + 9ae4c7e commit 3a01b1c

4 files changed

Lines changed: 20 additions & 7 deletions

File tree

pkg/flowkit/services/accounts.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -426,8 +426,11 @@ func (a *Accounts) prepareTransaction(
426426
return nil, err
427427
}
428428

429-
tx.SetBlockReference(block).
430-
SetProposer(proposer, account.Key().Index())
429+
tx.SetBlockReference(block)
430+
431+
if err = tx.SetProposer(proposer, account.Key().Index()); err != nil {
432+
return nil, err
433+
}
431434

432435
tx, err = tx.Sign()
433436
if err != nil {

pkg/flowkit/services/project.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,11 @@ func (p *Project) Deploy(network string, update bool) ([]*contracts.Contract, er
205205
}
206206
}
207207

208-
tx.SetBlockReference(block).
209-
SetProposer(targetAccountInfo, targetAccount.Key().Index())
208+
tx.SetBlockReference(block)
209+
210+
if err = tx.SetProposer(targetAccountInfo, targetAccount.Key().Index()); err != nil {
211+
return nil, err
212+
}
210213

211214
tx, err = tx.Sign()
212215
if err != nil {

pkg/flowkit/services/transactions.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,13 @@ func (t *Transactions) Build(
102102

103103
tx := flowkit.NewTransaction().
104104
SetPayer(payer).
105-
SetProposer(proposerAccount, proposerKeyIndex).
106105
SetGasLimit(gasLimit).
107106
SetBlockReference(latestBlock)
108107

108+
if err := tx.SetProposer(proposerAccount, proposerKeyIndex); err != nil {
109+
return nil, err
110+
}
111+
109112
resolver, err := contracts.NewResolver(code)
110113
if err != nil {
111114
return nil, err

pkg/flowkit/transaction.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,11 @@ func (t *Transaction) authorizersContains(address flow.Address) bool {
232232
}
233233

234234
// SetProposer sets the proposer for transaction.
235-
func (t *Transaction) SetProposer(proposer *flow.Account, keyIndex int) *Transaction {
235+
func (t *Transaction) SetProposer(proposer *flow.Account, keyIndex int) error {
236+
if len(proposer.Keys) <= keyIndex {
237+
return fmt.Errorf("failed to retrieve proposer key at index %d", keyIndex)
238+
}
239+
236240
t.proposer = proposer
237241
proposerKey := proposer.Keys[keyIndex]
238242

@@ -242,7 +246,7 @@ func (t *Transaction) SetProposer(proposer *flow.Account, keyIndex int) *Transac
242246
proposerKey.SequenceNumber,
243247
)
244248

245-
return t
249+
return nil
246250
}
247251

248252
// SetPayer sets the payer for transaction.

0 commit comments

Comments
 (0)