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
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
Loading