From 5285bd0ae8b70df4858f214a8d00688bb84b9ddb Mon Sep 17 00:00:00 2001 From: Alexandru Popenta Date: Thu, 24 Aug 2023 13:16:06 +0300 Subject: [PATCH 1/2] reference new network providers package & fix tests --- package-lock.json | 46 +++++------------------- package.json | 5 ++- src/errors.ts | 2 +- src/smartcontracts/smartContract.spec.ts | 13 ++++--- src/transaction.local.net.spec.ts | 2 +- src/transactionWatcher.spec.ts | 8 ++--- 6 files changed, 25 insertions(+), 51 deletions(-) diff --git a/package-lock.json b/package-lock.json index f75274a6..8504400a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@multiversx/sdk-core", - "version": "12.7.0", + "version": "12.7.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@multiversx/sdk-core", - "version": "12.7.0", + "version": "12.7.1", "license": "MIT", "dependencies": { "@multiversx/sdk-transaction-decoder": "1.0.2", @@ -19,8 +19,7 @@ "protobufjs": "7.2.4" }, "devDependencies": { - "@multiversx/sdk-network-providers": "1.2.1", - "@multiversx/sdk-network-providers-next": "npm:@multiversx/sdk-network-providers@1.6.0-beta.0", + "@multiversx/sdk-network-providers": "2.0.0", "@multiversx/sdk-wallet": "3.0.0", "@multiversx/sdk-wallet-next": "npm:@multiversx/sdk-wallet@4.0.0", "@types/assert": "1.4.6", @@ -485,23 +484,9 @@ } }, "node_modules/@multiversx/sdk-network-providers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-network-providers/-/sdk-network-providers-1.2.1.tgz", - "integrity": "sha512-hRCuoOf9Kh9qArsCPWUrVn45lTWzFloLK0F9f4vNh3WWw4SplfFE/G4TwN8+F35IFMArvTcPibXnRzMb5z48Jw==", - "dev": true, - "dependencies": { - "axios": "0.24.0", - "bech32": "1.1.4", - "bignumber.js": "9.0.1", - "buffer": "6.0.3", - "json-bigint": "1.0.0" - } - }, - "node_modules/@multiversx/sdk-network-providers-next": { - "name": "@multiversx/sdk-network-providers", - "version": "1.6.0-beta.0", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-network-providers/-/sdk-network-providers-1.6.0-beta.0.tgz", - "integrity": "sha512-BQ51Cj36M3T0hWVpjba2k4SWmD/MYziSop4LFKN4kns6HqwKm3lF6HuKuptSq09HeyTpl6xU4EEkVq0lclX4Kw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-network-providers/-/sdk-network-providers-2.0.0.tgz", + "integrity": "sha512-87QlwC2kaNtywDv2IVX/cavRfR4D5N7XgqOvsZTyMXRVbfWOUlDocrRr5BdvmC1gDdSOQH++nFEDHiMfnKmRng==", "dev": true, "dependencies": { "axios": "0.24.0", @@ -4738,22 +4723,9 @@ "dev": true }, "@multiversx/sdk-network-providers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-network-providers/-/sdk-network-providers-1.2.1.tgz", - "integrity": "sha512-hRCuoOf9Kh9qArsCPWUrVn45lTWzFloLK0F9f4vNh3WWw4SplfFE/G4TwN8+F35IFMArvTcPibXnRzMb5z48Jw==", - "dev": true, - "requires": { - "axios": "0.24.0", - "bech32": "1.1.4", - "bignumber.js": "9.0.1", - "buffer": "6.0.3", - "json-bigint": "1.0.0" - } - }, - "@multiversx/sdk-network-providers-next": { - "version": "npm:@multiversx/sdk-network-providers@1.6.0-beta.0", - "resolved": "https://registry.npmjs.org/@multiversx/sdk-network-providers/-/sdk-network-providers-1.6.0-beta.0.tgz", - "integrity": "sha512-BQ51Cj36M3T0hWVpjba2k4SWmD/MYziSop4LFKN4kns6HqwKm3lF6HuKuptSq09HeyTpl6xU4EEkVq0lclX4Kw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@multiversx/sdk-network-providers/-/sdk-network-providers-2.0.0.tgz", + "integrity": "sha512-87QlwC2kaNtywDv2IVX/cavRfR4D5N7XgqOvsZTyMXRVbfWOUlDocrRr5BdvmC1gDdSOQH++nFEDHiMfnKmRng==", "dev": true, "requires": { "axios": "0.24.0", diff --git a/package.json b/package.json index 1de9afcc..e2178416 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-core", - "version": "12.7.0", + "version": "12.7.1", "description": "MultiversX SDK for JavaScript and TypeScript", "main": "out/index.js", "types": "out/index.d.js", @@ -35,8 +35,7 @@ "protobufjs": "7.2.4" }, "devDependencies": { - "@multiversx/sdk-network-providers": "1.2.1", - "@multiversx/sdk-network-providers-next": "npm:@multiversx/sdk-network-providers@1.6.0-beta.0", + "@multiversx/sdk-network-providers": "2.0.0", "@multiversx/sdk-wallet": "3.0.0", "@multiversx/sdk-wallet-next": "npm:@multiversx/sdk-wallet@4.0.0", "@types/assert": "1.4.6", diff --git a/src/errors.ts b/src/errors.ts index cba3bb9d..80d052db 100644 --- a/src/errors.ts +++ b/src/errors.ts @@ -328,6 +328,6 @@ export class ErrGasLimitShouldBe0ForInnerTransaction extends Err { export class ErrIsCompletedFieldIsMissingOnTransaction extends Err { public constructor() { - super("The transaction watcher requires the `isCompleted` property to be defined on the transaction object. Perhaps you've used the sdk-network-provider's `getTransaction()` and in that case you should also pass `withProcessStatus=true`.") + super("The transaction watcher requires the `isCompleted` property to be defined on the transaction object. Perhaps you've used the sdk-network-provider's `ProxyNetworkProvider.getTransaction()` and in that case you should also pass `withProcessStatus=true`.") } } diff --git a/src/smartcontracts/smartContract.spec.ts b/src/smartcontracts/smartContract.spec.ts index 51233d05..0f69446e 100644 --- a/src/smartcontracts/smartContract.spec.ts +++ b/src/smartcontracts/smartContract.spec.ts @@ -62,10 +62,10 @@ describe("test contract", () => { // Now let's broadcast the deploy transaction, and wait for its execution. let hash = await provider.sendTransaction(deployTransaction); - await Promise.all([ - provider.mockTransactionTimeline(deployTransaction, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]), - watcher.awaitCompleted(deployTransaction) - ]); + await Promise.resolve( + provider.mockTransactionTimeline(deployTransaction, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]) + ); + await watcher.awaitCompleted(deployTransaction); assert.isTrue((await provider.getTransactionStatus(hash)).isExecuted()); }); @@ -117,7 +117,10 @@ describe("test contract", () => { await Promise.all([ provider.mockTransactionTimeline(callTransactionOne, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]), - provider.mockTransactionTimeline(callTransactionTwo, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]), + provider.mockTransactionTimeline(callTransactionTwo, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]) + ]); + + await Promise.all([ watcher.awaitCompleted(callTransactionOne), watcher.awaitCompleted(callTransactionTwo) ]); diff --git a/src/transaction.local.net.spec.ts b/src/transaction.local.net.spec.ts index bb36e894..9b72ce5e 100644 --- a/src/transaction.local.net.spec.ts +++ b/src/transaction.local.net.spec.ts @@ -7,7 +7,7 @@ import { TokenTransfer } from "./tokenTransfer"; import { Transaction } from "./transaction"; import { TransactionPayload } from "./transactionPayload"; import { TransactionWatcher } from "./transactionWatcher"; -import { ProxyNetworkProvider } from "@multiversx/sdk-network-providers-next"; +import { ProxyNetworkProvider } from "@multiversx/sdk-network-providers"; describe("test transaction", function () { let alice: TestWallet, bob: TestWallet; diff --git a/src/transactionWatcher.spec.ts b/src/transactionWatcher.spec.ts index 92646cc4..4920fa95 100644 --- a/src/transactionWatcher.spec.ts +++ b/src/transactionWatcher.spec.ts @@ -21,11 +21,11 @@ describe("test transactionWatcher", () => { status: new TransactionStatus("unknown") })); - await Promise.all([ - provider.mockTransactionTimelineByHash(hash, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]), - watcher.awaitCompleted(dummyTransaction) - ]); + await Promise.resolve( + provider.mockTransactionTimelineByHash(hash, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]) + ); + await watcher.awaitCompleted(dummyTransaction); assert.isTrue((await provider.getTransactionStatus(hash.hex())).isExecuted()); }); }); From 1c11ce9597a69af8c9eb90e709a3776e5d366428 Mon Sep 17 00:00:00 2001 From: Alexandru Popenta Date: Thu, 24 Aug 2023 14:31:35 +0300 Subject: [PATCH 2/2] fix tests --- src/smartcontracts/smartContract.spec.ts | 13 +++++-------- src/testutils/mockProvider.ts | 3 ++- src/transactionWatcher.spec.ts | 8 ++++---- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/smartcontracts/smartContract.spec.ts b/src/smartcontracts/smartContract.spec.ts index 0f69446e..51233d05 100644 --- a/src/smartcontracts/smartContract.spec.ts +++ b/src/smartcontracts/smartContract.spec.ts @@ -62,10 +62,10 @@ describe("test contract", () => { // Now let's broadcast the deploy transaction, and wait for its execution. let hash = await provider.sendTransaction(deployTransaction); - await Promise.resolve( - provider.mockTransactionTimeline(deployTransaction, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]) - ); - await watcher.awaitCompleted(deployTransaction); + await Promise.all([ + provider.mockTransactionTimeline(deployTransaction, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]), + watcher.awaitCompleted(deployTransaction) + ]); assert.isTrue((await provider.getTransactionStatus(hash)).isExecuted()); }); @@ -117,10 +117,7 @@ describe("test contract", () => { await Promise.all([ provider.mockTransactionTimeline(callTransactionOne, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]), - provider.mockTransactionTimeline(callTransactionTwo, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]) - ]); - - await Promise.all([ + provider.mockTransactionTimeline(callTransactionTwo, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]), watcher.awaitCompleted(callTransactionOne), watcher.awaitCompleted(callTransactionTwo) ]); diff --git a/src/testutils/mockProvider.ts b/src/testutils/mockProvider.ts index ddb8e59b..f9808b4f 100644 --- a/src/testutils/mockProvider.ts +++ b/src/testutils/mockProvider.ts @@ -53,6 +53,7 @@ export class MockProvider { } mockPutTransaction(hash: TransactionHash, item: ITransactionOnNetwork) { + item.isCompleted = false; this.transactions.set(hash.toString(), item); } @@ -118,7 +119,7 @@ export class MockProvider { sender: transaction.getSender(), receiver: transaction.getReceiver(), data: transaction.getData().valueOf(), - status: new TransactionStatus("pending"), + status: new TransactionStatus("pending") }) ); diff --git a/src/transactionWatcher.spec.ts b/src/transactionWatcher.spec.ts index 4920fa95..92646cc4 100644 --- a/src/transactionWatcher.spec.ts +++ b/src/transactionWatcher.spec.ts @@ -21,11 +21,11 @@ describe("test transactionWatcher", () => { status: new TransactionStatus("unknown") })); - await Promise.resolve( - provider.mockTransactionTimelineByHash(hash, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]) - ); + await Promise.all([ + provider.mockTransactionTimelineByHash(hash, [new Wait(40), new TransactionStatus("pending"), new Wait(40), new TransactionStatus("executed"), new MarkCompleted()]), + watcher.awaitCompleted(dummyTransaction) + ]); - await watcher.awaitCompleted(dummyTransaction); assert.isTrue((await provider.getTransactionStatus(hash.hex())).isExecuted()); }); });