@allbridge/bridge-core-sdk 3.26.0 → 3.27.0-alpha.10
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 +6 -1
- package/dist/browser/index.js.map +4 -4
- package/dist/cjs/index.js +6 -1
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/index.js +6 -1
- package/dist/esm/index.js.map +4 -4
- package/dist/src/chains/chain.enums.d.ts +12 -2
- package/dist/src/chains/chain.enums.js +10 -0
- package/dist/src/chains/chain.enums.js.map +1 -1
- package/dist/src/chains/index.js +12 -0
- package/dist/src/chains/index.js.map +1 -1
- package/dist/src/client/core-api/core-api-mapper.js +2 -0
- package/dist/src/client/core-api/core-api-mapper.js.map +1 -1
- package/dist/src/client/core-api/core-api.model.d.ts +2 -0
- package/dist/src/client/core-api/core-api.model.js.map +1 -1
- package/dist/src/configs/mainnet.js +1 -0
- package/dist/src/configs/mainnet.js.map +1 -1
- package/dist/src/index.d.ts +6 -4
- package/dist/src/index.js +5 -11
- package/dist/src/index.js.map +1 -1
- package/dist/src/services/bridge/alg/index.d.ts +16 -0
- package/dist/src/services/bridge/alg/index.js +181 -0
- package/dist/src/services/bridge/alg/index.js.map +1 -0
- package/dist/src/services/bridge/index.js +21 -0
- package/dist/src/services/bridge/index.js.map +1 -1
- package/dist/src/services/bridge/models/bridge.model.d.ts +2 -0
- package/dist/src/services/bridge/models/bridge.model.js.map +1 -1
- package/dist/src/services/bridge/stx/index.d.ts +16 -0
- package/dist/src/services/bridge/stx/index.js +127 -0
- package/dist/src/services/bridge/stx/index.js.map +1 -0
- package/dist/src/services/bridge/sui/index.js.map +1 -1
- package/dist/src/services/bridge/utils.d.ts +5 -1
- package/dist/src/services/bridge/utils.js +95 -15
- package/dist/src/services/bridge/utils.js.map +1 -1
- package/dist/src/services/liquidity-pool/alg/index.d.ts +19 -0
- package/dist/src/services/liquidity-pool/alg/index.js +134 -0
- package/dist/src/services/liquidity-pool/alg/index.js.map +1 -0
- package/dist/src/services/liquidity-pool/index.js +21 -0
- package/dist/src/services/liquidity-pool/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/stx/index.d.ts +21 -0
- package/dist/src/services/liquidity-pool/stx/index.js +141 -0
- package/dist/src/services/liquidity-pool/stx/index.js.map +1 -0
- 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/alg/BridgeClient.d.ts +2743 -0
- package/dist/src/services/models/alg/BridgeClient.js +2685 -0
- package/dist/src/services/models/alg/BridgeClient.js.map +1 -0
- package/dist/src/services/models/alg/PaddingUtilClient.d.ts +639 -0
- package/dist/src/services/models/alg/PaddingUtilClient.js +425 -0
- package/dist/src/services/models/alg/PaddingUtilClient.js.map +1 -0
- package/dist/src/services/models/alg/PoolClient.d.ts +2268 -0
- package/dist/src/services/models/alg/PoolClient.js +2195 -0
- package/dist/src/services/models/alg/PoolClient.js.map +1 -0
- package/dist/src/services/models/index.d.ts +7 -5
- package/dist/src/services/models/index.js.map +1 -1
- package/dist/src/services/models/stx/clarigen-types.d.ts +657 -0
- package/dist/src/services/models/stx/clarigen-types.js +2296 -0
- package/dist/src/services/models/stx/clarigen-types.js.map +1 -0
- package/dist/src/services/token/alg/index.d.ts +17 -0
- package/dist/src/services/token/alg/index.js +46 -0
- package/dist/src/services/token/alg/index.js.map +1 -0
- package/dist/src/services/token/index.js +21 -0
- package/dist/src/services/token/index.js.map +1 -1
- package/dist/src/services/token/stx/index.d.ts +20 -0
- package/dist/src/services/token/stx/index.js +59 -0
- package/dist/src/services/token/stx/index.js.map +1 -0
- package/dist/src/services/token/sui/index.js.map +1 -1
- package/dist/src/services/utils/alg/index.d.ts +9 -0
- package/dist/src/services/utils/alg/index.js +74 -0
- package/dist/src/services/utils/alg/index.js.map +1 -0
- package/dist/src/services/utils/stx/get-token-name.d.ts +2 -0
- package/dist/src/services/utils/stx/get-token-name.js +15 -0
- package/dist/src/services/utils/stx/get-token-name.js.map +1 -0
- package/dist/src/services/utils/stx/post-conditions.d.ts +3 -0
- package/dist/src/services/utils/stx/post-conditions.js +27 -0
- package/dist/src/services/utils/stx/post-conditions.js.map +1 -0
- package/dist/src/services/utils/trx/index.js.map +1 -1
- package/dist/src/services/yield/index.js +8 -0
- package/dist/src/services/yield/index.js.map +1 -1
- package/dist/src/tokens-info/tokens-info.model.d.ts +8 -0
- package/dist/src/tokens-info/tokens-info.model.js.map +1 -1
- package/dist/src/utils/alg/index.d.ts +21 -0
- package/dist/src/utils/alg/index.js +67 -0
- package/dist/src/utils/alg/index.js.map +1 -0
- package/dist/src/utils/index.d.ts +3 -0
- package/dist/src/utils/index.js +3 -0
- 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 +9 -2
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StxTokenService = void 0;
|
|
4
|
+
const core_1 = require("@clarigen/core");
|
|
5
|
+
const network_1 = require("@stacks/network");
|
|
6
|
+
const chain_enums_1 = require("../../../chains/chain.enums");
|
|
7
|
+
const exceptions_1 = require("../../../exceptions");
|
|
8
|
+
const clarigen_types_1 = require("../../models/stx/clarigen-types");
|
|
9
|
+
const models_1 = require("../models");
|
|
10
|
+
class StxTokenService extends models_1.ChainTokenService {
|
|
11
|
+
nodeRpcUrl;
|
|
12
|
+
params;
|
|
13
|
+
api;
|
|
14
|
+
chainType = chain_enums_1.ChainType.STX;
|
|
15
|
+
client;
|
|
16
|
+
constructor(nodeRpcUrl, params, api) {
|
|
17
|
+
super();
|
|
18
|
+
this.nodeRpcUrl = nodeRpcUrl;
|
|
19
|
+
this.params = params;
|
|
20
|
+
this.api = api;
|
|
21
|
+
const network = (0, network_1.createNetwork)({
|
|
22
|
+
network: this.params.stxIsTestnet ? "testnet" : "mainnet",
|
|
23
|
+
client: { baseUrl: this.nodeRpcUrl },
|
|
24
|
+
apiKey: this.params.stxHeroApiKey,
|
|
25
|
+
});
|
|
26
|
+
this.client = new core_1.ClarigenClient(network, this.params.stxHeroApiKey);
|
|
27
|
+
}
|
|
28
|
+
async getTokenBalance(params) {
|
|
29
|
+
const token = (0, core_1.contractFactory)(clarigen_types_1.stacksContracts.ftToken, params.token.tokenAddress);
|
|
30
|
+
const response = await this.client.roOk(token.getBalance({ owner: params.account }));
|
|
31
|
+
return response.toString();
|
|
32
|
+
}
|
|
33
|
+
async getNativeTokenBalance(params) {
|
|
34
|
+
const url = `${this.nodeRpcUrl}/extended/v1/address/${params.account}/stx`;
|
|
35
|
+
const res = await fetch(url, {
|
|
36
|
+
headers: this.params.stxHeroApiKey ? { "x-api-key": this.params.stxHeroApiKey } : undefined,
|
|
37
|
+
});
|
|
38
|
+
if (!res.ok) {
|
|
39
|
+
throw new Error(`Failed to fetch account: ${res.status}`);
|
|
40
|
+
}
|
|
41
|
+
const data = (await res.json());
|
|
42
|
+
const balance = data.balance;
|
|
43
|
+
return BigInt(balance).toString();
|
|
44
|
+
}
|
|
45
|
+
getAllowance(_params) {
|
|
46
|
+
throw new exceptions_1.MethodNotSupportedError();
|
|
47
|
+
}
|
|
48
|
+
checkAllowance(_params) {
|
|
49
|
+
throw new exceptions_1.MethodNotSupportedError();
|
|
50
|
+
}
|
|
51
|
+
approve(_params) {
|
|
52
|
+
throw new exceptions_1.MethodNotSupportedError();
|
|
53
|
+
}
|
|
54
|
+
buildRawTransactionApprove(_params) {
|
|
55
|
+
throw new exceptions_1.MethodNotSupportedError();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.StxTokenService = StxTokenService;
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/token/stx/index.ts"],"names":[],"mappings":";;;AAAA,yCAAiE;AACjE,6CAAgD;AAChD,6DAAwD;AAExD,oDAA8D;AAI9D,oEAA+E;AAC/E,sCAMmB;AAEnB,MAAa,eAAgB,SAAQ,0BAAiB;IAM3C;IACA;IACA;IAPT,SAAS,GAAkB,uBAAS,CAAC,GAAG,CAAC;IAEjC,MAAM,CAAiB;IAE/B,YACS,UAAkB,EAClB,MAA+B,EAC/B,GAAwB;QAE/B,KAAK,EAAE,CAAC;QAJD,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAAyB;QAC/B,QAAG,GAAH,GAAG,CAAqB;QAG/B,MAAM,OAAO,GAAG,IAAA,uBAAa,EAAC;YAC5B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACzD,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,qBAAc,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,MAAM,KAAK,GAAG,IAAA,sBAAe,EAAC,gCAAS,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrF,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAmC;QAC7D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,wBAAwB,MAAM,CAAC,OAAO,MAAM,CAAC;QAE3E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS;SAC5F,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAwB,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,OAA8B;QACzC,MAAM,IAAI,oCAAuB,EAAE,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,OAAgC;QAC7C,MAAM,IAAI,oCAAuB,EAAE,CAAC;IACtC,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;CACF;AAvDD,0CAuDC","sourcesContent":["import { ClarigenClient, contractFactory } from \"@clarigen/core\";\nimport { createNetwork } from \"@stacks/network\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { MethodNotSupportedError } from \"../../../exceptions\";\nimport { AllbridgeCoreSdkOptions } from \"../../../index\";\nimport { GetNativeTokenBalanceParams } from \"../../bridge/models\";\nimport { RawTransaction, TransactionResponse } from \"../../models\";\nimport { stacksContracts as contracts } from \"../../models/stx/clarigen-types\";\nimport {\n ApproveParamsDto,\n ChainTokenService,\n CheckAllowanceParamsDto,\n GetAllowanceParamsDto,\n GetTokenBalanceParams,\n} from \"../models\";\n\nexport class StxTokenService extends ChainTokenService {\n chainType: ChainType.STX = ChainType.STX;\n\n private client: ClarigenClient;\n\n constructor(\n public nodeRpcUrl: string,\n public params: AllbridgeCoreSdkOptions,\n public api: AllbridgeCoreClient\n ) {\n super();\n const network = createNetwork({\n network: this.params.stxIsTestnet ? \"testnet\" : \"mainnet\",\n client: { baseUrl: this.nodeRpcUrl },\n apiKey: this.params.stxHeroApiKey,\n });\n this.client = new ClarigenClient(network, this.params.stxHeroApiKey);\n }\n\n async getTokenBalance(params: GetTokenBalanceParams): Promise<string> {\n const token = contractFactory(contracts.ftToken, params.token.tokenAddress);\n\n const response = await this.client.roOk(token.getBalance({ owner: params.account }));\n return response.toString();\n }\n\n async getNativeTokenBalance(params: GetNativeTokenBalanceParams): Promise<string> {\n const url = `${this.nodeRpcUrl}/extended/v1/address/${params.account}/stx`;\n\n const res = await fetch(url, {\n headers: this.params.stxHeroApiKey ? { \"x-api-key\": this.params.stxHeroApiKey } : undefined,\n });\n if (!res.ok) {\n throw new Error(`Failed to fetch account: ${res.status}`);\n }\n const data = (await res.json()) as { balance: string };\n const balance = data.balance;\n return BigInt(balance).toString();\n }\n\n getAllowance(_params: GetAllowanceParamsDto): Promise<string> {\n throw new MethodNotSupportedError();\n }\n\n checkAllowance(_params: CheckAllowanceParamsDto): Promise<boolean> {\n throw new MethodNotSupportedError();\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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/token/sui/index.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,+
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/token/sui/index.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,+CAA2D;AAC3D,6DAAwD;AAExD,oDAAwE;AAGxE,yDAAmE;AACnE,sCAA8G;AAE9G,MAAa,eAAgB,SAAQ,0BAAiB;IAK3C;IACA;IALT,SAAS,GAAkB,uBAAS,CAAC,GAAG,CAAC;IACjC,SAAS,CAAY;IAE7B,YACS,SAAiB,EACjB,GAAwB;QAE/B,KAAK,EAAE,CAAC;QAHD,cAAS,GAAT,SAAS,CAAQ;QACjB,QAAG,GAAH,GAAG,CAAqB;QAG/B,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAS,CAAC;YAC7B,GAAG,EAAE,IAAI,CAAC,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,MAAwB;QAC9B,MAAM,IAAI,oCAAuB,EAAE,CAAC;IACtC,CAAC;IAED,0BAA0B,CAAC,MAAwB;QACjD,MAAM,IAAI,oCAAuB,EAAE,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,MAA6B;QACxC,MAAM,IAAI,oCAAuB,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACrC,MAAM,IAAI,qBAAQ,CAAC,6CAA6C,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;YAC9C,KAAK,EAAE,MAAM,CAAC,OAAO;YACrB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,kBAAkB;SAC1C,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,YAAY,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAmC;QAC7D,MAAM,SAAS,GAAiB,MAAM,IAAA,kCAAsB,EAAC,CAAC,MAAiC,EAAE,EAAE,CACjG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACtB,KAAK,EAAE,MAAM,CAAC,OAAO;YACrB,MAAM;SACP,CAAC,CACH,CAAC;QACF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrG,CAAC;CACF;AAjDD,0CAiDC","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { CoinStruct, SuiClient } from \"@mysten/sui/client\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { MethodNotSupportedError, SdkError } from \"../../../exceptions\";\nimport { GetNativeTokenBalanceParams } from \"../../bridge/models\";\nimport { RawTransaction, TransactionResponse } from \"../../models\";\nimport { fetchAllPagesRecursive } from \"../../utils/sui/paginated\";\nimport { ApproveParamsDto, ChainTokenService, GetAllowanceParamsDto, GetTokenBalanceParams } from \"../models\";\n\nexport class SuiTokenService extends ChainTokenService {\n chainType: ChainType.SUI = ChainType.SUI;\n private suiClient: SuiClient;\n\n constructor(\n public suiRpcUrl: string,\n public api: AllbridgeCoreClient\n ) {\n super();\n this.suiClient = new SuiClient({\n url: this.suiRpcUrl,\n });\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 getTokenBalance(params: GetTokenBalanceParams): Promise<string> {\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const balance = await this.suiClient.getBalance({\n owner: params.account,\n coinType: params.token.originTokenAddress,\n });\n return balance.totalBalance;\n }\n\n async getNativeTokenBalance(params: GetNativeTokenBalanceParams): Promise<string> {\n const coinsData: CoinStruct[] = await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.suiClient.getCoins({\n owner: params.account,\n cursor,\n })\n );\n if (coinsData.length === 0) {\n return \"0\";\n }\n return coinsData.reduce((total, element) => total + BigInt(element.balance), BigInt(0)).toString();\n }\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AlgorandClient } from "@algorandfoundation/algokit-utils";
|
|
2
|
+
import { AlgoAmount } from "@algorandfoundation/algokit-utils/types/amount";
|
|
3
|
+
import { Address, Algodv2, Transaction } from "algosdk";
|
|
4
|
+
import { RawAlgTransaction } from "../../models";
|
|
5
|
+
export declare function feeForInner(innerCount: number): AlgoAmount;
|
|
6
|
+
export declare function populateAndEncodeTxs(txs: Transaction[], sender: Address, algod: Algodv2): Promise<RawAlgTransaction>;
|
|
7
|
+
export declare function encodeTxs(...txs: Transaction[]): RawAlgTransaction;
|
|
8
|
+
export declare function checkAssetOptIn(assetId: string | bigint, sender: string, algorand: AlgorandClient): Promise<boolean>;
|
|
9
|
+
export declare function checkAppOptIn(appId: string | bigint, sender: string, algorand: AlgorandClient): Promise<boolean>;
|
|
@@ -0,0 +1,74 @@
|
|
|
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.feeForInner = feeForInner;
|
|
27
|
+
exports.populateAndEncodeTxs = populateAndEncodeTxs;
|
|
28
|
+
exports.encodeTxs = encodeTxs;
|
|
29
|
+
exports.checkAssetOptIn = checkAssetOptIn;
|
|
30
|
+
exports.checkAppOptIn = checkAppOptIn;
|
|
31
|
+
const algokit_utils_1 = require("@algorandfoundation/algokit-utils");
|
|
32
|
+
const algosdk_1 = __importStar(require("algosdk"));
|
|
33
|
+
function feeForInner(innerCount) {
|
|
34
|
+
return (innerCount * 1000).microAlgos(); // 1000 μAlgos per tx
|
|
35
|
+
}
|
|
36
|
+
async function populateAndEncodeTxs(txs, sender, algod) {
|
|
37
|
+
const atc = new algosdk_1.AtomicTransactionComposer();
|
|
38
|
+
const txnSigner = (0, algosdk_1.makeBasicAccountTransactionSigner)({ addr: sender, sk: new Uint8Array(64) });
|
|
39
|
+
txs.forEach((txn) => {
|
|
40
|
+
atc.addTransaction({ txn, signer: txnSigner });
|
|
41
|
+
});
|
|
42
|
+
const populatedAtc = await (0, algokit_utils_1.populateAppCallResources)(atc, algod);
|
|
43
|
+
const populatedTxs = populatedAtc.buildGroup().map((tx) => tx.txn);
|
|
44
|
+
return encodeTxs(...populatedTxs);
|
|
45
|
+
}
|
|
46
|
+
function encodeTxs(...txs) {
|
|
47
|
+
const blobs = txs.map((tx) => algosdk_1.default.encodeUnsignedTransaction(tx));
|
|
48
|
+
return blobs.map((b) => Buffer.from(b).toString("hex"));
|
|
49
|
+
}
|
|
50
|
+
async function checkAssetOptIn(assetId, sender, algorand) {
|
|
51
|
+
if (typeof assetId === "string") {
|
|
52
|
+
assetId = BigInt(assetId);
|
|
53
|
+
}
|
|
54
|
+
const info = await algorand.account.getInformation(sender);
|
|
55
|
+
const assets = info.assets;
|
|
56
|
+
if (assets) {
|
|
57
|
+
const isOptedIn = assets.find(({ assetId: id }) => id === assetId);
|
|
58
|
+
return isOptedIn !== undefined;
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
async function checkAppOptIn(appId, sender, algorand) {
|
|
63
|
+
if (typeof appId === "string") {
|
|
64
|
+
appId = BigInt(appId);
|
|
65
|
+
}
|
|
66
|
+
const info = await algorand.account.getInformation(sender);
|
|
67
|
+
const localStates = info.appsLocalState;
|
|
68
|
+
if (localStates) {
|
|
69
|
+
const isOptedIn = localStates.find(({ id }) => id === appId);
|
|
70
|
+
return isOptedIn !== undefined;
|
|
71
|
+
}
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/utils/alg/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWA,kCAEC;AAED,oDAaC;AAED,8BAGC;AAED,0CAeC;AAED,sCAeC;AAnED,qEAA6F;AAE7F,mDAMiB;AAGjB,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,eAAe,CACnC,OAAwB,EACxB,MAAc,EACd,QAAwB;IAExB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACnE,OAAO,SAAS,KAAK,SAAS,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,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 algosdk, {\n Address,\n Algodv2,\n AtomicTransactionComposer,\n makeBasicAccountTransactionSigner,\n Transaction,\n} from \"algosdk\";\nimport { RawAlgTransaction } from \"../../models\";\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 checkAssetOptIn(\n assetId: string | bigint,\n sender: string,\n algorand: AlgorandClient\n): Promise<boolean> {\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\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"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTokenName = getTokenName;
|
|
4
|
+
const exceptions_1 = require("../../../exceptions");
|
|
5
|
+
function getTokenName(token) {
|
|
6
|
+
if (!token.originTokenAddress) {
|
|
7
|
+
throw new exceptions_1.SdkError("STX token must contain 'originTokenAddress'");
|
|
8
|
+
}
|
|
9
|
+
const [_address, name] = token.originTokenAddress.split("::");
|
|
10
|
+
if (!name) {
|
|
11
|
+
throw new exceptions_1.SdkError("STX token must contain 'originTokenAddress' ends with '::<tokenName>'");
|
|
12
|
+
}
|
|
13
|
+
return name;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=get-token-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-token-name.js","sourceRoot":"","sources":["../../../../../src/services/utils/stx/get-token-name.ts"],"names":[],"mappings":";;AAGA,oCASC;AAZD,oDAA+C;AAG/C,SAAgB,YAAY,CAAC,KAA4B;IACvD,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC9B,MAAM,IAAI,qBAAQ,CAAC,6CAA6C,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,qBAAQ,CAAC,uEAAuE,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import { SdkError } from \"../../../exceptions\";\nimport { TokenWithChainDetails } from \"../../../tokens-info\";\n\nexport function getTokenName(token: TokenWithChainDetails): string {\n if (!token.originTokenAddress) {\n throw new SdkError(\"STX token must contain 'originTokenAddress'\");\n }\n const [_address, name] = token.originTokenAddress.split(\"::\");\n if (!name) {\n throw new SdkError(\"STX token must contain 'originTokenAddress' ends with '::<tokenName>'\");\n }\n return name;\n}\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { FungibleComparator, FungiblePostCondition, StxPostCondition } from "@stacks/transactions";
|
|
2
|
+
export declare function getFungiblePostCondition(amount: string | bigint | number, condition: `${FungibleComparator}`, accountAddress: string, tokenAddress: string, tokenName: string): FungiblePostCondition;
|
|
3
|
+
export declare function getStxPostCondition(amount: string | bigint | number, condition: `${FungibleComparator}`, accountAddress: string): StxPostCondition;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFungiblePostCondition = getFungiblePostCondition;
|
|
4
|
+
exports.getStxPostCondition = getStxPostCondition;
|
|
5
|
+
const transactions_1 = require("@stacks/transactions");
|
|
6
|
+
function getFungiblePostCondition(amount, condition, accountAddress, tokenAddress, tokenName) {
|
|
7
|
+
const [assetAddress, assetContractName] = (0, transactions_1.parseContractId)(tokenAddress);
|
|
8
|
+
if (!assetAddress || !assetContractName) {
|
|
9
|
+
throw new Error(`Unable to parse stx token ${tokenAddress}`);
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
type: "ft-postcondition",
|
|
13
|
+
address: accountAddress,
|
|
14
|
+
condition,
|
|
15
|
+
asset: `${assetAddress}.${assetContractName}::${tokenName}`,
|
|
16
|
+
amount,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function getStxPostCondition(amount, condition, accountAddress) {
|
|
20
|
+
return {
|
|
21
|
+
type: "stx-postcondition",
|
|
22
|
+
address: accountAddress,
|
|
23
|
+
condition,
|
|
24
|
+
amount,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=post-conditions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-conditions.js","sourceRoot":"","sources":["../../../../../src/services/utils/stx/post-conditions.ts"],"names":[],"mappings":";;AAQA,4DAkBC;AAED,kDAWC;AAvCD,uDAM8B;AAE9B,SAAgB,wBAAwB,CACtC,MAAgC,EAChC,SAAkC,EAClC,cAAsB,EACtB,YAAoB,EACpB,SAAiB;IAEjB,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,GAAG,IAAA,8BAAe,EAAC,YAAgC,CAAC,CAAC;IAC5F,IAAI,CAAC,YAAY,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,cAAc;QACvB,SAAS;QACT,KAAK,EAAE,GAAG,YAAY,IAAI,iBAAiB,KAAK,SAAS,EAAE;QAC3D,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB,CACjC,MAAgC,EAChC,SAAkC,EAClC,cAAsB;IAEtB,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,cAAc;QACvB,SAAS;QACT,MAAM;KACP,CAAC;AACJ,CAAC","sourcesContent":["import {\n ContractIdString,\n FungibleComparator,\n FungiblePostCondition,\n parseContractId,\n StxPostCondition,\n} from \"@stacks/transactions\";\n\nexport function getFungiblePostCondition(\n amount: string | bigint | number,\n condition: `${FungibleComparator}`,\n accountAddress: string,\n tokenAddress: string,\n tokenName: string\n): FungiblePostCondition {\n const [assetAddress, assetContractName] = parseContractId(tokenAddress as ContractIdString);\n if (!assetAddress || !assetContractName) {\n throw new Error(`Unable to parse stx token ${tokenAddress}`);\n }\n return {\n type: \"ft-postcondition\",\n address: accountAddress,\n condition,\n asset: `${assetAddress}.${assetContractName}::${tokenName}`,\n amount,\n };\n}\n\nexport function getStxPostCondition(\n amount: string | bigint | number,\n condition: `${FungibleComparator}`,\n accountAddress: string\n): StxPostCondition {\n return {\n type: \"stx-postcondition\",\n address: accountAddress,\n condition,\n amount,\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/utils/trx/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/utils/trx/index.ts"],"names":[],"mappings":";;AAKA,gDAWC;AAED,4BAkBC;AAnCD,oDAAoE;AAEpE,oCAAiC;AAE1B,KAAK,UAAU,kBAAkB,CAAC,OAAgB,EAAE,cAA8B;IACvF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAqB,CAAC,CAAC;IAE/D,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,2BAAc,CAAC,qCAAqC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;IACjD,MAAM,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;AACnC,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,OAAgB,EAAE,IAAY,EAAE,OAAO,GAAG,KAAK;IAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEzB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC;YACjC,MAAM,IAAI,0BAAa,CAAC,uBAAuB,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACrB,MAAM,IAAA,aAAK,EAAC,IAAI,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,0BAAa,CAAC,yBAAyB,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import { TronWeb } from \"tronweb\";\nimport { InvalidTxError, VerifyTxError } from \"../../../exceptions\";\nimport { RawTransaction } from \"../../models\";\nimport { sleep } from \"../index\";\n\nexport async function sendRawTransaction(tronWeb: TronWeb, rawTransaction: RawTransaction): Promise<{ txId: string }> {\n const signedTx = await tronWeb.trx.sign(rawTransaction as any);\n\n if (!signedTx.signature) {\n throw new InvalidTxError(\"Transaction was not signed properly\");\n }\n\n const receipt = await tronWeb.trx.sendRawTransaction(signedTx);\n const transactionHash = receipt.transaction.txID;\n await verifyTx(tronWeb, transactionHash);\n return { txId: transactionHash };\n}\n\nexport async function verifyTx(tronWeb: TronWeb, txId: string, timeout = 10000): Promise<any> {\n const start = Date.now();\n\n while (true) {\n if (Date.now() - start > timeout) {\n throw new VerifyTxError(\"Transaction not found\");\n }\n const result = await tronWeb.trx.getUnconfirmedTransactionInfo(txId);\n if (!result?.receipt) {\n await sleep(2000);\n continue;\n }\n if (result.receipt.result === \"SUCCESS\") {\n return result;\n } else {\n throw new VerifyTxError(`Transaction status is ${result.receipt.result}`);\n }\n }\n}\n"]}
|
|
@@ -40,6 +40,8 @@ class DefaultYieldService {
|
|
|
40
40
|
apr: "",
|
|
41
41
|
apr30d: "",
|
|
42
42
|
apr7d: "",
|
|
43
|
+
bridgeId: chainData.bridgeId,
|
|
44
|
+
paddingUtilId: chainData.paddingUtilId,
|
|
43
45
|
bridgeAddress: chainData.bridgeAddress,
|
|
44
46
|
chainId: chainData.chainId,
|
|
45
47
|
chainName: chainData.name,
|
|
@@ -128,6 +130,12 @@ function getChainYieldService(chainSymbol, api, nodeRpcUrlsConfig, ownerAddress,
|
|
|
128
130
|
case index_1.ChainType.SUI: {
|
|
129
131
|
throw new exceptions_1.MethodNotSupportedError();
|
|
130
132
|
}
|
|
133
|
+
case index_1.ChainType.ALG: {
|
|
134
|
+
throw new exceptions_1.MethodNotSupportedError();
|
|
135
|
+
}
|
|
136
|
+
case index_1.ChainType.STX: {
|
|
137
|
+
throw new exceptions_1.MethodNotSupportedError();
|
|
138
|
+
}
|
|
131
139
|
}
|
|
132
140
|
}
|
|
133
141
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/yield/index.ts"],"names":[],"mappings":";;;AAgMA,oDAsCC;AAtOD,qCAAkC;AAClC,+BAAmD;AACnD,yCAAsC;AAGtC,iDAA2D;AAC3D,uCAAuG;AACvG,yDAAkE;AAClE,iEAAqE;AACrE,6CAAiF;AAIjF,+BAAwC;AAYxC,mFAAgH;AAChH,+BAAyC;AACzC,+CAAiD;AAsDjD,MAAa,mBAAmB;IAIpB;IACA;IACA;IACA;IANH,YAAY,CAA6B;IAEhD,YACU,GAAgC,EAChC,iBAAoC,EACpC,MAA+B,EAC/B,YAA0B;QAH1B,QAAG,GAAH,GAAG,CAA6B;QAChC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,WAAM,GAAN,MAAM,CAAyB;QAC/B,iBAAY,GAAZ,YAAY,CAAc;QAElC,IAAI,CAAC,YAAY,GAAG,IAAI,iEAAiC,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1G,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAE3D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5C,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,YAAY,CAAC,CAAC;gBACzF,MAAM,MAAM,GAAiC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,8BAAgB,CAAC,CAAC;gBACvF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,UAAU,GAA0B,QAAQ,IAAI;wBACpD,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;wBAC5C,GAAG,EAAE,EAAE;wBACP,MAAM,EAAE,EAAE;wBACV,KAAK,EAAE,EAAE;wBACT,aAAa,EAAE,SAAS,CAAC,aAAa;wBACtC,OAAO,EAAE,SAAS,CAAC,OAAO;wBAC1B,SAAS,EAAE,SAAS,CAAC,IAAI;wBACzB,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,SAAS,EAAE,SAAS,CAAC,SAAS;wBAC9B,aAAa,EAAE,SAAS,CAAC,aAAa;wBACtC,QAAQ,EAAE,CAAC;wBACX,QAAQ,EAAE,EAAE;wBACZ,MAAM,EAAE,EAAE;wBACV,IAAI,EAAE,YAAY;wBAClB,WAAW,EAAE,EAAE;wBACf,MAAM,EAAE,KAAK;wBACb,YAAY,EAAE,SAAS,CAAC,YAAY;wBACpC,YAAY,EAAE,EAAE;wBAChB,YAAY,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;wBAC1D,YAAY,EAAE,SAAS,CAAC,YAAY;qBACrC,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC;wBACV,GAAG,UAAU;wBACb,YAAY,EAAE,SAAS,CAAC,YAAY;wBACpC,MAAM,EAAE,MAAM;qBACf,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAA+B,EAAE,QAAmB;QACrE,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC3G,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAiC,EAAE,QAAmB;QACzE,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvG,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAA0B,EAAE,QAAmB;QAC7D,OAAO,oBAAoB,CACzB,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,MAAM,CAAC,KAAK,EACZ,QAAQ,CACT,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,MAA8C,EAC9C,QAAmB;QAEnB,IAAA,4BAAoB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAA,8BAAsB,EAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvE,OAAO,oBAAoB,CACzB,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,MAAM,CAAC,KAAK,CAAC,YAAY,EACzB,QAAQ,CACT,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,MAA8C,EAC9C,QAAmB;QAEnB,IAAA,4BAAoB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAA,8BAAsB,EAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,4BAAgB,CAAC,CAAC;QAClE,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAClD,MAAM,CAAC,QAAQ,CAAC,WAAW,EAC3B,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,MAAM,CAAC,KAAK,EACZ,QAAQ,CACT,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM;aAC1B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;aACjE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACf,oEAAoE;YACpE,MAAM,EAAE,IAAA,qCAAuB,EAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;YAC5F,KAAK,EAAE,KAAK;SACb,CAAC,CAAC,CAAC;IACR,CAAC;CACF;AA7GD,kDA6GC;AAED,SAAgB,oBAAoB,CAClC,WAAmB,EACnB,GAAwB,EACxB,iBAAoC,EACpC,YAAoB,EACpB,QAAmB;IAEnB,QAAQ,eAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE,CAAC;QACvD,KAAK,iBAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACnB,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,IAAI,qBAAe,CAAC,QAAyB,EAAE,GAAG,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAChE,MAAM,IAAI,GAAG,IAAI,WAAI,CAAC,UAAU,CAAC,CAAC;gBAClC,IAAI,CAAC,mBAAmB,GAAG,EAAE,MAAM,EAAE,iBAAU,CAAC,GAAG,EAAE,KAAK,EAAE,gBAAS,CAAC,GAAG,EAAE,CAAC;gBAC5E,OAAO,IAAI,qBAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,KAAK,iBAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACnB,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,IAAI,sBAAgB,CAAC,QAAmB,EAAE,GAAG,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;gBACtD,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBACjC,OAAO,IAAI,sBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,KAAK,iBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YACtB,MAAM,IAAI,oCAAuB,EAAE,CAAC;QACtC,CAAC;QACD,KAAK,iBAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,oCAAuB,EAAE,CAAC;QACtC,CAAC;QACD,KAAK,iBAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,oCAAuB,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import { TronWeb } from \"tronweb\";\nimport { FMT_BYTES, FMT_NUMBER, Web3 } from \"web3\";\nimport { Chains } from \"../../chains\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { AllbridgeCoreClientFiltered } from \"../../client/core-api/core-client-filtered\";\nimport { MethodNotSupportedError } from \"../../exceptions\";\nimport { AllbridgeCoreSdkOptions, ChainType, EssentialWeb3, TokenWithChainDetails } from \"../../index\";\nimport { convertIntAmountToFloat } from \"../../utils/calculation\";\nimport { SYSTEM_PRECISION } from \"../../utils/calculation/constants\";\nimport { validateAmountDecimals, validateAmountGtZero } from \"../../utils/utils\";\nimport { NodeRpcUrlsConfig } from \"../index\";\nimport { Provider } from \"../models\";\nimport { TokenService } from \"../token\";\nimport { EvmYieldService } from \"./evm\";\nimport {\n ChainYieldService,\n CYDToken,\n TokenWithChainDetailsYield,\n YieldBalanceParams,\n YieldCheckAllowanceParams,\n YieldGetAllowanceParams,\n YieldGetEstimatedAmountOnDepositParams,\n YieldGetWithdrawProportionAmountParams,\n YieldWithdrawAmount,\n} from \"./models\";\nimport { DefaultRawYieldTransactionBuilder, RawYieldTransactionBuilder } from \"./raw-yield-transaction-builder\";\nimport { TronYieldService } from \"./trx\";\nimport { isYieldSupported } from \"./validations\";\n\nexport interface YieldService {\n rawTxBuilder: RawYieldTransactionBuilder;\n\n /**\n * Returns a list of supported {@link CYDToken}.\n */\n getCYDTokens(): Promise<CYDToken[]>;\n\n /**\n * Get amount of tokens approved for Yield\n * @param provider - will be used to access the network\n * @param params See {@link YieldGetAllowanceParams}\n * @returns the amount of approved tokens\n */\n getAllowance(params: YieldGetAllowanceParams, provider?: Provider): Promise<string>;\n\n /**\n * Check if the amount of approved tokens is enough\n * @param params See {@link YieldCheckAllowanceParams}\n * @param provider - will be used to access the network\n * @returns true if the amount of approved tokens is enough to make a transfer\n */\n checkAllowance(params: YieldCheckAllowanceParams, provider?: Provider): Promise<boolean>;\n\n /**\n * Get token balance\n * @param params\n * @param provider\n * @returns Token balance\n */\n balanceOf(params: YieldBalanceParams, provider?: Provider): Promise<string>;\n\n /**\n * Calculates the amount of CYD tokens that will be deposited\n * @param params - will be used to access the network\n * @param provider - will be used to access the network\n * @returns amount\n */\n getEstimatedAmountOnDeposit(params: YieldGetEstimatedAmountOnDepositParams, provider?: Provider): Promise<string>;\n\n /**\n * Calculates the amounts of tokens ({@link YieldWithdrawAmount}) will be withdrawn\n * @param params\n * @param provider - will be used to access the network\n * @returns amounts\n */\n getWithdrawAmounts(\n params: YieldGetWithdrawProportionAmountParams,\n provider?: Provider\n ): Promise<YieldWithdrawAmount[]>;\n}\n\nexport class DefaultYieldService implements YieldService {\n public rawTxBuilder: RawYieldTransactionBuilder;\n\n constructor(\n private api: AllbridgeCoreClientFiltered,\n private nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n private params: AllbridgeCoreSdkOptions,\n private tokenService: TokenService\n ) {\n this.rawTxBuilder = new DefaultRawYieldTransactionBuilder(api, nodeRpcUrlsConfig, params, tokenService);\n }\n\n async getCYDTokens(): Promise<CYDToken[]> {\n const result: CYDToken[] = [];\n const chainMap = await this.api.getChainDetailsMap(\"pool\");\n\n Object.values(chainMap).forEach((chainData) => {\n if (chainData.yieldAddress) {\n const cydToken = chainData.tokens.find((t) => t.tokenAddress === chainData.yieldAddress);\n const tokens: TokenWithChainDetailsYield[] = chainData.tokens.filter(isYieldSupported);\n if (tokens.length > 0) {\n const cydDefined: TokenWithChainDetails = cydToken ?? {\n allbridgeChainId: chainData.allbridgeChainId,\n apr: \"\",\n apr30d: \"\",\n apr7d: \"\",\n bridgeAddress: chainData.bridgeAddress,\n chainId: chainData.chainId,\n chainName: chainData.name,\n chainSymbol: chainData.chainSymbol,\n chainType: chainData.chainType,\n confirmations: chainData.confirmations,\n decimals: 3,\n feeShare: \"\",\n lpRate: \"\",\n name: \"Core Yield\",\n poolAddress: \"\",\n symbol: \"CYD\",\n tokenAddress: chainData.yieldAddress,\n transferTime: {},\n txCostAmount: { maxAmount: \"0\", swap: \"0\", transfer: \"0\" },\n yieldAddress: chainData.yieldAddress,\n };\n result.push({\n ...cydDefined,\n yieldAddress: chainData.yieldAddress,\n tokens: tokens,\n });\n }\n }\n });\n\n return result;\n }\n\n async getAllowance(params: YieldGetAllowanceParams, provider?: Provider): Promise<string> {\n return await this.tokenService.getAllowance({ ...params, spender: params.token.yieldAddress }, provider);\n }\n\n async checkAllowance(params: YieldCheckAllowanceParams, provider?: Provider): Promise<boolean> {\n return this.tokenService.checkAllowance({ ...params, spender: params.token.yieldAddress }, provider);\n }\n\n async balanceOf(params: YieldBalanceParams, provider?: Provider): Promise<string> {\n return getChainYieldService(\n params.token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n params.owner,\n provider\n ).balanceOf(params);\n }\n\n async getEstimatedAmountOnDeposit(\n params: YieldGetEstimatedAmountOnDepositParams,\n provider?: Provider\n ): Promise<string> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, params.token.decimals);\n return getChainYieldService(\n params.token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n params.token.yieldAddress,\n provider\n ).getEstimatedAmountOnDeposit(params);\n }\n\n async getWithdrawAmounts(\n params: YieldGetWithdrawProportionAmountParams,\n provider?: Provider\n ): Promise<YieldWithdrawAmount[]> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, SYSTEM_PRECISION);\n const proportionAmounts = await getChainYieldService(\n params.cydToken.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n params.owner,\n provider\n ).getWithdrawProportionAmount(params);\n return params.cydToken.tokens\n .filter((token) => proportionAmounts[token.yieldId] !== undefined)\n .map((token) => ({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n amount: convertIntAmountToFloat(proportionAmounts[token.yieldId]!, token.decimals).toFixed(),\n token: token,\n }));\n }\n}\n\nexport function getChainYieldService(\n chainSymbol: string,\n api: AllbridgeCoreClient,\n nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n ownerAddress: string,\n provider?: Provider\n): ChainYieldService {\n switch (Chains.getChainProperty(chainSymbol).chainType) {\n case ChainType.EVM: {\n if (provider) {\n return new EvmYieldService(provider as EssentialWeb3, api);\n } else {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const web3 = new Web3(nodeRpcUrl);\n web3.defaultReturnFormat = { number: FMT_NUMBER.STR, bytes: FMT_BYTES.HEX };\n return new EvmYieldService(web3, api);\n }\n }\n case ChainType.TRX: {\n if (provider) {\n return new TronYieldService(provider as TronWeb, api);\n } else {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const tronWeb = new TronWeb({ fullHost: nodeRpcUrl });\n tronWeb.setAddress(ownerAddress);\n return new TronYieldService(tronWeb, api);\n }\n }\n case ChainType.SOLANA: {\n throw new MethodNotSupportedError();\n }\n case ChainType.SRB: {\n throw new MethodNotSupportedError();\n }\n case ChainType.SUI: {\n throw new MethodNotSupportedError();\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/yield/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { TronWeb } from \"tronweb\";\nimport { FMT_BYTES, FMT_NUMBER, Web3 } from \"web3\";\nimport { Chains } from \"../../chains\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { AllbridgeCoreClientFiltered } from \"../../client/core-api/core-client-filtered\";\nimport { MethodNotSupportedError } from \"../../exceptions\";\nimport { AllbridgeCoreSdkOptions, ChainType, EssentialWeb3, TokenWithChainDetails } from \"../../index\";\nimport { convertIntAmountToFloat } from \"../../utils/calculation\";\nimport { SYSTEM_PRECISION } from \"../../utils/calculation/constants\";\nimport { validateAmountDecimals, validateAmountGtZero } from \"../../utils/utils\";\nimport { NodeRpcUrlsConfig } from \"../index\";\nimport { Provider } from \"../models\";\nimport { TokenService } from \"../token\";\nimport { EvmYieldService } from \"./evm\";\nimport {\n ChainYieldService,\n CYDToken,\n TokenWithChainDetailsYield,\n YieldBalanceParams,\n YieldCheckAllowanceParams,\n YieldGetAllowanceParams,\n YieldGetEstimatedAmountOnDepositParams,\n YieldGetWithdrawProportionAmountParams,\n YieldWithdrawAmount,\n} from \"./models\";\nimport { DefaultRawYieldTransactionBuilder, RawYieldTransactionBuilder } from \"./raw-yield-transaction-builder\";\nimport { TronYieldService } from \"./trx\";\nimport { isYieldSupported } from \"./validations\";\n\nexport interface YieldService {\n rawTxBuilder: RawYieldTransactionBuilder;\n\n /**\n * Returns a list of supported {@link CYDToken}.\n */\n getCYDTokens(): Promise<CYDToken[]>;\n\n /**\n * Get amount of tokens approved for Yield\n * @param provider - will be used to access the network\n * @param params See {@link YieldGetAllowanceParams}\n * @returns the amount of approved tokens\n */\n getAllowance(params: YieldGetAllowanceParams, provider?: Provider): Promise<string>;\n\n /**\n * Check if the amount of approved tokens is enough\n * @param params See {@link YieldCheckAllowanceParams}\n * @param provider - will be used to access the network\n * @returns true if the amount of approved tokens is enough to make a transfer\n */\n checkAllowance(params: YieldCheckAllowanceParams, provider?: Provider): Promise<boolean>;\n\n /**\n * Get token balance\n * @param params\n * @param provider\n * @returns Token balance\n */\n balanceOf(params: YieldBalanceParams, provider?: Provider): Promise<string>;\n\n /**\n * Calculates the amount of CYD tokens that will be deposited\n * @param params - will be used to access the network\n * @param provider - will be used to access the network\n * @returns amount\n */\n getEstimatedAmountOnDeposit(params: YieldGetEstimatedAmountOnDepositParams, provider?: Provider): Promise<string>;\n\n /**\n * Calculates the amounts of tokens ({@link YieldWithdrawAmount}) will be withdrawn\n * @param params\n * @param provider - will be used to access the network\n * @returns amounts\n */\n getWithdrawAmounts(\n params: YieldGetWithdrawProportionAmountParams,\n provider?: Provider\n ): Promise<YieldWithdrawAmount[]>;\n}\n\nexport class DefaultYieldService implements YieldService {\n public rawTxBuilder: RawYieldTransactionBuilder;\n\n constructor(\n private api: AllbridgeCoreClientFiltered,\n private nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n private params: AllbridgeCoreSdkOptions,\n private tokenService: TokenService\n ) {\n this.rawTxBuilder = new DefaultRawYieldTransactionBuilder(api, nodeRpcUrlsConfig, params, tokenService);\n }\n\n async getCYDTokens(): Promise<CYDToken[]> {\n const result: CYDToken[] = [];\n const chainMap = await this.api.getChainDetailsMap(\"pool\");\n\n Object.values(chainMap).forEach((chainData) => {\n if (chainData.yieldAddress) {\n const cydToken = chainData.tokens.find((t) => t.tokenAddress === chainData.yieldAddress);\n const tokens: TokenWithChainDetailsYield[] = chainData.tokens.filter(isYieldSupported);\n if (tokens.length > 0) {\n const cydDefined: TokenWithChainDetails = cydToken ?? {\n allbridgeChainId: chainData.allbridgeChainId,\n apr: \"\",\n apr30d: \"\",\n apr7d: \"\",\n bridgeId: chainData.bridgeId,\n paddingUtilId: chainData.paddingUtilId,\n bridgeAddress: chainData.bridgeAddress,\n chainId: chainData.chainId,\n chainName: chainData.name,\n chainSymbol: chainData.chainSymbol,\n chainType: chainData.chainType,\n confirmations: chainData.confirmations,\n decimals: 3,\n feeShare: \"\",\n lpRate: \"\",\n name: \"Core Yield\",\n poolAddress: \"\",\n symbol: \"CYD\",\n tokenAddress: chainData.yieldAddress,\n transferTime: {},\n txCostAmount: { maxAmount: \"0\", swap: \"0\", transfer: \"0\" },\n yieldAddress: chainData.yieldAddress,\n };\n result.push({\n ...cydDefined,\n yieldAddress: chainData.yieldAddress,\n tokens: tokens,\n });\n }\n }\n });\n\n return result;\n }\n\n async getAllowance(params: YieldGetAllowanceParams, provider?: Provider): Promise<string> {\n return await this.tokenService.getAllowance({ ...params, spender: params.token.yieldAddress }, provider);\n }\n\n async checkAllowance(params: YieldCheckAllowanceParams, provider?: Provider): Promise<boolean> {\n return this.tokenService.checkAllowance({ ...params, spender: params.token.yieldAddress }, provider);\n }\n\n async balanceOf(params: YieldBalanceParams, provider?: Provider): Promise<string> {\n return getChainYieldService(\n params.token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n params.owner,\n provider\n ).balanceOf(params);\n }\n\n async getEstimatedAmountOnDeposit(\n params: YieldGetEstimatedAmountOnDepositParams,\n provider?: Provider\n ): Promise<string> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, params.token.decimals);\n return getChainYieldService(\n params.token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n params.token.yieldAddress,\n provider\n ).getEstimatedAmountOnDeposit(params);\n }\n\n async getWithdrawAmounts(\n params: YieldGetWithdrawProportionAmountParams,\n provider?: Provider\n ): Promise<YieldWithdrawAmount[]> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, SYSTEM_PRECISION);\n const proportionAmounts = await getChainYieldService(\n params.cydToken.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n params.owner,\n provider\n ).getWithdrawProportionAmount(params);\n return params.cydToken.tokens\n .filter((token) => proportionAmounts[token.yieldId] !== undefined)\n .map((token) => ({\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n amount: convertIntAmountToFloat(proportionAmounts[token.yieldId]!, token.decimals).toFixed(),\n token: token,\n }));\n }\n}\n\nexport function getChainYieldService(\n chainSymbol: string,\n api: AllbridgeCoreClient,\n nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n ownerAddress: string,\n provider?: Provider\n): ChainYieldService {\n switch (Chains.getChainProperty(chainSymbol).chainType) {\n case ChainType.EVM: {\n if (provider) {\n return new EvmYieldService(provider as EssentialWeb3, api);\n } else {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const web3 = new Web3(nodeRpcUrl);\n web3.defaultReturnFormat = { number: FMT_NUMBER.STR, bytes: FMT_BYTES.HEX };\n return new EvmYieldService(web3, api);\n }\n }\n case ChainType.TRX: {\n if (provider) {\n return new TronYieldService(provider as TronWeb, api);\n } else {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const tronWeb = new TronWeb({ fullHost: nodeRpcUrl });\n tronWeb.setAddress(ownerAddress);\n return new TronYieldService(tronWeb, api);\n }\n }\n case ChainType.SOLANA: {\n throw new MethodNotSupportedError();\n }\n case ChainType.SRB: {\n throw new MethodNotSupportedError();\n }\n case ChainType.SUI: {\n throw new MethodNotSupportedError();\n }\n case ChainType.ALG: {\n throw new MethodNotSupportedError();\n }\n case ChainType.STX: {\n throw new MethodNotSupportedError();\n }\n }\n}\n"]}
|
|
@@ -17,6 +17,14 @@ export interface ChainDetails extends BasicChainProperties {
|
|
|
17
17
|
* Allbridge's Id
|
|
18
18
|
*/
|
|
19
19
|
allbridgeChainId: number;
|
|
20
|
+
/**
|
|
21
|
+
* Algo Bridge appId
|
|
22
|
+
*/
|
|
23
|
+
bridgeId?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Algo Padding appId
|
|
26
|
+
*/
|
|
27
|
+
paddingUtilId?: string;
|
|
20
28
|
/**
|
|
21
29
|
* Bridge contract address
|
|
22
30
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens-info.model.js","sourceRoot":"","sources":["../../../src/tokens-info/tokens-info.model.ts"],"names":[],"mappings":"","sourcesContent":["import { BasicChainProperties } from \"../chains/models\";\nimport { Messenger } from \"../client/core-api/core-api.model\";\n\n/**\n * Type representing a map of blockchain chain symbols to their corresponding details, including token information.\n *\n * @typedef {Record<string, ChainDetailsWithTokens>} ChainDetailsMap\n * @property {string} chainSymbol - The symbol of the chain representing one of the supported blockchain networks (e.g., \"ETH\" for Ethereum). For more details, see: {@link ChainSymbol}.\n * @property {ChainDetailsWithTokens} chainDetails - The detailed information of the specified chain, including token information.\n */\nexport type ChainDetailsMap = Record<string, ChainDetailsWithTokens>;\n\nexport type ChainDetailsMapWithFlags = Record<string, ChainDetailsWithTokensWithFlags>;\n\n/**\n * Contains some blockchain details\n */\nexport interface ChainDetails extends BasicChainProperties {\n /**\n * Allbridge's Id\n */\n allbridgeChainId: number;\n /**\n * Bridge contract address\n */\n bridgeAddress: string;\n /**\n * OFT Bridge contract address\n * Optional. Defined if the chain supports OFT\n */\n oftBridgeAddress?: string;\n /**\n * Yield contract address\n */\n yieldAddress?: string;\n /**\n * Average transfer time to other blockchains\n */\n transferTime: TransferTime;\n /**\n * Transfers costs\n */\n txCostAmount: TxCostAmount;\n /**\n * Number of confirmations required\n */\n confirmations: number;\n /**\n * Sui addresses\n * Optional. Defined for SUI\n */\n suiAddresses?: SuiAddresses;\n}\n\n/**\n * Contains tokens list\n */\nexport interface ChainDetailsWithTokens extends ChainDetails {\n /**\n * Tokens\n */\n tokens: TokenWithChainDetails[];\n}\n\n/**\n * Contains tokens list\n */\nexport interface ChainDetailsWithTokensWithFlags extends ChainDetails {\n /**\n * Tokens\n */\n tokens: TokenWithChainDetailsWithFlags[];\n}\n\n/**\n * Contains token information\n */\nexport interface Token {\n /**\n * Token symbol\n */\n symbol: string;\n /**\n * Token name\n */\n name: string;\n /**\n * Token decimals\n */\n decimals: number;\n /**\n * Token pool address\n */\n poolAddress: string;\n /**\n * Token address\n */\n tokenAddress: string;\n /**\n * Token origin address\n */\n originTokenAddress?: string;\n /**\n * Token CCTP address</br>\n * Optional. Defined if CCTP supported by token\n */\n cctpAddress?: string;\n /**\n * Token CCTP V2 address</br>\n * Optional. Defined if CCTP supported by token\n */\n cctpFeeShare?: string;\n /**\n * Token CCTP address</br>\n * Optional. Defined if CCTP supported by token\n */\n cctpV2Address?: string;\n /**\n * Token CCTP V2 address</br>\n * Optional. Defined if CCTP supported by token\n */\n cctpV2FeeShare?: string;\n /**\n * Internal identifier for the same token across different chains.\n *\n * Used to link representations of a token deployed on multiple networks (e.g., Ethereum, BSC).\n * Tokens with the same `oftId` are considered to be equivalent.\n *\n * Optional. Defined if OFT supported by token\n */\n oftId?: string;\n /**\n * Token fee share\n */\n feeShare: string;\n /**\n * @Deprecated use {@link apr7d}</br>\n * Token APR\n */\n apr: string;\n /**\n * Token APR based on last 7 days\n */\n apr7d: string;\n /**\n * Token APR based on last 30 days\n */\n apr30d: string;\n /**\n * Token LP rate\n */\n lpRate: string;\n\n yieldId?: number;\n /**\n * Sui addresses\n * Optional. Defined for SUI\n */\n suiAddresses?: SuiAddresses;\n}\n\nexport interface SuiAddresses {\n bridgeAddress: string;\n bridgeAddressOrigin?: string;\n bridgeObjectAddress: string;\n\n allbridgeMessengerAddress: string;\n allbridgeMessengerAddressOrigin?: string;\n allbridgeMessengerObjectAddress: string;\n\n gasOracleAddress: string;\n gasOracleAddressOrigin?: string;\n gasOracleObjectAddress: string;\n\n utilsAddress: string;\n\n wormholeMessengerAddress: string;\n wormholeMessengerAddressOrigin?: string;\n wormholeMessengerObjectAddress: string;\n wormholeStateObjectAddress: string;\n\n cctpAddress: string;\n cctpAddressOrigin?: string;\n cctpObjectAddress: string;\n\n cctpDenyListObjectAddress: string;\n cctpMessageTransmitterStateObjectAddress: string;\n cctpTokenMessengerMinterStateObjectAddress: string;\n cctpTreasuryObjectAddress: string;\n}\n\n/**\n * General Token Interface\n */\nexport interface TokenWithChainDetails extends Token, Omit<ChainDetails, \"name\"> {\n /**\n * Blockchain network name\n */\n chainName: string;\n}\n\nexport interface TokenWithChainDetailsWithFlags extends TokenWithChainDetails {\n flags: { swap: boolean; pool: boolean };\n}\n\n/**\n * General Pool Interface\n */\nexport interface PoolInfo {\n /**\n * Pool A value\n */\n aValue: string;\n /**\n * Pool D value\n */\n dValue: string;\n /**\n * Pool token balance\n */\n tokenBalance: string;\n /**\n * Pool virtual USD balance\n */\n vUsdBalance: string;\n /**\n * Pool total liquidity amount\n */\n totalLpAmount: string;\n /**\n * Current accumulated reward per share shifted by P bits\n */\n accRewardPerShareP: string;\n /**\n * P value, needed for accRewardPerShareP\n */\n p: number;\n /**\n * Pool imbalance\n */\n imbalance: string;\n}\n\n/**\n * Type representing transfer times for various blockchain chains.\n *\n * @typedef {Record<string, MessengerTransferTime>} TransferTime\n * @property {string} chainSymbol - The symbol of the chain representing one of the supported blockchain networks (e.g., \"ETH\" for Ethereum). For more details, see: {@link ChainSymbol}.\n * @property {MessengerTransferTime} transferTime - The average transfer time details for the specified chain.\n */\nexport type TransferTime = Record<string, MessengerTransferTime>;\n\n/**\n * Contains Avg transaction time withing different messenger protocols\n */\nexport type MessengerTransferTime = {\n [messenger in Messenger]?: number;\n};\n\nexport interface PoolKeyObject {\n chainSymbol: string;\n poolAddress: string;\n}\n\n/**\n * Contains transfer costs\n */\nexport interface TxCostAmount {\n /**\n * The maximum gas amount that can be received as extra gas for one transfer\n */\n maxAmount: string;\n /**\n * Swap cost\n */\n swap: string;\n /**\n * Transfer cost\n */\n transfer: string;\n}\n\nexport type PoolInfoMap = Record<string, PoolInfo>;\n"]}
|
|
1
|
+
{"version":3,"file":"tokens-info.model.js","sourceRoot":"","sources":["../../../src/tokens-info/tokens-info.model.ts"],"names":[],"mappings":"","sourcesContent":["import { BasicChainProperties } from \"../chains/models\";\nimport { Messenger } from \"../client/core-api/core-api.model\";\n\n/**\n * Type representing a map of blockchain chain symbols to their corresponding details, including token information.\n *\n * @typedef {Record<string, ChainDetailsWithTokens>} ChainDetailsMap\n * @property {string} chainSymbol - The symbol of the chain representing one of the supported blockchain networks (e.g., \"ETH\" for Ethereum). For more details, see: {@link ChainSymbol}.\n * @property {ChainDetailsWithTokens} chainDetails - The detailed information of the specified chain, including token information.\n */\nexport type ChainDetailsMap = Record<string, ChainDetailsWithTokens>;\n\nexport type ChainDetailsMapWithFlags = Record<string, ChainDetailsWithTokensWithFlags>;\n\n/**\n * Contains some blockchain details\n */\nexport interface ChainDetails extends BasicChainProperties {\n /**\n * Allbridge's Id\n */\n allbridgeChainId: number;\n /**\n * Algo Bridge appId\n */\n bridgeId?: string;\n /**\n * Algo Padding appId\n */\n paddingUtilId?: string;\n /**\n * Bridge contract address\n */\n bridgeAddress: string;\n /**\n * OFT Bridge contract address\n * Optional. Defined if the chain supports OFT\n */\n oftBridgeAddress?: string;\n /**\n * Yield contract address\n */\n yieldAddress?: string;\n /**\n * Average transfer time to other blockchains\n */\n transferTime: TransferTime;\n /**\n * Transfers costs\n */\n txCostAmount: TxCostAmount;\n /**\n * Number of confirmations required\n */\n confirmations: number;\n /**\n * Sui addresses\n * Optional. Defined for SUI\n */\n suiAddresses?: SuiAddresses;\n}\n\n/**\n * Contains tokens list\n */\nexport interface ChainDetailsWithTokens extends ChainDetails {\n /**\n * Tokens\n */\n tokens: TokenWithChainDetails[];\n}\n\n/**\n * Contains tokens list\n */\nexport interface ChainDetailsWithTokensWithFlags extends ChainDetails {\n /**\n * Tokens\n */\n tokens: TokenWithChainDetailsWithFlags[];\n}\n\n/**\n * Contains token information\n */\nexport interface Token {\n /**\n * Token symbol\n */\n symbol: string;\n /**\n * Token name\n */\n name: string;\n /**\n * Token decimals\n */\n decimals: number;\n /**\n * Token pool address\n */\n poolAddress: string;\n /**\n * Token address\n */\n tokenAddress: string;\n /**\n * Token origin address\n */\n originTokenAddress?: string;\n /**\n * Token CCTP address</br>\n * Optional. Defined if CCTP supported by token\n */\n cctpAddress?: string;\n /**\n * Token CCTP V2 address</br>\n * Optional. Defined if CCTP supported by token\n */\n cctpFeeShare?: string;\n /**\n * Token CCTP address</br>\n * Optional. Defined if CCTP supported by token\n */\n cctpV2Address?: string;\n /**\n * Token CCTP V2 address</br>\n * Optional. Defined if CCTP supported by token\n */\n cctpV2FeeShare?: string;\n /**\n * Internal identifier for the same token across different chains.\n *\n * Used to link representations of a token deployed on multiple networks (e.g., Ethereum, BSC).\n * Tokens with the same `oftId` are considered to be equivalent.\n *\n * Optional. Defined if OFT supported by token\n */\n oftId?: string;\n /**\n * Token fee share\n */\n feeShare: string;\n /**\n * @Deprecated use {@link apr7d}</br>\n * Token APR\n */\n apr: string;\n /**\n * Token APR based on last 7 days\n */\n apr7d: string;\n /**\n * Token APR based on last 30 days\n */\n apr30d: string;\n /**\n * Token LP rate\n */\n lpRate: string;\n\n yieldId?: number;\n /**\n * Sui addresses\n * Optional. Defined for SUI\n */\n suiAddresses?: SuiAddresses;\n}\n\nexport interface SuiAddresses {\n bridgeAddress: string;\n bridgeAddressOrigin?: string;\n bridgeObjectAddress: string;\n\n allbridgeMessengerAddress: string;\n allbridgeMessengerAddressOrigin?: string;\n allbridgeMessengerObjectAddress: string;\n\n gasOracleAddress: string;\n gasOracleAddressOrigin?: string;\n gasOracleObjectAddress: string;\n\n utilsAddress: string;\n\n wormholeMessengerAddress: string;\n wormholeMessengerAddressOrigin?: string;\n wormholeMessengerObjectAddress: string;\n wormholeStateObjectAddress: string;\n\n cctpAddress: string;\n cctpAddressOrigin?: string;\n cctpObjectAddress: string;\n\n cctpDenyListObjectAddress: string;\n cctpMessageTransmitterStateObjectAddress: string;\n cctpTokenMessengerMinterStateObjectAddress: string;\n cctpTreasuryObjectAddress: string;\n}\n\n/**\n * General Token Interface\n */\nexport interface TokenWithChainDetails extends Token, Omit<ChainDetails, \"name\"> {\n /**\n * Blockchain network name\n */\n chainName: string;\n}\n\nexport interface TokenWithChainDetailsWithFlags extends TokenWithChainDetails {\n flags: { swap: boolean; pool: boolean };\n}\n\n/**\n * General Pool Interface\n */\nexport interface PoolInfo {\n /**\n * Pool A value\n */\n aValue: string;\n /**\n * Pool D value\n */\n dValue: string;\n /**\n * Pool token balance\n */\n tokenBalance: string;\n /**\n * Pool virtual USD balance\n */\n vUsdBalance: string;\n /**\n * Pool total liquidity amount\n */\n totalLpAmount: string;\n /**\n * Current accumulated reward per share shifted by P bits\n */\n accRewardPerShareP: string;\n /**\n * P value, needed for accRewardPerShareP\n */\n p: number;\n /**\n * Pool imbalance\n */\n imbalance: string;\n}\n\n/**\n * Type representing transfer times for various blockchain chains.\n *\n * @typedef {Record<string, MessengerTransferTime>} TransferTime\n * @property {string} chainSymbol - The symbol of the chain representing one of the supported blockchain networks (e.g., \"ETH\" for Ethereum). For more details, see: {@link ChainSymbol}.\n * @property {MessengerTransferTime} transferTime - The average transfer time details for the specified chain.\n */\nexport type TransferTime = Record<string, MessengerTransferTime>;\n\n/**\n * Contains Avg transaction time withing different messenger protocols\n */\nexport type MessengerTransferTime = {\n [messenger in Messenger]?: number;\n};\n\nexport interface PoolKeyObject {\n chainSymbol: string;\n poolAddress: string;\n}\n\n/**\n * Contains transfer costs\n */\nexport interface TxCostAmount {\n /**\n * The maximum gas amount that can be received as extra gas for one transfer\n */\n maxAmount: string;\n /**\n * Swap cost\n */\n swap: string;\n /**\n * Transfer cost\n */\n transfer: string;\n}\n\nexport type PoolInfoMap = Record<string, PoolInfo>;\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
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
|
+
return (0, alg_1.checkAssetOptIn)(assetId, sender, algorand);
|
|
16
|
+
}
|
|
17
|
+
async buildRawTransactionAssetOptIn(assetId, sender, client) {
|
|
18
|
+
const algorand = this.getAlgorand(client);
|
|
19
|
+
if (typeof assetId === "string") {
|
|
20
|
+
assetId = BigInt(assetId);
|
|
21
|
+
}
|
|
22
|
+
const tx = await algorand.createTransaction.assetOptIn({ assetId: assetId, sender: sender });
|
|
23
|
+
return (0, alg_1.encodeTxs)(tx);
|
|
24
|
+
}
|
|
25
|
+
async checkAppOptIn(appId, sender, client) {
|
|
26
|
+
const algorand = this.getAlgorand(client);
|
|
27
|
+
return (0, alg_1.checkAppOptIn)(appId, sender, algorand);
|
|
28
|
+
}
|
|
29
|
+
async buildRawTransactionAppOptIn(appId, sender, client) {
|
|
30
|
+
const algorand = this.getAlgorand(client);
|
|
31
|
+
if (typeof appId === "string") {
|
|
32
|
+
appId = BigInt(appId);
|
|
33
|
+
}
|
|
34
|
+
const composer = algorand.newGroup();
|
|
35
|
+
const signer = algorand.account.random();
|
|
36
|
+
composer.addAppCallMethodCall({
|
|
37
|
+
appId,
|
|
38
|
+
method: new algosdk_1.ABIMethod({
|
|
39
|
+
name: "optInToApplication",
|
|
40
|
+
desc: undefined,
|
|
41
|
+
args: [],
|
|
42
|
+
returns: { type: "void", desc: undefined },
|
|
43
|
+
events: [],
|
|
44
|
+
readonly: false,
|
|
45
|
+
}),
|
|
46
|
+
args: [],
|
|
47
|
+
sender,
|
|
48
|
+
signer: signer,
|
|
49
|
+
onComplete: algosdk_1.OnApplicationComplete.OptInOC,
|
|
50
|
+
});
|
|
51
|
+
const { transactions } = await composer.buildTransactions();
|
|
52
|
+
return (0, alg_1.encodeTxs)(...transactions);
|
|
53
|
+
}
|
|
54
|
+
getAlgorand(client) {
|
|
55
|
+
if (client) {
|
|
56
|
+
return algokit_utils_1.AlgorandClient.fromClients({ algod: client });
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const nodeRpcUrl = this.nodeRpcUrlsConfig.getNodeRpcUrl(index_1.ChainSymbol.ALG);
|
|
60
|
+
return algokit_utils_1.AlgorandClient.fromConfig({
|
|
61
|
+
algodConfig: { server: nodeRpcUrl },
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.DefaultAlgUtils = DefaultAlgUtils;
|
|
67
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/alg/index.ts"],"names":[],"mappings":";;;AAAA,qEAAmE;AACnE,qCAAoE;AACpE,uCAA6D;AAE7D,kDAAqF;AAYrF,MAAa,eAAe;IACL;IAArB,YAAqB,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAG,CAAC;IAE7D,KAAK,CAAC,eAAe,CAAC,OAAwB,EAAE,MAAc,EAAE,MAAgB;QAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,IAAA,qBAAe,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,6BAA6B,CACjC,OAAwB,EACxB,MAAc,EACd,MAAgB;QAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7F,OAAO,IAAA,eAAS,EAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAsB,EAAE,MAAc,EAAE,MAAgB;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,IAAA,mBAAa,EAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,2BAA2B,CAC/B,KAAsB,EACtB,MAAc,EACd,MAAgB;QAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACzC,QAAQ,CAAC,oBAAoB,CAAC;YAC5B,KAAK;YACL,MAAM,EAAE,IAAI,mBAAS,CAAC;gBACpB,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,EAAE;gBACR,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC1C,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,KAAK;aAChB,CAAC;YACF,IAAI,EAAE,EAAE;YACR,MAAM;YACN,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,+BAAqB,CAAC,OAAO;SAC1C,CAAC,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC5D,OAAO,IAAA,eAAS,EAAC,GAAG,YAAY,CAAC,CAAC;IACpC,CAAC;IAEO,WAAW,CAAC,MAAgB;QAClC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,8BAAc,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,mBAAW,CAAC,GAAG,CAAC,CAAC;YACzE,OAAO,8BAAc,CAAC,UAAU,CAAC;gBAC/B,WAAW,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAnED,0CAmEC","sourcesContent":["import { AlgorandClient } from \"@algorandfoundation/algokit-utils\";\nimport { ABIMethod, Algodv2, OnApplicationComplete } from \"algosdk\";\nimport { ChainSymbol, RawAlgTransaction } from \"../../index\";\nimport { NodeRpcUrlsConfig } from \"../../services\";\nimport { checkAppOptIn, checkAssetOptIn, 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 return checkAssetOptIn(assetId, sender, algorand);\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"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AllbridgeCoreSdkService } from "../services";
|
|
2
|
+
import { AlgUtils } from "./alg";
|
|
2
3
|
import { EvmUtils } from "./evm";
|
|
3
4
|
import { SolUtils } from "./sol";
|
|
4
5
|
import { SrbUtils } from "./srb";
|
|
@@ -11,6 +12,7 @@ export interface Utils {
|
|
|
11
12
|
sol: SolUtils;
|
|
12
13
|
sui: SuiUtils;
|
|
13
14
|
evm: EvmUtils;
|
|
15
|
+
alg: AlgUtils;
|
|
14
16
|
}
|
|
15
17
|
export declare class DefaultUtils implements Utils {
|
|
16
18
|
readonly service: AllbridgeCoreSdkService;
|
|
@@ -18,5 +20,6 @@ export declare class DefaultUtils implements Utils {
|
|
|
18
20
|
sol: SolUtils;
|
|
19
21
|
sui: SuiUtils;
|
|
20
22
|
evm: EvmUtils;
|
|
23
|
+
alg: AlgUtils;
|
|
21
24
|
constructor(service: AllbridgeCoreSdkService);
|
|
22
25
|
}
|
package/dist/src/utils/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DefaultUtils = void 0;
|
|
4
|
+
const alg_1 = require("./alg");
|
|
4
5
|
const evm_1 = require("./evm");
|
|
5
6
|
const sol_1 = require("./sol");
|
|
6
7
|
const srb_1 = require("./srb");
|
|
@@ -11,12 +12,14 @@ class DefaultUtils {
|
|
|
11
12
|
sol;
|
|
12
13
|
sui;
|
|
13
14
|
evm;
|
|
15
|
+
alg;
|
|
14
16
|
constructor(service) {
|
|
15
17
|
this.service = service;
|
|
16
18
|
this.srb = new srb_1.DefaultSrbUtils(service.nodeRpcUrlsConfig, service.params);
|
|
17
19
|
this.sol = new sol_1.DefaultSolUtils(service.nodeRpcUrlsConfig, service.params);
|
|
18
20
|
this.sui = new sui_1.DefaultSuiUtils(service.nodeRpcUrlsConfig, service.api);
|
|
19
21
|
this.evm = new evm_1.DefaultEvmUtils(service.nodeRpcUrlsConfig, service.params);
|
|
22
|
+
this.alg = new alg_1.DefaultAlgUtils(service.nodeRpcUrlsConfig);
|
|
20
23
|
}
|
|
21
24
|
}
|
|
22
25
|
exports.DefaultUtils = DefaultUtils;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;AACA,+BAAkD;AAClD,+BAAkD;AAClD,+BAAkD;AAClD,+BAAkD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;AACA,+BAAkD;AAClD,+BAAkD;AAClD,+BAAkD;AAClD,+BAAkD;AAClD,+BAAkD;AAalD,MAAa,YAAY;IAOF;IANrB,GAAG,CAAW;IACd,GAAG,CAAW;IACd,GAAG,CAAW;IACd,GAAG,CAAW;IACd,GAAG,CAAW;IAEd,YAAqB,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;QACnD,IAAI,CAAC,GAAG,GAAG,IAAI,qBAAe,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,GAAG,GAAG,IAAI,qBAAe,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,GAAG,GAAG,IAAI,qBAAe,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG,GAAG,IAAI,qBAAe,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,GAAG,GAAG,IAAI,qBAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5D,CAAC;CACF;AAdD,oCAcC","sourcesContent":["import { AllbridgeCoreSdkService } from \"../services\";\nimport { AlgUtils, DefaultAlgUtils } from \"./alg\";\nimport { DefaultEvmUtils, EvmUtils } from \"./evm\";\nimport { DefaultSolUtils, SolUtils } from \"./sol\";\nimport { DefaultSrbUtils, SrbUtils } from \"./srb\";\nimport { DefaultSuiUtils, SuiUtils } from \"./sui\";\n\n/**\n * Contains usefully methods\n */\nexport interface Utils {\n srb: SrbUtils;\n sol: SolUtils;\n sui: SuiUtils;\n evm: EvmUtils;\n alg: AlgUtils;\n}\n\nexport class DefaultUtils implements Utils {\n srb: SrbUtils;\n sol: SolUtils;\n sui: SuiUtils;\n evm: EvmUtils;\n alg: AlgUtils;\n\n constructor(readonly service: AllbridgeCoreSdkService) {\n this.srb = new DefaultSrbUtils(service.nodeRpcUrlsConfig, service.params);\n this.sol = new DefaultSolUtils(service.nodeRpcUrlsConfig, service.params);\n this.sui = new DefaultSuiUtils(service.nodeRpcUrlsConfig, service.api);\n this.evm = new DefaultEvmUtils(service.nodeRpcUrlsConfig, service.params);\n this.alg = new DefaultAlgUtils(service.nodeRpcUrlsConfig);\n }\n}\n"]}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "3.
|
|
1
|
+
export declare const VERSION = "3.27.0-alpha.10";
|
package/dist/src/version.js
CHANGED
package/dist/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,iBAAiB,CAAC","sourcesContent":["export const VERSION = \"3.27.0-alpha.10\";\n"]}
|