@bitgo-beta/sdk-coin-algo 0.0.0-semantic-release-managed

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 (67) hide show
  1. package/.eslintignore +5 -0
  2. package/.mocharc.yml +8 -0
  3. package/CHANGELOG.md +854 -0
  4. package/LICENSE +191 -0
  5. package/README.md +30 -0
  6. package/dist/src/algo.d.ts +291 -0
  7. package/dist/src/algo.d.ts.map +1 -0
  8. package/dist/src/algo.js +637 -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 +6 -0
  16. package/dist/src/index.d.ts.map +1 -0
  17. package/dist/src/index.js +45 -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 +45 -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 +61 -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 +91 -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 +111 -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 +250 -0
  42. package/dist/src/lib/transactionBuilder.d.ts +210 -0
  43. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  44. package/dist/src/lib/transactionBuilder.js +389 -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 +254 -0
  55. package/dist/src/lib/utils.d.ts.map +1 -0
  56. package/dist/src/lib/utils.js +563 -0
  57. package/dist/src/register.d.ts +3 -0
  58. package/dist/src/register.d.ts.map +1 -0
  59. package/dist/src/register.js +15 -0
  60. package/dist/src/seedValidator.d.ts +31 -0
  61. package/dist/src/seedValidator.d.ts.map +1 -0
  62. package/dist/src/seedValidator.js +103 -0
  63. package/dist/src/talgo.d.ts +12 -0
  64. package/dist/src/talgo.d.ts.map +1 -0
  65. package/dist/src/talgo.js +20 -0
  66. package/package.json +63 -0
  67. package/types/index.d.ts +60 -0
