@bitgo-beta/sdk-coin-algo 1.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 (64) hide show
  1. package/.eslintignore +5 -0
  2. package/.mocharc.yml +8 -0
  3. package/CHANGELOG.md +88 -0
  4. package/LICENSE +191 -0
  5. package/README.md +30 -0
  6. package/dist/src/algo.d.ts +211 -0
  7. package/dist/src/algo.d.ts.map +1 -0
  8. package/dist/src/algo.js +419 -0
  9. package/dist/src/algoToken.d.ts +32 -0
  10. package/dist/src/algoToken.d.ts.map +1 -0
  11. package/dist/src/algoToken.js +82 -0
  12. package/dist/src/builder.d.ts +3 -0
  13. package/dist/src/builder.d.ts.map +1 -0
  14. package/dist/src/builder.js +10 -0
  15. package/dist/src/index.d.ts +5 -0
  16. package/dist/src/index.d.ts.map +1 -0
  17. package/dist/src/index.js +30 -0
  18. package/dist/src/lib/assetTransferBuilder.d.ts +42 -0
  19. package/dist/src/lib/assetTransferBuilder.d.ts.map +1 -0
  20. package/dist/src/lib/assetTransferBuilder.js +105 -0
  21. package/dist/src/lib/errors.d.ts +11 -0
  22. package/dist/src/lib/errors.d.ts.map +1 -0
  23. package/dist/src/lib/errors.js +27 -0
  24. package/dist/src/lib/ifaces.d.ts +46 -0
  25. package/dist/src/lib/ifaces.d.ts.map +1 -0
  26. package/dist/src/lib/ifaces.js +3 -0
  27. package/dist/src/lib/index.d.ts +13 -0
  28. package/dist/src/lib/index.d.ts.map +1 -0
  29. package/dist/src/lib/index.js +47 -0
  30. package/dist/src/lib/keyPair.d.ts +25 -0
  31. package/dist/src/lib/keyPair.d.ts.map +1 -0
  32. package/dist/src/lib/keyPair.js +77 -0
  33. package/dist/src/lib/keyRegistrationBuilder.d.ts +104 -0
  34. package/dist/src/lib/keyRegistrationBuilder.d.ts.map +1 -0
  35. package/dist/src/lib/keyRegistrationBuilder.js +240 -0
  36. package/dist/src/lib/seedEncoding.d.ts +25 -0
  37. package/dist/src/lib/seedEncoding.d.ts.map +1 -0
  38. package/dist/src/lib/seedEncoding.js +97 -0
  39. package/dist/src/lib/transaction.d.ts +75 -0
  40. package/dist/src/lib/transaction.d.ts.map +1 -0
  41. package/dist/src/lib/transaction.js +251 -0
  42. package/dist/src/lib/transactionBuilder.d.ts +204 -0
  43. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  44. package/dist/src/lib/transactionBuilder.js +373 -0
  45. package/dist/src/lib/transactionBuilderFactory.d.ts +16 -0
  46. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  47. package/dist/src/lib/transactionBuilderFactory.js +52 -0
  48. package/dist/src/lib/transferBuilder.d.ts +40 -0
  49. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  50. package/dist/src/lib/transferBuilder.js +89 -0
  51. package/dist/src/lib/txnSchema.d.ts +7 -0
  52. package/dist/src/lib/txnSchema.d.ts.map +1 -0
  53. package/dist/src/lib/txnSchema.js +68 -0
  54. package/dist/src/lib/utils.d.ts +249 -0
  55. package/dist/src/lib/utils.d.ts.map +1 -0
  56. package/dist/src/lib/utils.js +539 -0
  57. package/dist/src/seedValidator.d.ts +31 -0
  58. package/dist/src/seedValidator.d.ts.map +1 -0
  59. package/dist/src/seedValidator.js +89 -0
  60. package/dist/src/talgo.d.ts +12 -0
  61. package/dist/src/talgo.d.ts.map +1 -0
  62. package/dist/src/talgo.js +20 -0
  63. package/package.json +64 -0
  64. package/types/index.d.ts +60 -0
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.SeedValidator = void 0;
23
+ const stellar = __importStar(require("stellar-sdk"));
24
+ const _ = __importStar(require("lodash"));
25
+ const statics_1 = require("@bitgo-beta/statics");
26
+ const lib_1 = require("./lib");
27
+ const cryptography_1 = require("@hashgraph/cryptography");
28
+ /**
29
+ * This classes intention is to guess/verify what seeds come from where.
30
+ */
31
+ class SeedValidator {
32
+ /**
33
+ * Try to guess what kind of seed this could be
34
+ * @param seed
35
+ * @returns {string} - returns undefined if the coin type is undetectable. returns
36
+ * the coin family otherwise.
37
+ */
38
+ static getCoinFamilyFromSeed(seed) {
39
+ let coin = undefined;
40
+ // if this can be implemented in more than one competing seed format, that could be an issue
41
+ if (!SeedValidator.hasCompetingSeedFormats(seed)) {
42
+ // ordering generally matters here - hbar is the least permissive for seed checking, algo and
43
+ // stellar have checksums. coin is guaranteed to be mutually exclusive by the
44
+ // competing seed format check
45
+ if (lib_1.algoUtils.isValidSeed(seed))
46
+ coin = statics_1.CoinFamily.ALGO;
47
+ if (stellar.StrKey.isValidEd25519SecretSeed(seed))
48
+ coin = statics_1.CoinFamily.XLM;
49
+ if (SeedValidator.isValidHbarSeedFormat(seed))
50
+ coin = statics_1.CoinFamily.HBAR;
51
+ }
52
+ return coin;
53
+ }
54
+ /**
55
+ * Checks whether this is a valid seed for this coin family type.
56
+ * @param seed - seed
57
+ * @param coinFamily - the coinFamily of the coin we're working with
58
+ */
59
+ static isValidEd25519SeedForCoin(seed, coinFamily) {
60
+ const guessedCoin = SeedValidator.getCoinFamilyFromSeed(seed);
61
+ return coinFamily === guessedCoin;
62
+ }
63
+ /**
64
+ * We need to ensure there is no overlap for any two seeds we put into this function. This functions
65
+ * intention is for gating whether this seed could possibly match two formats or is invalid itself.
66
+ * @param seed
67
+ */
68
+ static hasCompetingSeedFormats(seed) {
69
+ const isAlgoSeed = lib_1.algoUtils.isValidSeed(seed);
70
+ const isStellarSeed = stellar.StrKey.isValidEd25519SecretSeed(seed);
71
+ const isHbarSeed = SeedValidator.isValidHbarSeedFormat(seed);
72
+ return _.sum([isAlgoSeed, isStellarSeed, isHbarSeed]) !== 1;
73
+ }
74
+ /**
75
+ * Checks if this is a valid Hbar prv. These can be encoded differently.
76
+ * @param seed
77
+ */
78
+ static isValidHbarSeedFormat(seed) {
79
+ try {
80
+ cryptography_1.PrivateKey.fromString(seed);
81
+ }
82
+ catch {
83
+ return false;
84
+ }
85
+ return true;
86
+ }
87
+ }
88
+ exports.SeedValidator = SeedValidator;
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VlZFZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZWVkVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBdUM7QUFDdkMsMENBQTRCO0FBQzVCLGlEQUFpRDtBQUNqRCwrQkFBa0M7QUFDbEMsMERBQXFEO0FBQ3JEOztHQUVHO0FBQ0gsTUFBYSxhQUFhO0lBQ3hCOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQVk7UUFDdkMsSUFBSSxJQUFJLEdBQTJCLFNBQVMsQ0FBQztRQUU3Qyw0RkFBNEY7UUFDNUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoRCw2RkFBNkY7WUFDN0YsNkVBQTZFO1lBQzdFLDhCQUE4QjtZQUU5QixJQUFJLGVBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUFFLElBQUksR0FBRyxvQkFBVSxDQUFDLElBQUksQ0FBQztZQUN4RCxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDO2dCQUFFLElBQUksR0FBRyxvQkFBVSxDQUFDLEdBQUcsQ0FBQztZQUN6RSxJQUFJLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7Z0JBQUUsSUFBSSxHQUFHLG9CQUFVLENBQUMsSUFBSSxDQUFDO1NBQ3ZFO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxJQUFZLEVBQUUsVUFBc0I7UUFDbkUsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlELE9BQU8sVUFBVSxLQUFLLFdBQVcsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFZO1FBQ3pDLE1BQU0sVUFBVSxHQUFHLGVBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRSxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0QsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQVk7UUFDdkMsSUFBSTtZQUNGLHlCQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdCO1FBQUMsTUFBTTtZQUNOLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQTNERCxzQ0EyREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzdGVsbGFyIGZyb20gJ3N0ZWxsYXItc2RrJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvaW5GYW1pbHkgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IGFsZ29VdGlscyB9IGZyb20gJy4vbGliJztcbmltcG9ydCB7IFByaXZhdGVLZXkgfSBmcm9tICdAaGFzaGdyYXBoL2NyeXB0b2dyYXBoeSc7XG4vKipcbiAqIFRoaXMgY2xhc3NlcyBpbnRlbnRpb24gaXMgdG8gZ3Vlc3MvdmVyaWZ5IHdoYXQgc2VlZHMgY29tZSBmcm9tIHdoZXJlLlxuICovXG5leHBvcnQgY2xhc3MgU2VlZFZhbGlkYXRvciB7XG4gIC8qKlxuICAgKiBUcnkgdG8gZ3Vlc3Mgd2hhdCBraW5kIG9mIHNlZWQgdGhpcyBjb3VsZCBiZVxuICAgKiBAcGFyYW0gc2VlZFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIHJldHVybnMgdW5kZWZpbmVkIGlmIHRoZSBjb2luIHR5cGUgaXMgdW5kZXRlY3RhYmxlLiByZXR1cm5zXG4gICAqIHRoZSBjb2luIGZhbWlseSBvdGhlcndpc2UuXG4gICAqL1xuICBzdGF0aWMgZ2V0Q29pbkZhbWlseUZyb21TZWVkKHNlZWQ6IHN0cmluZyk6IENvaW5GYW1pbHkgfCB1bmRlZmluZWQge1xuICAgIGxldCBjb2luOiBDb2luRmFtaWx5IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgLy8gaWYgdGhpcyBjYW4gYmUgaW1wbGVtZW50ZWQgaW4gbW9yZSB0aGFuIG9uZSBjb21wZXRpbmcgc2VlZCBmb3JtYXQsIHRoYXQgY291bGQgYmUgYW4gaXNzdWVcbiAgICBpZiAoIVNlZWRWYWxpZGF0b3IuaGFzQ29tcGV0aW5nU2VlZEZvcm1hdHMoc2VlZCkpIHtcbiAgICAgIC8vIG9yZGVyaW5nIGdlbmVyYWxseSBtYXR0ZXJzIGhlcmUgLSBoYmFyIGlzIHRoZSBsZWFzdCBwZXJtaXNzaXZlIGZvciBzZWVkIGNoZWNraW5nLCBhbGdvIGFuZFxuICAgICAgLy8gc3RlbGxhciBoYXZlIGNoZWNrc3Vtcy4gY29pbiBpcyBndWFyYW50ZWVkIHRvIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBieSB0aGVcbiAgICAgIC8vIGNvbXBldGluZyBzZWVkIGZvcm1hdCBjaGVja1xuXG4gICAgICBpZiAoYWxnb1V0aWxzLmlzVmFsaWRTZWVkKHNlZWQpKSBjb2luID0gQ29pbkZhbWlseS5BTEdPO1xuICAgICAgaWYgKHN0ZWxsYXIuU3RyS2V5LmlzVmFsaWRFZDI1NTE5U2VjcmV0U2VlZChzZWVkKSkgY29pbiA9IENvaW5GYW1pbHkuWExNO1xuICAgICAgaWYgKFNlZWRWYWxpZGF0b3IuaXNWYWxpZEhiYXJTZWVkRm9ybWF0KHNlZWQpKSBjb2luID0gQ29pbkZhbWlseS5IQkFSO1xuICAgIH1cblxuICAgIHJldHVybiBjb2luO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyB3aGV0aGVyIHRoaXMgaXMgYSB2YWxpZCBzZWVkIGZvciB0aGlzIGNvaW4gZmFtaWx5IHR5cGUuXG4gICAqIEBwYXJhbSBzZWVkIC0gc2VlZFxuICAgKiBAcGFyYW0gY29pbkZhbWlseSAtIHRoZSBjb2luRmFtaWx5IG9mIHRoZSBjb2luIHdlJ3JlIHdvcmtpbmcgd2l0aFxuICAgKi9cbiAgc3RhdGljIGlzVmFsaWRFZDI1NTE5U2VlZEZvckNvaW4oc2VlZDogc3RyaW5nLCBjb2luRmFtaWx5OiBDb2luRmFtaWx5KTogYm9vbGVhbiB7XG4gICAgY29uc3QgZ3Vlc3NlZENvaW4gPSBTZWVkVmFsaWRhdG9yLmdldENvaW5GYW1pbHlGcm9tU2VlZChzZWVkKTtcbiAgICByZXR1cm4gY29pbkZhbWlseSA9PT0gZ3Vlc3NlZENvaW47XG4gIH1cblxuICAvKipcbiAgICogV2UgbmVlZCB0byBlbnN1cmUgdGhlcmUgaXMgbm8gb3ZlcmxhcCBmb3IgYW55IHR3byBzZWVkcyB3ZSBwdXQgaW50byB0aGlzIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uc1xuICAgKiBpbnRlbnRpb24gaXMgZm9yIGdhdGluZyB3aGV0aGVyIHRoaXMgc2VlZCBjb3VsZCBwb3NzaWJseSBtYXRjaCB0d28gZm9ybWF0cyBvciBpcyBpbnZhbGlkIGl0c2VsZi5cbiAgICogQHBhcmFtIHNlZWRcbiAgICovXG4gIHN0YXRpYyBoYXNDb21wZXRpbmdTZWVkRm9ybWF0cyhzZWVkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0FsZ29TZWVkID0gYWxnb1V0aWxzLmlzVmFsaWRTZWVkKHNlZWQpO1xuICAgIGNvbnN0IGlzU3RlbGxhclNlZWQgPSBzdGVsbGFyLlN0cktleS5pc1ZhbGlkRWQyNTUxOVNlY3JldFNlZWQoc2VlZCk7XG4gICAgY29uc3QgaXNIYmFyU2VlZCA9IFNlZWRWYWxpZGF0b3IuaXNWYWxpZEhiYXJTZWVkRm9ybWF0KHNlZWQpO1xuXG4gICAgcmV0dXJuIF8uc3VtKFtpc0FsZ29TZWVkLCBpc1N0ZWxsYXJTZWVkLCBpc0hiYXJTZWVkXSkgIT09IDE7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgaXMgYSB2YWxpZCBIYmFyIHBydi4gVGhlc2UgY2FuIGJlIGVuY29kZWQgZGlmZmVyZW50bHkuXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZEhiYXJTZWVkRm9ybWF0KHNlZWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBQcml2YXRlS2V5LmZyb21TdHJpbmcoc2VlZCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { BaseCoin, BitGoBase } from '@bitgo-beta/sdk-core';
5
+ import { Algo } from './algo';
6
+ export declare class Talgo extends Algo {
7
+ constructor(bitgo: BitGoBase);
8
+ static createInstance(bitgo: BitGoBase): BaseCoin;
9
+ getChain(): string;
10
+ getFullName(): string;
11
+ }
12
+ //# sourceMappingURL=talgo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"talgo.d.ts","sourceRoot":"","sources":["../../src/talgo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,KAAM,SAAQ,IAAI;gBACjB,KAAK,EAAE,SAAS;IAI5B,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ;IAIjD,QAAQ,IAAI,MAAM;IAIlB,WAAW,IAAI,MAAM;CAGtB"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Talgo = void 0;
4
+ const algo_1 = require("./algo");
5
+ class Talgo extends algo_1.Algo {
6
+ constructor(bitgo) {
7
+ super(bitgo);
8
+ }
9
+ static createInstance(bitgo) {
10
+ return new Talgo(bitgo);
11
+ }
12
+ getChain() {
13
+ return 'talgo';
14
+ }
15
+ getFullName() {
16
+ return 'Testnet Algorand';
17
+ }
18
+ }
19
+ exports.Talgo = Talgo;
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFsZ28uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFsZ28udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsaUNBQThCO0FBRTlCLE1BQWEsS0FBTSxTQUFRLFdBQUk7SUFDN0IsWUFBWSxLQUFnQjtRQUMxQixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQjtRQUNwQyxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLGtCQUFrQixDQUFDO0lBQzVCLENBQUM7Q0FDRjtBQWhCRCxzQkFnQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBCYXNlQ29pbiwgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQWxnbyB9IGZyb20gJy4vYWxnbyc7XG5cbmV4cG9ydCBjbGFzcyBUYWxnbyBleHRlbmRzIEFsZ28ge1xuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlKSB7XG4gICAgc3VwZXIoYml0Z28pO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UpOiBCYXNlQ29pbiB7XG4gICAgcmV0dXJuIG5ldyBUYWxnbyhiaXRnbyk7XG4gIH1cblxuICBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAndGFsZ28nO1xuICB9XG5cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1Rlc3RuZXQgQWxnb3JhbmQnO1xuICB9XG59XG4iXX0=
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@bitgo-beta/sdk-coin-algo",
3
+ "version": "1.1.0",
4
+ "description": "BitGo SDK coin library for Algorand",
5
+ "main": "./dist/src/index.js",
6
+ "types": "./dist/src/index.d.ts",
7
+ "scripts": {
8
+ "build": "yarn tsc --build --incremental --verbose .",
9
+ "fmt": "prettier --write .",
10
+ "check-fmt": "prettier --check .",
11
+ "clean": "rm -r ./dist",
12
+ "lint": "eslint --quiet .",
13
+ "prepare": "npm run build",
14
+ "test": "npm run coverage",
15
+ "coverage": "nyc -- npm run unit-test",
16
+ "unit-test": "mocha"
17
+ },
18
+ "author": "BitGo SDK Team <sdkteam@bitgo.com>",
19
+ "license": "MIT",
20
+ "engines": {
21
+ "node": ">=14 <17"
22
+ },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/BitGo/BitGoJS.git",
26
+ "directory": "modules/sdk-coin-algo"
27
+ },
28
+ "lint-staged": {
29
+ "*.{js,ts}": [
30
+ "yarn prettier --write",
31
+ "yarn eslint --fix"
32
+ ]
33
+ },
34
+ "publishConfig": {
35
+ "access": "public"
36
+ },
37
+ "nyc": {
38
+ "extension": [
39
+ ".ts"
40
+ ]
41
+ },
42
+ "dependencies": {
43
+ "@bitgo-beta/sdk-core": "^1.1.0",
44
+ "@bitgo-beta/statics": "^7.0.0",
45
+ "@bitgo-beta/utxo-lib": "^2.4.1",
46
+ "@hashgraph/cryptography": "1.1.2",
47
+ "@stablelib/hex": "^1.0.0",
48
+ "algosdk": "^1.14.0",
49
+ "bignumber.js": "^9.0.0",
50
+ "hi-base32": "^0.5.1",
51
+ "joi": "^17.4.0",
52
+ "js-sha512": "0.8.0",
53
+ "lodash": "^4.17.14",
54
+ "stellar-sdk": "^10.0.1",
55
+ "tweetnacl": "^1.0.3"
56
+ },
57
+ "devDependencies": {
58
+ "@bitgo-beta/sdk-api": "^1.1.0",
59
+ "@bitgo-beta/sdk-test": "^1.0.1",
60
+ "should": "^13.1.3",
61
+ "sinon": "^7.5.0"
62
+ },
63
+ "gitHead": "3856d480cfc4866bdf8b3dae79804be4dbdb517a"
64
+ }
@@ -0,0 +1,60 @@
1
+ // TODO: Remove augmentation after algosdk fork is completely replaced by
2
+ // account lib.
3
+ declare module 'algosdk' {
4
+ interface Encoding {
5
+ decode(_: unknown): any;
6
+ }
7
+
8
+ interface Seed {
9
+ encode(secretKey: unknown): string;
10
+ decode(seed: unknown): {
11
+ checksum: Uint8Array;
12
+ seed: Uint8Array;
13
+ };
14
+ }
15
+
16
+ interface Address {
17
+ decode(address: unknown): {
18
+ publicKey: Uint8Array;
19
+ checksum: Uint8Array;
20
+ };
21
+ encode(address: unknown): string;
22
+ }
23
+
24
+ class MultiSigTransaction {
25
+ static from_obj_for_encoding(txnForEnc: unknown): any;
26
+ }
27
+
28
+ interface Multisig {
29
+ MultiSigTransaction: typeof MultiSigTransaction;
30
+ }
31
+
32
+ interface Nacl {
33
+ sign(msg: unknown, secretKey: unknown): Uint8Array;
34
+ verify(msg: unknown, sig: unknown, publicKey: unknown): boolean;
35
+ }
36
+
37
+ export function generateAccountFromSeed(seed: Uint8Array | string): {
38
+ sk: string;
39
+ addr: string;
40
+ };
41
+
42
+ export function isValidSeed(seed: string): boolean;
43
+
44
+ export function isValidAddress(address: string): boolean;
45
+
46
+ export interface Account {
47
+ addr: string;
48
+ sk: Uint8Array;
49
+ }
50
+
51
+ export function generateAccount(): Account;
52
+
53
+ export function mergeMultisigTransactions(multisigTxnBlobs: Uint8Array[]): Uint8Array;
54
+
55
+ export const Encoding: Encoding;
56
+ export const Seed: Seed;
57
+ export const Address: Address;
58
+ export const Multisig: Multisig;
59
+ export const NaclWrapper: Nacl;
60
+ }