@airgap/stellar 0.13.41-beta.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 (68) hide show
  1. package/LICENSE.md +7 -0
  2. package/index.d.ts +1 -0
  3. package/index.js +18 -0
  4. package/index.js.map +1 -0
  5. package/package.json +65 -0
  6. package/readme.md +121 -0
  7. package/v1/block-explorer/StellarBlockExplorer.d.ts +9 -0
  8. package/v1/block-explorer/StellarBlockExplorer.js +72 -0
  9. package/v1/block-explorer/StellarBlockExplorer.js.map +1 -0
  10. package/v1/data/StellarAddress.d.ts +9 -0
  11. package/v1/data/StellarAddress.js +30 -0
  12. package/v1/data/StellarAddress.js.map +1 -0
  13. package/v1/index.d.ts +13 -0
  14. package/v1/index.js +11 -0
  15. package/v1/index.js.map +1 -0
  16. package/v1/module/StellarModule.d.ts +17 -0
  17. package/v1/module/StellarModule.js +107 -0
  18. package/v1/module/StellarModule.js.map +1 -0
  19. package/v1/module.d.ts +3 -0
  20. package/v1/module.js +24 -0
  21. package/v1/module.js.map +1 -0
  22. package/v1/protocol/StellarCryptoClient.d.ts +8 -0
  23. package/v1/protocol/StellarCryptoClient.js +104 -0
  24. package/v1/protocol/StellarCryptoClient.js.map +1 -0
  25. package/v1/protocol/StellarProtocol.d.ts +42 -0
  26. package/v1/protocol/StellarProtocol.js +511 -0
  27. package/v1/protocol/StellarProtocol.js.map +1 -0
  28. package/v1/serializer/v3/schemas/converter/transaction-converter.d.ts +7 -0
  29. package/v1/serializer/v3/schemas/converter/transaction-converter.js +42 -0
  30. package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -0
  31. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-stellar.d.ts +4 -0
  32. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-stellar.js +3 -0
  33. package/v1/serializer/v3/schemas/definitions/transaction-sign-request-stellar.js.map +1 -0
  34. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-stellar.d.ts +3 -0
  35. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-stellar.js +3 -0
  36. package/v1/serializer/v3/schemas/definitions/transaction-sign-response-stellar.js.map +1 -0
  37. package/v1/serializer/v3/schemas/generated/transaction-sign-request-stellar.json +29 -0
  38. package/v1/serializer/v3/schemas/generated/transaction-sign-response-stellar.json +19 -0
  39. package/v1/serializer/v3/serializer-companion.d.ts +14 -0
  40. package/v1/serializer/v3/serializer-companion.js +158 -0
  41. package/v1/serializer/v3/serializer-companion.js.map +1 -0
  42. package/v1/serializer/v3/validators/transaction-validator.d.ts +7 -0
  43. package/v1/serializer/v3/validators/transaction-validator.js +89 -0
  44. package/v1/serializer/v3/validators/transaction-validator.js.map +1 -0
  45. package/v1/serializer/v3/validators/validators.d.ts +6 -0
  46. package/v1/serializer/v3/validators/validators.js +92 -0
  47. package/v1/serializer/v3/validators/validators.js.map +1 -0
  48. package/v1/types/crypto.d.ts +2 -0
  49. package/v1/types/crypto.js +3 -0
  50. package/v1/types/crypto.js.map +1 -0
  51. package/v1/types/protocol.d.ts +7 -0
  52. package/v1/types/protocol.js +3 -0
  53. package/v1/types/protocol.js.map +1 -0
  54. package/v1/types/transaction.d.ts +10 -0
  55. package/v1/types/transaction.js +6 -0
  56. package/v1/types/transaction.js.map +1 -0
  57. package/v1/utils/convert.d.ts +3 -0
  58. package/v1/utils/convert.js +32 -0
  59. package/v1/utils/convert.js.map +1 -0
  60. package/v1/utils/key.d.ts +3 -0
  61. package/v1/utils/key.js +37 -0
  62. package/v1/utils/key.js.map +1 -0
  63. package/v1/utils/signature.d.ts +2 -0
  64. package/v1/utils/signature.js +22 -0
  65. package/v1/utils/signature.js.map +1 -0
  66. package/v1/utils/transaction.d.ts +3 -0
  67. package/v1/utils/transaction.js +22 -0
  68. package/v1/utils/transaction.js.map +1 -0
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertHexBytesString = exports.convertEncodedBytesString = void 0;
4
+ var coinlib_core_1 = require("@airgap/coinlib-core");
5
+ var errors_1 = require("@airgap/coinlib-core/errors");
6
+ var stellar_sdk_1 = require("@stellar/stellar-sdk");
7
+ function convertEncodedBytesString(encoded, targetFormat) {
8
+ switch (targetFormat) {
9
+ case 'encoded':
10
+ return encoded;
11
+ case 'hex':
12
+ var rawBytes = stellar_sdk_1.StrKey.decodeEd25519PublicKey(encoded);
13
+ return Buffer.from(rawBytes).toString('hex');
14
+ default:
15
+ (0, coinlib_core_1.assertNever)(targetFormat);
16
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.STELLAR, 'Unsupported bytes string format.');
17
+ }
18
+ }
19
+ exports.convertEncodedBytesString = convertEncodedBytesString;
20
+ function convertHexBytesString(hex, targetFormat) {
21
+ switch (targetFormat) {
22
+ case 'hex':
23
+ return hex;
24
+ case 'encoded':
25
+ return stellar_sdk_1.StrKey.encodeEd25519PublicKey(Buffer.from(hex, 'hex'));
26
+ default:
27
+ (0, coinlib_core_1.assertNever)(targetFormat);
28
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.STELLAR, 'Unsupported bytes string format.');
29
+ }
30
+ }
31
+ exports.convertHexBytesString = convertHexBytesString;
32
+ //# sourceMappingURL=convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/v1/utils/convert.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAC1D,sDAA8D;AAE9D,oDAA6C;AAE7C,SAAgB,yBAAyB,CAAC,OAAe,EAAE,YAA+B;IACxF,QAAQ,YAAY,EAAE;QACpB,KAAK,SAAS;YACZ,OAAO,OAAO,CAAA;QAChB,KAAK,KAAK;YACR,IAAM,QAAQ,GAAG,oBAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;YACvD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9C;YACE,IAAA,0BAAW,EAAC,YAAY,CAAC,CAAA;YACzB,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAA;KACjF;AACH,CAAC;AAXD,8DAWC;AAED,SAAgB,qBAAqB,CAAC,GAAW,EAAE,YAA+B;IAChF,QAAQ,YAAY,EAAE;QACpB,KAAK,KAAK;YACR,OAAO,GAAG,CAAA;QACZ,KAAK,SAAS;YACZ,OAAO,oBAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;QAC/D;YACE,IAAA,0BAAW,EAAC,YAAY,CAAC,CAAA;YACzB,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAA;KACjF;AACH,CAAC;AAVD,sDAUC"}
@@ -0,0 +1,3 @@
1
+ import { PublicKey } from '@airgap/module-kit';
2
+ export declare function stellarPublicKey(publicKey: string): PublicKey;
3
+ export declare function convertPublicKey(publicKey: PublicKey, targetFormat: PublicKey['format']): PublicKey;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertPublicKey = exports.stellarPublicKey = void 0;
4
+ var coinlib_core_1 = require("@airgap/coinlib-core");
5
+ var errors_1 = require("@airgap/coinlib-core/errors");
6
+ var hex_1 = require("@airgap/coinlib-core/utils/hex");
7
+ var module_kit_1 = require("@airgap/module-kit");
8
+ var stellar_sdk_1 = require("@stellar/stellar-sdk");
9
+ var convert_1 = require("./convert");
10
+ function stellarPublicKey(publicKey) {
11
+ var format = (0, hex_1.isHex)(publicKey)
12
+ ? 'hex'
13
+ : stellar_sdk_1.StrKey.isValidEd25519PublicKey(publicKey)
14
+ ? 'encoded'
15
+ : undefined;
16
+ if (format === undefined) {
17
+ throw new errors_1.ConditionViolationError(coinlib_core_1.Domain.STELLAR, 'Invalid Stellar public key.');
18
+ }
19
+ return (0, module_kit_1.newPublicKey)(publicKey, format);
20
+ }
21
+ exports.stellarPublicKey = stellarPublicKey;
22
+ function convertPublicKey(publicKey, targetFormat) {
23
+ if (publicKey.format === targetFormat) {
24
+ return publicKey;
25
+ }
26
+ switch (publicKey.format) {
27
+ case 'encoded':
28
+ return (0, module_kit_1.newPublicKey)((0, convert_1.convertEncodedBytesString)(publicKey.value, targetFormat), targetFormat);
29
+ case 'hex':
30
+ return (0, module_kit_1.newPublicKey)((0, convert_1.convertHexBytesString)(publicKey.value, targetFormat), targetFormat);
31
+ default:
32
+ (0, coinlib_core_1.assertNever)(publicKey.format);
33
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.STELLAR, 'Unsupported public key format.');
34
+ }
35
+ }
36
+ exports.convertPublicKey = convertPublicKey;
37
+ //# sourceMappingURL=key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key.js","sourceRoot":"","sources":["../../../src/v1/utils/key.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAC1D,sDAAuF;AACvF,sDAAsD;AACtD,iDAA4D;AAC5D,oDAA6C;AAE7C,qCAA4E;AAE5E,SAAgB,gBAAgB,CAAC,SAAiB;IAChD,IAAM,MAAM,GAAoC,IAAA,WAAK,EAAC,SAAS,CAAC;QAC9D,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,oBAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC;YACzC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,CAAA;IAEf,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,gCAAuB,CAAC,qBAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAA;KACjF;IAED,OAAO,IAAA,yBAAY,EAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AACxC,CAAC;AAZD,4CAYC;AAED,SAAgB,gBAAgB,CAAC,SAAoB,EAAE,YAAiC;IACtF,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,EAAE;QACrC,OAAO,SAAS,CAAA;KACjB;IAED,QAAQ,SAAS,CAAC,MAAM,EAAE;QACxB,KAAK,SAAS;YACZ,OAAO,IAAA,yBAAY,EAAC,IAAA,mCAAyB,EAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAA;QAC7F,KAAK,KAAK;YACR,OAAO,IAAA,yBAAY,EAAC,IAAA,+BAAqB,EAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,YAAY,CAAC,CAAA;QACzF;YACE,IAAA,0BAAW,EAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAC7B,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAA;KAC/E;AACH,CAAC;AAdD,4CAcC"}
@@ -0,0 +1,2 @@
1
+ import { Signature } from '@airgap/module-kit';
2
+ export declare function convertSignature(signature: Signature, targetFormat: Signature['format']): Signature;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertSignature = void 0;
4
+ var coinlib_core_1 = require("@airgap/coinlib-core");
5
+ var errors_1 = require("@airgap/coinlib-core/errors");
6
+ var module_kit_1 = require("@airgap/module-kit");
7
+ function convertSignature(signature, targetFormat) {
8
+ if (signature.format === targetFormat) {
9
+ return signature;
10
+ }
11
+ switch (signature.format) {
12
+ case 'encoded': // assume base64
13
+ return (0, module_kit_1.newSignature)(Buffer.from(signature.value, 'base64').toString('hex'), 'hex');
14
+ case 'hex':
15
+ return (0, module_kit_1.newSignature)(Buffer.from(signature.value, 'hex').toString('base64'), 'encoded');
16
+ default:
17
+ (0, coinlib_core_1.assertNever)(signature.format);
18
+ throw new errors_1.UnsupportedError(coinlib_core_1.Domain.STELLAR, 'Unsupported signature format.');
19
+ }
20
+ }
21
+ exports.convertSignature = convertSignature;
22
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../../src/v1/utils/signature.ts"],"names":[],"mappings":";;;AAAA,qDAA0D;AAC1D,sDAA8D;AAC9D,iDAA4D;AAE5D,SAAgB,gBAAgB,CAAC,SAAoB,EAAE,YAAiC;IACtF,IAAI,SAAS,CAAC,MAAM,KAAK,YAAY,EAAE;QACrC,OAAO,SAAS,CAAA;KACjB;IAED,QAAQ,SAAS,CAAC,MAAM,EAAE;QACxB,KAAK,SAAS,EAAE,gBAAgB;YAC9B,OAAO,IAAA,yBAAY,EAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;QACpF,KAAK,KAAK;YACR,OAAO,IAAA,yBAAY,EAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAA;QACxF;YACE,IAAA,0BAAW,EAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAC7B,MAAM,IAAI,yBAAgB,CAAC,qBAAM,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAA;KAC9E;AACH,CAAC;AAdD,4CAcC"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="node" />
2
+ export declare function encodeTx(transaction: string | Buffer): string;
3
+ export declare function decodeTx(transaction: string): Buffer;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeTx = exports.encodeTx = void 0;
4
+ var coinlib_core_1 = require("@airgap/coinlib-core");
5
+ var errors_1 = require("@airgap/coinlib-core/errors");
6
+ var TRANSACTION_PREFIX = 'tx_';
7
+ function encodeTx(transaction) {
8
+ var base64 = typeof transaction === 'string' ? transaction : Buffer.from(transaction).toString('base64');
9
+ return "".concat(TRANSACTION_PREFIX).concat(base64);
10
+ }
11
+ exports.encodeTx = encodeTx;
12
+ function decodeTx(transaction) {
13
+ var encoded = transaction.startsWith(TRANSACTION_PREFIX) ? transaction.slice(TRANSACTION_PREFIX.length) : transaction;
14
+ try {
15
+ return Buffer.from(encoded, 'base64');
16
+ }
17
+ catch (_a) {
18
+ throw new errors_1.InvalidValueError(coinlib_core_1.Domain.STELLAR, 'Invalid Stellar transaction encoding (base64 expected)');
19
+ }
20
+ }
21
+ exports.decodeTx = decodeTx;
22
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/v1/utils/transaction.ts"],"names":[],"mappings":";;;AAAA,qDAA6C;AAC7C,sDAA+D;AAE/D,IAAM,kBAAkB,GAAG,KAAK,CAAA;AAEhC,SAAgB,QAAQ,CAAC,WAA4B;IACnD,IAAM,MAAM,GAAG,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC1G,OAAO,UAAG,kBAAkB,SAAG,MAAM,CAAE,CAAA;AACzC,CAAC;AAHD,4BAGC;AAED,SAAgB,QAAQ,CAAC,WAAmB;IAC1C,IAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;IAEvH,IAAI;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;KACtC;IAAC,WAAM;QACN,MAAM,IAAI,0BAAiB,CAAC,qBAAM,CAAC,OAAO,EAAE,wDAAwD,CAAC,CAAA;KACtG;AACH,CAAC;AARD,4BAQC"}