@bitgo/account-lib 2.20.0-rc.22 → 2.20.0-rc.23
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/CHANGELOG.md +8 -0
- package/dist/src/coin/algo/assetTransferBuilder.d.ts +42 -0
- package/dist/src/coin/algo/assetTransferBuilder.d.ts.map +1 -0
- package/dist/src/coin/algo/assetTransferBuilder.js +105 -0
- package/dist/src/coin/algo/errors.d.ts +11 -0
- package/dist/src/coin/algo/errors.d.ts.map +1 -0
- package/dist/src/coin/algo/errors.js +27 -0
- package/dist/src/coin/algo/ifaces.d.ts +46 -0
- package/dist/src/coin/algo/ifaces.d.ts.map +1 -0
- package/dist/src/coin/algo/ifaces.js +3 -0
- package/dist/src/coin/algo/index.d.ts +13 -0
- package/dist/src/coin/algo/index.d.ts.map +1 -0
- package/dist/src/coin/algo/index.js +47 -0
- package/dist/src/coin/algo/keyPair.d.ts +25 -0
- package/dist/src/coin/algo/keyPair.d.ts.map +1 -0
- package/dist/src/coin/algo/keyPair.js +77 -0
- package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +104 -0
- package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +1 -0
- package/dist/src/coin/algo/keyRegistrationBuilder.js +239 -0
- package/dist/src/coin/algo/seedEncoding.d.ts +25 -0
- package/dist/src/coin/algo/seedEncoding.d.ts.map +1 -0
- package/dist/src/coin/algo/seedEncoding.js +97 -0
- package/dist/src/coin/algo/transaction.d.ts +75 -0
- package/dist/src/coin/algo/transaction.d.ts.map +1 -0
- package/dist/src/coin/algo/transaction.js +251 -0
- package/dist/src/coin/algo/transactionBuilder.d.ts +204 -0
- package/dist/src/coin/algo/transactionBuilder.d.ts.map +1 -0
- package/dist/src/coin/algo/transactionBuilder.js +373 -0
- package/dist/src/coin/algo/transactionBuilderFactory.d.ts +16 -0
- package/dist/src/coin/algo/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/coin/algo/transactionBuilderFactory.js +52 -0
- package/dist/src/coin/algo/transferBuilder.d.ts +40 -0
- package/dist/src/coin/algo/transferBuilder.d.ts.map +1 -0
- package/dist/src/coin/algo/transferBuilder.js +89 -0
- package/dist/src/coin/algo/txnSchema.d.ts +7 -0
- package/dist/src/coin/algo/txnSchema.d.ts.map +1 -0
- package/dist/src/coin/algo/txnSchema.js +68 -0
- package/dist/src/coin/algo/utils.d.ts +249 -0
- package/dist/src/coin/algo/utils.d.ts.map +1 -0
- package/dist/src/coin/algo/utils.js +539 -0
- package/dist/src/coin/cspr/constants.d.ts +19 -0
- package/dist/src/coin/cspr/constants.d.ts.map +1 -0
- package/dist/src/coin/cspr/constants.js +28 -0
- package/dist/src/coin/cspr/delegateBuilder.d.ts +49 -0
- package/dist/src/coin/cspr/delegateBuilder.d.ts.map +1 -0
- package/dist/src/coin/cspr/delegateBuilder.js +111 -0
- package/dist/src/coin/cspr/ifaces.d.ts +69 -0
- package/dist/src/coin/cspr/ifaces.d.ts.map +1 -0
- package/dist/src/coin/cspr/ifaces.js +3 -0
- package/dist/src/coin/cspr/index.d.ts +6 -0
- package/dist/src/coin/cspr/index.d.ts.map +1 -0
- package/dist/src/coin/cspr/index.js +31 -0
- package/dist/src/coin/cspr/keyPair.d.ts +18 -0
- package/dist/src/coin/cspr/keyPair.d.ts.map +1 -0
- package/dist/src/coin/cspr/keyPair.js +75 -0
- package/dist/src/coin/cspr/transaction.d.ts +55 -0
- package/dist/src/coin/cspr/transaction.d.ts.map +1 -0
- package/dist/src/coin/cspr/transaction.js +227 -0
- package/dist/src/coin/cspr/transactionBuilder.d.ts +124 -0
- package/dist/src/coin/cspr/transactionBuilder.d.ts.map +1 -0
- package/dist/src/coin/cspr/transactionBuilder.js +312 -0
- package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +46 -0
- package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/coin/cspr/transactionBuilderFactory.js +98 -0
- package/dist/src/coin/cspr/transferBuilder.d.ts +39 -0
- package/dist/src/coin/cspr/transferBuilder.d.ts.map +1 -0
- package/dist/src/coin/cspr/transferBuilder.js +106 -0
- package/dist/src/coin/cspr/undelegateBuilder.d.ts +49 -0
- package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +1 -0
- package/dist/src/coin/cspr/undelegateBuilder.js +111 -0
- package/dist/src/coin/cspr/utils.d.ts +188 -0
- package/dist/src/coin/cspr/utils.d.ts.map +1 -0
- package/dist/src/coin/cspr/utils.js +477 -0
- package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +27 -0
- package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +1 -0
- package/dist/src/coin/cspr/walletInitializationBuilder.js +95 -0
- package/dist/src/coin/hbar/iface.d.ts +26 -0
- package/dist/src/coin/hbar/iface.d.ts.map +1 -0
- package/dist/src/coin/hbar/iface.js +3 -0
- package/dist/src/coin/hbar/transaction.d.ts +14 -21
- package/dist/src/coin/hbar/transaction.d.ts.map +1 -1
- package/dist/src/coin/hbar/transaction.js +24 -34
- package/dist/src/coin/hbar/transactionBuilder.d.ts +22 -22
- package/dist/src/coin/hbar/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/transactionBuilder.js +49 -29
- package/dist/src/coin/hbar/transferBuilder.d.ts +9 -9
- package/dist/src/coin/hbar/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/transferBuilder.js +16 -13
- package/dist/src/coin/hbar/utils.d.ts +47 -43
- package/dist/src/coin/hbar/utils.d.ts.map +1 -1
- package/dist/src/coin/hbar/utils.js +51 -49
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts +5 -5
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/walletInitializationBuilder.js +30 -10
- package/dist/tsconfig.tsbuildinfo +3344 -1391
- package/package.json +7 -9
- package/resources/hbar/protobuf/BasicTypes.proto +0 -424
- package/resources/hbar/protobuf/CryptoCreate.proto +0 -47
- package/resources/hbar/protobuf/CryptoTransfer.proto +0 -33
- package/resources/hbar/protobuf/Duration.proto +0 -28
- package/resources/hbar/protobuf/Timestamp.proto +0 -34
- package/resources/hbar/protobuf/Transaction.proto +0 -35
- package/resources/hbar/protobuf/TransactionBody.proto +0 -24
- package/resources/hbar/protobuf/TransactionContents.proto +0 -33
- package/resources/hbar/protobuf/hedera.d.ts +0 -4612
- package/resources/hbar/protobuf/hedera.js +0 -12192
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.20.0-rc.23](https://github.com/BitGo/BitGoJS/compare/@bitgo/account-lib@2.20.0-rc.22...@bitgo/account-lib@2.20.0-rc.23) (2022-06-27)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @bitgo/account-lib
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
# [2.20.0-rc.22](https://github.com/BitGo/BitGoJS/compare/@bitgo/account-lib@2.20.0-rc.21...@bitgo/account-lib@2.20.0-rc.22) (2022-06-23)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @bitgo/account-lib
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
|
+
import algosdk from 'algosdk';
|
|
3
|
+
import { BaseAddress, TransactionType } from '@bitgo/sdk-core';
|
|
4
|
+
import { TransferBuilder } from './transferBuilder';
|
|
5
|
+
import { Transaction } from './transaction';
|
|
6
|
+
export declare class AssetTransferBuilder extends TransferBuilder {
|
|
7
|
+
private _tokenId;
|
|
8
|
+
constructor(coinConfig: Readonly<CoinConfig>);
|
|
9
|
+
/**
|
|
10
|
+
* Sets the token id.
|
|
11
|
+
*
|
|
12
|
+
* The token id uniquely identifies the asset.
|
|
13
|
+
*
|
|
14
|
+
* @param {number} id The token id.
|
|
15
|
+
* @returns {AssetTransferBuilder} This transaction builder.
|
|
16
|
+
*
|
|
17
|
+
* @see https://developer.algorand.org/docs/reference/transactions/#asset-transfer-transaction
|
|
18
|
+
*/
|
|
19
|
+
tokenId(id: number): this;
|
|
20
|
+
/**
|
|
21
|
+
* Sets the parameters of the transaction builder to allowlist an asset.
|
|
22
|
+
*
|
|
23
|
+
* To allow list an asset, you send 0 units of the asset to yourself.
|
|
24
|
+
*
|
|
25
|
+
* This method sets the tokenId, sender, receiver, asset amount, and
|
|
26
|
+
* fee parameters to their respective values to allowlist and asset.
|
|
27
|
+
*
|
|
28
|
+
* @param {number} tokenId The unique identifier of the asset.
|
|
29
|
+
* @param {BaseAddress} userAddress The address of the user.
|
|
30
|
+
* @returns {AssetTransferBuilder} This transaction builder.
|
|
31
|
+
*/
|
|
32
|
+
allowListAsset(tokenId: number, userAddress: BaseAddress): this;
|
|
33
|
+
protected buildAlgoTxn(): algosdk.Transaction;
|
|
34
|
+
protected get transactionType(): TransactionType;
|
|
35
|
+
/** @inheritdoc */
|
|
36
|
+
protected fromImplementation(rawTransaction: Uint8Array | string): Transaction;
|
|
37
|
+
validateRawTransaction(rawTransaction: Uint8Array | string): void;
|
|
38
|
+
/** @inheritdoc */
|
|
39
|
+
validateTransaction(txn: Transaction): void;
|
|
40
|
+
protected validateFields(tokenId: number, assetAmount: number | bigint, receiver: string): void;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=assetTransferBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assetTransferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/assetTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,WAAW,EAA2B,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,qBAAa,oBAAqB,SAAQ,eAAe;IACvD,OAAO,CAAC,QAAQ,CAAS;gBAEb,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASzB;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IAW/D,SAAS,CAAC,YAAY,IAAI,OAAO,CAAC,WAAW;IAc7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,WAAW;IAc9E,sBAAsB,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAWjE,kBAAkB;IAClB,mBAAmB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAK3C,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CAmBhG"}
|
|
@@ -0,0 +1,105 @@
|
|
|
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.AssetTransferBuilder = void 0;
|
|
7
|
+
const algosdk_1 = __importDefault(require("algosdk"));
|
|
8
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
9
|
+
const transferBuilder_1 = require("./transferBuilder");
|
|
10
|
+
const txnSchema_1 = require("./txnSchema");
|
|
11
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
12
|
+
class AssetTransferBuilder extends transferBuilder_1.TransferBuilder {
|
|
13
|
+
constructor(coinConfig) {
|
|
14
|
+
super(coinConfig);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Sets the token id.
|
|
18
|
+
*
|
|
19
|
+
* The token id uniquely identifies the asset.
|
|
20
|
+
*
|
|
21
|
+
* @param {number} id The token id.
|
|
22
|
+
* @returns {AssetTransferBuilder} This transaction builder.
|
|
23
|
+
*
|
|
24
|
+
* @see https://developer.algorand.org/docs/reference/transactions/#asset-transfer-transaction
|
|
25
|
+
*/
|
|
26
|
+
tokenId(id) {
|
|
27
|
+
if (id <= 0) {
|
|
28
|
+
throw new Error('Asset index must be a uint64 value');
|
|
29
|
+
}
|
|
30
|
+
this._tokenId = id;
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Sets the parameters of the transaction builder to allowlist an asset.
|
|
35
|
+
*
|
|
36
|
+
* To allow list an asset, you send 0 units of the asset to yourself.
|
|
37
|
+
*
|
|
38
|
+
* This method sets the tokenId, sender, receiver, asset amount, and
|
|
39
|
+
* fee parameters to their respective values to allowlist and asset.
|
|
40
|
+
*
|
|
41
|
+
* @param {number} tokenId The unique identifier of the asset.
|
|
42
|
+
* @param {BaseAddress} userAddress The address of the user.
|
|
43
|
+
* @returns {AssetTransferBuilder} This transaction builder.
|
|
44
|
+
*/
|
|
45
|
+
allowListAsset(tokenId, userAddress) {
|
|
46
|
+
this.tokenId(tokenId);
|
|
47
|
+
this.sender(userAddress);
|
|
48
|
+
this.to(userAddress);
|
|
49
|
+
this.isFlatFee(true);
|
|
50
|
+
this.fee({ fee: '1000' });
|
|
51
|
+
this.amount(0);
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
buildAlgoTxn() {
|
|
55
|
+
return algosdk_1.default.makeAssetTransferTxnWithSuggestedParams(this._sender, this._to, this._closeRemainderTo, undefined, this._amount, this._note, this._tokenId, this.suggestedParams, this._reKeyTo);
|
|
56
|
+
}
|
|
57
|
+
get transactionType() {
|
|
58
|
+
return sdk_core_1.TransactionType.Send;
|
|
59
|
+
}
|
|
60
|
+
/** @inheritdoc */
|
|
61
|
+
fromImplementation(rawTransaction) {
|
|
62
|
+
const tx = super.fromImplementation(rawTransaction);
|
|
63
|
+
const algoTx = tx.getAlgoTransaction();
|
|
64
|
+
if (!algoTx) {
|
|
65
|
+
throw new sdk_core_1.InvalidTransactionError('Transaction is empty');
|
|
66
|
+
}
|
|
67
|
+
this._tokenId = algoTx.assetIndex;
|
|
68
|
+
this._amount = algoTx.amount || 0;
|
|
69
|
+
this._to = algosdk_1.default.encodeAddress(algoTx.to.publicKey);
|
|
70
|
+
return tx;
|
|
71
|
+
}
|
|
72
|
+
validateRawTransaction(rawTransaction) {
|
|
73
|
+
const { txn: algoTxn } = utils_1.default.decodeAlgoTxn(rawTransaction);
|
|
74
|
+
if (algoTxn.type !== algosdk_1.default.TransactionType.axfer) {
|
|
75
|
+
throw new sdk_core_1.InvalidTransactionError(`Invalid Transaction Type: ${algoTxn.type}. Expected ${algosdk_1.default.TransactionType.axfer}`);
|
|
76
|
+
}
|
|
77
|
+
this.validateFields(algoTxn.assetIndex, algoTxn.amount, algosdk_1.default.encodeAddress(algoTxn.to.publicKey));
|
|
78
|
+
}
|
|
79
|
+
/** @inheritdoc */
|
|
80
|
+
validateTransaction(txn) {
|
|
81
|
+
super.validateTransaction(txn);
|
|
82
|
+
this.validateFields(this._tokenId, this._amount, this._to);
|
|
83
|
+
}
|
|
84
|
+
validateFields(tokenId, assetAmount, receiver) {
|
|
85
|
+
let validationResult;
|
|
86
|
+
if (this._sender !== this._to) {
|
|
87
|
+
validationResult = txnSchema_1.AssetTransferTxnSchema.validate({
|
|
88
|
+
tokenId,
|
|
89
|
+
assetAmount,
|
|
90
|
+
receiver,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
validationResult = txnSchema_1.AssetToggleTxnSchema.validate({
|
|
95
|
+
tokenId,
|
|
96
|
+
receiver,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
if (validationResult.error) {
|
|
100
|
+
throw new sdk_core_1.InvalidTransactionError(`Transaction validation failed: ${validationResult.error.message}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.AssetTransferBuilder = AssetTransferBuilder;
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRUcmFuc2ZlckJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9hbGdvL2Fzc2V0VHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLHNEQUE4QjtBQUM5Qiw4Q0FBd0Y7QUFDeEYsdURBQW9EO0FBRXBELDJDQUEyRTtBQUMzRSxvREFBNEI7QUFFNUIsTUFBYSxvQkFBcUIsU0FBUSxpQ0FBZTtJQUd2RCxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsT0FBTyxDQUFDLEVBQVU7UUFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1NBQ3ZEO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFFbkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxjQUFjLENBQUMsT0FBZSxFQUFFLFdBQXdCO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFZixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFUyxZQUFZO1FBQ3BCLE9BQU8saUJBQU8sQ0FBQyx1Q0FBdUMsQ0FDcEQsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsU0FBUyxFQUNULElBQUksQ0FBQyxPQUFPLEVBQ1osSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxRQUFRLENBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsY0FBbUM7UUFDOUQsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLElBQUksa0NBQXVCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUMzRDtRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsaUJBQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV0RCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxjQUFtQztRQUN4RCxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLGVBQUssQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0QsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLGlCQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRTtZQUNsRCxNQUFNLElBQUksa0NBQXVCLENBQy9CLDZCQUE2QixPQUFPLENBQUMsSUFBSSxjQUFjLGlCQUFPLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUN2RixDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxpQkFBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixtQkFBbUIsQ0FBQyxHQUFnQjtRQUNsQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFUyxjQUFjLENBQUMsT0FBZSxFQUFFLFdBQTRCLEVBQUUsUUFBZ0I7UUFDdEYsSUFBSSxnQkFBZ0IsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM3QixnQkFBZ0IsR0FBRyxrQ0FBc0IsQ0FBQyxRQUFRLENBQUM7Z0JBQ2pELE9BQU87Z0JBQ1AsV0FBVztnQkFDWCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLGdCQUFnQixHQUFHLGdDQUFvQixDQUFDLFFBQVEsQ0FBQztnQkFDL0MsT0FBTztnQkFDUCxRQUFRO2FBQ1QsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRTtZQUMxQixNQUFNLElBQUksa0NBQXVCLENBQUMsa0NBQWtDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZHO0lBQ0gsQ0FBQztDQUNGO0FBdEhELG9EQXNIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgYWxnb3NkayBmcm9tICdhbGdvc2RrJztcbmltcG9ydCB7IEJhc2VBZGRyZXNzLCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBBc3NldFRyYW5zZmVyVHhuU2NoZW1hLCBBc3NldFRvZ2dsZVR4blNjaGVtYSB9IGZyb20gJy4vdHhuU2NoZW1hJztcbmltcG9ydCBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIEFzc2V0VHJhbnNmZXJCdWlsZGVyIGV4dGVuZHMgVHJhbnNmZXJCdWlsZGVyIHtcbiAgcHJpdmF0ZSBfdG9rZW5JZDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdG9rZW4gaWQuXG4gICAqXG4gICAqIFRoZSB0b2tlbiBpZCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBhc3NldC5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIFRoZSB0b2tlbiBpZC5cbiAgICogQHJldHVybnMge0Fzc2V0VHJhbnNmZXJCdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYWxnb3JhbmQub3JnL2RvY3MvcmVmZXJlbmNlL3RyYW5zYWN0aW9ucy8jYXNzZXQtdHJhbnNmZXItdHJhbnNhY3Rpb25cbiAgICovXG4gIHRva2VuSWQoaWQ6IG51bWJlcik6IHRoaXMge1xuICAgIGlmIChpZCA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Fzc2V0IGluZGV4IG11c3QgYmUgYSB1aW50NjQgdmFsdWUnKTtcbiAgICB9XG4gICAgdGhpcy5fdG9rZW5JZCA9IGlkO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcGFyYW1ldGVycyBvZiB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciB0byBhbGxvd2xpc3QgYW4gYXNzZXQuXG4gICAqXG4gICAqIFRvIGFsbG93IGxpc3QgYW4gYXNzZXQsIHlvdSBzZW5kIDAgdW5pdHMgb2YgdGhlIGFzc2V0IHRvIHlvdXJzZWxmLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBzZXRzIHRoZSB0b2tlbklkLCBzZW5kZXIsIHJlY2VpdmVyLCBhc3NldCBhbW91bnQsIGFuZFxuICAgKiBmZWUgcGFyYW1ldGVycyB0byB0aGVpciByZXNwZWN0aXZlIHZhbHVlcyB0byBhbGxvd2xpc3QgYW5kIGFzc2V0LlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gdG9rZW5JZCBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGFzc2V0LlxuICAgKiBAcGFyYW0ge0Jhc2VBZGRyZXNzfSB1c2VyQWRkcmVzcyBUaGUgYWRkcmVzcyBvZiB0aGUgdXNlci5cbiAgICogQHJldHVybnMge0Fzc2V0VHJhbnNmZXJCdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXIuXG4gICAqL1xuICBhbGxvd0xpc3RBc3NldCh0b2tlbklkOiBudW1iZXIsIHVzZXJBZGRyZXNzOiBCYXNlQWRkcmVzcyk6IHRoaXMge1xuICAgIHRoaXMudG9rZW5JZCh0b2tlbklkKTtcbiAgICB0aGlzLnNlbmRlcih1c2VyQWRkcmVzcyk7XG4gICAgdGhpcy50byh1c2VyQWRkcmVzcyk7XG4gICAgdGhpcy5pc0ZsYXRGZWUodHJ1ZSk7XG4gICAgdGhpcy5mZWUoeyBmZWU6ICcxMDAwJyB9KTtcbiAgICB0aGlzLmFtb3VudCgwKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkQWxnb1R4bigpOiBhbGdvc2RrLlRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gYWxnb3Nkay5tYWtlQXNzZXRUcmFuc2ZlclR4bldpdGhTdWdnZXN0ZWRQYXJhbXMoXG4gICAgICB0aGlzLl9zZW5kZXIsXG4gICAgICB0aGlzLl90byxcbiAgICAgIHRoaXMuX2Nsb3NlUmVtYWluZGVyVG8sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLl9hbW91bnQsXG4gICAgICB0aGlzLl9ub3RlLFxuICAgICAgdGhpcy5fdG9rZW5JZCxcbiAgICAgIHRoaXMuc3VnZ2VzdGVkUGFyYW1zLFxuICAgICAgdGhpcy5fcmVLZXlUbyxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogVWludDhBcnJheSB8IHN0cmluZyk6IFRyYW5zYWN0aW9uIHtcbiAgICBjb25zdCB0eCA9IHN1cGVyLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgYWxnb1R4ID0gdHguZ2V0QWxnb1RyYW5zYWN0aW9uKCk7XG4gICAgaWYgKCFhbGdvVHgpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNhY3Rpb24gaXMgZW1wdHknKTtcbiAgICB9XG5cbiAgICB0aGlzLl90b2tlbklkID0gYWxnb1R4LmFzc2V0SW5kZXg7XG4gICAgdGhpcy5fYW1vdW50ID0gYWxnb1R4LmFtb3VudCB8fCAwO1xuICAgIHRoaXMuX3RvID0gYWxnb3Nkay5lbmNvZGVBZGRyZXNzKGFsZ29UeC50by5wdWJsaWNLZXkpO1xuXG4gICAgcmV0dXJuIHR4O1xuICB9XG5cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogVWludDhBcnJheSB8IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHsgdHhuOiBhbGdvVHhuIH0gPSBVdGlscy5kZWNvZGVBbGdvVHhuKHJhd1RyYW5zYWN0aW9uKTtcbiAgICBpZiAoYWxnb1R4bi50eXBlICE9PSBhbGdvc2RrLlRyYW5zYWN0aW9uVHlwZS5heGZlcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgICBgSW52YWxpZCBUcmFuc2FjdGlvbiBUeXBlOiAke2FsZ29UeG4udHlwZX0uIEV4cGVjdGVkICR7YWxnb3Nkay5UcmFuc2FjdGlvblR5cGUuYXhmZXJ9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy52YWxpZGF0ZUZpZWxkcyhhbGdvVHhuLmFzc2V0SW5kZXgsIGFsZ29UeG4uYW1vdW50LCBhbGdvc2RrLmVuY29kZUFkZHJlc3MoYWxnb1R4bi50by5wdWJsaWNLZXkpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKHR4bjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZVRyYW5zYWN0aW9uKHR4bik7XG4gICAgdGhpcy52YWxpZGF0ZUZpZWxkcyh0aGlzLl90b2tlbklkLCB0aGlzLl9hbW91bnQsIHRoaXMuX3RvKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB2YWxpZGF0ZUZpZWxkcyh0b2tlbklkOiBudW1iZXIsIGFzc2V0QW1vdW50OiBudW1iZXIgfCBiaWdpbnQsIHJlY2VpdmVyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgdmFsaWRhdGlvblJlc3VsdDtcbiAgICBpZiAodGhpcy5fc2VuZGVyICE9PSB0aGlzLl90bykge1xuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IEFzc2V0VHJhbnNmZXJUeG5TY2hlbWEudmFsaWRhdGUoe1xuICAgICAgICB0b2tlbklkLFxuICAgICAgICBhc3NldEFtb3VudCxcbiAgICAgICAgcmVjZWl2ZXIsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRhdGlvblJlc3VsdCA9IEFzc2V0VG9nZ2xlVHhuU2NoZW1hLnZhbGlkYXRlKHtcbiAgICAgICAgdG9rZW5JZCxcbiAgICAgICAgcmVjZWl2ZXIsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKGBUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogJHt2YWxpZGF0aW9uUmVzdWx0LmVycm9yLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BuildTransactionError } from '@bitgo/sdk-core';
|
|
2
|
+
export declare class InsufficientFeeError extends BuildTransactionError {
|
|
3
|
+
constructor(providedFee: number, minimum: number);
|
|
4
|
+
}
|
|
5
|
+
export declare class AddressValidationError extends BuildTransactionError {
|
|
6
|
+
constructor(malformedAddress: string);
|
|
7
|
+
}
|
|
8
|
+
export declare class KeyDilutionError extends BuildTransactionError {
|
|
9
|
+
constructor(incorrectValue: number);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,qBAAa,oBAAqB,SAAQ,qBAAqB;gBACjD,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAOjD;AAED,qBAAa,sBAAuB,SAAQ,qBAAqB;gBACnD,gBAAgB,EAAE,MAAM;CAIrC;AACD,qBAAa,gBAAiB,SAAQ,qBAAqB;gBAC7C,cAAc,EAAE,MAAM;CAMnC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeyDilutionError = exports.AddressValidationError = exports.InsufficientFeeError = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
5
|
+
class InsufficientFeeError extends sdk_core_1.BuildTransactionError {
|
|
6
|
+
constructor(providedFee, minimum) {
|
|
7
|
+
super(`The provided fee of '${providedFee}' microalgos cannot be less than the ` +
|
|
8
|
+
`minimum fee of '${minimum}' microalgos`);
|
|
9
|
+
this.name = InsufficientFeeError.name;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.InsufficientFeeError = InsufficientFeeError;
|
|
13
|
+
class AddressValidationError extends sdk_core_1.BuildTransactionError {
|
|
14
|
+
constructor(malformedAddress) {
|
|
15
|
+
super(`The address '${malformedAddress}' is not a well-formed algorand address`);
|
|
16
|
+
this.name = AddressValidationError.name;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.AddressValidationError = AddressValidationError;
|
|
20
|
+
class KeyDilutionError extends sdk_core_1.BuildTransactionError {
|
|
21
|
+
constructor(incorrectValue) {
|
|
22
|
+
super(`The keyDilution value '${incorrectValue}' must be less than or equal to the square root of the voteKey validity range.`);
|
|
23
|
+
this.name = KeyDilutionError.name;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.KeyDilutionError = KeyDilutionError;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vYWxnby9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQXdEO0FBRXhELE1BQWEsb0JBQXFCLFNBQVEsZ0NBQXFCO0lBQzdELFlBQVksV0FBbUIsRUFBRSxPQUFlO1FBQzlDLEtBQUssQ0FDSCx3QkFBd0IsV0FBVyx1Q0FBdUM7WUFDeEUsbUJBQW1CLE9BQU8sY0FBYyxDQUMzQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7SUFDeEMsQ0FBQztDQUNGO0FBUkQsb0RBUUM7QUFFRCxNQUFhLHNCQUF1QixTQUFRLGdDQUFxQjtJQUMvRCxZQUFZLGdCQUF3QjtRQUNsQyxLQUFLLENBQUMsZ0JBQWdCLGdCQUFnQix5Q0FBeUMsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxJQUFJLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQUxELHdEQUtDO0FBQ0QsTUFBYSxnQkFBaUIsU0FBUSxnQ0FBcUI7SUFDekQsWUFBWSxjQUFzQjtRQUNoQyxLQUFLLENBQ0gsMEJBQTBCLGNBQWMsZ0ZBQWdGLENBQ3pILENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUFQRCw0Q0FPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBJbnN1ZmZpY2llbnRGZWVFcnJvciBleHRlbmRzIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKHByb3ZpZGVkRmVlOiBudW1iZXIsIG1pbmltdW06IG51bWJlcikge1xuICAgIHN1cGVyKFxuICAgICAgYFRoZSBwcm92aWRlZCBmZWUgb2YgJyR7cHJvdmlkZWRGZWV9JyBtaWNyb2FsZ29zIGNhbm5vdCBiZSBsZXNzIHRoYW4gdGhlIGAgK1xuICAgICAgICBgbWluaW11bSBmZWUgb2YgJyR7bWluaW11bX0nIG1pY3JvYWxnb3NgLFxuICAgICk7XG4gICAgdGhpcy5uYW1lID0gSW5zdWZmaWNpZW50RmVlRXJyb3IubmFtZTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWRkcmVzc1ZhbGlkYXRpb25FcnJvciBleHRlbmRzIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1hbGZvcm1lZEFkZHJlc3M6IHN0cmluZykge1xuICAgIHN1cGVyKGBUaGUgYWRkcmVzcyAnJHttYWxmb3JtZWRBZGRyZXNzfScgaXMgbm90IGEgd2VsbC1mb3JtZWQgYWxnb3JhbmQgYWRkcmVzc2ApO1xuICAgIHRoaXMubmFtZSA9IEFkZHJlc3NWYWxpZGF0aW9uRXJyb3IubmFtZTtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIEtleURpbHV0aW9uRXJyb3IgZXh0ZW5kcyBCdWlsZFRyYW5zYWN0aW9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihpbmNvcnJlY3RWYWx1ZTogbnVtYmVyKSB7XG4gICAgc3VwZXIoXG4gICAgICBgVGhlIGtleURpbHV0aW9uIHZhbHVlICcke2luY29ycmVjdFZhbHVlfScgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNxdWFyZSByb290IG9mIHRoZSB2b3RlS2V5IHZhbGlkaXR5IHJhbmdlLmAsXG4gICAgKTtcbiAgICB0aGlzLm5hbWUgPSBLZXlEaWx1dGlvbkVycm9yLm5hbWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import algosdk from 'algosdk';
|
|
3
|
+
export interface TxData {
|
|
4
|
+
id: string;
|
|
5
|
+
type?: string;
|
|
6
|
+
from: string;
|
|
7
|
+
to?: string;
|
|
8
|
+
fee: number;
|
|
9
|
+
amount?: string;
|
|
10
|
+
firstRound: number;
|
|
11
|
+
lastRound: number;
|
|
12
|
+
note?: Uint8Array;
|
|
13
|
+
voteKey?: string;
|
|
14
|
+
selectionKey?: string;
|
|
15
|
+
voteFirst?: number;
|
|
16
|
+
voteLast?: number;
|
|
17
|
+
voteKeyDilution?: number;
|
|
18
|
+
stateProofKey?: string;
|
|
19
|
+
tokenId?: number;
|
|
20
|
+
genesisID: string;
|
|
21
|
+
genesisHash: string | Buffer;
|
|
22
|
+
closeRemainderTo?: string;
|
|
23
|
+
nonParticipation?: boolean;
|
|
24
|
+
txType?: string;
|
|
25
|
+
tokenName?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface Address {
|
|
28
|
+
publicKey: Uint8Array;
|
|
29
|
+
checksum: Uint8Array;
|
|
30
|
+
}
|
|
31
|
+
export interface Seed {
|
|
32
|
+
seed: Uint8Array;
|
|
33
|
+
checksum: Uint8Array;
|
|
34
|
+
}
|
|
35
|
+
export interface EncodedTx {
|
|
36
|
+
rawTransaction: Uint8Array;
|
|
37
|
+
txn: algosdk.Transaction;
|
|
38
|
+
signed: boolean;
|
|
39
|
+
signers?: string[];
|
|
40
|
+
signedBy?: string[];
|
|
41
|
+
}
|
|
42
|
+
export interface Account {
|
|
43
|
+
addr: string;
|
|
44
|
+
sk: Uint8Array;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=ifaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ifaces.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/ifaces.ts"],"names":[],"mappings":";AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,UAAU,CAAC;IAC3B,GAAG,EAAE,OAAO,CAAC,WAAW,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,UAAU,CAAC;CAChB"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvaW4vYWxnby9pZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbGdvc2RrIGZyb20gJ2FsZ29zZGsnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFR4RGF0YSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGZyb206IHN0cmluZztcbiAgdG8/OiBzdHJpbmc7XG4gIGZlZTogbnVtYmVyO1xuICBhbW91bnQ/OiBzdHJpbmc7XG4gIGZpcnN0Um91bmQ6IG51bWJlcjtcbiAgbGFzdFJvdW5kOiBudW1iZXI7XG4gIG5vdGU/OiBVaW50OEFycmF5O1xuICB2b3RlS2V5Pzogc3RyaW5nO1xuICBzZWxlY3Rpb25LZXk/OiBzdHJpbmc7XG4gIHZvdGVGaXJzdD86IG51bWJlcjtcbiAgdm90ZUxhc3Q/OiBudW1iZXI7XG4gIHZvdGVLZXlEaWx1dGlvbj86IG51bWJlcjtcbiAgc3RhdGVQcm9vZktleT86IHN0cmluZztcbiAgdG9rZW5JZD86IG51bWJlcjtcbiAgZ2VuZXNpc0lEOiBzdHJpbmc7XG4gIGdlbmVzaXNIYXNoOiBzdHJpbmcgfCBCdWZmZXI7XG4gIGNsb3NlUmVtYWluZGVyVG8/OiBzdHJpbmc7XG4gIG5vblBhcnRpY2lwYXRpb24/OiBib29sZWFuO1xuICB0eFR5cGU/OiBzdHJpbmc7XG4gIHRva2VuTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRyZXNzIHtcbiAgcHVibGljS2V5OiBVaW50OEFycmF5O1xuICBjaGVja3N1bTogVWludDhBcnJheTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWVkIHtcbiAgc2VlZDogVWludDhBcnJheTtcbiAgY2hlY2tzdW06IFVpbnQ4QXJyYXk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5jb2RlZFR4IHtcbiAgcmF3VHJhbnNhY3Rpb246IFVpbnQ4QXJyYXk7XG4gIHR4bjogYWxnb3Nkay5UcmFuc2FjdGlvbjtcbiAgc2lnbmVkOiBib29sZWFuO1xuICBzaWduZXJzPzogc3RyaW5nW107XG4gIHNpZ25lZEJ5Pzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWNjb3VudCB7XG4gIGFkZHI6IHN0cmluZztcbiAgc2s6IFVpbnQ4QXJyYXk7XG59XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import utils from './utils';
|
|
2
|
+
import * as Interface from './ifaces';
|
|
3
|
+
export { KeyPair } from './keyPair';
|
|
4
|
+
export { TransactionBuilder } from './transactionBuilder';
|
|
5
|
+
export { TransferBuilder } from './transferBuilder';
|
|
6
|
+
export { KeyRegistrationBuilder } from './keyRegistrationBuilder';
|
|
7
|
+
export { Transaction } from './transaction';
|
|
8
|
+
export { AssetTransferBuilder } from './assetTransferBuilder';
|
|
9
|
+
export { TransactionBuilderFactory } from './transactionBuilderFactory';
|
|
10
|
+
export { InsufficientFeeError, AddressValidationError } from './errors';
|
|
11
|
+
export { Interface };
|
|
12
|
+
export { utils as algoUtils };
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAK,SAAS,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.algoUtils = exports.Interface = exports.AddressValidationError = exports.InsufficientFeeError = exports.TransactionBuilderFactory = exports.AssetTransferBuilder = exports.Transaction = exports.KeyRegistrationBuilder = exports.TransferBuilder = exports.TransactionBuilder = exports.KeyPair = void 0;
|
|
26
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
27
|
+
exports.algoUtils = utils_1.default;
|
|
28
|
+
const Interface = __importStar(require("./ifaces"));
|
|
29
|
+
exports.Interface = Interface;
|
|
30
|
+
var keyPair_1 = require("./keyPair");
|
|
31
|
+
Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return keyPair_1.KeyPair; } });
|
|
32
|
+
var transactionBuilder_1 = require("./transactionBuilder");
|
|
33
|
+
Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return transactionBuilder_1.TransactionBuilder; } });
|
|
34
|
+
var transferBuilder_1 = require("./transferBuilder");
|
|
35
|
+
Object.defineProperty(exports, "TransferBuilder", { enumerable: true, get: function () { return transferBuilder_1.TransferBuilder; } });
|
|
36
|
+
var keyRegistrationBuilder_1 = require("./keyRegistrationBuilder");
|
|
37
|
+
Object.defineProperty(exports, "KeyRegistrationBuilder", { enumerable: true, get: function () { return keyRegistrationBuilder_1.KeyRegistrationBuilder; } });
|
|
38
|
+
var transaction_1 = require("./transaction");
|
|
39
|
+
Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return transaction_1.Transaction; } });
|
|
40
|
+
var assetTransferBuilder_1 = require("./assetTransferBuilder");
|
|
41
|
+
Object.defineProperty(exports, "AssetTransferBuilder", { enumerable: true, get: function () { return assetTransferBuilder_1.AssetTransferBuilder; } });
|
|
42
|
+
var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
|
|
43
|
+
Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
|
|
44
|
+
var errors_1 = require("./errors");
|
|
45
|
+
Object.defineProperty(exports, "InsufficientFeeError", { enumerable: true, get: function () { return errors_1.InsufficientFeeError; } });
|
|
46
|
+
Object.defineProperty(exports, "AddressValidationError", { enumerable: true, get: function () { return errors_1.AddressValidationError; } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9hbGdvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFZVixvQkFaWCxlQUFLLENBWWU7QUFYM0Isb0RBQXNDO0FBVTdCLDhCQUFTO0FBUmxCLHFDQUFvQztBQUEzQixrR0FBQSxPQUFPLE9BQUE7QUFDaEIsMkRBQTBEO0FBQWpELHdIQUFBLGtCQUFrQixPQUFBO0FBQzNCLHFEQUFvRDtBQUEzQyxrSEFBQSxlQUFlLE9BQUE7QUFDeEIsbUVBQWtFO0FBQXpELGdJQUFBLHNCQUFzQixPQUFBO0FBQy9CLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsK0RBQThEO0FBQXJELDRIQUFBLG9CQUFvQixPQUFBO0FBQzdCLHlFQUF3RTtBQUEvRCxzSUFBQSx5QkFBeUIsT0FBQTtBQUNsQyxtQ0FBd0U7QUFBL0QsOEdBQUEsb0JBQW9CLE9BQUE7QUFBRSxnSEFBQSxzQkFBc0IsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAqIGFzIEludGVyZmFjZSBmcm9tICcuL2lmYWNlcyc7XG5cbmV4cG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgS2V5UmVnaXN0cmF0aW9uQnVpbGRlciB9IGZyb20gJy4va2V5UmVnaXN0cmF0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgQXNzZXRUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL2Fzc2V0VHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0IHsgSW5zdWZmaWNpZW50RmVlRXJyb3IsIEFkZHJlc3NWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL2Vycm9ycyc7XG5leHBvcnQgeyBJbnRlcmZhY2UgfTtcbmV4cG9ydCB7IHV0aWxzIGFzIGFsZ29VdGlscyB9O1xuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Ed25519KeyPair, DefaultKeys, KeyPairOptions } from '@bitgo/sdk-core';
|
|
2
|
+
export declare class KeyPair extends Ed25519KeyPair {
|
|
3
|
+
/**
|
|
4
|
+
* Public constructor. By default, creates a key pair with a random master seed.
|
|
5
|
+
*
|
|
6
|
+
* @param { KeyPairOptions } source Either a master seed, a private key, or a public key
|
|
7
|
+
*/
|
|
8
|
+
constructor(source?: KeyPairOptions);
|
|
9
|
+
/** @inheritdoc */
|
|
10
|
+
recordKeysFromPrivateKeyInProtocolFormat(prv: string): DefaultKeys;
|
|
11
|
+
/** @inheritdoc */
|
|
12
|
+
recordKeysFromPublicKeyInProtocolFormat(pub: string): DefaultKeys;
|
|
13
|
+
/** @inheritdoc */
|
|
14
|
+
getAddress(): string;
|
|
15
|
+
/** @inheritdoc */
|
|
16
|
+
getKeys(): DefaultKeys;
|
|
17
|
+
/**
|
|
18
|
+
* Getting the base64 private key for signing an algo transaction.
|
|
19
|
+
*
|
|
20
|
+
* @returns {Uint8Array} base64 private key
|
|
21
|
+
* @see https://developer.algorand.org/docs/features/accounts/#transformation-private-key-to-base64-private-key
|
|
22
|
+
*/
|
|
23
|
+
getSigningKey(): Uint8Array;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=keyPair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/keyPair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAc,MAAM,iBAAiB,CAAC;AAG1F,qBAAa,OAAQ,SAAQ,cAAc;IACzC;;;;OAIG;gBACS,MAAM,CAAC,EAAE,cAAc;IAInC,kBAAkB;IAClB,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAOlE,kBAAkB;IAClB,uCAAuC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;IAKjE,kBAAkB;IAClB,UAAU,IAAI,MAAM;IAIpB,kBAAkB;IAClB,OAAO,IAAI,WAAW;IAYtB;;;;;OAKG;IACH,aAAa,IAAI,UAAU;CAM5B"}
|
|
@@ -0,0 +1,77 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.KeyPair = void 0;
|
|
26
|
+
const algosdk_1 = __importStar(require("algosdk"));
|
|
27
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
28
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
29
|
+
class KeyPair extends sdk_core_1.Ed25519KeyPair {
|
|
30
|
+
/**
|
|
31
|
+
* Public constructor. By default, creates a key pair with a random master seed.
|
|
32
|
+
*
|
|
33
|
+
* @param { KeyPairOptions } source Either a master seed, a private key, or a public key
|
|
34
|
+
*/
|
|
35
|
+
constructor(source) {
|
|
36
|
+
super(source);
|
|
37
|
+
}
|
|
38
|
+
/** @inheritdoc */
|
|
39
|
+
recordKeysFromPrivateKeyInProtocolFormat(prv) {
|
|
40
|
+
const decodedSeed = utils_1.default.decodeSeed(prv);
|
|
41
|
+
const bufferFromSeed = Buffer.from(decodedSeed.seed);
|
|
42
|
+
return utils_1.default.keyPairFromSeed(bufferFromSeed).keyPair;
|
|
43
|
+
}
|
|
44
|
+
/** @inheritdoc */
|
|
45
|
+
recordKeysFromPublicKeyInProtocolFormat(pub) {
|
|
46
|
+
const publicKey = algosdk_1.default.decodeAddress(pub).publicKey;
|
|
47
|
+
return { pub: utils_1.default.toHex(publicKey) };
|
|
48
|
+
}
|
|
49
|
+
/** @inheritdoc */
|
|
50
|
+
getAddress() {
|
|
51
|
+
return algosdk_1.encodeAddress(utils_1.default.toUint8Array(this.keyPair.pub));
|
|
52
|
+
}
|
|
53
|
+
/** @inheritdoc */
|
|
54
|
+
getKeys() {
|
|
55
|
+
// TODO(https://bitgoinc.atlassian.net/browse/STLX-6062): refactor this method
|
|
56
|
+
// should return the pub and prv in the Algorand encoded format
|
|
57
|
+
const result = { pub: this.keyPair.pub };
|
|
58
|
+
if (this.keyPair.prv) {
|
|
59
|
+
result.prv = this.keyPair.prv;
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Getting the base64 private key for signing an algo transaction.
|
|
65
|
+
*
|
|
66
|
+
* @returns {Uint8Array} base64 private key
|
|
67
|
+
* @see https://developer.algorand.org/docs/features/accounts/#transformation-private-key-to-base64-private-key
|
|
68
|
+
*/
|
|
69
|
+
getSigningKey() {
|
|
70
|
+
if (!this.keyPair.prv) {
|
|
71
|
+
throw new sdk_core_1.InvalidKey('Private key undefined');
|
|
72
|
+
}
|
|
73
|
+
return utils_1.default.toUint8Array(this.keyPair.prv + this.keyPair.pub);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.KeyPair = KeyPair;
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL2FsZ28va2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlEO0FBQ2pELDhDQUEwRjtBQUMxRixvREFBNEI7QUFFNUIsTUFBYSxPQUFRLFNBQVEseUJBQWM7SUFDekM7Ozs7T0FJRztJQUNILFlBQVksTUFBdUI7UUFDakMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsd0NBQXdDLENBQUMsR0FBVztRQUNsRCxNQUFNLFdBQVcsR0FBRyxlQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJELE9BQU8sZUFBSyxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDdkQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix1Q0FBdUMsQ0FBQyxHQUFXO1FBQ2pELE1BQU0sU0FBUyxHQUFHLGlCQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLGVBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFVBQVU7UUFDUixPQUFPLHVCQUFhLENBQUMsZUFBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixPQUFPO1FBQ0wsOEVBQThFO1FBQzlFLCtEQUErRDtRQUMvRCxNQUFNLE1BQU0sR0FBZ0IsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUV0RCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ3BCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7U0FDL0I7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxxQkFBVSxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDL0M7UUFDRCxPQUFPLGVBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRSxDQUFDO0NBQ0Y7QUF0REQsMEJBc0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFsZ29zZGssIHsgZW5jb2RlQWRkcmVzcyB9IGZyb20gJ2FsZ29zZGsnO1xuaW1wb3J0IHsgRWQyNTUxOUtleVBhaXIsIERlZmF1bHRLZXlzLCBLZXlQYWlyT3B0aW9ucywgSW52YWxpZEtleSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBLZXlQYWlyIGV4dGVuZHMgRWQyNTUxOUtleVBhaXIge1xuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLiBCeSBkZWZhdWx0LCBjcmVhdGVzIGEga2V5IHBhaXIgd2l0aCBhIHJhbmRvbSBtYXN0ZXIgc2VlZC5cbiAgICpcbiAgICogQHBhcmFtIHsgS2V5UGFpck9wdGlvbnMgfSBzb3VyY2UgRWl0aGVyIGEgbWFzdGVyIHNlZWQsIGEgcHJpdmF0ZSBrZXksIG9yIGEgcHVibGljIGtleVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBzdXBlcihzb3VyY2UpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHJlY29yZEtleXNGcm9tUHJpdmF0ZUtleUluUHJvdG9jb2xGb3JtYXQocHJ2OiBzdHJpbmcpOiBEZWZhdWx0S2V5cyB7XG4gICAgY29uc3QgZGVjb2RlZFNlZWQgPSB1dGlscy5kZWNvZGVTZWVkKHBydik7XG4gICAgY29uc3QgYnVmZmVyRnJvbVNlZWQgPSBCdWZmZXIuZnJvbShkZWNvZGVkU2VlZC5zZWVkKTtcblxuICAgIHJldHVybiB1dGlscy5rZXlQYWlyRnJvbVNlZWQoYnVmZmVyRnJvbVNlZWQpLmtleVBhaXI7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcmVjb3JkS2V5c0Zyb21QdWJsaWNLZXlJblByb3RvY29sRm9ybWF0KHB1Yjogc3RyaW5nKTogRGVmYXVsdEtleXMge1xuICAgIGNvbnN0IHB1YmxpY0tleSA9IGFsZ29zZGsuZGVjb2RlQWRkcmVzcyhwdWIpLnB1YmxpY0tleTtcbiAgICByZXR1cm4geyBwdWI6IHV0aWxzLnRvSGV4KHB1YmxpY0tleSkgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGVuY29kZUFkZHJlc3ModXRpbHMudG9VaW50OEFycmF5KHRoaXMua2V5UGFpci5wdWIpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRLZXlzKCk6IERlZmF1bHRLZXlzIHtcbiAgICAvLyBUT0RPKGh0dHBzOi8vYml0Z29pbmMuYXRsYXNzaWFuLm5ldC9icm93c2UvU1RMWC02MDYyKTogcmVmYWN0b3IgdGhpcyBtZXRob2RcbiAgICAvLyBzaG91bGQgcmV0dXJuIHRoZSBwdWIgYW5kIHBydiBpbiB0aGUgQWxnb3JhbmQgZW5jb2RlZCBmb3JtYXRcbiAgICBjb25zdCByZXN1bHQ6IERlZmF1bHRLZXlzID0geyBwdWI6IHRoaXMua2V5UGFpci5wdWIgfTtcblxuICAgIGlmICh0aGlzLmtleVBhaXIucHJ2KSB7XG4gICAgICByZXN1bHQucHJ2ID0gdGhpcy5rZXlQYWlyLnBydjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRpbmcgdGhlIGJhc2U2NCBwcml2YXRlIGtleSBmb3Igc2lnbmluZyBhbiBhbGdvIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcmV0dXJucyB7VWludDhBcnJheX0gYmFzZTY0IHByaXZhdGUga2V5XG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYWxnb3JhbmQub3JnL2RvY3MvZmVhdHVyZXMvYWNjb3VudHMvI3RyYW5zZm9ybWF0aW9uLXByaXZhdGUta2V5LXRvLWJhc2U2NC1wcml2YXRlLWtleVxuICAgKi9cbiAgZ2V0U2lnbmluZ0tleSgpOiBVaW50OEFycmF5IHtcbiAgICBpZiAoIXRoaXMua2V5UGFpci5wcnYpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkS2V5KCdQcml2YXRlIGtleSB1bmRlZmluZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHV0aWxzLnRvVWludDhBcnJheSh0aGlzLmtleVBhaXIucHJ2ICsgdGhpcy5rZXlQYWlyLnB1Yik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import algosdk from 'algosdk';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
3
|
+
import { TransactionType } from '@bitgo/sdk-core';
|
|
4
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
5
|
+
import { Transaction } from './transaction';
|
|
6
|
+
export declare class KeyRegistrationBuilder extends TransactionBuilder {
|
|
7
|
+
protected _voteKey: string;
|
|
8
|
+
protected _selectionKey: string;
|
|
9
|
+
protected _voteFirst: number;
|
|
10
|
+
protected _voteLast: number;
|
|
11
|
+
protected _voteKeyDilution: number;
|
|
12
|
+
protected _nonParticipation: boolean;
|
|
13
|
+
protected _stateProofKey: string;
|
|
14
|
+
constructor(coinConfig: Readonly<CoinConfig>);
|
|
15
|
+
/**
|
|
16
|
+
* Sets the vote key
|
|
17
|
+
*
|
|
18
|
+
* @returns {KeyRegistrationBuilder} This Key Registration builder.
|
|
19
|
+
*
|
|
20
|
+
* @param {string} key The root participation public key. See Generate a Participation Key to learn more.
|
|
21
|
+
* https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction
|
|
22
|
+
*/
|
|
23
|
+
voteKey(key: string): KeyRegistrationBuilder;
|
|
24
|
+
/**
|
|
25
|
+
* Sets the selection key
|
|
26
|
+
*
|
|
27
|
+
* @returns {KeyRegistrationBuilder} This Key Registration builder.
|
|
28
|
+
*
|
|
29
|
+
* @param {string} key The VRF public key for the account.
|
|
30
|
+
* https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction
|
|
31
|
+
*/
|
|
32
|
+
selectionKey(key: string): KeyRegistrationBuilder;
|
|
33
|
+
/**
|
|
34
|
+
* Sets the stateProof key
|
|
35
|
+
*
|
|
36
|
+
* @returns {KeyRegistrationBuilder} This Key Registration builder.
|
|
37
|
+
*
|
|
38
|
+
* @param {string} key The stateproof key. See consensus for more information.
|
|
39
|
+
* https://developer.algorand.org/docs/get-details/algorand_consensus/?from_query=state#state-proof-keys
|
|
40
|
+
*/
|
|
41
|
+
stateProofKey(key: string): KeyRegistrationBuilder;
|
|
42
|
+
/**
|
|
43
|
+
*Sets the vote first round
|
|
44
|
+
*
|
|
45
|
+
* @returns {KeyRegistrationBuilder} This Key Registration builder.
|
|
46
|
+
*
|
|
47
|
+
* @param {number} round The first round that the participation key is valid. Not to be confused with the FirstValid round of the keyreg transaction.
|
|
48
|
+
* https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction
|
|
49
|
+
*/
|
|
50
|
+
voteFirst(round: number): KeyRegistrationBuilder;
|
|
51
|
+
/**
|
|
52
|
+
* Sets the vote last round
|
|
53
|
+
*
|
|
54
|
+
* @returns {KeyRegistrationBuilder} This Key Registration builder.
|
|
55
|
+
*
|
|
56
|
+
* A recommended range is 3,000,000 rounds.
|
|
57
|
+
*
|
|
58
|
+
* @param {number} round No theoretical limit.
|
|
59
|
+
* https://developer.algorand.org/docs/run-a-node/participate/generate_keys/
|
|
60
|
+
*/
|
|
61
|
+
voteLast(round: number): KeyRegistrationBuilder;
|
|
62
|
+
/**
|
|
63
|
+
* Sets the vote key dilution
|
|
64
|
+
*
|
|
65
|
+
* @returns {KeyRegistrationBuilder} This Key Registration builder.
|
|
66
|
+
*
|
|
67
|
+
* Defaults to 10,000
|
|
68
|
+
*
|
|
69
|
+
* @param {number} size [10000]. To reduce the size of the participation key, set the key dilution value to roughly the square root of the range that the partkey is valid for.
|
|
70
|
+
* https://developer.algorand.org/docs/run-a-node/participate/generate_keys/#generate-the-participation-key-with-goal
|
|
71
|
+
* @param size
|
|
72
|
+
*/
|
|
73
|
+
voteKeyDilution(size?: number): KeyRegistrationBuilder;
|
|
74
|
+
/**
|
|
75
|
+
* Sets the non participation flag
|
|
76
|
+
*
|
|
77
|
+
* @returns {KeyRegistrationBuilder} This Key Registration builder.
|
|
78
|
+
*
|
|
79
|
+
* @param {boolean} nonParticipation All new Algorand accounts are participating by default.
|
|
80
|
+
* This means that they earn rewards. Mark an account nonparticipating by setting this value to true and this account
|
|
81
|
+
* will no longer earn rewards NEVER.
|
|
82
|
+
* https://developer.algorand.org/docs/reference/transactions/#key-registration-transaction
|
|
83
|
+
*/
|
|
84
|
+
nonParticipation(nonParticipation: boolean): KeyRegistrationBuilder;
|
|
85
|
+
protected buildAlgoTxn(): algosdk.Transaction;
|
|
86
|
+
private buildOfflineKeyRegTransaction;
|
|
87
|
+
private buildOnlineKeyRegTransaction;
|
|
88
|
+
private buildNonParticipationKeyRegTransaction;
|
|
89
|
+
protected get transactionType(): TransactionType;
|
|
90
|
+
/** @inheritdoc */
|
|
91
|
+
protected fromImplementation(rawTransaction: Uint8Array | string): Transaction;
|
|
92
|
+
/** @inheritdoc */
|
|
93
|
+
validateRawTransaction(rawTransaction: Uint8Array | string): void;
|
|
94
|
+
private isNonParticipationKeyRegAlgoSDKTransaction;
|
|
95
|
+
private isNonParticipationKeyRegAccountLibTransaction;
|
|
96
|
+
private isOnlineKeyRegAlgoSDKTransaction;
|
|
97
|
+
private isOnlineKeyRegAccountLibTransaction;
|
|
98
|
+
private isOfflineKeyRegAlgoSDKTransaction;
|
|
99
|
+
private isOfflineKeyRegAccountLibTransaction;
|
|
100
|
+
/** @inheritdoc */
|
|
101
|
+
validateTransaction(transaction: Transaction): void;
|
|
102
|
+
private validateFields;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=keyRegistrationBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyRegistrationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/keyRegistrationBuilder.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAA2B,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,qBAAa,sBAAuB,SAAQ,kBAAkB;IAC5D,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACrC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;gBAErB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB;IAK5C;;;;;;;OAOG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB;IAKjD;;;;;;;OAOG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,sBAAsB;IAMlD;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAOhD;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB;IAO/C;;;;;;;;;;OAUG;IACH,eAAe,CAAC,IAAI,SAAQ,GAAG,sBAAsB;IAOrD;;;;;;;;;OASG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,GAAG,sBAAsB;IAMnE,SAAS,CAAC,YAAY,IAAI,OAAO,CAAC,WAAW;IAQ7C,OAAO,CAAC,6BAA6B;IAarC,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,sCAAsC;IAe9C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,WAAW;IAqB9E,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IAqBjE,OAAO,CAAC,0CAA0C;IAIlD,OAAO,CAAC,6CAA6C;IAIrD,OAAO,CAAC,gCAAgC;IAMxC,OAAO,CAAC,mCAAmC;IAI3C,OAAO,CAAC,iCAAiC;IAYzC,OAAO,CAAC,oCAAoC;IAY5C,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IA6BnD,OAAO,CAAC,cAAc;CAqBvB"}
|