@allbridge/bridge-core-sdk 3.22.1-alpha.1 → 3.23.0-beta.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.
Files changed (48) hide show
  1. package/dist/browser/index.js +1 -1
  2. package/dist/browser/index.js.map +4 -4
  3. package/dist/cjs/index.js +1 -5
  4. package/dist/cjs/index.js.map +4 -4
  5. package/dist/esm/index.js +1 -1
  6. package/dist/esm/index.js.map +4 -4
  7. package/dist/src/chains/chain.enums.d.ts +5 -1
  8. package/dist/src/chains/chain.enums.js +4 -0
  9. package/dist/src/chains/chain.enums.js.map +1 -1
  10. package/dist/src/chains/index.js +6 -0
  11. package/dist/src/chains/index.js.map +1 -1
  12. package/dist/src/services/bridge/evm/index.js +1 -1
  13. package/dist/src/services/bridge/evm/index.js.map +1 -1
  14. package/dist/src/services/bridge/get-cctp-sol-token-recipient-address.js +3 -3
  15. package/dist/src/services/bridge/get-cctp-sol-token-recipient-address.js.map +1 -1
  16. package/dist/src/services/bridge/index.d.ts +2 -2
  17. package/dist/src/services/bridge/index.js +4 -6
  18. package/dist/src/services/bridge/index.js.map +1 -1
  19. package/dist/src/services/bridge/raw-bridge-transaction-builder.js +2 -2
  20. package/dist/src/services/bridge/raw-bridge-transaction-builder.js.map +1 -1
  21. package/dist/src/services/bridge/sol/index.js +1 -1
  22. package/dist/src/services/bridge/sol/index.js.map +1 -1
  23. package/dist/src/services/bridge/srb/index.js +1 -1
  24. package/dist/src/services/bridge/srb/index.js.map +1 -1
  25. package/dist/src/services/bridge/sui/index.js +1 -1
  26. package/dist/src/services/bridge/sui/index.js.map +1 -1
  27. package/dist/src/services/bridge/trx/index.js +1 -1
  28. package/dist/src/services/bridge/trx/index.js.map +1 -1
  29. package/dist/src/services/bridge/utils.d.ts +10 -10
  30. package/dist/src/services/bridge/utils.js +14 -15
  31. package/dist/src/services/bridge/utils.js.map +1 -1
  32. package/dist/src/services/liquidity-pool/index.d.ts +1 -1
  33. package/dist/src/services/liquidity-pool/index.js +5 -7
  34. package/dist/src/services/liquidity-pool/index.js.map +1 -1
  35. package/dist/src/services/liquidity-pool/raw-pool-transaction-builder.js +3 -3
  36. package/dist/src/services/liquidity-pool/raw-pool-transaction-builder.js.map +1 -1
  37. package/dist/src/services/liquidity-pool/trx/index.d.ts +3 -2
  38. package/dist/src/services/liquidity-pool/trx/index.js +107 -77
  39. package/dist/src/services/liquidity-pool/trx/index.js.map +1 -1
  40. package/dist/src/services/token/index.js +9 -11
  41. package/dist/src/services/token/index.js.map +1 -1
  42. package/dist/src/version.d.ts +1 -1
  43. package/dist/src/version.js +1 -1
  44. package/dist/src/version.js.map +1 -1
  45. package/package.json +3 -2
  46. package/dist/src/utils/tronweb/lazy-load-tronweb-import.d.ts +0 -1
  47. package/dist/src/utils/tronweb/lazy-load-tronweb-import.js +0 -35
  48. package/dist/src/utils/tronweb/lazy-load-tronweb-import.js.map +0 -1
@@ -50,7 +50,11 @@ export declare enum ChainSymbol {
50
50
  /**
51
51
  * The SUI network.
52
52
  */
53
- SUI = "SUI"
53
+ SUI = "SUI",
54
+ /**
55
+ * The Sonic network.
56
+ */
57
+ SNC = "SNC"
54
58
  }
55
59
  export declare enum ChainType {
56
60
  EVM = "EVM",
@@ -55,6 +55,10 @@ var ChainSymbol;
55
55
  * The SUI network.
56
56
  */
57
57
  ChainSymbol["SUI"] = "SUI";
58
+ /**
59
+ * The Sonic network.
60
+ */
61
+ ChainSymbol["SNC"] = "SNC";
58
62
  })(ChainSymbol || (exports.ChainSymbol = ChainSymbol = {}));
59
63
  var ChainType;
