@airgap/serializer 0.13.11-beta.1 → 0.13.11-beta.3

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 (212) hide show
  1. package/index.d.ts +24 -0
  2. package/index.js +20 -0
  3. package/index.js.map +1 -0
  4. package/package.json +1 -5
  5. package/v2/inter-app-communication-protocol.d.ts +15 -0
  6. package/v2/inter-app-communication-protocol.js +124 -0
  7. package/v2/inter-app-communication-protocol.js.map +1 -0
  8. package/v2/interfaces.d.ts +8 -0
  9. package/v2/interfaces.js +31 -0
  10. package/v2/interfaces.js.map +1 -0
  11. package/v2/message.d.ts +43 -0
  12. package/v2/message.js +85 -0
  13. package/v2/message.js.map +1 -0
  14. package/v2/payloads/chunked-payload.d.ts +18 -0
  15. package/v2/payloads/chunked-payload.js +56 -0
  16. package/v2/payloads/chunked-payload.js.map +1 -0
  17. package/v2/payloads/full-payload.d.ts +15 -0
  18. package/v2/payloads/full-payload.js +61 -0
  19. package/v2/payloads/full-payload.js.map +1 -0
  20. package/v2/payloads/payload.d.ts +5 -0
  21. package/v2/payloads/payload.js +3 -0
  22. package/v2/payloads/payload.js.map +1 -0
  23. package/v2/schemas/definitions/account-share-request.d.ts +4 -0
  24. package/v2/schemas/definitions/account-share-request.js +3 -0
  25. package/v2/schemas/definitions/account-share-request.js.map +1 -0
  26. package/v2/schemas/definitions/account-share-response.d.ts +5 -0
  27. package/v2/schemas/definitions/account-share-response.js +3 -0
  28. package/v2/schemas/definitions/account-share-response.js.map +1 -0
  29. package/v2/schemas/definitions/config-set-request.d.ts +7 -0
  30. package/v2/schemas/definitions/config-set-request.js +3 -0
  31. package/v2/schemas/definitions/config-set-request.js.map +1 -0
  32. package/v2/schemas/definitions/config-set-response.d.ts +4 -0
  33. package/v2/schemas/definitions/config-set-response.js +3 -0
  34. package/v2/schemas/definitions/config-set-response.js.map +1 -0
  35. package/v2/schemas/definitions/hex-string.d.ts +1 -0
  36. package/v2/schemas/definitions/hex-string.js +3 -0
  37. package/v2/schemas/definitions/hex-string.js.map +1 -0
  38. package/v2/schemas/definitions/item-retrieve-request.d.ts +5 -0
  39. package/v2/schemas/definitions/item-retrieve-request.js +3 -0
  40. package/v2/schemas/definitions/item-retrieve-request.js.map +1 -0
  41. package/v2/schemas/definitions/item-retrieve-response.d.ts +3 -0
  42. package/v2/schemas/definitions/item-retrieve-response.js +3 -0
  43. package/v2/schemas/definitions/item-retrieve-response.js.map +1 -0
  44. package/v2/schemas/definitions/item-store-request.d.ts +5 -0
  45. package/v2/schemas/definitions/item-store-request.js +3 -0
  46. package/v2/schemas/definitions/item-store-request.js.map +1 -0
  47. package/v2/schemas/definitions/item-store-response.d.ts +3 -0
  48. package/v2/schemas/definitions/item-store-response.js +3 -0
  49. package/v2/schemas/definitions/item-store-response.js.map +1 -0
  50. package/v2/schemas/definitions/message-encrypt-request.d.ts +8 -0
  51. package/v2/schemas/definitions/message-encrypt-request.js +3 -0
  52. package/v2/schemas/definitions/message-encrypt-request.js.map +1 -0
  53. package/v2/schemas/definitions/message-encrypt-response.d.ts +4 -0
  54. package/v2/schemas/definitions/message-encrypt-response.js +3 -0
  55. package/v2/schemas/definitions/message-encrypt-response.js.map +1 -0
  56. package/v2/schemas/definitions/message-sign-request.d.ts +5 -0
  57. package/v2/schemas/definitions/message-sign-request.js +3 -0
  58. package/v2/schemas/definitions/message-sign-request.js.map +1 -0
  59. package/v2/schemas/definitions/message-sign-response.d.ts +5 -0
  60. package/v2/schemas/definitions/message-sign-response.js +3 -0
  61. package/v2/schemas/definitions/message-sign-response.js.map +1 -0
  62. package/v2/schemas/definitions/message-verify-request.d.ts +6 -0
  63. package/v2/schemas/definitions/message-verify-request.js +3 -0
  64. package/v2/schemas/definitions/message-verify-request.js.map +1 -0
  65. package/v2/schemas/definitions/message-verify-response.d.ts +6 -0
  66. package/v2/schemas/definitions/message-verify-response.js +3 -0
  67. package/v2/schemas/definitions/message-verify-response.js.map +1 -0
  68. package/v2/schemas/definitions/multisig-request.d.ts +7 -0
  69. package/v2/schemas/definitions/multisig-request.js +3 -0
  70. package/v2/schemas/definitions/multisig-request.js.map +1 -0
  71. package/v2/schemas/definitions/multisig-response.d.ts +5 -0
  72. package/v2/schemas/definitions/multisig-response.js +3 -0
  73. package/v2/schemas/definitions/multisig-response.js.map +1 -0
  74. package/v2/schemas/definitions/pair-request.d.ts +7 -0
  75. package/v2/schemas/definitions/pair-request.js +3 -0
  76. package/v2/schemas/definitions/pair-request.js.map +1 -0
  77. package/v2/schemas/definitions/pair-response.d.ts +6 -0
  78. package/v2/schemas/definitions/pair-response.js +3 -0
  79. package/v2/schemas/definitions/pair-response.js.map +1 -0
  80. package/v2/schemas/generated/account-share-request.json +22 -0
  81. package/v2/schemas/generated/account-share-response.json +22 -0
  82. package/v2/schemas/generated/message-sign-request.json +22 -0
  83. package/v2/schemas/generated/message-sign-response.json +22 -0
  84. package/v2/schemas/schema.d.ts +30 -0
  85. package/v2/schemas/schema.js +15 -0
  86. package/v2/schemas/schema.js.map +1 -0
  87. package/v2/serializer.d.ts +25 -0
  88. package/v2/serializer.js +165 -0
  89. package/v2/serializer.js.map +1 -0
  90. package/v2/transactions/transaction-sign-request.d.ts +5 -0
  91. package/v2/transactions/transaction-sign-request.js +3 -0
  92. package/v2/transactions/transaction-sign-request.js.map +1 -0
  93. package/v2/transactions/transaction-sign-response.d.ts +4 -0
  94. package/v2/transactions/transaction-sign-response.js +3 -0
  95. package/v2/transactions/transaction-sign-response.js.map +1 -0
  96. package/v2/utils/generateId.d.ts +1 -0
  97. package/v2/utils/generateId.js +15 -0
  98. package/v2/utils/generateId.js.map +1 -0
  99. package/v2/utils/json-to-rlp.d.ts +8 -0
  100. package/v2/utils/json-to-rlp.js +177 -0
  101. package/v2/utils/json-to-rlp.js.map +1 -0
  102. package/v2/utils/toBuffer.d.ts +4 -0
  103. package/v2/utils/toBuffer.js +27 -0
  104. package/v2/utils/toBuffer.js.map +1 -0
  105. package/v2/validators/transactions.validator.d.ts +8 -0
  106. package/v2/validators/transactions.validator.js +3 -0
  107. package/v2/validators/transactions.validator.js.map +1 -0
  108. package/v2/validators/validators.d.ts +1 -0
  109. package/v2/validators/validators.js +172 -0
  110. package/v2/validators/validators.js.map +1 -0
  111. package/v3/iac-message-wrapper.d.ts +15 -0
  112. package/v3/iac-message-wrapper.js +72 -0
  113. package/v3/iac-message-wrapper.js.map +1 -0
  114. package/v3/interfaces.d.ts +8 -0
  115. package/v3/interfaces.js +31 -0
  116. package/v3/interfaces.js.map +1 -0
  117. package/v3/message.d.ts +42 -0
  118. package/v3/message.js +117 -0
  119. package/v3/message.js.map +1 -0
  120. package/v3/payload.d.ts +10 -0
  121. package/v3/payload.js +28 -0
  122. package/v3/payload.js.map +1 -0
  123. package/v3/schemas/definitions/account-share-request.d.ts +4 -0
  124. package/v3/schemas/definitions/account-share-request.js +3 -0
  125. package/v3/schemas/definitions/account-share-request.js.map +1 -0
  126. package/v3/schemas/definitions/account-share-response.d.ts +9 -0
  127. package/v3/schemas/definitions/account-share-response.js +3 -0
  128. package/v3/schemas/definitions/account-share-response.js.map +1 -0
  129. package/v3/schemas/definitions/config-set-request.d.ts +7 -0
  130. package/v3/schemas/definitions/config-set-request.js +3 -0
  131. package/v3/schemas/definitions/config-set-request.js.map +1 -0
  132. package/v3/schemas/definitions/config-set-response.d.ts +4 -0
  133. package/v3/schemas/definitions/config-set-response.js +3 -0
  134. package/v3/schemas/definitions/config-set-response.js.map +1 -0
  135. package/v3/schemas/definitions/hex-string.d.ts +1 -0
  136. package/v3/schemas/definitions/hex-string.js +3 -0
  137. package/v3/schemas/definitions/hex-string.js.map +1 -0
  138. package/v3/schemas/definitions/item-retrieve-request.d.ts +5 -0
  139. package/v3/schemas/definitions/item-retrieve-request.js +3 -0
  140. package/v3/schemas/definitions/item-retrieve-request.js.map +1 -0
  141. package/v3/schemas/definitions/item-retrieve-response.d.ts +3 -0
  142. package/v3/schemas/definitions/item-retrieve-response.js +3 -0
  143. package/v3/schemas/definitions/item-retrieve-response.js.map +1 -0
  144. package/v3/schemas/definitions/item-store-request.d.ts +5 -0
  145. package/v3/schemas/definitions/item-store-request.js +3 -0
  146. package/v3/schemas/definitions/item-store-request.js.map +1 -0
  147. package/v3/schemas/definitions/item-store-response.d.ts +3 -0
  148. package/v3/schemas/definitions/item-store-response.js +3 -0
  149. package/v3/schemas/definitions/item-store-response.js.map +1 -0
  150. package/v3/schemas/definitions/message-encrypt-request.d.ts +8 -0
  151. package/v3/schemas/definitions/message-encrypt-request.js +3 -0
  152. package/v3/schemas/definitions/message-encrypt-request.js.map +1 -0
  153. package/v3/schemas/definitions/message-encrypt-response.d.ts +4 -0
  154. package/v3/schemas/definitions/message-encrypt-response.js +3 -0
  155. package/v3/schemas/definitions/message-encrypt-response.js.map +1 -0
  156. package/v3/schemas/definitions/message-sign-request.d.ts +5 -0
  157. package/v3/schemas/definitions/message-sign-request.js +3 -0
  158. package/v3/schemas/definitions/message-sign-request.js.map +1 -0
  159. package/v3/schemas/definitions/message-sign-response.d.ts +5 -0
  160. package/v3/schemas/definitions/message-sign-response.js +3 -0
  161. package/v3/schemas/definitions/message-sign-response.js.map +1 -0
  162. package/v3/schemas/definitions/message-verify-request.d.ts +6 -0
  163. package/v3/schemas/definitions/message-verify-request.js +3 -0
  164. package/v3/schemas/definitions/message-verify-request.js.map +1 -0
  165. package/v3/schemas/definitions/message-verify-response.d.ts +6 -0
  166. package/v3/schemas/definitions/message-verify-response.js +3 -0
  167. package/v3/schemas/definitions/message-verify-response.js.map +1 -0
  168. package/v3/schemas/definitions/multisig-request.d.ts +7 -0
  169. package/v3/schemas/definitions/multisig-request.js +3 -0
  170. package/v3/schemas/definitions/multisig-request.js.map +1 -0
  171. package/v3/schemas/definitions/multisig-response.d.ts +5 -0
  172. package/v3/schemas/definitions/multisig-response.js +3 -0
  173. package/v3/schemas/definitions/multisig-response.js.map +1 -0
  174. package/v3/schemas/definitions/pair-request.d.ts +7 -0
  175. package/v3/schemas/definitions/pair-request.js +3 -0
  176. package/v3/schemas/definitions/pair-request.js.map +1 -0
  177. package/v3/schemas/definitions/pair-response.d.ts +6 -0
  178. package/v3/schemas/definitions/pair-response.js +3 -0
  179. package/v3/schemas/definitions/pair-response.js.map +1 -0
  180. package/v3/schemas/generated/account-share-request.json +22 -0
  181. package/v3/schemas/generated/account-share-response.json +34 -0
  182. package/v3/schemas/generated/message-sign-request.json +22 -0
  183. package/v3/schemas/generated/message-sign-response.json +22 -0
  184. package/v3/schemas/generated/transaction-sign-request-astar.json +0 -0
  185. package/v3/schemas/generated/transaction-sign-request-substrate.json +29 -0
  186. package/v3/schemas/schema.d.ts +29 -0
  187. package/v3/schemas/schema.js +14 -0
  188. package/v3/schemas/schema.js.map +1 -0
  189. package/v3/serializer.d.ts +21 -0
  190. package/v3/serializer.js +163 -0
  191. package/v3/serializer.js.map +1 -0
  192. package/v3/transactions/transaction-sign-request.d.ts +5 -0
  193. package/v3/transactions/transaction-sign-request.js +3 -0
  194. package/v3/transactions/transaction-sign-request.js.map +1 -0
  195. package/v3/transactions/transaction-sign-response.d.ts +4 -0
  196. package/v3/transactions/transaction-sign-response.js +3 -0
  197. package/v3/transactions/transaction-sign-response.js.map +1 -0
  198. package/v3/utils/generateId.d.ts +2 -0
  199. package/v3/utils/generateId.js +17 -0
  200. package/v3/utils/generateId.js.map +1 -0
  201. package/v3/utils/json-to-rlp.d.ts +8 -0
  202. package/v3/utils/json-to-rlp.js +235 -0
  203. package/v3/utils/json-to-rlp.js.map +1 -0
  204. package/v3/utils/toBuffer.d.ts +2 -0
  205. package/v3/utils/toBuffer.js +22 -0
  206. package/v3/utils/toBuffer.js.map +1 -0
  207. package/v3/validators/transactions.validator.d.ts +9 -0
  208. package/v3/validators/transactions.validator.js +3 -0
  209. package/v3/validators/transactions.validator.js.map +1 -0
  210. package/v3/validators/validators.d.ts +1 -0
  211. package/v3/validators/validators.js +170 -0
  212. package/v3/validators/validators.js.map +1 -0
