Skip to content

Commit

Permalink
Merge pull request #571 from multiversx/TOOL-451-use-account-sign-tra…
Browse files Browse the repository at this point in the history
…nsaction-in-tests

Update tests to use account.signTransaction
  • Loading branch information
danielailie authored Feb 3, 2025
2 parents 5c60b1e + f69cd4b commit aa0dce0
Show file tree
Hide file tree
Showing 17 changed files with 356 additions and 529 deletions.
126 changes: 44 additions & 82 deletions src/abi/interaction.local.net.spec.ts

Large diffs are not rendered by default.

50 changes: 15 additions & 35 deletions src/abi/interaction.spec.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,13 @@
import BigNumber from "bignumber.js";
import { assert } from "chai";
import { Account } from "../accounts";
import { Address } from "../core/address";
import { SmartContractQueryResponse } from "../core/smartContractQuery";
import { Token, TokenTransfer } from "../core/tokens";
import { Transaction } from "../core/transaction";
import { TransactionComputer } from "../core/transactionComputer";
import { SmartContractController } from "../smartContracts";
import {
loadAbiRegistry,
loadTestWallets,
MockNetworkProvider,
setupUnitTestWatcherTimeouts,
TestWallet,
} from "../testutils";
import { loadAbiRegistry, MockNetworkProvider, setupUnitTestWatcherTimeouts } from "../testutils";
import { getTestWalletsPath } from "../testutils/utils";
import { ContractFunction } from "./function";
import { Interaction } from "./interaction";
import { SmartContract } from "./smartContract";
Expand All @@ -21,11 +16,10 @@ import { BigUIntValue, BytesValue, OptionalValue, OptionValue, TokenIdentifierVa
describe("test smart contract interactor", function () {
let dummyAddress = new Address("erd1qqqqqqqqqqqqqpgqak8zt22wl2ph4tswtyc39namqx6ysa2sd8ss4xmlj3");
let provider = new MockNetworkProvider();
let alice: TestWallet;
const transactionComputer = new TransactionComputer();
let alice: Account;

before(async function () {
({ alice } = await loadTestWallets());
alice = await Account.newFromPem(`${getTestWalletsPath()}/alice.pem`);
});

it("should set transaction fields", async function () {
Expand Down Expand Up @@ -249,23 +243,23 @@ describe("test smart contract interactor", function () {
// Execute, do not wait for execution
let transaction = interaction.withSender(alice.address).withNonce(0n).buildTransaction();
transaction.sender = alice.address;
transaction.signature = await alice.signer.sign(transactionComputer.computeBytesForSigning(transaction));
transaction.signature = await alice.signTransaction(transaction);
let hash = await provider.sendTransaction(transaction);
assert.equal(transaction.nonce, 0n);
assert.equal(transaction.data.toString(), "getUltimateAnswer");
assert.equal(hash, "3579ad09099feb9755c860ddd225251170806d833342e912fccdfe2ed5c3a364");

transaction = interaction.withNonce(1n).buildTransaction();
transaction.sender = alice.address;
transaction.signature = await alice.signer.sign(transactionComputer.computeBytesForSigning(transaction));
transaction.signature = await alice.signTransaction(transaction);
hash = await provider.sendTransaction(transaction);
assert.equal(transaction.nonce, 1n);
assert.equal(hash, "ad513ce7c5d371d30e48f073326899766736eac1ac231d847d45bc3facbcb496");

// Execute, and wait for execution
transaction = interaction.withNonce(2n).buildTransaction();
transaction.sender = alice.address;
transaction.signature = await alice.signer.sign(transactionComputer.computeBytesForSigning(transaction));
transaction.signature = await alice.signTransaction(transaction);
provider.mockGetTransactionWithAnyHashAsNotarizedWithOneResult("@6f6b@2bs", "getUltimateAnswer");
hash = await provider.sendTransaction(transaction);
let responseExecute = await controller.awaitCompletedExecute(hash);
Expand Down Expand Up @@ -314,9 +308,7 @@ describe("test smart contract interactor", function () {
.withChainID("mock")
.buildTransaction();

incrementTransaction.signature = await alice.signer.sign(
transactionComputer.computeBytesForSigning(incrementTransaction),
);
incrementTransaction.signature = await alice.signTransaction(incrementTransaction);
provider.mockGetTransactionWithAnyHashAsNotarizedWithOneResult("@6f6b@08", "increment");
let hash = await provider.sendTransaction(incrementTransaction);
let responseExecute = await controller.awaitCompletedExecute(hash);
Expand All @@ -330,22 +322,16 @@ describe("test smart contract interactor", function () {
.withChainID("mock")
.buildTransaction();

decrementTransaction.signature = await alice.signer.sign(
transactionComputer.computeBytesForSigning(decrementTransaction),
);
decrementTransaction.signature = await alice.signTransaction(decrementTransaction);
await provider.sendTransaction(decrementTransaction);
// Decrement #2
decrementTransaction = decrementInteraction.withNonce(16n).buildTransaction();
decrementTransaction.signature = await alice.signer.sign(
transactionComputer.computeBytesForSigning(decrementTransaction),
);
decrementTransaction.signature = await alice.signTransaction(decrementTransaction);
await provider.sendTransaction(decrementTransaction);
// Decrement #3

decrementTransaction = decrementInteraction.withNonce(17n).buildTransaction();
decrementTransaction.signature = await alice.signer.sign(
transactionComputer.computeBytesForSigning(decrementTransaction),
);
decrementTransaction.signature = await alice.signTransaction(decrementTransaction);
provider.mockGetTransactionWithAnyHashAsNotarizedWithOneResult("@6f6b@05", "decrement");
hash = await provider.sendTransaction(decrementTransaction);
responseExecute = await controller.awaitCompletedExecute(hash);
Expand Down Expand Up @@ -386,9 +372,7 @@ describe("test smart contract interactor", function () {
.withChainID("mock")
.buildTransaction();

startTransaction.signature = await alice.signer.sign(
transactionComputer.computeBytesForSigning(startTransaction),
);
startTransaction.signature = await alice.signTransaction(startTransaction);

provider.mockGetTransactionWithAnyHashAsNotarizedWithOneResult("@6f6b", "start");
let hash = await provider.sendTransaction(startTransaction);
Expand All @@ -405,9 +389,7 @@ describe("test smart contract interactor", function () {
.withChainID("mock")
.buildTransaction();

statusTransaction.signature = await alice.signer.sign(
transactionComputer.computeBytesForSigning(statusTransaction),
);
statusTransaction.signature = await alice.signTransaction(statusTransaction);
provider.mockGetTransactionWithAnyHashAsNotarizedWithOneResult("@6f6b@01", "status");

hash = await provider.sendTransaction(startTransaction);
Expand All @@ -425,9 +407,7 @@ describe("test smart contract interactor", function () {
.withChainID("mock")
.buildTransaction();

getLotteryInfoTransaction.signature = await alice.signer.sign(
transactionComputer.computeBytesForSigning(getLotteryInfoTransaction),
);
getLotteryInfoTransaction.signature = await alice.signTransaction(getLotteryInfoTransaction);
provider.mockGetTransactionWithAnyHashAsNotarizedWithOneResult(
"@6f6b@0000000b6c75636b792d746f6b656e000000010100000000000000005fc2b9dbffffffff00000001640000000a140ec80fa7ee88000000",
"getLotteryInfo",
Expand Down
Loading

0 comments on commit aa0dce0

Please sign in to comment.