PHP WebShell
Текущая директория: /opt/BitGoJS/node_modules/avalanche/tests/apis/platformvm
Просмотр файла: outputs.test.ts
import BN from "bn.js"
import { Buffer } from "buffer/"
import BinTools from "../../../src/utils/bintools"
import {
SECPTransferOutput,
SelectOutputClass
} from "../../../src/apis/platformvm/outputs"
import { Output } from "../../../src/common/output"
const bintools: BinTools = BinTools.getInstance()
describe("Outputs", (): void => {
describe("SECPTransferOutput", (): void => {
const addrs: Buffer[] = [
bintools.cb58Decode("B6D4v1VtPYLbiUvYXtW4Px8oE9imC2vGW"),
bintools.cb58Decode("P5wdRuZeaDt28eHMP5S3w9ZdoBfo7wuzF"),
bintools.cb58Decode("6Y3kysjF9jnHnYkdS9yGAuoHyae2eNmeV")
].sort()
const locktime: BN = new BN(54321)
const addrpay = [addrs[0], addrs[1]]
const fallLocktime: BN = locktime.add(new BN(50))
test("SelectOutputClass", (): void => {
const goodout: SECPTransferOutput = new SECPTransferOutput(
new BN(2600),
addrpay,
fallLocktime,
1
)
const outpayment: Output = SelectOutputClass(goodout.getOutputID())
expect(outpayment).toBeInstanceOf(SECPTransferOutput)
expect(() => {
SelectOutputClass(99)
}).toThrow("Error - SelectOutputClass: unknown outputid")
})
test("comparator", (): void => {
const outpayment1: Output = new SECPTransferOutput(
new BN(10000),
addrs,
locktime,
3
)
const outpayment2: Output = new SECPTransferOutput(
new BN(10001),
addrs,
locktime,
3
)
const outpayment3: Output = new SECPTransferOutput(
new BN(9999),
addrs,
locktime,
3
)
const cmp = Output.comparator()
expect(cmp(outpayment1, outpayment1)).toBe(0)
expect(cmp(outpayment2, outpayment2)).toBe(0)
expect(cmp(outpayment3, outpayment3)).toBe(0)
expect(cmp(outpayment1, outpayment2)).toBe(-1)
expect(cmp(outpayment1, outpayment3)).toBe(1)
})
test("SECPTransferOutput", (): void => {
const out: SECPTransferOutput = new SECPTransferOutput(
new BN(10000),
addrs,
locktime,
3
)
expect(out.getOutputID()).toBe(7)
expect(JSON.stringify(out.getAddresses().sort())).toStrictEqual(
JSON.stringify(addrs.sort())
)
expect(out.getThreshold()).toBe(3)
expect(out.getLocktime().toNumber()).toBe(locktime.toNumber())
const r: number = out.getAddressIdx(addrs[2])
expect(out.getAddress(r)).toStrictEqual(addrs[2])
expect((): void => {
out.getAddress(400)
}).toThrow()
expect(out.getAmount().toNumber()).toBe(10000)
const b: Buffer = out.toBuffer()
expect(out.toString()).toBe(bintools.bufferToB58(b))
const s: Buffer[] = out.getSpenders(addrs)
expect(JSON.stringify(s.sort())).toBe(JSON.stringify(addrs.sort()))
const m1: boolean = out.meetsThreshold([addrs[0]])
expect(m1).toBe(false)
const m2: boolean = out.meetsThreshold(addrs, new BN(100))
expect(m2).toBe(false)
const m3: boolean = out.meetsThreshold(addrs)
expect(m3).toBe(true)
const m4: boolean = out.meetsThreshold(addrs, locktime.add(new BN(100)))
expect(m4).toBe(true)
})
})
})
Выполнить команду
Для локальной разработки. Не используйте в интернете!