cardano-hw-interop-lib 0.1.0

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 (66) hide show
  1. package/LICENSE +16 -0
  2. package/README.md +55 -0
  3. package/dist/src/errors/index.d.ts +3 -0
  4. package/dist/src/errors/index.d.ts.map +1 -0
  5. package/dist/src/errors/index.js +15 -0
  6. package/dist/src/errors/parseError.d.ts +58 -0
  7. package/dist/src/errors/parseError.d.ts.map +1 -0
  8. package/dist/src/errors/parseError.js +66 -0
  9. package/dist/src/errors/validationError.d.ts +24 -0
  10. package/dist/src/errors/validationError.d.ts.map +1 -0
  11. package/dist/src/errors/validationError.js +47 -0
  12. package/dist/src/index.d.ts +18 -0
  13. package/dist/src/index.d.ts.map +1 -0
  14. package/dist/src/index.js +65 -0
  15. package/dist/src/parsers.d.ts +39 -0
  16. package/dist/src/parsers.d.ts.map +1 -0
  17. package/dist/src/parsers.js +98 -0
  18. package/dist/src/txParsers.d.ts +15 -0
  19. package/dist/src/txParsers.d.ts.map +1 -0
  20. package/dist/src/txParsers.js +161 -0
  21. package/dist/src/txSerializers.d.ts +5 -0
  22. package/dist/src/txSerializers.d.ts.map +1 -0
  23. package/dist/src/txSerializers.js +97 -0
  24. package/dist/src/txTransformers.d.ts +5 -0
  25. package/dist/src/txTransformers.d.ts.map +1 -0
  26. package/dist/src/txTransformers.js +50 -0
  27. package/dist/src/txValidators.d.ts +5 -0
  28. package/dist/src/txValidators.d.ts.map +1 -0
  29. package/dist/src/txValidators.js +129 -0
  30. package/dist/src/types.d.ts +192 -0
  31. package/dist/src/types.d.ts.map +1 -0
  32. package/dist/src/types.js +45 -0
  33. package/dist/src/utils.d.ts +8 -0
  34. package/dist/src/utils.d.ts.map +1 -0
  35. package/dist/src/utils.js +36 -0
  36. package/dist/test/integration/__fixtures__/encode.d.ts +9 -0
  37. package/dist/test/integration/__fixtures__/encode.d.ts.map +1 -0
  38. package/dist/test/integration/__fixtures__/encode.js +203 -0
  39. package/dist/test/integration/__fixtures__/parse.d.ts +21 -0
  40. package/dist/test/integration/__fixtures__/parse.d.ts.map +1 -0
  41. package/dist/test/integration/__fixtures__/parse.js +238 -0
  42. package/dist/test/integration/encode.test.d.ts +2 -0
  43. package/dist/test/integration/encode.test.d.ts.map +1 -0
  44. package/dist/test/integration/encode.test.js +16 -0
  45. package/dist/test/integration/parse.test.d.ts +2 -0
  46. package/dist/test/integration/parse.test.d.ts.map +1 -0
  47. package/dist/test/integration/parse.test.js +53 -0
  48. package/dist/test/test_utils.d.ts +24 -0
  49. package/dist/test/test_utils.d.ts.map +1 -0
  50. package/dist/test/test_utils.js +40 -0
  51. package/dist/test/unit/certificates.test.d.ts +1 -0
  52. package/dist/test/unit/certificates.test.d.ts.map +1 -0
  53. package/dist/test/unit/certificates.test.js +2 -0
  54. package/dist/test/unit/inputs.test.d.ts +2 -0
  55. package/dist/test/unit/inputs.test.d.ts.map +1 -0
  56. package/dist/test/unit/inputs.test.js +57 -0
  57. package/dist/test/unit/mint.test.d.ts +2 -0
  58. package/dist/test/unit/mint.test.d.ts.map +1 -0
  59. package/dist/test/unit/mint.test.js +74 -0
  60. package/dist/test/unit/outputs.test.d.ts +2 -0
  61. package/dist/test/unit/outputs.test.d.ts.map +1 -0
  62. package/dist/test/unit/outputs.test.js +77 -0
  63. package/dist/test/unit/withdrawals.test.d.ts +2 -0
  64. package/dist/test/unit/withdrawals.test.d.ts.map +1 -0
  65. package/dist/test/unit/withdrawals.test.js +48 -0
  66. package/package.json +50 -0
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const errors_1 = require("../../src/errors");
4
+ const txParsers_1 = require("../../src/txParsers");
5
+ const types_1 = require("../../src/types");
6
+ const test_utils_1 = require("../test_utils");
7
+ const ValidOutputsTestcases = [
8
+ {
9
+ testname: 'Simple',
10
+ cbor: '81825839019b3a93b321ff8d65d6df1c6d845d54dbbf2cb34105fdb44ece1b7d312c049dfed8bc41edefbbc835ca0a739cac961557950262ef48bcff1d00',
11
+ parsed: [{
12
+ address: (0, test_utils_1.fromBech32)('addr1qxdn4yany8lc6ewkmuwxmpza2ndm7t9ngyzlmdzwecdh6vfvqjwlak9ug8k7lw7gxh9q5uuu4jtp24u4qf3w7j9uluwssp092m'),
13
+ amount: {
14
+ type: types_1.AmountType.WITHOUT_MULTIASSET,
15
+ coin: (0, test_utils_1.toUint)(0),
16
+ },
17
+ }],
18
+ },
19
+ {
20
+ testname: 'Big output',
21
+ cbor: '81825839019B3A93B321FF8D65D6DF1C6D845D54DBBF2CB34105FDB44ECE1B7D312C049DFED8BC41EDEFBBC835CA0A739CAC961557950262EF48BCFF1DC249010000000000000000',
22
+ parsed: [{
23
+ address: (0, test_utils_1.fromBech32)('addr1qxdn4yany8lc6ewkmuwxmpza2ndm7t9ngyzlmdzwecdh6vfvqjwlak9ug8k7lw7gxh9q5uuu4jtp24u4qf3w7j9uluwssp092m'),
24
+ amount: {
25
+ type: types_1.AmountType.WITHOUT_MULTIASSET,
26
+ coin: (0, test_utils_1.toUint)("18446744073709551616"),
27
+ },
28
+ }],
29
+ },
30
+ {
31
+ testname: 'One output with multiasset',
32
+ cbor: '8182583930167f6dbf610ae030f043adb1f3af78754ed9595ad4ac1f7ed9ff6466760fb6955d1217b1f1f208df6d45ab23c9e17b0c984a2d3a22bbbfb8821a3b7625dea1581cd7a7c6999786354b6dbee181a2f562a628a75fce126f4da40ce5d9b2a14c56616363756d546f6b656e731a000f4240',
33
+ parsed: [{
34
+ address: (0, test_utils_1.fromBech32)('addr_test1xqt87mdlvy9wqv8sgwkmrua00p65ak2ett22c8m7m8lkgenkp7mf2hgjz7clrusgmak5t2ere8shkrycfgkn5g4mh7uqvcq039'),
35
+ amount: {
36
+ type: types_1.AmountType.WITH_MULTIASSET,
37
+ coin: (0, test_utils_1.toUint)(997598686),
38
+ multiasset: [{
39
+ policyId: (0, test_utils_1.toFixlenBuffer)('d7a7c6999786354b6dbee181a2f562a628a75fce126f4da40ce5d9b2', 28),
40
+ tokens: [{
41
+ assetName: Buffer.from('56616363756D546F6B656E73', 'hex'),
42
+ amount: (0, test_utils_1.toUint)(1000000),
43
+ }],
44
+ }],
45
+ },
46
+ }],
47
+ },
48
+ ];
49
+ const InvalidOutputsTestcases = [
50
+ {
51
+ testname: 'Not an array',
52
+ cbor: 'a100f6',
53
+ errMsg: errors_1.ParseErrorReason.INVALID_TX_OUTPUTS,
54
+ },
55
+ {
56
+ testname: 'Invalid output structure',
57
+ cbor: '8183187b0102',
58
+ errMsg: errors_1.ParseErrorReason.INVALID_TX_OUTPUT,
59
+ },
60
+ {
61
+ testname: 'Invalid output address',
62
+ cbor: '818278193031394233413933423332314646384436354436444631433600',
63
+ errMsg: errors_1.ParseErrorReason.INVALID_OUTPUT_ADDRESS,
64
+ },
65
+ {
66
+ testname: 'Invalid output mutliasset (invalid policy id)',
67
+ cbor: '8182583930167f6dbf610ae030f043adb1f3af78754ed9595ad4ac1f7ed9ff6466760fb6955d1217b1f1f208df6d45ab23c9e17b0c984a2d3a22bbbfb8821a3b7625dea1581bd7a7c6999786354b6dbee181a2f562a628a75fce126f4da40ce5d9a14c56616363756d546f6b656e731a000f4240',
68
+ errMsg: errors_1.ParseErrorReason.INVALID_POLICY_ID,
69
+ },
70
+ {
71
+ testname: 'Invalid output multiasset',
72
+ cbor: '8182583930167F6DBF610AE030F043ADB1F3AF78754ED9595AD4AC1F7ED9FF6466760FB6955D1217B1F1F208DF6D45AB23C9E17B0C984A2D3A22BBBFB8821A3B7625DEF6',
73
+ errMsg: errors_1.ParseErrorReason.INVALID_OUTPUT_MULTIASSET,
74
+ },
75
+ ];
76
+ (0, test_utils_1.registerTests)('Parse transaction outputs', txParsers_1.parseOutputs, ValidOutputsTestcases, InvalidOutputsTestcases);
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0cy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L291dHB1dHMudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUFtRDtBQUNuRCxtREFBa0Q7QUFFbEQsMkNBQTRDO0FBRTVDLDhDQUFpRjtBQUVqRixNQUFNLHFCQUFxQixHQUE4QztJQUNyRTtRQUNJLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLElBQUksRUFBRSw4SEFBOEg7UUFDcEksTUFBTSxFQUFFLENBQUM7Z0JBQ0wsT0FBTyxFQUFFLElBQUEsdUJBQVUsRUFBQyx5R0FBeUcsQ0FBQztnQkFDOUgsTUFBTSxFQUFFO29CQUNKLElBQUksRUFBRSxrQkFBVSxDQUFDLGtCQUFrQjtvQkFDbkMsSUFBSSxFQUFFLElBQUEsbUJBQU0sRUFBQyxDQUFDLENBQUM7aUJBQ2xCO2FBQ0osQ0FBQztLQUNMO0lBQ0Q7UUFDSSxRQUFRLEVBQUUsWUFBWTtRQUN0QixJQUFJLEVBQUUsa0pBQWtKO1FBQ3hKLE1BQU0sRUFBRSxDQUFDO2dCQUNMLE9BQU8sRUFBRSxJQUFBLHVCQUFVLEVBQUMseUdBQXlHLENBQUM7Z0JBQzlILE1BQU0sRUFBRTtvQkFDSixJQUFJLEVBQUUsa0JBQVUsQ0FBQyxrQkFBa0I7b0JBQ25DLElBQUksRUFBRSxJQUFBLG1CQUFNLEVBQUMsc0JBQXNCLENBQUM7aUJBQ3ZDO2FBQ0osQ0FBQztLQUNMO0lBQ0Q7UUFDSSxRQUFRLEVBQUUsNEJBQTRCO1FBQ3RDLElBQUksRUFBRSw0T0FBNE87UUFDbFAsTUFBTSxFQUFFLENBQUM7Z0JBQ0wsT0FBTyxFQUFFLElBQUEsdUJBQVUsRUFBQyw4R0FBOEcsQ0FBQztnQkFDbkksTUFBTSxFQUFFO29CQUNKLElBQUksRUFBRSxrQkFBVSxDQUFDLGVBQWU7b0JBQ2hDLElBQUksRUFBRSxJQUFBLG1CQUFNLEVBQUMsU0FBUyxDQUFDO29CQUN2QixVQUFVLEVBQUUsQ0FBQzs0QkFDVCxRQUFRLEVBQUUsSUFBQSwyQkFBYyxFQUFDLDBEQUEwRCxFQUFFLEVBQUUsQ0FBQzs0QkFDeEYsTUFBTSxFQUFFLENBQUM7b0NBQ0wsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFxQjtvQ0FDN0UsTUFBTSxFQUFFLElBQUEsbUJBQU0sRUFBQyxPQUFPLENBQUM7aUNBQzFCLENBQUM7eUJBQ0wsQ0FBQztpQkFDTDthQUNKLENBQUM7S0FDTDtDQUNKLENBQUE7QUFFRCxNQUFNLHVCQUF1QixHQUEyQjtJQUNwRDtRQUNJLFFBQVEsRUFBRSxjQUFjO1FBQ3hCLElBQUksRUFBRSxRQUFRO1FBQ2QsTUFBTSxFQUFFLHlCQUFnQixDQUFDLGtCQUFrQjtLQUM5QztJQUNEO1FBQ0ksUUFBUSxFQUFFLDBCQUEwQjtRQUNwQyxJQUFJLEVBQUUsY0FBYztRQUNwQixNQUFNLEVBQUUseUJBQWdCLENBQUMsaUJBQWlCO0tBQzdDO0lBQ0Q7UUFDSSxRQUFRLEVBQUUsd0JBQXdCO1FBQ2xDLElBQUksRUFBRSw4REFBOEQ7UUFDcEUsTUFBTSxFQUFFLHlCQUFnQixDQUFDLHNCQUFzQjtLQUNsRDtJQUNEO1FBQ0ksUUFBUSxFQUFFLCtDQUErQztRQUN6RCxJQUFJLEVBQUUsME9BQTBPO1FBQ2hQLE1BQU0sRUFBRSx5QkFBZ0IsQ0FBQyxpQkFBaUI7S0FDN0M7SUFDRDtRQUNJLFFBQVEsRUFBRSwyQkFBMkI7UUFDckMsSUFBSSxFQUFFLDBJQUEwSTtRQUNoSixNQUFNLEVBQUUseUJBQWdCLENBQUMseUJBQXlCO0tBQ3JEO0NBQ0osQ0FBQTtBQUVELElBQUEsMEJBQWEsRUFBQywyQkFBMkIsRUFBRSx3QkFBWSxFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixDQUFDLENBQUEifQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=withdrawals.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withdrawals.test.d.ts","sourceRoot":"","sources":["../../../test/unit/withdrawals.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const errors_1 = require("../../src/errors");
4
+ const txParsers_1 = require("../../src/txParsers");
5
+ const test_utils_1 = require("../test_utils");
6
+ const ValidWithdrawalsTestcases = [
7
+ {
8
+ testname: 'One withdrawal',
9
+ cbor: 'a1581de12c049dfed8bc41edefbbc835ca0a739cac961557950262ef48bcff1d187b',
10
+ parsed: [{
11
+ rewardAccount: (0, test_utils_1.rewardAccount)('stake1uykqf807mz7yrm00h0yrtjs2www2e9s4272sych0fz7078gjzd4uw'),
12
+ amount: (0, test_utils_1.toUint)(123),
13
+ }],
14
+ },
15
+ {
16
+ testname: 'Two withdrawals',
17
+ cbor: 'a2581de12c049dfed8bc41edefbbc835ca0a739cac961557950262ef48bcff1d00581de1d7d8a321633b3d1ab1651eeb258ad898ebcef1d348b54148f18e15da1bffffffffffffffff',
18
+ parsed: [
19
+ {
20
+ rewardAccount: (0, test_utils_1.rewardAccount)('stake1uykqf807mz7yrm00h0yrtjs2www2e9s4272sych0fz7078gjzd4uw'),
21
+ amount: (0, test_utils_1.toUint)(0),
22
+ },
23
+ {
24
+ rewardAccount: (0, test_utils_1.rewardAccount)('stake1u8ta3gepvvan6x43v50wkfv2mzvwhnh36dyt2s2g7x8ptks528lzm'),
25
+ amount: (0, test_utils_1.toUint)("18446744073709551615"),
26
+ },
27
+ ],
28
+ },
29
+ ];
30
+ const InvalidWithdrawalsTestcases = [
31
+ {
32
+ testname: 'Not a map',
33
+ cbor: '83016161f6',
34
+ errMsg: errors_1.ParseErrorReason.INVALID_TX_WITHDRAWALS,
35
+ },
36
+ {
37
+ testname: 'Invalid reward account as map key',
38
+ cbor: 'a2581de12c049dfed8bc41edefbbc835ca0a739cac961557950262ef48bcff1d000102',
39
+ errMsg: errors_1.ParseErrorReason.INVALID_REWARD_ACCOUNT,
40
+ },
41
+ {
42
+ testname: 'Invalid withdrawal amonut as map value',
43
+ cbor: 'a2581de12c049dfed8bc41edefbbc835ca0a739cac961557950262ef48bcff1d00581de1d7d8a321633b3d1ab1651eeb258ad898ebcef1d348b54148f18e15da6161',
44
+ errMsg: errors_1.ParseErrorReason.INVALID_WITHDRAWAL_AMOUNT,
45
+ },
46
+ ];
47
+ (0, test_utils_1.registerTests)('Parse withdrawals', txParsers_1.parseWithdrawals, ValidWithdrawalsTestcases, InvalidWithdrawalsTestcases);
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aGRyYXdhbHMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC93aXRoZHJhd2Fscy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkNBQW1EO0FBQ25ELG1EQUFzRDtBQUd0RCw4Q0FBb0U7QUFFcEUsTUFBTSx5QkFBeUIsR0FBdUM7SUFDbEU7UUFDSSxRQUFRLEVBQUUsZ0JBQWdCO1FBQzFCLElBQUksRUFBRSxzRUFBc0U7UUFDNUUsTUFBTSxFQUFFLENBQUM7Z0JBQ0wsYUFBYSxFQUFFLElBQUEsMEJBQWEsRUFBQyw2REFBNkQsQ0FBQztnQkFDM0YsTUFBTSxFQUFFLElBQUEsbUJBQU0sRUFBQyxHQUFHLENBQUM7YUFDdEIsQ0FBQztLQUNMO0lBQ0Q7UUFDSSxRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLElBQUksRUFBRSxvSkFBb0o7UUFDMUosTUFBTSxFQUFFO1lBQ0o7Z0JBQ0ksYUFBYSxFQUFFLElBQUEsMEJBQWEsRUFBQyw2REFBNkQsQ0FBQztnQkFDM0YsTUFBTSxFQUFFLElBQUEsbUJBQU0sRUFBQyxDQUFDLENBQUM7YUFDcEI7WUFDRDtnQkFDSSxhQUFhLEVBQUUsSUFBQSwwQkFBYSxFQUFDLDZEQUE2RCxDQUFDO2dCQUMzRixNQUFNLEVBQUUsSUFBQSxtQkFBTSxFQUFDLHNCQUFzQixDQUFDO2FBQ3pDO1NBQ0o7S0FDSjtDQUNKLENBQUE7QUFFRCxNQUFNLDJCQUEyQixHQUEyQjtJQUN4RDtRQUNJLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLElBQUksRUFBRSxZQUFZO1FBQ2xCLE1BQU0sRUFBRSx5QkFBZ0IsQ0FBQyxzQkFBc0I7S0FDbEQ7SUFDRDtRQUNJLFFBQVEsRUFBRSxtQ0FBbUM7UUFDN0MsSUFBSSxFQUFFLHdFQUF3RTtRQUM5RSxNQUFNLEVBQUUseUJBQWdCLENBQUMsc0JBQXNCO0tBQ2xEO0lBQ0Q7UUFDSSxRQUFRLEVBQUUsd0NBQXdDO1FBQ2xELElBQUksRUFBRSxzSUFBc0k7UUFDNUksTUFBTSxFQUFFLHlCQUFnQixDQUFDLHlCQUF5QjtLQUNyRDtDQUNKLENBQUE7QUFFRCxJQUFBLDBCQUFhLEVBQUMsbUJBQW1CLEVBQUUsNEJBQWdCLEVBQUUseUJBQXlCLEVBQUUsMkJBQTJCLENBQUMsQ0FBQSJ9
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "cardano-hw-interop-lib",
3
+ "version": "0.1.0",
4
+ "files": [
5
+ "dist"
6
+ ],
7
+ "types": "dist/src/index.d.ts",
8
+ "description": "Library to make CBOR encoded Cardano transactions comply with CIP-0021",
9
+ "main": "dist/src/index.js",
10
+ "repository": "github:vacuumlabs/cardano-hw-interop-lib",
11
+ "keywords": [
12
+ "Cardano",
13
+ "CIP-0021"
14
+ ],
15
+ "author": "VacuumLabs <adalite@vacuumlabs.com>",
16
+ "license": "ISC",
17
+ "devDependencies": {
18
+ "@types/chai": "^4.2.22",
19
+ "@types/mocha": "^9.0.0",
20
+ "@types/node": "^16.10.2",
21
+ "@typescript-eslint/eslint-plugin": "^4.32.0",
22
+ "@typescript-eslint/parser": "^4.32.0",
23
+ "bech32": "^2.0.0",
24
+ "chai": "^4.3.4",
25
+ "eslint": "^7.32.0",
26
+ "eslint-import-resolver-typescript": "^2.5.0",
27
+ "eslint-plugin-import": "^2.24.2",
28
+ "eslint-plugin-mocha": "^9.0.0",
29
+ "eslint-plugin-prettier": "^4.0.0",
30
+ "eslint-plugin-simple-import-sort": "^7.0.0",
31
+ "mocha": "^9.1.2",
32
+ "prettier": "^2.4.1",
33
+ "prettier-eslint": "^13.0.0",
34
+ "ts-node": "^10.2.1",
35
+ "typescript": "^4.4.3"
36
+ },
37
+ "dependencies": {
38
+ "cbor": "^8.1.0"
39
+ },
40
+ "bugs": {
41
+ "url": "https://github.com/vacuumlabs/cardano-hw-interop-lib/issues"
42
+ },
43
+ "homepage": "https://github.com/vacuumlabs/cardano-hw-interop-lib",
44
+ "scripts": {
45
+ "clean": "rm -rf dist/",
46
+ "build": "tsc -p tsconfig.json",
47
+ "eslint": "eslint . --max-warnings=0",
48
+ "test": "mocha -r ts-node/register test/**/*.test.ts"
49
+ }
50
+ }