Skip to content
Merged
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
31 changes: 21 additions & 10 deletions internal/super/flix.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,8 @@ type flixFlags struct {
Authorizers []string `default:"" flag:"authorizer" info:"Name of a single or multiple comma-separated accounts used as authorizers from configuration"`
Include []string `default:"" flag:"include" info:"Fields to include in the output"`
Exclude []string `default:"" flag:"exclude" info:"Fields to exclude from the output (events)"`
GasLimit uint64 `default:"1000" flag:"gas-limit" info:"transaction gas limit"`
ComputeLimit uint64 `default:"1000" flag:"compute-limit" info:"transaction compute limit"`
GasLimit uint64 `default:"" flag:"gas-limit" info:"(deprecated: use compute-limit) transaction gas limit"`
PreFill string `default:"" flag:"pre-fill" info:"template path to pre fill the FLIX"`
Lang string `default:"js" flag:"lang" info:"language to generate the template for"`
ExcludeNetworks []string `default:"" flag:"exclude-networks" info:"Specify which networks to exclude when generating a FLIX template"`
Expand Down Expand Up @@ -149,18 +150,28 @@ func executeFlixCmd(
return scripts.SendScript([]byte(cadenceWithImportsReplaced.Cadence), args[1:], "", flow, scriptsFlags)
}

// Use GasLimit if set (for backwards compatibility), otherwise use ComputeLimit
computeLimit := flags.ComputeLimit
gasLimit := uint64(0)
if flags.GasLimit > 0 {
logger.Info("⚠️ Warning: --gas-limit flag is deprecated, please use --compute-limit instead")
computeLimit = flags.GasLimit
gasLimit = flags.GasLimit
}

transactionFlags := transactions.Flags{
ArgsJSON: flags.ArgsJSON,
Signer: flags.Signer,
Proposer: flags.Proposer,
Payer: flags.Payer,
Authorizers: flags.Authorizers,
Include: flags.Include,
Exclude: flags.Exclude,
GasLimit: flags.GasLimit,
ArgsJSON: flags.ArgsJSON,
Signer: flags.Signer,
Proposer: flags.Proposer,
Payer: flags.Payer,
Authorizers: flags.Authorizers,
Include: flags.Include,
Exclude: flags.Exclude,
ComputeLimit: computeLimit,
GasLimit: gasLimit,
}
// some reason sendTransaction clips the first argument
return transactions.SendTransaction([]byte(cadenceWithImportsReplaced.Cadence), args, "", flow, state, transactionFlags)
return transactions.SendTransaction([]byte(cadenceWithImportsReplaced.Cadence), args, "", flow, state, transactionFlags, logger)
}

