@algorandfoundation/algokit-utils 3.1.0 → 4.0.0-beta.2
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/cjs/dispenser-client.d.ts +19 -0
- package/cjs/dispenser-client.d.ts.map +1 -0
- package/cjs/dispenser-client.js +25 -0
- package/cjs/dispenser-client.js.map +1 -0
- package/cjs/index.d.ts +1 -0
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +1 -0
- package/cjs/index.js.map +1 -1
- package/cjs/network-client.d.ts.map +1 -1
- package/cjs/network-client.js +2 -2
- package/cjs/network-client.js.map +1 -1
- package/cjs/transfer.d.ts +8 -6
- package/cjs/transfer.d.ts.map +1 -1
- package/cjs/transfer.js +49 -17
- package/cjs/transfer.js.map +1 -1
- package/cjs/types/dispenser-client.d.ts +77 -0
- package/cjs/types/dispenser-client.d.ts.map +1 -0
- package/cjs/types/dispenser-client.js +143 -0
- package/cjs/types/dispenser-client.js.map +1 -0
- package/cjs/types/transfer.d.ts +8 -1
- package/cjs/types/transfer.d.ts.map +1 -1
- package/cjs/util.d.ts +8 -0
- package/cjs/util.d.ts.map +1 -1
- package/cjs/util.js +18 -1
- package/cjs/util.js.map +1 -1
- package/esm/dispenser-client.js +21 -0
- package/esm/dispenser-client.js.map +1 -0
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/network-client.js +2 -2
- package/esm/network-client.js.map +1 -1
- package/esm/transfer.js +49 -17
- package/esm/transfer.js.map +1 -1
- package/esm/types/dispenser-client.js +136 -0
- package/esm/types/dispenser-client.js.map +1 -0
- package/esm/util.js +16 -0
- package/esm/util.js.map +1 -1
- package/package.json +1 -1
- package/types/dispenser-client.d.ts +19 -0
- package/types/dispenser-client.d.ts.map +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/network-client.d.ts.map +1 -1
- package/types/transfer.d.ts +8 -6
- package/types/transfer.d.ts.map +1 -1
- package/types/types/dispenser-client.d.ts +77 -0
- package/types/types/dispenser-client.d.ts.map +1 -0
- package/types/types/transfer.d.ts +8 -1
- package/types/types/transfer.d.ts.map +1 -1
- package/types/util.d.ts +8 -0
- package/types/util.d.ts.map +1 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TestNetDispenserApiClient, TestNetDispenserApiClientParams } from './types/dispenser-client';
|
|
2
|
+
/**
|
|
3
|
+
* Create a new TestNetDispenserApiClient instance.
|
|
4
|
+
* Refer to [docs](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md) on guidance to obtain an access token.
|
|
5
|
+
*
|
|
6
|
+
* @param params An object containing parameters for the TestNetDispenserApiClient class.
|
|
7
|
+
* Or null if you want the client to load the access token from the environment variable `ALGOKIT_DISPENSER_ACCESS_TOKEN`.
|
|
8
|
+
* @example
|
|
9
|
+
* const client = algokit.getTestNetDispenserApiClient(
|
|
10
|
+
* {
|
|
11
|
+
* authToken: 'your_auth_token',
|
|
12
|
+
* requestTimeout: 15,
|
|
13
|
+
* }
|
|
14
|
+
* )
|
|
15
|
+
*
|
|
16
|
+
* @returns An instance of the TestNetDispenserApiClient class.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getTestNetDispenserApiClient(params?: TestNetDispenserApiClientParams | null): TestNetDispenserApiClient;
|
|
19
|
+
//# sourceMappingURL=dispenser-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispenser-client.d.ts","sourceRoot":"","sources":["../../src/dispenser-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAA;AAErG;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,GAAE,+BAA+B,GAAG,IAAW,6BAEjG"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTestNetDispenserApiClient = void 0;
|
|
4
|
+
const dispenser_client_1 = require("./types/dispenser-client");
|
|
5
|
+
/**
|
|
6
|
+
* Create a new TestNetDispenserApiClient instance.
|
|
7
|
+
* Refer to [docs](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md) on guidance to obtain an access token.
|
|
8
|
+
*
|
|
9
|
+
* @param params An object containing parameters for the TestNetDispenserApiClient class.
|
|
10
|
+
* Or null if you want the client to load the access token from the environment variable `ALGOKIT_DISPENSER_ACCESS_TOKEN`.
|
|
11
|
+
* @example
|
|
12
|
+
* const client = algokit.getTestNetDispenserApiClient(
|
|
13
|
+
* {
|
|
14
|
+
* authToken: 'your_auth_token',
|
|
15
|
+
* requestTimeout: 15,
|
|
16
|
+
* }
|
|
17
|
+
* )
|
|
18
|
+
*
|
|
19
|
+
* @returns An instance of the TestNetDispenserApiClient class.
|
|
20
|
+
*/
|
|
21
|
+
function getTestNetDispenserApiClient(params = null) {
|
|
22
|
+
return new dispenser_client_1.TestNetDispenserApiClient(params);
|
|
23
|
+
}
|
|
24
|
+
exports.getTestNetDispenserApiClient = getTestNetDispenserApiClient;
|
|
25
|
+
//# sourceMappingURL=dispenser-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispenser-client.js","sourceRoot":"","sources":["../../src/dispenser-client.ts"],"names":[],"mappings":";;;AAAA,+DAAqG;AAErG;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,4BAA4B,CAAC,SAAiD,IAAI;IAChG,OAAO,IAAI,4CAAyB,CAAC,MAAM,CAAC,CAAA;AAC9C,CAAC;AAFD,oEAEC"}
|
package/cjs/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export * from './localnet';
|
|
|
9
9
|
export * from './network-client';
|
|
10
10
|
export * from './transaction';
|
|
11
11
|
export * from './transfer';
|
|
12
|
+
export * from './dispenser-client';
|
|
12
13
|
/** The AlgoKit config. To update it use the configure method. */
|
|
13
14
|
export declare const Config: UpdatableConfig;
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
package/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAElC,iEAAiE;AACjE,eAAO,MAAM,MAAM,iBAAwB,CAAA"}
|
package/cjs/index.js
CHANGED
|
@@ -26,6 +26,7 @@ __exportStar(require("./localnet"), exports);
|
|
|
26
26
|
__exportStar(require("./network-client"), exports);
|
|
27
27
|
__exportStar(require("./transaction"), exports);
|
|
28
28
|
__exportStar(require("./transfer"), exports);
|
|
29
|
+
__exportStar(require("./dispenser-client"), exports);
|
|
29
30
|
/** The AlgoKit config. To update it use the configure method. */
|
|
30
31
|
exports.Config = new config_1.UpdatableConfig();
|
|
31
32
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAgD;AAEhD,4CAAyB;AACzB,2CAAwB;AACxB,wCAAqB;AACrB,+CAA4B;AAC5B,+CAA4B;AAC5B,mDAAgC;AAChC,6CAA0B;AAC1B,mDAAgC;AAChC,gDAA6B;AAC7B,6CAA0B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAgD;AAEhD,4CAAyB;AACzB,2CAAwB;AACxB,wCAAqB;AACrB,+CAA4B;AAC5B,+CAA4B;AAC5B,mDAAgC;AAChC,6CAA0B;AAC1B,mDAAgC;AAChC,gDAA6B;AAC7B,6CAA0B;AAC1B,qDAAkC;AAElC,iEAAiE;AACpD,QAAA,MAAM,GAAG,IAAI,wBAAe,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-client.d.ts","sourceRoot":"","sources":["../../src/network-client.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAGxD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAErE,uJAAuJ;AACvJ,wBAAgB,0BAA0B,IAAI,UAAU,CAwBvD;AAED,mIAAmI;AACnI,wBAAgB,6BAA6B,IAAI,gBAAgB,CAchE;AAED,qIAAqI;AACrI,wBAAgB,+BAA+B,IAAI,gBAAgB,CAclE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,gBAAgB,CAK/G;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,gBAAgB,CAM7G;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAIhE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAIvE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,GAAG,CAK/D;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhE;
|
|
1
|
+
{"version":3,"file":"network-client.d.ts","sourceRoot":"","sources":["../../src/network-client.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAGxD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAErE,uJAAuJ;AACvJ,wBAAgB,0BAA0B,IAAI,UAAU,CAwBvD;AAED,mIAAmI;AACnI,wBAAgB,6BAA6B,IAAI,gBAAgB,CAchE;AAED,qIAAqI;AACrI,wBAAgB,+BAA+B,IAAI,gBAAgB,CAclE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,gBAAgB,CAK/G;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,gBAAgB,CAM7G;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAIhE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAIvE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,GAAG,CAK/D;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhE;AAED,wBAAsB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhE;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA"}
|
package/cjs/network-client.js
CHANGED
|
@@ -203,12 +203,12 @@ function getAlgoKmdClient(config) {
|
|
|
203
203
|
exports.getAlgoKmdClient = getAlgoKmdClient;
|
|
204
204
|
async function isTestNet(algod) {
|
|
205
205
|
const params = await algod.getTransactionParams().do();
|
|
206
|
-
return
|
|
206
|
+
return ['testnet-v1.0', 'testnet-v1', 'testnet'].includes(params.genesisID);
|
|
207
207
|
}
|
|
208
208
|
exports.isTestNet = isTestNet;
|
|
209
209
|
async function isMainNet(algod) {
|
|
210
210
|
const params = await algod.getTransactionParams().do();
|
|
211
|
-
return
|
|
211
|
+
return ['mainnet-v1.0', 'mainnet-v1', 'mainnet'].includes(params.genesisID);
|
|
212
212
|
}
|
|
213
213
|
exports.isMainNet = isMainNet;
|
|
214
214
|
var localnet_1 = require("./localnet");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-client.js","sourceRoot":"","sources":["../../src/network-client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"network-client.js","sourceRoot":"","sources":["../../src/network-client.ts"],"names":[],"mappings":"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"}
|
package/cjs/transfer.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Algodv2, Kmd } from 'algosdk';
|
|
2
2
|
import { SendTransactionResult } from './types/transaction';
|
|
3
|
-
import { AlgoTransferParams, EnsureFundedParams, TransferAssetParams } from './types/transfer';
|
|
3
|
+
import { AlgoTransferParams, EnsureFundedParams, EnsureFundedReturnType, TransferAssetParams } from './types/transfer';
|
|
4
4
|
/**
|
|
5
5
|
* Transfer ALGOs between two accounts.
|
|
6
6
|
* @param transfer The transfer definition
|
|
@@ -18,12 +18,14 @@ export declare function transferAlgos(transfer: AlgoTransferParams, algod: Algod
|
|
|
18
18
|
*
|
|
19
19
|
* https://developer.algorand.org/docs/get-details/accounts/#minimum-balance
|
|
20
20
|
*
|
|
21
|
-
* @param funding The funding configuration
|
|
22
|
-
* @param algod An
|
|
23
|
-
* @param kmd An optional
|
|
24
|
-
* @returns
|
|
21
|
+
* @param funding The funding configuration of type `EnsureFundedParams`, including the account to fund, minimum spending balance, and optional parameters. If you set `useDispenserApi` to true, you must also set `ALGOKIT_DISPENSER_ACCESS_TOKEN` in your environment variables.
|
|
22
|
+
* @param algod An instance of the Algodv2 client.
|
|
23
|
+
* @param kmd An optional instance of the Kmd client.
|
|
24
|
+
* @returns
|
|
25
|
+
* - `EnsureFundedReturnType` if funds were transferred.
|
|
26
|
+
* - `undefined` if no funds were needed.
|
|
25
27
|
*/
|
|
26
|
-
export declare function ensureFunded(funding:
|
|
28
|
+
export declare function ensureFunded<T extends EnsureFundedParams>(funding: T, algod: Algodv2, kmd?: Kmd): Promise<EnsureFundedReturnType | undefined>;
|
|
27
29
|
/**
|
|
28
30
|
* Transfer asset between two accounts.
|
|
29
31
|
* @param transfer The transfer definition
|
package/cjs/transfer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../src/transfer.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../src/transfer.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAM/C,OAAO,EAAE,qBAAqB,EAAmB,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AA+DtH;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAkBhH;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,CAAC,SAAS,kBAAkB,EAC7D,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,OAAO,EACd,GAAG,CAAC,EAAE,GAAG,GACR,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAkC7C;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAqBjH"}
|
package/cjs/transfer.js
CHANGED
|
@@ -6,7 +6,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.transferAsset = exports.ensureFunded = exports.transferAlgos = void 0;
|
|
7
7
|
const algosdk_1 = __importDefault(require("algosdk"));
|
|
8
8
|
const _1 = require("./");
|
|
9
|
+
const network_client_1 = require("./network-client");
|
|
9
10
|
const transaction_1 = require("./transaction");
|
|
11
|
+
const dispenser_client_1 = require("./types/dispenser-client");
|
|
12
|
+
const util_1 = require("./util");
|
|
13
|
+
async function fundUsingDispenserApi(dispenserClient, addressToFund, fundAmount) {
|
|
14
|
+
const response = await dispenserClient.fund(addressToFund, fundAmount);
|
|
15
|
+
return { transactionId: response.txId, amount: response.amount };
|
|
16
|
+
}
|
|
17
|
+
async function fundUsingTransfer({ algod, addressToFund, funding, fundAmount, transactionParams, sendParams, note, kmd, }) {
|
|
18
|
+
if (funding.fundingSource instanceof dispenser_client_1.TestNetDispenserApiClient) {
|
|
19
|
+
throw new Error('Dispenser API client is not supported in this context.');
|
|
20
|
+
}
|
|
21
|
+
const from = funding.fundingSource ?? (await (0, _1.getDispenserAccount)(algod, kmd));
|
|
22
|
+
const amount = (0, _1.microAlgos)(Math.max(fundAmount, funding.minFundingIncrement?.microAlgos ?? 0));
|
|
23
|
+
const response = await transferAlgos({
|
|
24
|
+
from,
|
|
25
|
+
to: addressToFund,
|
|
26
|
+
note: note ?? 'Funding account to meet minimum requirement',
|
|
27
|
+
amount: amount,
|
|
28
|
+
transactionParams: transactionParams,
|
|
29
|
+
...sendParams,
|
|
30
|
+
}, algod);
|
|
31
|
+
return {
|
|
32
|
+
transactionId: response.transaction.txID(),
|
|
33
|
+
amount: Number(response.transaction.amount),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
10
36
|
/**
|
|
11
37
|
* Transfer ALGOs between two accounts.
|
|
12
38
|
* @param transfer The transfer definition
|
|
@@ -40,10 +66,12 @@ exports.transferAlgos = transferAlgos;
|
|
|
40
66
|
*
|
|
41
67
|
* https://developer.algorand.org/docs/get-details/accounts/#minimum-balance
|
|
42
68
|
*
|
|
43
|
-
* @param funding The funding configuration
|
|
44
|
-
* @param algod An
|
|
45
|
-
* @param kmd An optional
|
|
46
|
-
* @returns
|
|
69
|
+
* @param funding The funding configuration of type `EnsureFundedParams`, including the account to fund, minimum spending balance, and optional parameters. If you set `useDispenserApi` to true, you must also set `ALGOKIT_DISPENSER_ACCESS_TOKEN` in your environment variables.
|
|
70
|
+
* @param algod An instance of the Algodv2 client.
|
|
71
|
+
* @param kmd An optional instance of the Kmd client.
|
|
72
|
+
* @returns
|
|
73
|
+
* - `EnsureFundedReturnType` if funds were transferred.
|
|
74
|
+
* - `undefined` if no funds were needed.
|
|
47
75
|
*/
|
|
48
76
|
async function ensureFunded(funding, algod, kmd) {
|
|
49
77
|
const { accountToFund, fundingSource, minSpendingBalance, minFundingIncrement, transactionParams, note, ...sendParams } = funding;
|
|
@@ -52,19 +80,23 @@ async function ensureFunded(funding, algod, kmd) {
|
|
|
52
80
|
const balance = Number(accountInfo.amount);
|
|
53
81
|
const minimumBalanceRequirement = (0, _1.microAlgos)(Number(accountInfo['min-balance']));
|
|
54
82
|
const currentSpendingBalance = (0, _1.microAlgos)(balance - minimumBalanceRequirement.microAlgos);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
83
|
+
const fundAmount = (0, util_1.calculateFundAmount)(minSpendingBalance.microAlgos, currentSpendingBalance.microAlgos, minFundingIncrement?.microAlgos ?? 0);
|
|
84
|
+
if (fundAmount !== null) {
|
|
85
|
+
if ((await (0, network_client_1.isTestNet)(algod)) && fundingSource instanceof dispenser_client_1.TestNetDispenserApiClient) {
|
|
86
|
+
return fundUsingDispenserApi(fundingSource, addressToFund, fundAmount);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return fundUsingTransfer({
|
|
90
|
+
algod,
|
|
91
|
+
addressToFund,
|
|
92
|
+
funding,
|
|
93
|
+
fundAmount,
|
|
94
|
+
transactionParams,
|
|
95
|
+
sendParams,
|
|
96
|
+
note,
|
|
97
|
+
kmd,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
68
100
|
}
|
|
69
101
|
return undefined;
|
|
70
102
|
}
|
package/cjs/transfer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/transfer.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA+C;AAC/C,yBAA4D;AAC5D,+CAA8G;
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/transfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export interface DispenserFundResponse {
|
|
2
|
+
txId: string;
|
|
3
|
+
amount: number;
|
|
4
|
+
}
|
|
5
|
+
export interface DispenserLimitResponse {
|
|
6
|
+
amount: number;
|
|
7
|
+
}
|
|
8
|
+
export interface TestNetDispenserApiClientParams {
|
|
9
|
+
authToken: string;
|
|
10
|
+
requestTimeout: number | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* `TestNetDispenserApiClient` is a class that provides methods to interact with the [Algorand TestNet Dispenser API](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md).
|
|
14
|
+
* It allows you to fund an address with Algos, refund a transaction, and get the funding limit for the Algo asset.
|
|
15
|
+
*
|
|
16
|
+
* The class requires an authentication token and a request timeout to be initialized. The authentication token can be provided
|
|
17
|
+
* either directly as a parameter or through an `ALGOKIT_DISPENSER_ACCESS_TOKEN` environment variable. If neither is provided, an error is thrown.
|
|
18
|
+
*
|
|
19
|
+
* The request timeout can be provided as a parameter. If not provided, a default value is used.
|
|
20
|
+
*
|
|
21
|
+
* @property {string} authToken - The authentication token used for API requests.
|
|
22
|
+
* @property {number} requestTimeout - The timeout for API requests, in seconds.
|
|
23
|
+
*
|
|
24
|
+
* @method fund - Sends a funding request to the dispenser API to fund the specified address with the given amount of Algo.
|
|
25
|
+
* @method refund - Sends a refund request to the dispenser API for the specified refundTxnId.
|
|
26
|
+
* @method limit - Sends a request to the dispenser API to get the funding limit for the Algo asset.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const client = new TestNetDispenserApiClient({ authToken: 'your_auth_token', requestTimeout: 30 });
|
|
31
|
+
* const fundResponse = await client.fund('your_address', 100);
|
|
32
|
+
* const limitResponse = await client.getLimit();
|
|
33
|
+
* await client.refund('your_transaction_id');
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @throws {Error} If neither the environment variable 'ALGOKIT_DISPENSER_ACCESS_TOKEN' nor the authToken parameter were provided.
|
|
37
|
+
*/
|
|
38
|
+
export declare class TestNetDispenserApiClient {
|
|
39
|
+
private _authToken;
|
|
40
|
+
private _requestTimeout;
|
|
41
|
+
constructor(params: TestNetDispenserApiClientParams | null);
|
|
42
|
+
get authToken(): string;
|
|
43
|
+
get requestTimeout(): number;
|
|
44
|
+
/**
|
|
45
|
+
* Processes a dispenser API request.
|
|
46
|
+
*
|
|
47
|
+
* @param authToken - The authentication token.
|
|
48
|
+
* @param urlSuffix - The URL suffix for the API request.
|
|
49
|
+
* @param body - The request body.
|
|
50
|
+
* @param method - The HTTP method.
|
|
51
|
+
*
|
|
52
|
+
* @returns The API response.
|
|
53
|
+
*/
|
|
54
|
+
private processDispenserRequest;
|
|
55
|
+
/**
|
|
56
|
+
* Sends a funding request to the dispenser API to fund the specified address with the given amount of Algo.
|
|
57
|
+
*
|
|
58
|
+
* @param address - The address to fund.
|
|
59
|
+
* @param amount - The amount of Algo to fund.
|
|
60
|
+
*
|
|
61
|
+
* @returns DispenserFundResponse: An object containing the transaction ID and funded amount.
|
|
62
|
+
*/
|
|
63
|
+
fund(address: string, amount: number): Promise<DispenserFundResponse>;
|
|
64
|
+
/**
|
|
65
|
+
* Sends a refund request to the dispenser API for the specified refundTxnId.
|
|
66
|
+
*
|
|
67
|
+
* @param refundTxnId - The transaction ID to refund.
|
|
68
|
+
*/
|
|
69
|
+
refund(refundTxnId: string): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Sends a request to the dispenser API to get the funding limit for the Algo asset.
|
|
72
|
+
*
|
|
73
|
+
* @returns DispenserLimitResponse: An object containing the funding limit amount.
|
|
74
|
+
*/
|
|
75
|
+
getLimit(): Promise<DispenserLimitResponse>;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=dispenser-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispenser-client.d.ts","sourceRoot":"","sources":["../../../src/types/dispenser-client.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,+BAA+B;IAC9C,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,eAAe,CAAQ;gBAEnB,MAAM,EAAE,+BAA+B,GAAG,IAAI;IAgB1D,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED;;;;;;;;;OASG;YACW,uBAAuB;IAuCrC;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAY3E;;;;OAIG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,sBAAsB,CAAC;CAWlD"}
|
|
@@ -0,0 +1,143 @@
|
|
|
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.TestNetDispenserApiClient = void 0;
|
|
7
|
+
const cross_fetch_1 = __importDefault(require("cross-fetch"));
|
|
8
|
+
const baseUrl = 'https://api.dispenser.algorandfoundation.tools';
|
|
9
|
+
const dispenserRequestTimeout = 15;
|
|
10
|
+
const dispenserAccessTokenKey = 'ALGOKIT_DISPENSER_ACCESS_TOKEN';
|
|
11
|
+
var DispenserAssetName;
|
|
12
|
+
(function (DispenserAssetName) {
|
|
13
|
+
DispenserAssetName[DispenserAssetName["Algo"] = 0] = "Algo";
|
|
14
|
+
})(DispenserAssetName || (DispenserAssetName = {}));
|
|
15
|
+
const dispenserAssets = {
|
|
16
|
+
[DispenserAssetName.Algo]: {
|
|
17
|
+
assetId: 0,
|
|
18
|
+
decimals: 6,
|
|
19
|
+
description: 'Algo',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* `TestNetDispenserApiClient` is a class that provides methods to interact with the [Algorand TestNet Dispenser API](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md).
|
|
24
|
+
* It allows you to fund an address with Algos, refund a transaction, and get the funding limit for the Algo asset.
|
|
25
|
+
*
|
|
26
|
+
* The class requires an authentication token and a request timeout to be initialized. The authentication token can be provided
|
|
27
|
+
* either directly as a parameter or through an `ALGOKIT_DISPENSER_ACCESS_TOKEN` environment variable. If neither is provided, an error is thrown.
|
|
28
|
+
*
|
|
29
|
+
* The request timeout can be provided as a parameter. If not provided, a default value is used.
|
|
30
|
+
*
|
|
31
|
+
* @property {string} authToken - The authentication token used for API requests.
|
|
32
|
+
* @property {number} requestTimeout - The timeout for API requests, in seconds.
|
|
33
|
+
*
|
|
34
|
+
* @method fund - Sends a funding request to the dispenser API to fund the specified address with the given amount of Algo.
|
|
35
|
+
* @method refund - Sends a refund request to the dispenser API for the specified refundTxnId.
|
|
36
|
+
* @method limit - Sends a request to the dispenser API to get the funding limit for the Algo asset.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* const client = new TestNetDispenserApiClient({ authToken: 'your_auth_token', requestTimeout: 30 });
|
|
41
|
+
* const fundResponse = await client.fund('your_address', 100);
|
|
42
|
+
* const limitResponse = await client.getLimit();
|
|
43
|
+
* await client.refund('your_transaction_id');
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @throws {Error} If neither the environment variable 'ALGOKIT_DISPENSER_ACCESS_TOKEN' nor the authToken parameter were provided.
|
|
47
|
+
*/
|
|
48
|
+
class TestNetDispenserApiClient {
|
|
49
|
+
_authToken;
|
|
50
|
+
_requestTimeout;
|
|
51
|
+
constructor(params) {
|
|
52
|
+
const authTokenFromEnv = process.env[dispenserAccessTokenKey];
|
|
53
|
+
if (params?.authToken) {
|
|
54
|
+
this._authToken = params.authToken;
|
|
55
|
+
}
|
|
56
|
+
else if (authTokenFromEnv) {
|
|
57
|
+
this._authToken = authTokenFromEnv;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
throw new Error(`Can't init AlgoKit TestNet Dispenser API client because neither environment variable ${dispenserAccessTokenKey} or the authToken were provided.`);
|
|
61
|
+
}
|
|
62
|
+
this._requestTimeout = params?.requestTimeout || dispenserRequestTimeout;
|
|
63
|
+
}
|
|
64
|
+
get authToken() {
|
|
65
|
+
return this._authToken;
|
|
66
|
+
}
|
|
67
|
+
get requestTimeout() {
|
|
68
|
+
return this._requestTimeout;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Processes a dispenser API request.
|
|
72
|
+
*
|
|
73
|
+
* @param authToken - The authentication token.
|
|
74
|
+
* @param urlSuffix - The URL suffix for the API request.
|
|
75
|
+
* @param body - The request body.
|
|
76
|
+
* @param method - The HTTP method.
|
|
77
|
+
*
|
|
78
|
+
* @returns The API response.
|
|
79
|
+
*/
|
|
80
|
+
async processDispenserRequest(authToken, urlSuffix, body = null, method = 'POST') {
|
|
81
|
+
const headers = { Authorization: `Bearer ${authToken}` };
|
|
82
|
+
const requestArgs = {
|
|
83
|
+
method: method,
|
|
84
|
+
headers: headers,
|
|
85
|
+
signal: AbortSignal.timeout(this.requestTimeout * 1000),
|
|
86
|
+
};
|
|
87
|
+
if (body) {
|
|
88
|
+
requestArgs.body = JSON.stringify(body);
|
|
89
|
+
}
|
|
90
|
+
const response = await (0, cross_fetch_1.default)(`${baseUrl}/${urlSuffix}`, requestArgs);
|
|
91
|
+
if (!response.ok) {
|
|
92
|
+
let error_message = `Error processing dispenser API request: ${response.status}`;
|
|
93
|
+
let error_response = null;
|
|
94
|
+
try {
|
|
95
|
+
error_response = await response.json();
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
// suppress exception
|
|
99
|
+
}
|
|
100
|
+
if (error_response && error_response.code) {
|
|
101
|
+
error_message = error_response.code;
|
|
102
|
+
}
|
|
103
|
+
else if (response.status === 400) {
|
|
104
|
+
error_message = (await response.json()).message;
|
|
105
|
+
}
|
|
106
|
+
throw new Error(error_message);
|
|
107
|
+
}
|
|
108
|
+
return response;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Sends a funding request to the dispenser API to fund the specified address with the given amount of Algo.
|
|
112
|
+
*
|
|
113
|
+
* @param address - The address to fund.
|
|
114
|
+
* @param amount - The amount of Algo to fund.
|
|
115
|
+
*
|
|
116
|
+
* @returns DispenserFundResponse: An object containing the transaction ID and funded amount.
|
|
117
|
+
*/
|
|
118
|
+
async fund(address, amount) {
|
|
119
|
+
const response = await this.processDispenserRequest(this.authToken, `fund/${dispenserAssets[DispenserAssetName.Algo].assetId}`, { receiver: address, amount: amount, assetID: dispenserAssets[DispenserAssetName.Algo].assetId }, 'POST');
|
|
120
|
+
const content = await response.json();
|
|
121
|
+
return { txId: content.txID, amount: content.amount };
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Sends a refund request to the dispenser API for the specified refundTxnId.
|
|
125
|
+
*
|
|
126
|
+
* @param refundTxnId - The transaction ID to refund.
|
|
127
|
+
*/
|
|
128
|
+
async refund(refundTxnId) {
|
|
129
|
+
await this.processDispenserRequest(this.authToken, 'refund', { refundTransactionID: refundTxnId }, 'POST');
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Sends a request to the dispenser API to get the funding limit for the Algo asset.
|
|
133
|
+
*
|
|
134
|
+
* @returns DispenserLimitResponse: An object containing the funding limit amount.
|
|
135
|
+
*/
|
|
136
|
+
async getLimit() {
|
|
137
|
+
const response = await this.processDispenserRequest(this.authToken, `fund/${dispenserAssets[DispenserAssetName.Algo].assetId}/limit`, null, 'GET');
|
|
138
|
+
const content = await response.json();
|
|
139
|
+
return { amount: content.amount };
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
exports.TestNetDispenserApiClient = TestNetDispenserApiClient;
|
|
143
|
+
//# sourceMappingURL=dispenser-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispenser-client.js","sourceRoot":"","sources":["../../../src/types/dispenser-client.ts"],"names":[],"mappings":"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"}
|
package/cjs/types/transfer.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SuggestedParams } from 'algosdk';
|
|
2
2
|
import { AlgoAmount } from './amount';
|
|
3
|
+
import { TestNetDispenserApiClient } from './dispenser-client';
|
|
3
4
|
import { SendTransactionFrom, SendTransactionParams, TransactionNote } from './transaction';
|
|
4
5
|
/** Parameters for `transferAlgos` call. */
|
|
5
6
|
export interface AlgoTransferParams extends SendTransactionParams {
|
|
@@ -19,7 +20,7 @@ export interface EnsureFundedParams extends SendTransactionParams {
|
|
|
19
20
|
/** The account to fund */
|
|
20
21
|
accountToFund: SendTransactionFrom | string;
|
|
21
22
|
/** The account to use as a funding source, will default to using the dispenser account returned by `algokit.getDispenserAccount` */
|
|
22
|
-
fundingSource?: SendTransactionFrom;
|
|
23
|
+
fundingSource?: SendTransactionFrom | TestNetDispenserApiClient;
|
|
23
24
|
/** The minimum balance of ALGOs that the account should have available to spend (i.e. on top of minimum balance requirement) */
|
|
24
25
|
minSpendingBalance: AlgoAmount;
|
|
25
26
|
/** When issuing a funding amount, the minimum amount to transfer (avoids many small transfers if this gets called often on an active account) */
|
|
@@ -46,4 +47,10 @@ export interface TransferAssetParams extends SendTransactionParams {
|
|
|
46
47
|
/** The (optional) transaction note */
|
|
47
48
|
note?: TransactionNote;
|
|
48
49
|
}
|
|
50
|
+
export interface EnsureFundedReturnType {
|
|
51
|
+
/** The transaction */
|
|
52
|
+
transactionId: string;
|
|
53
|
+
/** The response if the transaction was sent and waited for */
|
|
54
|
+
amount: number;
|
|
55
|
+
}
|
|
49
56
|
//# sourceMappingURL=transfer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../src/types/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE3F,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,2CAA2C;IAC3C,IAAI,EAAE,mBAAmB,CAAA;IACzB,gEAAgE;IAChE,EAAE,EAAE,mBAAmB,GAAG,MAAM,CAAA;IAChC,yBAAyB;IACzB,MAAM,EAAE,UAAU,CAAA;IAClB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,eAAe,CAAA;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,eAAe,CAAA;CACvB;AAED,0CAA0C;AAC1C,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,0BAA0B;IAC1B,aAAa,EAAE,mBAAmB,GAAG,MAAM,CAAA;IAC3C,oIAAoI;IACpI,aAAa,CAAC,EAAE,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../src/types/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE3F,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,2CAA2C;IAC3C,IAAI,EAAE,mBAAmB,CAAA;IACzB,gEAAgE;IAChE,EAAE,EAAE,mBAAmB,GAAG,MAAM,CAAA;IAChC,yBAAyB;IACzB,MAAM,EAAE,UAAU,CAAA;IAClB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,eAAe,CAAA;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,eAAe,CAAA;CACvB;AAED,0CAA0C;AAC1C,MAAM,WAAW,kBAAmB,SAAQ,qBAAqB;IAC/D,0BAA0B;IAC1B,aAAa,EAAE,mBAAmB,GAAG,MAAM,CAAA;IAC3C,oIAAoI;IACpI,aAAa,CAAC,EAAE,mBAAmB,GAAG,yBAAyB,CAAA;IAC/D,gIAAgI;IAChI,kBAAkB,EAAE,UAAU,CAAA;IAC9B,iJAAiJ;IACjJ,mBAAmB,CAAC,EAAE,UAAU,CAAA;IAChC,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,eAAe,CAAA;IACnC,8FAA8F;IAC9F,IAAI,CAAC,EAAE,eAAe,CAAA;CACvB;AAED,2CAA2C;AAC3C,MAAM,WAAW,mBAAoB,SAAQ,qBAAqB;IAChE,2CAA2C;IAC3C,IAAI,EAAE,mBAAmB,CAAA;IACzB,gEAAgE;IAChE,EAAE,EAAE,mBAAmB,GAAG,MAAM,CAAA;IAChC,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAA;IACf,8DAA8D;IAC9D,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,eAAe,CAAA;IACnC,2KAA2K;IAC3K,YAAY,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAA;IAC3C,sCAAsC;IACtC,IAAI,CAAC,EAAE,eAAe,CAAA;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,sBAAsB;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAA;CACf"}
|
package/cjs/util.d.ts
CHANGED
|
@@ -7,4 +7,12 @@
|
|
|
7
7
|
export declare const toNumber: (value: number | bigint) => number;
|
|
8
8
|
export declare class UnsafeConversionError extends Error {
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Calculates the amount of funds to add to a wallet to bring it up to the minimum spending balance.
|
|
12
|
+
* @param minSpendingBalance The minimum spending balance for the wallet
|
|
13
|
+
* @param currentSpendingBalance The current spending balance for the wallet
|
|
14
|
+
* @param minFundingIncrement The minimum amount of funds that can be added to the wallet
|
|
15
|
+
* @returns The amount of funds to add to the wallet or null if the wallet is already above the minimum spending balance
|
|
16
|
+
*/
|
|
17
|
+
export declare const calculateFundAmount: (minSpendingBalance: number, currentSpendingBalance: number, minFundingIncrement: number) => number | null;
|
|
10
18
|
//# sourceMappingURL=util.d.ts.map
|
package/cjs/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,UAAW,MAAM,GAAG,MAAM,WAa9C,CAAA;AAED,qBAAa,qBAAsB,SAAQ,KAAK;CAAG"}
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,UAAW,MAAM,GAAG,MAAM,WAa9C,CAAA;AAED,qBAAa,qBAAsB,SAAQ,KAAK;CAAG;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,uBACV,MAAM,0BACF,MAAM,uBACT,MAAM,KAC1B,MAAM,GAAG,IAOX,CAAA"}
|
package/cjs/util.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UnsafeConversionError = exports.toNumber = void 0;
|
|
3
|
+
exports.calculateFundAmount = exports.UnsafeConversionError = exports.toNumber = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Converts a value which might be a number or a bigint into a number to be used with apis that don't support bigint.
|
|
6
6
|
*
|
|
@@ -22,4 +22,21 @@ exports.toNumber = toNumber;
|
|
|
22
22
|
class UnsafeConversionError extends Error {
|
|
23
23
|
}
|
|
24
24
|
exports.UnsafeConversionError = UnsafeConversionError;
|
|
25
|
+
/**
|
|
26
|
+
* Calculates the amount of funds to add to a wallet to bring it up to the minimum spending balance.
|
|
27
|
+
* @param minSpendingBalance The minimum spending balance for the wallet
|
|
28
|
+
* @param currentSpendingBalance The current spending balance for the wallet
|
|
29
|
+
* @param minFundingIncrement The minimum amount of funds that can be added to the wallet
|
|
30
|
+
* @returns The amount of funds to add to the wallet or null if the wallet is already above the minimum spending balance
|
|
31
|
+
*/
|
|
32
|
+
const calculateFundAmount = (minSpendingBalance, currentSpendingBalance, minFundingIncrement) => {
|
|
33
|
+
if (minSpendingBalance > currentSpendingBalance) {
|
|
34
|
+
const minFundAmount = minSpendingBalance - currentSpendingBalance;
|
|
35
|
+
return Math.max(minFundAmount, minFundingIncrement);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
exports.calculateFundAmount = calculateFundAmount;
|
|
25
42
|
//# sourceMappingURL=util.js.map
|
package/cjs/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACI,MAAM,QAAQ,GAAG,CAAC,KAAsB,EAAE,EAAE;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;QAC3C,MAAM,IAAI,qBAAqB,CAC7B,kBAAkB,KAAK,sFAAsF,CAC9G,CAAA;KACF;SAAM,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;QAClD,MAAM,IAAI,qBAAqB,CAC7B,kBAAkB,KAAK,uFAAuF,CAC/G,CAAA;KACF;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC,CAAA;AAbY,QAAA,QAAQ,YAapB;AAED,MAAa,qBAAsB,SAAQ,KAAK;CAAG;AAAnD,sDAAmD"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACI,MAAM,QAAQ,GAAG,CAAC,KAAsB,EAAE,EAAE;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAE3C,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;QAC3C,MAAM,IAAI,qBAAqB,CAC7B,kBAAkB,KAAK,sFAAsF,CAC9G,CAAA;KACF;SAAM,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;QAClD,MAAM,IAAI,qBAAqB,CAC7B,kBAAkB,KAAK,uFAAuF,CAC/G,CAAA;KACF;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC,CAAA;AAbY,QAAA,QAAQ,YAapB;AAED,MAAa,qBAAsB,SAAQ,KAAK;CAAG;AAAnD,sDAAmD;AAEnD;;;;;;GAMG;AACI,MAAM,mBAAmB,GAAG,CACjC,kBAA0B,EAC1B,sBAA8B,EAC9B,mBAA2B,EACZ,EAAE;IACjB,IAAI,kBAAkB,GAAG,sBAAsB,EAAE;QAC/C,MAAM,aAAa,GAAG,kBAAkB,GAAG,sBAAsB,CAAA;QACjE,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAA;KACpD;SAAM;QACL,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA;AAXY,QAAA,mBAAmB,uBAW/B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TestNetDispenserApiClient } from './types/dispenser-client';
|
|
2
|
+
/**
|
|
3
|
+
* Create a new TestNetDispenserApiClient instance.
|
|
4
|
+
* Refer to [docs](https://github.com/algorandfoundation/algokit/blob/main/docs/testnet_api.md) on guidance to obtain an access token.
|
|
5
|
+
*
|
|
6
|
+
* @param params An object containing parameters for the TestNetDispenserApiClient class.
|
|
7
|
+
* Or null if you want the client to load the access token from the environment variable `ALGOKIT_DISPENSER_ACCESS_TOKEN`.
|
|
8
|
+
* @example
|
|
9
|
+
* const client = algokit.getTestNetDispenserApiClient(
|
|
10
|
+
* {
|
|
11
|
+
* authToken: 'your_auth_token',
|
|
12
|
+
* requestTimeout: 15,
|
|
13
|
+
* }
|
|
14
|
+
* )
|
|
15
|
+
*
|
|
16
|
+
* @returns An instance of the TestNetDispenserApiClient class.
|
|
17
|
+
*/
|
|
18
|
+
export function getTestNetDispenserApiClient(params = null) {
|
|
19
|
+
return new TestNetDispenserApiClient(params);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=dispenser-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispenser-client.js","sourceRoot":"","sources":["../../src/dispenser-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAmC,MAAM,0BAA0B,CAAA;AAErG;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,4BAA4B,CAAC,SAAiD,IAAI;IAChG,OAAO,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAA;AAC9C,CAAC"}
|