46 lines
1.7 KiB
JavaScript
46 lines
1.7 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const assert_1 = __importDefault(require("assert"));
|
|
const utils_js_1 = require("./utils.js");
|
|
const index_js_1 = require("../index.js");
|
|
function equal(actual, expected) {
|
|
switch (expected.type) {
|
|
case "address":
|
|
case "boolean":
|
|
case "hexstring":
|
|
case "string":
|
|
assert_1.default.equal(actual, expected.value);
|
|
return;
|
|
case "number":
|
|
assert_1.default.equal(actual, BigInt(expected.value));
|
|
return;
|
|
case "array":
|
|
case "object":
|
|
assert_1.default.ok(Array.isArray(actual), "!array");
|
|
assert_1.default.equal(actual.length, expected.value.length, ".length mismatch");
|
|
for (let i = 0; i < actual.length; i++) {
|
|
equal(actual[i], expected.value[i]);
|
|
}
|
|
return;
|
|
}
|
|
throw new Error(`unsupported: ${expected}`);
|
|
}
|
|
describe("Tests ABI Coder", function () {
|
|
const tests = (0, utils_js_1.loadTests)("abi");
|
|
for (const test of tests) {
|
|
it(`tests ABI encoding: (${test.name})`, function () {
|
|
const encoded = index_js_1.defaultAbiCoder.encode([test.type], [test.value]);
|
|
assert_1.default.equal(encoded, test.encoded, "encoded");
|
|
});
|
|
}
|
|
for (const test of tests) {
|
|
it(`tests ABI decoding: (${test.name})`, function () {
|
|
const decoded = index_js_1.defaultAbiCoder.decode([test.type], test.encoded)[0];
|
|
equal(decoded, test.verbose);
|
|
});
|
|
}
|
|
});
|
|
//# sourceMappingURL=test-abi.js.map
|