func packageCmd(
Expand Down
14 changes: 11 additions & 3 deletions internal/transactions/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ type flagsBuild struct {
ProposerKeyIndex uint32 `default:"0" flag:"proposer-key-index" info:"proposer key index"`
Payer string `default:"emulator-account" flag:"payer" info:"transaction payer"`
Authorizer []string `default:"emulator-account" flag:"authorizer" info:"transaction authorizer"`
GasLimit uint64 `default:"1000" flag:"gas-limit" info:"transaction gas limit"`
ComputeLimit uint64 `default:"1000" flag:"compute-limit" info:"transaction compute limit"`
GasLimit uint64 `default:"" flag:"gas-limit" info:"(deprecated: use compute-limit) transaction gas limit"`
}

var buildFlags = flagsBuild{}
Expand All @@ -61,7 +62,7 @@ var buildCommand = &command.Command{
func build(
args []string,
globalFlags command.GlobalFlags,
_ output.Logger,
logger output.Logger,
flow flowkit.Services,
state *flowkit.State,
) (command.Result, error) {
Expand Down Expand Up @@ -101,6 +102,13 @@ func build(
return nil, fmt.Errorf("error parsing transaction arguments: %w", err)
}

// Use GasLimit if set (for backwards compatibility), otherwise use ComputeLimit
computeLimit := buildFlags.ComputeLimit
if buildFlags.GasLimit > 0 {
logger.Info("⚠️ Warning: --gas-limit flag is deprecated, please use --compute-limit instead")
computeLimit = buildFlags.GasLimit
}

tx, err := flow.BuildTransaction(
context.Background(),
transactions.AddressesRoles{
Expand All @@ -114,7 +122,7 @@ func build(
Args: transactionArgs,
Location: filename,
},
buildFlags.GasLimit,
computeLimit,
)
if err != nil {
return nil, err
Expand Down
32 changes: 20 additions & 12 deletions internal/transactions/send.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,15 @@ import (
)

type Flags struct {
ArgsJSON string `default:"" flag:"args-json" info:"arguments in JSON-Cadence format"`
Signer string `default:"" flag:"signer" info:"Account name from configuration used to sign the transaction as proposer, payer and suthorizer"`
Proposer string `default:"" flag:"proposer" info:"Account name from configuration used as proposer"`
Payer string `default:"" flag:"payer" info:"Account name from configuration used as payer"`
Authorizers []string `default:"" flag:"authorizer" info:"Name of a single or multiple comma-separated accounts used as authorizers from configuration"`
Include []string `default:"" flag:"include" info:"Fields to include in the output"`
Exclude []string `default:"" flag:"exclude" info:"Fields to exclude from the output (events)"`
GasLimit uint64 `default:"1000" flag:"gas-limit" info:"transaction gas limit"`
ArgsJSON string `default:"" flag:"args-json" info:"arguments in JSON-Cadence format"`
Signer string `default:"" flag:"signer" info:"Account name from configuration used to sign the transaction as proposer, payer and suthorizer"`
Proposer string `default:"" flag:"proposer" info:"Account name from configuration used as proposer"`
Payer string `default:"" flag:"payer" info:"Account name from configuration used as payer"`
Authorizers []string `default:"" flag:"authorizer" info:"Name of a single or multiple comma-separated accounts used as authorizers from configuration"`
Include []string `default:"" flag:"include" info:"Fields to include in the output"`
Exclude []string `default:"" flag:"exclude" info:"Fields to exclude from the output (events)"`
ComputeLimit uint64 `default:"1000" flag:"compute-limit" info:"transaction compute limit"`
GasLimit uint64 `default:"" flag:"gas-limit" info:"(deprecated: use compute-limit) transaction gas limit"`
}

var flags = Flags{}
Expand All @@ -61,7 +62,7 @@ var sendCommand = &command.Command{
func send(
args []string,
_ command.GlobalFlags,
_ output.Logger,
logger output.Logger,
flow flowkit.Services,
state *flowkit.State,
) (result command.Result, err error) {
Expand All @@ -72,10 +73,10 @@ func send(
return nil, fmt.Errorf("error loading transaction file: %w", err)
}

return SendTransaction(code, args, filename, flow, state, flags)
return SendTransaction(code, args, filename, flow, state, flags, logger)
}

func SendTransaction(code []byte, args []string, location string, flow flowkit.Services, state *flowkit.State, sendFlags Flags) (result command.Result, err error) {
func SendTransaction(code []byte, args []string, location string, flow flowkit.Services, state *flowkit.State, sendFlags Flags, logger output.Logger) (result command.Result, err error) {
proposerName := sendFlags.Proposer
var proposer *accounts.Account
if proposerName != "" {
Expand Down Expand Up @@ -138,6 +139,13 @@ func SendTransaction(code []byte, args []string, location string, flow flowkit.S
return nil, fmt.Errorf("error parsing transaction arguments: %w", err)
}

// Use GasLimit if set (for backwards compatibility), otherwise use ComputeLimit
computeLimit := sendFlags.ComputeLimit
if sendFlags.GasLimit > 0 {
logger.Info("⚠️ Warning: --gas-limit flag is deprecated, please use --compute-limit instead")
computeLimit = sendFlags.GasLimit
}

tx, txResult, err := flow.SendTransaction(
context.Background(),
transactions.AccountRoles{
Expand All @@ -146,7 +154,7 @@ func SendTransaction(code []byte, args []string, location string, flow flowkit.S
Payer: *payer,
},
flowkit.Script{Code: code, Args: transactionArgs, Location: location},
sendFlags.GasLimit,
computeLimit,
)
if err != nil {
return nil, err
Expand Down
6 changes: 3 additions & 3 deletions internal/transactions/transactions_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -180,8 +180,8 @@ func Test_Send(t *testing.T) {
srv, state, _ := util.TestMocks(t)

t.Run("Success", func(t *testing.T) {
const gas = uint64(1000)
flags.GasLimit = gas
const compute = uint64(1000)
flags.ComputeLimit = compute
inArgs := []string{tests.TransactionArgString.Filename, "test"}

srv.SendTransaction.Run(func(args mock.Arguments) {
Expand All @@ -192,7 +192,7 @@ func Test_Send(t *testing.T) {
assert.Equal(t, acc, roles.Authorizers[0].Name)
script := args.Get(2).(flowkit.Script)
assert.Equal(t, tests.TransactionArgString.Filename, script.Location)
assert.Equal(t, args.Get(3).(uint64), gas)
assert.Equal(t, args.Get(3).(uint64), compute)
}).Return(nil, nil, nil)

result, err := send(inArgs, command.GlobalFlags{}, util.NoLogger, srv.Mock, state)
Expand Down
Loading