@allbridge/bridge-core-sdk 3.19.1-alpha.1 → 3.20.0-alpha.1
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 +5 -5
- package/dist/browser/index.js.map +4 -4
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +4 -4
- package/dist/src/chains/chain.enums.js +2 -2
- package/dist/src/chains/chain.enums.js.map +1 -1
- package/dist/src/chains/index.js.map +1 -1
- package/dist/src/chains/models.js.map +1 -1
- package/dist/src/client/core-api/api-client-caching.js +5 -0
- package/dist/src/client/core-api/api-client-caching.js.map +1 -1
- package/dist/src/client/core-api/api-client.js +1 -0
- package/dist/src/client/core-api/api-client.js.map +1 -1
- package/dist/src/client/core-api/core-api-mapper.js +6 -8
- package/dist/src/client/core-api/core-api-mapper.js.map +1 -1
- package/dist/src/client/core-api/core-api.model.js +3 -3
- package/dist/src/client/core-api/core-api.model.js.map +1 -1
- package/dist/src/client/core-api/core-client-base.js +1 -0
- package/dist/src/client/core-api/core-client-base.js.map +1 -1
- package/dist/src/client/core-api/core-client-filtered.js +2 -0
- package/dist/src/client/core-api/core-client-filtered.js.map +1 -1
- package/dist/src/client/core-api/core-client-pool-info-caching.js +3 -1
- package/dist/src/client/core-api/core-client-pool-info-caching.js.map +1 -1
- package/dist/src/configs/index.js.map +1 -1
- package/dist/src/configs/mainnet.d.ts +1 -1
- package/dist/src/configs/mainnet.js +1 -1
- package/dist/src/configs/mainnet.js.map +1 -1
- package/dist/src/exceptions/exceptions.js +2 -1
- package/dist/src/exceptions/exceptions.js.map +1 -1
- package/dist/src/exceptions/index.js.map +1 -1
- package/dist/src/index.d.ts +7 -7
- package/dist/src/index.js +11 -6
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/index.js +2 -2
- package/dist/src/models/index.js.map +1 -1
- package/dist/src/services/bridge/evm/index.d.ts +6 -8
- package/dist/src/services/bridge/evm/index.js +14 -12
- package/dist/src/services/bridge/evm/index.js.map +1 -1
- package/dist/src/services/bridge/index.d.ts +3 -4
- package/dist/src/services/bridge/index.js +16 -11
- package/dist/src/services/bridge/index.js.map +1 -1
- package/dist/src/services/bridge/models/bridge.d.ts +1 -1
- package/dist/src/services/bridge/models/bridge.js.map +1 -1
- package/dist/src/services/bridge/models/bridge.model.d.ts +18 -10
- package/dist/src/services/bridge/models/bridge.model.js.map +1 -1
- package/dist/src/services/bridge/models/index.js.map +1 -1
- package/dist/src/services/bridge/raw-bridge-transaction-builder.js +4 -0
- package/dist/src/services/bridge/raw-bridge-transaction-builder.js.map +1 -1
- package/dist/src/services/bridge/sol/index.d.ts +2 -2
- package/dist/src/services/bridge/sol/index.js +5 -5
- package/dist/src/services/bridge/sol/index.js.map +1 -1
- package/dist/src/services/bridge/sol/jupiter.js +2 -0
- package/dist/src/services/bridge/sol/jupiter.js.map +1 -1
- package/dist/src/services/bridge/srb/index.d.ts +3 -3
- package/dist/src/services/bridge/srb/index.js +4 -1
- package/dist/src/services/bridge/srb/index.js.map +1 -1
- package/dist/src/services/bridge/trx/index.d.ts +6 -6
- package/dist/src/services/bridge/trx/index.js +5 -3
- package/dist/src/services/bridge/trx/index.js.map +1 -1
- package/dist/src/services/bridge/utils.d.ts +12 -3
- package/dist/src/services/bridge/utils.js +22 -40
- package/dist/src/services/bridge/utils.js.map +1 -1
- package/dist/src/services/index.js +7 -3
- package/dist/src/services/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/evm/index.d.ts +4 -6
- package/dist/src/services/liquidity-pool/evm/index.js +102 -47
- package/dist/src/services/liquidity-pool/evm/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/index.d.ts +1 -1
- package/dist/src/services/liquidity-pool/index.js +14 -7
- package/dist/src/services/liquidity-pool/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/models/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/models/pool.js.map +1 -1
- package/dist/src/services/liquidity-pool/models/pool.model.js +2 -0
- package/dist/src/services/liquidity-pool/models/pool.model.js.map +1 -1
- package/dist/src/services/liquidity-pool/raw-pool-transaction-builder.js +4 -0
- package/dist/src/services/liquidity-pool/raw-pool-transaction-builder.js.map +1 -1
- package/dist/src/services/liquidity-pool/sol/index.js +7 -5
- package/dist/src/services/liquidity-pool/sol/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/srb/index.js +5 -2
- package/dist/src/services/liquidity-pool/srb/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/trx/index.d.ts +4 -5
- package/dist/src/services/liquidity-pool/trx/index.js +94 -38
- package/dist/src/services/liquidity-pool/trx/index.js.map +1 -1
- package/dist/src/services/models/abi/Bridge.d.ts +715 -0
- package/dist/src/services/models/abi/Bridge.js +925 -0
- package/dist/src/services/models/abi/Bridge.js.map +1 -0
- package/dist/src/services/models/abi/CctpBridge.d.ts +446 -0
- package/dist/src/services/models/abi/CctpBridge.js +575 -0
- package/dist/src/services/models/abi/CctpBridge.js.map +1 -0
- package/dist/src/services/models/abi/ERC20.d.ts +222 -0
- package/dist/src/services/models/abi/ERC20.js +294 -0
- package/dist/src/services/models/abi/ERC20.js.map +1 -0
- package/dist/src/services/models/abi/Pool.d.ts +746 -0
- package/dist/src/services/models/abi/Pool.js +965 -0
- package/dist/src/services/models/abi/Pool.js.map +1 -0
- package/dist/src/services/models/index.d.ts +35 -9
- package/dist/src/services/models/index.js.map +1 -1
- package/dist/src/services/models/sol/index.d.ts +2 -4
- package/dist/src/services/models/sol/index.js +1 -1
- package/dist/src/services/models/sol/index.js.map +1 -1
- package/dist/src/services/models/sol/types/bridge.js.map +1 -1
- package/dist/src/services/models/sol/types/cctp_bridge.js.map +1 -1
- package/dist/src/services/models/sol/types/gas_oracle.js.map +1 -1
- package/dist/src/services/models/srb/bridge-contract.d.ts +0 -1
- package/dist/src/services/models/srb/bridge-contract.js +32 -31
- package/dist/src/services/models/srb/bridge-contract.js.map +1 -1
- package/dist/src/services/models/srb/gas-oracle-contract.d.ts +0 -1
- package/dist/src/services/models/srb/gas-oracle-contract.js +13 -12
- package/dist/src/services/models/srb/gas-oracle-contract.js.map +1 -1
- package/dist/src/services/models/srb/messenger-contract.d.ts +0 -1
- package/dist/src/services/models/srb/messenger-contract.js +23 -22
- package/dist/src/services/models/srb/messenger-contract.js.map +1 -1
- package/dist/src/services/models/srb/pool-contract.d.ts +0 -1
- package/dist/src/services/models/srb/pool-contract.js +28 -27
- package/dist/src/services/models/srb/pool-contract.js.map +1 -1
- package/dist/src/services/models/srb/token-contract.js +19 -18
- package/dist/src/services/models/srb/token-contract.js.map +1 -1
- package/dist/src/services/models/srb/utils.js +3 -4
- package/dist/src/services/models/srb/utils.js.map +1 -1
- package/dist/src/services/token/evm/index.d.ts +5 -7
- package/dist/src/services/token/evm/index.js +24 -23
- package/dist/src/services/token/evm/index.js.map +1 -1
- package/dist/src/services/token/index.js +7 -8
- package/dist/src/services/token/index.js.map +1 -1
- package/dist/src/services/token/models/index.js.map +1 -1
- package/dist/src/services/token/models/token.js.map +1 -1
- package/dist/src/services/token/models/token.model.js.map +1 -1
- package/dist/src/services/token/sol/index.js +3 -2
- package/dist/src/services/token/sol/index.js.map +1 -1
- package/dist/src/services/token/srb/index.js +4 -1
- package/dist/src/services/token/srb/index.js.map +1 -1
- package/dist/src/services/token/trx/index.d.ts +3 -3
- package/dist/src/services/token/trx/index.js +7 -5
- package/dist/src/services/token/trx/index.js.map +1 -1
- package/dist/src/services/utils/calculation/index.js +2 -3
- package/dist/src/services/utils/calculation/index.js.map +1 -1
- package/dist/src/services/utils/index.js +5 -9
- package/dist/src/services/utils/index.js.map +1 -1
- package/dist/src/services/utils/sol/accounts.d.ts +0 -1
- package/dist/src/services/utils/sol/accounts.js +19 -20
- package/dist/src/services/utils/sol/accounts.js.map +1 -1
- package/dist/src/services/utils/sol/anchor-provider.js +1 -2
- package/dist/src/services/utils/sol/anchor-provider.js.map +1 -1
- package/dist/src/services/utils/sol/compute-budget.js +2 -3
- package/dist/src/services/utils/sol/compute-budget.js.map +1 -1
- package/dist/src/services/utils/sol/index.d.ts +0 -1
- package/dist/src/services/utils/sol/index.js +8 -9
- package/dist/src/services/utils/sol/index.js.map +1 -1
- package/dist/src/services/utils/trx/index.d.ts +1 -1
- package/dist/src/services/utils/trx/index.js +3 -6
- package/dist/src/services/utils/trx/index.js.map +1 -1
- package/dist/src/tokens-info/index.js +4 -0
- package/dist/src/tokens-info/index.js.map +1 -1
- package/dist/src/tokens-info/tokens-info.model.d.ts +1 -1
- package/dist/src/tokens-info/tokens-info.model.js.map +1 -1
- package/dist/src/utils/calculation/constants.js.map +1 -1
- package/dist/src/utils/calculation/index.js +17 -18
- package/dist/src/utils/calculation/index.js.map +1 -1
- package/dist/src/utils/calculation/swap-and-bridge-details.js +1 -2
- package/dist/src/utils/calculation/swap-and-bridge-details.js.map +1 -1
- package/dist/src/utils/calculation/swap-and-bridge-fee-calc.js +2 -3
- package/dist/src/utils/calculation/swap-and-bridge-fee-calc.js.map +1 -1
- package/dist/src/utils/index.js +3 -0
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/sol/index.js +2 -0
- package/dist/src/utils/sol/index.js.map +1 -1
- package/dist/src/utils/sol/utils.js +1 -2
- package/dist/src/utils/sol/utils.js.map +1 -1
- package/dist/src/utils/srb/index.d.ts +1 -1
- package/dist/src/utils/srb/index.js +7 -5
- package/dist/src/utils/srb/index.js.map +1 -1
- package/dist/src/utils/utils.js +7 -9
- package/dist/src/utils/utils.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 +55 -53
- package/dist/src/services/models/abi/Bridge.json +0 -919
- package/dist/src/services/models/abi/CctpBridge.json +0 -569
- package/dist/src/services/models/abi/ERC20.json +0 -288
- package/dist/src/services/models/abi/Pool.json +0 -959
- package/dist/src/services/models/abi/types/Bridge.d.ts +0 -145
- package/dist/src/services/models/abi/types/Bridge.js +0 -6
- package/dist/src/services/models/abi/types/Bridge.js.map +0 -1
- package/dist/src/services/models/abi/types/CctpBridge.d.ts +0 -117
- package/dist/src/services/models/abi/types/CctpBridge.js +0 -6
- package/dist/src/services/models/abi/types/CctpBridge.js.map +0 -1
- package/dist/src/services/models/abi/types/Pool.d.ts +0 -164
- package/dist/src/services/models/abi/types/Pool.js +0 -6
- package/dist/src/services/models/abi/types/Pool.js.map +0 -1
- package/dist/src/services/models/abi/types/index.d.ts +0 -2
- package/dist/src/services/models/abi/types/index.js +0 -3
- package/dist/src/services/models/abi/types/index.js.map +0 -1
- package/dist/src/services/models/abi/types/types.d.ts +0 -54
- package/dist/src/services/models/abi/types/types.js +0 -3
- package/dist/src/services/models/abi/types/types.js.map +0 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SolanaTokenService = void 0;
|
|
4
|
-
/* eslint-disable @typescript-eslint/ban-ts-comment */
|
|
5
4
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
6
5
|
const anchor_1 = require("@project-serum/anchor");
|
|
7
6
|
const web3_js_1 = require("@solana/web3.js");
|
|
@@ -11,11 +10,13 @@ const sol_1 = require("../../utils/sol");
|
|
|
11
10
|
const accounts_1 = require("../../utils/sol/accounts");
|
|
12
11
|
const token_1 = require("../models/token");
|
|
13
12
|
class SolanaTokenService extends token_1.ChainTokenService {
|
|
13
|
+
solanaRpcUrl;
|
|
14
|
+
api;
|
|
15
|
+
chainType = chain_enums_1.ChainType.SOLANA;
|
|
14
16
|
constructor(solanaRpcUrl, api) {
|
|
15
17
|
super();
|
|
16
18
|
this.solanaRpcUrl = solanaRpcUrl;
|
|
17
19
|
this.api = api;
|
|
18
|
-
this.chainType = chain_enums_1.ChainType.SOLANA;
|
|
19
20
|
}
|
|
20
21
|
approve(params) {
|
|
21
22
|
throw new exceptions_1.MethodNotSupportedError();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/token/sol/index.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/token/sol/index.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,kDAAiE;AACjE,6CAAwD;AACxD,6DAAwD;AAExD,oDAA8D;AAG9D,yCAAsD;AACtD,uDAAgE;AAEhE,2CAAoD;AAEpD,MAAa,kBAAmB,SAAQ,yBAAiB;IAI9C;IACA;IAJT,SAAS,GAAqB,uBAAS,CAAC,MAAM,CAAC;IAE/C,YACS,YAAoB,EACpB,GAAwB;QAE/B,KAAK,EAAE,CAAC;QAHD,iBAAY,GAAZ,YAAY,CAAQ;QACpB,QAAG,GAAH,GAAG,CAAqB;IAGjC,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;IAEO,mBAAmB,CAAC,cAAsB;QAChD,MAAM,UAAU,GAAG,IAAI,oBAAU,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAElE,MAAM,SAAS,GAAG,IAAI,mBAAS,CAAC,cAAc,CAAC,CAAC;QAEhD,OAAO,IAAI,uBAAc,CACvB,UAAU;QACV,mDAAmD;QACnD,EAAE,SAAS,EAAE,SAAS,EAAE,EACxB;YACE,mBAAmB,EAAE,WAAW;YAChC,UAAU,EAAE,WAAW;SACxB,CACF,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAA6B;QACxC,MAAM,IAAI,oCAAuB,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,iBAAiB,GAAG,MAAM,IAAA,+BAAoB,EAAC,IAAI,mBAAS,CAAC,OAAO,CAAC,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;YAChH,MAAM,WAAW,GAAG,MAAM,IAAA,yBAAmB,EAAC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;YACpG,OAAO,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;gBACvB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;gBAC/C,OAAO,GAAG,CAAC;YACb,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAmC;QAC7D,OAAO,CACL,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,mBAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CACpG,CAAC,QAAQ,EAAE,CAAC;IACf,CAAC;CACF;AA1DD,gDA0DC","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { AnchorProvider, Provider } from \"@project-serum/anchor\";\nimport { Connection, PublicKey } from \"@solana/web3.js\";\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 { getTokenAccountData } from \"../../utils/sol\";\nimport { getAssociatedAccount } from \"../../utils/sol/accounts\";\nimport { ApproveParamsDto, GetAllowanceParamsDto, GetTokenBalanceParams } from \"../models\";\nimport { ChainTokenService } from \"../models/token\";\n\nexport class SolanaTokenService extends ChainTokenService {\n chainType: ChainType.SOLANA = ChainType.SOLANA;\n\n constructor(\n public solanaRpcUrl: string,\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 private buildAnchorProvider(accountAddress: string): Provider {\n const connection = new Connection(this.solanaRpcUrl, \"confirmed\");\n\n const publicKey = new PublicKey(accountAddress);\n\n return new AnchorProvider(\n connection,\n // @ts-expect-error enough wallet for fetch actions\n { publicKey: publicKey },\n {\n preflightCommitment: \"confirmed\",\n commitment: \"confirmed\",\n },\n );\n }\n\n getAllowance(params: GetAllowanceParamsDto): Promise<string> {\n throw new MethodNotSupportedError();\n }\n\n async getTokenBalance(params: GetTokenBalanceParams): Promise<string> {\n const { account, token } = params;\n try {\n const associatedAccount = await getAssociatedAccount(new PublicKey(account), new PublicKey(token.tokenAddress));\n const accountData = await getTokenAccountData(associatedAccount, this.buildAnchorProvider(account));\n return accountData.amount.toString();\n } catch (e) {\n if (e instanceof Error) {\n e.message.startsWith(\"Account does not exist\");\n return \"0\";\n }\n throw e;\n }\n }\n\n async getNativeTokenBalance(params: GetNativeTokenBalanceParams): Promise<string> {\n return (\n await this.buildAnchorProvider(params.account).connection.getBalance(new PublicKey(params.account))\n ).toString();\n }\n}\n"]}
|
|
@@ -9,12 +9,15 @@ const models_1 = require("../../../models");
|
|
|
9
9
|
const calculation_1 = require("../../../utils/calculation");
|
|
10
10
|
const models_2 = require("../models");
|
|
11
11
|
class SrbTokenService extends models_2.ChainTokenService {
|
|
12
|
+
nodeRpcUrlsConfig;
|
|
13
|
+
params;
|
|
14
|
+
api;
|
|
15
|
+
chainType = index_1.ChainType.SRB;
|
|
12
16
|
constructor(nodeRpcUrlsConfig, params, api) {
|
|
13
17
|
super();
|
|
14
18
|
this.nodeRpcUrlsConfig = nodeRpcUrlsConfig;
|
|
15
19
|
this.params = params;
|
|
16
20
|
this.api = api;
|
|
17
|
-
this.chainType = index_1.ChainType.SRB;
|
|
18
21
|
}
|
|
19
22
|
getAllowance() {
|
|
20
23
|
throw new models_1.MethodNotSupportedError();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/token/srb/index.ts"],"names":[],"mappings":";;;AAAA,sDAA8D;AAC9D,4CAAyC;AACzC,6DAA0D;AAE1D,0CAA8E;AAC9E,4CAAsG;AACtG,4DAAqE;AAIrE,sCAA8C;AAK9C,MAAa,eAAgB,SAAQ,0BAAiB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/token/srb/index.ts"],"names":[],"mappings":";;;AAAA,sDAA8D;AAC9D,4CAAyC;AACzC,6DAA0D;AAE1D,0CAA8E;AAC9E,4CAAsG;AACtG,4DAAqE;AAIrE,sCAA8C;AAK9C,MAAa,eAAgB,SAAQ,0BAAiB;IAIzC;IACA;IACA;IALX,SAAS,GAAkB,iBAAS,CAAC,GAAG,CAAC;IAEzC,YACW,iBAAoC,EACpC,MAA+B,EAC/B,GAAwB;QAEjC,KAAK,EAAE,CAAC;QAJC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,WAAM,GAAN,MAAM,CAAyB;QAC/B,QAAG,GAAH,GAAG,CAAqB;IAGnC,CAAC;IAED,YAAY;QACV,MAAM,IAAI,gCAAuB,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACrC,MAAM,IAAI,gBAAQ,CAAC,4BAA4B,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE7E,MAAM,OAAO,GAAG,IAAI,qBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,yBAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3F,IAAI,cAAc,CAAC;QACnB,IAAI,CAAC;YACH,cAAc,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,2BAAa,EAAE,CAAC;gBACjC,OAAO,GAAG,CAAC;YACb,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;QAEzC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAC/B,CAAC,OAAO,EAA+B,EAAE,CACvC,CAAC,OAAO,CAAC,UAAU,KAAK,kBAAkB,IAAI,OAAO,CAAC,UAAU,KAAK,mBAAmB,CAAC;YACzF,OAAO,CAAC,UAAU,IAAI,MAAM;YAC5B,OAAO,CAAC,YAAY,IAAI,eAAe,CAC1C,CAAC;QACF,IAAI,WAAW,EAAE,OAAO,EAAE,CAAC;YACzB,OAAO,IAAA,qCAAuB,EAC5B,WAAW,CAAC,OAAO,EACnB,eAAM,CAAC,sBAAsB,CAAC,eAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAC3F,CAAC,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAmC;QAC7D,MAAM,OAAO,GAAG,IAAI,qBAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,yBAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3F,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC;QAEzC,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAgC,EAAE,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC;QAChH,IAAI,aAAa,EAAE,OAAO,EAAE,CAAC;YAC3B,OAAO,IAAA,qCAAuB,EAC5B,aAAa,CAAC,OAAO,EACrB,eAAM,CAAC,sBAAsB,CAAC,eAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CACrF,CAAC,OAAO,EAAE,CAAC;QACd,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO;QACL,MAAM,IAAI,gCAAuB,EAAE,CAAC;IACtC,CAAC;IAED,0BAA0B;QACxB,MAAM,IAAI,gCAAuB,EAAE,CAAC;IACtC,CAAC;CACF;AAtED,0CAsEC","sourcesContent":["import { Horizon, NotFoundError } from \"@stellar/stellar-sdk\";\nimport { Chains } from \"../../../chains\";\nimport { ChainSymbol } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { AllbridgeCoreSdkOptions, ChainType, SdkError } from \"../../../index\";\nimport { GetTokenBalanceParams, MethodNotSupportedError, TransactionResponse } from \"../../../models\";\nimport { convertFloatAmountToInt } from \"../../../utils/calculation\";\nimport { GetNativeTokenBalanceParams } from \"../../bridge/models\";\nimport { NodeRpcUrlsConfig } from \"../../index\";\nimport { RawTransaction } from \"../../models\";\nimport { ChainTokenService } from \"../models\";\n\nimport BalanceLineAsset = Horizon.HorizonApi.BalanceLineAsset;\nimport BalanceLineNative = Horizon.HorizonApi.BalanceLineNative;\n\nexport class SrbTokenService extends ChainTokenService {\n chainType: ChainType.SRB = ChainType.SRB;\n\n constructor(\n readonly nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n readonly params: AllbridgeCoreSdkOptions,\n readonly api: AllbridgeCoreClient,\n ) {\n super();\n }\n\n getAllowance(): Promise<string> {\n throw new MethodNotSupportedError();\n }\n\n async getTokenBalance(params: GetTokenBalanceParams): Promise<string> {\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"OriginTokenAddress missing\");\n }\n const [symbol, srbTokenAddress] = params.token.originTokenAddress.split(\":\");\n\n const stellar = new Horizon.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl(ChainSymbol.STLR));\n let stellarAccount;\n try {\n stellarAccount = await stellar.loadAccount(params.account);\n } catch (err) {\n if (err instanceof NotFoundError) {\n return \"0\";\n }\n throw err;\n }\n const balances = stellarAccount.balances;\n\n const balanceInfo = balances.find(\n (balance): balance is BalanceLineAsset =>\n (balance.asset_type === \"credit_alphanum4\" || balance.asset_type === \"credit_alphanum12\") &&\n balance.asset_code == symbol &&\n balance.asset_issuer == srbTokenAddress,\n );\n if (balanceInfo?.balance) {\n return convertFloatAmountToInt(\n balanceInfo.balance,\n Chains.getChainDecimalsByType(Chains.getChainProperty(params.token.chainSymbol).chainType),\n ).toFixed();\n }\n return \"0\";\n }\n\n async getNativeTokenBalance(params: GetNativeTokenBalanceParams): Promise<string> {\n const stellar = new Horizon.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl(ChainSymbol.STLR));\n const stellarAccount = await stellar.loadAccount(params.account);\n const balances = stellarAccount.balances;\n\n const nativeBalance = balances.find((balance): balance is BalanceLineNative => balance.asset_type === \"native\");\n if (nativeBalance?.balance) {\n return convertFloatAmountToInt(\n nativeBalance.balance,\n Chains.getChainDecimalsByType(Chains.getChainProperty(params.chainSymbol).chainType),\n ).toFixed();\n }\n return \"0\";\n }\n\n approve(): Promise<TransactionResponse> {\n throw new MethodNotSupportedError();\n }\n\n buildRawTransactionApprove(): Promise<RawTransaction> {\n throw new MethodNotSupportedError();\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import TronWeb from "tronweb";
|
|
1
|
+
import { TronWeb } from "tronweb";
|
|
2
2
|
import { AllbridgeCoreClient } from "../../../client/core-api/core-client-base";
|
|
3
3
|
import { ChainType, GetTokenBalanceParams, TransactionResponse } from "../../../models";
|
|
4
4
|
import { GetNativeTokenBalanceParams } from "../../bridge/models";
|
|
@@ -7,10 +7,10 @@ import { ApproveParamsDto, GetAllowanceParamsDto } from "../models";
|
|
|
7
7
|
import { ChainTokenService } from "../models/token";
|
|
8
8
|
export declare const MAX_AMOUNT = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
|
|
9
9
|
export declare class TronTokenService extends ChainTokenService {
|
|
10
|
-
tronWeb:
|
|
10
|
+
tronWeb: TronWeb;
|
|
11
11
|
api: AllbridgeCoreClient;
|
|
12
12
|
chainType: ChainType.TRX;
|
|
13
|
-
constructor(tronWeb:
|
|
13
|
+
constructor(tronWeb: TronWeb, api: AllbridgeCoreClient);
|
|
14
14
|
getAllowance(params: GetAllowanceParamsDto): Promise<string>;
|
|
15
15
|
getTokenBalance(params: GetTokenBalanceParams): Promise<string>;
|
|
16
16
|
getNativeTokenBalance(params: GetNativeTokenBalanceParams): Promise<string>;
|
|
@@ -6,17 +6,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.TronTokenService = exports.MAX_AMOUNT = void 0;
|
|
7
7
|
const exceptions_1 = require("../../../exceptions");
|
|
8
8
|
const models_1 = require("../../../models");
|
|
9
|
-
const
|
|
9
|
+
const ERC20_1 = __importDefault(require("../../models/abi/ERC20"));
|
|
10
10
|
const utils_1 = require("../../utils");
|
|
11
11
|
const trx_1 = require("../../utils/trx");
|
|
12
12
|
const token_1 = require("../models/token");
|
|
13
13
|
exports.MAX_AMOUNT = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
|
|
14
14
|
class TronTokenService extends token_1.ChainTokenService {
|
|
15
|
+
tronWeb;
|
|
16
|
+
api;
|
|
17
|
+
chainType = models_1.ChainType.TRX;
|
|
15
18
|
constructor(tronWeb, api) {
|
|
16
19
|
super();
|
|
17
20
|
this.tronWeb = tronWeb;
|
|
18
21
|
this.api = api;
|
|
19
|
-
this.chainType = models_1.ChainType.TRX;
|
|
20
22
|
}
|
|
21
23
|
async getAllowance(params) {
|
|
22
24
|
const { token: { tokenAddress }, owner, } = params;
|
|
@@ -47,12 +49,12 @@ class TronTokenService extends token_1.ChainTokenService {
|
|
|
47
49
|
const methodSignature = "approve(address,uint256)";
|
|
48
50
|
return this.buildRawTransaction(tokenAddress, methodSignature, parameter, value, owner);
|
|
49
51
|
}
|
|
50
|
-
|
|
51
|
-
return
|
|
52
|
+
getContract(contractAddress) {
|
|
53
|
+
return this.tronWeb.contract(ERC20_1.default.abi, contractAddress);
|
|
52
54
|
}
|
|
53
55
|
async buildRawTransaction(contractAddress, methodSignature, parameters, value, fromAddress) {
|
|
54
56
|
const transactionObject = await this.tronWeb.transactionBuilder.triggerSmartContract(contractAddress, methodSignature, {
|
|
55
|
-
callValue: value,
|
|
57
|
+
callValue: +value,
|
|
56
58
|
}, parameters, fromAddress);
|
|
57
59
|
if (!transactionObject?.result?.result) {
|
|
58
60
|
throw new exceptions_1.SdkError("Unknown error: " + JSON.stringify(transactionObject, null, 2));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/token/trx/index.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/token/trx/index.ts"],"names":[],"mappings":";;;;;;AAEA,oDAA+C;AAC/C,4CAAwF;AAGxF,mEAA2C;AAC3C,uCAA0C;AAC1C,yCAAqD;AAErD,2CAAoD;AAEvC,QAAA,UAAU,GAAG,oEAAoE,CAAC;AAE/F,MAAa,gBAAiB,SAAQ,yBAAiB;IAI5C;IACA;IAJT,SAAS,GAAkB,kBAAS,CAAC,GAAG,CAAC;IAEzC,YACS,OAAgB,EAChB,GAAwB;QAE/B,KAAK,EAAE,CAAC;QAHD,YAAO,GAAP,OAAO,CAAS;QAChB,QAAG,GAAH,GAAG,CAAqB;IAGjC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAA6B;QAC9C,MAAM,EACJ,KAAK,EAAE,EAAE,YAAY,EAAE,EACvB,KAAK,GACN,GAAG,MAAM,CAAC;QACX,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACtF,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAmC;QAC7D,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACrE,OAAO,MAAM,IAAA,wBAAkB,EAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,MAAwB;QACvD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACxD,MAAM,SAAS,GAAG,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,kBAAU,CAAC,CAAC,CAAC,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;QAEzE,MAAM,SAAS,GAAG;YAChB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;YACnC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;SACtC,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,CAAC;QAClB,MAAM,eAAe,GAAG,0BAA0B,CAAC;QACnD,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1F,CAAC;IAEO,WAAW,CAAC,eAAuB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAK,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,eAAuB,EACvB,eAAuB,EACvB,UAA0C,EAC1C,KAAa,EACb,WAAmB;QAEnB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CAClF,eAAe,EACf,eAAe,EACf;YACE,SAAS,EAAE,CAAC,KAAK;SAClB,EACD,UAAU,EACV,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YACvC,MAAM,IAAI,qBAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,iBAAiB,CAAC,WAAW,CAAC;IACvC,CAAC;CACF;AAzED,4CAyEC","sourcesContent":["import { TronWeb } from \"tronweb\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { SdkError } from \"../../../exceptions\";\nimport { ChainType, GetTokenBalanceParams, TransactionResponse } from \"../../../models\";\nimport { GetNativeTokenBalanceParams } from \"../../bridge/models\";\nimport { RawTransaction, SmartContractMethodParameter } from \"../../models\";\nimport ERC20 from \"../../models/abi/ERC20\";\nimport { amountToHex } from \"../../utils\";\nimport { sendRawTransaction } from \"../../utils/trx\";\nimport { ApproveParamsDto, GetAllowanceParamsDto } from \"../models\";\nimport { ChainTokenService } from \"../models/token\";\n\nexport const MAX_AMOUNT = \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\";\n\nexport class TronTokenService extends ChainTokenService {\n chainType: ChainType.TRX = ChainType.TRX;\n\n constructor(\n public tronWeb: TronWeb,\n public api: AllbridgeCoreClient,\n ) {\n super();\n }\n\n async getAllowance(params: GetAllowanceParamsDto): Promise<string> {\n const {\n token: { tokenAddress },\n owner,\n } = params;\n const tokenContract = await this.getContract(tokenAddress);\n const allowance = await tokenContract.methods.allowance(owner, params.spender).call();\n return allowance.toString();\n }\n\n async getTokenBalance(params: GetTokenBalanceParams): Promise<string> {\n const contract = await this.getContract(params.token.tokenAddress);\n const balance = await contract.balanceOf(params.account).call();\n return balance.toString();\n }\n\n async getNativeTokenBalance(params: GetNativeTokenBalanceParams): Promise<string> {\n return (await this.tronWeb.trx.getBalance(params.account)).toString();\n }\n\n async approve(params: ApproveParamsDto): Promise<TransactionResponse> {\n const rawTransaction = await this.buildRawTransactionApprove(params);\n return await sendRawTransaction(this.tronWeb, rawTransaction);\n }\n\n async buildRawTransactionApprove(params: ApproveParamsDto): Promise<RawTransaction> {\n const { tokenAddress, spender, owner, amount } = params;\n const amountHex = amount == undefined ? MAX_AMOUNT : amountToHex(amount);\n\n const parameter = [\n { type: \"address\", value: spender },\n { type: \"uint256\", value: amountHex },\n ];\n const value = \"0\";\n const methodSignature = \"approve(address,uint256)\";\n return this.buildRawTransaction(tokenAddress, methodSignature, parameter, value, owner);\n }\n\n private getContract(contractAddress: string): any {\n return this.tronWeb.contract(ERC20.abi, contractAddress);\n }\n\n private async buildRawTransaction(\n contractAddress: string,\n methodSignature: string,\n parameters: SmartContractMethodParameter[],\n value: string,\n fromAddress: string,\n ): Promise<RawTransaction> {\n const transactionObject = await this.tronWeb.transactionBuilder.triggerSmartContract(\n contractAddress,\n methodSignature,\n {\n callValue: +value,\n },\n parameters,\n fromAddress,\n );\n if (!transactionObject?.result?.result) {\n throw new SdkError(\"Unknown error: \" + JSON.stringify(transactionObject, null, 2));\n }\n return transactionObject.transaction;\n }\n}\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.depositAmountToVUsd = depositAmountToVUsd;
|
|
4
|
+
exports.vUsdToWithdrawalAmount = vUsdToWithdrawalAmount;
|
|
4
5
|
const big_js_1 = require("big.js");
|
|
5
6
|
const calculation_1 = require("../../../utils/calculation");
|
|
6
7
|
const constants_1 = require("../../../utils/calculation/constants");
|
|
@@ -23,10 +24,8 @@ function depositAmountToVUsd(amount, aValue, dValue, tokenBalance, vUsdBalance)
|
|
|
23
24
|
const newD = (0, big_js_1.Big)((0, calculation_1.getD)(aValue, newTokenBalance.toFixed(), newVUsdBalance.toFixed()));
|
|
24
25
|
return newD.minus(oldD).toFixed();
|
|
25
26
|
}
|
|
26
|
-
exports.depositAmountToVUsd = depositAmountToVUsd;
|
|
27
27
|
function vUsdToWithdrawalAmount(lpAmount) {
|
|
28
28
|
const lpAmountSP = (0, calculation_1.convertFloatAmountToInt)(lpAmount, constants_1.SYSTEM_PRECISION);
|
|
29
29
|
return (0, big_js_1.Big)(lpAmountSP).round().toFixed();
|
|
30
30
|
}
|
|
31
|
-
exports.vUsdToWithdrawalAmount = vUsdToWithdrawalAmount;
|
|
32
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/utils/calculation/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/utils/calculation/index.ts"],"names":[],"mappings":";;AAIA,kDA0BC;AAED,wDAGC;AAnCD,mCAA6B;AAC7B,4DAA2E;AAC3E,oEAAwE;AAExE,SAAgB,mBAAmB,CACjC,MAAc,EACd,MAAc,EACd,MAAc,EACd,YAAoB,EACpB,WAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAA,qCAAuB,EAAC,MAAM,EAAE,4BAAgB,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,IAAA,YAAG,EAAC,QAAQ,CAAC,CAAC;IAElC,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,MAAM,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,IAAA,YAAG,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,eAAe,CAAC;IACpB,IAAI,cAAc,CAAC;IAEnB,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtC,eAAe,GAAG,IAAA,YAAG,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,cAAc,GAAG,IAAA,YAAG,EAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,IAAA,YAAG,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACxF,cAAc,GAAG,IAAA,YAAG,EAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,IAAA,kBAAI,EAAC,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC;AAED,SAAgB,sBAAsB,CAAC,QAAgB;IACrD,MAAM,UAAU,GAAG,IAAA,qCAAuB,EAAC,QAAQ,EAAE,4BAAgB,CAAC,CAAC;IACvE,OAAO,IAAA,YAAG,EAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;AAC3C,CAAC","sourcesContent":["import { Big } from \"big.js\";\nimport { convertFloatAmountToInt, getD } from \"../../../utils/calculation\";\nimport { SYSTEM_PRECISION } from \"../../../utils/calculation/constants\";\n\nexport function depositAmountToVUsd(\n amount: string,\n aValue: string,\n dValue: string,\n tokenBalance: string,\n vUsdBalance: string,\n): string {\n const amountSP = convertFloatAmountToInt(amount, SYSTEM_PRECISION);\n const amountSPBig = Big(amountSP);\n\n const oldD = Big(dValue);\n const oldBalance = Big(tokenBalance).plus(vUsdBalance);\n\n let newTokenBalance;\n let newVUsdBalance;\n\n if (oldD.eq(0) || oldBalance.eq(0)) {\n const halfAmount = amountSPBig.div(2);\n newTokenBalance = Big(tokenBalance).plus(halfAmount);\n newVUsdBalance = Big(vUsdBalance).plus(halfAmount);\n } else {\n newTokenBalance = Big(tokenBalance).plus(amountSPBig.mul(tokenBalance).div(oldBalance));\n newVUsdBalance = Big(vUsdBalance).plus(amountSPBig.mul(vUsdBalance).div(oldBalance));\n }\n const newD = Big(getD(aValue, newTokenBalance.toFixed(), newVUsdBalance.toFixed()));\n return newD.minus(oldD).toFixed();\n}\n\nexport function vUsdToWithdrawalAmount(lpAmount: string): string {\n const lpAmountSP = convertFloatAmountToInt(lpAmount, SYSTEM_PRECISION);\n return Big(lpAmountSP).round().toFixed();\n}\n"]}
|
|
@@ -3,23 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.promisify =
|
|
6
|
+
exports.promisify = void 0;
|
|
7
|
+
exports.amountToHex = amountToHex;
|
|
8
|
+
exports.sleep = sleep;
|
|
7
9
|
const bn_js_1 = __importDefault(require("bn.js"));
|
|
8
10
|
function amountToHex(amount) {
|
|
9
11
|
return "0x" + new bn_js_1.default(amount).toString("hex");
|
|
10
12
|
}
|
|
11
|
-
exports.amountToHex = amountToHex;
|
|
12
13
|
function sleep(ms) {
|
|
13
14
|
return new Promise((resolve) => setTimeout(() => resolve(), ms));
|
|
14
15
|
}
|
|
15
|
-
exports.sleep = sleep;
|
|
16
16
|
const promisify =
|
|
17
17
|
// prettier-ignore
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/
|
|
19
|
-
(func) => (...args) => new Promise((resolve, reject) =>
|
|
20
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
21
|
-
func(...args, (err, result) => (err ? reject(err) : resolve(result)))
|
|
22
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
23
|
-
);
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
19
|
+
(func) => (...args) => new Promise((resolve, reject) => func(...args, (err, result) => (err ? reject(err) : resolve(result))));
|
|
24
20
|
exports.promisify = promisify;
|
|
25
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/utils/index.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/utils/index.ts"],"names":[],"mappings":";;;;;;AAEA,kCAEC;AAED,sBAEC;AARD,kDAAuB;AAEvB,SAAgB,WAAW,CAAC,MAAc;IACxC,OAAO,IAAI,GAAG,IAAI,eAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,SAAgB,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC;AAEM,MAAM,SAAS;AACpB,kBAAkB;AAClB,sEAAsE;AACtE,CAAC,IAAc,EAAE,EAAE,CACjB,CAAC,GAAG,IAAW,EAAE,EAAE,CACjB,IAAI,OAAO,CACT,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAClB,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAU,EAAE,MAAW,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CACpF,CAAC;AARK,QAAA,SAAS,aAQd","sourcesContent":["import BN from \"bn.js\";\n\nexport function amountToHex(amount: string): string {\n return \"0x\" + new BN(amount).toString(\"hex\");\n}\n\nexport function sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(() => resolve(), ms));\n}\n\nexport const promisify =\n // prettier-ignore\n // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\n (func: Function) =>\n (...args: any[]) =>\n new Promise<any>(\n (resolve, reject) =>\n func(...args, (err: Error, result: any) => (err ? reject(err) : resolve(result)))\n );\n"]}
|
|
@@ -23,7 +23,22 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.getAssociatedAccount = getAssociatedAccount;
|
|
27
|
+
exports.getConfigAccount = getConfigAccount;
|
|
28
|
+
exports.getLockAccount = getLockAccount;
|
|
29
|
+
exports.getPriceAccount = getPriceAccount;
|
|
30
|
+
exports.getAuthorityAccount = getAuthorityAccount;
|
|
31
|
+
exports.getCctpAuthorityAccount = getCctpAuthorityAccount;
|
|
32
|
+
exports.getBridgeTokenAccount = getBridgeTokenAccount;
|
|
33
|
+
exports.getOtherChainTokenAccount = getOtherChainTokenAccount;
|
|
34
|
+
exports.getChainBridgeAccount = getChainBridgeAccount;
|
|
35
|
+
exports.getGasUsageAccount = getGasUsageAccount;
|
|
36
|
+
exports.getSendMessageAccount = getSendMessageAccount;
|
|
37
|
+
exports.getUserDepositAccount = getUserDepositAccount;
|
|
38
|
+
exports.getCctpBridgeAccount = getCctpBridgeAccount;
|
|
39
|
+
exports.getCctpBridgeTokenAccount = getCctpBridgeTokenAccount;
|
|
40
|
+
exports.getCctpLockAccount = getCctpLockAccount;
|
|
41
|
+
exports.getCctpAccounts = getCctpAccounts;
|
|
27
42
|
const anchor = __importStar(require("@project-serum/anchor"));
|
|
28
43
|
const web3_js_1 = require("@solana/web3.js");
|
|
29
44
|
async function getAssociatedAccount(publicKey, mintAccount) {
|
|
@@ -32,78 +47,63 @@ async function getAssociatedAccount(publicKey, mintAccount) {
|
|
|
32
47
|
owner: publicKey,
|
|
33
48
|
});
|
|
34
49
|
}
|
|
35
|
-
exports.getAssociatedAccount = getAssociatedAccount;
|
|
36
50
|
async function getConfigAccount(programId) {
|
|
37
51
|
const [configPda] = await web3_js_1.PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode("config")], programId);
|
|
38
52
|
return configPda;
|
|
39
53
|
}
|
|
40
|
-
exports.getConfigAccount = getConfigAccount;
|
|
41
54
|
async function getLockAccount(nonce, bridgeProgramId) {
|
|
42
55
|
const [lockPda] = await web3_js_1.PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode("lock"), Uint8Array.from(nonce)], bridgeProgramId);
|
|
43
56
|
return lockPda;
|
|
44
57
|
}
|
|
45
|
-
exports.getLockAccount = getLockAccount;
|
|
46
58
|
async function getPriceAccount(chainId, gasOracleProgramId) {
|
|
47
59
|
const [pricePda] = await web3_js_1.PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode("price_v2"), Uint8Array.from([chainId])], gasOracleProgramId);
|
|
48
60
|
return pricePda;
|
|
49
61
|
}
|
|
50
|
-
exports.getPriceAccount = getPriceAccount;
|
|
51
62
|
async function getAuthorityAccount(bridgeProgramId) {
|
|
52
63
|
const configAccount = await getConfigAccount(bridgeProgramId);
|
|
53
64
|
const [poolAuthority] = await web3_js_1.PublicKey.findProgramAddress([configAccount.toBuffer()], bridgeProgramId);
|
|
54
65
|
return poolAuthority;
|
|
55
66
|
}
|
|
56
|
-
exports.getAuthorityAccount = getAuthorityAccount;
|
|
57
67
|
async function getCctpAuthorityAccount(cctpBridgeAccount, cctpBridgeProgramId) {
|
|
58
68
|
const [poolAuthority] = await web3_js_1.PublicKey.findProgramAddress([cctpBridgeAccount.toBuffer()], cctpBridgeProgramId);
|
|
59
69
|
return poolAuthority;
|
|
60
70
|
}
|
|
61
|
-
exports.getCctpAuthorityAccount = getCctpAuthorityAccount;
|
|
62
71
|
async function getBridgeTokenAccount(mintAccount, bridgeProgramId) {
|
|
63
72
|
const [poolPda] = await web3_js_1.PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode("token"), mintAccount.toBytes()], bridgeProgramId);
|
|
64
73
|
return poolPda;
|
|
65
74
|
}
|
|
66
|
-
exports.getBridgeTokenAccount = getBridgeTokenAccount;
|
|
67
75
|
async function getOtherChainTokenAccount(chainId, token, bridgeProgramId) {
|
|
68
76
|
const [otherChainTokenPda] = await web3_js_1.PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode("other_bridge_token"), Buffer.from([chainId]), token], bridgeProgramId);
|
|
69
77
|
return otherChainTokenPda;
|
|
70
78
|
}
|
|
71
|
-
exports.getOtherChainTokenAccount = getOtherChainTokenAccount;
|
|
72
79
|
async function getChainBridgeAccount(chainId, bridgeProgramId) {
|
|
73
80
|
const [chainBridgePda] = await web3_js_1.PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode("chain_bridge"), Uint8Array.from([chainId])], bridgeProgramId);
|
|
74
81
|
return chainBridgePda;
|
|
75
82
|
}
|
|
76
|
-
exports.getChainBridgeAccount = getChainBridgeAccount;
|
|
77
83
|
async function getGasUsageAccount(chainId, messengerProgramId) {
|
|
78
84
|
const [chainBridgePda] = await web3_js_1.PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode("gas_usage"), Uint8Array.from([chainId])], messengerProgramId);
|
|
79
85
|
return chainBridgePda;
|
|
80
86
|
}
|
|
81
|
-
exports.getGasUsageAccount = getGasUsageAccount;
|
|
82
87
|
async function getSendMessageAccount(messageWithSigner, messengerProgramId) {
|
|
83
88
|
const [sentMessagePda] = await web3_js_1.PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode("sent_message"), messageWithSigner], messengerProgramId);
|
|
84
89
|
return sentMessagePda;
|
|
85
90
|
}
|
|
86
|
-
exports.getSendMessageAccount = getSendMessageAccount;
|
|
87
91
|
async function getUserDepositAccount(userPublicKey, tokenMintAccount, bridgeProgramId) {
|
|
88
92
|
const [userDepositPda] = await web3_js_1.PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode("user_deposit"), tokenMintAccount.toBytes(), userPublicKey.toBytes()], bridgeProgramId);
|
|
89
93
|
return userDepositPda;
|
|
90
94
|
}
|
|
91
|
-
exports.getUserDepositAccount = getUserDepositAccount;
|
|
92
95
|
async function getCctpBridgeAccount(mintAccount, cctpBridgeProgramId) {
|
|
93
96
|
const [configPda] = await web3_js_1.PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode("cctp_bridge"), mintAccount.toBytes()], cctpBridgeProgramId);
|
|
94
97
|
return configPda;
|
|
95
98
|
}
|
|
96
|
-
exports.getCctpBridgeAccount = getCctpBridgeAccount;
|
|
97
99
|
async function getCctpBridgeTokenAccount(token, cctpBridgeProgramId) {
|
|
98
100
|
const [poolPda] = await web3_js_1.PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode("token"), token.toBytes()], cctpBridgeProgramId);
|
|
99
101
|
return poolPda;
|
|
100
102
|
}
|
|
101
|
-
exports.getCctpBridgeTokenAccount = getCctpBridgeTokenAccount;
|
|
102
103
|
function getCctpLockAccount(cctpBridgeProgramId, messageSentEventDataAccount) {
|
|
103
104
|
const [tokenMessengerEventAuthority] = web3_js_1.PublicKey.findProgramAddressSync([anchor.utils.bytes.utf8.encode("lock"), messageSentEventDataAccount.toBuffer()], cctpBridgeProgramId);
|
|
104
105
|
return tokenMessengerEventAuthority;
|
|
105
106
|
}
|
|
106
|
-
exports.getCctpLockAccount = getCctpLockAccount;
|
|
107
107
|
function getCctpAccounts(domain, mintAccount, cctpTransmitterProgramId, cctpTokenMessengerMinter) {
|
|
108
108
|
const messageTransmitterAccount = findProgramAddress("message_transmitter", cctpTransmitterProgramId);
|
|
109
109
|
const tokenMessenger = findProgramAddress("token_messenger", cctpTokenMessengerMinter);
|
|
@@ -124,7 +124,6 @@ function getCctpAccounts(domain, mintAccount, cctpTransmitterProgramId, cctpToke
|
|
|
124
124
|
authorityPda,
|
|
125
125
|
};
|
|
126
126
|
}
|
|
127
|
-
exports.getCctpAccounts = getCctpAccounts;
|
|
128
127
|
function findProgramAddress(label, programId, extraSeeds = []) {
|
|
129
128
|
const seeds = [Buffer.from(anchor.utils.bytes.utf8.encode(label))];
|
|
130
129
|
for (const extraSeed of extraSeeds) {
|
|
@@ -132,13 +131,13 @@ function findProgramAddress(label, programId, extraSeeds = []) {
|
|
|
132
131
|
seeds.push(Buffer.from(anchor.utils.bytes.utf8.encode(extraSeed)));
|
|
133
132
|
}
|
|
134
133
|
else if (Array.isArray(extraSeed)) {
|
|
135
|
-
seeds.push(Buffer.from(extraSeed));
|
|
134
|
+
seeds.push(Buffer.from(Uint8Array.from(extraSeed)));
|
|
136
135
|
}
|
|
137
136
|
else if (Buffer.isBuffer(extraSeed)) {
|
|
138
|
-
seeds.push(extraSeed);
|
|
137
|
+
seeds.push(Buffer.from(Uint8Array.from(extraSeed)));
|
|
139
138
|
}
|
|
140
139
|
else {
|
|
141
|
-
seeds.push(extraSeed.toBuffer());
|
|
140
|
+
seeds.push(Buffer.from(Uint8Array.from(extraSeed.toBuffer())));
|
|
142
141
|
}
|
|
143
142
|
}
|
|
144
143
|
const res = web3_js_1.PublicKey.findProgramAddressSync(seeds, programId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/accounts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/accounts.ts"],"names":[],"mappings":"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","sourcesContent":["import * as anchor from \"@project-serum/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nexport async function getAssociatedAccount(publicKey: PublicKey, mintAccount: PublicKey): Promise<PublicKey> {\n return anchor.utils.token.associatedAddress({\n mint: mintAccount,\n owner: publicKey,\n });\n}\n\nexport async function getConfigAccount(programId: PublicKey): Promise<PublicKey> {\n const [configPda] = await PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode(\"config\")], programId);\n return configPda;\n}\n\nexport async function getLockAccount(nonce: number[], bridgeProgramId: PublicKey): Promise<PublicKey> {\n const [lockPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"lock\"), Uint8Array.from(nonce)],\n bridgeProgramId,\n );\n return lockPda;\n}\n\nexport async function getPriceAccount(chainId: number, gasOracleProgramId: PublicKey): Promise<PublicKey> {\n const [pricePda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"price_v2\"), Uint8Array.from([chainId])],\n gasOracleProgramId,\n );\n return pricePda;\n}\n\nexport async function getAuthorityAccount(bridgeProgramId: PublicKey): Promise<PublicKey> {\n const configAccount = await getConfigAccount(bridgeProgramId);\n const [poolAuthority] = await PublicKey.findProgramAddress([configAccount.toBuffer()], bridgeProgramId);\n return poolAuthority;\n}\n\nexport async function getCctpAuthorityAccount(\n cctpBridgeAccount: PublicKey,\n cctpBridgeProgramId: PublicKey,\n): Promise<PublicKey> {\n const [poolAuthority] = await PublicKey.findProgramAddress([cctpBridgeAccount.toBuffer()], cctpBridgeProgramId);\n return poolAuthority;\n}\n\nexport async function getBridgeTokenAccount(mintAccount: PublicKey, bridgeProgramId: PublicKey): Promise<PublicKey> {\n const [poolPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"token\"), mintAccount.toBytes()],\n bridgeProgramId,\n );\n return poolPda;\n}\n\nexport async function getOtherChainTokenAccount(\n chainId: number,\n token: Buffer,\n bridgeProgramId: PublicKey,\n): Promise<PublicKey> {\n const [otherChainTokenPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"other_bridge_token\"), Buffer.from([chainId]), token],\n bridgeProgramId,\n );\n return otherChainTokenPda;\n}\n\nexport async function getChainBridgeAccount(chainId: number, bridgeProgramId: PublicKey): Promise<PublicKey> {\n const [chainBridgePda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"chain_bridge\"), Uint8Array.from([chainId])],\n bridgeProgramId,\n );\n return chainBridgePda;\n}\n\nexport async function getGasUsageAccount(chainId: number, messengerProgramId: PublicKey): Promise<PublicKey> {\n const [chainBridgePda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"gas_usage\"), Uint8Array.from([chainId])],\n messengerProgramId,\n );\n return chainBridgePda;\n}\n\nexport async function getSendMessageAccount(\n messageWithSigner: Uint8Array,\n messengerProgramId: PublicKey,\n): Promise<PublicKey> {\n const [sentMessagePda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"sent_message\"), messageWithSigner],\n messengerProgramId,\n );\n return sentMessagePda;\n}\n\nexport async function getUserDepositAccount(\n userPublicKey: PublicKey,\n tokenMintAccount: PublicKey,\n bridgeProgramId: PublicKey,\n): Promise<PublicKey> {\n const [userDepositPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"user_deposit\"), tokenMintAccount.toBytes(), userPublicKey.toBytes()],\n bridgeProgramId,\n );\n return userDepositPda;\n}\n\nexport async function getCctpBridgeAccount(mintAccount: PublicKey, cctpBridgeProgramId: PublicKey): Promise<PublicKey> {\n const [configPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"cctp_bridge\"), mintAccount.toBytes()],\n cctpBridgeProgramId,\n );\n return configPda;\n}\n\nexport async function getCctpBridgeTokenAccount(token: PublicKey, cctpBridgeProgramId: PublicKey): Promise<PublicKey> {\n const [poolPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"token\"), token.toBytes()],\n cctpBridgeProgramId,\n );\n return poolPda;\n}\n\nexport function getCctpLockAccount(cctpBridgeProgramId: PublicKey, messageSentEventDataAccount: PublicKey): PublicKey {\n const [tokenMessengerEventAuthority] = PublicKey.findProgramAddressSync(\n [anchor.utils.bytes.utf8.encode(\"lock\"), messageSentEventDataAccount.toBuffer()],\n cctpBridgeProgramId,\n );\n return tokenMessengerEventAuthority;\n}\n\nexport function getCctpAccounts(\n domain: number,\n mintAccount: PublicKey,\n cctpTransmitterProgramId: PublicKey,\n cctpTokenMessengerMinter: PublicKey,\n) {\n const messageTransmitterAccount = findProgramAddress(\"message_transmitter\", cctpTransmitterProgramId);\n const tokenMessenger = findProgramAddress(\"token_messenger\", cctpTokenMessengerMinter);\n const tokenMessengerEventAuthority = findProgramAddress(\"__event_authority\", cctpTokenMessengerMinter);\n const tokenMinter = findProgramAddress(\"token_minter\", cctpTokenMessengerMinter);\n const localToken = findProgramAddress(\"local_token\", cctpTokenMessengerMinter, [mintAccount]);\n const remoteTokenMessengerKey = findProgramAddress(\"remote_token_messenger\", cctpTokenMessengerMinter, [\n domain.toString(),\n ]);\n const authorityPda = findProgramAddress(\"sender_authority\", cctpTokenMessengerMinter);\n return {\n messageTransmitterAccount,\n tokenMessenger,\n tokenMessengerEventAuthority,\n tokenMinter,\n localToken,\n remoteTokenMessengerKey,\n authorityPda,\n };\n}\n\nfunction findProgramAddress(\n label: string,\n programId: PublicKey,\n extraSeeds: (string | number[] | Buffer | PublicKey)[] = [],\n): PublicKey {\n const seeds = [Buffer.from(anchor.utils.bytes.utf8.encode(label))];\n for (const extraSeed of extraSeeds) {\n if (typeof extraSeed === \"string\") {\n seeds.push(Buffer.from(anchor.utils.bytes.utf8.encode(extraSeed)));\n } else if (Array.isArray(extraSeed)) {\n seeds.push(Buffer.from(Uint8Array.from(extraSeed)));\n } else if (Buffer.isBuffer(extraSeed)) {\n seeds.push(Buffer.from(Uint8Array.from(extraSeed)));\n } else {\n seeds.push(Buffer.from(Uint8Array.from(extraSeed.toBuffer())));\n }\n }\n const res = PublicKey.findProgramAddressSync(seeds, programId);\n return res[0];\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildAnchorProvider =
|
|
3
|
+
exports.buildAnchorProvider = buildAnchorProvider;
|
|
4
4
|
const anchor_1 = require("@project-serum/anchor");
|
|
5
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
6
6
|
function buildAnchorProvider(solanaRpcUrl, accountAddress) {
|
|
@@ -13,5 +13,4 @@ function buildAnchorProvider(solanaRpcUrl, accountAddress) {
|
|
|
13
13
|
commitment: "confirmed",
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
|
-
exports.buildAnchorProvider = buildAnchorProvider;
|
|
17
16
|
//# sourceMappingURL=anchor-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor-provider.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/anchor-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"anchor-provider.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/anchor-provider.ts"],"names":[],"mappings":";;AAGA,kDAcC;AAjBD,kDAAiE;AACjE,6CAAwD;AAExD,SAAgB,mBAAmB,CAAC,YAAoB,EAAE,cAAsB;IAC9E,MAAM,UAAU,GAAG,IAAI,oBAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,IAAI,mBAAS,CAAC,cAAc,CAAC,CAAC;IAEhD,OAAO,IAAI,uBAAc,CACvB,UAAU;IACV,mDAAmD;IACnD,EAAE,SAAS,EAAE,SAAS,EAAE,EACxB;QACE,mBAAmB,EAAE,WAAW;QAChC,UAAU,EAAE,WAAW;KACxB,CACF,CAAC;AACJ,CAAC","sourcesContent":["import { AnchorProvider, Provider } from \"@project-serum/anchor\";\nimport { Connection, PublicKey } from \"@solana/web3.js\";\n\nexport function buildAnchorProvider(solanaRpcUrl: string, accountAddress: string): Provider {\n const connection = new Connection(solanaRpcUrl, \"confirmed\");\n\n const publicKey = new PublicKey(accountAddress);\n\n return new AnchorProvider(\n connection,\n // @ts-expect-error enough wallet for fetch actions\n { publicKey: publicKey },\n {\n preflightCommitment: \"confirmed\",\n commitment: \"confirmed\",\n },\n );\n}\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.addUnitLimitAndUnitPriceToTx = addUnitLimitAndUnitPriceToTx;
|
|
4
|
+
exports.addUnitLimitAndUnitPriceToVersionedTx = addUnitLimitAndUnitPriceToVersionedTx;
|
|
4
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
6
|
const big_js_1 = require("big.js");
|
|
6
7
|
const exceptions_1 = require("../../../exceptions");
|
|
@@ -13,7 +14,6 @@ async function addUnitLimitAndUnitPriceToTx(transaction, txFeeParams, solanaRpcU
|
|
|
13
14
|
const simUnitsConsumed = (await connection.simulateTransaction(transaction)).value.unitsConsumed;
|
|
14
15
|
await addUnitLimitAndUnitPriceToInstructions(transaction.instructions, simUnitsConsumed, txFeeParams, connection);
|
|
15
16
|
}
|
|
16
|
-
exports.addUnitLimitAndUnitPriceToTx = addUnitLimitAndUnitPriceToTx;
|
|
17
17
|
async function addUnitLimitAndUnitPriceToVersionedTx(transaction, txFeeParams, solanaRpcUrl) {
|
|
18
18
|
const connection = new web3_js_1.Connection(solanaRpcUrl, "confirmed");
|
|
19
19
|
const addressLookupTableAccounts = await (0, utils_1.fetchAddressLookupTableAccountsFromTx)(transaction, connection);
|
|
@@ -29,7 +29,6 @@ async function addUnitLimitAndUnitPriceToVersionedTx(transaction, txFeeParams, s
|
|
|
29
29
|
await addUnitLimitAndUnitPriceToInstructions(message.instructions, simUnitsConsumed, txFeeParams, connection);
|
|
30
30
|
transaction.message = message.compileToV0Message(addressLookupTableAccounts);
|
|
31
31
|
}
|
|
32
|
-
exports.addUnitLimitAndUnitPriceToVersionedTx = addUnitLimitAndUnitPriceToVersionedTx;
|
|
33
32
|
async function addUnitLimitAndUnitPriceToInstructions(instructions, simUnitsConsumed, txFeeParams, connection) {
|
|
34
33
|
if (simUnitsConsumed > 0) {
|
|
35
34
|
const units = updateUnitLimit(simUnitsConsumed, instructions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compute-budget.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/compute-budget.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compute-budget.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/compute-budget.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ComputeBudgetInstruction,\n ComputeBudgetProgram,\n Connection,\n Transaction,\n TransactionInstruction,\n TransactionMessage,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport { Big } from \"big.js\";\nimport { TxTooLargeError } from \"../../../exceptions\";\nimport { toPowBase10 } from \"../../../utils/calculation\";\nimport { fetchAddressLookupTableAccountsFromTx } from \"../../../utils/sol/utils\";\nimport { SolanaAutoTxFee, TxFeeParams } from \"../../models\";\n\nexport async function addUnitLimitAndUnitPriceToTx(\n transaction: Transaction,\n txFeeParams: TxFeeParams | undefined,\n solanaRpcUrl: string,\n) {\n const connection = new Connection(solanaRpcUrl, \"confirmed\");\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n const simUnitsConsumed = (await connection.simulateTransaction(transaction)).value.unitsConsumed!;\n await addUnitLimitAndUnitPriceToInstructions(transaction.instructions, simUnitsConsumed, txFeeParams, connection);\n}\n\nexport async function addUnitLimitAndUnitPriceToVersionedTx(\n transaction: VersionedTransaction,\n txFeeParams: TxFeeParams | undefined,\n solanaRpcUrl: string,\n) {\n const connection = new Connection(solanaRpcUrl, \"confirmed\");\n const addressLookupTableAccounts = await fetchAddressLookupTableAccountsFromTx(transaction, connection);\n const message = TransactionMessage.decompile(transaction.message, {\n addressLookupTableAccounts: addressLookupTableAccounts,\n });\n\n if (transaction.serialize().length > 1232) {\n throw new TxTooLargeError();\n }\n\n // const simUnitsConsumed = (await connection.simulateTransaction(transaction, { replaceRecentBlockhash: true })).value\n // .unitsConsumed!;\n const simUnitsConsumed = 769230; // 1000000/1.3\n\n await addUnitLimitAndUnitPriceToInstructions(message.instructions, simUnitsConsumed, txFeeParams, connection);\n\n transaction.message = message.compileToV0Message(addressLookupTableAccounts);\n}\n\nasync function addUnitLimitAndUnitPriceToInstructions(\n instructions: TransactionInstruction[],\n simUnitsConsumed: number,\n txFeeParams: TxFeeParams | undefined,\n connection: Connection,\n) {\n if (simUnitsConsumed > 0) {\n const units = updateUnitLimit(simUnitsConsumed, instructions);\n if (txFeeParams?.solana) {\n const solanaTxFee = txFeeParams.solana;\n if (solanaTxFee === SolanaAutoTxFee) {\n await updateUnitPrice(instructions, connection);\n } else if (\"pricePerUnitInMicroLamports\" in solanaTxFee) {\n await updateUnitPrice(instructions, connection, solanaTxFee.pricePerUnitInMicroLamports);\n } else {\n const pricePerUnitInMicroLamports = Big(solanaTxFee.extraFeeInLamports)\n .div(units)\n .mul(toPowBase10(6))\n .toFixed(0);\n await updateUnitPrice(instructions, connection, pricePerUnitInMicroLamports);\n }\n }\n }\n}\n\nfunction updateUnitLimit(simUnitsConsumed: number, instructions: TransactionInstruction[]): string {\n const computeUnitLimitIndex = instructions.findIndex(\n (instruction) =>\n instruction.programId.equals(ComputeBudgetProgram.programId) &&\n ComputeBudgetInstruction.decodeInstructionType(instruction) === \"SetComputeUnitLimit\",\n );\n const units = Number((simUnitsConsumed * 1.3).toFixed(0));\n const computeUnitLimitInstruction = ComputeBudgetProgram.setComputeUnitLimit({\n units: units,\n });\n if (computeUnitLimitIndex >= 0) {\n instructions[computeUnitLimitIndex] = computeUnitLimitInstruction;\n } else {\n instructions.push(computeUnitLimitInstruction);\n }\n return units.toString();\n}\n\nasync function updateUnitPrice(\n instructions: TransactionInstruction[],\n connection: Connection,\n pricePerUnitInMicroLamports?: string,\n): Promise<string> {\n const computeUnitPriceIndex = instructions.findIndex(\n (instruction) =>\n instruction.programId.equals(ComputeBudgetProgram.programId) &&\n ComputeBudgetInstruction.decodeInstructionType(instruction) === \"SetComputeUnitPrice\",\n );\n const unitPrice = pricePerUnitInMicroLamports\n ? BigInt(pricePerUnitInMicroLamports)\n : BigInt(await getAveragePrioritizationFee(connection));\n const computeUnitPriceInstruction = ComputeBudgetProgram.setComputeUnitPrice({\n microLamports: unitPrice,\n });\n if (computeUnitPriceIndex >= 0) {\n instructions[computeUnitPriceIndex] = computeUnitPriceInstruction;\n } else {\n instructions.push(computeUnitPriceInstruction);\n }\n return unitPrice.toString();\n}\n\nasync function getAveragePrioritizationFee(connection: Connection) {\n const prioritizationFees = await connection.getRecentPrioritizationFees();\n let sum = 0;\n for (const prioritizationFee of prioritizationFees) {\n sum += prioritizationFee.prioritizationFee;\n }\n return (sum / prioritizationFees.length).toFixed(0);\n}\n"]}
|
|
@@ -3,17 +3,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.getTokenAccountData = getTokenAccountData;
|
|
7
|
+
exports.getVUsdAmount = getVUsdAmount;
|
|
8
|
+
exports.getMessage = getMessage;
|
|
7
9
|
const anchor_1 = require("@project-serum/anchor");
|
|
8
10
|
/* eslint-disable-next-line import/no-named-as-default */
|
|
9
11
|
const big_js_1 = __importDefault(require("big.js"));
|
|
10
|
-
const web3_1 =
|
|
12
|
+
const web3_1 = require("web3");
|
|
11
13
|
const exceptions_1 = require("../../../exceptions");
|
|
12
14
|
const calculation_1 = require("../../../utils/calculation");
|
|
13
15
|
async function getTokenAccountData(account, provider) {
|
|
14
16
|
return await anchor_1.Spl.token(provider).account.token.fetch(account);
|
|
15
17
|
}
|
|
16
|
-
exports.getTokenAccountData = getTokenAccountData;
|
|
17
18
|
async function getVUsdAmount(amount, bridge, poolAccount) {
|
|
18
19
|
const poolAccountInfo = await bridge.account.pool.fetch(poolAccount);
|
|
19
20
|
const decimals = poolAccountInfo.decimals;
|
|
@@ -28,7 +29,6 @@ async function getVUsdAmount(amount, bridge, poolAccount) {
|
|
|
28
29
|
};
|
|
29
30
|
return (0, calculation_1.swapToVUsd)(amount, { decimals, feeShare }, poolInfo);
|
|
30
31
|
}
|
|
31
|
-
exports.getVUsdAmount = getVUsdAmount;
|
|
32
32
|
function getMessage(args) {
|
|
33
33
|
const amount = args.amount;
|
|
34
34
|
const recipient = "0x" + args.recipient.toString("hex");
|
|
@@ -38,23 +38,22 @@ function getMessage(args) {
|
|
|
38
38
|
const nonce = "0x" + args.nonce.toString("hex");
|
|
39
39
|
const messenger = 1;
|
|
40
40
|
const chainBridge = "0x" + args.chainBridge.toString("hex");
|
|
41
|
-
const message = web3_1.
|
|
41
|
+
const message = web3_1.Web3.utils.encodePacked({ t: "uint256", v: amount }, { t: "bytes32", v: recipient }, { t: "uint256", v: sourceChainId }, { t: "bytes32", v: receiveToken }, { t: "uint256", v: nonce }, { t: "uint8", v: messenger });
|
|
42
42
|
if (!message) {
|
|
43
43
|
throw new exceptions_1.SdkError("message cannot be undefined");
|
|
44
44
|
}
|
|
45
|
-
const hash = web3_1.
|
|
45
|
+
const hash = web3_1.Web3.utils.keccak256(Buffer.from(message.replace("0x", ""), "hex"));
|
|
46
46
|
const hashBuffer = Buffer.from(hash.replace("0x", ""), "hex");
|
|
47
47
|
hashBuffer[0] = sourceChainId;
|
|
48
48
|
hashBuffer[1] = destinationsChainId;
|
|
49
|
-
const messageWithSigner = web3_1.
|
|
49
|
+
const messageWithSigner = web3_1.Web3.utils.encodePacked({ t: "bytes32", v: "0x" + hashBuffer.toString("hex") }, { t: "bytes32", v: chainBridge });
|
|
50
50
|
if (!messageWithSigner) {
|
|
51
51
|
throw new exceptions_1.InvalidTxError("messageWithSigner cannot be undefined");
|
|
52
52
|
}
|
|
53
|
-
const hashWithSigner = web3_1.
|
|
53
|
+
const hashWithSigner = web3_1.Web3.utils.keccak256(Buffer.from(messageWithSigner.replace("0x", ""), "hex"));
|
|
54
54
|
const hashWithSignerBuffer = Buffer.from(hashWithSigner.replace("0x", ""), "hex");
|
|
55
55
|
hashWithSignerBuffer[0] = hashBuffer[0];
|
|
56
56
|
hashWithSignerBuffer[1] = hashBuffer[1];
|
|
57
57
|
return hashWithSignerBuffer;
|
|
58
58
|
}
|
|
59
|
-
exports.getMessage = getMessage;
|
|
60
59
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Program, Provider, Spl } from \"@project-serum/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\n/* eslint-disable-next-line import/no-named-as-default */\nimport Big from \"big.js\";\nimport { Web3 } from \"web3\";\nimport { InvalidTxError, SdkError } from \"../../../exceptions\";\nimport { PoolInfo } from \"../../../tokens-info\";\nimport { swapToVUsd } from \"../../../utils/calculation\";\nimport { TokenAccountData } from \"../../models/sol\";\nimport { Bridge as BridgeType } from \"../../models/sol/types/bridge\";\n\nexport async function getTokenAccountData(account: PublicKey, provider: Provider): Promise<TokenAccountData> {\n return await Spl.token(provider).account.token.fetch(account);\n}\n\nexport async function getVUsdAmount(\n amount: string,\n bridge: Program<BridgeType>,\n poolAccount: PublicKey,\n): Promise<string> {\n const poolAccountInfo = await bridge.account.pool.fetch(poolAccount);\n const decimals = poolAccountInfo.decimals;\n const feeShare = Big(poolAccountInfo.feeShareBp.toString()).div(10000).toFixed();\n const poolInfo: Omit<PoolInfo, \"p\" | \"imbalance\"> = {\n aValue: poolAccountInfo.a.toString(),\n dValue: poolAccountInfo.d.toString(),\n totalLpAmount: poolAccountInfo.totalLpAmount.toString(),\n tokenBalance: poolAccountInfo.tokenBalance.toString(),\n vUsdBalance: poolAccountInfo.vUsdBalance.toString(),\n accRewardPerShareP: poolAccountInfo.accRewardPerShareP.toString(),\n };\n return swapToVUsd(amount, { decimals, feeShare }, poolInfo);\n}\n\nexport function getMessage(args: {\n amount: string;\n recipient: Buffer;\n sourceChainId: number;\n destinationChainId: number;\n receiveToken: Buffer;\n nonce: Buffer;\n chainBridge: Buffer;\n}): Buffer {\n const amount = args.amount;\n const recipient = \"0x\" + args.recipient.toString(\"hex\");\n const sourceChainId = args.sourceChainId;\n const destinationsChainId = args.destinationChainId;\n const receiveToken = \"0x\" + args.receiveToken.toString(\"hex\");\n const nonce = \"0x\" + args.nonce.toString(\"hex\");\n const messenger = 1;\n const chainBridge = \"0x\" + args.chainBridge.toString(\"hex\");\n\n const message = Web3.utils.encodePacked(\n { t: \"uint256\", v: amount },\n { t: \"bytes32\", v: recipient },\n { t: \"uint256\", v: sourceChainId },\n { t: \"bytes32\", v: receiveToken },\n { t: \"uint256\", v: nonce },\n { t: \"uint8\", v: messenger },\n );\n\n if (!message) {\n throw new SdkError(\"message cannot be undefined\");\n }\n const hash = Web3.utils.keccak256(Buffer.from(message.replace(\"0x\", \"\"), \"hex\") as any);\n\n const hashBuffer = Buffer.from(hash.replace(\"0x\", \"\"), \"hex\");\n hashBuffer[0] = sourceChainId;\n hashBuffer[1] = destinationsChainId;\n\n const messageWithSigner = Web3.utils.encodePacked(\n { t: \"bytes32\", v: \"0x\" + hashBuffer.toString(\"hex\") },\n { t: \"bytes32\", v: chainBridge },\n );\n\n if (!messageWithSigner) {\n throw new InvalidTxError(\"messageWithSigner cannot be undefined\");\n }\n\n const hashWithSigner = Web3.utils.keccak256(Buffer.from(messageWithSigner.replace(\"0x\", \"\"), \"hex\") as any);\n\n const hashWithSignerBuffer = Buffer.from(hashWithSigner.replace(\"0x\", \"\"), \"hex\");\n\n hashWithSignerBuffer[0] = hashBuffer[0];\n hashWithSignerBuffer[1] = hashBuffer[1];\n return hashWithSignerBuffer;\n}\n"]}
|