@@ -0,0 +1,89 @@
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.TransferBuilder = void 0;
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ const algosdk_1 = __importDefault(require("algosdk"));
9
+ const transactionBuilder_1 = require("./transactionBuilder");
10
+ const txnSchema_1 = require("./txnSchema");
11
+ const utils_1 = __importDefault(require("./utils"));
12
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
13
+ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
14
+ constructor(coinConfig) {
15
+ super(coinConfig);
16
+ }
17
+ buildAlgoTxn() {
18
+ return algosdk_1.default.makePaymentTxnWithSuggestedParams(this._sender, this._to, this._amount, this._closeRemainderTo, this._note, this.suggestedParams, this._reKeyTo);
19
+ }
20
+ get transactionType() {
21
+ return sdk_core_1.TransactionType.Send;
22
+ }
23
+ fromImplementation(rawTransaction) {
24
+ const tx = super.fromImplementation(rawTransaction);
25
+ const algoTx = tx.getAlgoTransaction();
26
+ if (algoTx) {
27
+ this.amount(algoTx.amount || 0);
28
+ this.to({ address: algosdk_1.default.encodeAddress(algoTx.to.publicKey) });
29
+ if (algoTx.closeRemainderTo) {
30
+ this.closeRemainderTo({ address: algosdk_1.default.encodeAddress(algoTx.closeRemainderTo.publicKey) });
31
+ }
32
+ }
33
+ return tx;
34
+ }
35
+ validateRawTransaction(rawTransaction) {
36
+ const { txn: algoTxn } = utils_1.default.decodeAlgoTxn(rawTransaction);
37
+ if (algoTxn.type !== algosdk_1.default.TransactionType.pay) {
38
+ throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${algoTxn.type}. Expected ${algosdk_1.default.TransactionType.pay}`);
39
+ }
40
+ }
41
+ validateTransaction(transaction) {
42
+ super.validateTransaction(transaction);
43
+ const validationResult = txnSchema_1.TransferTransactionSchema.validate({
44
+ to: this._to,
45
+ amount: this._amount,
46
+ closeRemainderTo: this._closeRemainderTo,
47
+ });
48
+ if (validationResult.error) {
49
+ throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
50
+ }
51
+ }
52
+ /**
53
+ * Sets the payment receiver.
54
+ *
55
+ * @param {BaseAddress} to The receiver account
56
+ * @returns {TransferBuilder} This transfer builder.
57
+ *
58
+ */
59
+ to(to) {
60
+ this.validateAddress(to);
61
+ this._to = to.address;
62
+ return this;
63
+ }
64
+ /**
65
+ * Sets the amount of payment.
66
+ *
67
+ * @param {number} amount The amount of payment.
68
+ * @returns {TransferBuilder} This transfer builder.
69
+ */
70
+ amount(amount) {
71
+ this.validateValue(new bignumber_js_1.default(amount.toString()));
72
+ this._amount = amount;
73
+ return this;
74
+ }
75
+ /**
76
+ * Sets address to transfer remainder amount on closing.
77
+ *
78
+ * @param {BaseAddress} closeRemainderTo The address for receiving remainder amount
79
+ * @returns {TransferBuilder} This transfer builder.
80
+ *
81
+ */
82
+ closeRemainderTo(closeRemainderTo) {
83
+ this.validateAddress(closeRemainderTo);
84
+ this._closeRemainderTo = closeRemainderTo.address;
85
+ return this;
86
+ }
87
+ }
88
+ exports.TransferBuilder = TransferBuilder;
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQXFDO0FBRXJDLHNEQUE4QjtBQUU5Qiw2REFBMEQ7QUFFMUQsMkNBQXdEO0FBQ3hELG9EQUE0QjtBQUM1QixtREFBNkY7QUFFN0YsTUFBYSxlQUFnQixTQUFRLHVDQUFrQjtJQUtyRCxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRVMsWUFBWTtRQUNwQixPQUFPLGlCQUFPLENBQUMsaUNBQWlDLENBQzlDLElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLEdBQUcsRUFDUixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsUUFBUSxDQUNkLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVTLGtCQUFrQixDQUFDLGNBQW1DO1FBQzlELE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN2QyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakUsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0YsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxjQUFtQztRQUN4RCxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLGVBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFN0QsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLGlCQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2pELE1BQU0sSUFBSSxrQ0FBdUIsQ0FDL0IsNkJBQTZCLE9BQU8sQ0FBQyxJQUFJLGNBQWMsaUJBQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQ3JGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLFdBQXdCO1FBQzFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxNQUFNLGdCQUFnQixHQUFHLHFDQUF5QixDQUFDLFFBQVEsQ0FBQztZQUMxRCxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDWixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDcEIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtTQUN6QyxDQUFDLENBQUM7UUFFSCxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxrQ0FBa0MsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEcsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxFQUFFLENBQUMsRUFBZTtRQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUV0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxNQUF1QjtRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksc0JBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBRXRCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGdCQUFnQixDQUFDLGdCQUE2QjtRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztRQUVsRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQXRHRCwwQ0FzR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgYWxnb3NkayBmcm9tICdhbGdvc2RrJztcblxuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zZmVyVHJhbnNhY3Rpb25TY2hlbWEgfSBmcm9tICcuL3R4blNjaGVtYSc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBCYXNlQWRkcmVzcywgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdG86IHN0cmluZztcbiAgcHJvdGVjdGVkIF9hbW91bnQ6IG51bWJlciB8IGJpZ2ludDtcbiAgcHJvdGVjdGVkIF9jbG9zZVJlbWFpbmRlclRvPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRBbGdvVHhuKCk6IGFsZ29zZGsuVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiBhbGdvc2RrLm1ha2VQYXltZW50VHhuV2l0aFN1Z2dlc3RlZFBhcmFtcyhcbiAgICAgIHRoaXMuX3NlbmRlcixcbiAgICAgIHRoaXMuX3RvLFxuICAgICAgdGhpcy5fYW1vdW50LFxuICAgICAgdGhpcy5fY2xvc2VSZW1haW5kZXJUbyxcbiAgICAgIHRoaXMuX25vdGUsXG4gICAgICB0aGlzLnN1Z2dlc3RlZFBhcmFtcyxcbiAgICAgIHRoaXMuX3JlS2V5VG9cbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uOiBVaW50OEFycmF5IHwgc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gc3VwZXIuZnJvbUltcGxlbWVudGF0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBjb25zdCBhbGdvVHggPSB0eC5nZXRBbGdvVHJhbnNhY3Rpb24oKTtcbiAgICBpZiAoYWxnb1R4KSB7XG4gICAgICB0aGlzLmFtb3VudChhbGdvVHguYW1vdW50IHx8IDApO1xuICAgICAgdGhpcy50byh7IGFkZHJlc3M6IGFsZ29zZGsuZW5jb2RlQWRkcmVzcyhhbGdvVHgudG8ucHVibGljS2V5KSB9KTtcbiAgICAgIGlmIChhbGdvVHguY2xvc2VSZW1haW5kZXJUbykge1xuICAgICAgICB0aGlzLmNsb3NlUmVtYWluZGVyVG8oeyBhZGRyZXNzOiBhbGdvc2RrLmVuY29kZUFkZHJlc3MoYWxnb1R4LmNsb3NlUmVtYWluZGVyVG8ucHVibGljS2V5KSB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHg7XG4gIH1cblxuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBVaW50OEFycmF5IHwgc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgeyB0eG46IGFsZ29UeG4gfSA9IFV0aWxzLmRlY29kZUFsZ29UeG4ocmF3VHJhbnNhY3Rpb24pO1xuXG4gICAgaWYgKGFsZ29UeG4udHlwZSAhPT0gYWxnb3Nkay5UcmFuc2FjdGlvblR5cGUucGF5KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIFRyYW5zYWN0aW9uIFR5cGU6ICR7YWxnb1R4bi50eXBlfS4gRXhwZWN0ZWQgJHthbGdvc2RrLlRyYW5zYWN0aW9uVHlwZS5wYXl9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBUcmFuc2ZlclRyYW5zYWN0aW9uU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgIHRvOiB0aGlzLl90byxcbiAgICAgIGFtb3VudDogdGhpcy5fYW1vdW50LFxuICAgICAgY2xvc2VSZW1haW5kZXJUbzogdGhpcy5fY2xvc2VSZW1haW5kZXJUbyxcbiAgICB9KTtcblxuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0LmVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoYFRyYW5zYWN0aW9uIHZhbGlkYXRpb24gZmFpbGVkOiAke3ZhbGlkYXRpb25SZXN1bHQuZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGF5bWVudCByZWNlaXZlci5cbiAgICpcbiAgICogQHBhcmFtIHtCYXNlQWRkcmVzc30gdG8gVGhlIHJlY2VpdmVyIGFjY291bnRcbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKlxuICAgKi9cbiAgdG8odG86IEJhc2VBZGRyZXNzKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3ModG8pO1xuICAgIHRoaXMuX3RvID0gdG8uYWRkcmVzcztcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFtb3VudCBvZiBwYXltZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gYW1vdW50IFRoZSBhbW91bnQgb2YgcGF5bWVudC5cbiAgICogQHJldHVybnMge1RyYW5zZmVyQnVpbGRlcn0gVGhpcyB0cmFuc2ZlciBidWlsZGVyLlxuICAgKi9cbiAgYW1vdW50KGFtb3VudDogbnVtYmVyIHwgYmlnaW50KTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIoYW1vdW50LnRvU3RyaW5nKCkpKTtcbiAgICB0aGlzLl9hbW91bnQgPSBhbW91bnQ7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGFkZHJlc3MgdG8gdHJhbnNmZXIgcmVtYWluZGVyIGFtb3VudCBvbiBjbG9zaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0Jhc2VBZGRyZXNzfSBjbG9zZVJlbWFpbmRlclRvIFRoZSBhZGRyZXNzIGZvciByZWNlaXZpbmcgcmVtYWluZGVyIGFtb3VudFxuICAgKiBAcmV0dXJucyB7VHJhbnNmZXJCdWlsZGVyfSBUaGlzIHRyYW5zZmVyIGJ1aWxkZXIuXG4gICAqXG4gICAqL1xuICBjbG9zZVJlbWFpbmRlclRvKGNsb3NlUmVtYWluZGVyVG86IEJhc2VBZGRyZXNzKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoY2xvc2VSZW1haW5kZXJUbyk7XG4gICAgdGhpcy5fY2xvc2VSZW1haW5kZXJUbyA9IGNsb3NlUmVtYWluZGVyVG8uYWRkcmVzcztcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ import joi from 'joi';
2
+ export declare const BaseTransactionSchema: joi.ObjectSchema<any>;
3
+ export declare const TransferTransactionSchema: joi.ObjectSchema<any>;
4
+ export declare const KeyRegTxnSchema: joi.ObjectSchema<any>;
5
+ export declare const AssetTransferTxnSchema: joi.ObjectSchema<any>;
6
+ export declare const AssetToggleTxnSchema: joi.ObjectSchema<any>;
7
+ //# sourceMappingURL=txnSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"txnSchema.d.ts","sourceRoot":"","sources":["../../../src/lib/txnSchema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AAMtB,eAAO,MAAM,qBAAqB,uBAwB9B,CAAC;AAEL,eAAO,MAAM,yBAAyB,uBAOpC,CAAC;AAEH,eAAO,MAAM,eAAe,uBAiBxB,CAAC;AAEL,eAAO,MAAM,sBAAsB,uBAIjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,uBAG/B,CAAC"}
@@ -0,0 +1,68 @@
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.AssetToggleTxnSchema = exports.AssetTransferTxnSchema = exports.KeyRegTxnSchema = exports.TransferTransactionSchema = exports.BaseTransactionSchema = void 0;
7
+ const joi_1 = __importDefault(require("joi"));
8
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
9
+ const utils_1 = __importDefault(require("./utils"));
10
+ const addressSchema = joi_1.default.string().custom((addr) => utils_1.default.isValidAddress(addr));
11
+ exports.BaseTransactionSchema = joi_1.default
12
+ .object({
13
+ fee: joi_1.default.number().required(),
14
+ firstRound: joi_1.default.number().positive().required(),
15
+ genesisHash: joi_1.default.string().base64().required(),
16
+ lastRound: joi_1.default.number().positive().required(),
17
+ sender: addressSchema.required(),
18
+ genesisId: joi_1.default.string().optional(),
19
+ lease: joi_1.default.optional(),
20
+ note: joi_1.default.optional(),
21
+ reKeyTo: joi_1.default
22
+ .string()
23
+ .custom((addr) => utils_1.default.isValidAddress(addr))
24
+ .optional(),
25
+ })
26
+ .custom((obj) => {
27
+ const firstRound = obj.firstRound;
28
+ const lastRound = obj.lastRound;
29
+ if (firstRound < lastRound) {
30
+ return obj;
31
+ }
32
+ throw new Error('lastRound cannot be greater than or equal to firstRound');
33
+ });
34
+ exports.TransferTransactionSchema = joi_1.default.object({
35
+ amount: joi_1.default.custom((val) => typeof val === 'number' || typeof val === 'bigint').required(),
36
+ to: joi_1.default
37
+ .string()
38
+ .custom((addr) => utils_1.default.isValidAddress(addr))
39
+ .required(),
40
+ closeRemainderTo: joi_1.default.string().optional(),
41
+ });
42
+ exports.KeyRegTxnSchema = joi_1.default
43
+ .object({
44
+ voteKey: addressSchema.required(),
45
+ selectionKey: addressSchema.required(),
46
+ voteFirst: joi_1.default.number().positive().required(),
47
+ voteLast: joi_1.default.number().positive().required(),
48
+ voteKeyDilution: joi_1.default.number().positive().required(),
49
+ stateProofKey: addressSchema.optional(),
50
+ })
51
+ .custom((obj) => {
52
+ const voteFirst = obj.voteFirst;
53
+ const voteLast = obj.voteLast;
54
+ if (voteFirst > voteLast) {
55
+ throw new sdk_core_1.InvalidTransactionError('VoteKey last round must be greater than first round');
56
+ }
57
+ return obj;
58
+ });
59
+ exports.AssetTransferTxnSchema = joi_1.default.object({
60
+ tokenId: joi_1.default.number().required(),
61
+ assetAmount: joi_1.default.custom((val) => typeof val === 'number' || typeof val === 'bigint').required(),
62
+ receiver: addressSchema.required(),
63
+ });
64
+ exports.AssetToggleTxnSchema = joi_1.default.object({
65
+ tokenId: joi_1.default.number().required(),
66
+ receiver: addressSchema.required(),
67
+ });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhuU2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90eG5TY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXNCO0FBQ3RCLG1EQUErRDtBQUMvRCxvREFBNEI7QUFFNUIsTUFBTSxhQUFhLEdBQUcsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBRW5FLFFBQUEscUJBQXFCLEdBQUcsYUFBRztLQUNyQyxNQUFNLENBQUM7SUFDTixHQUFHLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixVQUFVLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QyxXQUFXLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QyxTQUFTLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QyxNQUFNLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRTtJQUNoQyxTQUFTLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxLQUFLLEVBQUUsYUFBRyxDQUFDLFFBQVEsRUFBRTtJQUNyQixJQUFJLEVBQUUsYUFBRyxDQUFDLFFBQVEsRUFBRTtJQUNwQixPQUFPLEVBQUUsYUFBRztTQUNULE1BQU0sRUFBRTtTQUNSLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QyxRQUFRLEVBQUU7Q0FDZCxDQUFDO0tBQ0QsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7SUFDZCxNQUFNLFVBQVUsR0FBVyxHQUFHLENBQUMsVUFBVSxDQUFDO0lBQzFDLE1BQU0sU0FBUyxHQUFXLEdBQUcsQ0FBQyxTQUFTLENBQUM7SUFFeEMsSUFBSSxVQUFVLEdBQUcsU0FBUyxFQUFFLENBQUM7UUFDM0IsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO0FBQzdFLENBQUMsQ0FBQyxDQUFDO0FBRVEsUUFBQSx5QkFBeUIsR0FBRyxhQUFHLENBQUMsTUFBTSxDQUFDO0lBQ2xELE1BQU0sRUFBRSxhQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzFGLEVBQUUsRUFBRSxhQUFHO1NBQ0osTUFBTSxFQUFFO1NBQ1IsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzVDLFFBQVEsRUFBRTtJQUNiLGdCQUFnQixFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDMUMsQ0FBQyxDQUFDO0FBRVUsUUFBQSxlQUFlLEdBQUcsYUFBRztLQUMvQixNQUFNLENBQUM7SUFDTixPQUFPLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRTtJQUNqQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRTtJQUN0QyxTQUFTLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QyxRQUFRLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QyxlQUFlLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuRCxhQUFhLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRTtDQUN4QyxDQUFDO0tBQ0QsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7SUFDZCxNQUFNLFNBQVMsR0FBVyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQ3hDLE1BQU0sUUFBUSxHQUFXLEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFFdEMsSUFBSSxTQUFTLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHFEQUFxRCxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDLENBQUM7QUFFUSxRQUFBLHNCQUFzQixHQUFHLGFBQUcsQ0FBQyxNQUFNLENBQUM7SUFDL0MsT0FBTyxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsV0FBVyxFQUFFLGFBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDL0YsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUU7Q0FDbkMsQ0FBQyxDQUFDO0FBRVUsUUFBQSxvQkFBb0IsR0FBRyxhQUFHLENBQUMsTUFBTSxDQUFDO0lBQzdDLE9BQU8sRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFO0NBQ25DLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqb2kgZnJvbSAnam9pJztcbmltcG9ydCB7IEludmFsaWRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBhZGRyZXNzU2NoZW1hID0gam9pLnN0cmluZygpLmN1c3RvbSgoYWRkcikgPT4gdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcikpO1xuXG5leHBvcnQgY29uc3QgQmFzZVRyYW5zYWN0aW9uU2NoZW1hID0gam9pXG4gIC5vYmplY3Qoe1xuICAgIGZlZTogam9pLm51bWJlcigpLnJlcXVpcmVkKCksXG4gICAgZmlyc3RSb3VuZDogam9pLm51bWJlcigpLnBvc2l0aXZlKCkucmVxdWlyZWQoKSxcbiAgICBnZW5lc2lzSGFzaDogam9pLnN0cmluZygpLmJhc2U2NCgpLnJlcXVpcmVkKCksXG4gICAgbGFzdFJvdW5kOiBqb2kubnVtYmVyKCkucG9zaXRpdmUoKS5yZXF1aXJlZCgpLFxuICAgIHNlbmRlcjogYWRkcmVzc1NjaGVtYS5yZXF1aXJlZCgpLFxuICAgIGdlbmVzaXNJZDogam9pLnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgbGVhc2U6IGpvaS5vcHRpb25hbCgpLFxuICAgIG5vdGU6IGpvaS5vcHRpb25hbCgpLFxuICAgIHJlS2V5VG86IGpvaVxuICAgICAgLnN0cmluZygpXG4gICAgICAuY3VzdG9tKChhZGRyKSA9PiB1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyKSlcbiAgICAgIC5vcHRpb25hbCgpLFxuICB9KVxuICAuY3VzdG9tKChvYmopID0+IHtcbiAgICBjb25zdCBmaXJzdFJvdW5kOiBudW1iZXIgPSBvYmouZmlyc3RSb3VuZDtcbiAgICBjb25zdCBsYXN0Um91bmQ6IG51bWJlciA9IG9iai5sYXN0Um91bmQ7XG5cbiAgICBpZiAoZmlyc3RSb3VuZCA8IGxhc3RSb3VuZCkge1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2xhc3RSb3VuZCBjYW5ub3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIGZpcnN0Um91bmQnKTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBUcmFuc2ZlclRyYW5zYWN0aW9uU2NoZW1hID0gam9pLm9iamVjdCh7XG4gIGFtb3VudDogam9pLmN1c3RvbSgodmFsKSA9PiB0eXBlb2YgdmFsID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdmFsID09PSAnYmlnaW50JykucmVxdWlyZWQoKSxcbiAgdG86IGpvaVxuICAgIC5zdHJpbmcoKVxuICAgIC5jdXN0b20oKGFkZHIpID0+IHV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHIpKVxuICAgIC5yZXF1aXJlZCgpLFxuICBjbG9zZVJlbWFpbmRlclRvOiBqb2kuc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgS2V5UmVnVHhuU2NoZW1hID0gam9pXG4gIC5vYmplY3Qoe1xuICAgIHZvdGVLZXk6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgICBzZWxlY3Rpb25LZXk6IGFkZHJlc3NTY2hlbWEucmVxdWlyZWQoKSxcbiAgICB2b3RlRmlyc3Q6IGpvaS5udW1iZXIoKS5wb3NpdGl2ZSgpLnJlcXVpcmVkKCksXG4gICAgdm90ZUxhc3Q6IGpvaS5udW1iZXIoKS5wb3NpdGl2ZSgpLnJlcXVpcmVkKCksXG4gICAgdm90ZUtleURpbHV0aW9uOiBqb2kubnVtYmVyKCkucG9zaXRpdmUoKS5yZXF1aXJlZCgpLFxuICAgIHN0YXRlUHJvb2ZLZXk6IGFkZHJlc3NTY2hlbWEub3B0aW9uYWwoKSxcbiAgfSlcbiAgLmN1c3RvbSgob2JqKSA9PiB7XG4gICAgY29uc3Qgdm90ZUZpcnN0OiBudW1iZXIgPSBvYmoudm90ZUZpcnN0O1xuICAgIGNvbnN0IHZvdGVMYXN0OiBudW1iZXIgPSBvYmoudm90ZUxhc3Q7XG5cbiAgICBpZiAodm90ZUZpcnN0ID4gdm90ZUxhc3QpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVm90ZUtleSBsYXN0IHJvdW5kIG11c3QgYmUgZ3JlYXRlciB0aGFuIGZpcnN0IHJvdW5kJyk7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgQXNzZXRUcmFuc2ZlclR4blNjaGVtYSA9IGpvaS5vYmplY3Qoe1xuICB0b2tlbklkOiBqb2kubnVtYmVyKCkucmVxdWlyZWQoKSxcbiAgYXNzZXRBbW91bnQ6IGpvaS5jdXN0b20oKHZhbCkgPT4gdHlwZW9mIHZhbCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbCA9PT0gJ2JpZ2ludCcpLnJlcXVpcmVkKCksXG4gIHJlY2VpdmVyOiBhZGRyZXNzU2NoZW1hLnJlcXVpcmVkKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IEFzc2V0VG9nZ2xlVHhuU2NoZW1hID0gam9pLm9iamVjdCh7XG4gIHRva2VuSWQ6IGpvaS5udW1iZXIoKS5yZXF1aXJlZCgpLFxuICByZWNlaXZlcjogYWRkcmVzc1NjaGVtYS5yZXF1aXJlZCgpLFxufSk7XG4iXX0=
@@ -0,0 +1,254 @@
1
+ import algosdk from 'algosdk';
2
+ import { Address, EncodedTx, Seed } from './ifaces';
3
+ import { KeyPair } from './keyPair';
4
+ import { BaseUtils } from '@bitgo-beta/sdk-core';
5
+ export declare class Utils implements BaseUtils {
6
+ /** @inheritdoc */
7
+ isValidAddress(address: string): boolean;
8
+ /** @inheritdoc */
9
+ isValidTransactionId(txId: string): boolean;
10
+ /** @inheritdoc */
11
+ isValidPublicKey(key: string): boolean;
12
+ /** @inheritdoc */
13
+ isValidPrivateKey(key: string): boolean;
14
+ /**
15
+ * Returns an hex string of the given buffer
16
+ *
17
+ * @param {Uint8Array} buffer - the buffer to be converted to hex
18
+ * @returns {string} - the hex value
19
+ */
20
+ toHex(buffer: Uint8Array): string;
21
+ /** @inheritdoc */
22
+ isValidSignature(signature: string): boolean;
23
+ /** @inheritdoc */
24
+ isValidBlockId(hash: string): boolean;
25
+ /**
26
+ * Compare two Keys
27
+ *
28
+ * @param {Uint8Array} key1 - key to be compare
29
+ * @param {Uint8Array} key2 - key to be compare
30
+ * @returns {boolean} - returns true if both keys are equal
31
+ */
32
+ areKeysEqual(key1: Uint8Array, key2: Uint8Array): boolean;
33
+ /**
34
+ * Returns a Uint8Array of the given hex string
35
+ *
36
+ * @param {string} str - the hex string to be converted
37
+ * @returns {string} - the Uint8Array value
38
+ */
39
+ toUint8Array(str: string): Uint8Array;
40
+ /**
41
+ * Determines whether a seed is valid.
42
+ *
43
+ * @param {string} seed - the seed to be validated
44
+ * @returns {boolean} - true if the seed is valid
45
+ */
46
+ isValidSeed(seed: string): boolean;
47
+ /**
48
+ * Encode an algo seed
49
+ *
50
+ * @param {Buffer} secretKey - the valid secretKey .
51
+ * @returns {string} - the seed to be validated.
52
+ */
53
+ encodeSeed(secretKey: Buffer): string;
54
+ /**
55
+ * decodeSeed decodes an algo seed
56
+ *
57
+ * Decoding algo seed is same as decoding address.
58
+ * Latest version of algo sdk (1.9, at this writing) does not expose explicit method for decoding seed.
59
+ * Parameter is decoded and split into seed and checksum.
60
+ *
61
+ * @param {string} seed - hex or base64 encoded seed to be validated
62
+ * @returns {Seed} - validated object Seed
63
+ */
64
+ decodeSeed(seed: string): Seed;
65
+ /**
66
+ * Verifies if signature for message is valid.
67
+ *
68
+ * @param pub {Uint8Array} public key
69
+ * @param message {Uint8Array} signed message
70
+ * @param signature {Buffer} signature to verify
71
+ * @returns {Boolean} true if signature is valid.
72
+ */
73
+ verifySignature(message: Uint8Array, signature: Buffer, pub: Uint8Array): boolean;
74
+ /**
75
+ * Transforms an Ed25519 public key into an algorand address.
76
+ *
77
+ * @param {Uint8Array} pk The Ed25519 public key.
78
+ * @see https://developer.algorand.org/docs/features/accounts/#transformation-public-key-to-algorand-address
79
+ *
80
+ * @returns {string} The algorand address.
81
+ */
82
+ publicKeyToAlgoAddress(pk: Uint8Array): string;
83
+ /**
84
+ Transforms a decrypted Ed25519 private key into an algorand address.
85
+ @param {string} privateKey The Ed25519 private key.
86
+ @returns {string} The algorand address.
87
+ **/
88
+ privateKeyToAlgoAddress(privateKey: string): string;
89
+ /**
90
+ * Checks if a unsigned algo transaction can be decoded.
91
+ *
92
+ * @param {Uint8Array} txn The encoded unsigned transaction.
93
+ * @returns {boolean} true if the transaction can be decoded, otherwise false
94
+ */
95
+ protected isDecodableUnsignedAlgoTxn(txn: Uint8Array): boolean;
96
+ /**
97
+ * Checks if a signed algo transaction can be decoded.
98
+ *
99
+ * @param {Uint8Array} txn The encoded signed transaction.
100
+ * @returns {boolean} true if the transaction can be decoded, otherwise false
101
+ */
102
+ protected isDecodableSignedTransaction(txn: Uint8Array): boolean;
103
+ /**
104
+ * Decodes a signed or unsigned algo transaction.
105
+ *
106
+ * @param {Uint8Array | string} txnBytes The encoded unsigned or signed txn.
107
+ * @returns {EncodedTx} The decoded transaction.
108
+ */
109
+ decodeAlgoTxn(txnBytes: Uint8Array | string): EncodedTx;
110
+ /**
111
+ * Try to decode a signed Algo transaction
112
+ * @param buffer the encoded transaction
113
+ * @returns { EncodedTx } the decoded signed transaction
114
+ * @throws error if it is not a valid encoded signed transaction
115
+ */
116
+ tryToDecodeSignedTransaction(buffer: Buffer): EncodedTx;
117
+ /**
118
+ * Try to decode an unsigned Algo transaction
119
+ * @param buffer the encoded transaction
120
+ * @returns {EncodedTx} the decoded unsigned transaction
121
+ * @throws error if it is not a valid encoded unsigned transaction
122
+ */
123
+ tryToDecodeUnsignedTransaction(buffer: Buffer): EncodedTx;
124
+ encodeObj(obj: Record<string | number | symbol, any>): Uint8Array;
125
+ /**
126
+ * decodeObj takes a Uint8Array and returns its javascript obj
127
+ * @param o - Uint8Array to decode
128
+ * @returns object
129
+ */
130
+ decodeObj(o: ArrayLike<number>): unknown;
131
+ /**
132
+ * secretKeyToMnemonic takes an Algorant secret key and returns the corresponding mnemonic
133
+ *
134
+ * @param sk - Algorant secret key
135
+ * @return Secret key is associated mnemonic
136
+ */
137
+ secretKeyToMnemonic(sk: Buffer): string;
138
+ /**
139
+ * seedFromMnemonic converts a mnemonic generated using this library into the source key used to create it
140
+ * It returns an error if the passed mnemonic has an incorrect checksum, if the number of words is unexpected, or if one
141
+ * of the passed words is not found in the words list
142
+ *
143
+ * @param mnemonic - 25 words mnemonic
144
+ * @returns 32 bytes long seed
145
+ */
146
+ seedFromMnemonic(mnemonic: string): Uint8Array;
147
+ /**
148
+ * keyPairFromSeed generates an object with secretKey and publicKey using the algosdk
149
+ * @param seed 32 bytes long seed
150
+ * @returns KeyPair
151
+ */
152
+ keyPairFromSeed(seed: Uint8Array): KeyPair;
153
+ /**
154
+ * Generate a new `KeyPair` object from the given private key.
155
+ *
156
+ * @param base64PrivateKey 64 bytes long privateKey
157
+ * @returns KeyPair
158
+ */
159
+ protected createKeyPair(base64PrivateKey: Uint8Array): KeyPair;
160
+ /**
161
+ * decodePrivateKey generates a seed with a mnemonic and using algosdk.
162
+ *
163
+ * @param seed 32 bytes long seed
164
+ * @returns mnemonic - 25 words mnemonic - 25 words mnemonic
165
+ */
166
+ protected mnemonicFromSeed(seed: Uint8Array): string;
167
+ /**
168
+ * Validates the key with the stellar-sdk
169
+ *
170
+ * @param publicKey
171
+ * @returns boolean
172
+ */
173
+ protected isValidEd25519PublicKeyStellar(publicKey: string): boolean;
174
+ /**
175
+ * Decodes the key with the stellar-sdk
176
+ *
177
+ * @param publicKey
178
+ * @returns Buffer
179
+ */
180
+ protected decodeEd25519PublicKeyStellar(publicKey: string): Buffer;
181
+ /**
182
+ * Convert a stellar seed to algorand encoding
183
+ *
184
+ * @param seed
185
+ * @returns string the encoded seed
186
+ */
187
+ convertFromStellarSeed(seed: string): string;
188
+ /**
189
+ * Returns an address encoded with algosdk
190
+ *
191
+ * @param addr
192
+ * @returns string
193
+ */
194
+ encodeAddress(addr: Uint8Array): string;
195
+ /**
196
+ * Return an address decoded with algosdk
197
+ *
198
+ * @param addr
199
+ * @returns Address
200
+ */
201
+ decodeAddress(addr: string): Address;
202
+ /**
203
+ * Converts an address into an ALGO one
204
+ * If the given data is a Stellar address or public key, it is converted to ALGO address.
205
+ *
206
+ * @param addressOrPubKey an ALGO address, or an Stellar address or public key
207
+ * @returns address algo address string
208
+ */
209
+ stellarAddressToAlgoAddress(addressOrPubKey: string): string;
210
+ /**
211
+ * multisigAddress takes multisig metadata (preimage) and returns the corresponding human readable Algorand address.
212
+ *
213
+ * @param {number} version mutlisig version
214
+ * @param {number} threshold multisig threshold
215
+ * @param {string[]} addrs list of Algorand addresses
216
+ * @returns {string} human readable Algorand address.
217
+ */
218
+ multisigAddress(version: number, threshold: number, addrs: string[]): string;
219
+ /**
220
+ * generateAccount generates un account with a secretKey and an address
221
+ *
222
+ * Function has not params
223
+ * @returns Account
224
+ */
225
+ generateAccount(): algosdk.Account;
226
+ generateAccountFromSeed(seed: Uint8Array): algosdk.Account;
227
+ /**
228
+ * Generates Tx ID from an encoded multisig transaction
229
+ *
230
+ * This is done because of a change made on version 1.10.1 on algosdk so method txID() only supports SignedTransaction type.
231
+ * (https://github.com/algorand/js-algorand-sdk/blob/develop/CHANGELOG.md#1101)
232
+ *
233
+ * @param {string} txBase64 - encoded base64 multisig transaction
234
+ * @returns {string} - transaction ID
235
+ */
236
+ getMultisigTxID(txBase64: string): string;
237
+ /**
238
+ * Determines if a given transaction data is to enable or disable a token
239
+ * @param amount the amount in transaction
240
+ * @param from the originated address
241
+ * @param to the target address
242
+ * @param closeRemainderTo (optional) address to send remaining units in originated address
243
+ * @returns 'enableToken' or 'disableToken'
244
+ */
245
+ getTokenTxType(amount: string, from: string, to: string, closeRemainderTo?: string): string;
246
+ /**
247
+ * Validate if the key is a valid base64 string
248
+ * @param key the key to validate
249
+ */
250
+ validateBase64(key: string): void;
251
+ }
252
+ declare const utils: Utils;
253
+ export default utils;
254
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}