Selaa lähdekoodia

Simulate: Don't attempt to sign transaction (#2331)

Christian Kamm 2 vuotta sitten
vanhempi
sitoutus
e3fe24f925
2 muutettua tiedostoa jossa 9 lisäystä ja 3 poistoa
  1. 2 1
      CHANGELOG.md
  2. 7 2
      ts/packages/anchor/src/provider.ts

+ 2 - 1
CHANGELOG.md

@@ -19,7 +19,8 @@ The minor version will be incremented upon a breaking change and the patch versi
 
 ### Fixes
 
-- cli: Don't regenerate idl in read_all_programs(). ([#2332](https://github.com/coral-xyz/anchor/pull/2332))
+- cli: Don't regenerate idl in read_all_programs(). ([#2332](https://github.com/coral-xyz/anchor/pull/2332)).
+- ts: `provider.simulate` will send the transaction with `sigVerify: false` if no `signers` are present ([#2331](https://github.com/coral-xyz/anchor/pull/2331)).
 
 ### Breaking
 

+ 7 - 2
ts/packages/anchor/src/provider.ts

@@ -246,7 +246,10 @@ export class AnchorProvider implements Provider {
    * Simulates the given transaction, returning emitted logs from execution.
    *
    * @param tx      The transaction to send.
-   * @param signers The signers of the transaction.
+   * @param signers The signers of the transaction. If unset, the transaction
+   *                will be simulated with the "sigVerify: false" option. This
+   *                allows for simulation of transactions without asking the
+   *                wallet for a signature.
    * @param opts    Transaction confirmation options.
    */
   async simulate(
@@ -263,7 +266,9 @@ export class AnchorProvider implements Provider {
       )
     ).blockhash;
 
-    tx = await this.wallet.signTransaction(tx);
+    if (signers) {
+      tx = await this.wallet.signTransaction(tx);
+    }
     const result = await simulateTransaction(
       this.connection,
       tx,