aboutsummaryrefslogtreecommitdiff
path: root/src/crypto/cryptoApi-test.ts
blob: cc5d1156e2d585c60b93f6bad2a5d9ce9324c9cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import {CryptoApi} from "./cryptoApi";
import {ReserveRecord, DenominationRecord, DenominationStatus} from "../types";
import {test} from "ava";

let masterPub1: string = "CQQZ9DY3MZ1ARMN5K1VKDETS04Y2QCKMMCFHZSWJWWVN82BTTH00";

let denomValid1: DenominationRecord = {
  masterSig: "CJFJCQ48Q45PSGJ5KY94N6M2TPARESM2E15BSPBD95YVVPEARAEQ6V6G4Z2XBMS0QM0F3Y9EYVP276FCS90EQ1578ZC8JHFBZ3NGP3G",
  stampStart: "/Date(1473148381)/",
  stampExpireWithdraw: "/Date(2482300381)/",
  stampExpireDeposit: "/Date(1851580381)/",
  denomPub: "51R7ARKCD5HJTTV5F4G0M818E9SP280A40G2GVH04CR30GHS84R3JHHP6GSM2D9Q6514CGT568R32C9J6CWM4DSH64TM4DSM851K0CA48CVKAC1P6H144C2160T46DHK8CVM4HJ274S38C1M6S338D9N6GWM8DT684T3JCT36S13EC9G88R3EGHQ8S0KJGSQ60SKGD216N33AGJ2651K2E9S60TMCD1N75244HHQ6X33EDJ570R3GGJ2651MACA38D130DA560VK4HHJ68WK2CA26GW3ECSH6D13EC9S88VK2GT66WVK8D9G750K0D9R8RRK4DHQ71332GHK8D23GE26710M2H9K6WVK8HJ38MVKEGA66N23AC9H88VKACT58MV3CCSJ6H1K4DT38GRK0C9M8N33CE1R60V4AHA38H1KECSH6S33JH9N8GRKGH1K68S36GH354520818CMG26C1H60R30C935452081918G2J2G0",
  stampExpireLegal: "/Date(1567756381)/",
  value: {
    "currency": "PUDOS",
    "value": 0,
    "fraction": 100000
  },
  feeWithdraw: {
    "currency": "PUDOS",
    "value": 0,
    "fraction": 10000
  },
  feeDeposit: {
    "currency": "PUDOS",
    "value": 0,
    "fraction": 10000
  },
  feeRefresh: {
    "currency": "PUDOS",
    "value": 0,
    "fraction": 10000
  },
  feeRefund: {
    "currency": "PUDOS",
    "value": 0,
    "fraction": 10000
  },
  denomPubHash: "dummy",
  status: DenominationStatus.Unverified,
  isOffered: true,
  exchangeBaseUrl: "https://exchange.example.com/",
};

let denomInvalid1 = JSON.parse(JSON.stringify(denomValid1));
denomInvalid1.value.value += 1;

test("string hashing", async t => {
  let crypto = new CryptoApi();
  let s = await crypto.hashString("hello taler");
  let sh = "8RDMADB3YNF3QZBS3V467YZVJAMC2QAQX0TZGVZ6Q5PFRRAJFT70HHN0QF661QR9QWKYMMC7YEMPD679D2RADXCYK8Y669A2A5MKQFR";
  t.true(s == sh);
  t.pass();
});

test("precoin creation", async t => {
  let crypto = new CryptoApi();
  let {priv, pub} = await crypto.createEddsaKeypair();
  let r: ReserveRecord = {
    reserve_pub: pub,
    reserve_priv: priv,
    hasPayback: false,
    exchange_base_url: "https://example.com/exchange",
    created: 0,
    requested_amount: {currency: "PUDOS", value: 0, fraction: 0},
    precoin_amount: {currency: "PUDOS", value: 0, fraction: 0},
    current_amount: null,
    confirmed: false,
    last_query: null,
  };

  let precoin = await crypto.createPreCoin(denomValid1, r);
  t.pass();
});

test("denom validation", async t => {
  let crypto = new CryptoApi();
  let v: boolean;
  v = await crypto.isValidDenom(denomValid1, masterPub1);
  t.true(v);
  v = await crypto.isValidDenom(denomInvalid1, masterPub1);
  t.true(!v);
  t.pass();
});