onflow / cadence-tools

Developer tools for Cadence
https://www.onflow.org/
Apache License 2.0
24 stars 20 forks source link

[test] Always require signer argument when signing a transaction with the se… #266

Closed m-Peter closed 8 months ago

m-Peter commented 8 months ago

Closes #263

Description

Until now, to execute a transaction with the service account, the signers array parameter had to be empty:

let account = Test.serviceAccount()
let receiver = Test.createAccount()

let code = Test.readFile("../transactions/transfer_flow_tokens.cdc")
let tx = Test.Transaction(
    code: code,
    authorizers: [account.address],
    signers: [],
    arguments: [receiver.address, 1500.0]
)

let txResult = Test.executeTransaction(tx)

However, this special case adds some unnecessary complexity to developers, hence we always require the signers array parameter to contain the service account:

let account = Test.serviceAccount()
let receiver = Test.createAccount()

let code = Test.readFile("../transactions/transfer_flow_tokens.cdc")
let tx = Test.Transaction(
    code: code,
    authorizers: [account.address],
    signers: [account],
    arguments: [receiver.address, 1500.0]
)

let txResult = Test.executeTransaction(tx)