From 4cdce79c1a7ae08350561103d285709f8711c1fc Mon Sep 17 00:00:00 2001 From: Shahar Yakir Date: Tue, 10 Jan 2023 10:34:08 +0200 Subject: [PATCH 1/7] updated npm packages --- package-lock.json | 1044 +++++++++++++++------------------------------ package.json | 30 +- 2 files changed, 357 insertions(+), 717 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9d3ba71..85bcae4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,53 +10,69 @@ "hasInstallScript": true, "license": "MIT", "dependencies": { - "semver": "^7.3.7" + "semver": "^7.3.8" }, "devDependencies": { - "@swc/core": "^1.2.177", - "@types/bn.js": "^5.1.0", - "@types/chai": "^4.3.0", - "@types/mocha": "^9.0.0", - "@types/semver": "^7.3.9", + "@swc/core": "^1.3.25", + "@types/bn.js": "^5.1.1", + "@types/chai": "^4.3.4", + "@types/mocha": "^10.0.1", + "@types/semver": "^7.3.13", "axios-request-throttle": "^1.0.0", - "chai": "^4.3.4", + "chai": "^4.3.7", "chai-bn": "^0.3.1", - "dotenv": "^16.0.0", - "fast-glob": "^3.2.11", - "mocha": "^9.1.3", + "dotenv": "^16.0.3", + "fast-glob": "^3.2.12", + "mocha": "^10.2.0", "prando": "^6.0.1", - "prettier": "^2.6.2", - "ton": "^12.1.3", - "ton-contract-executor": "^0.4.8", + "prettier": "^2.8.2", + "ton": "^13.3.0", + "ton-contract-executor": "^0.6.2", "ton-crypto": "^3.1.0", - "ts-node": "^10.4.0", - "typescript": "^4.5.4" + "ts-node": "^10.9.1", + "typescript": "^4.9.4" }, "engines": { "node": ">=16.15.0" } }, - "node_modules/@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, "node_modules/@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "dependencies": { - "@cspotcode/source-map-consumer": "0.8.0" + "@jridgewell/trace-mapping": "0.3.9" }, "engines": { "node": ">=12" } }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -100,13 +116,11 @@ "hasInstallScript": true }, "node_modules/@swc/core": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.177.tgz", - "integrity": "sha512-fgLovM0xbqem4EIXXemvehEvvuFwQhYyOiOgUKtinPGGMdLr207O6sZBCiKfrr1+YI4ir83EFOUtzbiExpSh3g==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.25.tgz", + "integrity": "sha512-wqzvM/wu6OsTVYPMStOpm7kIQcPX3GoZ0sC85qzDdsCxmJ1rmItLAD91sXPUmmdk0XqPYjLgT9MRDEIP5woz4g==", "dev": true, - "bin": { - "swcx": "run_swcx.js" - }, + "hasInstallScript": true, "engines": { "node": ">=10" }, @@ -115,57 +129,22 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-android-arm-eabi": "1.2.177", - "@swc/core-android-arm64": "1.2.177", - "@swc/core-darwin-arm64": "1.2.177", - "@swc/core-darwin-x64": "1.2.177", - "@swc/core-freebsd-x64": "1.2.177", - "@swc/core-linux-arm-gnueabihf": "1.2.177", - "@swc/core-linux-arm64-gnu": "1.2.177", - "@swc/core-linux-arm64-musl": "1.2.177", - "@swc/core-linux-x64-gnu": "1.2.177", - "@swc/core-linux-x64-musl": "1.2.177", - "@swc/core-win32-arm64-msvc": "1.2.177", - "@swc/core-win32-ia32-msvc": "1.2.177", - "@swc/core-win32-x64-msvc": "1.2.177" - } - }, - "node_modules/@swc/core-android-arm-eabi": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.177.tgz", - "integrity": "sha512-jfdBSpDrrDLnI+bpwOUsl7UTjB7ZDQC5tIiNGErWgKSFOHxP31PSBe7S0HxfDKsGZF1THeWpsLG6oE8frbxDtA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-android-arm64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.177.tgz", - "integrity": "sha512-Fm4kI6OsL/NeXOQ09ao1RqJ0cgMRj8BqDV6odw4AmTgyzVi7/XlbxhDOsdyILNwNJTnFRW3FAWl71jqc4o0+ZA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=10" + "@swc/core-darwin-arm64": "1.3.25", + "@swc/core-darwin-x64": "1.3.25", + "@swc/core-linux-arm-gnueabihf": "1.3.25", + "@swc/core-linux-arm64-gnu": "1.3.25", + "@swc/core-linux-arm64-musl": "1.3.25", + "@swc/core-linux-x64-gnu": "1.3.25", + "@swc/core-linux-x64-musl": "1.3.25", + "@swc/core-win32-arm64-msvc": "1.3.25", + "@swc/core-win32-ia32-msvc": "1.3.25", + "@swc/core-win32-x64-msvc": "1.3.25" } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.177.tgz", - "integrity": "sha512-deCWJoR9/wZ9uFBesbOmloBOMI+ZmiEK9Xk1U89v9Zi7tjQL8xpTARx5HhREQGTy0kSZ2ZX0soWBDpIENfYJRA==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.25.tgz", + "integrity": "sha512-8PWAVcjTJyj2VrqPBFOIi2w2P0Z8kOCbzHW3+pe+bSXxfGMG0MKPl5U2IXhsEL0ovm4xSFlqW0yygpoP3MmRPw==", "cpu": [ "arm64" ], @@ -179,9 +158,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.177.tgz", - "integrity": "sha512-WnRapP45QVzuQsjOtVnWi7R0t7vL5CCBPGPDKYUjhcgMHUjaMrZqkhFGUdFap6T5/iCzNta8nyo1LkPr/N4Z7Q==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.25.tgz", + "integrity": "sha512-5DHGiMYFEj5aa208tCjo7Sn5tiG4xPz+4gUiWVlglxqXFptkNim5xu/1G6VYm5Zk7dI5jJkjTU76GQG7IRvPug==", "cpu": [ "x64" ], @@ -194,26 +173,10 @@ "node": ">=10" } }, - "node_modules/@swc/core-freebsd-x64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.177.tgz", - "integrity": "sha512-77qdVKNRfo0z+IyQopOIWjTvYiRogcDEg6WLz2CiSMLpzH0gK+/xnT6vpB314+v1CxaLz5zx/gVrTa9sbZai6g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=10" - } - }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.177.tgz", - "integrity": "sha512-COEPGMwR7tRTt/VhIY0t6h3P8keaAGUVw4lfQQq9acW0X9pZTiHwNi/HkdfeIJkhxuWS7e9uski1mCKYEaDtPw==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.25.tgz", + "integrity": "sha512-YNfLxv9PhZk+jrJbpR1mMrYBUkufo0hiFv3S1OrX3l8edsIP4wPND5w9ZH0Oi898f6Jg9DBrY2zXJMQ+gWkbvA==", "cpu": [ "arm" ], @@ -227,9 +190,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.177.tgz", - "integrity": "sha512-VsMQbCqWXtp7NpZityOujJGBbU5wMEn/viX3DNyp/wKIvbKWgCFwV+v8VN4T5zgX0R9ZE5SKBOHxyA1nvGIhig==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.25.tgz", + "integrity": "sha512-kS+spM5/xQ6QvWF1ms3byfjnhUlpjTfFwgCyHnIKgjvsYkDa+vkAIhKq6HuEdaTPaCRCjts0Zarhub1nClUU0g==", "cpu": [ "arm64" ], @@ -243,9 +206,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.177.tgz", - "integrity": "sha512-RolytMUsaekieimltreoldf6yYOKjIZ6/O37OtPAdepEmg9b7R69EVjXRS9GEfqHTNtty9riskc5+N9bOu2NXQ==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.25.tgz", + "integrity": "sha512-vM3D7LWmjotUAJ2D4F+L+dspFeWrcPNVh0o8TCoTOYCt8DPD5YsUKTpIgOsZ+gReeWUAnNTh0Btx5pGGVfajGA==", "cpu": [ "arm64" ], @@ -259,9 +222,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.177.tgz", - "integrity": "sha512-kBj91kNio+7jTC2C9T71O7oYuZyllOTc/Bk6kbwIR5g5cmhi3uRCkdatQlyAcxoY1NGClocW6v49Fmm7EB7sQg==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.25.tgz", + "integrity": "sha512-xUCLLMDlYa/zB8BftVa4SrxuVpcDxkltCfmBg5r2pZPVskhC5ZJsQZ/AvWNChoAB11shRhjTaWDlmxJEsa7TIg==", "cpu": [ "x64" ], @@ -275,9 +238,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.177.tgz", - "integrity": "sha512-yO3PqvctMqypIz9GrxHUlbPegrRKOyaVaPQZ/L/u9b1Bo7lUzE83covV7xfGgIy6KGCescVKmv39eO1G5AaLjA==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.25.tgz", + "integrity": "sha512-QzHU3BIaUVRSFNsUn3Qxx1vgtF/f5NqsFMAAPSq9Y8Yq5nrlc2t7cNuOROxHLbUqE+NPUp6+RglleJMoeWz5mA==", "cpu": [ "x64" ], @@ -291,9 +254,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.177.tgz", - "integrity": "sha512-JjIOlPaMje/WMkY1PpYZccF9jWeBzyaZ0/BlWMhQtSYD9h5ZHkYDyQdAZOkDPrru0ZRsDMc/+ue7um2FQwXs/A==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.25.tgz", + "integrity": "sha512-77VSVtneVOAUL4zkRyQZ6pWVpTsVVdqwly/DKnRnloglGKxYuk5DG5MUBsL72Nnfv4OCHjZ27eI3NUrpLsUb2Q==", "cpu": [ "arm64" ], @@ -307,9 +270,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.177.tgz", - "integrity": "sha512-G+QvvNSrvIwQ6CO4TPc9q060V2RUYhj1Y1FVdoiyXfRDwY4cIv6XAlK7qp1+alX4VFpxIl8EYKoKjdZWBPcHww==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.25.tgz", + "integrity": "sha512-kz0v3K3H6OPEZR3ry72Ad/6C5GrZBRRUk69K58LORQ8tZXQD3UGl85pUbQqyHl8fR5NU76Muxgovj9CI9iTHGA==", "cpu": [ "ia32" ], @@ -323,9 +286,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.177.tgz", - "integrity": "sha512-88RpWLPSJmqUZCmIfyiybfJa+GpVp5CyBd/InK+wiYw7IpcUndSX21KeU7IeGSZvPp0T4GKvRdwK5O+Xd6fFsg==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.25.tgz", + "integrity": "sha512-nmQOAzIpNRRnupWzkenJmW4i+h1M76cVNUqEU2MjmtesEkRZEGqv//jefXiyCP2zcbeLNLKiB2ptVJhpd1BvRA==", "cpu": [ "x64" ], @@ -381,24 +344,24 @@ } }, "node_modules/@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/chai": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz", - "integrity": "sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", "dev": true }, "node_modules/@types/mocha": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", + "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", "dev": true }, "node_modules/@types/node": { @@ -408,15 +371,9 @@ "dev": true }, "node_modules/@types/semver": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", - "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==", - "dev": true - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", "dev": true }, "node_modules/acorn": { @@ -591,14 +548,14 @@ } }, "node_modules/chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", - "deep-eql": "^3.0.1", + "deep-eql": "^4.1.2", "get-func-name": "^2.0.0", "loupe": "^2.3.1", "pathval": "^1.1.1", @@ -730,9 +687,9 @@ "dev": true }, "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -765,15 +722,15 @@ } }, "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "dependencies": { "type-detect": "^4.0.0" }, "engines": { - "node": ">=0.12" + "node": ">=6" } }, "node_modules/diff": { @@ -786,9 +743,9 @@ } }, "node_modules/dotenv": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", - "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", "dev": true, "engines": { "node": ">=12" @@ -821,30 +778,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "dev": true, - "dependencies": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/ethjs-unit/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true - }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1011,15 +948,6 @@ "node": "*" } }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -1118,16 +1046,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "dev": true, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -1158,12 +1076,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -1265,54 +1177,60 @@ } }, "node_modules/minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { "node": ">=10" } }, + "node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, "dependencies": { - "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.3", - "debug": "4.3.3", + "debug": "4.3.4", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.2.0", - "growl": "1.10.5", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "4.2.1", + "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.1", + "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", + "workerpool": "6.2.1", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" }, "bin": { "_mocha": "bin/_mocha", - "mocha": "bin/mocha" + "mocha": "bin/mocha.js" }, "engines": { - "node": ">= 12.0.0" + "node": ">= 14.0.0" }, "funding": { "type": "opencollective", @@ -1326,9 +1244,9 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -1346,26 +1264,6 @@ "node": ">=0.10.0" } }, - "node_modules/number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "dev": true, - "dependencies": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/number-to-bn/node_modules/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -1451,9 +1349,9 @@ "dev": true }, "node_modules/prettier": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", - "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.2.tgz", + "integrity": "sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -1531,21 +1429,6 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -1590,9 +1473,9 @@ ] }, "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -1638,19 +1521,6 @@ "node": ">=8" } }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dev": true, - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -1690,18 +1560,6 @@ "integrity": "sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg==", "dev": true }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -1715,90 +1573,53 @@ } }, "node_modules/ton": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/ton/-/ton-12.1.3.tgz", - "integrity": "sha512-ZkXyr2UkYEQfCX5QKY9xQfzLyM4MDZE+Lz7RICr74wS3fwk5lkJ1/KrQZqb2/DwtoBonEaiNjm6x+r86Q8peFA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/ton/-/ton-13.3.0.tgz", + "integrity": "sha512-ygNZ3a8xgDcftudgmq2lNzFNrQtNhUdmBneLJI8C2iBuD9RAfpnjae4eIpjPLfCsLKH8Nmvh2JOESfM7lvsCSw==", "dev": true, "dependencies": { "axios": "^0.25.0", - "bn.js": "5.2.0", "dataloader": "^2.0.0", - "ethjs-unit": "0.1.6", "fp-ts": "^2.11.1", "io-ts": "^2.2.16", "io-ts-reporters": "^2.0.0", "symbol.inspect": "1.0.1", - "teslabot": "^1.3.0", - "ton-crypto": "2.1.0", - "tweetnacl": "1.0.3" - } - }, - "node_modules/ton-compiler": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/ton-compiler/-/ton-compiler-0.9.0.tgz", - "integrity": "sha512-7ZyjmSSmI8s/hd+H3c8qCzvUxDWLml4T8Lhr3DNAucadWhAXiVniTgPHHQNt5nbfZMvHKGevGw18pRkf5cFBZA==", - "dev": true, - "dependencies": { - "arg": "^5.0.1", - "tmp": "^0.2.1" + "teslabot": "^1.3.0" }, - "bin": { - "fift": "bin/fift", - "func": "bin/func", - "ton-compiler": "bin/ton-compiler" + "peerDependencies": { + "ton-core": ">=0.32.0", + "ton-crypto": ">=3.2.0" } }, - "node_modules/ton-compiler/node_modules/arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", - "dev": true - }, "node_modules/ton-contract-executor": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/ton-contract-executor/-/ton-contract-executor-0.4.8.tgz", - "integrity": "sha512-5XTLQre1KP6doi0Qobj3xF3g9DF2nKy5Lv5T6n7THEPp6P/m4fvjkXdrYE9Wldezv454JZ2cpisSUjNeqo9oJg==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/ton-contract-executor/-/ton-contract-executor-0.6.2.tgz", + "integrity": "sha512-liG3VODJiWQbpEFzmy6nO1XrWkeIKarM+cWIapasP4BzBHBzzAuO7Rb6PY+ow2RFo3TS+XzGUEAP86DDVx3WFg==", "dev": true, "dependencies": { - "bn.js": "^5.2.0", - "ton": "^9.6.3", - "ton-compiler": "^0.9.0" - } - }, - "node_modules/ton-contract-executor/node_modules/ton": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/ton/-/ton-9.9.0.tgz", - "integrity": "sha512-6t+/5b/6DbQH58ywJoc96CN1txcxXjZfYXk/vDeJClqfFR5Z9QikfoPGjLPHTkpLo8jALGPrcKnZDYIwU6biew==", - "dev": true, - "dependencies": { - "axios": "^0.25.0", - "bn.js": "5.2.0", - "dataloader": "^2.0.0", - "ethjs-unit": "0.1.6", - "fp-ts": "^2.11.1", - "io-ts": "^2.2.16", - "io-ts-reporters": "^2.0.0", - "symbol.inspect": "1.0.1", - "teslabot": "^1.3.0", - "ton-crypto": "2.1.0", - "tweetnacl": "1.0.3" + "bn.js": "^5.2.0" + }, + "peerDependencies": { + "ton": ">=11.0.1" } }, - "node_modules/ton-contract-executor/node_modules/ton-crypto": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-2.1.0.tgz", - "integrity": "sha512-PZnmCOShfgq9tCRM8E7hG8nCkpkOyZvDLPXmZN92ZEBrfTT0NKKf0imndkxG5DkgWMjc6IKfgpnEaJDH9qN6ZQ==", + "node_modules/ton-core": { + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.44.0.tgz", + "integrity": "sha512-EnYKUHc4EUiL3BmppK+AQLqZaaw/BPBNmOC9xJRqiKRqs11gIn/LY3qzp4/23JWojBwXH7S7M6Rf8YN+In5Zhw==", "dev": true, + "peer": true, "dependencies": { - "jssha": "3.2.0", - "ton-crypto-primitives": "2.0.0", - "tweetnacl": "1.0.3" + "symbol.inspect": "1.0.1" + }, + "peerDependencies": { + "ton-crypto": ">=3.2.0" } }, "node_modules/ton-crypto": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-3.1.0.tgz", - "integrity": "sha512-OgUuGoT8UKvm5jvRd/fiCo46MCrlOMt9Nr7nPQC3vkLjKmbDk+qJ4gQsO14IZwrOm5xkhDMlF5ZTVH/kN9y0gg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-3.2.0.tgz", + "integrity": "sha512-fltdBNQ45gARMuGMEOjPZWPJ5eSql8p3CA0Dj7tPv5lhU5ziT8SxXLAzDraR9HJ8YpjBHLVvYyhMLRiEwxgtMQ==", "dev": true, "dependencies": { "jssha": "3.2.0", @@ -1815,24 +1636,13 @@ "jssha": "3.2.0" } }, - "node_modules/ton/node_modules/ton-crypto": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-2.1.0.tgz", - "integrity": "sha512-PZnmCOShfgq9tCRM8E7hG8nCkpkOyZvDLPXmZN92ZEBrfTT0NKKf0imndkxG5DkgWMjc6IKfgpnEaJDH9qN6ZQ==", - "dev": true, - "dependencies": { - "jssha": "3.2.0", - "ton-crypto-primitives": "2.0.0", - "tweetnacl": "1.0.3" - } - }, "node_modules/ts-node": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", - "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "dependencies": { - "@cspotcode/source-map-support": "0.7.0", + "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", @@ -1843,7 +1653,7 @@ "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.0", + "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "bin": { @@ -1894,9 +1704,9 @@ } }, "node_modules/typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -1912,25 +1722,10 @@ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", "dev": true }, "node_modules/wrap-ansi": { @@ -2035,19 +1830,35 @@ } }, "dependencies": { - "@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true }, - "@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "requires": { - "@cspotcode/source-map-consumer": "0.8.0" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@nodelib/fs.scandir": { @@ -2083,114 +1894,90 @@ "dev": true }, "@swc/core": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.177.tgz", - "integrity": "sha512-fgLovM0xbqem4EIXXemvehEvvuFwQhYyOiOgUKtinPGGMdLr207O6sZBCiKfrr1+YI4ir83EFOUtzbiExpSh3g==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.25.tgz", + "integrity": "sha512-wqzvM/wu6OsTVYPMStOpm7kIQcPX3GoZ0sC85qzDdsCxmJ1rmItLAD91sXPUmmdk0XqPYjLgT9MRDEIP5woz4g==", "dev": true, "requires": { - "@swc/core-android-arm-eabi": "1.2.177", - "@swc/core-android-arm64": "1.2.177", - "@swc/core-darwin-arm64": "1.2.177", - "@swc/core-darwin-x64": "1.2.177", - "@swc/core-freebsd-x64": "1.2.177", - "@swc/core-linux-arm-gnueabihf": "1.2.177", - "@swc/core-linux-arm64-gnu": "1.2.177", - "@swc/core-linux-arm64-musl": "1.2.177", - "@swc/core-linux-x64-gnu": "1.2.177", - "@swc/core-linux-x64-musl": "1.2.177", - "@swc/core-win32-arm64-msvc": "1.2.177", - "@swc/core-win32-ia32-msvc": "1.2.177", - "@swc/core-win32-x64-msvc": "1.2.177" - } - }, - "@swc/core-android-arm-eabi": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.177.tgz", - "integrity": "sha512-jfdBSpDrrDLnI+bpwOUsl7UTjB7ZDQC5tIiNGErWgKSFOHxP31PSBe7S0HxfDKsGZF1THeWpsLG6oE8frbxDtA==", - "dev": true, - "optional": true - }, - "@swc/core-android-arm64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.177.tgz", - "integrity": "sha512-Fm4kI6OsL/NeXOQ09ao1RqJ0cgMRj8BqDV6odw4AmTgyzVi7/XlbxhDOsdyILNwNJTnFRW3FAWl71jqc4o0+ZA==", - "dev": true, - "optional": true + "@swc/core-darwin-arm64": "1.3.25", + "@swc/core-darwin-x64": "1.3.25", + "@swc/core-linux-arm-gnueabihf": "1.3.25", + "@swc/core-linux-arm64-gnu": "1.3.25", + "@swc/core-linux-arm64-musl": "1.3.25", + "@swc/core-linux-x64-gnu": "1.3.25", + "@swc/core-linux-x64-musl": "1.3.25", + "@swc/core-win32-arm64-msvc": "1.3.25", + "@swc/core-win32-ia32-msvc": "1.3.25", + "@swc/core-win32-x64-msvc": "1.3.25" + } }, "@swc/core-darwin-arm64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.177.tgz", - "integrity": "sha512-deCWJoR9/wZ9uFBesbOmloBOMI+ZmiEK9Xk1U89v9Zi7tjQL8xpTARx5HhREQGTy0kSZ2ZX0soWBDpIENfYJRA==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.25.tgz", + "integrity": "sha512-8PWAVcjTJyj2VrqPBFOIi2w2P0Z8kOCbzHW3+pe+bSXxfGMG0MKPl5U2IXhsEL0ovm4xSFlqW0yygpoP3MmRPw==", "dev": true, "optional": true }, "@swc/core-darwin-x64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.177.tgz", - "integrity": "sha512-WnRapP45QVzuQsjOtVnWi7R0t7vL5CCBPGPDKYUjhcgMHUjaMrZqkhFGUdFap6T5/iCzNta8nyo1LkPr/N4Z7Q==", - "dev": true, - "optional": true - }, - "@swc/core-freebsd-x64": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.177.tgz", - "integrity": "sha512-77qdVKNRfo0z+IyQopOIWjTvYiRogcDEg6WLz2CiSMLpzH0gK+/xnT6vpB314+v1CxaLz5zx/gVrTa9sbZai6g==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.25.tgz", + "integrity": "sha512-5DHGiMYFEj5aa208tCjo7Sn5tiG4xPz+4gUiWVlglxqXFptkNim5xu/1G6VYm5Zk7dI5jJkjTU76GQG7IRvPug==", "dev": true, "optional": true }, "@swc/core-linux-arm-gnueabihf": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.177.tgz", - "integrity": "sha512-COEPGMwR7tRTt/VhIY0t6h3P8keaAGUVw4lfQQq9acW0X9pZTiHwNi/HkdfeIJkhxuWS7e9uski1mCKYEaDtPw==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.25.tgz", + "integrity": "sha512-YNfLxv9PhZk+jrJbpR1mMrYBUkufo0hiFv3S1OrX3l8edsIP4wPND5w9ZH0Oi898f6Jg9DBrY2zXJMQ+gWkbvA==", "dev": true, "optional": true }, "@swc/core-linux-arm64-gnu": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.177.tgz", - "integrity": "sha512-VsMQbCqWXtp7NpZityOujJGBbU5wMEn/viX3DNyp/wKIvbKWgCFwV+v8VN4T5zgX0R9ZE5SKBOHxyA1nvGIhig==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.25.tgz", + "integrity": "sha512-kS+spM5/xQ6QvWF1ms3byfjnhUlpjTfFwgCyHnIKgjvsYkDa+vkAIhKq6HuEdaTPaCRCjts0Zarhub1nClUU0g==", "dev": true, "optional": true }, "@swc/core-linux-arm64-musl": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.177.tgz", - "integrity": "sha512-RolytMUsaekieimltreoldf6yYOKjIZ6/O37OtPAdepEmg9b7R69EVjXRS9GEfqHTNtty9riskc5+N9bOu2NXQ==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.25.tgz", + "integrity": "sha512-vM3D7LWmjotUAJ2D4F+L+dspFeWrcPNVh0o8TCoTOYCt8DPD5YsUKTpIgOsZ+gReeWUAnNTh0Btx5pGGVfajGA==", "dev": true, "optional": true }, "@swc/core-linux-x64-gnu": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.177.tgz", - "integrity": "sha512-kBj91kNio+7jTC2C9T71O7oYuZyllOTc/Bk6kbwIR5g5cmhi3uRCkdatQlyAcxoY1NGClocW6v49Fmm7EB7sQg==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.25.tgz", + "integrity": "sha512-xUCLLMDlYa/zB8BftVa4SrxuVpcDxkltCfmBg5r2pZPVskhC5ZJsQZ/AvWNChoAB11shRhjTaWDlmxJEsa7TIg==", "dev": true, "optional": true }, "@swc/core-linux-x64-musl": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.177.tgz", - "integrity": "sha512-yO3PqvctMqypIz9GrxHUlbPegrRKOyaVaPQZ/L/u9b1Bo7lUzE83covV7xfGgIy6KGCescVKmv39eO1G5AaLjA==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.25.tgz", + "integrity": "sha512-QzHU3BIaUVRSFNsUn3Qxx1vgtF/f5NqsFMAAPSq9Y8Yq5nrlc2t7cNuOROxHLbUqE+NPUp6+RglleJMoeWz5mA==", "dev": true, "optional": true }, "@swc/core-win32-arm64-msvc": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.177.tgz", - "integrity": "sha512-JjIOlPaMje/WMkY1PpYZccF9jWeBzyaZ0/BlWMhQtSYD9h5ZHkYDyQdAZOkDPrru0ZRsDMc/+ue7um2FQwXs/A==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.25.tgz", + "integrity": "sha512-77VSVtneVOAUL4zkRyQZ6pWVpTsVVdqwly/DKnRnloglGKxYuk5DG5MUBsL72Nnfv4OCHjZ27eI3NUrpLsUb2Q==", "dev": true, "optional": true }, "@swc/core-win32-ia32-msvc": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.177.tgz", - "integrity": "sha512-G+QvvNSrvIwQ6CO4TPc9q060V2RUYhj1Y1FVdoiyXfRDwY4cIv6XAlK7qp1+alX4VFpxIl8EYKoKjdZWBPcHww==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.25.tgz", + "integrity": "sha512-kz0v3K3H6OPEZR3ry72Ad/6C5GrZBRRUk69K58LORQ8tZXQD3UGl85pUbQqyHl8fR5NU76Muxgovj9CI9iTHGA==", "dev": true, "optional": true }, "@swc/core-win32-x64-msvc": { - "version": "1.2.177", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.177.tgz", - "integrity": "sha512-88RpWLPSJmqUZCmIfyiybfJa+GpVp5CyBd/InK+wiYw7IpcUndSX21KeU7IeGSZvPp0T4GKvRdwK5O+Xd6fFsg==", + "version": "1.3.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.25.tgz", + "integrity": "sha512-nmQOAzIpNRRnupWzkenJmW4i+h1M76cVNUqEU2MjmtesEkRZEGqv//jefXiyCP2zcbeLNLKiB2ptVJhpd1BvRA==", "dev": true, "optional": true }, @@ -2236,24 +2023,24 @@ } }, "@types/bn.js": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz", - "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", "dev": true, "requires": { "@types/node": "*" } }, "@types/chai": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz", - "integrity": "sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", "dev": true }, "@types/mocha": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", + "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", "dev": true }, "@types/node": { @@ -2263,15 +2050,9 @@ "dev": true }, "@types/semver": { - "version": "7.3.9", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", - "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==", - "dev": true - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", "dev": true }, "acorn": { @@ -2404,14 +2185,14 @@ "dev": true }, "chai": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", - "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", - "deep-eql": "^3.0.1", + "deep-eql": "^4.1.2", "get-func-name": "^2.0.0", "loupe": "^2.3.1", "pathval": "^1.1.1", @@ -2513,9 +2294,9 @@ "dev": true }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -2536,9 +2317,9 @@ "dev": true }, "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", "dev": true, "requires": { "type-detect": "^4.0.0" @@ -2551,9 +2332,9 @@ "dev": true }, "dotenv": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz", - "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", "dev": true }, "emoji-regex": { @@ -2574,28 +2355,10 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "ethjs-unit": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", - "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", - "dev": true, - "requires": { - "bn.js": "4.11.6", - "number-to-bn": "1.7.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true - } - } - }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -2710,12 +2473,6 @@ "is-glob": "^4.0.1" } }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -2790,12 +2547,6 @@ "is-extglob": "^2.1.1" } }, - "is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", - "dev": true - }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -2814,12 +2565,6 @@ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -2894,41 +2639,49 @@ } }, "minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + } } }, "mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", "dev": true, "requires": { - "@ungap/promise-all-settled": "1.1.2", "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.5.3", - "debug": "4.3.3", + "debug": "4.3.4", "diff": "5.0.0", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.2.0", - "growl": "1.10.5", "he": "1.2.0", "js-yaml": "4.1.0", "log-symbols": "4.1.0", - "minimatch": "4.2.1", + "minimatch": "5.0.1", "ms": "2.1.3", - "nanoid": "3.3.1", + "nanoid": "3.3.3", "serialize-javascript": "6.0.0", "strip-json-comments": "3.1.1", "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", + "workerpool": "6.2.1", "yargs": "16.2.0", "yargs-parser": "20.2.4", "yargs-unparser": "2.0.0" @@ -2941,9 +2694,9 @@ "dev": true }, "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true }, "normalize-path": { @@ -2952,24 +2705,6 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "number-to-bn": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", - "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", - "dev": true, - "requires": { - "bn.js": "4.11.6", - "strip-hex-prefix": "1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", - "dev": true - } - } - }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -3028,9 +2763,9 @@ "dev": true }, "prettier": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", - "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.2.tgz", + "integrity": "sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw==", "dev": true }, "promise-throttle": { @@ -3075,15 +2810,6 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -3100,9 +2826,9 @@ "dev": true }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "requires": { "lru-cache": "^6.0.0" } @@ -3136,15 +2862,6 @@ "ansi-regex": "^5.0.1" } }, - "strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", - "dev": true, - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -3172,15 +2889,6 @@ "integrity": "sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg==", "dev": true }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -3191,102 +2899,43 @@ } }, "ton": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/ton/-/ton-12.1.3.tgz", - "integrity": "sha512-ZkXyr2UkYEQfCX5QKY9xQfzLyM4MDZE+Lz7RICr74wS3fwk5lkJ1/KrQZqb2/DwtoBonEaiNjm6x+r86Q8peFA==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/ton/-/ton-13.3.0.tgz", + "integrity": "sha512-ygNZ3a8xgDcftudgmq2lNzFNrQtNhUdmBneLJI8C2iBuD9RAfpnjae4eIpjPLfCsLKH8Nmvh2JOESfM7lvsCSw==", "dev": true, "requires": { "axios": "^0.25.0", - "bn.js": "5.2.0", "dataloader": "^2.0.0", - "ethjs-unit": "0.1.6", "fp-ts": "^2.11.1", "io-ts": "^2.2.16", "io-ts-reporters": "^2.0.0", "symbol.inspect": "1.0.1", - "teslabot": "^1.3.0", - "ton-crypto": "2.1.0", - "tweetnacl": "1.0.3" - }, - "dependencies": { - "ton-crypto": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-2.1.0.tgz", - "integrity": "sha512-PZnmCOShfgq9tCRM8E7hG8nCkpkOyZvDLPXmZN92ZEBrfTT0NKKf0imndkxG5DkgWMjc6IKfgpnEaJDH9qN6ZQ==", - "dev": true, - "requires": { - "jssha": "3.2.0", - "ton-crypto-primitives": "2.0.0", - "tweetnacl": "1.0.3" - } - } + "teslabot": "^1.3.0" } }, - "ton-compiler": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/ton-compiler/-/ton-compiler-0.9.0.tgz", - "integrity": "sha512-7ZyjmSSmI8s/hd+H3c8qCzvUxDWLml4T8Lhr3DNAucadWhAXiVniTgPHHQNt5nbfZMvHKGevGw18pRkf5cFBZA==", + "ton-contract-executor": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/ton-contract-executor/-/ton-contract-executor-0.6.2.tgz", + "integrity": "sha512-liG3VODJiWQbpEFzmy6nO1XrWkeIKarM+cWIapasP4BzBHBzzAuO7Rb6PY+ow2RFo3TS+XzGUEAP86DDVx3WFg==", "dev": true, "requires": { - "arg": "^5.0.1", - "tmp": "^0.2.1" - }, - "dependencies": { - "arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", - "dev": true - } + "bn.js": "^5.2.0" } }, - "ton-contract-executor": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/ton-contract-executor/-/ton-contract-executor-0.4.8.tgz", - "integrity": "sha512-5XTLQre1KP6doi0Qobj3xF3g9DF2nKy5Lv5T6n7THEPp6P/m4fvjkXdrYE9Wldezv454JZ2cpisSUjNeqo9oJg==", + "ton-core": { + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.44.0.tgz", + "integrity": "sha512-EnYKUHc4EUiL3BmppK+AQLqZaaw/BPBNmOC9xJRqiKRqs11gIn/LY3qzp4/23JWojBwXH7S7M6Rf8YN+In5Zhw==", "dev": true, + "peer": true, "requires": { - "bn.js": "^5.2.0", - "ton": "^9.6.3", - "ton-compiler": "^0.9.0" - }, - "dependencies": { - "ton": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/ton/-/ton-9.9.0.tgz", - "integrity": "sha512-6t+/5b/6DbQH58ywJoc96CN1txcxXjZfYXk/vDeJClqfFR5Z9QikfoPGjLPHTkpLo8jALGPrcKnZDYIwU6biew==", - "dev": true, - "requires": { - "axios": "^0.25.0", - "bn.js": "5.2.0", - "dataloader": "^2.0.0", - "ethjs-unit": "0.1.6", - "fp-ts": "^2.11.1", - "io-ts": "^2.2.16", - "io-ts-reporters": "^2.0.0", - "symbol.inspect": "1.0.1", - "teslabot": "^1.3.0", - "ton-crypto": "2.1.0", - "tweetnacl": "1.0.3" - } - }, - "ton-crypto": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-2.1.0.tgz", - "integrity": "sha512-PZnmCOShfgq9tCRM8E7hG8nCkpkOyZvDLPXmZN92ZEBrfTT0NKKf0imndkxG5DkgWMjc6IKfgpnEaJDH9qN6ZQ==", - "dev": true, - "requires": { - "jssha": "3.2.0", - "ton-crypto-primitives": "2.0.0", - "tweetnacl": "1.0.3" - } - } + "symbol.inspect": "1.0.1" } }, "ton-crypto": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-3.1.0.tgz", - "integrity": "sha512-OgUuGoT8UKvm5jvRd/fiCo46MCrlOMt9Nr7nPQC3vkLjKmbDk+qJ4gQsO14IZwrOm5xkhDMlF5ZTVH/kN9y0gg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-3.2.0.tgz", + "integrity": "sha512-fltdBNQ45gARMuGMEOjPZWPJ5eSql8p3CA0Dj7tPv5lhU5ziT8SxXLAzDraR9HJ8YpjBHLVvYyhMLRiEwxgtMQ==", "dev": true, "requires": { "jssha": "3.2.0", @@ -3304,12 +2953,12 @@ } }, "ts-node": { - "version": "10.7.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", - "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, "requires": { - "@cspotcode/source-map-support": "0.7.0", + "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", "@tsconfig/node12": "^1.0.7", "@tsconfig/node14": "^1.0.0", @@ -3320,7 +2969,7 @@ "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.0", + "v8-compile-cache-lib": "^3.0.1", "yn": "3.1.1" }, "dependencies": { @@ -3345,9 +2994,9 @@ "dev": true }, "typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "dev": true }, "v8-compile-cache-lib": { @@ -3356,19 +3005,10 @@ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, "workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", "dev": true }, "wrap-ansi": { diff --git a/package.json b/package.json index 4a99708..6115ba8 100644 --- a/package.json +++ b/package.json @@ -13,24 +13,24 @@ "postinstall": "ts-node ./build/_setup.ts" }, "devDependencies": { - "@swc/core": "^1.2.177", - "@types/bn.js": "^5.1.0", - "@types/chai": "^4.3.0", - "@types/mocha": "^9.0.0", - "@types/semver": "^7.3.9", + "@swc/core": "^1.3.25", + "@types/bn.js": "^5.1.1", + "@types/chai": "^4.3.4", + "@types/mocha": "^10.0.1", + "@types/semver": "^7.3.13", "axios-request-throttle": "^1.0.0", - "chai": "^4.3.4", + "chai": "^4.3.7", "chai-bn": "^0.3.1", - "dotenv": "^16.0.0", - "fast-glob": "^3.2.11", - "mocha": "^9.1.3", + "dotenv": "^16.0.3", + "fast-glob": "^3.2.12", + "mocha": "^10.2.0", "prando": "^6.0.1", - "prettier": "^2.6.2", - "ton": "^12.1.3", - "ton-contract-executor": "^0.4.8", + "prettier": "^2.8.2", + "ton": "^13.3.0", + "ton-contract-executor": "^0.6.2", "ton-crypto": "^3.1.0", - "ts-node": "^10.4.0", - "typescript": "^4.5.4" + "ts-node": "^10.9.1", + "typescript": "^4.9.4" }, "prettier": { "printWidth": 180 @@ -46,6 +46,6 @@ "node": ">=16.15.0" }, "dependencies": { - "semver": "^7.3.7" + "semver": "^7.3.8" } } From 12dab989933092619262b642515750ebabeaa6e5 Mon Sep 17 00:00:00 2001 From: Shahar Yakir Date: Tue, 10 Jan 2023 11:50:37 +0200 Subject: [PATCH 2/7] deploy --- build/_build.ts | 107 +++------------------- build/_deploy.ts | 71 ++++++++------- build/main.deploy.ts | 16 ++-- contracts/main.ts | 5 +- package-lock.json | 212 ++++++++++++++++++++++++++++++++----------- package.json | 7 +- test/helpers.ts | 37 ++++---- 7 files changed, 240 insertions(+), 215 deletions(-) diff --git a/build/_build.ts b/build/_build.ts index 7e745f0..6e29626 100644 --- a/build/_build.ts +++ b/build/_build.ts @@ -9,44 +9,14 @@ import fs from "fs"; import path from "path"; import process from "process"; -import child_process from "child_process"; import glob from "fast-glob"; -import { Cell } from "ton"; -import semver from "semver"; +import { Cell } from "ton-core"; +import { compileFunc } from "@ton-community/func-js"; async function main() { console.log("================================================================="); console.log("Build script running, let's find some FunC contracts to compile.."); - // if we have an explicit bin directory, use the executables there (needed for glitch.com) - if (fs.existsSync("bin")) { - process.env.PATH = path.join(__dirname, "..", "bin") + path.delimiter + process.env.PATH; - process.env.FIFTPATH = path.join(__dirname, "..", "bin", "fiftlib"); - } - - // make sure func compiler is available - const minSupportFunc = "0.2.0"; - try { - const funcVersion = child_process - .execSync("func -V") - .toString() - .match(/semantic version: v([0-9.]+)/)?.[1]; - if (!semver.gte(semver.coerce(funcVersion) ?? "", minSupportFunc)) throw new Error("Nonexistent version or outdated"); - } catch (e) { - console.log(`\nFATAL ERROR: 'func' with version >= ${minSupportFunc} executable is not found, is it installed and in path?`); - process.exit(1); - } - - // make sure fift cli is available - let fiftVersion = ""; - try { - fiftVersion = child_process.execSync("fift -V").toString(); - } catch (e) {} - if (!fiftVersion.includes("Fift build information")) { - console.log("\nFATAL ERROR: 'fift' executable is not found, is it installed and in path?"); - process.exit(1); - } - // go over all the root contracts in the contracts directory const rootContracts = glob.sync(["contracts/*.fc", "contracts/*.func"]); for (const rootContract of rootContracts) { @@ -54,27 +24,6 @@ async function main() { console.log(`\n* Found root contract '${rootContract}' - let's compile it:`); const contractName = path.parse(rootContract).name; - // delete existing build artifacts - const fiftArtifact = `build/${contractName}.fif`; - if (fs.existsSync(fiftArtifact)) { - console.log(` - Deleting old build artifact '${fiftArtifact}'`); - fs.unlinkSync(fiftArtifact); - } - const mergedFuncArtifact = `build/${contractName}.merged.fc`; - if (fs.existsSync(mergedFuncArtifact)) { - console.log(` - Deleting old build artifact '${mergedFuncArtifact}'`); - fs.unlinkSync(mergedFuncArtifact); - } - const fiftCellArtifact = `build/${contractName}.cell.fif`; - if (fs.existsSync(fiftCellArtifact)) { - console.log(` - Deleting old build artifact '${fiftCellArtifact}'`); - fs.unlinkSync(fiftCellArtifact); - } - const cellArtifact = `build/${contractName}.cell`; - if (fs.existsSync(cellArtifact)) { - console.log(` - Deleting old build artifact '${cellArtifact}'`); - fs.unlinkSync(cellArtifact); - } const hexArtifact = `build/${contractName}.compiled.json`; if (fs.existsSync(hexArtifact)) { console.log(` - Deleting old build artifact '${hexArtifact}'`); @@ -99,61 +48,27 @@ async function main() { // run the func compiler to create a fif file console.log(` - Trying to compile '${rootContract}' with 'func' compiler..`); - let buildErrors: string; - try { - buildErrors = child_process.execSync(`func -APS -o build/${contractName}.fif ${rootContract} 2>&1 1>node_modules/.tmpfunc`).toString(); - } catch (e) { - buildErrors = e.stdout.toString(); - } - if (buildErrors.length > 0) { - console.log(" - OH NO! Compilation Errors! The compiler output was:"); - console.log(`\n${buildErrors}`); - process.exit(1); - } else { - console.log(" - Compilation successful!"); - } - - // make sure fif build artifact was created - if (!fs.existsSync(fiftArtifact)) { - console.log(` - For some reason '${fiftArtifact}' was not created!`); - process.exit(1); - } else { - console.log(` - Build artifact created '${fiftArtifact}'`); - } - // create a temp cell.fif that will generate the cell - let fiftCellSource = '"Asm.fif" include\n'; - fiftCellSource += `${fs.readFileSync(fiftArtifact).toString()}\n`; - fiftCellSource += `boc>B "${cellArtifact}" B>file`; - fs.writeFileSync(fiftCellArtifact, fiftCellSource); + const compileResult = await compileFunc({ + targets: [rootContract], + sources: (x) => fs.readFileSync(x).toString("utf8"), + }); - // run fift cli to create the cell - try { - child_process.execSync(`fift ${fiftCellArtifact}`); - } catch (e) { - console.log("FATAL ERROR: 'fift' executable failed, is FIFTPATH env variable defined?"); + if (compileResult.status === "error") { + console.log(" - OH NO! Compilation Errors! The compiler output was:"); + console.log(`\n${compileResult.message}`); process.exit(1); } - // Remove intermediary - fs.unlinkSync(fiftCellArtifact); - - // make sure cell build artifact was created - if (!fs.existsSync(cellArtifact)) { - console.log(` - For some reason, intermediary file '${cellArtifact}' was not created!`); - process.exit(1); - } + console.log(" - Compilation successful!"); fs.writeFileSync( hexArtifact, JSON.stringify({ - hex: Cell.fromBoc(fs.readFileSync(cellArtifact))[0].toBoc().toString("hex"), + hex: Cell.fromBoc(Buffer.from(compileResult.codeBoc, "base64"))[0].toBoc().toString("hex"), }) ); - // Remove intermediary - fs.unlinkSync(cellArtifact); - // make sure hex artifact was created if (!fs.existsSync(hexArtifact)) { console.log(` - For some reason '${hexArtifact}' was not created!`); diff --git a/build/_deploy.ts b/build/_deploy.ts index 876dd3a..8ce3b0e 100644 --- a/build/_deploy.ts +++ b/build/_deploy.ts @@ -4,9 +4,7 @@ // ./build/ - directory for build artifacts (mycontract.compiled.json) and deploy init data scripts (mycontract.deploy.ts) // ./.env - config file with DEPLOYER_MNEMONIC - secret mnemonic of deploying wallet (will be created if not found) -import axios from "axios"; -import axiosThrottle from "axios-request-throttle"; -axiosThrottle.use(axios, { requestsPerSecond: 0.5 }); // required since toncenter jsonRPC limits to 1 req/sec without API key +import { getHttpEndpoint } from "@orbs-network/ton-access"; import dotenv from "dotenv"; dotenv.config(); @@ -14,8 +12,8 @@ dotenv.config(); import fs from "fs"; import path from "path"; import glob from "fast-glob"; -import { Address, Cell, CellMessage, CommonMessageInfo, fromNano, InternalMessage, StateInit, toNano } from "ton"; -import { TonClient, WalletContract, WalletV3R2Source, contractAddress, SendMode } from "ton"; +import { Address, Cell, fromNano, toNano, contractAddress, internal } from "ton-core"; +import { TonClient, SendMode, WalletContractV3R2 } from "ton"; import { mnemonicNew, mnemonicToWalletKey } from "ton-crypto"; async function main() { @@ -32,9 +30,10 @@ async function main() { } // initialize globals - const client = new TonClient({ endpoint: `https://${isTestnet ? "testnet." : ""}toncenter.com/api/v2/jsonRPC` }); + const endpoint = await getHttpEndpoint({ network: isTestnet ? "testnet" : "mainnet" }); + const client = new TonClient({ endpoint }); const deployerWalletType = "org.ton.wallets.v3.r2"; // also see WalletV3R2Source class used below - const newContractFunding = toNano(0.02); // this will be (almost in full) the balance of a new deployed contract and allow it to pay rent + const newContractFunding = toNano("0.02"); // this will be (almost in full) the balance of a new deployed contract and allow it to pay rent const workchain = 0; // normally 0, only special contracts should be deployed to masterchain (-1) // make sure we have a wallet mnemonic to deploy from (or create one if not found) @@ -53,10 +52,16 @@ async function main() { // open the wallet and make sure it has enough TON const walletKey = await mnemonicToWalletKey(deployerMnemonic.split(" ")); - const walletContract = WalletContract.create(client, WalletV3R2Source.create({ publicKey: walletKey.publicKey, workchain })); - console.log(` - Wallet address used to deploy from is: ${walletContract.address.toFriendly()}`); - const walletBalance = await client.getBalance(walletContract.address); - if (walletBalance.lt(toNano(0.2))) { + const wallet = client.open( + WalletContractV3R2.create({ + publicKey: walletKey.publicKey, + workchain: 0, + }) + ); + + console.log(` - Wallet address used to deploy from is: ${wallet.address.toString()}`); + const walletBalance = await client.getBalance(wallet.address); + if (walletBalance < toNano("0.2")) { console.log(` - ERROR: Wallet has less than 0.2 TON for gas (${fromNano(walletBalance)} TON), please send some TON for gas first`); process.exit(1); } else { @@ -91,52 +96,52 @@ async function main() { console.log(` - ERROR: '${hexArtifact}' not found, did you build?`); process.exit(1); } - const initCodeCell = Cell.fromBoc(JSON.parse(fs.readFileSync(hexArtifact).toString()).hex)[0]; + const initCodeCell = Cell.fromBoc(Buffer.from(JSON.parse(fs.readFileSync(hexArtifact).toString()).hex, "hex"))[0]; // make sure the contract was not already deployed - const newContractAddress = contractAddress({ workchain, initialData: initDataCell, initialCode: initCodeCell }); - console.log(` - Based on your init code+data, your new contract address is: ${newContractAddress.toFriendly()}`); + const newContractAddress = contractAddress(0, { code: initCodeCell, data: initDataCell }); + console.log(` - Based on your init code+data, your new contract address is: ${newContractAddress.toString()}`); if (await client.isContractDeployed(newContractAddress)) { console.log(` - Looks like the contract is already deployed in this address, skipping deployment`); - await performPostDeploymentTest(rootContract, deployInitScript, walletContract, walletKey.secretKey, newContractAddress); + await performPostDeploymentTest(rootContract, deployInitScript, wallet, client, newContractAddress, walletKey.secretKey); continue; } // deploy by sending an internal message to the deploying wallet console.log(` - Let's deploy the contract on-chain..`); - const seqno = await walletContract.getSeqNo(); - const transfer = walletContract.createTransfer({ + const seqno = await wallet.getSeqno(); + const transfer = wallet.createTransfer({ secretKey: walletKey.secretKey, seqno: seqno, sendMode: SendMode.PAY_GAS_SEPARATLY + SendMode.IGNORE_ERRORS, - order: new InternalMessage({ - to: newContractAddress, - value: newContractFunding, - bounce: false, - body: new CommonMessageInfo({ - stateInit: new StateInit({ data: initDataCell, code: initCodeCell }), - body: initMessageCell !== null ? new CellMessage(initMessageCell) : null, + messages: [ + internal({ + to: newContractAddress, + value: newContractFunding, + bounce: false, + init: { data: initDataCell, code: initCodeCell }, + body: initMessageCell, }), - }), + ], }); - await client.sendExternalMessage(walletContract, transfer); + await client.sendExternalMessage(wallet, transfer); console.log(` - Deploy transaction sent successfully`); // make sure that the contract was deployed - console.log(` - Block explorer link: https://${process.env.TESTNET ? "test." : ""}tonwhales.com/explorer/address/${newContractAddress.toFriendly()}`); + console.log(` - Block explorer link: https://${process.env.TESTNET ? "testnet." : ""}tonscan.org/address/${newContractAddress.toString()}`); console.log(` - Waiting up to 20 seconds to check if the contract was actually deployed..`); for (let attempt = 0; attempt < 10; attempt++) { await sleep(2000); - const seqnoAfter = await walletContract.getSeqNo(); + const seqnoAfter = await wallet.getSeqno(); if (seqnoAfter > seqno) break; } if (await client.isContractDeployed(newContractAddress)) { - console.log(` - SUCCESS! Contract deployed successfully to address: ${newContractAddress.toFriendly()}`); + console.log(` - SUCCESS! Contract deployed successfully to address: ${newContractAddress.toString()}`); const contractBalance = await client.getBalance(newContractAddress); console.log(` - New contract balance is now ${fromNano(contractBalance)} TON, make sure it has enough to pay rent`); - await performPostDeploymentTest(rootContract, deployInitScript, walletContract, walletKey.secretKey, newContractAddress); + await performPostDeploymentTest(rootContract, deployInitScript, wallet, client, newContractAddress); } else { - console.log(` - FAILURE! Contract address still looks uninitialized: ${newContractAddress.toFriendly()}`); + console.log(` - FAILURE! Contract address still looks uninitialized: ${newContractAddress.toString()}`); } } @@ -151,11 +156,11 @@ function sleep(ms: number) { return new Promise((resolve) => setTimeout(resolve, ms)); } -async function performPostDeploymentTest(rootContract: string, deployInitScript: any, walletContract: WalletContract, secretKey: Buffer, newContractAddress: Address) { +async function performPostDeploymentTest(rootContract: string, deployInitScript: any, wallet: any, client: TonClient, newContractAddress: Address, secretKey: Buffer) { if (typeof deployInitScript.postDeployTest !== "function") { console.log(` - Not running a post deployment test, '${rootContract}' does not have 'postDeployTest()' function`); return; } console.log(` - Running a post deployment test:`); - await deployInitScript.postDeployTest(walletContract, secretKey, newContractAddress); + await deployInitScript.postDeployTest(wallet, client, newContractAddress, secretKey); } diff --git a/build/main.deploy.ts b/build/main.deploy.ts index e097b7c..74cf1cf 100644 --- a/build/main.deploy.ts +++ b/build/main.deploy.ts @@ -1,5 +1,6 @@ import * as main from "../contracts/main"; -import { Address, toNano, TupleSlice, WalletContract } from "ton"; +import { Address, toNano, TupleReader } from "ton-core"; +import { WalletContractV3R2, TonClient } from "ton"; import { sendInternalMessageWithWallet } from "../test/helpers"; // return the init Cell of the contract storage (according to load_data() contract method) @@ -16,16 +17,17 @@ export function initMessage() { } // optional end-to-end sanity test for the actual on-chain contract to see it is actually working on-chain -export async function postDeployTest(walletContract: WalletContract, secretKey: Buffer, contractAddress: Address) { - const call = await walletContract.client.callGetMethod(contractAddress, "counter"); - const counter = new TupleSlice(call.stack).readBigNumber(); +export async function postDeployTest(wallet: any, client: TonClient, contractAddress: Address, secretKey: Buffer) { + const call = await client.callGetMethod(contractAddress, "counter"); + + const counter = call.stack.readBigNumber(); console.log(` # Getter 'counter' = ${counter.toString()}`); const message = main.increment(); - await sendInternalMessageWithWallet({ walletContract, secretKey, to: contractAddress, value: toNano(0.02), body: message }); + await sendInternalMessageWithWallet({ wallet, client, to: contractAddress, value: toNano("0.02"), body: message, secretKey }); console.log(` # Sent 'increment' op message`); - const call2 = await walletContract.client.callGetMethod(contractAddress, "counter"); - const counter2 = new TupleSlice(call2.stack).readBigNumber(); + const call2 = await client.callGetMethod(contractAddress, "counter"); + const counter2 = call2.stack.readBigNumber(); console.log(` # Getter 'counter' = ${counter2.toString()}`); } diff --git a/contracts/main.ts b/contracts/main.ts index c1eac59..b30a074 100644 --- a/contracts/main.ts +++ b/contracts/main.ts @@ -1,5 +1,4 @@ -import BN from "bn.js"; -import { Cell, beginCell, Address } from "ton"; +import { Cell, beginCell, Address } from "ton-core"; // encode contract storage according to save_data() contract method export function data(params: { ownerAddress: Address; counter: number }): Cell { @@ -16,7 +15,7 @@ export function deposit(): Cell { return beginCell().storeUint(0x47d54391, 32).storeUint(0, 64).endCell(); } -export function withdraw(params: { withdrawAmount: BN }): Cell { +export function withdraw(params: { withdrawAmount: bigint }): Cell { return beginCell().storeUint(0x41836980, 32).storeUint(0, 64).storeCoins(params.withdrawAmount).endCell(); } diff --git a/package-lock.json b/package-lock.json index 85bcae4..ea58818 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,10 +10,11 @@ "hasInstallScript": true, "license": "MIT", "dependencies": { - "semver": "^7.3.8" + "@orbs-network/ton-access": "^2.2.2" }, "devDependencies": { "@swc/core": "^1.3.25", + "@ton-community/func-js": "^0.4.0", "@types/bn.js": "^5.1.1", "@types/chai": "^4.3.4", "@types/mocha": "^10.0.1", @@ -108,6 +109,14 @@ "node": ">= 8" } }, + "node_modules/@orbs-network/ton-access": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@orbs-network/ton-access/-/ton-access-2.2.2.tgz", + "integrity": "sha512-ygcbNxqZez2CpDMFhMTgbNAm7MGoDCbF1Zbp/liUAWqrKjytUDAoAAVXIWulhl0exWaacn7YWI75GNt8ouxjwA==", + "dependencies": { + "isomorphic-fetch": "^3.0.0" + } + }, "node_modules/@scarf/scarf": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.1.tgz", @@ -309,6 +318,31 @@ "optional": true, "peer": true }, + "node_modules/@ton-community/func-js": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@ton-community/func-js/-/func-js-0.4.0.tgz", + "integrity": "sha512-F0/+HkWch0Kli4IGdQJkTbEV75cfEAuzi3Z63LZCNGbUX8T4s1VikZetLVciJxIGPkr7hmWVlfQEmRz6okci3A==", + "dev": true, + "dependencies": { + "@ton-community/func-js-bin": "0.4.0", + "arg": "^5.0.2" + }, + "bin": { + "func-js": "dist/cli.js" + } + }, + "node_modules/@ton-community/func-js-bin": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@ton-community/func-js-bin/-/func-js-bin-0.4.0.tgz", + "integrity": "sha512-M8+nE6rfdxfpgiBwtMSlRQrXB3go9cYrk36SKFgk3s14h+yA8PYCmBCYXRlkOxXgp4AlcEJ/aKTjIhidqVg9rw==", + "dev": true + }, + "node_modules/@ton-community/func-js/node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, "node_modules/@tsconfig/node10": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", @@ -1076,6 +1110,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -1137,17 +1180,6 @@ "get-func-name": "^2.0.0" } }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -1255,6 +1287,25 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -1472,20 +1523,6 @@ } ] }, - "node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -1636,6 +1673,11 @@ "jssha": "3.2.0" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "node_modules/ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", @@ -1722,6 +1764,25 @@ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", @@ -1760,11 +1821,6 @@ "node": ">=10" } }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -1887,6 +1943,14 @@ "fastq": "^1.6.0" } }, + "@orbs-network/ton-access": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@orbs-network/ton-access/-/ton-access-2.2.2.tgz", + "integrity": "sha512-ygcbNxqZez2CpDMFhMTgbNAm7MGoDCbF1Zbp/liUAWqrKjytUDAoAAVXIWulhl0exWaacn7YWI75GNt8ouxjwA==", + "requires": { + "isomorphic-fetch": "^3.0.0" + } + }, "@scarf/scarf": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.1.tgz", @@ -1989,6 +2053,30 @@ "optional": true, "peer": true }, + "@ton-community/func-js": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@ton-community/func-js/-/func-js-0.4.0.tgz", + "integrity": "sha512-F0/+HkWch0Kli4IGdQJkTbEV75cfEAuzi3Z63LZCNGbUX8T4s1VikZetLVciJxIGPkr7hmWVlfQEmRz6okci3A==", + "dev": true, + "requires": { + "@ton-community/func-js-bin": "0.4.0", + "arg": "^5.0.2" + }, + "dependencies": { + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + } + } + }, + "@ton-community/func-js-bin": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@ton-community/func-js-bin/-/func-js-bin-0.4.0.tgz", + "integrity": "sha512-M8+nE6rfdxfpgiBwtMSlRQrXB3go9cYrk36SKFgk3s14h+yA8PYCmBCYXRlkOxXgp4AlcEJ/aKTjIhidqVg9rw==", + "dev": true + }, "@tsconfig/node10": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", @@ -2565,6 +2653,15 @@ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, + "isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "requires": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -2608,14 +2705,6 @@ "get-func-name": "^2.0.0" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -2699,6 +2788,14 @@ "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", "dev": true }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -2825,14 +2922,6 @@ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "requires": { - "lru-cache": "^6.0.0" - } - }, "serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", @@ -2952,6 +3041,11 @@ "jssha": "3.2.0" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", @@ -3005,6 +3099,25 @@ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", @@ -3034,11 +3147,6 @@ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", diff --git a/package.json b/package.json index 6115ba8..207733c 100644 --- a/package.json +++ b/package.json @@ -14,13 +14,10 @@ }, "devDependencies": { "@swc/core": "^1.3.25", - "@types/bn.js": "^5.1.1", + "@ton-community/func-js": "^0.4.0", "@types/chai": "^4.3.4", "@types/mocha": "^10.0.1", - "@types/semver": "^7.3.13", - "axios-request-throttle": "^1.0.0", "chai": "^4.3.7", - "chai-bn": "^0.3.1", "dotenv": "^16.0.3", "fast-glob": "^3.2.12", "mocha": "^10.2.0", @@ -46,6 +43,6 @@ "node": ">=16.15.0" }, "dependencies": { - "semver": "^7.3.8" + "@orbs-network/ton-access": "^2.2.2" } } diff --git a/test/helpers.ts b/test/helpers.ts index 7874944..80b5d59 100644 --- a/test/helpers.ts +++ b/test/helpers.ts @@ -1,7 +1,8 @@ import BN from "bn.js"; -import { Address, Cell, CellMessage, InternalMessage, CommonMessageInfo, WalletContract, SendMode, Wallet } from "ton"; +import { Address, Cell, internal, SendMode } from "ton-core"; import { SmartContract } from "ton-contract-executor"; import Prando from "prando"; +import { WalletContractV3R2, TonClient } from "ton"; export const zeroAddress = new Address(0, Buffer.alloc(32, 0)); @@ -15,14 +16,13 @@ export function randomAddress(seed: string, workchain?: number) { } // used with ton-contract-executor (unit tests) to sendInternalMessage easily -export function internalMessage(params: { from?: Address; to?: Address; value?: BN; bounce?: boolean; body?: Cell }) { - const message = params.body ? new CellMessage(params.body) : undefined; - return new InternalMessage({ +export function internalMessage(params: { from?: Address; to?: Address; value?: string; bounce?: boolean; body?: Cell }) { + return internal({ from: params.from ?? randomAddress("sender"), to: params.to ?? zeroAddress, - value: params.value ?? 0, + value: params.value ?? "0", bounce: params.bounce ?? true, - body: new CommonMessageInfo({ body: message }), + body: params.body, }); } @@ -34,26 +34,25 @@ export function setBalance(contract: SmartContract, balance: BN) { } // helper for end-to-end on-chain tests (normally post deploy) to allow sending InternalMessages to contracts using a wallet -export async function sendInternalMessageWithWallet(params: { walletContract: WalletContract; secretKey: Buffer; to: Address; value: BN; bounce?: boolean; body?: Cell }) { - const message = params.body ? new CellMessage(params.body) : undefined; - const seqno = await params.walletContract.getSeqNo(); - const transfer = params.walletContract.createTransfer({ +export async function sendInternalMessageWithWallet(params: { wallet: any; client: TonClient; to: Address; value: bigint; bounce?: boolean; body?: Cell; secretKey: Buffer }) { + const seqno = await params.wallet.getSeqno(); + const transfer = params.wallet.createTransfer({ secretKey: params.secretKey, seqno: seqno, sendMode: SendMode.PAY_GAS_SEPARATLY + SendMode.IGNORE_ERRORS, - order: new InternalMessage({ - to: params.to, - value: params.value, - bounce: params.bounce ?? false, - body: new CommonMessageInfo({ - body: message, + messages: [ + internal({ + to: params.to, + value: params.value, + bounce: params.bounce ?? false, + body: params.body, }), - }), + ], }); - await params.walletContract.client.sendExternalMessage(params.walletContract, transfer); + await params.client.sendExternalMessage(params.wallet, transfer); for (let attempt = 0; attempt < 10; attempt++) { await sleep(2000); - const seqnoAfter = await params.walletContract.getSeqNo(); + const seqnoAfter = await params.wallet.getSeqno(); if (seqnoAfter > seqno) return; } } From 73c7e62afe3e154bb847e4ff051cbd79789ab179 Mon Sep 17 00:00:00 2001 From: Shahar Yakir Date: Tue, 10 Jan 2023 11:59:41 +0200 Subject: [PATCH 3/7] in prog --- build/_deploy.ts | 2 +- test/counter.spec.ts | 2 +- test/deposit.spec.ts | 26 +++++++++++++------------- test/helpers.ts | 8 ++++---- test/ownership.spec.ts | 2 +- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/build/_deploy.ts b/build/_deploy.ts index 8ce3b0e..0d597a1 100644 --- a/build/_deploy.ts +++ b/build/_deploy.ts @@ -139,7 +139,7 @@ async function main() { console.log(` - SUCCESS! Contract deployed successfully to address: ${newContractAddress.toString()}`); const contractBalance = await client.getBalance(newContractAddress); console.log(` - New contract balance is now ${fromNano(contractBalance)} TON, make sure it has enough to pay rent`); - await performPostDeploymentTest(rootContract, deployInitScript, wallet, client, newContractAddress); + await performPostDeploymentTest(rootContract, deployInitScript, wallet, client, newContractAddress, walletKey.secretKey); } else { console.log(` - FAILURE! Contract address still looks uninitialized: ${newContractAddress.toString()}`); } diff --git a/test/counter.spec.ts b/test/counter.spec.ts index c58a612..74c34e5 100644 --- a/test/counter.spec.ts +++ b/test/counter.spec.ts @@ -15,7 +15,7 @@ describe("Counter tests", () => { beforeEach(async () => { contract = await SmartContract.fromCell( - Cell.fromBoc(hex)[0], // code cell from build output + Cell.fromBoc(Buffer.from(hex, "hex"))[0], // code cell from build output main.data({ ownerAddress: randomAddress("owner"), counter: 17, diff --git a/test/deposit.spec.ts b/test/deposit.spec.ts index 1505982..3330041 100644 --- a/test/deposit.spec.ts +++ b/test/deposit.spec.ts @@ -15,7 +15,7 @@ describe("Deposit and withdraw tests", () => { beforeEach(async () => { contract = await SmartContract.fromCell( - Cell.fromBoc(hex)[0], // code cell from build output + Cell.fromBoc(Buffer.from(hex, "base64"))[0], // code cell from build output main.data({ ownerAddress: randomAddress("owner"), counter: 17, @@ -24,32 +24,32 @@ describe("Deposit and withdraw tests", () => { }); it("should get balance", async () => { - setBalance(contract, toNano(37)); + setBalance(contract, toNano('37)')); const call = await contract.invokeGetMethod("balance", []); - expect(call.result[0]).to.be.bignumber.equal(toNano(37)); + expect(call.result[0]).to.be.equal(toNano('37)')); }); it("should allow the owner to withdraw when balance is high", async () => { - setBalance(contract, toNano(37)); + setBalance(contract, toNano('37)')); const send = await contract.sendInternalMessage( internalMessage({ from: randomAddress("owner"), - body: main.withdraw({ withdrawAmount: toNano(20) }), + body: main.withdraw({ withdrawAmount: toNano('20)') }), }) ); expect(send.type).to.equal("success"); expect(send.actionList).to.have.lengthOf(1); const resultMessage = (send.actionList[0] as any)?.message?.info; expect(resultMessage?.dest?.equals(randomAddress("owner"))).to.equal(true); - expect(resultMessage?.value?.coins).to.be.bignumber.equal(toNano(20)); + expect(resultMessage?.value?.coins).to.be.equal(toNano('20)')); }); it("should prevent others from withdrawing when balance is high", async () => { - setBalance(contract, toNano(37)); + setBalance(contract, toNano('37)')); const send = await contract.sendInternalMessage( internalMessage({ from: randomAddress("notowner"), - body: main.withdraw({ withdrawAmount: toNano(20) }), + body: main.withdraw({ withdrawAmount: toNano('20)') }), }) ); expect(send.type).to.equal("failed"); @@ -57,11 +57,11 @@ describe("Deposit and withdraw tests", () => { }); it("should prevent the owner to withdraw when balance is low", async () => { - setBalance(contract, toNano(10)); + setBalance(contract, toNano('10)')); const send = await contract.sendInternalMessage( internalMessage({ from: randomAddress("owner"), - body: main.withdraw({ withdrawAmount: toNano(20) }), + body: main.withdraw({ withdrawAmount: toNano('20)') }), }) ); expect(send.type).to.equal("failed"); @@ -69,17 +69,17 @@ describe("Deposit and withdraw tests", () => { }); it("should leave enough balance for rent", async () => { - setBalance(contract, toNano(20)); + setBalance(contract, toNano('20)')); const send = await contract.sendInternalMessage( internalMessage({ from: randomAddress("owner"), - body: main.withdraw({ withdrawAmount: toNano(20) }), + body: main.withdraw({ withdrawAmount: toNano('20)') }), }) ); expect(send.type).to.equal("success"); expect(send.actionList).to.have.lengthOf(1); const resultMessage = (send.actionList[0] as any)?.message?.info; expect(resultMessage?.dest?.equals(randomAddress("owner"))).to.equal(true); - expect(resultMessage?.value?.coins).to.be.bignumber.equal(toNano(20).sub(toNano(0.01))); // min_tons_for_storage in contracts/imports/constants.fc + expect(resultMessage?.value?.coins).to.be.equal(toNano('20)') - (toNano('0.01)'))); // min_tons_for_storage in contracts/imports/constants.fc }); }); diff --git a/test/helpers.ts b/test/helpers.ts index 80b5d59..d5fdceb 100644 --- a/test/helpers.ts +++ b/test/helpers.ts @@ -2,7 +2,7 @@ import BN from "bn.js"; import { Address, Cell, internal, SendMode } from "ton-core"; import { SmartContract } from "ton-contract-executor"; import Prando from "prando"; -import { WalletContractV3R2, TonClient } from "ton"; +import { TonClient } from "ton"; export const zeroAddress = new Address(0, Buffer.alloc(32, 0)); @@ -18,7 +18,7 @@ export function randomAddress(seed: string, workchain?: number) { // used with ton-contract-executor (unit tests) to sendInternalMessage easily export function internalMessage(params: { from?: Address; to?: Address; value?: string; bounce?: boolean; body?: Cell }) { return internal({ - from: params.from ?? randomAddress("sender"), + // from: params.from ?? randomAddress("sender"), to: params.to ?? zeroAddress, value: params.value ?? "0", bounce: params.bounce ?? true, @@ -27,9 +27,9 @@ export function internalMessage(params: { from?: Address; to?: Address; value?: } // temp fix until ton-contract-executor (unit tests) remembers c7 value between calls -export function setBalance(contract: SmartContract, balance: BN) { +export function setBalance(contract: SmartContract, balance: bigint) { contract.setC7Config({ - balance: balance.toNumber(), + balance: new BN(balance.toString()), }); } diff --git a/test/ownership.spec.ts b/test/ownership.spec.ts index b6e18c6..87e282f 100644 --- a/test/ownership.spec.ts +++ b/test/ownership.spec.ts @@ -15,7 +15,7 @@ describe("Transfer ownership tests", () => { beforeEach(async () => { contract = await SmartContract.fromCell( - Cell.fromBoc(hex)[0], // code cell from build output + Cell.fromBoc(Buffer.from(hex, "hex"))[0], // code cell from build output main.data({ ownerAddress: randomAddress("owner"), counter: 17, From 60865d80119bd910c421cc1cc9ed515900d59526 Mon Sep 17 00:00:00 2001 From: Shahar Yakir Date: Tue, 10 Jan 2023 12:08:39 +0200 Subject: [PATCH 4/7] in prog --- package-lock.json | 227 ++++++++++++----------------------------- package.json | 3 +- test/ownership.spec.ts | 5 +- 3 files changed, 72 insertions(+), 163 deletions(-) diff --git a/package-lock.json b/package-lock.json index ea58818..d269acc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,18 +10,15 @@ "hasInstallScript": true, "license": "MIT", "dependencies": { - "@orbs-network/ton-access": "^2.2.2" + "@orbs-network/ton-access": "^2.2.2", + "@ton-community/tx-emulator": "github:ton-community/tx-emulator#44475b3" }, "devDependencies": { "@swc/core": "^1.3.25", "@ton-community/func-js": "^0.4.0", - "@types/bn.js": "^5.1.1", "@types/chai": "^4.3.4", "@types/mocha": "^10.0.1", - "@types/semver": "^7.3.13", - "axios-request-throttle": "^1.0.0", "chai": "^4.3.7", - "chai-bn": "^0.3.1", "dotenv": "^16.0.3", "fast-glob": "^3.2.12", "mocha": "^10.2.0", @@ -121,7 +118,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.1.tgz", "integrity": "sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ==", - "dev": true, "hasInstallScript": true }, "node_modules/@swc/core": { @@ -343,6 +339,30 @@ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", "dev": true }, + "node_modules/@ton-community/tx-emulator": { + "version": "0.1.0", + "resolved": "git+ssh://git@github.com/ton-community/tx-emulator.git#44475b3a29fa3a4a52ede216b6e457e58db7beb3", + "license": "MIT", + "dependencies": { + "bn.js": "^5.2.1", + "ton-core": "^0.37.0", + "ton-crypto": "^3.2.0" + }, + "peerDependencies": { + "ton": "^13.3.0" + } + }, + "node_modules/@ton-community/tx-emulator/node_modules/ton-core": { + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.37.0.tgz", + "integrity": "sha512-NsEAdu7iwUEMEl3OOfKpYkYakFe52nW1huhdGe3fdxchXpO50jyOlXiATeiC8tlCvP/RxiODtOMnpYCiPOQ6Jw==", + "dependencies": { + "symbol.inspect": "1.0.1" + }, + "peerDependencies": { + "ton-crypto": ">=3.2.0" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", @@ -367,25 +387,6 @@ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "dev": true }, - "node_modules/@types/axios": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@types/axios/-/axios-0.14.0.tgz", - "integrity": "sha1-7CMA++fX3d1+udOr+HmZlkyvzkY=", - "deprecated": "This is a stub types definition for axios (https://github.com/mzabriskie/axios). axios provides its own type definitions, so you don't need @types/axios installed!", - "dev": true, - "dependencies": { - "axios": "*" - } - }, - "node_modules/@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/chai": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", @@ -402,13 +403,8 @@ "version": "17.0.29", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.29.tgz", "integrity": "sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true + "dev": true, + "peer": true }, "node_modules/acorn": { "version": "8.7.1", @@ -502,24 +498,10 @@ "version": "0.25.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", - "dev": true, "dependencies": { "follow-redirects": "^1.14.7" } }, - "node_modules/axios-request-throttle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/axios-request-throttle/-/axios-request-throttle-1.0.0.tgz", - "integrity": "sha512-NYh7kZkgSJZyIohqrvQEzr4uygqbxXb769kbphkwgYNAJm5eDg33mqHLA2pwHKC1uqbTfNpmjmzWdUdo+ptBWg==", - "dev": true, - "dependencies": { - "@types/axios": "^0.14.0", - "promise-throttle": "^1.1.2" - }, - "peerDependencies": { - "axios": "*" - } - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -536,10 +518,9 @@ } }, "node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -599,16 +580,6 @@ "node": ">=4" } }, - "node_modules/chai-bn": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/chai-bn/-/chai-bn-0.3.1.tgz", - "integrity": "sha512-vuzEy0Cb+k8zqi2SHOmvZdRSbKcSOJfS1Nv8+6YDJIyCzfxkTCHLNRyjRIoRJ3WJtYb/c7OHjrvLoGeyO4A/gA==", - "dev": true, - "peerDependencies": { - "bn.js": "^5.0.0", - "chai": "^4.0.0" - } - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -717,8 +688,7 @@ "node_modules/dataloader": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", - "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", - "dev": true + "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==" }, "node_modules/debug": { "version": "4.3.4", @@ -878,7 +848,6 @@ "version": "1.14.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", - "dev": true, "funding": [ { "type": "individual", @@ -897,8 +866,7 @@ "node_modules/fp-ts": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.12.1.tgz", - "integrity": "sha512-oxvgqUYR6O9VkKXrxkJ0NOyU0FrE705MeqgBUMEPWyTu6Pwn768cJbHChw2XOBlgFLKfIHxjr2OOBFpv2mUGZw==", - "dev": true + "integrity": "sha512-oxvgqUYR6O9VkKXrxkJ0NOyU0FrE705MeqgBUMEPWyTu6Pwn768cJbHChw2XOBlgFLKfIHxjr2OOBFpv2mUGZw==" }, "node_modules/fs.realpath": { "version": "1.0.0", @@ -1020,7 +988,6 @@ "version": "2.2.16", "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-2.2.16.tgz", "integrity": "sha512-y5TTSa6VP6le0hhmIyN0dqEXkrZeJLeC5KApJq6VLci3UEKF80lZ+KuoUs02RhBxNWlrqSNxzfI7otLX1Euv8Q==", - "dev": true, "peerDependencies": { "fp-ts": "^2.5.0" } @@ -1029,7 +996,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/io-ts-reporters/-/io-ts-reporters-2.0.1.tgz", "integrity": "sha512-RVpLstYBsmTGgCW9wJ5KVyN/eRnRUDp87Flt4D1O3aJ7oAnd8csq8aXuu7ZeNK8qEDKmjUl9oUuzfwikaNAMKQ==", - "dev": true, "dependencies": { "@scarf/scarf": "^1.1.1" }, @@ -1135,7 +1101,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/jssha/-/jssha-3.2.0.tgz", "integrity": "sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q==", - "dev": true, "engines": { "node": "*" } @@ -1414,12 +1379,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/promise-throttle": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/promise-throttle/-/promise-throttle-1.1.2.tgz", - "integrity": "sha512-dij7vjyXNewuuN/gyr+TX2KRjw48mbV5FEtgyXaIoJjGYAKT0au23/voNvy9eS4UNJjx2KUdEcO5Yyfc1h7vWQ==", - "dev": true - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -1588,14 +1547,12 @@ "node_modules/symbol.inspect": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/symbol.inspect/-/symbol.inspect-1.0.1.tgz", - "integrity": "sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==", - "dev": true + "integrity": "sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==" }, "node_modules/teslabot": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/teslabot/-/teslabot-1.5.0.tgz", - "integrity": "sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg==", - "dev": true + "integrity": "sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg==" }, "node_modules/to-regex-range": { "version": "5.0.1", @@ -1613,7 +1570,6 @@ "version": "13.3.0", "resolved": "https://registry.npmjs.org/ton/-/ton-13.3.0.tgz", "integrity": "sha512-ygNZ3a8xgDcftudgmq2lNzFNrQtNhUdmBneLJI8C2iBuD9RAfpnjae4eIpjPLfCsLKH8Nmvh2JOESfM7lvsCSw==", - "dev": true, "dependencies": { "axios": "^0.25.0", "dataloader": "^2.0.0", @@ -1644,7 +1600,6 @@ "version": "0.44.0", "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.44.0.tgz", "integrity": "sha512-EnYKUHc4EUiL3BmppK+AQLqZaaw/BPBNmOC9xJRqiKRqs11gIn/LY3qzp4/23JWojBwXH7S7M6Rf8YN+In5Zhw==", - "dev": true, "peer": true, "dependencies": { "symbol.inspect": "1.0.1" @@ -1657,7 +1612,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-3.2.0.tgz", "integrity": "sha512-fltdBNQ45gARMuGMEOjPZWPJ5eSql8p3CA0Dj7tPv5lhU5ziT8SxXLAzDraR9HJ8YpjBHLVvYyhMLRiEwxgtMQ==", - "dev": true, "dependencies": { "jssha": "3.2.0", "ton-crypto-primitives": "2.0.0", @@ -1668,7 +1622,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ton-crypto-primitives/-/ton-crypto-primitives-2.0.0.tgz", "integrity": "sha512-K+qKjpS0h9sPW6oExcpxnzuQ7nEgHEiDKwIqE/jWD25o8iFGe3FWj1gKxFNbKE9wwYKc5IV8FwrU+raF0KO5nQ==", - "dev": true, "dependencies": { "jssha": "3.2.0" } @@ -1733,8 +1686,7 @@ "node_modules/tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" }, "node_modules/type-detect": { "version": "4.0.8", @@ -1954,8 +1906,7 @@ "@scarf/scarf": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.1.tgz", - "integrity": "sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ==", - "dev": true + "integrity": "sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ==" }, "@swc/core": { "version": "1.3.25", @@ -2077,6 +2028,25 @@ "integrity": "sha512-M8+nE6rfdxfpgiBwtMSlRQrXB3go9cYrk36SKFgk3s14h+yA8PYCmBCYXRlkOxXgp4AlcEJ/aKTjIhidqVg9rw==", "dev": true }, + "@ton-community/tx-emulator": { + "version": "git+ssh://git@github.com/ton-community/tx-emulator.git#44475b3a29fa3a4a52ede216b6e457e58db7beb3", + "from": "@ton-community/tx-emulator@https://github.com/ton-community/tx-emulator#44475b3", + "requires": { + "bn.js": "^5.2.1", + "ton-core": "^0.37.0", + "ton-crypto": "^3.2.0" + }, + "dependencies": { + "ton-core": { + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.37.0.tgz", + "integrity": "sha512-NsEAdu7iwUEMEl3OOfKpYkYakFe52nW1huhdGe3fdxchXpO50jyOlXiATeiC8tlCvP/RxiODtOMnpYCiPOQ6Jw==", + "requires": { + "symbol.inspect": "1.0.1" + } + } + } + }, "@tsconfig/node10": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", @@ -2101,24 +2071,6 @@ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "dev": true }, - "@types/axios": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@types/axios/-/axios-0.14.0.tgz", - "integrity": "sha1-7CMA++fX3d1+udOr+HmZlkyvzkY=", - "dev": true, - "requires": { - "axios": "*" - } - }, - "@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/chai": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", @@ -2135,13 +2087,8 @@ "version": "17.0.29", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.29.tgz", "integrity": "sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA==", - "dev": true - }, - "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true + "dev": true, + "peer": true }, "acorn": { "version": "8.7.1", @@ -2208,21 +2155,10 @@ "version": "0.25.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", - "dev": true, "requires": { "follow-redirects": "^1.14.7" } }, - "axios-request-throttle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/axios-request-throttle/-/axios-request-throttle-1.0.0.tgz", - "integrity": "sha512-NYh7kZkgSJZyIohqrvQEzr4uygqbxXb769kbphkwgYNAJm5eDg33mqHLA2pwHKC1uqbTfNpmjmzWdUdo+ptBWg==", - "dev": true, - "requires": { - "@types/axios": "^0.14.0", - "promise-throttle": "^1.1.2" - } - }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -2236,10 +2172,9 @@ "dev": true }, "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, "brace-expansion": { "version": "1.1.11", @@ -2287,13 +2222,6 @@ "type-detect": "^4.0.5" } }, - "chai-bn": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/chai-bn/-/chai-bn-0.3.1.tgz", - "integrity": "sha512-vuzEy0Cb+k8zqi2SHOmvZdRSbKcSOJfS1Nv8+6YDJIyCzfxkTCHLNRyjRIoRJ3WJtYb/c7OHjrvLoGeyO4A/gA==", - "dev": true, - "requires": {} - }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2378,8 +2306,7 @@ "dataloader": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", - "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", - "dev": true + "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==" }, "debug": { "version": "4.3.4", @@ -2493,14 +2420,12 @@ "follow-redirects": { "version": "1.14.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", - "dev": true + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" }, "fp-ts": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.12.1.tgz", - "integrity": "sha512-oxvgqUYR6O9VkKXrxkJ0NOyU0FrE705MeqgBUMEPWyTu6Pwn768cJbHChw2XOBlgFLKfIHxjr2OOBFpv2mUGZw==", - "dev": true + "integrity": "sha512-oxvgqUYR6O9VkKXrxkJ0NOyU0FrE705MeqgBUMEPWyTu6Pwn768cJbHChw2XOBlgFLKfIHxjr2OOBFpv2mUGZw==" }, "fs.realpath": { "version": "1.0.0", @@ -2593,14 +2518,12 @@ "version": "2.2.16", "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-2.2.16.tgz", "integrity": "sha512-y5TTSa6VP6le0hhmIyN0dqEXkrZeJLeC5KApJq6VLci3UEKF80lZ+KuoUs02RhBxNWlrqSNxzfI7otLX1Euv8Q==", - "dev": true, "requires": {} }, "io-ts-reporters": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/io-ts-reporters/-/io-ts-reporters-2.0.1.tgz", "integrity": "sha512-RVpLstYBsmTGgCW9wJ5KVyN/eRnRUDp87Flt4D1O3aJ7oAnd8csq8aXuu7ZeNK8qEDKmjUl9oUuzfwikaNAMKQ==", - "dev": true, "requires": { "@scarf/scarf": "^1.1.1" } @@ -2674,8 +2597,7 @@ "jssha": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jssha/-/jssha-3.2.0.tgz", - "integrity": "sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q==", - "dev": true + "integrity": "sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q==" }, "locate-path": { "version": "6.0.0", @@ -2865,12 +2787,6 @@ "integrity": "sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw==", "dev": true }, - "promise-throttle": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/promise-throttle/-/promise-throttle-1.1.2.tgz", - "integrity": "sha512-dij7vjyXNewuuN/gyr+TX2KRjw48mbV5FEtgyXaIoJjGYAKT0au23/voNvy9eS4UNJjx2KUdEcO5Yyfc1h7vWQ==", - "dev": true - }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -2969,14 +2885,12 @@ "symbol.inspect": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/symbol.inspect/-/symbol.inspect-1.0.1.tgz", - "integrity": "sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==", - "dev": true + "integrity": "sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==" }, "teslabot": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/teslabot/-/teslabot-1.5.0.tgz", - "integrity": "sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg==", - "dev": true + "integrity": "sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg==" }, "to-regex-range": { "version": "5.0.1", @@ -2991,7 +2905,6 @@ "version": "13.3.0", "resolved": "https://registry.npmjs.org/ton/-/ton-13.3.0.tgz", "integrity": "sha512-ygNZ3a8xgDcftudgmq2lNzFNrQtNhUdmBneLJI8C2iBuD9RAfpnjae4eIpjPLfCsLKH8Nmvh2JOESfM7lvsCSw==", - "dev": true, "requires": { "axios": "^0.25.0", "dataloader": "^2.0.0", @@ -3015,7 +2928,6 @@ "version": "0.44.0", "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.44.0.tgz", "integrity": "sha512-EnYKUHc4EUiL3BmppK+AQLqZaaw/BPBNmOC9xJRqiKRqs11gIn/LY3qzp4/23JWojBwXH7S7M6Rf8YN+In5Zhw==", - "dev": true, "peer": true, "requires": { "symbol.inspect": "1.0.1" @@ -3025,7 +2937,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-3.2.0.tgz", "integrity": "sha512-fltdBNQ45gARMuGMEOjPZWPJ5eSql8p3CA0Dj7tPv5lhU5ziT8SxXLAzDraR9HJ8YpjBHLVvYyhMLRiEwxgtMQ==", - "dev": true, "requires": { "jssha": "3.2.0", "ton-crypto-primitives": "2.0.0", @@ -3036,7 +2947,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ton-crypto-primitives/-/ton-crypto-primitives-2.0.0.tgz", "integrity": "sha512-K+qKjpS0h9sPW6oExcpxnzuQ7nEgHEiDKwIqE/jWD25o8iFGe3FWj1gKxFNbKE9wwYKc5IV8FwrU+raF0KO5nQ==", - "dev": true, "requires": { "jssha": "3.2.0" } @@ -3078,8 +2988,7 @@ "tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" }, "type-detect": { "version": "4.0.8", diff --git a/package.json b/package.json index 207733c..459d60e 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "node": ">=16.15.0" }, "dependencies": { - "@orbs-network/ton-access": "^2.2.2" + "@orbs-network/ton-access": "^2.2.2", + "@ton-community/tx-emulator": "github:ton-community/tx-emulator#44475b3" } } diff --git a/test/ownership.spec.ts b/test/ownership.spec.ts index 87e282f..2d9eaf1 100644 --- a/test/ownership.spec.ts +++ b/test/ownership.spec.ts @@ -1,13 +1,12 @@ import chai, { expect } from "chai"; -import chaiBN from "chai-bn"; -import BN from "bn.js"; -chai.use(chaiBN(BN)); import { Cell, Slice } from "ton"; import { SmartContract } from "ton-contract-executor"; import * as main from "../contracts/main"; import { internalMessage, randomAddress } from "./helpers"; +import x from "@ton-community/tx-emulator" + import { hex } from "../build/main.compiled.json"; describe("Transfer ownership tests", () => { From c3e2b4efeec7c619bca6b1fbd8021c9cb177cbf8 Mon Sep 17 00:00:00 2001 From: Shahar Yakir Date: Thu, 19 Jan 2023 12:45:57 +0200 Subject: [PATCH 5/7] in prog --- package-lock.json | 141 +++++++++++++++++++---------------------- package.json | 5 +- test/counter.spec.ts | 12 ++-- test/deposit.spec.ts | 32 +++++----- test/helpers.ts | 11 ++-- test/ownership.spec.ts | 6 +- tsconfig.json | 2 +- 7 files changed, 100 insertions(+), 109 deletions(-) diff --git a/package-lock.json b/package-lock.json index d269acc..ddb20ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,8 +10,7 @@ "hasInstallScript": true, "license": "MIT", "dependencies": { - "@orbs-network/ton-access": "^2.2.2", - "@ton-community/tx-emulator": "github:ton-community/tx-emulator#44475b3" + "@orbs-network/ton-access": "^2.2.2" }, "devDependencies": { "@swc/core": "^1.3.25", @@ -25,7 +24,7 @@ "prando": "^6.0.1", "prettier": "^2.8.2", "ton": "^13.3.0", - "ton-contract-executor": "^0.6.2", + "ton-contract-executor": "file:../ton-contract-executor/ton-contract-executor-0.6.2.tgz", "ton-crypto": "^3.1.0", "ts-node": "^10.9.1", "typescript": "^4.9.4" @@ -118,6 +117,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.1.tgz", "integrity": "sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ==", + "dev": true, "hasInstallScript": true }, "node_modules/@swc/core": { @@ -339,30 +339,6 @@ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", "dev": true }, - "node_modules/@ton-community/tx-emulator": { - "version": "0.1.0", - "resolved": "git+ssh://git@github.com/ton-community/tx-emulator.git#44475b3a29fa3a4a52ede216b6e457e58db7beb3", - "license": "MIT", - "dependencies": { - "bn.js": "^5.2.1", - "ton-core": "^0.37.0", - "ton-crypto": "^3.2.0" - }, - "peerDependencies": { - "ton": "^13.3.0" - } - }, - "node_modules/@ton-community/tx-emulator/node_modules/ton-core": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.37.0.tgz", - "integrity": "sha512-NsEAdu7iwUEMEl3OOfKpYkYakFe52nW1huhdGe3fdxchXpO50jyOlXiATeiC8tlCvP/RxiODtOMnpYCiPOQ6Jw==", - "dependencies": { - "symbol.inspect": "1.0.1" - }, - "peerDependencies": { - "ton-crypto": ">=3.2.0" - } - }, "node_modules/@tsconfig/node10": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", @@ -498,6 +474,7 @@ "version": "0.25.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "dev": true, "dependencies": { "follow-redirects": "^1.14.7" } @@ -520,7 +497,8 @@ "node_modules/bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -688,7 +666,8 @@ "node_modules/dataloader": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", - "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==" + "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", + "dev": true }, "node_modules/debug": { "version": "4.3.4", @@ -848,6 +827,7 @@ "version": "1.14.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "dev": true, "funding": [ { "type": "individual", @@ -866,7 +846,8 @@ "node_modules/fp-ts": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.12.1.tgz", - "integrity": "sha512-oxvgqUYR6O9VkKXrxkJ0NOyU0FrE705MeqgBUMEPWyTu6Pwn768cJbHChw2XOBlgFLKfIHxjr2OOBFpv2mUGZw==" + "integrity": "sha512-oxvgqUYR6O9VkKXrxkJ0NOyU0FrE705MeqgBUMEPWyTu6Pwn768cJbHChw2XOBlgFLKfIHxjr2OOBFpv2mUGZw==", + "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", @@ -988,6 +969,7 @@ "version": "2.2.16", "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-2.2.16.tgz", "integrity": "sha512-y5TTSa6VP6le0hhmIyN0dqEXkrZeJLeC5KApJq6VLci3UEKF80lZ+KuoUs02RhBxNWlrqSNxzfI7otLX1Euv8Q==", + "dev": true, "peerDependencies": { "fp-ts": "^2.5.0" } @@ -996,6 +978,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/io-ts-reporters/-/io-ts-reporters-2.0.1.tgz", "integrity": "sha512-RVpLstYBsmTGgCW9wJ5KVyN/eRnRUDp87Flt4D1O3aJ7oAnd8csq8aXuu7ZeNK8qEDKmjUl9oUuzfwikaNAMKQ==", + "dev": true, "dependencies": { "@scarf/scarf": "^1.1.1" }, @@ -1101,6 +1084,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/jssha/-/jssha-3.2.0.tgz", "integrity": "sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q==", + "dev": true, "engines": { "node": "*" } @@ -1547,12 +1531,14 @@ "node_modules/symbol.inspect": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/symbol.inspect/-/symbol.inspect-1.0.1.tgz", - "integrity": "sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==" + "integrity": "sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==", + "dev": true }, "node_modules/teslabot": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/teslabot/-/teslabot-1.5.0.tgz", - "integrity": "sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg==" + "integrity": "sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg==", + "dev": true }, "node_modules/to-regex-range": { "version": "5.0.1", @@ -1570,6 +1556,7 @@ "version": "13.3.0", "resolved": "https://registry.npmjs.org/ton/-/ton-13.3.0.tgz", "integrity": "sha512-ygNZ3a8xgDcftudgmq2lNzFNrQtNhUdmBneLJI8C2iBuD9RAfpnjae4eIpjPLfCsLKH8Nmvh2JOESfM7lvsCSw==", + "dev": true, "dependencies": { "axios": "^0.25.0", "dataloader": "^2.0.0", @@ -1586,20 +1573,24 @@ }, "node_modules/ton-contract-executor": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/ton-contract-executor/-/ton-contract-executor-0.6.2.tgz", - "integrity": "sha512-liG3VODJiWQbpEFzmy6nO1XrWkeIKarM+cWIapasP4BzBHBzzAuO7Rb6PY+ow2RFo3TS+XzGUEAP86DDVx3WFg==", + "resolved": "file:../ton-contract-executor/ton-contract-executor-0.6.2.tgz", + "integrity": "sha512-iVOwCsMm74NwznFci64UA2ZsHp9ZM9z83MOgvsBoP8jXMs9rvce839DBnGnBKw6F7Uyo8kddbKGKCZG5clyFxg==", "dev": true, + "license": "MIT", "dependencies": { - "bn.js": "^5.2.0" + "bn.js": "^5.2.0", + "ton-crypto": "^3.2.0" }, "peerDependencies": { - "ton": ">=11.0.1" + "ton": ">=13.3.0", + "ton-core": "^0.45.0" } }, "node_modules/ton-core": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.44.0.tgz", - "integrity": "sha512-EnYKUHc4EUiL3BmppK+AQLqZaaw/BPBNmOC9xJRqiKRqs11gIn/LY3qzp4/23JWojBwXH7S7M6Rf8YN+In5Zhw==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.45.0.tgz", + "integrity": "sha512-OWaLtPE4fWSQceZk8IdSwr/V20x/8FlT8UOJrdf0WJM7jgGnoLvcrPHezirrNAbcg//Ig5dwGUO0SLAcpzpTaw==", + "dev": true, "peer": true, "dependencies": { "symbol.inspect": "1.0.1" @@ -1612,6 +1603,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-3.2.0.tgz", "integrity": "sha512-fltdBNQ45gARMuGMEOjPZWPJ5eSql8p3CA0Dj7tPv5lhU5ziT8SxXLAzDraR9HJ8YpjBHLVvYyhMLRiEwxgtMQ==", + "dev": true, "dependencies": { "jssha": "3.2.0", "ton-crypto-primitives": "2.0.0", @@ -1622,6 +1614,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ton-crypto-primitives/-/ton-crypto-primitives-2.0.0.tgz", "integrity": "sha512-K+qKjpS0h9sPW6oExcpxnzuQ7nEgHEiDKwIqE/jWD25o8iFGe3FWj1gKxFNbKE9wwYKc5IV8FwrU+raF0KO5nQ==", + "dev": true, "dependencies": { "jssha": "3.2.0" } @@ -1686,7 +1679,8 @@ "node_modules/tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "dev": true }, "node_modules/type-detect": { "version": "4.0.8", @@ -1906,7 +1900,8 @@ "@scarf/scarf": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.1.tgz", - "integrity": "sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ==" + "integrity": "sha512-VGbKDbk1RFIaSmdVb0cNjjWJoRWRI/Weo23AjRCC2nryO0iAS8pzsToJfPVPtVs74WHw4L1UTADNdIYRLkirZQ==", + "dev": true }, "@swc/core": { "version": "1.3.25", @@ -2028,25 +2023,6 @@ "integrity": "sha512-M8+nE6rfdxfpgiBwtMSlRQrXB3go9cYrk36SKFgk3s14h+yA8PYCmBCYXRlkOxXgp4AlcEJ/aKTjIhidqVg9rw==", "dev": true }, - "@ton-community/tx-emulator": { - "version": "git+ssh://git@github.com/ton-community/tx-emulator.git#44475b3a29fa3a4a52ede216b6e457e58db7beb3", - "from": "@ton-community/tx-emulator@https://github.com/ton-community/tx-emulator#44475b3", - "requires": { - "bn.js": "^5.2.1", - "ton-core": "^0.37.0", - "ton-crypto": "^3.2.0" - }, - "dependencies": { - "ton-core": { - "version": "0.37.0", - "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.37.0.tgz", - "integrity": "sha512-NsEAdu7iwUEMEl3OOfKpYkYakFe52nW1huhdGe3fdxchXpO50jyOlXiATeiC8tlCvP/RxiODtOMnpYCiPOQ6Jw==", - "requires": { - "symbol.inspect": "1.0.1" - } - } - } - }, "@tsconfig/node10": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", @@ -2155,6 +2131,7 @@ "version": "0.25.0", "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "dev": true, "requires": { "follow-redirects": "^1.14.7" } @@ -2174,7 +2151,8 @@ "bn.js": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true }, "brace-expansion": { "version": "1.1.11", @@ -2306,7 +2284,8 @@ "dataloader": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", - "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==" + "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", + "dev": true }, "debug": { "version": "4.3.4", @@ -2420,12 +2399,14 @@ "follow-redirects": { "version": "1.14.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "dev": true }, "fp-ts": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.12.1.tgz", - "integrity": "sha512-oxvgqUYR6O9VkKXrxkJ0NOyU0FrE705MeqgBUMEPWyTu6Pwn768cJbHChw2XOBlgFLKfIHxjr2OOBFpv2mUGZw==" + "integrity": "sha512-oxvgqUYR6O9VkKXrxkJ0NOyU0FrE705MeqgBUMEPWyTu6Pwn768cJbHChw2XOBlgFLKfIHxjr2OOBFpv2mUGZw==", + "dev": true }, "fs.realpath": { "version": "1.0.0", @@ -2518,12 +2499,14 @@ "version": "2.2.16", "resolved": "https://registry.npmjs.org/io-ts/-/io-ts-2.2.16.tgz", "integrity": "sha512-y5TTSa6VP6le0hhmIyN0dqEXkrZeJLeC5KApJq6VLci3UEKF80lZ+KuoUs02RhBxNWlrqSNxzfI7otLX1Euv8Q==", + "dev": true, "requires": {} }, "io-ts-reporters": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/io-ts-reporters/-/io-ts-reporters-2.0.1.tgz", "integrity": "sha512-RVpLstYBsmTGgCW9wJ5KVyN/eRnRUDp87Flt4D1O3aJ7oAnd8csq8aXuu7ZeNK8qEDKmjUl9oUuzfwikaNAMKQ==", + "dev": true, "requires": { "@scarf/scarf": "^1.1.1" } @@ -2597,7 +2580,8 @@ "jssha": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jssha/-/jssha-3.2.0.tgz", - "integrity": "sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q==" + "integrity": "sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q==", + "dev": true }, "locate-path": { "version": "6.0.0", @@ -2885,12 +2869,14 @@ "symbol.inspect": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/symbol.inspect/-/symbol.inspect-1.0.1.tgz", - "integrity": "sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==" + "integrity": "sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==", + "dev": true }, "teslabot": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/teslabot/-/teslabot-1.5.0.tgz", - "integrity": "sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg==" + "integrity": "sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg==", + "dev": true }, "to-regex-range": { "version": "5.0.1", @@ -2905,6 +2891,7 @@ "version": "13.3.0", "resolved": "https://registry.npmjs.org/ton/-/ton-13.3.0.tgz", "integrity": "sha512-ygNZ3a8xgDcftudgmq2lNzFNrQtNhUdmBneLJI8C2iBuD9RAfpnjae4eIpjPLfCsLKH8Nmvh2JOESfM7lvsCSw==", + "dev": true, "requires": { "axios": "^0.25.0", "dataloader": "^2.0.0", @@ -2916,18 +2903,19 @@ } }, "ton-contract-executor": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/ton-contract-executor/-/ton-contract-executor-0.6.2.tgz", - "integrity": "sha512-liG3VODJiWQbpEFzmy6nO1XrWkeIKarM+cWIapasP4BzBHBzzAuO7Rb6PY+ow2RFo3TS+XzGUEAP86DDVx3WFg==", + "version": "file:../ton-contract-executor/ton-contract-executor-0.6.2.tgz", + "integrity": "sha512-iVOwCsMm74NwznFci64UA2ZsHp9ZM9z83MOgvsBoP8jXMs9rvce839DBnGnBKw6F7Uyo8kddbKGKCZG5clyFxg==", "dev": true, "requires": { - "bn.js": "^5.2.0" + "bn.js": "^5.2.0", + "ton-crypto": "^3.2.0" } }, "ton-core": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.44.0.tgz", - "integrity": "sha512-EnYKUHc4EUiL3BmppK+AQLqZaaw/BPBNmOC9xJRqiKRqs11gIn/LY3qzp4/23JWojBwXH7S7M6Rf8YN+In5Zhw==", + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.45.0.tgz", + "integrity": "sha512-OWaLtPE4fWSQceZk8IdSwr/V20x/8FlT8UOJrdf0WJM7jgGnoLvcrPHezirrNAbcg//Ig5dwGUO0SLAcpzpTaw==", + "dev": true, "peer": true, "requires": { "symbol.inspect": "1.0.1" @@ -2937,6 +2925,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-3.2.0.tgz", "integrity": "sha512-fltdBNQ45gARMuGMEOjPZWPJ5eSql8p3CA0Dj7tPv5lhU5ziT8SxXLAzDraR9HJ8YpjBHLVvYyhMLRiEwxgtMQ==", + "dev": true, "requires": { "jssha": "3.2.0", "ton-crypto-primitives": "2.0.0", @@ -2947,6 +2936,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ton-crypto-primitives/-/ton-crypto-primitives-2.0.0.tgz", "integrity": "sha512-K+qKjpS0h9sPW6oExcpxnzuQ7nEgHEiDKwIqE/jWD25o8iFGe3FWj1gKxFNbKE9wwYKc5IV8FwrU+raF0KO5nQ==", + "dev": true, "requires": { "jssha": "3.2.0" } @@ -2988,7 +2978,8 @@ "tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "dev": true }, "type-detect": { "version": "4.0.8", diff --git a/package.json b/package.json index 459d60e..22de1eb 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "prando": "^6.0.1", "prettier": "^2.8.2", "ton": "^13.3.0", - "ton-contract-executor": "^0.6.2", + "ton-contract-executor": "file:../ton-contract-executor/ton-contract-executor-0.6.2.tgz", "ton-crypto": "^3.1.0", "ts-node": "^10.9.1", "typescript": "^4.9.4" @@ -43,7 +43,6 @@ "node": ">=16.15.0" }, "dependencies": { - "@orbs-network/ton-access": "^2.2.2", - "@ton-community/tx-emulator": "github:ton-community/tx-emulator#44475b3" + "@orbs-network/ton-access": "^2.2.2" } } diff --git a/test/counter.spec.ts b/test/counter.spec.ts index 74c34e5..c72e15d 100644 --- a/test/counter.spec.ts +++ b/test/counter.spec.ts @@ -1,7 +1,7 @@ import chai, { expect } from "chai"; -import chaiBN from "chai-bn"; -import BN from "bn.js"; -chai.use(chaiBN(BN)); +// import chaiBN from "chai-bn"; +// import BN from "bn.js"; +// chai.use(chaiBN(BN)); import { Cell } from "ton"; import { SmartContract } from "ton-contract-executor"; @@ -25,12 +25,12 @@ describe("Counter tests", () => { it("should get the meaning of life", async () => { const call = await contract.invokeGetMethod("meaning_of_life", []); - expect(call.result[0]).to.be.bignumber.equal(new BN(42)); + expect(call.result[0]).to.be.equal(42n); }); it("should get counter value and increment it", async () => { const call = await contract.invokeGetMethod("counter", []); - expect(call.result[0]).to.be.bignumber.equal(new BN(17)); + expect(call.result[0]).to.be.equal(17n); const send = await contract.sendInternalMessage( internalMessage({ @@ -41,6 +41,6 @@ describe("Counter tests", () => { expect(send.type).to.equal("success"); const call2 = await contract.invokeGetMethod("counter", []); - expect(call2.result[0]).to.be.bignumber.equal(new BN(18)); + expect(call2.result[0]).to.equal(18n); }); }); diff --git a/test/deposit.spec.ts b/test/deposit.spec.ts index 3330041..21a12f1 100644 --- a/test/deposit.spec.ts +++ b/test/deposit.spec.ts @@ -1,7 +1,7 @@ import chai, { expect } from "chai"; -import chaiBN from "chai-bn"; -import BN from "bn.js"; -chai.use(chaiBN(BN)); +// import chaiBN from "chai-bn"; +// import BN from "bn.js"; +// chai.use(chaiBN(BN)); import { Cell, toNano } from "ton"; import { SmartContract } from "ton-contract-executor"; @@ -15,7 +15,7 @@ describe("Deposit and withdraw tests", () => { beforeEach(async () => { contract = await SmartContract.fromCell( - Cell.fromBoc(Buffer.from(hex, "base64"))[0], // code cell from build output + Cell.fromBoc(Buffer.from(hex, "hex"))[0], // code cell from build output main.data({ ownerAddress: randomAddress("owner"), counter: 17, @@ -24,32 +24,32 @@ describe("Deposit and withdraw tests", () => { }); it("should get balance", async () => { - setBalance(contract, toNano('37)')); + setBalance(contract, toNano('37')); const call = await contract.invokeGetMethod("balance", []); - expect(call.result[0]).to.be.equal(toNano('37)')); + expect(call.result[0]).to.be.equal(toNano('37')); }); it("should allow the owner to withdraw when balance is high", async () => { - setBalance(contract, toNano('37)')); + setBalance(contract, toNano('37')); const send = await contract.sendInternalMessage( internalMessage({ from: randomAddress("owner"), - body: main.withdraw({ withdrawAmount: toNano('20)') }), + body: main.withdraw({ withdrawAmount: toNano('20') }), }) ); expect(send.type).to.equal("success"); expect(send.actionList).to.have.lengthOf(1); const resultMessage = (send.actionList[0] as any)?.message?.info; expect(resultMessage?.dest?.equals(randomAddress("owner"))).to.equal(true); - expect(resultMessage?.value?.coins).to.be.equal(toNano('20)')); + expect(resultMessage?.value?.coins).to.be.equal(toNano('20')); }); it("should prevent others from withdrawing when balance is high", async () => { - setBalance(contract, toNano('37)')); + setBalance(contract, toNano('37')); const send = await contract.sendInternalMessage( internalMessage({ from: randomAddress("notowner"), - body: main.withdraw({ withdrawAmount: toNano('20)') }), + body: main.withdraw({ withdrawAmount: toNano('20') }), }) ); expect(send.type).to.equal("failed"); @@ -57,11 +57,11 @@ describe("Deposit and withdraw tests", () => { }); it("should prevent the owner to withdraw when balance is low", async () => { - setBalance(contract, toNano('10)')); + setBalance(contract, toNano('10')); const send = await contract.sendInternalMessage( internalMessage({ from: randomAddress("owner"), - body: main.withdraw({ withdrawAmount: toNano('20)') }), + body: main.withdraw({ withdrawAmount: toNano('20') }), }) ); expect(send.type).to.equal("failed"); @@ -69,17 +69,17 @@ describe("Deposit and withdraw tests", () => { }); it("should leave enough balance for rent", async () => { - setBalance(contract, toNano('20)')); + setBalance(contract, toNano('20')); const send = await contract.sendInternalMessage( internalMessage({ from: randomAddress("owner"), - body: main.withdraw({ withdrawAmount: toNano('20)') }), + body: main.withdraw({ withdrawAmount: toNano('20') }), }) ); expect(send.type).to.equal("success"); expect(send.actionList).to.have.lengthOf(1); const resultMessage = (send.actionList[0] as any)?.message?.info; expect(resultMessage?.dest?.equals(randomAddress("owner"))).to.equal(true); - expect(resultMessage?.value?.coins).to.be.equal(toNano('20)') - (toNano('0.01)'))); // min_tons_for_storage in contracts/imports/constants.fc + expect(resultMessage?.value?.coins).to.be.equal(toNano('20') - (toNano('0.01'))); // min_tons_for_storage in contracts/imports/constants.fc }); }); diff --git a/test/helpers.ts b/test/helpers.ts index d5fdceb..bb8c6cf 100644 --- a/test/helpers.ts +++ b/test/helpers.ts @@ -1,5 +1,5 @@ -import BN from "bn.js"; import { Address, Cell, internal, SendMode } from "ton-core"; +import { Address as Address2 } from "ton-contract-executor/node_modules/ton-core"; import { SmartContract } from "ton-contract-executor"; import Prando from "prando"; import { TonClient } from "ton"; @@ -17,19 +17,22 @@ export function randomAddress(seed: string, workchain?: number) { // used with ton-contract-executor (unit tests) to sendInternalMessage easily export function internalMessage(params: { from?: Address; to?: Address; value?: string; bounce?: boolean; body?: Cell }) { - return internal({ - // from: params.from ?? randomAddress("sender"), + const msg = internal({ to: params.to ?? zeroAddress, value: params.value ?? "0", bounce: params.bounce ?? true, body: params.body, }); + + msg.info.src = params.from ?? randomAddress("sender"); + + return msg; } // temp fix until ton-contract-executor (unit tests) remembers c7 value between calls export function setBalance(contract: SmartContract, balance: bigint) { contract.setC7Config({ - balance: new BN(balance.toString()), + balance: balance, }); } diff --git a/test/ownership.spec.ts b/test/ownership.spec.ts index 2d9eaf1..e7c3a92 100644 --- a/test/ownership.spec.ts +++ b/test/ownership.spec.ts @@ -5,8 +5,6 @@ import { SmartContract } from "ton-contract-executor"; import * as main from "../contracts/main"; import { internalMessage, randomAddress } from "./helpers"; -import x from "@ton-community/tx-emulator" - import { hex } from "../build/main.compiled.json"; describe("Transfer ownership tests", () => { @@ -32,7 +30,7 @@ describe("Transfer ownership tests", () => { expect(send.type).to.equal("success"); const call = await contract.invokeGetMethod("owner_address", []); - const address = (call.result[0] as Slice).readAddress(); + const address = (call.result[0] as Slice).loadAddress(); expect(address?.equals(randomAddress("newowner"))).to.equal(true); }); @@ -47,7 +45,7 @@ describe("Transfer ownership tests", () => { expect(send.exit_code).to.equal(102); // access_denied in contracts/imports/constants.fc const call = await contract.invokeGetMethod("owner_address", []); - const address = (call.result[0] as Slice).readAddress(); + const address = (call.result[0] as Slice).loadAddress(); expect(address?.equals(randomAddress("owner"))).to.equal(true); }); }); diff --git a/tsconfig.json b/tsconfig.json index 3bbcdda..7415c2b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es2016", + "target": "ES2020", "module": "commonjs", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, From 7cb86191b2807a16579846ba9ef73a04450993e8 Mon Sep 17 00:00:00 2001 From: Shahar Yakir Date: Thu, 19 Jan 2023 12:48:08 +0200 Subject: [PATCH 6/7] in prog --- .github/workflows/node.js.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index a105469..513cb35 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: - node-version: [16.x, 17.x] + node-version: [16.x, 18.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: @@ -25,7 +25,7 @@ jobs: with: node-version: ${{ matrix.node-version }} cache: "npm" - - run: mkdir bin && wget https://github.com/ton-defi-org/ton-binaries/releases/download/ubuntu-18/fift -P ./bin && chmod +x ./bin/fift && wget https://github.com/ton-defi-org/ton-binaries/releases/download/ubuntu-18/func -P ./bin && chmod +x ./bin/func && wget https://github.com/ton-defi-org/ton-binaries/releases/download/fiftlib/fiftlib.zip -P ./bin && unzip ./bin/fiftlib.zip -d ./bin/fiftlib + - run: mkdir bin && wget https://github.com/ton-defi-org/ton-binaries/releases/download/ubuntu-18-0.3.0/fift -P ./bin && chmod +x ./bin/fift && wget https://github.com/ton-defi-org/ton-binaries/releases/download/ubuntu-18-0.3.0/func -P ./bin && chmod +x ./bin/func && wget https://github.com/ton-defi-org/ton-binaries/releases/download/fiftlib/fiftlib.zip -P ./bin && unzip ./bin/fiftlib.zip -d ./bin/fiftlib - run: npm ci - run: npm run build - run: npm test From 85ed34bdcf5c23b10d9537e137a9591c585239c1 Mon Sep 17 00:00:00 2001 From: Shahar Yakir Date: Thu, 19 Jan 2023 13:46:05 +0200 Subject: [PATCH 7/7] - --- .github/workflows/node.js.yml | 2 +- README.md | 11 ++--------- package-lock.json | 27 +++++++-------------------- package.json | 3 ++- 4 files changed, 12 insertions(+), 31 deletions(-) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index 513cb35..db80507 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: - node-version: [16.x, 18.x] + node-version: [16.x, 17.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: diff --git a/README.md b/README.md index 0173653..7b6f2c6 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ This project is part of a set of 3 typical repositories needed for a blockchain * `contracts/*.fc` - Smart contracts for TON blockchain written in [FunC](https://ton.org/docs/#/func) language * `test/*.spec.ts` - Test suite for the contracts in TypeScript running on [Mocha](https://mochajs.org/) test runner -* `build/_build.ts` - Build script to compile the FunC code to [Fift](https://ton-blockchain.github.io/docs/fiftbase.pdf) and [TVM](https://ton-blockchain.github.io/docs/tvm.pdf) opcodes +* `build/_build.ts` - Build script to compile the FunC code to [TVM](https://ton-blockchain.github.io/docs/tvm.pdf) opcodes * `build/_deploy.ts` - Deploy script to deploy the compiled code to TON mainnet (or testnet) * `build/_setup.ts` - Setup script to install build dependencies (used primarily for Glitch.com support) @@ -36,14 +36,7 @@ To setup your local machine for development, please make sure you have the follo * A modern version of Node.js (version 16.15.0 or later) * Installation instructions can be found [here](https://nodejs.org/) - * Run in terminal `node -v` to verify your installation, the project was tested on `v17.3.0` -* The `func` CLI tool (FunC compiler) - * Installation instructions can be found [here](https://github.com/ton-defi-org/ton-binaries) - * Run in terminal `func -V` to verify your installation -* The `fift` CLI tool - * Installation instructions can be found [here](https://github.com/ton-defi-org/ton-binaries) - * Don't forget to set the `FIFTPATH` env variable as part of the installation above - * Run in terminal `fift -V` and `fift` to verify your installation + * Run in terminal `node -v` to verify your installation, the project was tested on `v16.15.0` * A decent IDE with FunC and TypeScript support * We recommend using [Visual Studio Code](https://code.visualstudio.com/) with the [FunC plugin](https://marketplace.visualstudio.com/items?itemName=tonwhales.func-vscode) installed diff --git a/package-lock.json b/package-lock.json index ddb20ca..9eaa44d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,8 @@ "hasInstallScript": true, "license": "MIT", "dependencies": { - "@orbs-network/ton-access": "^2.2.2" + "@orbs-network/ton-access": "^2.2.2", + "ton-core": "^0.45.0" }, "devDependencies": { "@swc/core": "^1.3.25", @@ -1084,7 +1085,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/jssha/-/jssha-3.2.0.tgz", "integrity": "sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q==", - "dev": true, "engines": { "node": "*" } @@ -1531,8 +1531,7 @@ "node_modules/symbol.inspect": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/symbol.inspect/-/symbol.inspect-1.0.1.tgz", - "integrity": "sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==", - "dev": true + "integrity": "sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==" }, "node_modules/teslabot": { "version": "1.5.0", @@ -1590,8 +1589,6 @@ "version": "0.45.0", "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.45.0.tgz", "integrity": "sha512-OWaLtPE4fWSQceZk8IdSwr/V20x/8FlT8UOJrdf0WJM7jgGnoLvcrPHezirrNAbcg//Ig5dwGUO0SLAcpzpTaw==", - "dev": true, - "peer": true, "dependencies": { "symbol.inspect": "1.0.1" }, @@ -1603,7 +1600,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-3.2.0.tgz", "integrity": "sha512-fltdBNQ45gARMuGMEOjPZWPJ5eSql8p3CA0Dj7tPv5lhU5ziT8SxXLAzDraR9HJ8YpjBHLVvYyhMLRiEwxgtMQ==", - "dev": true, "dependencies": { "jssha": "3.2.0", "ton-crypto-primitives": "2.0.0", @@ -1614,7 +1610,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ton-crypto-primitives/-/ton-crypto-primitives-2.0.0.tgz", "integrity": "sha512-K+qKjpS0h9sPW6oExcpxnzuQ7nEgHEiDKwIqE/jWD25o8iFGe3FWj1gKxFNbKE9wwYKc5IV8FwrU+raF0KO5nQ==", - "dev": true, "dependencies": { "jssha": "3.2.0" } @@ -1679,8 +1674,7 @@ "node_modules/tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" }, "node_modules/type-detect": { "version": "4.0.8", @@ -2580,8 +2574,7 @@ "jssha": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jssha/-/jssha-3.2.0.tgz", - "integrity": "sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q==", - "dev": true + "integrity": "sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q==" }, "locate-path": { "version": "6.0.0", @@ -2869,8 +2862,7 @@ "symbol.inspect": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/symbol.inspect/-/symbol.inspect-1.0.1.tgz", - "integrity": "sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==", - "dev": true + "integrity": "sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==" }, "teslabot": { "version": "1.5.0", @@ -2915,8 +2907,6 @@ "version": "0.45.0", "resolved": "https://registry.npmjs.org/ton-core/-/ton-core-0.45.0.tgz", "integrity": "sha512-OWaLtPE4fWSQceZk8IdSwr/V20x/8FlT8UOJrdf0WJM7jgGnoLvcrPHezirrNAbcg//Ig5dwGUO0SLAcpzpTaw==", - "dev": true, - "peer": true, "requires": { "symbol.inspect": "1.0.1" } @@ -2925,7 +2915,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/ton-crypto/-/ton-crypto-3.2.0.tgz", "integrity": "sha512-fltdBNQ45gARMuGMEOjPZWPJ5eSql8p3CA0Dj7tPv5lhU5ziT8SxXLAzDraR9HJ8YpjBHLVvYyhMLRiEwxgtMQ==", - "dev": true, "requires": { "jssha": "3.2.0", "ton-crypto-primitives": "2.0.0", @@ -2936,7 +2925,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ton-crypto-primitives/-/ton-crypto-primitives-2.0.0.tgz", "integrity": "sha512-K+qKjpS0h9sPW6oExcpxnzuQ7nEgHEiDKwIqE/jWD25o8iFGe3FWj1gKxFNbKE9wwYKc5IV8FwrU+raF0KO5nQ==", - "dev": true, "requires": { "jssha": "3.2.0" } @@ -2978,8 +2966,7 @@ "tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" }, "type-detect": { "version": "4.0.8", diff --git a/package.json b/package.json index 22de1eb..66ab59c 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "node": ">=16.15.0" }, "dependencies": { - "@orbs-network/ton-access": "^2.2.2" + "@orbs-network/ton-access": "^2.2.2", + "ton-core": "^0.45.0" } }