42 lines
1.9 KiB
TypeScript
42 lines
1.9 KiB
TypeScript
import { assert } from "@cosmjs/utils";
|
|
|
|
import { findSequenceForSignedTx } from "./sequence";
|
|
import response1 from "./testdata/txresponse1.json";
|
|
import response2 from "./testdata/txresponse2.json";
|
|
import response3 from "./testdata/txresponse3.json";
|
|
import { isWrappedStdTx } from "./tx";
|
|
|
|
// Those values must match ./testdata/txresponse*.json
|
|
const chainId = "testing";
|
|
const accountNumber = 4;
|
|
|
|
describe("sequence", () => {
|
|
describe("findSequenceForSignedTx", () => {
|
|
it("works", async () => {
|
|
assert(isWrappedStdTx(response1.tx));
|
|
assert(isWrappedStdTx(response2.tx));
|
|
assert(isWrappedStdTx(response3.tx));
|
|
|
|
const current = 100; // what we get from GET /auth/accounts/{address}
|
|
expect(await findSequenceForSignedTx(response1.tx, chainId, accountNumber, current)).toEqual(10);
|
|
// We know response3.height > response1.height, so the sequence must be at least 10+1
|
|
expect(await findSequenceForSignedTx(response3.tx, chainId, accountNumber, current, 11)).toEqual(19);
|
|
// We know response3.height > response2.height > response1.height, so the sequence must be at least 10+1 and smaller than 19
|
|
expect(await findSequenceForSignedTx(response2.tx, chainId, accountNumber, 19, 11)).toEqual(13);
|
|
});
|
|
|
|
it("returns undefined when sequence is not in range", async () => {
|
|
assert(isWrappedStdTx(response1.tx));
|
|
assert(isWrappedStdTx(response2.tx));
|
|
assert(isWrappedStdTx(response3.tx));
|
|
|
|
expect(await findSequenceForSignedTx(response1.tx, chainId, accountNumber, 5)).toBeUndefined();
|
|
expect(await findSequenceForSignedTx(response1.tx, chainId, accountNumber, 20, 11)).toBeUndefined();
|
|
expect(await findSequenceForSignedTx(response1.tx, chainId, accountNumber, 20, 50)).toBeUndefined();
|
|
|
|
// upper bound is not included in the possible results
|
|
expect(await findSequenceForSignedTx(response1.tx, chainId, accountNumber, 10)).toBeUndefined();
|
|
});
|
|
});
|
|
});
|