@@ -0,0 +1,4 @@
1
+ export interface TransactionSignResponse {
2
+ transaction: string;
3
+ accountIdentifier: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=transaction-sign-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-sign-response.js","sourceRoot":"","sources":["../../../src/v2/transactions/transaction-sign-response.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export declare function generateIdV2(length: number): string;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateIdV2 = void 0;
4
+ // Not very random, but IDs don't have to be because they are only used locally
5
+ function generateIdV2(length) {
6
+ var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
7
+ var charactersLength = characters.length;
8
+ var result = '';
9
+ for (var i = 0; i < length; i++) {
10
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
11
+ }
12
+ return result;
13
+ }
14
+ exports.generateIdV2 = generateIdV2;
15
+ //# sourceMappingURL=generateId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateId.js","sourceRoot":"","sources":["../../../src/v2/utils/generateId.ts"],"names":[],"mappings":";;;AAAA,+EAA+E;AAC/E,SAAgB,YAAY,CAAC,MAAc;IACzC,IAAM,UAAU,GAAW,gEAAgE,CAAA;IAC3F,IAAM,gBAAgB,GAAW,UAAU,CAAC,MAAM,CAAA;IAClD,IAAI,MAAM,GAAW,EAAE,CAAA;IACvB,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAA;KAC1E;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AATD,oCASC"}
@@ -0,0 +1,8 @@
1
+ import { SchemaItem, SchemaRoot } from '../schemas/schema';
2
+ import { RLPData } from './toBuffer';
3
+ export declare function getDefinitionByRefPath(schema: SchemaRoot, refPath: string): SchemaItem;
4
+ export declare function unwrapSchema(schema: SchemaRoot): SchemaItem;
5
+ export declare function jsonToArray(key: string, schema: SchemaItem, value: Object): RLPData;
6
+ export declare function rlpArrayToJson(schema: SchemaItem, decoded: RLPData): {
7
+ [key: string]: unknown;
8
+ };
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rlpArrayToJson = exports.jsonToArray = exports.unwrapSchema = exports.getDefinitionByRefPath = void 0;
4
+ var errors_1 = require("@airgap/coinlib-core/errors");
5
+ var coinlib_error_1 = require("@airgap/coinlib-core/errors/coinlib-error");
6
+ var assert_1 = require("@airgap/coinlib-core/utils/assert");
7
+ var schema_1 = require("../schemas/schema");
8
+ function log() {
9
+ var args = [];
10
+ for (var _i = 0; _i < arguments.length; _i++) {
11
+ args[_i] = arguments[_i];
12
+ }
13
+ var loggingEnabled = false;
14
+ if (loggingEnabled) {
15
+ // tslint:disable-next-line:no-console
16
+ console.log.apply(console, args);
17
+ }
18
+ }
19
+ function getDefinitionByRefPath(schema, refPath) {
20
+ var mainDefinitionName = refPath.split('/').slice(-1)[0];
21
+ var definitions = schema.definitions;
22
+ return definitions[mainDefinitionName];
23
+ }
24
+ exports.getDefinitionByRefPath = getDefinitionByRefPath;
25
+ function unwrapSchema(schema) {
26
+ log('UNWRAPPING SCHEMA', schema);
27
+ return getDefinitionByRefPath(schema, schema.$ref);
28
+ }
29
+ exports.unwrapSchema = unwrapSchema;
30
+ function typeError(key, expectedType, value) {
31
+ return new errors_1.InvalidSchemaType("".concat(key, ": expected type \"").concat(expectedType, "\", but got \"").concat(typeof value, "\", value: ").concat(typeof value === 'object' ? JSON.stringify(value) : value));
32
+ }
33
+ function checkType(key, expectedType, value, callback) {
34
+ if (expectedType === 'array' && Array.isArray(value)) {
35
+ return callback(value);
36
+ }
37
+ else if (typeof value === expectedType && !Array.isArray(value)) {
38
+ return callback(value);
39
+ }
40
+ else {
41
+ throw typeError(key, expectedType, value);
42
+ }
43
+ }
44
+ function getTypeFromSchemaDefinition(schema) {
45
+ var _a;
46
+ return (_a = schema === null || schema === void 0 ? void 0 : schema.type) !== null && _a !== void 0 ? _a : ((schema === null || schema === void 0 ? void 0 : schema.$ref) === '#/definitions/HexString' ? schema_1.SchemaTypes.HEX_STRING : schema_1.SchemaTypes.STRING);
47
+ }
48
+ function jsonToArray(key, schema, value) {
49
+ var type = getTypeFromSchemaDefinition(schema);
50
+ switch (type) {
51
+ case schema_1.SchemaTypes.STRING:
52
+ return checkType(key, 'string', value, function (arg) {
53
+ log("Parsing key ".concat(key, " as string, which results in ").concat(arg));
54
+ if (arg.startsWith('0x')) {
55
+ throw new errors_1.InvalidString("string \"".concat(value, "\" starts with \"0x\". This causes problems with RLP. Please use the \"HexString\" type instead of \"string\""));
56
+ }
57
+ return arg;
58
+ });
59
+ case schema_1.SchemaTypes.HEX_STRING:
60
+ return checkType(key, 'string', value, function (arg) {
61
+ log("Parsing key ".concat(key, " as hex-string, which results in ").concat(arg));
62
+ if (!arg.startsWith('0x')) {
63
+ throw new errors_1.InvalidHexString("\"".concat(value, "\" does not start with \"0x\""));
64
+ }
65
+ return arg.substr(2); // Remove the '0x'
66
+ });
67
+ case schema_1.SchemaTypes.NUMBER:
68
+ case schema_1.SchemaTypes.INTEGER:
69
+ return checkType(key, 'number', value, function (arg) {
70
+ log("Parsing key ".concat(key, " as number, which results in ").concat(arg.toString()));
71
+ return arg.toString();
72
+ });
73
+ case schema_1.SchemaTypes.BOOLEAN:
74
+ return checkType(key, 'boolean', value, function (arg) {
75
+ log("Parsing key ".concat(key, " as boolean, which results in ").concat(arg ? '1' : '0'));
76
+ return arg ? '1' : '0';
77
+ });
78
+ case schema_1.SchemaTypes.NULL:
79
+ if (typeof value === 'undefined') {
80
+ log("Parsing key ".concat(key, " as undefined, which results in ''"));
81
+ return '';
82
+ }
83
+ else {
84
+ throw typeError(key, 'undefined', value);
85
+ }
86
+ case schema_1.SchemaTypes.ARRAY:
87
+ return checkType(key, 'array', value, function (arg) {
88
+ return arg.map(function (element, index) {
89
+ var items = schema.items;
90
+ if (Array.isArray(items)) {
91
+ return jsonToArray(key, items[index], element);
92
+ }
93
+ else {
94
+ return jsonToArray(key, items, element);
95
+ }
96
+ });
97
+ });
98
+ case schema_1.SchemaTypes.OBJECT:
99
+ return checkType(key, 'object', value, function (arg) {
100
+ var properties = schema.properties;
101
+ var keys = Object.keys(properties).sort();
102
+ var out = [];
103
+ for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
104
+ var propertyKey = keys_1[_i];
105
+ out.push(jsonToArray(propertyKey, properties[propertyKey], arg[propertyKey]));
106
+ }
107
+ log("Parsing key ".concat(key, " as object, which results in ").concat(out));
108
+ return out;
109
+ });
110
+ default:
111
+ (0, assert_1.assertNever)(type);
112
+ throw new errors_1.InvalidSchemaType();
113
+ }
114
+ }
115
+ exports.jsonToArray = jsonToArray;
116
+ function decode(schemaItem, decoded) {
117
+ if (typeof decoded === 'undefined') {
118
+ throw new errors_1.InvalidPayloadError();
119
+ }
120
+ var type = getTypeFromSchemaDefinition(schemaItem);
121
+ switch (type) {
122
+ case schema_1.SchemaTypes.BOOLEAN:
123
+ if (decoded.toString() !== '') {
124
+ return decoded.toString() === '1';
125
+ }
126
+ break;
127
+ case schema_1.SchemaTypes.STRING:
128
+ return decoded.toString();
129
+ case schema_1.SchemaTypes.HEX_STRING:
130
+ return "0x".concat(decoded.toString());
131
+ case schema_1.SchemaTypes.NUMBER:
132
+ case schema_1.SchemaTypes.INTEGER:
133
+ if (decoded.toString() !== '') {
134
+ return parseInt(decoded.toString(), 10);
135
+ }
136
+ break;
137
+ case schema_1.SchemaTypes.NULL:
138
+ return undefined;
139
+ case schema_1.SchemaTypes.ARRAY:
140
+ return decoded.map(function (decodedElement, index) {
141
+ var items = schemaItem.items;
142
+ if (Array.isArray(items)) {
143
+ return decode(items[index], decodedElement);
144
+ }
145
+ else {
146
+ return decode(items, decodedElement);
147
+ }
148
+ });
149
+ case schema_1.SchemaTypes.OBJECT:
150
+ return rlpArrayToJson(schemaItem.properties, decoded);
151
+ default:
152
+ (0, assert_1.assertNever)(type);
153
+ throw new errors_1.InvalidSchemaType();
154
+ }
155
+ }
156
+ function rlpArrayToJson(schema, decoded) {
157
+ var outObject = {};
158
+ if (schema.type === schema_1.SchemaTypes.OBJECT) {
159
+ var newShema = schema.properties;
160
+ if (newShema) {
161
+ return rlpArrayToJson(newShema, decoded);
162
+ }
163
+ else {
164
+ throw new errors_1.NotFoundError(coinlib_error_1.Domain.SERIALIZER, 'Schema not available.');
165
+ }
166
+ }
167
+ var keys = Object.keys(schema).sort();
168
+ log(keys);
169
+ for (var i = 0; i < keys.length; i++) {
170
+ var key = keys[i];
171
+ log(schema);
172
+ outObject[key] = decode(schema[key], decoded[i]);
173
+ }
174
+ return outObject;
175
+ }
176
+ exports.rlpArrayToJson = rlpArrayToJson;
177
+ //# sourceMappingURL=json-to-rlp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-to-rlp.js","sourceRoot":"","sources":["../../../src/v2/utils/json-to-rlp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /// <reference types="node" />
2
+ import BigNumber from '@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber';
3
+ export declare type RLPData = number | string | boolean | BigNumber | Buffer;
4
+ export declare function toBuffer(rlpArray: RLPData): Buffer | Buffer[];
@@ -0,0 +1,27 @@
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
+ exports.toBuffer = void 0;
7
+ var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
8
+ function toBuffer(rlpArray) {
9
+ if (Array.isArray(rlpArray)) {
10
+ return rlpArray.map(toBuffer);
11
+ }
12
+ if (typeof rlpArray === 'number') {
13
+ return Buffer.from(rlpArray.toString());
14
+ }
15
+ if (typeof rlpArray === 'boolean') {
16
+ return Buffer.from(rlpArray ? '1' : '0');
17
+ }
18
+ if (bignumber_1.default.isBigNumber(rlpArray)) {
19
+ return Buffer.from(rlpArray.toFixed());
20
+ }
21
+ if (Buffer.isBuffer(rlpArray)) {
22
+ return rlpArray;
23
+ }
24
+ return Buffer.from(rlpArray);
25
+ }
26
+ exports.toBuffer = toBuffer;
27
+ //# sourceMappingURL=toBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toBuffer.js","sourceRoot":"","sources":["../../../src/v2/utils/toBuffer.ts"],"names":[],"mappings":";;;;;;AAAA,iHAA0F;AAI1F,SAAgB,QAAQ,CAAC,QAAiB;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3B,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAa,CAAA;KAC1C;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;QAChC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;KACxC;IAED,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;KACzC;IAED,IAAI,mBAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;QACnC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;KACvC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC7B,OAAO,QAAQ,CAAA;KAChB;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAC9B,CAAC;AAtBD,4BAsBC"}
@@ -0,0 +1,8 @@
1
+ import { SignedTransaction, UnsignedTransaction } from '@airgap/coinlib-core';
2
+ export interface TransactionValidator {
3
+ validateUnsignedTransaction(transaction: UnsignedTransaction): Promise<boolean>;
4
+ validateSignedTransaction(transaction: SignedTransaction): Promise<boolean>;
5
+ }
6
+ export interface TransactionValidatorFactory<T extends TransactionValidator = TransactionValidator> {
7
+ create(): T;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=transactions.validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.validator.js","sourceRoot":"","sources":["../../../src/v2/validators/transactions.validator.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export declare function validateSyncScheme(syncScheme: unknown): Promise<any>;
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.validateSyncScheme = void 0;
43
+ var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
44
+ var validate_1 = require("@airgap/coinlib-core/dependencies/src/validate.js-0.13.1/validate");
45
+ var errors_1 = require("@airgap/coinlib-core/errors");
46
+ var coinlib_error_1 = require("@airgap/coinlib-core/errors/coinlib-error");
47
+ validate_1.validators.type = function (value, options, key, attributes) {
48
+ // allow empty values by default (needs to be checked by "presence" check)
49
+ if (value === null || typeof value === 'undefined') {
50
+ return null;
51
+ }
52
+ // allow defining object of any type using their constructor. --> options = {clazz: ClassName}
53
+ /*
54
+ if (typeof options === 'object' && options.clazz) {
55
+ return value instanceof options.clazz ? null : 'is not of type "' + options.clazz.name + '"'
56
+ }
57
+ */
58
+ if (!validate_1.validators.type.checks[options]) {
59
+ throw new errors_1.NotFoundError(coinlib_error_1.Domain.SERIALIZER, "Could not find validator for type ".concat(options));
60
+ }
61
+ return validate_1.validators.type.checks[options](value) ? null : "is not of type \"".concat(options, "\"");
62
+ };
63
+ validate_1.validators.type.checks = {
64
+ Object: function (value) {
65
+ return (0, validate_1.isObject)(value) && !(0, validate_1.isArray)(value);
66
+ },
67
+ Array: validate_1.isArray,
68
+ Integer: validate_1.isInteger,
69
+ Number: validate_1.isNumber,
70
+ String: validate_1.isString,
71
+ Date: validate_1.isDate,
72
+ Boolean: function (value) {
73
+ return typeof value === 'boolean';
74
+ },
75
+ BigNumber: function (value) {
76
+ return bignumber_1.default.isBigNumber(value);
77
+ }
78
+ };
79
+ validate_1.validators.isHexStringWithPrefix = function (value) {
80
+ if (typeof value !== 'string') {
81
+ return 'is not hex string';
82
+ }
83
+ if (!value.startsWith('0x')) {
84
+ return 'is not hex string';
85
+ }
86
+ var hexWithoutPrefix = value.substr(2);
87
+ if (hexWithoutPrefix.length === 0) {
88
+ // For ethereum, "0x" is valid
89
+ return null;
90
+ }
91
+ return /[0-9A-F]/gi.test(hexWithoutPrefix) ? null : 'is not hex string';
92
+ };
93
+ validate_1.validators.isPublicKey = function (value) {
94
+ if (typeof value !== 'string') {
95
+ return 'is not a valid public key: should be of type string';
96
+ }
97
+ if (value.length !== 64) {
98
+ return 'is not a valid public key: wrong length';
99
+ }
100
+ return /[0-9A-F]/gi.test(value) ? null : 'is not a valid public key: invalid characters';
101
+ };
102
+ function validateSyncScheme(syncScheme) {
103
+ return __awaiter(this, void 0, void 0, function () {
104
+ var constraints;
105
+ return __generator(this, function (_a) {
106
+ constraints = {
107
+ version: {
108
+ presence: { allowEmpty: false },
109
+ numericality: { noStrings: true, onlyInteger: true, greaterThanOrEqualTo: 0 }
110
+ },
111
+ type: {
112
+ presence: { allowEmpty: false },
113
+ numericality: { noStrings: true, onlyInteger: true, greaterThanOrEqualTo: 0 }
114
+ },
115
+ protocol: {
116
+ presence: { allowEmpty: false },
117
+ type: 'String',
118
+ length: {
119
+ minimum: 1
120
+ }
121
+ },
122
+ payload: {
123
+ presence: { allowEmpty: false },
124
+ type: 'Array'
125
+ }
126
+ };
127
+ return [2 /*return*/, (0, validate_1.validate)(syncScheme, constraints)];
128
+ });
129
+ });
130
+ }
131
+ exports.validateSyncScheme = validateSyncScheme;
132
+ // tslint:disable-next-line
133
+ /*
134
+ function validateSerializationInput(from: string, fee: BigNumber, amount: BigNumber, publicKey: string, transaction: any) {
135
+ const constraints = {
136
+ from: {
137
+ presence: { allowEmpty: false },
138
+ type: 'String'
139
+ },
140
+ fee: {
141
+ presence: { allowEmpty: false },
142
+ type: 'BigNumber'
143
+ },
144
+ amount: {
145
+ presence: { allowEmpty: false },
146
+ type: 'BigNumber'
147
+ },
148
+ publicKey: {
149
+ presence: { allowEmpty: false },
150
+ type: 'String'
151
+ },
152
+ transaction: {
153
+ presence: { allowEmpty: false },
154
+ type: 'Array'
155
+ }
156
+ }
157
+
158
+ let test = validate(
159
+ {
160
+ from,
161
+ fee,
162
+ amount,
163
+ publicKey,
164
+ transaction
165
+ },
166
+ constraints
167
+ )
168
+
169
+ return test
170
+ }
171
+ */
172
+ //# sourceMappingURL=validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../../src/v2/validators/validators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { IACMessageDefinitionObjectV3, MessageDefinitionArray } from './message';
2
+ import { Payload } from './payload';
3
+ import { SerializerV3 } from './serializer';
4
+ export declare type IACMessageWrapperVersion = number;
5
+ export declare type IACMessageWrapperArray = [IACMessageWrapperVersion, Payload];
6
+ export declare type IACMessageWrapperArrayEncoded = [IACMessageWrapperVersion, MessageDefinitionArray[]];
7
+ export declare class IACMessageWrapper {
8
+ readonly version: number;
9
+ payload: Payload;
10
+ constructor(data: Payload);
11
+ decoded(): IACMessageWrapperArray;
12
+ encoded(serializer?: SerializerV3): string;
13
+ static fromDecoded(data: IACMessageDefinitionObjectV3[]): IACMessageWrapper;
14
+ static fromEncoded(data: string, serializer?: SerializerV3): IACMessageWrapper;
15
+ }
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.IACMessageWrapper = void 0;
27
+ var bs58check = __importStar(require("@airgap/coinlib-core/dependencies/src/bs58check-2.1.2/index"));
28
+ var index_1 = require("@airgap/coinlib-core/dependencies/src/cbor-sync-1.0.4/index");
29
+ var pako_2_0_3_1 = require("@airgap/coinlib-core/dependencies/src/pako-2.0.3");
30
+ var message_1 = require("./message");
31
+ var payload_1 = require("./payload");
32
+ var serializer_1 = require("./serializer");
33
+ var SERIALIZER_VERSION = 3;
34
+ var IACMessageWrapper = /** @class */ (function () {
35
+ function IACMessageWrapper(data) {
36
+ this.version = SERIALIZER_VERSION;
37
+ this.payload = data;
38
+ }
39
+ IACMessageWrapper.prototype.decoded = function () {
40
+ return [this.version, this.payload];
41
+ };
42
+ IACMessageWrapper.prototype.encoded = function (serializer) {
43
+ if (serializer === void 0) { serializer = serializer_1.SerializerV3.getInstance(); }
44
+ var arr = [this.version, this.payload.asArray(serializer)];
45
+ var buffer = (0, index_1.encode)(arr);
46
+ console.log(buffer.toString('hex'));
47
+ var deflated = (0, pako_2_0_3_1.gzip)(buffer);
48
+ return bs58check.encode(Buffer.from(deflated));
49
+ };
50
+ IACMessageWrapper.fromDecoded = function (data) {
51
+ var payload = payload_1.Payload.fromDecoded(data);
52
+ return new IACMessageWrapper(payload);
53
+ };
54
+ IACMessageWrapper.fromEncoded = function (data, serializer) {
55
+ if (serializer === void 0) { serializer = serializer_1.SerializerV3.getInstance(); }
56
+ var buffer = bs58check.decode(data);
57
+ var inflated = (0, pako_2_0_3_1.ungzip)(buffer);
58
+ var decoded = (0, index_1.decode)(Buffer.from(inflated));
59
+ if (parseInt(decoded[0].toString(), 10) !== SERIALIZER_VERSION) {
60
+ throw new Error('Unsupported version');
61
+ }
62
+ if (decoded[1].some(function (el) { return !(0, message_1.isMessageDefinitionArray)(el); })) {
63
+ throw new Error('Decoded message has wrong format');
64
+ }
65
+ var payload = decoded[1];
66
+ var finalPayload = payload_1.Payload.fromEncoded(payload, serializer);
67
+ return new IACMessageWrapper(finalPayload);
68
+ };
69
+ return IACMessageWrapper;
70
+ }());
71
+ exports.IACMessageWrapper = IACMessageWrapper;
72
+ //# sourceMappingURL=iac-message-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iac-message-wrapper.js","sourceRoot":"","sources":["../../src/v3/iac-message-wrapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qGAAwF;AACxF,qFAA4F;AAC5F,+EAA+E;AAE/E,qCAA0G;AAC1G,qCAAmC;AACnC,2CAA2C;AAM3C,IAAM,kBAAkB,GAAG,CAAC,CAAA;AAE5B;IAIE,2BAAY,IAAa;QAHT,YAAO,GAAW,kBAAkB,CAAA;QAIlD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;IAEM,mCAAO,GAAd;QACE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;IAEM,mCAAO,GAAd,UAAe,UAAqD;QAArD,2BAAA,EAAA,aAA2B,yBAAY,CAAC,WAAW,EAAE;QAClE,IAAM,GAAG,GAAkC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;QAE3F,IAAM,MAAM,GAAW,IAAA,cAAM,EAAC,GAAG,CAAC,CAAA;QAElC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QAEnC,IAAM,QAAQ,GAAe,IAAA,iBAAI,EAAC,MAAM,CAAC,CAAA;QAEzC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChD,CAAC;IAEa,6BAAW,GAAzB,UAA0B,IAAoC;QAC5D,IAAM,OAAO,GAAY,iBAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAElD,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAEa,6BAAW,GAAzB,UAA0B,IAAY,EAAE,UAAqD;QAArD,2BAAA,EAAA,aAA2B,yBAAY,CAAC,WAAW,EAAE;QAC3F,IAAM,MAAM,GAAW,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAE7C,IAAM,QAAQ,GAAe,IAAA,mBAAM,EAAC,MAAM,CAAC,CAAA;QAE3C,IAAM,OAAO,GAAkC,IAAA,cAAM,EAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;QAE5E,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,KAAK,kBAAkB,EAAE;YAC9D,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;SACvC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAC,EAAE,IAAK,OAAA,CAAC,IAAA,kCAAwB,EAAC,EAAE,CAAC,EAA7B,CAA6B,CAAC,EAAE;YAC1D,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;SACpD;QAED,IAAM,OAAO,GAA6B,OAAO,CAAC,CAAC,CAAC,CAAA;QAEpD,IAAM,YAAY,GAAY,iBAAO,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAEtE,OAAO,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAA;IAC5C,CAAC;IACH,wBAAC;AAAD,CAAC,AAnDD,IAmDC;AAnDY,8CAAiB"}
@@ -0,0 +1,8 @@
1
+ export declare enum IACMessageType {
2
+ AccountShareRequest = 3,
3
+ AccountShareResponse = 4,
4
+ TransactionSignRequest = 5,
5
+ TransactionSignResponse = 6,
6
+ MessageSignRequest = 7,
7
+ MessageSignResponse = 8
8
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IACMessageType = void 0;
4
+ var IACMessageType;
5
+ (function (IACMessageType) {
6
+ // PairRequest = 1,
7
+ // PairResponse = 2,
8
+ IACMessageType[IACMessageType["AccountShareRequest"] = 3] = "AccountShareRequest";
9
+ IACMessageType[IACMessageType["AccountShareResponse"] = 4] = "AccountShareResponse";
10
+ IACMessageType[IACMessageType["TransactionSignRequest"] = 5] = "TransactionSignRequest";
11
+ IACMessageType[IACMessageType["TransactionSignResponse"] = 6] = "TransactionSignResponse";
12
+ IACMessageType[IACMessageType["MessageSignRequest"] = 7] = "MessageSignRequest";
13
+ IACMessageType[IACMessageType["MessageSignResponse"] = 8] = "MessageSignResponse";
14
+ // MessageVerifyRequest = 9,
15
+ // MessageVerifyResponse = 10,
16
+ // MessageEncryptRequest = 11,
17
+ // MessageEncryptResponse = 12,
18
+ // MessageDecryptRequest = 13,
19
+ // MessageDecryptResponse = 14,
20
+ // ItemStoreRequest = 15,
21
+ // ItemStoreResponse = 16,
22
+ // ItemRetrieveRequest = 17,
23
+ // ItemRetrieveResponse = 18,
24
+ // ConfigSetRequest = 19,
25
+ // ConfigSetResponse = 20,
26
+ // MultisigRequest = 21,
27
+ // MultisigResponse = 22,
28
+ // SocialRecoveryShareRequest = 23,
29
+ // SocialRecoveryShareResponse = 24
30
+ })(IACMessageType = exports.IACMessageType || (exports.IACMessageType = {}));
31
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/v3/interfaces.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAyBX;AAzBD,WAAY,cAAc;IACxB,mBAAmB;IACnB,oBAAoB;IACpB,iFAAuB,CAAA;IACvB,mFAAwB,CAAA;IACxB,uFAA0B,CAAA;IAC1B,yFAA2B,CAAA;IAC3B,+EAAsB,CAAA;IACtB,iFAAuB,CAAA;IACvB,4BAA4B;IAC5B,8BAA8B;IAC9B,8BAA8B;IAC9B,+BAA+B;IAC/B,8BAA8B;IAC9B,+BAA+B;IAC/B,yBAAyB;IACzB,0BAA0B;IAC1B,4BAA4B;IAC5B,6BAA6B;IAC7B,yBAAyB;IACzB,0BAA0B;IAC1B,wBAAwB;IACxB,yBAAyB;IACzB,mCAAmC;IACnC,mCAAmC;AACrC,CAAC,EAzBW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAyBzB"}