@bitgo-beta/sdk-coin-rune 1.0.0-beta.152 → 1.0.0-beta.1521

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.
Files changed (39) hide show
  1. package/dist/src/lib/constants.d.ts +5 -4
  2. package/dist/src/lib/constants.d.ts.map +1 -1
  3. package/dist/src/lib/constants.js +16 -10
  4. package/dist/src/lib/keyPair.d.ts.map +1 -1
  5. package/dist/src/lib/keyPair.js +3 -3
  6. package/dist/src/lib/utils.d.ts +1 -1
  7. package/dist/src/lib/utils.d.ts.map +1 -1
  8. package/dist/src/lib/utils.js +7 -8
  9. package/dist/src/rune.d.ts.map +1 -1
  10. package/dist/src/rune.js +8 -4
  11. package/dist/test/resources/rune.d.ts +74 -0
  12. package/dist/test/resources/rune.d.ts.map +1 -0
  13. package/dist/test/resources/rune.js +51 -0
  14. package/dist/test/resources/trune.d.ts +110 -0
  15. package/dist/test/resources/trune.d.ts.map +1 -0
  16. package/dist/test/resources/trune.js +102 -0
  17. package/dist/test/unit/keyPair.d.ts +2 -0
  18. package/dist/test/unit/keyPair.d.ts.map +1 -0
  19. package/dist/test/unit/keyPair.js +94 -0
  20. package/dist/test/unit/rune.d.ts +2 -0
  21. package/dist/test/unit/rune.d.ts.map +1 -0
  22. package/dist/test/unit/rune.js +369 -0
  23. package/dist/test/unit/transaction.d.ts +2 -0
  24. package/dist/test/unit/transaction.d.ts.map +1 -0
  25. package/dist/test/unit/transaction.js +146 -0
  26. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts +2 -0
  27. package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  28. package/dist/test/unit/transactionBuilder/transactionBuilder.js +97 -0
  29. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  30. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  31. package/dist/test/unit/transactionBuilder/transferBuilder.js +202 -0
  32. package/dist/test/unit/utils.d.ts +2 -0
  33. package/dist/test/unit/utils.d.ts.map +1 -0
  34. package/dist/test/unit/utils.js +100 -0
  35. package/dist/tsconfig.tsbuildinfo +1 -0
  36. package/package.json +13 -10
  37. package/.eslintignore +0 -5
  38. package/.mocharc.yml +0 -8
  39. package/CHANGELOG.md +0 -102