60
64
  (function (ChainType) {
@@ -1 +1 @@
1
- {"version":3,"file":"chain.enums.js","sourceRoot":"","sources":["../../../src/chains/chain.enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAiEX;AAjED,WAAY,WAAW;IACrB;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,4BAAa,CAAA;IAEb;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;AACb,CAAC,EAjEW,WAAW,2BAAX,WAAW,QAiEtB;AAED,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,8BAAiB,CAAA;IACjB,wBAAW,CAAA;IACX,wBAAW,CAAA;IACX,wBAAW,CAAA;AACb,CAAC,EANW,SAAS,yBAAT,SAAS,QAMpB","sourcesContent":["export enum ChainSymbol {\n /**\n * The BNB Smart Chain main network.\n */\n BSC = \"BSC\",\n\n /**\n * The Ethereum main network.\n */\n ETH = \"ETH\",\n\n /**\n * The Base main network.\n */\n BAS = \"BAS\",\n\n /**\n * The Solana network.\n */\n SOL = \"SOL\",\n\n /**\n * The TRON network.\n */\n TRX = \"TRX\",\n\n /**\n * The Polygon network.\n */\n POL = \"POL\",\n\n /**\n * The Arbitrum network.\n */\n ARB = \"ARB\",\n\n /**\n * The Celo network.\n */\n CEL = \"CEL\",\n\n /**\n * The Avalanche main network.\n */\n AVA = \"AVA\",\n\n /**\n * The Soroban network.\n */\n SRB = \"SRB\",\n\n /**\n * The Stellar network.\n */\n STLR = \"STLR\",\n\n /**\n * The OP Mainnet network.\n */\n OPT = \"OPT\",\n\n /**\n * The SUI network.\n */\n SUI = \"SUI\",\n}\n\nexport enum ChainType {\n EVM = \"EVM\",\n SOLANA = \"SOLANA\",\n TRX = \"TRX\",\n SRB = \"SRB\",\n SUI = \"SUI\",\n}\n"]}
1
+ {"version":3,"file":"chain.enums.js","sourceRoot":"","sources":["../../../src/chains/chain.enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAsEX;AAtED,WAAY,WAAW;IACrB;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,4BAAa,CAAA;IAEb;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;IAEX;;OAEG;IACH,0BAAW,CAAA;AACb,CAAC,EAtEW,WAAW,2BAAX,WAAW,QAsEtB;AAED,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,8BAAiB,CAAA;IACjB,wBAAW,CAAA;IACX,wBAAW,CAAA;IACX,wBAAW,CAAA;AACb,CAAC,EANW,SAAS,yBAAT,SAAS,QAMpB","sourcesContent":["export enum ChainSymbol {\n /**\n * The BNB Smart Chain main network.\n */\n BSC = \"BSC\",\n\n /**\n * The Ethereum main network.\n */\n ETH = \"ETH\",\n\n /**\n * The Base main network.\n */\n BAS = \"BAS\",\n\n /**\n * The Solana network.\n */\n SOL = \"SOL\",\n\n /**\n * The TRON network.\n */\n TRX = \"TRX\",\n\n /**\n * The Polygon network.\n */\n POL = \"POL\",\n\n /**\n * The Arbitrum network.\n */\n ARB = \"ARB\",\n\n /**\n * The Celo network.\n */\n CEL = \"CEL\",\n\n /**\n * The Avalanche main network.\n */\n AVA = \"AVA\",\n\n /**\n * The Soroban network.\n */\n SRB = \"SRB\",\n\n /**\n * The Stellar network.\n */\n STLR = \"STLR\",\n\n /**\n * The OP Mainnet network.\n */\n OPT = \"OPT\",\n\n /**\n * The SUI network.\n */\n SUI = \"SUI\",\n\n /**\n * The Sonic network.\n */\n SNC = \"SNC\",\n}\n\nexport enum ChainType {\n EVM = \"EVM\",\n SOLANA = \"SOLANA\",\n TRX = \"TRX\",\n SRB = \"SRB\",\n SUI = \"SUI\",\n}\n"]}
@@ -62,6 +62,12 @@ const defaultProperties = {
62
62
  name: "OP Mainnet",
63
63
  chainType: chain_enums_1.ChainType.EVM,
64
64
  },
65
+ [chain_enums_1.ChainSymbol.SNC]: {
66
+ chainSymbol: chain_enums_1.ChainSymbol.SNC,
67
+ chainId: "0x92",
68
+ name: "Sonic",
69
+ chainType: chain_enums_1.ChainType.EVM,
70
+ },
65
71
  [chain_enums_1.ChainSymbol.SOL]: {
66
72
  chainSymbol: chain_enums_1.ChainSymbol.SOL,
67
73
  name: "Solana",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chains/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { SdkError } from \"../exceptions\";\nimport { ChainSymbol, ChainType } from \"./chain.enums\";\nimport { BasicChainProperties } from \"./models\";\n\n/**\n * Native gas tokens decimals by ChainType\n */\nconst chainDecimalsByType: Record<ChainType, number> = {\n EVM: 18,\n SOLANA: 9,\n TRX: 6,\n SRB: 7,\n SUI: 9,\n};\n\nconst defaultProperties: Record<string, BasicChainProperties> = {\n [ChainSymbol.BSC]: {\n chainSymbol: ChainSymbol.BSC,\n chainId: \"0x38\",\n name: \"BNB Chain\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.ETH]: {\n chainSymbol: ChainSymbol.ETH,\n chainId: \"0x1\",\n name: \"Ethereum\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.BAS]: {\n chainSymbol: ChainSymbol.BAS,\n chainId: \"0x2105\",\n name: \"Base\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.ARB]: {\n chainSymbol: ChainSymbol.ARB,\n chainId: \"0xa4b1\",\n name: \"Arbitrum\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.AVA]: {\n chainSymbol: ChainSymbol.AVA,\n chainId: \"0xa86a\",\n name: \"Avalanche\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.CEL]: {\n chainSymbol: ChainSymbol.CEL,\n chainId: \"0xa4ec\",\n name: \"Celo\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.POL]: {\n chainSymbol: ChainSymbol.POL,\n chainId: \"0x89\",\n name: \"Polygon\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.OPT]: {\n chainSymbol: ChainSymbol.OPT,\n chainId: \"0xa\",\n name: \"OP Mainnet\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.SOL]: {\n chainSymbol: ChainSymbol.SOL,\n name: \"Solana\",\n chainType: ChainType.SOLANA,\n },\n [ChainSymbol.TRX]: {\n chainSymbol: ChainSymbol.TRX,\n name: \"Tron\",\n chainType: ChainType.TRX,\n },\n [ChainSymbol.SRB]: {\n chainSymbol: ChainSymbol.SRB,\n name: \"Stellar\",\n chainType: ChainType.SRB,\n },\n [ChainSymbol.STLR]: {\n chainSymbol: ChainSymbol.STLR,\n name: \"Stellar\",\n chainType: ChainType.SRB,\n },\n [ChainSymbol.SUI]: {\n chainSymbol: ChainSymbol.SUI,\n name: \"Sui\",\n chainType: ChainType.SUI,\n },\n};\n\nexport const Chains = (() => {\n let chainProperties: Record<string, BasicChainProperties> = { ...defaultProperties };\n\n return {\n addChainsProperties(additionalProperties?: Record<string, BasicChainProperties>) {\n chainProperties = { ...chainProperties, ...additionalProperties };\n },\n\n getChainProperty(chainSymbol: string): BasicChainProperties {\n const property = chainProperties[chainSymbol];\n if (!property) {\n throw new SdkError(`Cannot find chain properties for ${chainSymbol}`);\n }\n return property;\n },\n\n getChainsProperties(): Record<string, BasicChainProperties> {\n return chainProperties;\n },\n\n getChainDecimalsByType(chainType: ChainType): number {\n return chainDecimalsByType[chainType];\n },\n };\n})();\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/chains/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { SdkError } from \"../exceptions\";\nimport { ChainSymbol, ChainType } from \"./chain.enums\";\nimport { BasicChainProperties } from \"./models\";\n\n/**\n * Native gas tokens decimals by ChainType\n */\nconst chainDecimalsByType: Record<ChainType, number> = {\n EVM: 18,\n SOLANA: 9,\n TRX: 6,\n SRB: 7,\n SUI: 9,\n};\n\nconst defaultProperties: Record<string, BasicChainProperties> = {\n [ChainSymbol.BSC]: {\n chainSymbol: ChainSymbol.BSC,\n chainId: \"0x38\",\n name: \"BNB Chain\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.ETH]: {\n chainSymbol: ChainSymbol.ETH,\n chainId: \"0x1\",\n name: \"Ethereum\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.BAS]: {\n chainSymbol: ChainSymbol.BAS,\n chainId: \"0x2105\",\n name: \"Base\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.ARB]: {\n chainSymbol: ChainSymbol.ARB,\n chainId: \"0xa4b1\",\n name: \"Arbitrum\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.AVA]: {\n chainSymbol: ChainSymbol.AVA,\n chainId: \"0xa86a\",\n name: \"Avalanche\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.CEL]: {\n chainSymbol: ChainSymbol.CEL,\n chainId: \"0xa4ec\",\n name: \"Celo\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.POL]: {\n chainSymbol: ChainSymbol.POL,\n chainId: \"0x89\",\n name: \"Polygon\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.OPT]: {\n chainSymbol: ChainSymbol.OPT,\n chainId: \"0xa\",\n name: \"OP Mainnet\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.SNC]: {\n chainSymbol: ChainSymbol.SNC,\n chainId: \"0x92\",\n name: \"Sonic\",\n chainType: ChainType.EVM,\n },\n [ChainSymbol.SOL]: {\n chainSymbol: ChainSymbol.SOL,\n name: \"Solana\",\n chainType: ChainType.SOLANA,\n },\n [ChainSymbol.TRX]: {\n chainSymbol: ChainSymbol.TRX,\n name: \"Tron\",\n chainType: ChainType.TRX,\n },\n [ChainSymbol.SRB]: {\n chainSymbol: ChainSymbol.SRB,\n name: \"Stellar\",\n chainType: ChainType.SRB,\n },\n [ChainSymbol.STLR]: {\n chainSymbol: ChainSymbol.STLR,\n name: \"Stellar\",\n chainType: ChainType.SRB,\n },\n [ChainSymbol.SUI]: {\n chainSymbol: ChainSymbol.SUI,\n name: \"Sui\",\n chainType: ChainType.SUI,\n },\n};\n\nexport const Chains = (() => {\n let chainProperties: Record<string, BasicChainProperties> = { ...defaultProperties };\n\n return {\n addChainsProperties(additionalProperties?: Record<string, BasicChainProperties>) {\n chainProperties = { ...chainProperties, ...additionalProperties };\n },\n\n getChainProperty(chainSymbol: string): BasicChainProperties {\n const property = chainProperties[chainSymbol];\n if (!property) {\n throw new SdkError(`Cannot find chain properties for ${chainSymbol}`);\n }\n return property;\n },\n\n getChainsProperties(): Record<string, BasicChainProperties> {\n return chainProperties;\n },\n\n getChainDecimalsByType(chainType: ChainType): number {\n return chainDecimalsByType[chainType];\n },\n };\n})();\n"]}
@@ -27,7 +27,7 @@ class EvmBridgeService extends models_2.ChainBridgeService {
27
27
  return this.sendRawTransaction(rawTransaction);
28
28
  }
29
29
  async buildRawTransactionSwap(params) {
30
- const txSwapParams = await (0, utils_1.prepareTxSwapParams)(this.chainType, params);
30
+ const txSwapParams = (0, utils_1.prepareTxSwapParams)(this.chainType, params);
31
31
  return await this.buildRawTransactionSwapFromParams(txSwapParams);
32
32
  }
33
33
  async buildRawTransactionSwapFromParams(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/bridge/evm/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Big } from \"big.js\";\nimport BN from \"bn.js\";\nimport { Contract, Transaction as Web3Transaction } from \"web3\";\nimport { PayableMethodObject } from \"web3-eth-contract\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport {\n ChainSymbol,\n ChainType,\n FeePaymentMethod,\n Messenger,\n EssentialWeb3,\n SwapParams,\n TransactionResponse,\n} from \"../../../models\";\nimport { NodeRpcUrlsConfig } from \"../../index\";\nimport { RawTransaction } from \"../../models\";\nimport Bridge from \"../../models/abi/Bridge\";\nimport CctpBridge from \"../../models/abi/CctpBridge\";\nimport { getCctpSolTokenRecipientAddress } from \"../get-cctp-sol-token-recipient-address\";\nimport { SendParams, ChainBridgeService, TxSwapParamsEvm, TxSendParamsEvm } from \"../models\";\nimport { getNonce, prepareTxSendParams, prepareTxSwapParams } from \"../utils\";\n\nexport class EvmBridgeService extends ChainBridgeService {\n chainType: ChainType.EVM = ChainType.EVM;\n\n constructor(\n public web3: EssentialWeb3,\n public api: AllbridgeCoreClient,\n private nodeRpcUrlsConfig: NodeRpcUrlsConfig\n ) {\n super();\n }\n\n async send(params: SendParams): Promise<TransactionResponse> {\n const rawTransaction = await this.buildRawTransactionSend(params);\n return this.sendRawTransaction(rawTransaction);\n }\n\n async buildRawTransactionSwap(params: SwapParams): Promise<RawTransaction> {\n const txSwapParams = await prepareTxSwapParams(this.chainType, params);\n return await this.buildRawTransactionSwapFromParams(txSwapParams);\n }\n\n async buildRawTransactionSwapFromParams(params: TxSwapParamsEvm): Promise<RawTransaction> {\n const {\n amount,\n contractAddress,\n fromAccountAddress,\n fromTokenAddress,\n toAccountAddress,\n toTokenAddress,\n minimumReceiveAmount,\n } = params;\n\n const bridgeContract = this.getBridgeContract(contractAddress);\n\n const swapMethod = bridgeContract.methods.swap(\n amount,\n fromTokenAddress,\n toTokenAddress,\n toAccountAddress,\n minimumReceiveAmount\n );\n\n return Promise.resolve({\n from: fromAccountAddress,\n to: contractAddress,\n data: swapMethod.encodeABI(),\n });\n }\n\n async buildRawTransactionSend(params: SendParams): Promise<RawTransaction> {\n const txSendParams = await prepareTxSendParams(this.chainType, params, this.api);\n const {\n amount,\n contractAddress,\n fromAccountAddress,\n fromTokenAddress,\n toChainId,\n toAccountAddress,\n toTokenAddress,\n messenger,\n fee,\n gasFeePaymentMethod,\n extraGas,\n } = txSendParams;\n\n const nonce = \"0x\" + getNonce().toString(\"hex\");\n let sendMethod: PayableMethodObject;\n let value: string;\n\n let totalFee = fee;\n if (extraGas) {\n totalFee = Big(totalFee).plus(extraGas).toFixed();\n }\n if (messenger === Messenger.CCTP || messenger === Messenger.CCTP_V2) {\n const cctp = await this.buildRawTransactionCctpSend(params, txSendParams, totalFee);\n sendMethod = cctp.sendMethod;\n value = cctp.value;\n } else {\n const bridgeContract = this.getBridgeContract(contractAddress);\n if (gasFeePaymentMethod === FeePaymentMethod.WITH_STABLECOIN) {\n sendMethod = bridgeContract.methods.swapAndBridge(\n fromTokenAddress,\n amount,\n toAccountAddress,\n toChainId,\n toTokenAddress,\n nonce,\n messenger,\n totalFee\n );\n value = \"0\";\n } else {\n sendMethod = bridgeContract.methods.swapAndBridge(\n fromTokenAddress,\n amount,\n toAccountAddress,\n toChainId,\n toTokenAddress,\n nonce,\n messenger,\n 0\n );\n value = totalFee;\n }\n }\n\n return Promise.resolve({\n from: fromAccountAddress,\n to: contractAddress,\n value: value,\n data: sendMethod.encodeABI(),\n });\n }\n\n private async buildRawTransactionCctpSend(\n params: SendParams,\n txSendParams: TxSendParamsEvm,\n totalFee: string\n ): Promise<{\n sendMethod: PayableMethodObject;\n value: string;\n }> {\n const { amount, contractAddress, toChainId, toAccountAddress, gasFeePaymentMethod } = txSendParams;\n\n const cctpBridgeContract = this.getCctpBridgeContract(contractAddress);\n let sendMethod: PayableMethodObject;\n let value: string;\n\n if (params.destinationToken.chainType === ChainType.SOLANA) {\n const recipient = await getCctpSolTokenRecipientAddress(\n this.chainType,\n params.toAccountAddress,\n params.destinationToken.tokenAddress,\n this.nodeRpcUrlsConfig.getNodeRpcUrl(ChainSymbol.SOL)\n );\n\n if (gasFeePaymentMethod === FeePaymentMethod.WITH_STABLECOIN) {\n sendMethod = cctpBridgeContract.methods.bridgeWithWalletAddress(\n amount,\n recipient,\n toAccountAddress,\n toChainId,\n totalFee\n );\n value = \"0\";\n } else {\n sendMethod = cctpBridgeContract.methods.bridgeWithWalletAddress(\n amount,\n recipient,\n toAccountAddress,\n toChainId,\n 0\n );\n value = totalFee;\n }\n } else {\n if (gasFeePaymentMethod === FeePaymentMethod.WITH_STABLECOIN) {\n sendMethod = cctpBridgeContract.methods.bridge(amount, toAccountAddress, toChainId, totalFee);\n value = \"0\";\n } else {\n sendMethod = cctpBridgeContract.methods.bridge(amount, toAccountAddress, toChainId, 0);\n value = totalFee;\n }\n }\n return { sendMethod, value };\n }\n\n private async sendRawTransaction(rawTransaction: RawTransaction) {\n const estimateGas = await this.web3.eth.estimateGas(rawTransaction as Web3Transaction);\n\n // @ts-expect-error DISABLE SITE SUGGESTED GAS FEE IN METAMASK\n // prettier-ignore\n const feeOptions: { maxPriorityFeePerGas?: number | string | BN; maxFeePerGas?: number | string | BN } = { maxPriorityFeePerGas: null, maxFeePerGas: null };\n const { transactionHash } = await this.web3.eth.sendTransaction({\n ...(rawTransaction as object),\n gas: estimateGas,\n ...feeOptions,\n } as Web3Transaction);\n return { txId: transactionHash.toString() };\n }\n\n private getBridgeContract(contractAddress: string) {\n return new this.web3.eth.Contract(Bridge.abi, contractAddress) as Contract<typeof Bridge.abi>;\n }\n\n private getCctpBridgeContract(contractAddress: string) {\n return new this.web3.eth.Contract(CctpBridge.abi, contractAddress) as Contract<typeof CctpBridge.abi>;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/bridge/evm/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Big } from \"big.js\";\nimport BN from \"bn.js\";\nimport { Contract, Transaction as Web3Transaction } from \"web3\";\nimport { PayableMethodObject } from \"web3-eth-contract\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport {\n ChainSymbol,\n ChainType,\n FeePaymentMethod,\n Messenger,\n EssentialWeb3,\n SwapParams,\n TransactionResponse,\n} from \"../../../models\";\nimport { NodeRpcUrlsConfig } from \"../../index\";\nimport { RawTransaction } from \"../../models\";\nimport Bridge from \"../../models/abi/Bridge\";\nimport CctpBridge from \"../../models/abi/CctpBridge\";\nimport { getCctpSolTokenRecipientAddress } from \"../get-cctp-sol-token-recipient-address\";\nimport { SendParams, ChainBridgeService, TxSwapParamsEvm, TxSendParamsEvm } from \"../models\";\nimport { getNonce, prepareTxSendParams, prepareTxSwapParams } from \"../utils\";\n\nexport class EvmBridgeService extends ChainBridgeService {\n chainType: ChainType.EVM = ChainType.EVM;\n\n constructor(\n public web3: EssentialWeb3,\n public api: AllbridgeCoreClient,\n private nodeRpcUrlsConfig: NodeRpcUrlsConfig\n ) {\n super();\n }\n\n async send(params: SendParams): Promise<TransactionResponse> {\n const rawTransaction = await this.buildRawTransactionSend(params);\n return this.sendRawTransaction(rawTransaction);\n }\n\n async buildRawTransactionSwap(params: SwapParams): Promise<RawTransaction> {\n const txSwapParams = prepareTxSwapParams(this.chainType, params);\n return await this.buildRawTransactionSwapFromParams(txSwapParams);\n }\n\n async buildRawTransactionSwapFromParams(params: TxSwapParamsEvm): Promise<RawTransaction> {\n const {\n amount,\n contractAddress,\n fromAccountAddress,\n fromTokenAddress,\n toAccountAddress,\n toTokenAddress,\n minimumReceiveAmount,\n } = params;\n\n const bridgeContract = this.getBridgeContract(contractAddress);\n\n const swapMethod = bridgeContract.methods.swap(\n amount,\n fromTokenAddress,\n toTokenAddress,\n toAccountAddress,\n minimumReceiveAmount\n );\n\n return Promise.resolve({\n from: fromAccountAddress,\n to: contractAddress,\n data: swapMethod.encodeABI(),\n });\n }\n\n async buildRawTransactionSend(params: SendParams): Promise<RawTransaction> {\n const txSendParams = await prepareTxSendParams(this.chainType, params, this.api);\n const {\n amount,\n contractAddress,\n fromAccountAddress,\n fromTokenAddress,\n toChainId,\n toAccountAddress,\n toTokenAddress,\n messenger,\n fee,\n gasFeePaymentMethod,\n extraGas,\n } = txSendParams;\n\n const nonce = \"0x\" + getNonce().toString(\"hex\");\n let sendMethod: PayableMethodObject;\n let value: string;\n\n let totalFee = fee;\n if (extraGas) {\n totalFee = Big(totalFee).plus(extraGas).toFixed();\n }\n if (messenger === Messenger.CCTP || messenger === Messenger.CCTP_V2) {\n const cctp = await this.buildRawTransactionCctpSend(params, txSendParams, totalFee);\n sendMethod = cctp.sendMethod;\n value = cctp.value;\n } else {\n const bridgeContract = this.getBridgeContract(contractAddress);\n if (gasFeePaymentMethod === FeePaymentMethod.WITH_STABLECOIN) {\n sendMethod = bridgeContract.methods.swapAndBridge(\n fromTokenAddress,\n amount,\n toAccountAddress,\n toChainId,\n toTokenAddress,\n nonce,\n messenger,\n totalFee\n );\n value = \"0\";\n } else {\n sendMethod = bridgeContract.methods.swapAndBridge(\n fromTokenAddress,\n amount,\n toAccountAddress,\n toChainId,\n toTokenAddress,\n nonce,\n messenger,\n 0\n );\n value = totalFee;\n }\n }\n\n return Promise.resolve({\n from: fromAccountAddress,\n to: contractAddress,\n value: value,\n data: sendMethod.encodeABI(),\n });\n }\n\n private async buildRawTransactionCctpSend(\n params: SendParams,\n txSendParams: TxSendParamsEvm,\n totalFee: string\n ): Promise<{\n sendMethod: PayableMethodObject;\n value: string;\n }> {\n const { amount, contractAddress, toChainId, toAccountAddress, gasFeePaymentMethod } = txSendParams;\n\n const cctpBridgeContract = this.getCctpBridgeContract(contractAddress);\n let sendMethod: PayableMethodObject;\n let value: string;\n\n if (params.destinationToken.chainType === ChainType.SOLANA) {\n const recipient = await getCctpSolTokenRecipientAddress(\n this.chainType,\n params.toAccountAddress,\n params.destinationToken.tokenAddress,\n this.nodeRpcUrlsConfig.getNodeRpcUrl(ChainSymbol.SOL)\n );\n\n if (gasFeePaymentMethod === FeePaymentMethod.WITH_STABLECOIN) {\n sendMethod = cctpBridgeContract.methods.bridgeWithWalletAddress(\n amount,\n recipient,\n toAccountAddress,\n toChainId,\n totalFee\n );\n value = \"0\";\n } else {\n sendMethod = cctpBridgeContract.methods.bridgeWithWalletAddress(\n amount,\n recipient,\n toAccountAddress,\n toChainId,\n 0\n );\n value = totalFee;\n }\n } else {\n if (gasFeePaymentMethod === FeePaymentMethod.WITH_STABLECOIN) {\n sendMethod = cctpBridgeContract.methods.bridge(amount, toAccountAddress, toChainId, totalFee);\n value = \"0\";\n } else {\n sendMethod = cctpBridgeContract.methods.bridge(amount, toAccountAddress, toChainId, 0);\n value = totalFee;\n }\n }\n return { sendMethod, value };\n }\n\n private async sendRawTransaction(rawTransaction: RawTransaction) {\n const estimateGas = await this.web3.eth.estimateGas(rawTransaction as Web3Transaction);\n\n // @ts-expect-error DISABLE SITE SUGGESTED GAS FEE IN METAMASK\n // prettier-ignore\n const feeOptions: { maxPriorityFeePerGas?: number | string | BN; maxFeePerGas?: number | string | BN } = { maxPriorityFeePerGas: null, maxFeePerGas: null };\n const { transactionHash } = await this.web3.eth.sendTransaction({\n ...(rawTransaction as object),\n gas: estimateGas,\n ...feeOptions,\n } as Web3Transaction);\n return { txId: transactionHash.toString() };\n }\n\n private getBridgeContract(contractAddress: string) {\n return new this.web3.eth.Contract(Bridge.abi, contractAddress) as Contract<typeof Bridge.abi>;\n }\n\n private getCctpBridgeContract(contractAddress: string) {\n return new this.web3.eth.Contract(CctpBridge.abi, contractAddress) as Contract<typeof CctpBridge.abi>;\n }\n}\n"]}
@@ -41,21 +41,21 @@ async function getCctpSolTokenRecipientAddress(chainType, toAccountAddress, dest
41
41
  anchor.setProvider(provider);
42
42
  const accountData = await anchor.Spl.token(provider).account.token.fetchNullable(receiveUserToken);
43
43
  if (accountData?.authority.equals(receiverAccount)) {
44
- recipientWalletAddress = await (0, utils_1.formatAddress)(receiveUserToken.toBase58(), chain_enums_1.ChainType.SOLANA, chainType);
44
+ recipientWalletAddress = (0, utils_1.formatAddress)(receiveUserToken.toBase58(), chain_enums_1.ChainType.SOLANA, chainType);
45
45
  }
46
46
  else {
47
47
  const tokenAccounts = await provider.connection.getTokenAccountsByOwner(receiverAccount, {
48
48
  mint: receiveMint,
49
49
  });
50
50
  if (tokenAccounts.value.length === 0 && !accountData) {
51
- recipientWalletAddress = await (0, utils_1.formatAddress)(receiveUserToken.toBase58(), chain_enums_1.ChainType.SOLANA, chainType);
51
+ recipientWalletAddress = (0, utils_1.formatAddress)(receiveUserToken.toBase58(), chain_enums_1.ChainType.SOLANA, chainType);
52
52
  }
53
53
  else if (tokenAccounts.value.length > 0) {
54
54
  const firstTokenAccount = tokenAccounts.value[0];
55
55
  if (!firstTokenAccount?.pubkey) {
56
56
  throw new exceptions_1.SdkError("First token account or its public key is undefined");
57
57
  }
58
- recipientWalletAddress = await (0, utils_1.formatAddress)(firstTokenAccount.pubkey.toBase58(), chain_enums_1.ChainType.SOLANA, chainType);
58
+ recipientWalletAddress = (0, utils_1.formatAddress)(firstTokenAccount.pubkey.toBase58(), chain_enums_1.ChainType.SOLANA, chainType);
59
59
  }
60
60
  else {
61
61
  throw new exceptions_1.SdkError("Associated account has wrong owner");
@@ -1 +1 @@
1
- {"version":3,"file":"get-cctp-sol-token-recipient-address.js","sourceRoot":"","sources":["../../../../src/services/bridge/get-cctp-sol-token-recipient-address.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,0EAiCC;AApED,8DAAgD;AAChD,6CAA4C;AAC5C,0DAAqD;AACrD,iDAA4C;AAC5C,oDAA6D;AAC7D,kEAAmE;AACnE,mCAAwC;AA4BxC,wBAAwB;AACjB,KAAK,UAAU,+BAA+B,CACnD,SAAoB,EACpB,gBAAwB,EACxB,uBAA+B,EAC/B,SAAiB;IAEjB,IAAI,sBAAkD,CAAC;IACvD,MAAM,eAAe,GAAG,IAAI,mBAAS,CAAC,gBAAgB,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,mBAAS,CAAC,uBAAuB,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,MAAM,IAAA,+BAAoB,EAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,IAAA,qCAAmB,EAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAClE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACnG,IAAI,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACnD,sBAAsB,GAAG,MAAM,IAAA,qBAAa,EAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,uBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzG,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC,eAAe,EAAE;YACvF,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QACH,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACrD,sBAAsB,GAAG,MAAM,IAAA,qBAAa,EAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,uBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACzG,CAAC;aAAM,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEjD,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;gBAC/B,MAAM,IAAI,qBAAQ,CAAC,oDAAoD,CAAC,CAAC;YAC3E,CAAC;YACD,sBAAsB,GAAG,MAAM,IAAA,qBAAa,EAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,uBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACjH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,qBAAQ,CAAC,oCAAoC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC","sourcesContent":["import * as anchor from \"@project-serum/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport { ChainType } from \"../../chains/chain.enums\";\nimport { SdkError } from \"../../exceptions\";\nimport { getAssociatedAccount } from \"../utils/sol/accounts\";\nimport { buildAnchorProvider } from \"../utils/sol/anchor-provider\";\nimport { formatAddress } from \"./utils\";\n\n// 1. OVERLOADS\nexport function getCctpSolTokenRecipientAddress(\n chainType: ChainType.EVM | ChainType.SUI,\n toAccountAddress: string,\n destinationTokenAddress: string,\n solRpcUrl: string\n): Promise<string>;\nexport function getCctpSolTokenRecipientAddress(\n chainType: ChainType.TRX,\n toAccountAddress: string,\n destinationTokenAddress: string,\n solRpcUrl: string\n): Promise<Buffer>;\nexport function getCctpSolTokenRecipientAddress(\n chainType: ChainType.SOLANA | ChainType.SRB,\n toAccountAddress: string,\n destinationTokenAddress: string,\n solRpcUrl: string\n): Promise<number[]>;\nexport function getCctpSolTokenRecipientAddress(\n chainType: ChainType,\n toAccountAddress: string,\n destinationTokenAddress: string,\n solRpcUrl: string\n): Promise<string | number[] | Buffer>;\n\n// 2. COMMON Realization\nexport async function getCctpSolTokenRecipientAddress(\n chainType: ChainType,\n toAccountAddress: string,\n destinationTokenAddress: string,\n solRpcUrl: string\n): Promise<string | number[] | Buffer> {\n let recipientWalletAddress: string | number[] | Buffer;\n const receiverAccount = new PublicKey(toAccountAddress);\n const receiveMint = new PublicKey(destinationTokenAddress);\n const receiveUserToken = await getAssociatedAccount(receiverAccount, receiveMint);\n const provider = buildAnchorProvider(solRpcUrl, toAccountAddress);\n anchor.setProvider(provider);\n const accountData = await anchor.Spl.token(provider).account.token.fetchNullable(receiveUserToken);\n if (accountData?.authority.equals(receiverAccount)) {\n recipientWalletAddress = await formatAddress(receiveUserToken.toBase58(), ChainType.SOLANA, chainType);\n } else {\n const tokenAccounts = await provider.connection.getTokenAccountsByOwner(receiverAccount, {\n mint: receiveMint,\n });\n if (tokenAccounts.value.length === 0 && !accountData) {\n recipientWalletAddress = await formatAddress(receiveUserToken.toBase58(), ChainType.SOLANA, chainType);\n } else if (tokenAccounts.value.length > 0) {\n const firstTokenAccount = tokenAccounts.value[0];\n\n if (!firstTokenAccount?.pubkey) {\n throw new SdkError(\"First token account or its public key is undefined\");\n }\n recipientWalletAddress = await formatAddress(firstTokenAccount.pubkey.toBase58(), ChainType.SOLANA, chainType);\n } else {\n throw new SdkError(\"Associated account has wrong owner\");\n }\n }\n return recipientWalletAddress;\n}\n"]}
1
+ {"version":3,"file":"get-cctp-sol-token-recipient-address.js","sourceRoot":"","sources":["../../../../src/services/bridge/get-cctp-sol-token-recipient-address.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,0EAiCC;AApED,8DAAgD;AAChD,6CAA4C;AAC5C,0DAAqD;AACrD,iDAA4C;AAC5C,oDAA6D;AAC7D,kEAAmE;AACnE,mCAAwC;AA4BxC,wBAAwB;AACjB,KAAK,UAAU,+BAA+B,CACnD,SAAoB,EACpB,gBAAwB,EACxB,uBAA+B,EAC/B,SAAiB;IAEjB,IAAI,sBAAkD,CAAC;IACvD,MAAM,eAAe,GAAG,IAAI,mBAAS,CAAC,gBAAgB,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,mBAAS,CAAC,uBAAuB,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,MAAM,IAAA,+BAAoB,EAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,IAAA,qCAAmB,EAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAClE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACnG,IAAI,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACnD,sBAAsB,GAAG,IAAA,qBAAa,EAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,uBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnG,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC,eAAe,EAAE;YACvF,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QACH,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACrD,sBAAsB,GAAG,IAAA,qBAAa,EAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,uBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACnG,CAAC;aAAM,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEjD,IAAI,CAAC,iBAAiB,EAAE,MAAM,EAAE,CAAC;gBAC/B,MAAM,IAAI,qBAAQ,CAAC,oDAAoD,CAAC,CAAC;YAC3E,CAAC;YACD,sBAAsB,GAAG,IAAA,qBAAa,EAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,uBAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC3G,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,qBAAQ,CAAC,oCAAoC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,OAAO,sBAAsB,CAAC;AAChC,CAAC","sourcesContent":["import * as anchor from \"@project-serum/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\nimport { ChainType } from \"../../chains/chain.enums\";\nimport { SdkError } from \"../../exceptions\";\nimport { getAssociatedAccount } from \"../utils/sol/accounts\";\nimport { buildAnchorProvider } from \"../utils/sol/anchor-provider\";\nimport { formatAddress } from \"./utils\";\n\n// 1. OVERLOADS\nexport function getCctpSolTokenRecipientAddress(\n chainType: ChainType.EVM | ChainType.SUI,\n toAccountAddress: string,\n destinationTokenAddress: string,\n solRpcUrl: string\n): Promise<string>;\nexport function getCctpSolTokenRecipientAddress(\n chainType: ChainType.TRX,\n toAccountAddress: string,\n destinationTokenAddress: string,\n solRpcUrl: string\n): Promise<Buffer>;\nexport function getCctpSolTokenRecipientAddress(\n chainType: ChainType.SOLANA | ChainType.SRB,\n toAccountAddress: string,\n destinationTokenAddress: string,\n solRpcUrl: string\n): Promise<number[]>;\nexport function getCctpSolTokenRecipientAddress(\n chainType: ChainType,\n toAccountAddress: string,\n destinationTokenAddress: string,\n solRpcUrl: string\n): Promise<string | number[] | Buffer>;\n\n// 2. COMMON Realization\nexport async function getCctpSolTokenRecipientAddress(\n chainType: ChainType,\n toAccountAddress: string,\n destinationTokenAddress: string,\n solRpcUrl: string\n): Promise<string | number[] | Buffer> {\n let recipientWalletAddress: string | number[] | Buffer;\n const receiverAccount = new PublicKey(toAccountAddress);\n const receiveMint = new PublicKey(destinationTokenAddress);\n const receiveUserToken = await getAssociatedAccount(receiverAccount, receiveMint);\n const provider = buildAnchorProvider(solRpcUrl, toAccountAddress);\n anchor.setProvider(provider);\n const accountData = await anchor.Spl.token(provider).account.token.fetchNullable(receiveUserToken);\n if (accountData?.authority.equals(receiverAccount)) {\n recipientWalletAddress = formatAddress(receiveUserToken.toBase58(), ChainType.SOLANA, chainType);\n } else {\n const tokenAccounts = await provider.connection.getTokenAccountsByOwner(receiverAccount, {\n mint: receiveMint,\n });\n if (tokenAccounts.value.length === 0 && !accountData) {\n recipientWalletAddress = formatAddress(receiveUserToken.toBase58(), ChainType.SOLANA, chainType);\n } else if (tokenAccounts.value.length > 0) {\n const firstTokenAccount = tokenAccounts.value[0];\n\n if (!firstTokenAccount?.pubkey) {\n throw new SdkError(\"First token account or its public key is undefined\");\n }\n recipientWalletAddress = formatAddress(firstTokenAccount.pubkey.toBase58(), ChainType.SOLANA, chainType);\n } else {\n throw new SdkError(\"Associated account has wrong owner\");\n }\n }\n return recipientWalletAddress;\n}\n"]}
@@ -5,7 +5,7 @@ import { AllbridgeCoreSdkOptions } from "../../index";
5
5
  import { TokenWithChainDetails } from "../../tokens-info";
6
6
  import { Provider, TransactionResponse } from "../models";
7
7
  import { TokenService } from "../token";
8
- import { ApproveParams, ChainBridgeService, CheckAllowanceParams, GetAllowanceParams, SendParams } from "./models";
8
+ import { ApproveParams, CheckAllowanceParams, GetAllowanceParams, SendParams, ChainBridgeService } from "./models";
9
9
  import { RawBridgeTransactionBuilder } from "./raw-bridge-transaction-builder";
10
10
  export interface BridgeService {
11
11
  rawTxBuilder: RawBridgeTransactionBuilder;
@@ -66,4 +66,4 @@ export declare class DefaultBridgeService implements BridgeService {
66
66
  send(provider: Provider, params: SendParams): Promise<TransactionResponse>;
67
67
  }
68
68
  export declare function getSpender(token: TokenWithChainDetails, messenger?: Messenger): string;
69
- export declare function getChainBridgeService(chainSymbol: string, api: AllbridgeCoreClient, nodeRpcUrlsConfig: NodeRpcUrlsConfig, params: AllbridgeCoreSdkOptions, provider?: Provider): Promise<ChainBridgeService>;
69
+ export declare function getChainBridgeService(chainSymbol: string, api: AllbridgeCoreClient, nodeRpcUrlsConfig: NodeRpcUrlsConfig, params: AllbridgeCoreSdkOptions, provider?: Provider): ChainBridgeService;
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefaultBridgeService = void 0;
4
4
  exports.getSpender = getSpender;
5
5
  exports.getChainBridgeService = getChainBridgeService;
6
+ const tronweb_1 = require("tronweb");
6
7
  const web3_1 = require("web3");
7
8
  const chains_1 = require("../../chains");
8
9
  const core_api_model_1 = require("../../client/core-api/core-api.model");
9
10
  const exceptions_1 = require("../../exceptions");
10
11
  const index_1 = require("../../index");
11
- const lazy_load_tronweb_import_1 = require("../../utils/tronweb/lazy-load-tronweb-import");
12
12
  const utils_1 = require("../../utils/utils");
13
13
  const evm_1 = require("./evm");
14
14
  const raw_bridge_transaction_builder_1 = require("./raw-bridge-transaction-builder");
@@ -62,7 +62,7 @@ class DefaultBridgeService {
62
62
  async send(provider, params) {
63
63
  (0, utils_1.validateAmountGtZero)(params.amount);
64
64
  (0, utils_1.validateAmountDecimals)("amount", params.amount, params.sourceToken.decimals);
65
- return (await getChainBridgeService(params.sourceToken.chainSymbol, this.api, this.nodeRpcUrlsConfig, this.params, provider)).send(params);
65
+ return getChainBridgeService(params.sourceToken.chainSymbol, this.api, this.nodeRpcUrlsConfig, this.params, provider).send(params);
66
66
  }
67
67
  }
68
68
  exports.DefaultBridgeService = DefaultBridgeService;
@@ -87,7 +87,7 @@ function getSpender(token, messenger) {
87
87
  return token.bridgeAddress;
88
88
  }
89
89
  }
90
- async function getChainBridgeService(chainSymbol, api, nodeRpcUrlsConfig, params, provider) {
90
+ function getChainBridgeService(chainSymbol, api, nodeRpcUrlsConfig, params, provider) {
91
91
  switch (chains_1.Chains.getChainProperty(chainSymbol).chainType) {
92
92
  case index_1.ChainType.EVM: {
93
93
  if (provider) {
@@ -100,13 +100,11 @@ async function getChainBridgeService(chainSymbol, api, nodeRpcUrlsConfig, params
100
100
  }
101
101
  case index_1.ChainType.TRX: {
102
102
  if (provider) {
103
- /* eslint-disable-next-line @typescript-eslint/no-unused-vars */
104
- const TronWeb = await (0, lazy_load_tronweb_import_1.getTronWeb)();
105
103
  return new trx_1.TronBridgeService(provider, api);
106
104
  }
107
105
  else {
108
106
  const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);
109
- return new trx_1.TronBridgeService(new (await (0, lazy_load_tronweb_import_1.getTronWeb)())({
107
+ return new trx_1.TronBridgeService(new tronweb_1.TronWeb({
110
108
  fullHost: nodeRpcUrl,
111
109
  solidityNode: nodeRpcUrl,
112
110
  eventServer: nodeRpcUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/bridge/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Web3 } from \"web3\";\nimport { NodeRpcUrlsConfig } from \"..\";\nimport { Chains } from \"../../chains\";\nimport { Messenger } from \"../../client/core-api/core-api.model\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { CCTPDoesNotSupportedError } from \"../../exceptions\";\nimport { AllbridgeCoreSdkOptions, ChainSymbol, ChainType, EssentialWeb3 } from \"../../index\";\nimport { TokenWithChainDetails } from \"../../tokens-info\";\nimport { getTronWeb } from \"../../utils/tronweb/lazy-load-tronweb-import\";\nimport { validateAmountDecimals, validateAmountGtZero } from \"../../utils/utils\";\nimport { Provider, TransactionResponse } from \"../models\";\nimport { TokenService } from \"../token\";\nimport { EvmBridgeService } from \"./evm\";\nimport { ApproveParams, ChainBridgeService, CheckAllowanceParams, GetAllowanceParams, SendParams } from \"./models\";\nimport { DefaultRawBridgeTransactionBuilder, RawBridgeTransactionBuilder } from \"./raw-bridge-transaction-builder\";\nimport { SolanaBridgeService } from \"./sol\";\nimport { SrbBridgeService } from \"./srb\";\nimport { SuiBridgeService } from \"./sui\";\nimport { TronBridgeService } from \"./trx\";\n\nexport interface BridgeService {\n rawTxBuilder: RawBridgeTransactionBuilder;\n\n /**\n * Get amount of tokens approved to be sent by the bridge\n * @param provider - will be used to access the network\n * @param params See {@link GetAllowanceParams}\n * @returns the amount of approved tokens\n */\n getAllowance(provider: Provider, params: GetAllowanceParams): Promise<string>;\n\n /**\n * Get amount of tokens approved to be sent by the bridge\n * @param params See {@link GetAllowanceParams}\n * @returns the amount of approved tokens\n */\n getAllowance(params: GetAllowanceParams): Promise<string>;\n\n /**\n * Check if the amount of approved tokens is enough to make a transfer\n * @param provider - will be used to access the network\n * @param params See {@link CheckAllowanceParams}\n * @returns true if the amount of approved tokens is enough to make a transfer\n */\n checkAllowance(provider: Provider, params: CheckAllowanceParams): Promise<boolean>;\n\n /**\n * Check if the amount of approved tokens is enough to make a transfer\n * @param params See {@link CheckAllowanceParams}\n * @returns true if the amount of approved tokens is enough to make a transfer\n */\n checkAllowance(params: CheckAllowanceParams): Promise<boolean>;\n\n /**\n * @deprecated Use {@link rawTxBuilder}.{@link RawBridgeTransactionBuilder.approve}<p>\n * Approve tokens usage by another address on chains\n * <p>\n * For ETH/USDT: due to specificity of the USDT contract:<br/>\n * If the current allowance is not 0, this function will perform an additional transaction to set allowance to 0 before setting the new allowance value.\n * @param provider - will be used to access the network\n * @param approveData\n */\n approve(provider: Provider, approveData: ApproveParams): Promise<TransactionResponse>;\n\n /**\n * @deprecated Use {@link rawTxBuilder}.{@link RawBridgeTransactionBuilder.send}<p>\n * Send tokens through the ChainBridgeService\n * @param provider - will be used to access the network\n * @param params\n */\n send(provider: Provider, params: SendParams): Promise<TransactionResponse>;\n}\n\nexport class DefaultBridgeService implements BridgeService {\n public rawTxBuilder: RawBridgeTransactionBuilder;\n\n constructor(\n private api: AllbridgeCoreClient,\n private nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n private params: AllbridgeCoreSdkOptions,\n private tokenService: TokenService\n ) {\n this.rawTxBuilder = new DefaultRawBridgeTransactionBuilder(api, nodeRpcUrlsConfig, params, tokenService);\n }\n\n async getAllowance(a: Provider | GetAllowanceParams, b?: GetAllowanceParams): Promise<string> {\n let provider: Provider | undefined;\n let params: GetAllowanceParams;\n if (b) {\n provider = a as Provider;\n params = b;\n } else {\n params = a as GetAllowanceParams;\n }\n const spender = getSpender(params.token, params.messenger);\n return await this.tokenService.getAllowance({ ...params, spender }, provider);\n }\n\n async checkAllowance(a: Provider | CheckAllowanceParams, b?: CheckAllowanceParams): Promise<boolean> {\n let provider: Provider | undefined;\n let params: CheckAllowanceParams;\n if (b) {\n provider = a as Provider;\n params = b;\n } else {\n params = a as CheckAllowanceParams;\n }\n const spender = getSpender(params.token, params.messenger);\n return this.tokenService.checkAllowance({ ...params, spender }, provider);\n }\n\n async approve(provider: Provider, approveData: ApproveParams): Promise<TransactionResponse> {\n const spender = getSpender(approveData.token, approveData.messenger);\n return this.tokenService.approve(provider, { ...approveData, spender });\n }\n\n async send(provider: Provider, params: SendParams): Promise<TransactionResponse> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, params.sourceToken.decimals);\n return (\n await getChainBridgeService(\n params.sourceToken.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider\n )\n ).send(params);\n }\n}\n\nexport function getSpender(token: TokenWithChainDetails, messenger?: Messenger): string {\n if (messenger && messenger == Messenger.CCTP) {\n if (token.cctpAddress) {\n return token.cctpAddress;\n } else {\n throw new CCTPDoesNotSupportedError(\"Such route does not support CCTP protocol\");\n }\n } else if (messenger && messenger == Messenger.CCTP_V2) {\n if (token.cctpV2Address) {\n return token.cctpV2Address;\n } else {\n throw new CCTPDoesNotSupportedError(\"Such route does not support CCTP V2 protocol\");\n }\n } else {\n return token.bridgeAddress;\n }\n}\n\nexport async function getChainBridgeService(\n chainSymbol: string,\n api: AllbridgeCoreClient,\n nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n params: AllbridgeCoreSdkOptions,\n provider?: Provider\n): Promise<ChainBridgeService> {\n switch (Chains.getChainProperty(chainSymbol).chainType) {\n case ChainType.EVM: {\n if (provider) {\n return new EvmBridgeService(provider as EssentialWeb3, api, nodeRpcUrlsConfig);\n } else {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n return new EvmBridgeService(new Web3(nodeRpcUrl), api, nodeRpcUrlsConfig);\n }\n }\n case ChainType.TRX: {\n if (provider) {\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\n const TronWeb = await getTronWeb();\n return new TronBridgeService(provider as InstanceType<typeof TronWeb>, api);\n } else {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n return new TronBridgeService(\n new (await getTronWeb())({\n fullHost: nodeRpcUrl,\n solidityNode: nodeRpcUrl,\n eventServer: nodeRpcUrl,\n }),\n api\n );\n }\n }\n case ChainType.SOLANA: {\n return new SolanaBridgeService(\n nodeRpcUrlsConfig.getNodeRpcUrl(ChainSymbol.SOL),\n {\n wormholeMessengerProgramId: params.wormholeMessengerProgramId,\n solanaLookUpTable: params.solanaLookUpTable,\n cctpParams: params.cctpParams,\n jupiterParams: {\n jupiterUrl: params.jupiterUrl,\n jupiterApiKeyHeader: params.jupiterApiKeyHeader,\n jupiterMaxAccounts: params.jupiterMaxAccounts,\n },\n },\n api\n );\n }\n case ChainType.SRB: {\n return new SrbBridgeService(nodeRpcUrlsConfig, params, api);\n }\n case ChainType.SUI: {\n return new SuiBridgeService(nodeRpcUrlsConfig, api);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/bridge/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { TronWeb } from \"tronweb\";\nimport { Web3 } from \"web3\";\nimport { NodeRpcUrlsConfig } from \"..\";\nimport { Chains } from \"../../chains\";\nimport { Messenger } from \"../../client/core-api/core-api.model\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { CCTPDoesNotSupportedError } from \"../../exceptions\";\nimport { AllbridgeCoreSdkOptions, ChainSymbol, ChainType, EssentialWeb3 } from \"../../index\";\nimport { TokenWithChainDetails } from \"../../tokens-info\";\nimport { validateAmountDecimals, validateAmountGtZero } from \"../../utils/utils\";\nimport { Provider, TransactionResponse } from \"../models\";\nimport { TokenService } from \"../token\";\nimport { EvmBridgeService } from \"./evm\";\nimport { ApproveParams, CheckAllowanceParams, GetAllowanceParams, SendParams, ChainBridgeService } from \"./models\";\nimport { DefaultRawBridgeTransactionBuilder, RawBridgeTransactionBuilder } from \"./raw-bridge-transaction-builder\";\nimport { SolanaBridgeService } from \"./sol\";\nimport { SrbBridgeService } from \"./srb\";\nimport { SuiBridgeService } from \"./sui\";\nimport { TronBridgeService } from \"./trx\";\n\nexport interface BridgeService {\n rawTxBuilder: RawBridgeTransactionBuilder;\n\n /**\n * Get amount of tokens approved to be sent by the bridge\n * @param provider - will be used to access the network\n * @param params See {@link GetAllowanceParams}\n * @returns the amount of approved tokens\n */\n getAllowance(provider: Provider, params: GetAllowanceParams): Promise<string>;\n\n /**\n * Get amount of tokens approved to be sent by the bridge\n * @param params See {@link GetAllowanceParams}\n * @returns the amount of approved tokens\n */\n getAllowance(params: GetAllowanceParams): Promise<string>;\n\n /**\n * Check if the amount of approved tokens is enough to make a transfer\n * @param provider - will be used to access the network\n * @param params See {@link CheckAllowanceParams}\n * @returns true if the amount of approved tokens is enough to make a transfer\n */\n checkAllowance(provider: Provider, params: CheckAllowanceParams): Promise<boolean>;\n\n /**\n * Check if the amount of approved tokens is enough to make a transfer\n * @param params See {@link CheckAllowanceParams}\n * @returns true if the amount of approved tokens is enough to make a transfer\n */\n checkAllowance(params: CheckAllowanceParams): Promise<boolean>;\n\n /**\n * @deprecated Use {@link rawTxBuilder}.{@link RawBridgeTransactionBuilder.approve}<p>\n * Approve tokens usage by another address on chains\n * <p>\n * For ETH/USDT: due to specificity of the USDT contract:<br/>\n * If the current allowance is not 0, this function will perform an additional transaction to set allowance to 0 before setting the new allowance value.\n * @param provider - will be used to access the network\n * @param approveData\n */\n approve(provider: Provider, approveData: ApproveParams): Promise<TransactionResponse>;\n\n /**\n * @deprecated Use {@link rawTxBuilder}.{@link RawBridgeTransactionBuilder.send}<p>\n * Send tokens through the ChainBridgeService\n * @param provider - will be used to access the network\n * @param params\n */\n send(provider: Provider, params: SendParams): Promise<TransactionResponse>;\n}\n\nexport class DefaultBridgeService implements BridgeService {\n public rawTxBuilder: RawBridgeTransactionBuilder;\n\n constructor(\n private api: AllbridgeCoreClient,\n private nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n private params: AllbridgeCoreSdkOptions,\n private tokenService: TokenService\n ) {\n this.rawTxBuilder = new DefaultRawBridgeTransactionBuilder(api, nodeRpcUrlsConfig, params, tokenService);\n }\n\n async getAllowance(a: Provider | GetAllowanceParams, b?: GetAllowanceParams): Promise<string> {\n let provider: Provider | undefined;\n let params: GetAllowanceParams;\n if (b) {\n provider = a as Provider;\n params = b;\n } else {\n params = a as GetAllowanceParams;\n }\n const spender = getSpender(params.token, params.messenger);\n return await this.tokenService.getAllowance({ ...params, spender }, provider);\n }\n\n async checkAllowance(a: Provider | CheckAllowanceParams, b?: CheckAllowanceParams): Promise<boolean> {\n let provider: Provider | undefined;\n let params: CheckAllowanceParams;\n if (b) {\n provider = a as Provider;\n params = b;\n } else {\n params = a as CheckAllowanceParams;\n }\n const spender = getSpender(params.token, params.messenger);\n return this.tokenService.checkAllowance({ ...params, spender }, provider);\n }\n\n async approve(provider: Provider, approveData: ApproveParams): Promise<TransactionResponse> {\n const spender = getSpender(approveData.token, approveData.messenger);\n return this.tokenService.approve(provider, { ...approveData, spender });\n }\n\n async send(provider: Provider, params: SendParams): Promise<TransactionResponse> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, params.sourceToken.decimals);\n return getChainBridgeService(\n params.sourceToken.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider\n ).send(params);\n }\n}\n\nexport function getSpender(token: TokenWithChainDetails, messenger?: Messenger): string {\n if (messenger && messenger == Messenger.CCTP) {\n if (token.cctpAddress) {\n return token.cctpAddress;\n } else {\n throw new CCTPDoesNotSupportedError(\"Such route does not support CCTP protocol\");\n }\n } else if (messenger && messenger == Messenger.CCTP_V2) {\n if (token.cctpV2Address) {\n return token.cctpV2Address;\n } else {\n throw new CCTPDoesNotSupportedError(\"Such route does not support CCTP V2 protocol\");\n }\n } else {\n return token.bridgeAddress;\n }\n}\n\nexport function getChainBridgeService(\n chainSymbol: string,\n api: AllbridgeCoreClient,\n nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n params: AllbridgeCoreSdkOptions,\n provider?: Provider\n): ChainBridgeService {\n switch (Chains.getChainProperty(chainSymbol).chainType) {\n case ChainType.EVM: {\n if (provider) {\n return new EvmBridgeService(provider as EssentialWeb3, api, nodeRpcUrlsConfig);\n } else {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n return new EvmBridgeService(new Web3(nodeRpcUrl), api, nodeRpcUrlsConfig);\n }\n }\n case ChainType.TRX: {\n if (provider) {\n return new TronBridgeService(provider as TronWeb, api);\n } else {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n return new TronBridgeService(\n new TronWeb({\n fullHost: nodeRpcUrl,\n solidityNode: nodeRpcUrl,\n eventServer: nodeRpcUrl,\n }),\n api\n );\n }\n }\n case ChainType.SOLANA: {\n return new SolanaBridgeService(\n nodeRpcUrlsConfig.getNodeRpcUrl(ChainSymbol.SOL),\n {\n wormholeMessengerProgramId: params.wormholeMessengerProgramId,\n solanaLookUpTable: params.solanaLookUpTable,\n cctpParams: params.cctpParams,\n jupiterParams: {\n jupiterUrl: params.jupiterUrl,\n jupiterApiKeyHeader: params.jupiterApiKeyHeader,\n jupiterMaxAccounts: params.jupiterMaxAccounts,\n },\n },\n api\n );\n }\n case ChainType.SRB: {\n return new SrbBridgeService(nodeRpcUrlsConfig, params, api);\n }\n case ChainType.SUI: {\n return new SuiBridgeService(nodeRpcUrlsConfig, api);\n }\n }\n}\n"]}
@@ -35,9 +35,9 @@ class DefaultRawBridgeTransactionBuilder {
35
35
  (0, utils_1.validateAmountGtZero)(params.amount);
36
36
  (0, utils_1.validateAmountDecimals)("amount", params.amount, params.sourceToken.decimals);
37
37
  if ((0, utils_2.isSendParams)(params)) {
38
- return (await (0, index_1.getChainBridgeService)(params.sourceToken.chainSymbol, this.api, this.nodeRpcUrlsConfig, this.params, provider)).buildRawTransactionSend(params);
38
+ return (0, index_1.getChainBridgeService)(params.sourceToken.chainSymbol, this.api, this.nodeRpcUrlsConfig, this.params, provider).buildRawTransactionSend(params);
39
39
  }
40
- return (await (0, index_1.getChainBridgeService)(params.sourceToken.chainSymbol, this.api, this.nodeRpcUrlsConfig, this.params, provider)).buildRawTransactionSwap(params);
40
+ return (0, index_1.getChainBridgeService)(params.sourceToken.chainSymbol, this.api, this.nodeRpcUrlsConfig, this.params, provider).buildRawTransactionSwap(params);
41
41
  }
42
42
  }
43
43
  exports.DefaultRawBridgeTransactionBuilder = DefaultRawBridgeTransactionBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"raw-bridge-transaction-builder.js","sourceRoot":"","sources":["../../../../src/services/bridge/raw-bridge-transaction-builder.ts"],"names":[],"mappings":";;;AAGA,6CAAiF;AAIjF,mCAAuC;AACvC,mCAA4D;AAsB5D,MAAa,kCAAkC;IAEnC;IACA;IACA;IACA;IAJV,YACU,GAAwB,EACxB,iBAAoC,EACpC,MAA+B,EAC/B,YAA0B;QAH1B,QAAG,GAAH,GAAG,CAAqB;QACxB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,WAAM,GAAN,MAAM,CAAyB;QAC/B,iBAAY,GAAZ,YAAY,CAAc;IACjC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,CAA2B,EAAE,CAAiB;QAC1D,IAAI,QAA8B,CAAC;QACnC,IAAI,WAA0B,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC;YACN,QAAQ,GAAG,CAAa,CAAC;YACzB,WAAW,GAAG,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,CAAkB,CAAC;QACnC,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,YAAY,CAAC,0BAA0B,CACjD;YACE,GAAG,WAAW;YACd,OAAO;SACR,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAA+B,EAAE,QAAmB;QAC7D,IAAA,4BAAoB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAA,8BAAsB,EAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7E,IAAI,IAAA,oBAAY,EAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,CACL,MAAM,IAAA,6BAAqB,EACzB,MAAM,CAAC,WAAW,CAAC,WAAW,EAC9B,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CACF,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,CACL,MAAM,IAAA,6BAAqB,EACzB,MAAM,CAAC,WAAW,CAAC,WAAW,EAC9B,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CACF,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACF;AAnDD,gFAmDC","sourcesContent":["import { NodeRpcUrlsConfig } from \"..\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { AllbridgeCoreSdkOptions } from \"../../index\";\nimport { validateAmountDecimals, validateAmountGtZero } from \"../../utils/utils\";\nimport { Provider, RawTransaction } from \"../models\";\nimport { TokenService } from \"../token\";\nimport { ApproveParams, SendParams, SwapParams } from \"./models\";\nimport { isSendParams } from \"./utils\";\nimport { getChainBridgeService, getSpender } from \"./index\";\n\nexport interface RawBridgeTransactionBuilder {\n /**\n * Creates a Raw Transaction for approving tokens usage by the bridge\n * @param provider - will be used to access the network\n * @param approveData\n */\n approve(provider: Provider, approveData: ApproveParams): Promise<RawTransaction>;\n /**\n * Creates a Raw Transaction for approving tokens usage by the bridge\n * @param approveData\n */\n approve(approveData: ApproveParams): Promise<RawTransaction>;\n /**\n * Creates a Raw Transaction for initiating the transfer of tokens\n * @param params\n * @param provider - will be used to access the network\n */\n send(params: SwapParams | SendParams, provider?: Provider): Promise<RawTransaction>;\n}\n\nexport class DefaultRawBridgeTransactionBuilder implements RawBridgeTransactionBuilder {\n constructor(\n private api: AllbridgeCoreClient,\n private nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n private params: AllbridgeCoreSdkOptions,\n private tokenService: TokenService\n ) {}\n\n async approve(a: Provider | ApproveParams, b?: ApproveParams): Promise<RawTransaction> {\n let provider: Provider | undefined;\n let approveData: ApproveParams;\n if (b) {\n provider = a as Provider;\n approveData = b;\n } else {\n approveData = a as ApproveParams;\n }\n const spender = getSpender(approveData.token, approveData.messenger);\n return this.tokenService.buildRawTransactionApprove(\n {\n ...approveData,\n spender,\n },\n provider\n );\n }\n\n async send(params: SwapParams | SendParams, provider?: Provider): Promise<RawTransaction> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, params.sourceToken.decimals);\n if (isSendParams(params)) {\n return (\n await getChainBridgeService(\n params.sourceToken.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider\n )\n ).buildRawTransactionSend(params);\n }\n return (\n await getChainBridgeService(\n params.sourceToken.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider\n )\n ).buildRawTransactionSwap(params);\n }\n}\n"]}
1
+ {"version":3,"file":"raw-bridge-transaction-builder.js","sourceRoot":"","sources":["../../../../src/services/bridge/raw-bridge-transaction-builder.ts"],"names":[],"mappings":";;;AAGA,6CAAiF;AAIjF,mCAAuC;AACvC,mCAA4D;AAsB5D,MAAa,kCAAkC;IAEnC;IACA;IACA;IACA;IAJV,YACU,GAAwB,EACxB,iBAAoC,EACpC,MAA+B,EAC/B,YAA0B;QAH1B,QAAG,GAAH,GAAG,CAAqB;QACxB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,WAAM,GAAN,MAAM,CAAyB;QAC/B,iBAAY,GAAZ,YAAY,CAAc;IACjC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,CAA2B,EAAE,CAAiB;QAC1D,IAAI,QAA8B,CAAC;QACnC,IAAI,WAA0B,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC;YACN,QAAQ,GAAG,CAAa,CAAC;YACzB,WAAW,GAAG,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,CAAkB,CAAC;QACnC,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,YAAY,CAAC,0BAA0B,CACjD;YACE,GAAG,WAAW;YACd,OAAO;SACR,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAA+B,EAAE,QAAmB;QAC7D,IAAA,4BAAoB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAA,8BAAsB,EAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7E,IAAI,IAAA,oBAAY,EAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,IAAA,6BAAqB,EAC1B,MAAM,CAAC,WAAW,CAAC,WAAW,EAC9B,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAA,6BAAqB,EAC1B,MAAM,CAAC,WAAW,CAAC,WAAW,EAC9B,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACF;AA/CD,gFA+CC","sourcesContent":["import { NodeRpcUrlsConfig } from \"..\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { AllbridgeCoreSdkOptions } from \"../../index\";\nimport { validateAmountDecimals, validateAmountGtZero } from \"../../utils/utils\";\nimport { Provider, RawTransaction } from \"../models\";\nimport { TokenService } from \"../token\";\nimport { ApproveParams, SendParams, SwapParams } from \"./models\";\nimport { isSendParams } from \"./utils\";\nimport { getChainBridgeService, getSpender } from \"./index\";\n\nexport interface RawBridgeTransactionBuilder {\n /**\n * Creates a Raw Transaction for approving tokens usage by the bridge\n * @param provider - will be used to access the network\n * @param approveData\n */\n approve(provider: Provider, approveData: ApproveParams): Promise<RawTransaction>;\n /**\n * Creates a Raw Transaction for approving tokens usage by the bridge\n * @param approveData\n */\n approve(approveData: ApproveParams): Promise<RawTransaction>;\n /**\n * Creates a Raw Transaction for initiating the transfer of tokens\n * @param params\n * @param provider - will be used to access the network\n */\n send(params: SwapParams | SendParams, provider?: Provider): Promise<RawTransaction>;\n}\n\nexport class DefaultRawBridgeTransactionBuilder implements RawBridgeTransactionBuilder {\n constructor(\n private api: AllbridgeCoreClient,\n private nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n private params: AllbridgeCoreSdkOptions,\n private tokenService: TokenService\n ) {}\n\n async approve(a: Provider | ApproveParams, b?: ApproveParams): Promise<RawTransaction> {\n let provider: Provider | undefined;\n let approveData: ApproveParams;\n if (b) {\n provider = a as Provider;\n approveData = b;\n } else {\n approveData = a as ApproveParams;\n }\n const spender = getSpender(approveData.token, approveData.messenger);\n return this.tokenService.buildRawTransactionApprove(\n {\n ...approveData,\n spender,\n },\n provider\n );\n }\n\n async send(params: SwapParams | SendParams, provider?: Provider): Promise<RawTransaction> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, params.sourceToken.decimals);\n if (isSendParams(params)) {\n return getChainBridgeService(\n params.sourceToken.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider\n ).buildRawTransactionSend(params);\n }\n return getChainBridgeService(\n params.sourceToken.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider\n ).buildRawTransactionSwap(params);\n }\n}\n"]}
@@ -36,7 +36,7 @@ class SolanaBridgeService extends bridge_2.ChainBridgeService {
36
36
  this.jupiterService = new jupiter_1.JupiterService(solanaRpcUrl, params.jupiterParams);
37
37
  }
38
38
  async buildRawTransactionSwap(params) {
39
- const txSwapParams = await (0, utils_1.prepareTxSwapParams)(this.chainType, params);
39
+ const txSwapParams = (0, utils_1.prepareTxSwapParams)(this.chainType, params);
40
40
  return await this.buildSwapTransaction(txSwapParams, params.sourceToken.poolAddress, params.destinationToken.poolAddress, params.txFeeParams);
41
41
  }
42
42
  async buildSwapTransaction(params, poolAddress, toPoolAddress, txFeeParams) {