quantumcoin 7.0.13 → 7.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README-SDK.md +2 -0
- package/examples/node_modules/.bin/esbuild +16 -0
- package/examples/node_modules/.bin/esbuild.cmd +17 -0
- package/examples/node_modules/.bin/esbuild.ps1 +28 -0
- package/examples/node_modules/.bin/sdkgen +16 -0
- package/examples/node_modules/.bin/sdkgen.cmd +17 -0
- package/examples/node_modules/.bin/sdkgen.ps1 +28 -0
- package/examples/node_modules/.bin/tsx +16 -0
- package/examples/node_modules/.bin/tsx.cmd +17 -0
- package/examples/node_modules/.bin/tsx.ps1 +28 -0
- package/examples/node_modules/.package-lock.json +144 -0
- package/examples/node_modules/@esbuild/win32-x64/README.md +3 -0
- package/examples/node_modules/@esbuild/win32-x64/esbuild.exe +0 -0
- package/examples/node_modules/@esbuild/win32-x64/package.json +20 -0
- package/examples/node_modules/esbuild/LICENSE.md +21 -0
- package/examples/node_modules/esbuild/README.md +3 -0
- package/examples/node_modules/esbuild/bin/esbuild +223 -0
- package/examples/node_modules/esbuild/install.js +289 -0
- package/examples/node_modules/esbuild/lib/main.d.ts +716 -0
- package/examples/node_modules/esbuild/lib/main.js +2532 -0
- package/examples/node_modules/esbuild/package.json +49 -0
- package/examples/node_modules/get-tsconfig/LICENSE +21 -0
- package/examples/node_modules/get-tsconfig/README.md +235 -0
- package/examples/node_modules/get-tsconfig/dist/index.cjs +7 -0
- package/examples/node_modules/get-tsconfig/dist/index.d.cts +2088 -0
- package/examples/node_modules/get-tsconfig/dist/index.d.mts +2088 -0
- package/examples/node_modules/get-tsconfig/dist/index.mjs +7 -0
- package/examples/node_modules/get-tsconfig/package.json +46 -0
- package/examples/node_modules/quantum-coin-js-sdk/LICENSE +21 -0
- package/examples/node_modules/quantum-coin-js-sdk/LICENSE-wasm_exec.js.txt +30 -0
- package/examples/node_modules/quantum-coin-js-sdk/README.md +1689 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/README.md +14 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/conversion-example.js +19 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/example-create-contract.js +396 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/example-encode-decode-rlp.js +225 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/example-event-pack-unpack.js +391 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/example-misc.js +100 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/example-rpc-send-signRawTransaction.js +318 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/example-rpc-send.js +115 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/example-send.js +69 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/example-token-pack-unpack.js +960 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/example-wallet-version4.js +34 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/example-wallet.js +43 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/example.js +405 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/package-lock.json +56 -0
- package/examples/node_modules/quantum-coin-js-sdk/example/package.json +15 -0
- package/examples/node_modules/quantum-coin-js-sdk/index.d.ts +1047 -0
- package/examples/node_modules/quantum-coin-js-sdk/index.js +3182 -0
- package/examples/node_modules/quantum-coin-js-sdk/package.json +34 -0
- package/examples/node_modules/quantum-coin-js-sdk/tests/encrypted-32.json +1 -0
- package/examples/node_modules/quantum-coin-js-sdk/tests/encrypted-36.json +1 -0
- package/examples/node_modules/quantum-coin-js-sdk/tests/encrypted-48.json +1 -0
- package/examples/node_modules/quantum-coin-js-sdk/tests/generate-verify-vectors.js +91 -0
- package/examples/node_modules/quantum-coin-js-sdk/tests/get-gas-price.test.js +59 -0
- package/examples/node_modules/quantum-coin-js-sdk/tests/non-transactional.preinit.test.js +41 -0
- package/examples/node_modules/quantum-coin-js-sdk/tests/non-transactional.test.js +1389 -0
- package/examples/node_modules/quantum-coin-js-sdk/tests/sign-raw-keytype5-context-null.test.js +107 -0
- package/examples/node_modules/quantum-coin-js-sdk/tests/sign-raw-transaction.test.js +196 -0
- package/examples/node_modules/quantum-coin-js-sdk/tests/sign-verify.test.js +311 -0
- package/examples/node_modules/quantum-coin-js-sdk/tests/transactional.relay.test.js +131 -0
- package/examples/node_modules/quantum-coin-js-sdk/tests/transactional.rpc.test.js +103 -0
- package/examples/node_modules/quantum-coin-js-sdk/tests/verify-vectors.json +95035 -0
- package/examples/node_modules/quantum-coin-js-sdk/wasmBase64.d.ts +9 -0
- package/examples/node_modules/quantum-coin-js-sdk/wasmBase64.js +16 -0
- package/examples/node_modules/quantum-coin-js-sdk/wasm_exec.d.ts +0 -0
- package/examples/node_modules/quantum-coin-js-sdk/wasm_exec.js +587 -0
- package/examples/node_modules/resolve-pkg-maps/LICENSE +21 -0
- package/examples/node_modules/resolve-pkg-maps/README.md +216 -0
- package/examples/node_modules/resolve-pkg-maps/dist/index.cjs +1 -0
- package/examples/node_modules/resolve-pkg-maps/dist/index.d.cts +11 -0
- package/examples/node_modules/resolve-pkg-maps/dist/index.d.mts +11 -0
- package/examples/node_modules/resolve-pkg-maps/dist/index.mjs +1 -0
- package/examples/node_modules/resolve-pkg-maps/package.json +42 -0
- package/examples/node_modules/seed-words/.github/workflows/publish-npmjs.yaml +22 -0
- package/examples/node_modules/seed-words/BUILD.md +7 -0
- package/examples/node_modules/seed-words/LICENSE +121 -0
- package/examples/node_modules/seed-words/README.md +67 -0
- package/examples/node_modules/seed-words/dist/seedwords.d.ts +39 -0
- package/examples/node_modules/seed-words/package.json +27 -0
- package/examples/node_modules/seed-words/seedwords.js +315 -0
- package/examples/node_modules/seed-words/seedwords.txt +65536 -0
- package/examples/node_modules/seed-words/tsconfig.json +21 -0
- package/examples/node_modules/tsx/LICENSE +21 -0
- package/examples/node_modules/tsx/README.md +32 -0
- package/examples/node_modules/tsx/dist/cjs/api/index.cjs +1 -0
- package/examples/node_modules/tsx/dist/cjs/api/index.d.cts +35 -0
- package/examples/node_modules/tsx/dist/cjs/api/index.d.mts +35 -0
- package/examples/node_modules/tsx/dist/cjs/api/index.mjs +1 -0
- package/examples/node_modules/tsx/dist/cjs/index.cjs +1 -0
- package/examples/node_modules/tsx/dist/cjs/index.mjs +1 -0
- package/examples/node_modules/tsx/dist/cli.cjs +54 -0
- package/examples/node_modules/tsx/dist/cli.mjs +55 -0
- package/examples/node_modules/tsx/dist/client-BQVF1NaW.mjs +1 -0
- package/examples/node_modules/tsx/dist/client-D6NvIMSC.cjs +1 -0
- package/examples/node_modules/tsx/dist/esm/api/index.cjs +1 -0
- package/examples/node_modules/tsx/dist/esm/api/index.d.cts +35 -0
- package/examples/node_modules/tsx/dist/esm/api/index.d.mts +35 -0
- package/examples/node_modules/tsx/dist/esm/api/index.mjs +1 -0
- package/examples/node_modules/tsx/dist/esm/index.cjs +2 -0
- package/examples/node_modules/tsx/dist/esm/index.mjs +2 -0
- package/examples/node_modules/tsx/dist/get-pipe-path-BHW2eJdv.mjs +1 -0
- package/examples/node_modules/tsx/dist/get-pipe-path-BoR10qr8.cjs +1 -0
- package/examples/node_modules/tsx/dist/index-7AaEi15b.mjs +14 -0
- package/examples/node_modules/tsx/dist/index-BWFBUo6r.cjs +1 -0
- package/examples/node_modules/tsx/dist/index-gbaejti9.mjs +1 -0
- package/examples/node_modules/tsx/dist/index-gckBtVBf.cjs +14 -0
- package/examples/node_modules/tsx/dist/lexer-DQCqS3nf.mjs +3 -0
- package/examples/node_modules/tsx/dist/lexer-DgIbo0BU.cjs +3 -0
- package/examples/node_modules/tsx/dist/loader.cjs +1 -0
- package/examples/node_modules/tsx/dist/loader.mjs +1 -0
- package/examples/node_modules/tsx/dist/node-features-_8ZFwP_x.mjs +1 -0
- package/examples/node_modules/tsx/dist/node-features-roYmp9jK.cjs +1 -0
- package/examples/node_modules/tsx/dist/package-CeBgXWuR.mjs +1 -0
- package/examples/node_modules/tsx/dist/package-Dxt5kIHw.cjs +1 -0
- package/examples/node_modules/tsx/dist/patch-repl.cjs +1 -0
- package/examples/node_modules/tsx/dist/patch-repl.mjs +1 -0
- package/examples/node_modules/tsx/dist/preflight.cjs +1 -0
- package/examples/node_modules/tsx/dist/preflight.mjs +1 -0
- package/examples/node_modules/tsx/dist/register-2sWVXuRQ.cjs +1 -0
- package/examples/node_modules/tsx/dist/register-B7jrtLTO.mjs +1 -0
- package/examples/node_modules/tsx/dist/register-CFH5oNdT.mjs +4 -0
- package/examples/node_modules/tsx/dist/register-D46fvsV_.cjs +4 -0
- package/examples/node_modules/tsx/dist/repl.cjs +3 -0
- package/examples/node_modules/tsx/dist/repl.mjs +3 -0
- package/examples/node_modules/tsx/dist/require-D4F1Lv60.cjs +1 -0
- package/examples/node_modules/tsx/dist/require-DQxpCAr4.mjs +1 -0
- package/examples/node_modules/tsx/dist/suppress-warnings.cjs +1 -0
- package/examples/node_modules/tsx/dist/suppress-warnings.mjs +1 -0
- package/examples/node_modules/tsx/dist/temporary-directory-B83uKxJF.cjs +1 -0
- package/examples/node_modules/tsx/dist/temporary-directory-CwHp0_NW.mjs +1 -0
- package/examples/node_modules/tsx/dist/types-Cxp8y2TL.d.ts +5 -0
- package/examples/node_modules/tsx/package.json +68 -0
- package/examples/package-lock.json +6 -6
- package/examples/package.json +1 -1
- package/generate-sdk.js +30 -9
- package/package.json +2 -2
- package/src/abi/interface.js +11 -2
- package/src/abi/js-abi-coder.js +61 -2
- package/src/contract/contract.js +53 -5
- package/src/generator/index.js +152 -13
- package/src/index.d.ts +1 -0
- package/src/providers/index.d.ts +1 -0
- package/src/providers/provider.d.ts +16 -0
- package/src/providers/provider.js +178 -5
- package/src/utils/rlp.js +13 -1
- package/src/wallet/wallet.d.ts +10 -0
- package/src/wallet/wallet.js +136 -15
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/_test-wallet.js +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/_test-wallet.ts +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/deploy.js +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/deploy.ts +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/offline-signing.js +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/offline-signing.ts +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/write-operations.js +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/examples/write-operations.ts +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/package-lock.json +6 -6
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/package.json +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/src/AllSolidityTypes__factory.js +3 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-js/test/e2e/AllSolidityTypes.e2e.test.js +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/_test-wallet.js +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/_test-wallet.ts +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/deploy.js +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/deploy.ts +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/offline-signing.js +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/offline-signing.ts +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/write-operations.js +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/examples/write-operations.ts +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/package-lock.json +6 -6
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/package.json +1 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/src/AllSolidityTypes__factory.ts +3 -1
- package/test/e2e/generated-sdks/all-solidity-types/all-solidity-types-ts/test/e2e/AllSolidityTypes.e2e.test.js +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/_test-wallet.js +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/_test-wallet.ts +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/deploy.js +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/deploy.ts +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/offline-signing.js +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/offline-signing.ts +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/write-operations.js +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/examples/write-operations.ts +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/package-lock.json +6 -6
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/package.json +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/SimpleERC20.js +9 -3
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/src/SimpleERC20__factory.js +3 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-js/test/e2e/SimpleERC20.e2e.test.js +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/_test-wallet.js +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/_test-wallet.ts +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/deploy.js +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/deploy.ts +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/offline-signing.js +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/offline-signing.ts +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/write-operations.js +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/examples/write-operations.ts +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/package-lock.json +6 -6
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/package.json +1 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/src/SimpleERC20.ts +9 -3
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/src/SimpleERC20__factory.ts +3 -1
- package/test/e2e/generated-sdks/simple-erc20/simple-erc20-ts/test/e2e/SimpleERC20.e2e.test.js +1 -1
- package/test/e2e/generator-interface.e2e.test.js +6 -4
- package/test/e2e/generator-interface.e2e.test.ts +6 -4
- package/test/security/abi-decoder-bounds.test.js +122 -0
- package/test/security/contract-overrides.test.js +112 -0
- package/test/security/generator-injection.test.js +195 -0
- package/test/security/malformed-input.test.js +26 -27
- package/test/security/rpc-numeric-bounds.test.js +81 -0
- package/test/security/rpc-trust.test.js +202 -0
- package/test/unit/abi-interface.test.js +12 -5
- package/test/unit/abi-interface.test.ts +8 -1
- package/test/unit/address-wallet.test.js +53 -0
- package/test/unit/address-wallet.test.ts +22 -0
- package/test/unit/encoding-units-rlp.test.js +35 -0
- package/test/unit/populate-transaction.test.js +33 -0
- package/test/unit/providers.test.js +53 -0
- package/test/unit/providers.test.ts +53 -0
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
const assert = require("node:assert/strict");
|
|
11
11
|
|
|
12
12
|
const qc = require("../../index");
|
|
13
|
+
const { Initialize } = require("../../config");
|
|
13
14
|
const { logSuite, logTest } = require("../verbose-logger");
|
|
14
15
|
|
|
15
16
|
describe("JsonRpcProvider", () => {
|
|
@@ -249,4 +250,56 @@ describe("Extra providers", () => {
|
|
|
249
250
|
assert.throws(() => new qc.FallbackProvider([]));
|
|
250
251
|
});
|
|
251
252
|
});
|
|
253
|
+
|
|
254
|
+
describe("Provider.getFeeData", () => {
|
|
255
|
+
logSuite("Provider.getFeeData");
|
|
256
|
+
|
|
257
|
+
// Expected per-gas-unit prices (wei). BASE is keyType 3 (compact / context 0);
|
|
258
|
+
// keyType 3 full-sign is BASE x 30; keyType 5 is BASE x 20.
|
|
259
|
+
const FEE_BASE = 4761904761904760n;
|
|
260
|
+
const FEE_KT3_FULL = 142857142857142800n;
|
|
261
|
+
const FEE_KT5 = 95238095238095200n;
|
|
262
|
+
|
|
263
|
+
it("prices by keyType number", async () => {
|
|
264
|
+
logTest("prices by keyType number", {});
|
|
265
|
+
const p = new qc.JsonRpcProvider();
|
|
266
|
+
assert.strictEqual((await p.getFeeData(3)).gasPrice, FEE_BASE);
|
|
267
|
+
assert.strictEqual((await p.getFeeData(3, true)).gasPrice, FEE_KT3_FULL);
|
|
268
|
+
assert.strictEqual((await p.getFeeData(5)).gasPrice, FEE_KT5);
|
|
269
|
+
assert.strictEqual((await p.getFeeData(5, true)).gasPrice, FEE_KT5);
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
it("prices by wallet (reads keyType from wallet)", async () => {
|
|
273
|
+
logTest("prices by wallet", {});
|
|
274
|
+
await Initialize(null);
|
|
275
|
+
const p = new qc.JsonRpcProvider();
|
|
276
|
+
|
|
277
|
+
const w3 = qc.Wallet.createRandom(undefined, 3);
|
|
278
|
+
assert.strictEqual((await p.getFeeData(w3)).gasPrice, FEE_BASE);
|
|
279
|
+
assert.strictEqual((await p.getFeeData(w3, false)).gasPrice, FEE_BASE);
|
|
280
|
+
assert.strictEqual((await p.getFeeData(w3, null)).gasPrice, FEE_BASE);
|
|
281
|
+
assert.strictEqual((await p.getFeeData(w3, true)).gasPrice, FEE_KT3_FULL);
|
|
282
|
+
|
|
283
|
+
const w5 = qc.Wallet.createRandom(undefined, 5);
|
|
284
|
+
assert.strictEqual((await p.getFeeData(w5)).gasPrice, FEE_KT5);
|
|
285
|
+
assert.strictEqual((await p.getFeeData(w5, true)).gasPrice, FEE_KT5);
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
it("FeeData exposes only gasPrice (maxFeePerGas / maxPriorityFeePerGas unsupported)", async () => {
|
|
289
|
+
logTest("FeeData exposes only gasPrice", {});
|
|
290
|
+
const p = new qc.JsonRpcProvider();
|
|
291
|
+
const fd = await p.getFeeData(3);
|
|
292
|
+
assert.ok(fd instanceof qc.FeeData);
|
|
293
|
+
assert.strictEqual(fd.maxFeePerGas, undefined);
|
|
294
|
+
assert.strictEqual(fd.maxPriorityFeePerGas, undefined);
|
|
295
|
+
});
|
|
296
|
+
|
|
297
|
+
it("rejects invalid keyType and invalid first argument", async () => {
|
|
298
|
+
logTest("rejects invalid inputs", {});
|
|
299
|
+
const p = new qc.JsonRpcProvider();
|
|
300
|
+
await assert.rejects(() => p.getFeeData(99), /getGasPrice failed/);
|
|
301
|
+
await assert.rejects(() => p.getFeeData({}), /expected a Wallet or a keyType number/);
|
|
302
|
+
await assert.rejects(() => p.getFeeData(null), /expected a Wallet or a keyType number/);
|
|
303
|
+
});
|
|
304
|
+
});
|
|
252
305
|
|
|
@@ -9,6 +9,7 @@ import { describe, it } from "node:test";
|
|
|
9
9
|
import assert from "node:assert/strict";
|
|
10
10
|
|
|
11
11
|
import qc from "../../index";
|
|
12
|
+
import { Initialize } from "../../config";
|
|
12
13
|
import { logSuite, logTest } from "../verbose-logger";
|
|
13
14
|
|
|
14
15
|
describe("JsonRpcProvider", () => {
|
|
@@ -249,3 +250,55 @@ describe("Extra providers", () => {
|
|
|
249
250
|
assert.throws(() => new qc.FallbackProvider([]));
|
|
250
251
|
});
|
|
251
252
|
});
|
|
253
|
+
|
|
254
|
+
describe("Provider.getFeeData", () => {
|
|
255
|
+
logSuite("Provider.getFeeData");
|
|
256
|
+
|
|
257
|
+
// Expected per-gas-unit prices (wei). BASE is keyType 3 (compact / context 0);
|
|
258
|
+
// keyType 3 full-sign is BASE x 30; keyType 5 is BASE x 20.
|
|
259
|
+
const FEE_BASE = 4761904761904760n;
|
|
260
|
+
const FEE_KT3_FULL = 142857142857142800n;
|
|
261
|
+
const FEE_KT5 = 95238095238095200n;
|
|
262
|
+
|
|
263
|
+
it("prices by keyType number", async () => {
|
|
264
|
+
logTest("prices by keyType number", {});
|
|
265
|
+
const p = new qc.JsonRpcProvider();
|
|
266
|
+
assert.strictEqual((await p.getFeeData(3)).gasPrice, FEE_BASE);
|
|
267
|
+
assert.strictEqual((await p.getFeeData(3, true)).gasPrice, FEE_KT3_FULL);
|
|
268
|
+
assert.strictEqual((await p.getFeeData(5)).gasPrice, FEE_KT5);
|
|
269
|
+
assert.strictEqual((await p.getFeeData(5, true)).gasPrice, FEE_KT5);
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
it("prices by wallet (reads keyType from wallet)", async () => {
|
|
273
|
+
logTest("prices by wallet", {});
|
|
274
|
+
await Initialize(null);
|
|
275
|
+
const p = new qc.JsonRpcProvider();
|
|
276
|
+
|
|
277
|
+
const w3 = qc.Wallet.createRandom(undefined, 3);
|
|
278
|
+
assert.strictEqual((await p.getFeeData(w3)).gasPrice, FEE_BASE);
|
|
279
|
+
assert.strictEqual((await p.getFeeData(w3, false)).gasPrice, FEE_BASE);
|
|
280
|
+
assert.strictEqual((await p.getFeeData(w3, null)).gasPrice, FEE_BASE);
|
|
281
|
+
assert.strictEqual((await p.getFeeData(w3, true)).gasPrice, FEE_KT3_FULL);
|
|
282
|
+
|
|
283
|
+
const w5 = qc.Wallet.createRandom(undefined, 5);
|
|
284
|
+
assert.strictEqual((await p.getFeeData(w5)).gasPrice, FEE_KT5);
|
|
285
|
+
assert.strictEqual((await p.getFeeData(w5, true)).gasPrice, FEE_KT5);
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
it("FeeData exposes only gasPrice (maxFeePerGas / maxPriorityFeePerGas unsupported)", async () => {
|
|
289
|
+
logTest("FeeData exposes only gasPrice", {});
|
|
290
|
+
const p = new qc.JsonRpcProvider();
|
|
291
|
+
const fd = await p.getFeeData(3);
|
|
292
|
+
assert.ok(fd instanceof qc.FeeData);
|
|
293
|
+
assert.strictEqual((fd as any).maxFeePerGas, undefined);
|
|
294
|
+
assert.strictEqual((fd as any).maxPriorityFeePerGas, undefined);
|
|
295
|
+
});
|
|
296
|
+
|
|
297
|
+
it("rejects invalid keyType and invalid first argument", async () => {
|
|
298
|
+
logTest("rejects invalid inputs", {});
|
|
299
|
+
const p = new qc.JsonRpcProvider();
|
|
300
|
+
await assert.rejects(() => p.getFeeData(99), /getGasPrice failed/);
|
|
301
|
+
await assert.rejects(() => p.getFeeData({} as any), /expected a Wallet or a keyType number/);
|
|
302
|
+
await assert.rejects(() => p.getFeeData(null as any), /expected a Wallet or a keyType number/);
|
|
303
|
+
});
|
|
304
|
+
});
|