@@ -0,0 +1,110 @@
1
+ export declare const TEST_TX_WITH_MEMO: {
2
+ hash: string;
3
+ signature: string;
4
+ pubKey: string;
5
+ privateKey: string;
6
+ signedTxBase64: string;
7
+ sender: string;
8
+ recipient: string;
9
+ chainId: string;
10
+ accountNumber: number;
11
+ sequence: number;
12
+ memo: string;
13
+ sendAmount: string;
14
+ feeAmount: string;
15
+ sendMessage: {
16
+ typeUrl: string;
17
+ value: {
18
+ amount: {
19
+ denom: string;
20
+ amount: string;
21
+ }[];
22
+ fromAddress: string;
23
+ toAddress: string;
24
+ };
25
+ };
26
+ gasBudget: {
27
+ amount: {
28
+ denom: string;
29
+ amount: string;
30
+ }[];
31
+ gasLimit: number;
32
+ };
33
+ };
34
+ export declare const TEST_SEND_TX: {
35
+ hash: string;
36
+ signature: string;
37
+ pubKey: string;
38
+ privateKey: string;
39
+ signedTxBase64: string;
40
+ sender: string;
41
+ recipient: string;
42
+ chainId: string;
43
+ accountNumber: number;
44
+ sequence: number;
45
+ sendAmount: string;
46
+ feeAmount: string;
47
+ sendMessage: {
48
+ typeUrl: string;
49
+ value: {
50
+ amount: {
51
+ denom: string;
52
+ amount: string;
53
+ }[];
54
+ fromAddress: string;
55
+ toAddress: string;
56
+ };
57
+ };
58
+ gasBudget: {
59
+ amount: {
60
+ denom: string;
61
+ amount: string;
62
+ }[];
63
+ gasLimit: number;
64
+ };
65
+ };
66
+ export declare const testnetAddress: {
67
+ address1: string;
68
+ address2: string;
69
+ address3: string;
70
+ address4: string;
71
+ validatorAddress1: string;
72
+ validatorAddress2: string;
73
+ validatorAddress3: string;
74
+ validatorAddress4: string;
75
+ noMemoIdAddress: string;
76
+ validMemoIdAddress: string;
77
+ invalidMemoIdAddress: string;
78
+ multipleMemoIdAddress: string;
79
+ };
80
+ export declare const testnetCoinAmounts: {
81
+ amount1: {
82
+ amount: string;
83
+ denom: string;
84
+ };
85
+ amount2: {
86
+ amount: string;
87
+ denom: string;
88
+ };
89
+ amount3: {
90
+ amount: string;
91
+ denom: string;
92
+ };
93
+ amount4: {
94
+ amount: string;
95
+ denom: string;
96
+ };
97
+ amount5: {
98
+ amount: string;
99
+ denom: string;
100
+ };
101
+ };
102
+ export declare const wrwUser: {
103
+ senderAddress: string;
104
+ destinationAddress: string;
105
+ userPrivateKey: string;
106
+ backupPrivateKey: string;
107
+ bitgoPublicKey: string;
108
+ walletPassphrase: string;
109
+ };
110
+ //# sourceMappingURL=trune.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trune.d.ts","sourceRoot":"","sources":["../../../test/resources/trune.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC7B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCxB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAa1B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;CAM9B,CAAC;AAEF,eAAO,MAAM,OAAO;;;;;;;CAUnB,CAAC"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wrwUser = exports.testnetCoinAmounts = exports.testnetAddress = exports.TEST_SEND_TX = exports.TEST_TX_WITH_MEMO = void 0;
4
+ // Get the test data by running the scripts for the particular coin from coin-sandbox repo.
5
+ exports.TEST_TX_WITH_MEMO = {
6
+ hash: 'B0C1C424ABA63C7401691F7AC777D080A1C4E59594CCBC74DC4B213D747AA1F1',
7
+ signature: 'E4PZxdeEGQJ8In+cjPiEd979mXuQlDesucLoivVt0wljx9/0bXNeL5+2ecRironf0Fo3pa1vsBpp7wM0UNWM7A==',
8
+ pubKey: 'AxLtvJO7WCAT1uNYriwGyxu678ck7+0ag5Pd589dtydC',
9
+ privateKey: 'uz2P7K8xhtoHM1QAbXXWBx83uvyA/ulQTx4tM2qGXAE=',
10
+ signedTxBase64: 'ClMKTgoOL3R5cGVzLk1zZ1NlbmQSPAoUX+ummTeIOBAZHQ0YsPb1CZ040lQSFID5ph0o2N3lj2qmLDH59qRQag14Gg4KBHJ1bmUSBjEwMDAwMBIBMRJpClAKRgofL2Nvc21vcy5jcnlwdG8uc2VjcDI1NmsxLlB1YktleRIjCiEDEu28k7tYIBPW41iuLAbLG7rvxyTv7RqDk93nz123J0ISBAoCCAEYAxIVCg4KBHJ1bmUSBjEwMDAwMBCA4esXGkATg9nF14QZAnwif5yM+IR33v2Ze5CUN6y5wuiK9W3TCWPH3/Rtc14vn7Z5xGKuid/QWjelrW+wGmnvAzRQ1Yzs',
11
+ sender: 'sthor1tl46dxfh3qupqxgap5vtpah4pxwn35j5tnjzls',
12
+ recipient: 'sthor1sru6v8fgmrw7trm25ckrr70k53gx5rtc4xhfgf',
13
+ chainId: 'thorchain-stagenet-2',
14
+ accountNumber: 15,
15
+ sequence: 3,
16
+ memo: '1',
17
+ sendAmount: '100000',
18
+ feeAmount: '100000',
19
+ sendMessage: {
20
+ typeUrl: '/types.MsgSend',
21
+ value: {
22
+ amount: [
23
+ {
24
+ denom: 'rune',
25
+ amount: '100000',
26
+ },
27
+ ],
28
+ fromAddress: 'sthor1tl46dxfh3qupqxgap5vtpah4pxwn35j5tnjzls',
29
+ toAddress: 'sthor1sru6v8fgmrw7trm25ckrr70k53gx5rtc4xhfgf',
30
+ },
31
+ },
32
+ gasBudget: {
33
+ amount: [{ denom: 'rune', amount: '100000' }],
34
+ gasLimit: 50000000,
35
+ },
36
+ };
37
+ exports.TEST_SEND_TX = {
38
+ hash: 'FA4635875A1A0E9175126AA6FF5D50B943F74C23B9A1C952808F1274ABC690C8',
39
+ signature: 'aFAUTspGfdniC1x2Uia9VByLzSjtzzTSZKVZ7s45Otcp9cfx+kMxmjfd0VPIATKjoAOs55koaUPO3USdzVVkaQ==',
40
+ pubKey: 'AxLtvJO7WCAT1uNYriwGyxu678ck7+0ag5Pd589dtydC',
41
+ privateKey: 'uz2P7K8xhtoHM1QAbXXWBx83uvyA/ulQTx4tM2qGXAE=',
42
+ signedTxBase64: 'ClAKTgoOL3R5cGVzLk1zZ1NlbmQSPAoUX+ummTeIOBAZHQ0YsPb1CZ040lQSFID5ph0o2N3lj2qmLDH59qRQag14Gg4KBHJ1bmUSBjEwMDAwMBJpClAKRgofL2Nvc21vcy5jcnlwdG8uc2VjcDI1NmsxLlB1YktleRIjCiEDEu28k7tYIBPW41iuLAbLG7rvxyTv7RqDk93nz123J0ISBAoCCAEYBBIVCg4KBHJ1bmUSBjEwMDAwMBCA4esXGkBoUBROykZ92eILXHZSJr1UHIvNKO3PNNJkpVnuzjk61yn1x/H6QzGaN93RU8gBMqOgA6znmShpQ87dRJ3NVWRp',
43
+ sender: 'sthor1tl46dxfh3qupqxgap5vtpah4pxwn35j5tnjzls',
44
+ recipient: 'sthor1sru6v8fgmrw7trm25ckrr70k53gx5rtc4xhfgf',
45
+ chainId: 'thorchain-stagenet-2',
46
+ accountNumber: 15,
47
+ sequence: 4,
48
+ sendAmount: '100000',
49
+ feeAmount: '100000',
50
+ sendMessage: {
51
+ typeUrl: '/types.MsgSend',
52
+ value: {
53
+ amount: [
54
+ {
55
+ denom: 'rune',
56
+ amount: '100000',
57
+ },
58
+ ],
59
+ fromAddress: 'sthor1tl46dxfh3qupqxgap5vtpah4pxwn35j5tnjzls',
60
+ toAddress: 'sthor1sru6v8fgmrw7trm25ckrr70k53gx5rtc4xhfgf',
61
+ },
62
+ },
63
+ gasBudget: {
64
+ amount: [
65
+ {
66
+ denom: 'rune',
67
+ amount: '100000',
68
+ },
69
+ ],
70
+ gasLimit: 50000000,
71
+ },
72
+ };
73
+ exports.testnetAddress = {
74
+ address1: 'sthor19phfqh3ce3nnjhh0cssn433nydq9shx76s8qgg',
75
+ address2: 'sthor1cghgr0dneyymxx6fjq3e72q83z0qz7c3sjhtmc',
76
+ address3: 'sthor1cghgr0dneyymxx6fjq3e72q83z0qz7c3sjhtm',
77
+ address4: 'stho1cghgr0dneyymxx6fjq3e72q83z0qz7c3sjhtmc',
78
+ validatorAddress1: 'sthor1skucxdq0fkwpx4hjkzn4g303hlzcf30nqduln0',
79
+ validatorAddress2: 'sthor1z6z5v9xgzwxd9gytdkpve0g63mcfffjdzkpwue',
80
+ validatorAddress3: 'sthor19k46y3nkra9q9a48wjgwac65ms385pcgpueue',
81
+ validatorAddress4: 'stho1x9ths2nevz0e002hq93jfdpdt7rtmxwdq07fp5',
82
+ noMemoIdAddress: 'sthor1tl46dxfh3qupqxgap5vtpah4pxwn35j5tnjzls',
83
+ validMemoIdAddress: 'sthor1tl46dxfh3qupqxgap5vtpah4pxwn35j5tnjzls?memoId=2',
84
+ invalidMemoIdAddress: 'sthor1tl46dxfh3qupqxgap5vtpah4pxwn35j5tnjzls?memoId=xyz',
85
+ multipleMemoIdAddress: 'sthor1tl46dxfh3qupqxgap5vtpah4pxwn35j5tnjzls?memoId=3&memoId=12',
86
+ };
87
+ exports.testnetCoinAmounts = {
88
+ amount1: { amount: '100000', denom: 'rune' },
89
+ amount2: { amount: '1000000', denom: 'rune' },
90
+ amount3: { amount: '10000000', denom: 'rune' },
91
+ amount4: { amount: '-1', denom: 'rune' },
92
+ amount5: { amount: '1000000000', denom: 'arune' },
93
+ };
94
+ exports.wrwUser = {
95
+ senderAddress: 'sthor1gqek8kl5mr9c37rl8yp2mljne67jgaqm96jg2f',
96
+ destinationAddress: 'sthor1tl46dxfh3qupqxgap5vtpah4pxwn35j5tnjzls',
97
+ userPrivateKey: '{"iv":"9rcHMytmmnHjG1llBoc49g==","v":1,"iter":10000,"ks":256,"ts":64,"mode" :"ccm","adata":"","cipher":"aes","salt":"8lFAwTrcCzQ=","ct":"1gMRC60nu01IYr jgir9GCuQNLMZC2vt/pFjgL+tV3K7/rviSguDsua133PkNEeuty1mZxNH2S1TKu1KxZJMlB+MAs vo7k9dIyCgQvkX/nbJFFaRrnLL55mcQe0PhCdVNRHx9doXMngRF+UqEMLD8F0HNE1+ZPGzsathH DLFPxLCRMrwA/Ss/LQowGiXo4WnzVK3MQcX6wdmZvfV+S3xswRjHkLvolVY3rVGP5PkU86Wwrmy e1CKM4hSGA8FModa718Svk7C+LHr0yOTuuPftXtH0fAPPo9KH7f+EbBWMJPQgjK8DW/z1xnDgLH dzhveyNPevqUqb3FEyutjow+KBkxl+xHqJ4gKcU9MLsghPMCy0zSq2kBbhlqWJ7XwduhHVGv2nT rlsEfh7Z0fbqZTX1RQ5AKZhSBFEqmq1hKxRlhVcr9KqBw814tIfdFD7nMgV7rz+3X8cJaK2tDXH 0QaY8bJGwxwH38FsfNevs8Qf2bx5VrD/Vw3wo0G5hJ7+TdPCrib8UWyxPGuruH7b8hwCUTZaq97 zkDp7c79BDWyH8ycTxQXjLPwb1CwpUiRDc6NHD2p3iGVaztMdQOMXmPeeMhBNGVI0MPAfSdcDip 2E5Ek0fwnI1mEuFjPMkc+VOlsVhlWfV/9Xpoh3NadPhqg3i9Cr2uNT/PSyHd/jpIqG5DlaaEvVD f7COqNvXX5Qqmlr9dL3R2cf0zP8TPImAlRfef4D8zatHtylKkImMc0JcdcXTzwU/5tf21o/Y701 DLYjwUUgqQ57ObHHNlSvmdIuO1rD5LAn96NAYNRStrENqmbibE5MsYrp9nPAprCNFnZR6UNpXwD hvq9gvxRG+PjmXGj0nuyR7cshxURLy0/p4tq7LkGjk4Gg31Mgk41lcYUW2tLuUbTYmpteu3Cdwe DFuLsfI1qZxKyr6V5Nse3ZAvnJLTZnQXiHOnc2y5/e53+MAVupXR7HZzx7SIJ+fqxpjxvccmgJC sWaPo+Lsx6KaSNkQGFMGuyZ87IEvm7vk2GyIP+FQUn4nmTdEDLzg7nNo+zf5WT4A6Yz3GNAa3Nh 2QHZSFGWcubOXDawh6lAjZ78GNK9yJDp22dJTmfZ+1TsVORpbZw="}',
98
+ backupPrivateKey: '{"iv":"0EDqGU1yBE2PM4ry6TxARA==","v":1,"iter":10000,"ks":256,"ts":64,"mode" :"ccm","adata":"","cipher":"aes","salt":"a8T0fVVhTz0=","ct":"syCrJ+RD8oHZ4z jltLmyNS/VVmSLXLMAdnVnoPNEfFX9mIMAycYCajMR297l09fPsWWqDcDs0cSI0xNbnMjyW30b/ JOvQ33eaBSiyBr3vbmhaEFduZTUgOCNg/Js0cAkEkeE/KDkfOUB0HzfSEQb6m0eXmWgGSnySUOd TlZZ/thT7j2oPHVpPE52h6Yi3LS1Jkt3S7ySStXvG/4iurhcL32a32Fx3IQxs/bg8JBIGlRG644 aLttCJ+uPihaSISUGn1hh0iEz2ZAaCoCkq7oNPrK+pxHHOmbjxp6XpV67EmQ/JRfSt47eW3jC7A D+xaLLHspjQifp6ClZeHT2pBrkcWrZfr1uL5w3CKrXQeJ0pXUoRmJwGys4hm5Bzu4imANo+jd1+ wg73ByYQ5VwRhV1qhb82vUrQ0i4k5Gt2l6U2LZ/DMQiUbq7FdjYWqfZmk18GIZ6g3IPJtGjnA6x o8RTvkytMMv8btsx/aa6jE6EMeFtGzlhhJJunpcS4QG4IkIuyAjPafwOklEwXklZCLDpKdVYgTR RE0XHC0VXOGQwGUARzMZwQO5OaRyQkxtZ5/CawI5jrwMZP+bpC9dKzsGOXfSvvFsJWnkboXyy09 bFwTuKHx0ZILdA/8Xq5689YEmFljHTeQ0Es/q5y5kU+XzT4sjjgxz1qqhUJVh7wDwQevRDWTwGJ Lfi2AeLsv2f0PKiGTYJzQGSXUerhLMwhg3rXNfXGkrWSmEhJH/RsvF6CdaRKWxVd+k8K5ULLwK+ sdujA5murZ24KI5z0Yr9qW2TSsJRG3PS+ZH1q3VGYaz6k912QVzyvzds8+hfaHNtr6OGBWahGZo JchgnQHSfAZxOUz7K7WNzh934HK5+e11/lF/Fxssumz2OStFWI18oBB7/8YBi6PEp3sFddOQVSA BXRGuStolGna43nly4bavOic7XIoNHs61hynMeR6NcthsSrj5xZ6q36EqLdfkDImQvu+3BXClT7 Q4bdEfXm0t7Bgmid4NeJ1I3grXZMOmVbPgcypfxp2jrkjme/R0/eJL4B38WU2xjxDg+WlBGy8dA xg8ll+n2NkA7lvJz5NBDxbGHRAhtyVTF8YA+Oxps3rumIw=="}',
99
+ bitgoPublicKey: '02d754ffd645ba3d87fbdeb3578dbc22fc252ebb299416434a7059d9638f52d11e0fd153d9d dfb2a193531ac5b7d3b223188a957de1312d3ede35305ee70b76376',
100
+ walletPassphrase: 'Ghghjkg!455544llll',
101
+ };
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3Jlc291cmNlcy90cnVuZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyRkFBMkY7QUFDOUUsUUFBQSxpQkFBaUIsR0FBRztJQUMvQixJQUFJLEVBQUUsa0VBQWtFO0lBQ3hFLFNBQVMsRUFBRSwwRkFBMEY7SUFDckcsTUFBTSxFQUFFLDhDQUE4QztJQUN0RCxVQUFVLEVBQUUsOENBQThDO0lBQzFELGNBQWMsRUFDWiwwVkFBMFY7SUFDNVYsTUFBTSxFQUFFLDhDQUE4QztJQUN0RCxTQUFTLEVBQUUsOENBQThDO0lBQ3pELE9BQU8sRUFBRSxzQkFBc0I7SUFDL0IsYUFBYSxFQUFFLEVBQUU7SUFDakIsUUFBUSxFQUFFLENBQUM7SUFDWCxJQUFJLEVBQUUsR0FBRztJQUNULFVBQVUsRUFBRSxRQUFRO0lBQ3BCLFNBQVMsRUFBRSxRQUFRO0lBQ25CLFdBQVcsRUFBRTtRQUNYLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsS0FBSyxFQUFFO1lBQ0wsTUFBTSxFQUFFO2dCQUNOO29CQUNFLEtBQUssRUFBRSxNQUFNO29CQUNiLE1BQU0sRUFBRSxRQUFRO2lCQUNqQjthQUNGO1lBQ0QsV0FBVyxFQUFFLDhDQUE4QztZQUMzRCxTQUFTLEVBQUUsOENBQThDO1NBQzFEO0tBQ0Y7SUFDRCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQzdDLFFBQVEsRUFBRSxRQUFRO0tBQ25CO0NBQ0YsQ0FBQztBQUVXLFFBQUEsWUFBWSxHQUFHO0lBQzFCLElBQUksRUFBRSxrRUFBa0U7SUFDeEUsU0FBUyxFQUFFLDBGQUEwRjtJQUNyRyxNQUFNLEVBQUUsOENBQThDO0lBQ3RELFVBQVUsRUFBRSw4Q0FBOEM7SUFDMUQsY0FBYyxFQUNaLHNWQUFzVjtJQUN4VixNQUFNLEVBQUUsOENBQThDO0lBQ3RELFNBQVMsRUFBRSw4Q0FBOEM7SUFDekQsT0FBTyxFQUFFLHNCQUFzQjtJQUMvQixhQUFhLEVBQUUsRUFBRTtJQUNqQixRQUFRLEVBQUUsQ0FBQztJQUNYLFVBQVUsRUFBRSxRQUFRO0lBQ3BCLFNBQVMsRUFBRSxRQUFRO0lBQ25CLFdBQVcsRUFBRTtRQUNYLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsS0FBSyxFQUFFO1lBQ0wsTUFBTSxFQUFFO2dCQUNOO29CQUNFLEtBQUssRUFBRSxNQUFNO29CQUNiLE1BQU0sRUFBRSxRQUFRO2lCQUNqQjthQUNGO1lBQ0QsV0FBVyxFQUFFLDhDQUE4QztZQUMzRCxTQUFTLEVBQUUsOENBQThDO1NBQzFEO0tBQ0Y7SUFDRCxTQUFTLEVBQUU7UUFDVCxNQUFNLEVBQUU7WUFDTjtnQkFDRSxLQUFLLEVBQUUsTUFBTTtnQkFDYixNQUFNLEVBQUUsUUFBUTthQUNqQjtTQUNGO1FBQ0QsUUFBUSxFQUFFLFFBQVE7S0FDbkI7Q0FDRixDQUFDO0FBRVcsUUFBQSxjQUFjLEdBQUc7SUFDNUIsUUFBUSxFQUFFLDhDQUE4QztJQUN4RCxRQUFRLEVBQUUsOENBQThDO0lBQ3hELFFBQVEsRUFBRSw2Q0FBNkM7SUFDdkQsUUFBUSxFQUFFLDZDQUE2QztJQUN2RCxpQkFBaUIsRUFBRSw4Q0FBOEM7SUFDakUsaUJBQWlCLEVBQUUsOENBQThDO0lBQ2pFLGlCQUFpQixFQUFFLDZDQUE2QztJQUNoRSxpQkFBaUIsRUFBRSw2Q0FBNkM7SUFDaEUsZUFBZSxFQUFFLDhDQUE4QztJQUMvRCxrQkFBa0IsRUFBRSx1REFBdUQ7SUFDM0Usb0JBQW9CLEVBQUUseURBQXlEO0lBQy9FLHFCQUFxQixFQUFFLGlFQUFpRTtDQUN6RixDQUFDO0FBRVcsUUFBQSxrQkFBa0IsR0FBRztJQUNoQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDNUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0lBQzdDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtJQUM5QyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDeEMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0NBQ2xELENBQUM7QUFFVyxRQUFBLE9BQU8sR0FBRztJQUNyQixhQUFhLEVBQUUsOENBQThDO0lBQzdELGtCQUFrQixFQUFFLDhDQUE4QztJQUNsRSxjQUFjLEVBQ1osd3ZDQUF3dkM7SUFDMXZDLGdCQUFnQixFQUNkLG92Q0FBb3ZDO0lBQ3R2QyxjQUFjLEVBQ1oscUlBQXFJO0lBQ3ZJLGdCQUFnQixFQUFFLG9CQUFvQjtDQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2V0IHRoZSB0ZXN0IGRhdGEgYnkgcnVubmluZyB0aGUgc2NyaXB0cyBmb3IgdGhlIHBhcnRpY3VsYXIgY29pbiBmcm9tIGNvaW4tc2FuZGJveCByZXBvLlxuZXhwb3J0IGNvbnN0IFRFU1RfVFhfV0lUSF9NRU1PID0ge1xuICBoYXNoOiAnQjBDMUM0MjRBQkE2M0M3NDAxNjkxRjdBQzc3N0QwODBBMUM0RTU5NTk0Q0NCQzc0REM0QjIxM0Q3NDdBQTFGMScsXG4gIHNpZ25hdHVyZTogJ0U0UFp4ZGVFR1FKOEluK2NqUGlFZDk3OW1YdVFsRGVzdWNMb2l2VnQwd2xqeDkvMGJYTmVMNSsyZWNSaXJvbmYwRm8zcGExdnNCcHA3d00wVU5XTTdBPT0nLFxuICBwdWJLZXk6ICdBeEx0dkpPN1dDQVQxdU5Zcml3R3l4dTY3OGNrNyswYWc1UGQ1ODlkdHlkQycsXG4gIHByaXZhdGVLZXk6ICd1ejJQN0s4eGh0b0hNMVFBYlhYV0J4ODN1dnlBL3VsUVR4NHRNMnFHWEFFPScsXG4gIHNpZ25lZFR4QmFzZTY0OlxuICAgICdDbE1LVGdvT0wzUjVjR1Z6TGsxeloxTmxibVFTUEFvVVgrdW1tVGVJT0JBWkhRMFlzUGIxQ1owNDBsUVNGSUQ1cGgwbzJOM2xqMnFtTERINTlxUlFhZzE0R2c0S0JISjFibVVTQmpFd01EQXdNQklCTVJKcENsQUtSZ29mTDJOdmMyMXZjeTVqY25sd2RHOHVjMlZqY0RJMU5tc3hMbEIxWWt0bGVSSWpDaUVERXUyOGs3dFlJQlBXNDFpdUxBYkxHN3J2eHlUdjdScURrOTNuejEyM0owSVNCQW9DQ0FFWUF4SVZDZzRLQkhKMWJtVVNCakV3TURBd01CQ0E0ZXNYR2tBVGc5bkYxNFFaQW53aWY1eU0rSVIzM3YyWmU1Q1VONnk1d3VpSzlXM1RDV1BIMy9SdGMxNHZuN1o1eEdLdWlkL1FXamVsclcrd0dtbnZBelJRMVl6cycsXG4gIHNlbmRlcjogJ3N0aG9yMXRsNDZkeGZoM3F1cHF4Z2FwNXZ0cGFoNHB4d24zNWo1dG5qemxzJyxcbiAgcmVjaXBpZW50OiAnc3Rob3Ixc3J1NnY4Zmdtcnc3dHJtMjVja3JyNzBrNTNneDVydGM0eGhmZ2YnLFxuICBjaGFpbklkOiAndGhvcmNoYWluLXN0YWdlbmV0LTInLFxuICBhY2NvdW50TnVtYmVyOiAxNSxcbiAgc2VxdWVuY2U6IDMsXG4gIG1lbW86ICcxJyxcbiAgc2VuZEFtb3VudDogJzEwMDAwMCcsXG4gIGZlZUFtb3VudDogJzEwMDAwMCcsXG4gIHNlbmRNZXNzYWdlOiB7XG4gICAgdHlwZVVybDogJy90eXBlcy5Nc2dTZW5kJyxcbiAgICB2YWx1ZToge1xuICAgICAgYW1vdW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBkZW5vbTogJ3J1bmUnLFxuICAgICAgICAgIGFtb3VudDogJzEwMDAwMCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZnJvbUFkZHJlc3M6ICdzdGhvcjF0bDQ2ZHhmaDNxdXBxeGdhcDV2dHBhaDRweHduMzVqNXRuanpscycsXG4gICAgICB0b0FkZHJlc3M6ICdzdGhvcjFzcnU2djhmZ21ydzd0cm0yNWNrcnI3MGs1M2d4NXJ0YzR4aGZnZicsXG4gICAgfSxcbiAgfSxcbiAgZ2FzQnVkZ2V0OiB7XG4gICAgYW1vdW50OiBbeyBkZW5vbTogJ3J1bmUnLCBhbW91bnQ6ICcxMDAwMDAnIH1dLFxuICAgIGdhc0xpbWl0OiA1MDAwMDAwMCxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBURVNUX1NFTkRfVFggPSB7XG4gIGhhc2g6ICdGQTQ2MzU4NzVBMUEwRTkxNzUxMjZBQTZGRjVENTBCOTQzRjc0QzIzQjlBMUM5NTI4MDhGMTI3NEFCQzY5MEM4JyxcbiAgc2lnbmF0dXJlOiAnYUZBVVRzcEdmZG5pQzF4MlVpYTlWQnlMelNqdHp6VFNaS1ZaN3M0NU90Y3A5Y2Z4K2tNeG1qZmQwVlBJQVRLam9BT3M1NWtvYVVQTzNVU2R6VlZrYVE9PScsXG4gIHB1YktleTogJ0F4THR2Sk83V0NBVDF1TllyaXdHeXh1Njc4Y2s3KzBhZzVQZDU4OWR0eWRDJyxcbiAgcHJpdmF0ZUtleTogJ3V6MlA3Szh4aHRvSE0xUUFiWFhXQng4M3V2eUEvdWxRVHg0dE0ycUdYQUU9JyxcbiAgc2lnbmVkVHhCYXNlNjQ6XG4gICAgJ0NsQUtUZ29PTDNSNWNHVnpMazF6WjFObGJtUVNQQW9VWCt1bW1UZUlPQkFaSFEwWXNQYjFDWjA0MGxRU0ZJRDVwaDBvMk4zbGoycW1MREg1OXFSUWFnMTRHZzRLQkhKMWJtVVNCakV3TURBd01CSnBDbEFLUmdvZkwyTnZjMjF2Y3k1amNubHdkRzh1YzJWamNESTFObXN4TGxCMVlrdGxlUklqQ2lFREV1MjhrN3RZSUJQVzQxaXVMQWJMRzdydnh5VHY3UnFEazkzbnoxMjNKMElTQkFvQ0NBRVlCQklWQ2c0S0JISjFibVVTQmpFd01EQXdNQkNBNGVzWEdrQm9VQlJPeWtaOTJlSUxYSFpTSnIxVUhJdk5LTzNQTk5Ka3BWbnV6ams2MXluMXgvSDZRekdhTjkzUlU4Z0JNcU9nQTZ6bm1TaHBRODdkUkozTlZXUnAnLFxuICBzZW5kZXI6ICdzdGhvcjF0bDQ2ZHhmaDNxdXBxeGdhcDV2dHBhaDRweHduMzVqNXRuanpscycsXG4gIHJlY2lwaWVudDogJ3N0aG9yMXNydTZ2OGZnbXJ3N3RybTI1Y2tycjcwazUzZ3g1cnRjNHhoZmdmJyxcbiAgY2hhaW5JZDogJ3Rob3JjaGFpbi1zdGFnZW5ldC0yJyxcbiAgYWNjb3VudE51bWJlcjogMTUsXG4gIHNlcXVlbmNlOiA0LFxuICBzZW5kQW1vdW50OiAnMTAwMDAwJyxcbiAgZmVlQW1vdW50OiAnMTAwMDAwJyxcbiAgc2VuZE1lc3NhZ2U6IHtcbiAgICB0eXBlVXJsOiAnL3R5cGVzLk1zZ1NlbmQnLFxuICAgIHZhbHVlOiB7XG4gICAgICBhbW91bnQ6IFtcbiAgICAgICAge1xuICAgICAgICAgIGRlbm9tOiAncnVuZScsXG4gICAgICAgICAgYW1vdW50OiAnMTAwMDAwJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBmcm9tQWRkcmVzczogJ3N0aG9yMXRsNDZkeGZoM3F1cHF4Z2FwNXZ0cGFoNHB4d24zNWo1dG5qemxzJyxcbiAgICAgIHRvQWRkcmVzczogJ3N0aG9yMXNydTZ2OGZnbXJ3N3RybTI1Y2tycjcwazUzZ3g1cnRjNHhoZmdmJyxcbiAgICB9LFxuICB9LFxuICBnYXNCdWRnZXQ6IHtcbiAgICBhbW91bnQ6IFtcbiAgICAgIHtcbiAgICAgICAgZGVub206ICdydW5lJyxcbiAgICAgICAgYW1vdW50OiAnMTAwMDAwJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBnYXNMaW1pdDogNTAwMDAwMDAsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgdGVzdG5ldEFkZHJlc3MgPSB7XG4gIGFkZHJlc3MxOiAnc3Rob3IxOXBoZnFoM2NlM25uamhoMGNzc240MzNueWRxOXNoeDc2czhxZ2cnLFxuICBhZGRyZXNzMjogJ3N0aG9yMWNnaGdyMGRuZXl5bXh4NmZqcTNlNzJxODN6MHF6N2Mzc2podG1jJyxcbiAgYWRkcmVzczM6ICdzdGhvcjFjZ2hncjBkbmV5eW14eDZmanEzZTcycTgzejBxejdjM3NqaHRtJyxcbiAgYWRkcmVzczQ6ICdzdGhvMWNnaGdyMGRuZXl5bXh4NmZqcTNlNzJxODN6MHF6N2Mzc2podG1jJyxcbiAgdmFsaWRhdG9yQWRkcmVzczE6ICdzdGhvcjFza3VjeGRxMGZrd3B4NGhqa3puNGczMDNobHpjZjMwbnFkdWxuMCcsXG4gIHZhbGlkYXRvckFkZHJlc3MyOiAnc3Rob3IxejZ6NXY5eGd6d3hkOWd5dGRrcHZlMGc2M21jZmZmamR6a3B3dWUnLFxuICB2YWxpZGF0b3JBZGRyZXNzMzogJ3N0aG9yMTlrNDZ5M25rcmE5cTlhNDh3amd3YWM2NW1zMzg1cGNncHVldWUnLFxuICB2YWxpZGF0b3JBZGRyZXNzNDogJ3N0aG8xeDl0aHMybmV2ejBlMDAyaHE5M2pmZHBkdDdydG14d2RxMDdmcDUnLFxuICBub01lbW9JZEFkZHJlc3M6ICdzdGhvcjF0bDQ2ZHhmaDNxdXBxeGdhcDV2dHBhaDRweHduMzVqNXRuanpscycsXG4gIHZhbGlkTWVtb0lkQWRkcmVzczogJ3N0aG9yMXRsNDZkeGZoM3F1cHF4Z2FwNXZ0cGFoNHB4d24zNWo1dG5qemxzP21lbW9JZD0yJyxcbiAgaW52YWxpZE1lbW9JZEFkZHJlc3M6ICdzdGhvcjF0bDQ2ZHhmaDNxdXBxeGdhcDV2dHBhaDRweHduMzVqNXRuanpscz9tZW1vSWQ9eHl6JyxcbiAgbXVsdGlwbGVNZW1vSWRBZGRyZXNzOiAnc3Rob3IxdGw0NmR4ZmgzcXVwcXhnYXA1dnRwYWg0cHh3bjM1ajV0bmp6bHM/bWVtb0lkPTMmbWVtb0lkPTEyJyxcbn07XG5cbmV4cG9ydCBjb25zdCB0ZXN0bmV0Q29pbkFtb3VudHMgPSB7XG4gIGFtb3VudDE6IHsgYW1vdW50OiAnMTAwMDAwJywgZGVub206ICdydW5lJyB9LFxuICBhbW91bnQyOiB7IGFtb3VudDogJzEwMDAwMDAnLCBkZW5vbTogJ3J1bmUnIH0sXG4gIGFtb3VudDM6IHsgYW1vdW50OiAnMTAwMDAwMDAnLCBkZW5vbTogJ3J1bmUnIH0sXG4gIGFtb3VudDQ6IHsgYW1vdW50OiAnLTEnLCBkZW5vbTogJ3J1bmUnIH0sXG4gIGFtb3VudDU6IHsgYW1vdW50OiAnMTAwMDAwMDAwMCcsIGRlbm9tOiAnYXJ1bmUnIH0sXG59O1xuXG5leHBvcnQgY29uc3Qgd3J3VXNlciA9IHtcbiAgc2VuZGVyQWRkcmVzczogJ3N0aG9yMWdxZWs4a2w1bXI5YzM3cmw4eXAybWxqbmU2N2pnYXFtOTZqZzJmJyxcbiAgZGVzdGluYXRpb25BZGRyZXNzOiAnc3Rob3IxdGw0NmR4ZmgzcXVwcXhnYXA1dnRwYWg0cHh3bjM1ajV0bmp6bHMnLFxuICB1c2VyUHJpdmF0ZUtleTpcbiAgICAne1wiaXZcIjpcIjlyY0hNeXRtbW5IakcxbGxCb2M0OWc9PVwiLFwidlwiOjEsXCJpdGVyXCI6MTAwMDAsXCJrc1wiOjI1NixcInRzXCI6NjQsXCJtb2RlXCIgOlwiY2NtXCIsXCJhZGF0YVwiOlwiXCIsXCJjaXBoZXJcIjpcImFlc1wiLFwic2FsdFwiOlwiOGxGQXdUcmNDelE9XCIsXCJjdFwiOlwiMWdNUkM2MG51MDFJWXIgamdpcjlHQ3VRTkxNWkMydnQvcEZqZ0wrdFYzSzcvcnZpU2d1RHN1YTEzM1BrTkVldXR5MW1aeE5IMlMxVEt1MUt4WkpNbEIrTUFzIHZvN2s5ZEl5Q2dRdmtYL25iSkZGYVJybkxMNTVtY1FlMFBoQ2RWTlJIeDlkb1hNbmdSRitVcUVNTEQ4RjBITkUxK1pQR3pzYXRoSCBETEZQeExDUk1yd0EvU3MvTFFvd0dpWG80V256VkszTVFjWDZ3ZG1admZWK1MzeHN3UmpIa0x2b2xWWTNyVkdQNVBrVTg2V3dybXkgZTFDS000aFNHQThGTW9kYTcxOFN2azdDK0xIcjB5T1R1dVBmdFh0SDBmQVBQbzlLSDdmK0ViQldNSlBRZ2pLOERXL3oxeG5EZ0xIIGR6aHZleU5QZXZxVXFiM0ZFeXV0am93K0tCa3hsK3hIcUo0Z0tjVTlNTHNnaFBNQ3kwelNxMmtCYmhscVdKN1h3ZHVoSFZHdjJuVCBybHNFZmg3WjBmYnFaVFgxUlE1QUtaaFNCRkVxbXExaEt4UmxoVmNyOUtxQnc4MTR0SWZkRkQ3bk1nVjdyeiszWDhjSmFLMnREWEggMFFhWThiSkd3eHdIMzhGc2ZOZXZzOFFmMmJ4NVZyRC9WdzN3bzBHNWhKNytUZFBDcmliOFVXeXhQR3VydUg3Yjhod0NVVFphcTk3IHprRHA3Yzc5QkRXeUg4eWNUeFFYakxQd2IxQ3dwVWlSRGM2TkhEMnAzaUdWYXp0TWRRT01YbVBlZU1oQk5HVkkwTVBBZlNkY0RpcCAyRTVFazBmd25JMW1FdUZqUE1rYytWT2xzVmhsV2ZWLzlYcG9oM05hZFBocWczaTlDcjJ1TlQvUFN5SGQvanBJcUc1RGxhYUV2VkQgZjdDT3FOdlhYNVFxbWxyOWRMM1IyY2YwelA4VFBJbUFsUmZlZjREOHphdEh0eWxLa0ltTWMwSmNkY1hUendVLzV0ZjIxby9ZNzAxIERMWWp3VVVncVE1N09iSEhObFN2bWRJdU8xckQ1TEFuOTZOQVlOUlN0ckVOcW1iaWJFNU1zWXJwOW5QQXByQ05GblpSNlVOcFh3RCBodnE5Z3Z4UkcrUGptWEdqMG51eVI3Y3NoeFVSTHkwL3A0dHE3TGtHams0R2czMU1nazQxbGNZVVcydEx1VWJUWW1wdGV1M0Nkd2UgREZ1THNmSTFxWnhLeXI2VjVOc2UzWkF2bkpMVFpuUVhpSE9uYzJ5NS9lNTMrTUFWdXBYUjdIWnp4N1NJSitmcXhwanh2Y2NtZ0pDIHNXYVBvK0xzeDZLYVNOa1FHRk1HdXlaODdJRXZtN3ZrMkd5SVArRlFVbjRubVRkRURMemc3bk5vK3pmNVdUNEE2WXozR05BYTNOaCAyUUhaU0ZHV2N1Yk9YRGF3aDZsQWpaNzhHTks5eUpEcDIyZEpUbWZaKzFUc1ZPUnBiWnc9XCJ9JyxcbiAgYmFja3VwUHJpdmF0ZUtleTpcbiAgICAne1wiaXZcIjpcIjBFRHFHVTF5QkUyUE00cnk2VHhBUkE9PVwiLFwidlwiOjEsXCJpdGVyXCI6MTAwMDAsXCJrc1wiOjI1NixcInRzXCI6NjQsXCJtb2RlXCIgOlwiY2NtXCIsXCJhZGF0YVwiOlwiXCIsXCJjaXBoZXJcIjpcImFlc1wiLFwic2FsdFwiOlwiYThUMGZWVmhUejA9XCIsXCJjdFwiOlwic3lDckorUkQ4b0haNHogamx0TG15TlMvVlZtU0xYTE1BZG5Wbm9QTkVmRlg5bUlNQXljWUNhak1SMjk3bDA5ZlBzV1dxRGNEczBjU0kweE5ibk1qeVczMGIvIEpPdlEzM2VhQlNpeUJyM3ZibWhhRUZkdVpUVWdPQ05nL0pzMGNBa0VrZUUvS0RrZk9VQjBIemZTRVFiNm0wZVhtV2dHU255U1VPZCBUbFpaL3RoVDdqMm9QSFZwUEU1Mmg2WWkzTFMxSmt0M1M3eVNTdFh2Ry80aXVyaGNMMzJhMzJGeDNJUXhzL2JnOEpCSUdsUkc2NDQgYUx0dENKK3VQaWhhU0lTVUduMWhoMGlFejJaQWFDb0NrcTdvTlBySytweEhIT21ianhwNlhwVjY3RW1RL0pSZlN0NDdlVzNqQzdBIEQreGFMTEhzcGpRaWZwNkNsWmVIVDJwQnJrY1dyWmZyMXVMNXczQ0tyWFFlSjBwWFVvUm1Kd0d5czRobTVCenU0aW1BTm8ramQxKyB3ZzczQnlZUTVWd1JoVjFxaGI4MnZVclEwaTRrNUd0Mmw2VTJMWi9ETVFpVWJxN0ZkallXcWZabWsxOEdJWjZnM0lQSnRHam5BNnggbzhSVHZreXRNTXY4YnRzeC9hYTZqRTZFTWVGdEd6bGhoSkp1bnBjUzRRRzRJa0l1eUFqUGFmd09rbEV3WGtsWkNMRHBLZFZZZ1RSIFJFMFhIQzBWWE9HUXdHVUFSek1ad1FPNU9hUnlRa3h0WjUvQ2F3STVqcndNWlArYnBDOWRLenNHT1hmU3Z2RnNKV25rYm9YeXkwOSBiRndUdUtIeDBaSUxkQS84WHE1Njg5WUVtRmxqSFRlUTBFcy9xNXk1a1UrWHpUNHNqamd4ejFxcWhVSlZoN3dEd1FldlJEV1R3R0ogTGZpMkFlTHN2MmYwUEtpR1RZSnpRR1NYVWVyaExNd2hnM3JYTmZYR2tyV1NtRWhKSC9Sc3ZGNkNkYVJLV3hWZCtrOEs1VUxMd0srIHNkdWpBNW11cloyNEtJNXowWXI5cVcyVFNzSlJHM1BTK1pIMXEzVkdZYXo2azkxMlFWenl2emRzOCtoZmFITnRyNk9HQldhaEdabyBKY2hnblFIU2ZBWnhPVXo3SzdXTnpoOTM0SEs1K2UxMS9sRi9GeHNzdW16Mk9TdEZXSTE4b0JCNy84WUJpNlBFcDNzRmRkT1FWU0EgQlhSR3VTdG9sR25hNDNubHk0YmF2T2ljN1hJb05IczYxaHluTWVSNk5jdGhzU3JqNXhaNnEzNkVxTGRma0RJbVF2dSszQlhDbFQ3IFE0YmRFZlhtMHQ3QmdtaWQ0TmVKMUkzZ3JYWk1PbVZiUGdjeXBmeHAyanJram1lL1IwL2VKTDRCMzhXVTJ4anhEZytXbEJHeThkQSB4ZzhsbCtuMk5rQTdsdkp6NU5CRHhiR0hSQWh0eVZURjhZQStPeHBzM3J1bUl3PT1cIn0nLFxuICBiaXRnb1B1YmxpY0tleTpcbiAgICAnMDJkNzU0ZmZkNjQ1YmEzZDg3ZmJkZWIzNTc4ZGJjMjJmYzI1MmViYjI5OTQxNjQzNGE3MDU5ZDk2MzhmNTJkMTFlMGZkMTUzZDlkIGRmYjJhMTkzNTMxYWM1YjdkM2IyMjMxODhhOTU3ZGUxMzEyZDNlZGUzNTMwNWVlNzBiNzYzNzYnLFxuICB3YWxsZXRQYXNzcGhyYXNlOiAnR2hnaGprZyE0NTU1NDRsbGxsJyxcbn07XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=keyPair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../test/unit/keyPair.ts"],"names":[],"mappings":""}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const should_1 = __importDefault(require("should"));
9
+ const src_1 = require("../../src");
10
+ const rune_1 = require("../resources/rune");
11
+ describe('Rune Key Pair', () => {
12
+ describe('should create a valid KeyPair', () => {
13
+ it('from an empty value', () => {
14
+ const keyPairObj = new src_1.KeyPair();
15
+ const keys = keyPairObj.getKeys();
16
+ should_1.default.exists(keys.prv);
17
+ should_1.default.exists(keys.pub);
18
+ should_1.default.equal(keys.prv?.length, 64);
19
+ should_1.default.equal(keys.pub.length, 66);
20
+ const extendedKeys = keyPairObj.getExtendedKeys();
21
+ should_1.default.exists(extendedKeys.xprv);
22
+ should_1.default.exists(extendedKeys.xpub);
23
+ });
24
+ it('from a private key', () => {
25
+ const privateKey = rune_1.TEST_ACCOUNT.privateKey;
26
+ const keyPairObj = new src_1.KeyPair({ prv: privateKey });
27
+ const keys = keyPairObj.getKeys();
28
+ should_1.default.exists(keys.prv);
29
+ should_1.default.exists(keys.pub);
30
+ should_1.default.equal(keys.prv, rune_1.TEST_ACCOUNT.privateKey);
31
+ should_1.default.equal(keys.pub, rune_1.TEST_ACCOUNT.compressedPublicKey);
32
+ should_1.default.equal(keyPairObj.getAddress(), rune_1.TEST_ACCOUNT.pubAddress);
33
+ should_1.default.equal(keyPairObj.getAddress(sdk_core_1.AddressFormat.testnet), rune_1.TEST_ACCOUNT.testnetPubAddress);
34
+ assert_1.default.throws(() => keyPairObj.getExtendedKeys());
35
+ });
36
+ it('from a compressed public key', () => {
37
+ const publicKey = rune_1.TEST_ACCOUNT.compressedPublicKey;
38
+ const keyPairObj = new src_1.KeyPair({ pub: publicKey });
39
+ const keys = keyPairObj.getKeys();
40
+ should_1.default.not.exist(keys.prv);
41
+ should_1.default.exists(keys.pub);
42
+ should_1.default.equal(keys.pub, rune_1.TEST_ACCOUNT.compressedPublicKey);
43
+ assert_1.default.throws(() => keyPairObj.getExtendedKeys());
44
+ });
45
+ it('from an uncompressed public key', () => {
46
+ // Input is uncompressed, but we output the compressed key to keep
47
+ // parity with coreum network expectations.
48
+ const publicKey = rune_1.TEST_ACCOUNT.uncompressedPublicKey;
49
+ const keyPairObj = new src_1.KeyPair({ pub: publicKey });
50
+ const keys = keyPairObj.getKeys();
51
+ should_1.default.not.exist(keys.prv);
52
+ should_1.default.exists(keys.pub);
53
+ should_1.default.notEqual(keys.pub, publicKey);
54
+ should_1.default.equal(keys.pub, rune_1.TEST_ACCOUNT.compressedPublicKey);
55
+ assert_1.default.throws(() => keyPairObj.getExtendedKeys());
56
+ });
57
+ });
58
+ describe('should fail to create a KeyPair', () => {
59
+ it('from an invalid privateKey', () => {
60
+ assert_1.default.throws(() => new src_1.KeyPair({ prv: '' }), (e) => e.message === 'Unsupported private key');
61
+ });
62
+ it('from an invalid publicKey', () => {
63
+ assert_1.default.throws(() => new src_1.KeyPair({ pub: '' }), (e) => e.message.startsWith('Unsupported public key'));
64
+ });
65
+ it('from an undefined seed', () => {
66
+ const undefinedBuffer = undefined;
67
+ assert_1.default.throws(() => new src_1.KeyPair({ seed: undefinedBuffer }), (e) => e.message.startsWith('Invalid key pair options'));
68
+ });
69
+ it('from an undefined private key', () => {
70
+ const undefinedStr = undefined;
71
+ assert_1.default.throws(() => new src_1.KeyPair({ prv: undefinedStr }), (e) => e.message.startsWith('Invalid key pair options'));
72
+ });
73
+ it('from an undefined public key', () => {
74
+ const undefinedStr = undefined;
75
+ assert_1.default.throws(() => new src_1.KeyPair({ pub: undefinedStr }), (e) => e.message.startsWith('Invalid key pair options'));
76
+ });
77
+ });
78
+ describe('should get unique address', () => {
79
+ it('from a private key', () => {
80
+ const keyPair = new src_1.KeyPair({ prv: rune_1.TEST_ACCOUNT.privateKey });
81
+ should_1.default.equal(keyPair.getAddress(), rune_1.TEST_ACCOUNT.pubAddress);
82
+ });
83
+ it('from a compressed public key', () => {
84
+ const keyPair = new src_1.KeyPair({ pub: rune_1.TEST_ACCOUNT.compressedPublicKey });
85
+ should_1.default.equal(keyPair.getAddress(), rune_1.TEST_ACCOUNT.pubAddress);
86
+ });
87
+ it('should be different for different public keys', () => {
88
+ const keyPairOne = new src_1.KeyPair({ pub: rune_1.TEST_ACCOUNT.compressedPublicKey });
89
+ const keyPairTwo = new src_1.KeyPair({ pub: rune_1.TEST_ACCOUNT.compressedPublicKeyTwo });
90
+ should_1.default.notEqual(keyPairOne.getAddress(), keyPairTwo.getAddress());
91
+ });
92
+ });
93
+ });
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbURBQXFEO0FBQ3JELG9EQUE0QjtBQUM1QixvREFBNEI7QUFDNUIsbUNBQW9DO0FBQ3BDLDRDQUFpRDtBQUVqRCxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUM3QixRQUFRLENBQUMsK0JBQStCLEVBQUUsR0FBRyxFQUFFO1FBQzdDLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7WUFDN0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxhQUFPLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLGdCQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUVsQyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbEQsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pDLGdCQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUU7WUFDNUIsTUFBTSxVQUFVLEdBQUcsbUJBQVksQ0FBQyxVQUFVLENBQUM7WUFDM0MsTUFBTSxVQUFVLEdB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QUMsRUFBRSxHQUFHLEVBQUUsbUJBQVksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7WUFDN0UsZ0JBQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkZHJlc3NGb3JtYXQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB7IFRFU1RfQUNDT1VOVCB9IGZyb20gJy4uL3Jlc291cmNlcy9ydW5lJztcblxuZGVzY3JpYmUoJ1J1bmUgS2V5IFBhaXInLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdzaG91bGQgY3JlYXRlIGEgdmFsaWQgS2V5UGFpcicsICgpID0+IHtcbiAgICBpdCgnZnJvbSBhbiBlbXB0eSB2YWx1ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXJPYmogPSBuZXcgS2V5UGFpcigpO1xuICAgICAgY29uc3Qga2V5cyA9IGtleVBhaXJPYmouZ2V0S2V5cygpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhrZXlzLnBydik7XG4gICAgICBzaG91bGQuZXhpc3RzKGtleXMucHViKTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlzLnBydj8ubGVuZ3RoLCA2NCk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5cy5wdWIubGVuZ3RoLCA2Nik7XG5cbiAgICAgIGNvbnN0IGV4dGVuZGVkS2V5cyA9IGtleVBhaXJPYmouZ2V0RXh0ZW5kZWRLZXlzKCk7XG4gICAgICBzaG91bGQuZXhpc3RzKGV4dGVuZGVkS2V5cy54cHJ2KTtcbiAgICAgIHNob3VsZC5leGlzdHMoZXh0ZW5kZWRLZXlzLnhwdWIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Zyb20gYSBwcml2YXRlIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IHByaXZhdGVLZXkgPSBURVNUX0FDQ09VTlQucHJpdmF0ZUtleTtcbiAgICAgIGNvbnN0IGtleVBhaXJPYmogPSBuZXcgS2V5UGFpcih7IHBydjogcHJpdmF0ZUtleSB9KTtcbiAgICAgIGNvbnN0IGtleXMgPSBrZXlQYWlyT2JqLmdldEtleXMoKTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5cy5wcnYpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhrZXlzLnB1Yik7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5cy5wcnYsIFRFU1RfQUNDT1VOVC5wcml2YXRlS2V5KTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlzLnB1YiwgVEVTVF9BQ0NPVU5ULmNvbXByZXNzZWRQdWJsaWNLZXkpO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleVBhaXJPYmouZ2V0QWRkcmVzcygpLCBURVNUX0FDQ09VTlQucHViQWRkcmVzcyk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpck9iai5nZXRBZGRyZXNzKEFkZHJlc3NGb3JtYXQudGVzdG5ldCksIFRFU1RfQUNDT1VOVC50ZXN0bmV0UHViQWRkcmVzcyk7XG5cbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4ga2V5UGFpck9iai5nZXRFeHRlbmRlZEtleXMoKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhIGNvbXByZXNzZWQgcHVibGljIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IHB1YmxpY0tleSA9IFRFU1RfQUNDT1VOVC5jb21wcmVzc2VkUHVibGljS2V5O1xuICAgICAgY29uc3Qga2V5UGFpck9iaiA9IG5ldyBLZXlQYWlyKHsgcHViOiBwdWJsaWNLZXkgfSk7XG4gICAgICBjb25zdCBrZXlzID0ga2V5UGFpck9iai5nZXRLZXlzKCk7XG4gICAgICBzaG91bGQubm90LmV4aXN0KGtleXMucHJ2KTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5cy5wdWIpO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleXMucHViLCBURVNUX0FDQ09VTlQuY29tcHJlc3NlZFB1YmxpY0tleSk7XG5cbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4ga2V5UGFpck9iai5nZXRFeHRlbmRlZEtleXMoKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhbiB1bmNvbXByZXNzZWQgcHVibGljIGtleScsICgpID0+IHtcbiAgICAgIC8vIElucHV0IGlzIHVuY29tcHJlc3NlZCwgYnV0IHdlIG91dHB1dCB0aGUgY29tcHJlc3NlZCBrZXkgdG8ga2VlcFxuICAgICAgLy8gcGFyaXR5IHdpdGggY29yZXVtIG5ldHdvcmsgZXhwZWN0YXRpb25zLlxuICAgICAgY29uc3QgcHVibGljS2V5ID0gVEVTVF9BQ0NPVU5ULnVuY29tcHJlc3NlZFB1YmxpY0tleTtcbiAgICAgIGNvbnN0IGtleVBhaXJPYmogPSBuZXcgS2V5UGFpcih7IHB1YjogcHVibGljS2V5IH0pO1xuICAgICAgY29uc3Qga2V5cyA9IGtleVBhaXJPYmouZ2V0S2V5cygpO1xuICAgICAgc2hvdWxkLm5vdC5leGlzdChrZXlzLnBydik7XG4gICAgICBzaG91bGQuZXhpc3RzKGtleXMucHViKTtcbiAgICAgIHNob3VsZC5ub3RFcXVhbChrZXlzLnB1YiwgcHVibGljS2V5KTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlzLnB1YiwgVEVTVF9BQ0NPVU5ULmNvbXByZXNzZWRQdWJsaWNLZXkpO1xuXG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGtleVBhaXJPYmouZ2V0RXh0ZW5kZWRLZXlzKCkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2hvdWxkIGZhaWwgdG8gY3JlYXRlIGEgS2V5UGFpcicsICgpID0+IHtcbiAgICBpdCgnZnJvbSBhbiBpbnZhbGlkIHByaXZhdGVLZXknLCAoKSA9PiB7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiBuZXcgS2V5UGFpcih7IHBydjogJycgfSksXG4gICAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZSA9PT0gJ1Vuc3VwcG9ydGVkIHByaXZhdGUga2V5J1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdmcm9tIGFuIGludmFsaWQgcHVibGljS2V5JywgKCkgPT4ge1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gbmV3IEtleVBhaXIoeyBwdWI6ICcnIH0pLFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnVW5zdXBwb3J0ZWQgcHVibGljIGtleScpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Zyb20gYW4gdW5kZWZpbmVkIHNlZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB1bmRlZmluZWRCdWZmZXIgPSB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBCdWZmZXI7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiBuZXcgS2V5UGFpcih7IHNlZWQ6IHVuZGVmaW5lZEJ1ZmZlciB9KSxcbiAgICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlLnN0YXJ0c1dpdGgoJ0ludmFsaWQga2V5IHBhaXIgb3B0aW9ucycpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Zyb20gYW4gdW5kZWZpbmVkIHByaXZhdGUga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3QgdW5kZWZpbmVkU3RyOiBzdHJpbmcgPSB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBzdHJpbmc7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiBuZXcgS2V5UGFpcih7IHBydjogdW5kZWZpbmVkU3RyIH0pLFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnSW52YWxpZCBrZXkgcGFpciBvcHRpb25zJylcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhbiB1bmRlZmluZWQgcHVibGljIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IHVuZGVmaW5lZFN0cjogc3RyaW5nID0gdW5kZWZpbmVkIGFzIHVua25vd24gYXMgc3RyaW5nO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gbmV3IEtleVBhaXIoeyBwdWI6IHVuZGVmaW5lZFN0ciB9KSxcbiAgICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlLnN0YXJ0c1dpdGgoJ0ludmFsaWQga2V5IHBhaXIgb3B0aW9ucycpXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2hvdWxkIGdldCB1bmlxdWUgYWRkcmVzcycsICgpID0+IHtcbiAgICBpdCgnZnJvbSBhIHByaXZhdGUga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBURVNUX0FDQ09VTlQucHJpdmF0ZUtleSB9KTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlQYWlyLmdldEFkZHJlc3MoKSwgVEVTVF9BQ0NPVU5ULnB1YkFkZHJlc3MpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Zyb20gYSBjb21wcmVzc2VkIHB1YmxpYyBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IFRFU1RfQUNDT1VOVC5jb21wcmVzc2VkUHVibGljS2V5IH0pO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleVBhaXIuZ2V0QWRkcmVzcygpLCBURVNUX0FDQ09VTlQucHViQWRkcmVzcyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJlIGRpZmZlcmVudCBmb3IgZGlmZmVyZW50IHB1YmxpYyBrZXlzJywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpck9uZSA9IG5ldyBLZXlQYWlyKHsgcHViOiBURVNUX0FDQ09VTlQuY29tcHJlc3NlZFB1YmxpY0tleSB9KTtcbiAgICAgIGNvbnN0IGtleVBhaXJUd28gPSBuZXcgS2V5UGFpcih7IHB1YjogVEVTVF9BQ0NPVU5ULmNvbXByZXNzZWRQdWJsaWNLZXlUd28gfSk7XG4gICAgICBzaG91bGQubm90RXF1YWwoa2V5UGFpck9uZS5nZXRBZGRyZXNzKCksIGtleVBhaXJUd28uZ2V0QWRkcmVzcygpKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rune.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rune.d.ts","sourceRoot":"","sources":["../../../test/unit/rune.ts"],"names":[],"mappings":""}