@allbridge/bridge-core-sdk 3.26.0-alpha.9 → 3.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +1 -6
- package/dist/browser/index.js.map +4 -4
- package/dist/cjs/index.js +1 -6
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/index.js +1 -6
- package/dist/esm/index.js.map +4 -4
- package/dist/src/chains/chain.enums.d.ts +3 -4
- package/dist/src/chains/chain.enums.js +2 -3
- package/dist/src/chains/chain.enums.js.map +1 -1
- package/dist/src/chains/index.js +6 -6
- package/dist/src/chains/index.js.map +1 -1
- package/dist/src/client/core-api/core-api-mapper.js +0 -1
- package/dist/src/client/core-api/core-api-mapper.js.map +1 -1
- package/dist/src/client/core-api/core-api.model.d.ts +0 -1
- package/dist/src/client/core-api/core-api.model.js.map +1 -1
- package/dist/src/services/bridge/index.js +0 -16
- package/dist/src/services/bridge/index.js.map +1 -1
- package/dist/src/services/bridge/models/bridge.model.d.ts +0 -1
- package/dist/src/services/bridge/models/bridge.model.js.map +1 -1
- package/dist/src/services/bridge/sui/index.js.map +1 -1
- package/dist/src/services/bridge/utils.d.ts +1 -3
- package/dist/src/services/bridge/utils.js +15 -72
- package/dist/src/services/bridge/utils.js.map +1 -1
- package/dist/src/services/liquidity-pool/index.js +0 -16
- package/dist/src/services/liquidity-pool/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/sui/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/trx/index.js.map +1 -1
- package/dist/src/services/models/index.d.ts +5 -6
- package/dist/src/services/models/index.js.map +1 -1
- package/dist/src/services/token/index.js +0 -16
- package/dist/src/services/token/index.js.map +1 -1
- package/dist/src/services/token/sui/index.js.map +1 -1
- package/dist/src/services/utils/trx/index.js.map +1 -1
- package/dist/src/services/yield/index.js +0 -4
- package/dist/src/services/yield/index.js.map +1 -1
- package/dist/src/tokens-info/tokens-info.model.d.ts +0 -4
- package/dist/src/tokens-info/tokens-info.model.js.map +1 -1
- package/dist/src/utils/index.d.ts +0 -3
- package/dist/src/utils/index.js +0 -3
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/package.json +2 -5
- package/dist/src/services/bridge/alg/index.d.ts +0 -15
- package/dist/src/services/bridge/alg/index.js +0 -151
- package/dist/src/services/bridge/alg/index.js.map +0 -1
- package/dist/src/services/liquidity-pool/alg/index.d.ts +0 -19
- package/dist/src/services/liquidity-pool/alg/index.js +0 -141
- package/dist/src/services/liquidity-pool/alg/index.js.map +0 -1
- package/dist/src/services/models/alg/BridgeClient.d.ts +0 -2718
- package/dist/src/services/models/alg/BridgeClient.js +0 -2633
- package/dist/src/services/models/alg/BridgeClient.js.map +0 -1
- package/dist/src/services/models/alg/PoolClient.d.ts +0 -2265
- package/dist/src/services/models/alg/PoolClient.js +0 -2176
- package/dist/src/services/models/alg/PoolClient.js.map +0 -1
- package/dist/src/services/token/alg/index.d.ts +0 -17
- package/dist/src/services/token/alg/index.js +0 -46
- package/dist/src/services/token/alg/index.js.map +0 -1
- package/dist/src/services/utils/alg/index.d.ts +0 -17
- package/dist/src/services/utils/alg/index.js +0 -81
- package/dist/src/services/utils/alg/index.js.map +0 -1
- package/dist/src/utils/alg/index.d.ts +0 -21
- package/dist/src/utils/alg/index.js +0 -76
- package/dist/src/utils/alg/index.js.map +0 -1
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { AlgorandClient } from "@algorandfoundation/algokit-utils";
|
|
2
|
-
import { ChainType } from "../../../chains/chain.enums";
|
|
3
|
-
import { AllbridgeCoreClient } from "../../../client/core-api/core-client-base";
|
|
4
|
-
import { GetNativeTokenBalanceParams } from "../../bridge/models";
|
|
5
|
-
import { RawTransaction, TransactionResponse } from "../../models";
|
|
6
|
-
import { ApproveParamsDto, ChainTokenService, GetAllowanceParamsDto, GetTokenBalanceParams } from "../models";
|
|
7
|
-
export declare class AlgTokenService extends ChainTokenService {
|
|
8
|
-
algorand: AlgorandClient;
|
|
9
|
-
api: AllbridgeCoreClient;
|
|
10
|
-
chainType: ChainType.SUI;
|
|
11
|
-
constructor(algorand: AlgorandClient, api: AllbridgeCoreClient);
|
|
12
|
-
approve(_params: ApproveParamsDto): Promise<TransactionResponse>;
|
|
13
|
-
buildRawTransactionApprove(_params: ApproveParamsDto): Promise<RawTransaction>;
|
|
14
|
-
getAllowance(_params: GetAllowanceParamsDto): Promise<string>;
|
|
15
|
-
getNativeTokenBalance(params: GetNativeTokenBalanceParams): Promise<string>;
|
|
16
|
-
getTokenBalance(params: GetTokenBalanceParams): Promise<string>;
|
|
17
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AlgTokenService = void 0;
|
|
4
|
-
const chain_enums_1 = require("../../../chains/chain.enums");
|
|
5
|
-
const exceptions_1 = require("../../../exceptions");
|
|
6
|
-
const models_1 = require("../models");
|
|
7
|
-
class AlgTokenService extends models_1.ChainTokenService {
|
|
8
|
-
algorand;
|
|
9
|
-
api;
|
|
10
|
-
chainType = chain_enums_1.ChainType.SUI;
|
|
11
|
-
constructor(algorand, api) {
|
|
12
|
-
super();
|
|
13
|
-
this.algorand = algorand;
|
|
14
|
-
this.api = api;
|
|
15
|
-
}
|
|
16
|
-
approve(_params) {
|
|
17
|
-
throw new exceptions_1.MethodNotSupportedError();
|
|
18
|
-
}
|
|
19
|
-
buildRawTransactionApprove(_params) {
|
|
20
|
-
throw new exceptions_1.MethodNotSupportedError();
|
|
21
|
-
}
|
|
22
|
-
getAllowance(_params) {
|
|
23
|
-
throw new exceptions_1.MethodNotSupportedError();
|
|
24
|
-
}
|
|
25
|
-
async getNativeTokenBalance(params) {
|
|
26
|
-
const { account } = params;
|
|
27
|
-
const info = await this.algorand.account.getInformation(account);
|
|
28
|
-
return info.balance.microAlgo.toString();
|
|
29
|
-
}
|
|
30
|
-
async getTokenBalance(params) {
|
|
31
|
-
const { account, token } = params;
|
|
32
|
-
try {
|
|
33
|
-
const info = await this.algorand.asset.getAccountInformation(account, BigInt(token.tokenAddress));
|
|
34
|
-
return info.balance.toString();
|
|
35
|
-
}
|
|
36
|
-
catch (e) {
|
|
37
|
-
if (e instanceof Error) {
|
|
38
|
-
e.message.includes("account asset info not found");
|
|
39
|
-
return "0";
|
|
40
|
-
}
|
|
41
|
-
throw e;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
exports.AlgTokenService = AlgTokenService;
|
|
46
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/token/alg/index.ts"],"names":[],"mappings":";;;AACA,6DAAwD;AAExD,oDAA8D;AAG9D,sCAA8G;AAE9G,MAAa,eAAgB,SAAQ,0BAAiB;IAI3C;IACA;IAJT,SAAS,GAAkB,uBAAS,CAAC,GAAG,CAAC;IAEzC,YACS,QAAwB,EACxB,GAAwB;QAE/B,KAAK,EAAE,CAAC;QAHD,aAAQ,GAAR,QAAQ,CAAgB;QACxB,QAAG,GAAH,GAAG,CAAqB;IAGjC,CAAC;IAED,OAAO,CAAC,OAAyB;QAC/B,MAAM,IAAI,oCAAuB,EAAE,CAAC;IACtC,CAAC;IAED,0BAA0B,CAAC,OAAyB;QAClD,MAAM,IAAI,oCAAuB,EAAE,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,OAA8B;QACzC,MAAM,IAAI,oCAAuB,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAmC;QAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YAClG,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;gBACvB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;gBACnD,OAAO,GAAG,CAAC;YACb,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;CACF;AAzCD,0CAyCC","sourcesContent":["import { AlgorandClient } from \"@algorandfoundation/algokit-utils\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { MethodNotSupportedError } from \"../../../exceptions\";\nimport { GetNativeTokenBalanceParams } from \"../../bridge/models\";\nimport { RawTransaction, TransactionResponse } from \"../../models\";\nimport { ApproveParamsDto, ChainTokenService, GetAllowanceParamsDto, GetTokenBalanceParams } from \"../models\";\n\nexport class AlgTokenService extends ChainTokenService {\n chainType: ChainType.SUI = ChainType.SUI;\n\n constructor(\n public algorand: AlgorandClient,\n public api: AllbridgeCoreClient\n ) {\n super();\n }\n\n approve(_params: ApproveParamsDto): Promise<TransactionResponse> {\n throw new MethodNotSupportedError();\n }\n\n buildRawTransactionApprove(_params: ApproveParamsDto): Promise<RawTransaction> {\n throw new MethodNotSupportedError();\n }\n\n getAllowance(_params: GetAllowanceParamsDto): Promise<string> {\n throw new MethodNotSupportedError();\n }\n\n async getNativeTokenBalance(params: GetNativeTokenBalanceParams): Promise<string> {\n const { account } = params;\n const info = await this.algorand.account.getInformation(account);\n return info.balance.microAlgo.toString();\n }\n\n async getTokenBalance(params: GetTokenBalanceParams): Promise<string> {\n const { account, token } = params;\n try {\n const info = await this.algorand.asset.getAccountInformation(account, BigInt(token.tokenAddress));\n return info.balance.toString();\n } catch (e) {\n if (e instanceof Error) {\n e.message.includes(\"account asset info not found\");\n return \"0\";\n }\n throw e;\n }\n }\n}\n"]}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { AlgorandClient } from "@algorandfoundation/algokit-utils";
|
|
2
|
-
import { AlgoAmount } from "@algorandfoundation/algokit-utils/types/amount";
|
|
3
|
-
import { TransactionComposer } from "@algorandfoundation/algokit-utils/types/composer";
|
|
4
|
-
import algosdk, { Address, Algodv2, Transaction } from "algosdk";
|
|
5
|
-
import { RawAlgTransaction } from "../../models";
|
|
6
|
-
export declare const mNoop: algosdk.ABIMethod;
|
|
7
|
-
export declare function addBudgetNoops(opts: {
|
|
8
|
-
composer: TransactionComposer;
|
|
9
|
-
appId: bigint;
|
|
10
|
-
sender: string | Address;
|
|
11
|
-
signer?: any;
|
|
12
|
-
count: number;
|
|
13
|
-
}): void;
|
|
14
|
-
export declare function feeForInner(innerCount: number): AlgoAmount;
|
|
15
|
-
export declare function populateAndEncodeTxs(txs: Transaction[], sender: Address, algod: Algodv2): Promise<RawAlgTransaction>;
|
|
16
|
-
export declare function encodeTxs(...txs: Transaction[]): RawAlgTransaction;
|
|
17
|
-
export declare function checkAppOptIn(appId: string | bigint, sender: string, algorand: AlgorandClient): Promise<boolean>;
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.mNoop = void 0;
|
|
27
|
-
exports.addBudgetNoops = addBudgetNoops;
|
|
28
|
-
exports.feeForInner = feeForInner;
|
|
29
|
-
exports.populateAndEncodeTxs = populateAndEncodeTxs;
|
|
30
|
-
exports.encodeTxs = encodeTxs;
|
|
31
|
-
exports.checkAppOptIn = checkAppOptIn;
|
|
32
|
-
const algokit_utils_1 = require("@algorandfoundation/algokit-utils");
|
|
33
|
-
const algosdk_1 = __importStar(require("algosdk"));
|
|
34
|
-
exports.mNoop = new algosdk_1.ABIMethod({
|
|
35
|
-
name: "noop",
|
|
36
|
-
args: [],
|
|
37
|
-
returns: { type: "void" },
|
|
38
|
-
});
|
|
39
|
-
function addBudgetNoops(opts) {
|
|
40
|
-
const { composer, appId, sender, signer, count } = opts;
|
|
41
|
-
for (let i = 0; i < count; i++) {
|
|
42
|
-
composer.addAppCallMethodCall({
|
|
43
|
-
appId,
|
|
44
|
-
method: exports.mNoop,
|
|
45
|
-
args: [],
|
|
46
|
-
sender,
|
|
47
|
-
signer,
|
|
48
|
-
note: `noop_${i}`,
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
function feeForInner(innerCount) {
|
|
53
|
-
return (innerCount * 1000).microAlgos(); // 1000 μAlgos per tx
|
|
54
|
-
}
|
|
55
|
-
async function populateAndEncodeTxs(txs, sender, algod) {
|
|
56
|
-
const atc = new algosdk_1.AtomicTransactionComposer();
|
|
57
|
-
const txnSigner = (0, algosdk_1.makeBasicAccountTransactionSigner)({ addr: sender, sk: new Uint8Array(64) });
|
|
58
|
-
txs.forEach((txn) => {
|
|
59
|
-
atc.addTransaction({ txn, signer: txnSigner });
|
|
60
|
-
});
|
|
61
|
-
const populatedAtc = await (0, algokit_utils_1.populateAppCallResources)(atc, algod);
|
|
62
|
-
const populatedTxs = populatedAtc.buildGroup().map((tx) => tx.txn);
|
|
63
|
-
return encodeTxs(...populatedTxs);
|
|
64
|
-
}
|
|
65
|
-
function encodeTxs(...txs) {
|
|
66
|
-
const blobs = txs.map((tx) => algosdk_1.default.encodeUnsignedTransaction(tx));
|
|
67
|
-
return blobs.map((b) => Buffer.from(b).toString("hex"));
|
|
68
|
-
}
|
|
69
|
-
async function checkAppOptIn(appId, sender, algorand) {
|
|
70
|
-
if (typeof appId === "string") {
|
|
71
|
-
appId = BigInt(appId);
|
|
72
|
-
}
|
|
73
|
-
const info = await algorand.account.getInformation(sender);
|
|
74
|
-
const localStates = info.appsLocalState;
|
|
75
|
-
if (localStates) {
|
|
76
|
-
const isOptedIn = localStates.find(({ id }) => id === appId);
|
|
77
|
-
return isOptedIn !== undefined;
|
|
78
|
-
}
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/utils/alg/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,wCAkBC;AAED,kCAEC;AAED,oDAaC;AAED,8BAGC;AAED,sCAeC;AA9ED,qEAA6F;AAG7F,mDAOiB;AAGJ,QAAA,KAAK,GAAG,IAAI,mBAAS,CAAC;IACjC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;CAC1B,CAAC,CAAC;AAEH,SAAgB,cAAc,CAAC,IAM9B;IACC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,QAAQ,CAAC,oBAAoB,CAAC;YAC5B,KAAK;YACL,MAAM,EAAE,aAAK;YACb,IAAI,EAAE,EAAE;YACR,MAAM;YACN,MAAM;YACN,IAAI,EAAE,QAAQ,CAAC,EAAE;SAClB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,UAAkB;IAC5C,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,qBAAqB;AAChE,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,GAAkB,EAClB,MAAe,EACf,KAAc;IAEd,MAAM,GAAG,GAAG,IAAI,mCAAyB,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAA,2CAAiC,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9F,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAClB,GAAG,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,MAAM,IAAA,wCAAwB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACnE,OAAO,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,SAAS,CAAC,GAAG,GAAkB;IAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,iBAAO,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1D,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,KAAsB,EACtB,MAAc,EACd,QAAwB;IAExB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;IACxC,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;QAC7D,OAAO,SAAS,KAAK,SAAS,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import { AlgorandClient, populateAppCallResources } from \"@algorandfoundation/algokit-utils\";\nimport { AlgoAmount } from \"@algorandfoundation/algokit-utils/types/amount\";\nimport { TransactionComposer } from \"@algorandfoundation/algokit-utils/types/composer\";\nimport algosdk, {\n ABIMethod,\n Address,\n Algodv2,\n AtomicTransactionComposer,\n makeBasicAccountTransactionSigner,\n Transaction,\n} from \"algosdk\";\nimport { RawAlgTransaction } from \"../../models\";\n\nexport const mNoop = new ABIMethod({\n name: \"noop\",\n args: [],\n returns: { type: \"void\" },\n});\n\nexport function addBudgetNoops(opts: {\n composer: TransactionComposer;\n appId: bigint;\n sender: string | Address;\n signer?: any;\n count: number;\n}) {\n const { composer, appId, sender, signer, count } = opts;\n for (let i = 0; i < count; i++) {\n composer.addAppCallMethodCall({\n appId,\n method: mNoop,\n args: [],\n sender,\n signer,\n note: `noop_${i}`,\n });\n }\n}\n\nexport function feeForInner(innerCount: number): AlgoAmount {\n return (innerCount * 1000).microAlgos(); // 1000 μAlgos per tx\n}\n\nexport async function populateAndEncodeTxs(\n txs: Transaction[],\n sender: Address,\n algod: Algodv2\n): Promise<RawAlgTransaction> {\n const atc = new AtomicTransactionComposer();\n const txnSigner = makeBasicAccountTransactionSigner({ addr: sender, sk: new Uint8Array(64) });\n txs.forEach((txn) => {\n atc.addTransaction({ txn, signer: txnSigner });\n });\n const populatedAtc = await populateAppCallResources(atc, algod);\n const populatedTxs = populatedAtc.buildGroup().map((tx) => tx.txn);\n return encodeTxs(...populatedTxs);\n}\n\nexport function encodeTxs(...txs: Transaction[]): RawAlgTransaction {\n const blobs = txs.map((tx) => algosdk.encodeUnsignedTransaction(tx));\n return blobs.map((b) => Buffer.from(b).toString(\"hex\"));\n}\n\nexport async function checkAppOptIn(\n appId: string | bigint,\n sender: string,\n algorand: AlgorandClient\n): Promise<boolean> {\n if (typeof appId === \"string\") {\n appId = BigInt(appId);\n }\n const info = await algorand.account.getInformation(sender);\n const localStates = info.appsLocalState;\n if (localStates) {\n const isOptedIn = localStates.find(({ id }) => id === appId);\n return isOptedIn !== undefined;\n }\n return false;\n}\n"]}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Algodv2 } from "algosdk";
|
|
2
|
-
import { RawAlgTransaction } from "../../index";
|
|
3
|
-
import { NodeRpcUrlsConfig } from "../../services";
|
|
4
|
-
/**
|
|
5
|
-
* Contains usefully Alg methods
|
|
6
|
-
*/
|
|
7
|
-
export interface AlgUtils {
|
|
8
|
-
checkAssetOptIn(assetId: string | bigint, sender: string, client?: Algodv2): Promise<boolean>;
|
|
9
|
-
checkAppOptIn(appId: string | bigint, sender: string, client?: Algodv2): Promise<boolean>;
|
|
10
|
-
buildRawTransactionAssetOptIn(assetId: string | bigint, sender: string, client?: Algodv2): Promise<RawAlgTransaction>;
|
|
11
|
-
buildRawTransactionAppOptIn(appId: string | bigint, sender: string, client?: Algodv2): Promise<RawAlgTransaction>;
|
|
12
|
-
}
|
|
13
|
-
export declare class DefaultAlgUtils implements AlgUtils {
|
|
14
|
-
readonly nodeRpcUrlsConfig: NodeRpcUrlsConfig;
|
|
15
|
-
constructor(nodeRpcUrlsConfig: NodeRpcUrlsConfig);
|
|
16
|
-
checkAssetOptIn(assetId: string | bigint, sender: string, client?: Algodv2): Promise<boolean>;
|
|
17
|
-
buildRawTransactionAssetOptIn(assetId: string | bigint, sender: string, client?: Algodv2): Promise<RawAlgTransaction>;
|
|
18
|
-
checkAppOptIn(appId: string | bigint, sender: string, client?: Algodv2): Promise<boolean>;
|
|
19
|
-
buildRawTransactionAppOptIn(appId: string | bigint, sender: string, client?: Algodv2): Promise<RawAlgTransaction>;
|
|
20
|
-
private getAlgorand;
|
|
21
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DefaultAlgUtils = void 0;
|
|
4
|
-
const algokit_utils_1 = require("@algorandfoundation/algokit-utils");
|
|
5
|
-
const algosdk_1 = require("algosdk");
|
|
6
|
-
const index_1 = require("../../index");
|
|
7
|
-
const alg_1 = require("../../services/utils/alg");
|
|
8
|
-
class DefaultAlgUtils {
|
|
9
|
-
nodeRpcUrlsConfig;
|
|
10
|
-
constructor(nodeRpcUrlsConfig) {
|
|
11
|
-
this.nodeRpcUrlsConfig = nodeRpcUrlsConfig;
|
|
12
|
-
}
|
|
13
|
-
async checkAssetOptIn(assetId, sender, client) {
|
|
14
|
-
const algorand = this.getAlgorand(client);
|
|
15
|
-
if (typeof assetId === "string") {
|
|
16
|
-
assetId = BigInt(assetId);
|
|
17
|
-
}
|
|
18
|
-
const info = await algorand.account.getInformation(sender);
|
|
19
|
-
const assets = info.assets;
|
|
20
|
-
if (assets) {
|
|
21
|
-
const isOptedIn = assets.find(({ assetId: id }) => id === assetId);
|
|
22
|
-
return isOptedIn !== undefined;
|
|
23
|
-
}
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
async buildRawTransactionAssetOptIn(assetId, sender, client) {
|
|
27
|
-
const algorand = this.getAlgorand(client);
|
|
28
|
-
if (typeof assetId === "string") {
|
|
29
|
-
assetId = BigInt(assetId);
|
|
30
|
-
}
|
|
31
|
-
const tx = await algorand.createTransaction.assetOptIn({ assetId: assetId, sender: sender });
|
|
32
|
-
return (0, alg_1.encodeTxs)(tx);
|
|
33
|
-
}
|
|
34
|
-
async checkAppOptIn(appId, sender, client) {
|
|
35
|
-
const algorand = this.getAlgorand(client);
|
|
36
|
-
return (0, alg_1.checkAppOptIn)(appId, sender, algorand);
|
|
37
|
-
}
|
|
38
|
-
async buildRawTransactionAppOptIn(appId, sender, client) {
|
|
39
|
-
const algorand = this.getAlgorand(client);
|
|
40
|
-
if (typeof appId === "string") {
|
|
41
|
-
appId = BigInt(appId);
|
|
42
|
-
}
|
|
43
|
-
const composer = algorand.newGroup();
|
|
44
|
-
const signer = algorand.account.random();
|
|
45
|
-
composer.addAppCallMethodCall({
|
|
46
|
-
appId,
|
|
47
|
-
method: new algosdk_1.ABIMethod({
|
|
48
|
-
name: "optInToApplication",
|
|
49
|
-
desc: undefined,
|
|
50
|
-
args: [],
|
|
51
|
-
returns: { type: "void", desc: undefined },
|
|
52
|
-
events: [],
|
|
53
|
-
readonly: false,
|
|
54
|
-
}),
|
|
55
|
-
args: [],
|
|
56
|
-
sender,
|
|
57
|
-
signer: signer,
|
|
58
|
-
onComplete: algosdk_1.OnApplicationComplete.OptInOC,
|
|
59
|
-
});
|
|
60
|
-
const { transactions } = await composer.buildTransactions();
|
|
61
|
-
return (0, alg_1.encodeTxs)(...transactions);
|
|
62
|
-
}
|
|
63
|
-
getAlgorand(client) {
|
|
64
|
-
if (client) {
|
|
65
|
-
return algokit_utils_1.AlgorandClient.fromClients({ algod: client });
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
const nodeRpcUrl = this.nodeRpcUrlsConfig.getNodeRpcUrl(index_1.ChainSymbol.ALG);
|
|
69
|
-
return algokit_utils_1.AlgorandClient.fromConfig({
|
|
70
|
-
algodConfig: { server: nodeRpcUrl },
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
exports.DefaultAlgUtils = DefaultAlgUtils;
|
|
76
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/alg/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { AlgorandClient } from \"@algorandfoundation/algokit-utils\";\nimport { ABIMethod, Algodv2, OnApplicationComplete } from \"algosdk\";\nimport { ChainSymbol, RawAlgTransaction } from \"../../index\";\nimport { NodeRpcUrlsConfig } from \"../../services\";\nimport { checkAppOptIn, encodeTxs } from \"../../services/utils/alg\";\n\n/**\n * Contains usefully Alg methods\n */\nexport interface AlgUtils {\n checkAssetOptIn(assetId: string | bigint, sender: string, client?: Algodv2): Promise<boolean>;\n checkAppOptIn(appId: string | bigint, sender: string, client?: Algodv2): Promise<boolean>;\n buildRawTransactionAssetOptIn(assetId: string | bigint, sender: string, client?: Algodv2): Promise<RawAlgTransaction>;\n buildRawTransactionAppOptIn(appId: string | bigint, sender: string, client?: Algodv2): Promise<RawAlgTransaction>;\n}\n\nexport class DefaultAlgUtils implements AlgUtils {\n constructor(readonly nodeRpcUrlsConfig: NodeRpcUrlsConfig) {}\n\n async checkAssetOptIn(assetId: string | bigint, sender: string, client?: Algodv2): Promise<boolean> {\n const algorand = this.getAlgorand(client);\n if (typeof assetId === \"string\") {\n assetId = BigInt(assetId);\n }\n const info = await algorand.account.getInformation(sender);\n const assets = info.assets;\n if (assets) {\n const isOptedIn = assets.find(({ assetId: id }) => id === assetId);\n return isOptedIn !== undefined;\n }\n return false;\n }\n\n async buildRawTransactionAssetOptIn(\n assetId: string | bigint,\n sender: string,\n client?: Algodv2\n ): Promise<RawAlgTransaction> {\n const algorand = this.getAlgorand(client);\n if (typeof assetId === \"string\") {\n assetId = BigInt(assetId);\n }\n const tx = await algorand.createTransaction.assetOptIn({ assetId: assetId, sender: sender });\n return encodeTxs(tx);\n }\n\n async checkAppOptIn(appId: string | bigint, sender: string, client?: Algodv2): Promise<boolean> {\n const algorand = this.getAlgorand(client);\n return checkAppOptIn(appId, sender, algorand);\n }\n\n async buildRawTransactionAppOptIn(\n appId: string | bigint,\n sender: string,\n client?: Algodv2\n ): Promise<RawAlgTransaction> {\n const algorand = this.getAlgorand(client);\n if (typeof appId === \"string\") {\n appId = BigInt(appId);\n }\n\n const composer = algorand.newGroup();\n const signer = algorand.account.random();\n composer.addAppCallMethodCall({\n appId,\n method: new ABIMethod({\n name: \"optInToApplication\",\n desc: undefined,\n args: [],\n returns: { type: \"void\", desc: undefined },\n events: [],\n readonly: false,\n }),\n args: [],\n sender,\n signer: signer,\n onComplete: OnApplicationComplete.OptInOC,\n });\n const { transactions } = await composer.buildTransactions();\n return encodeTxs(...transactions);\n }\n\n private getAlgorand(client?: Algodv2): AlgorandClient {\n if (client) {\n return AlgorandClient.fromClients({ algod: client });\n } else {\n const nodeRpcUrl = this.nodeRpcUrlsConfig.getNodeRpcUrl(ChainSymbol.ALG);\n return AlgorandClient.fromConfig({\n algodConfig: { server: nodeRpcUrl },\n });\n }\n }\n}\n"]}
|