@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.
- package/.eslintignore +5 -0
- package/.mocharc.yml +8 -0
- package/CHANGELOG.md +88 -0
- package/LICENSE +191 -0
- package/README.md +30 -0
- package/dist/src/algo.d.ts +211 -0
- package/dist/src/algo.d.ts.map +1 -0
- package/dist/src/algo.js +419 -0
- package/dist/src/algoToken.d.ts +32 -0
- package/dist/src/algoToken.d.ts.map +1 -0
- package/dist/src/algoToken.js +82 -0
- package/dist/src/builder.d.ts +3 -0
- package/dist/src/builder.d.ts.map +1 -0
- package/dist/src/builder.js +10 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +30 -0
- package/dist/src/lib/assetTransferBuilder.d.ts +42 -0
- package/dist/src/lib/assetTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/assetTransferBuilder.js +105 -0
- package/dist/src/lib/errors.d.ts +11 -0
- package/dist/src/lib/errors.d.ts.map +1 -0
- package/dist/src/lib/errors.js +27 -0
- package/dist/src/lib/ifaces.d.ts +46 -0
- package/dist/src/lib/ifaces.d.ts.map +1 -0
- package/dist/src/lib/ifaces.js +3 -0
- package/dist/src/lib/index.d.ts +13 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +47 -0
- package/dist/src/lib/keyPair.d.ts +25 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -0
- package/dist/src/lib/keyPair.js +77 -0
- package/dist/src/lib/keyRegistrationBuilder.d.ts +104 -0
- package/dist/src/lib/keyRegistrationBuilder.d.ts.map +1 -0
- package/dist/src/lib/keyRegistrationBuilder.js +240 -0
- package/dist/src/lib/seedEncoding.d.ts +25 -0
- package/dist/src/lib/seedEncoding.d.ts.map +1 -0
- package/dist/src/lib/seedEncoding.js +97 -0
- package/dist/src/lib/transaction.d.ts +75 -0
- package/dist/src/lib/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction.js +251 -0
- package/dist/src/lib/transactionBuilder.d.ts +204 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +373 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +16 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilderFactory.js +52 -0
- package/dist/src/lib/transferBuilder.d.ts +40 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilder.js +89 -0
- package/dist/src/lib/txnSchema.d.ts +7 -0
- package/dist/src/lib/txnSchema.d.ts.map +1 -0
- package/dist/src/lib/txnSchema.js +68 -0
- package/dist/src/lib/utils.d.ts +249 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/lib/utils.js +539 -0
- package/dist/src/seedValidator.d.ts +31 -0
- package/dist/src/seedValidator.d.ts.map +1 -0
- package/dist/src/seedValidator.js +89 -0
- package/dist/src/talgo.d.ts +12 -0
- package/dist/src/talgo.d.ts.map +1 -0
- package/dist/src/talgo.js +20 -0
- package/package.json +64 -0
- 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
|
+
}
|
package/types/index.d.ts
ADDED
|
@@ -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
|
+
}
|