@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/liquidity-pool/index.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA6B;AAC7B,8DAAgC;AAChC,+BAA+B;AAC/B,sDAA8B;AAC9B,gDAAwB;AAExB,yCAAsC;AAGtC,uCAAiE;AAEjE,yDAAuF;AACvF,iEAAqE;AACrE,6CAAiF;AAGjF,sDAAmF;AACnF,+BAAuC;AAEvC,iFAA6G;AAC7G,+BAA0C;AAC1C,+BAAuC;AACvC,+BAAwC;AA4FxC,MAAa,2BAA2B;IAItC,YACU,GAAgC,EAChC,iBAAoC,EACpC,MAA+B,EAC/B,YAA0B;QAH1B,QAAG,GAAH,GAAG,CAA6B;QAChC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,WAAM,GAAN,MAAM,CAAyB;QAC/B,iBAAY,GAAZ,YAAY,CAAc;QAElC,IAAI,CAAC,YAAY,GAAG,IAAI,+DAAgC,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC5G,MAAM,GAAG,GAAG,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;QAC/F,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAK,CAAW,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,CAAgC,EAAE,CAAsB;QACzE,IAAI,CAAC,EAAE;YACL,MAAM,QAAQ,GAAG,CAAa,CAAC;YAC/B,MAAM,MAAM,GAAG,CAAC,CAAC;YACjB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;SACzG;aAAM;YACL,MAAM,MAAM,GAAG,CAAuB,CAAC;YACvC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;SAC/F;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,CAAkC,EAAE,CAAwB;QAC/E,IAAI,CAAC,EAAE;YACL,MAAM,QAAQ,GAAG,CAAa,CAAC;YAC/B,MAAM,MAAM,GAAG,CAAC,CAAC;YACjB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;SACrG;aAAM;YACL,MAAM,MAAM,GAAG,CAAyB,CAAC;YACzC,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;SAC3F;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAAkB,EAAE,WAA0B;QAC1D,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,MAAc,EAAE,KAA4B,EAAE,QAAmB;QAC5F,IAAA,4BAAoB,EAAC,MAAM,CAAC,CAAC;QAC7B,IAAA,8BAAsB,EAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC3D,MAAM,IAAI,GAAG,IAAA,iCAAmB,EAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QACpF,OAAO,IAAA,qCAAuB,EAAC,IAAI,EAAE,4BAAgB,CAAC,CAAC,OAAO,EAAE,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,MAAc,EACd,cAAsB,EACtB,KAA4B,EAC5B,QAAmB;QAEnB,IAAA,4BAAoB,EAAC,MAAM,CAAC,CAAC;QAC7B,IAAA,8BAAsB,EAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,eAAe,GAAG,IAAA,oCAAsB,EAAC,MAAM,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,IAAA,iCAAmB,EAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzE,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QACnD,MAAM,YAAY,GAAG,IAAA,YAAG,EAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7D,OAAO,IAAA,qCAAuB,EAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,cAAsB,EACtB,KAA4B,EAC5B,QAAmB;QAEnB,OAAO,mBAAmB,CACxB,KAAK,CAAC,WAAW,EACjB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC,kBAAkB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAA4B,EAAE,QAAmB;QAC1E,MAAM,OAAO,GAAkB,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QAClG,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,SAAS,EAAE;YACb,OAAO,SAAS,CAAC;SAClB;aAAM;YACL,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CACxC,KAAK,CAAC,WAAW,EACjB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;YAChG,OAAO,QAAQ,CAAC;SACjB;IACH,CAAC;CACF;AAnGD,kEAmGC;AAED,SAAgB,mBAAmB,CACjC,WAAmB,EACnB,GAAwB,EACxB,iBAAoC,EACpC,MAA+B,EAC/B,QAAmB;IAEnB,QAAQ,eAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE;QACtD,KAAK,iBAAS,CAAC,GAAG,CAAC,CAAC;YAClB,IAAI,QAAQ,EAAE;gBACZ,OAAO,IAAI,oBAAc,CAAC,QAA2B,EAAE,GAAG,CAAC,CAAC;aAC7D;iBAAM;gBACL,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAChE,OAAO,IAAI,oBAAc,CAAC,IAAI,cAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC;aACtD;SACF;QACD,KAAK,iBAAS,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;YACvC,IAAI,QAAQ,EAAE;gBACZ,OAAO,IAAI,qBAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;aACxD;iBAAM;gBACL,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;gBACtD,OAAO,IAAI,qBAAe,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;aACvD;SACF;QACD,KAAK,iBAAS,CAAC,MAAM,CAAC,CAAC;YACrB,MAAM,UAAU,GAAG,iBAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAChE,OAAO,IAAI,uBAAiB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;SAC/C;QACD,KAAK,iBAAS,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,IAAI,oBAAc,CAAC,iBAAiB,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;SAC3D;KACF;AACH,CAAC;AAlCD,kDAkCC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/liquidity-pool/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Big } from \"big.js\";\nimport Cache from \"timed-cache\";\nimport { TronWeb } from \"tronweb\";\nimport { FMT_BYTES, FMT_NUMBER, Web3 } from \"web3\";\nimport { NodeRpcUrlsConfig } from \"..\";\nimport { Chains } from \"../../chains\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { AllbridgeCoreClientFiltered } from \"../../client/core-api/core-client-filtered\";\nimport { AllbridgeCoreSdkOptions, ChainType, EssentialWeb3 } from \"../../index\";\nimport { PoolInfo, PoolKeyObject, TokenWithChainDetails } from \"../../tokens-info\";\nimport { convertIntAmountToFloat, fromSystemPrecision } from \"../../utils/calculation\";\nimport { SYSTEM_PRECISION } from \"../../utils/calculation/constants\";\nimport { validateAmountDecimals, validateAmountGtZero } from \"../../utils/utils\";\nimport { Provider, TransactionResponse } from \"../models\";\nimport { TokenService } from \"../token\";\nimport { depositAmountToVUsd, vUsdToWithdrawalAmount } from \"../utils/calculation\";\nimport { EvmPoolService } from \"./evm\";\nimport { ApproveParams, ChainPoolService, CheckAllowanceParams, GetAllowanceParams, UserBalanceInfo } from \"./models\";\nimport { DefaultRawPoolTransactionBuilder, RawPoolTransactionBuilder } from \"./raw-pool-transaction-builder\";\nimport { SolanaPoolService } from \"./sol\";\nimport { SrbPoolService } from \"./srb\";\nimport { TronPoolService } from \"./trx\";\n\nexport interface LiquidityPoolService {\n rawTxBuilder: RawPoolTransactionBuilder;\n\n /**\n * Get amount of tokens approved for poolInfo\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 for poolInfo\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\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\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 RawPoolTransactionBuilder.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 * Calculates the amount of LP tokens that will be deposited\n * @param amount The float amount of tokens that will be sent\n * @param token\n * @param provider - will be used to access the network\n * @returns amount\n */\n getAmountToBeDeposited(amount: string, token: TokenWithChainDetails, provider?: Provider): Promise<string>;\n\n /**\n * Calculates the amount of tokens will be withdrawn\n * @param amount The float amount of tokens that will be sent\n * @param accountAddress\n * @param token\n * @param provider - will be used to access the network\n * @returns amount\n */\n getAmountToBeWithdrawn(\n amount: string,\n accountAddress: string,\n token: TokenWithChainDetails,\n provider?: Provider,\n ): Promise<string>;\n\n /**\n * Get User Balance Info on Liquidity poolInfo\n * @param accountAddress\n * @param token\n * @param provider\n * @returns UserBalanceInfo\n */\n getUserBalanceInfo(\n accountAddress: string,\n token: TokenWithChainDetails,\n provider?: Provider,\n ): Promise<UserBalanceInfo>;\n\n /**\n * Gets information about the poolInfo from chain\n * @param token\n * @param provider - will be used to access the network\n * @returns poolInfo\n */\n getPoolInfoFromChain(token: TokenWithChainDetails, provider?: Provider): Promise<Required<PoolInfo>>;\n}\n\nexport class DefaultLiquidityPoolService implements LiquidityPoolService {\n public rawTxBuilder: RawPoolTransactionBuilder;\n private cache: Cache<PoolInfo>;\n\n constructor(\n private api: AllbridgeCoreClientFiltered,\n private nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n private params: AllbridgeCoreSdkOptions,\n private tokenService: TokenService,\n ) {\n this.rawTxBuilder = new DefaultRawPoolTransactionBuilder(api, nodeRpcUrlsConfig, this.params, tokenService);\n const ttl = params.cachePoolInfoChainSec > 0 ? params.cachePoolInfoChainSec * 1000 : 20 * 1000;\n this.cache = new Cache<PoolInfo>({ defaultTtl: ttl });\n }\n\n async getAllowance(a: Provider | GetAllowanceParams, b?: GetAllowanceParams): Promise<string> {\n if (b) {\n const provider = a as Provider;\n const params = b;\n return await this.tokenService.getAllowance({ ...params, spender: params.token.poolAddress }, provider);\n } else {\n const params = a as GetAllowanceParams;\n return await this.tokenService.getAllowance({ ...params, spender: params.token.poolAddress });\n }\n }\n\n async checkAllowance(a: Provider | CheckAllowanceParams, b?: CheckAllowanceParams): Promise<boolean> {\n if (b) {\n const provider = a as Provider;\n const params = b;\n return this.tokenService.checkAllowance({ ...params, spender: params.token.poolAddress }, provider);\n } else {\n const params = a as CheckAllowanceParams;\n return this.tokenService.checkAllowance({ ...params, spender: params.token.poolAddress });\n }\n }\n\n async approve(provider: Provider, approveData: ApproveParams): Promise<TransactionResponse> {\n return this.tokenService.approve(provider, { ...approveData, spender: approveData.token.poolAddress });\n }\n\n async getAmountToBeDeposited(amount: string, token: TokenWithChainDetails, provider?: Provider): Promise<string> {\n validateAmountGtZero(amount);\n validateAmountDecimals(\"amount\", amount, token.decimals);\n const pool = await this.getPoolInfoFromChain(token, provider);\n const { vUsdBalance, tokenBalance, aValue, dValue } = pool;\n const vUsd = depositAmountToVUsd(amount, aValue, dValue, tokenBalance, vUsdBalance);\n return convertIntAmountToFloat(vUsd, SYSTEM_PRECISION).toFixed();\n }\n\n async getAmountToBeWithdrawn(\n amount: string,\n accountAddress: string,\n token: TokenWithChainDetails,\n provider?: Provider,\n ): Promise<string> {\n validateAmountGtZero(amount);\n validateAmountDecimals(\"amount\", amount, token.decimals);\n const pool = await this.getPoolInfoFromChain(token, provider);\n const tokenAmountInSP = vUsdToWithdrawalAmount(amount);\n const tokenAmount = fromSystemPrecision(tokenAmountInSP, token.decimals);\n const userBalanceInfo = await this.getUserBalanceInfo(accountAddress, token, provider);\n const earned = userBalanceInfo.earned(pool) || \"0\";\n const commonAmount = Big(tokenAmount).plus(earned).toFixed();\n return convertIntAmountToFloat(commonAmount, token.decimals).toFixed();\n }\n\n async getUserBalanceInfo(\n accountAddress: string,\n token: TokenWithChainDetails,\n provider?: Provider,\n ): Promise<UserBalanceInfo> {\n return getChainPoolService(\n token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider,\n ).getUserBalanceInfo(accountAddress, token);\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails, provider?: Provider): Promise<PoolInfo> {\n const poolKey: PoolKeyObject = { chainSymbol: token.chainSymbol, poolAddress: token.poolAddress };\n const fromCache = this.cache.get(poolKey);\n if (fromCache) {\n return fromCache;\n } else {\n const poolInfo = await getChainPoolService(\n token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider,\n ).getPoolInfoFromChain(token);\n this.cache.put(poolKey, poolInfo);\n this.api.cachePut({ chainSymbol: token.chainSymbol, poolAddress: token.poolAddress }, poolInfo);\n return poolInfo;\n }\n }\n}\n\nexport function getChainPoolService(\n chainSymbol: string,\n api: AllbridgeCoreClient,\n nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n params: AllbridgeCoreSdkOptions,\n provider?: Provider,\n): ChainPoolService {\n switch (Chains.getChainProperty(chainSymbol).chainType) {\n case ChainType.EVM: {\n if (provider) {\n return new EvmPoolService(provider as EssentialWeb3, api);\n } else {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const web3 = new Web3(nodeRpcUrl);\n web3.defaultReturnFormat = { number: FMT_NUMBER.STR, bytes: FMT_BYTES.HEX };\n return new EvmPoolService(web3, api);\n }\n }\n case ChainType.TRX: {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const tronJsonRpc = params.tronJsonRpc;\n if (provider) {\n return new TronPoolService(provider as TronWeb, api, tronJsonRpc);\n } else {\n const tronWeb = new TronWeb({ fullHost: nodeRpcUrl });\n return new TronPoolService(tronWeb, api, tronJsonRpc);\n }\n }\n case ChainType.SOLANA: {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n return new SolanaPoolService(nodeRpcUrl, api);\n }\n case ChainType.SRB: {\n return new SrbPoolService(nodeRpcUrlsConfig, params, api);\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+BAA0C;AAAjC,wGAAA,gBAAgB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,+BAA0C;AAAjC,wGAAA,gBAAgB,OAAA","sourcesContent":["export * from \"./pool.model\";\nexport { ChainPoolService } from \"./pool\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/models/pool.ts"],"names":[],"mappings":";;;AAMA,MAAsB,gBAAgB;CAarC;AAbD,4CAaC"}
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/models/pool.ts"],"names":[],"mappings":";;;AAMA,MAAsB,gBAAgB;CAarC;AAbD,4CAaC","sourcesContent":["import { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { RawTransaction } from \"../../models\";\nimport { LiquidityPoolsParams, LiquidityPoolsParamsWithAmount, UserBalanceInfo } from \"./pool.model\";\n\nexport abstract class ChainPoolService {\n abstract chainType: ChainType;\n abstract api: AllbridgeCoreClient;\n\n abstract getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo>;\n\n abstract getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo>;\n\n abstract buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction>;\n\n abstract buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction>;\n\n abstract buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawTransaction>;\n}\n"]}
|
|
@@ -4,6 +4,8 @@ exports.UserBalance = void 0;
|
|
|
4
4
|
const calculation_1 = require("../../../utils/calculation");
|
|
5
5
|
const constants_1 = require("../../../utils/calculation/constants");
|
|
6
6
|
class UserBalance {
|
|
7
|
+
lpAmount;
|
|
8
|
+
rewardDebt;
|
|
7
9
|
constructor(userInfo) {
|
|
8
10
|
this.lpAmount = userInfo.lpAmount;
|
|
9
11
|
this.rewardDebt = userInfo.rewardDebt;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.model.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/models/pool.model.ts"],"names":[],"mappings":";;;AAGA,4DAAgF;AAChF,oEAAwE;AAmExE,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"pool.model.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/models/pool.model.ts"],"names":[],"mappings":";;;AAGA,4DAAgF;AAChF,oEAAwE;AAmExE,MAAa,WAAW;IACtB,QAAQ,CAAS;IACjB,UAAU,CAAS;IAEnB,YAAY,QAA4B;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACxC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAA,qCAAuB,EAAC,IAAI,CAAC,QAAQ,EAAE,4BAAgB,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5E,CAAC;IAED,MAAM,CAAC,QAAkB,EAAE,QAAiB;QAC1C,MAAM,MAAM,GAAG,IAAA,uBAAS,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClG,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,IAAA,qCAAuB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AApBD,kCAoBC","sourcesContent":["import { Big } from \"big.js\";\nimport { FeePaymentMethod, TxFeeParams } from \"../../../models\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { convertIntAmountToFloat, getEarned } from \"../../../utils/calculation\";\nimport { SYSTEM_PRECISION } from \"../../../utils/calculation/constants\";\n\nexport interface ApproveParams {\n /**\n * The token info\n */\n token: TokenWithChainDetails;\n\n /**\n * The address of the token owner who is granting permission to use tokens\n */\n owner: string;\n\n /**\n * The integer amount of tokens to approve.\n * Optional.\n * The maximum amount by default.\n */\n amount?: string | number | Big;\n}\n\nexport interface GetAllowanceParams {\n token: TokenWithChainDetails;\n owner: string;\n gasFeePaymentMethod?: FeePaymentMethod;\n}\n\nexport type GetAllowanceParamsDto = GetAllowanceParams;\n\nexport interface CheckAllowanceParams extends GetAllowanceParams {\n /**\n * The float amount of tokens to check the allowance.\n */\n amount: string | number | Big;\n}\n\nexport interface LiquidityPoolsParams {\n /**\n * The account address to operate tokens with.\n */\n accountAddress: string;\n /**\n * {@link TokenWithChainDetails |The token info object} of operation token.\n */\n token: TokenWithChainDetails;\n\n txFeeParams?: TxFeeParams;\n}\n\nexport interface LiquidityPoolsParamsWithAmount extends LiquidityPoolsParams {\n /**\n * The float amount of tokens.\n */\n amount: string;\n}\n\nexport interface UserBalanceInfoDTO {\n lpAmount: string;\n rewardDebt: string;\n}\n\nexport interface UserBalanceInfo extends UserBalanceInfoDTO {\n userLiquidity: string;\n\n earned(poolInfo: PoolInfo, decimals?: number): string;\n}\n\nexport class UserBalance implements UserBalanceInfo {\n lpAmount: string;\n rewardDebt: string;\n\n constructor(userInfo: UserBalanceInfoDTO) {\n this.lpAmount = userInfo.lpAmount;\n this.rewardDebt = userInfo.rewardDebt;\n }\n\n get userLiquidity(): string {\n return convertIntAmountToFloat(this.lpAmount, SYSTEM_PRECISION).toFixed();\n }\n\n earned(poolInfo: PoolInfo, decimals?: number): string {\n const earned = getEarned(this.lpAmount, this.rewardDebt, poolInfo.accRewardPerShareP, poolInfo.p);\n if (decimals) {\n return convertIntAmountToFloat(earned, decimals).toFixed();\n }\n return earned;\n }\n}\n"]}
|
|
@@ -6,6 +6,10 @@ const constants_1 = require("../../utils/calculation/constants");
|
|
|
6
6
|
const utils_1 = require("../../utils/utils");
|
|
7
7
|
const index_1 = require("./index");
|
|
8
8
|
class DefaultRawPoolTransactionBuilder {
|
|
9
|
+
api;
|
|
10
|
+
nodeRpcUrlsConfig;
|
|
11
|
+
params;
|
|
12
|
+
tokenService;
|
|
9
13
|
constructor(api, nodeRpcUrlsConfig, params, tokenService) {
|
|
10
14
|
this.api = api;
|
|
11
15
|
this.nodeRpcUrlsConfig = nodeRpcUrlsConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw-pool-transaction-builder.js","sourceRoot":"","sources":["../../../../src/services/liquidity-pool/raw-pool-transaction-builder.ts"],"names":[],"mappings":";;;AAGA,yDAAkE;AAClE,iEAAqE;AACrE,6CAAiF;AAIjF,mCAA8C;AAqC9C,MAAa,gCAAgC;
|
|
1
|
+
{"version":3,"file":"raw-pool-transaction-builder.js","sourceRoot":"","sources":["../../../../src/services/liquidity-pool/raw-pool-transaction-builder.ts"],"names":[],"mappings":";;;AAGA,yDAAkE;AAClE,iEAAqE;AACrE,6CAAiF;AAIjF,mCAA8C;AAqC9C,MAAa,gCAAgC;IAEjC;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,CAAC,EAAE,CAAC;YACN,MAAM,QAAQ,GAAG,CAAa,CAAC;YAC/B,MAAM,WAAW,GAAkB,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC,YAAY,CAAC,0BAA0B,CACjD;gBACE,GAAG,WAAW;gBACd,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW;aACvC,EACD,QAAQ,CACT,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAkB,CAAkB,CAAC;YACtD,OAAO,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC;gBAClD,GAAG,WAAW;gBACd,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAsC,EAAE,QAAmB;QACvE,IAAA,4BAAoB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAA,8BAAsB,EAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,GAAG,IAAA,qCAAuB,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QACxF,OAAO,IAAA,2BAAmB,EACxB,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAsC,EAAE,QAAmB;QACxE,IAAA,4BAAoB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAA,8BAAsB,EAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,GAAG,IAAA,qCAAuB,EAAC,MAAM,CAAC,MAAM,EAAE,4BAAgB,CAAC,CAAC,OAAO,EAAE,CAAC;QACnF,OAAO,IAAA,2BAAmB,EACxB,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAA4B,EAAE,QAAmB;QAClE,OAAO,IAAA,2BAAmB,EACxB,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;CACF;AA/DD,4EA+DC","sourcesContent":["import { NodeRpcUrlsConfig } from \"..\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { AllbridgeCoreSdkOptions } from \"../../index\";\nimport { convertFloatAmountToInt } from \"../../utils/calculation\";\nimport { SYSTEM_PRECISION } from \"../../utils/calculation/constants\";\nimport { validateAmountDecimals, validateAmountGtZero } from \"../../utils/utils\";\nimport { Provider, RawTransaction } from \"../models\";\nimport { TokenService } from \"../token\";\nimport { ApproveParams, LiquidityPoolsParams, LiquidityPoolsParamsWithAmount } from \"./models\";\nimport { getChainPoolService } from \"./index\";\n\nexport interface RawPoolTransactionBuilder {\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 /**\n * Creates a Raw Transaction for depositing tokens to Liquidity pools\n * @param params\n * @param provider - will be used to access the network\n */\n deposit(params: LiquidityPoolsParamsWithAmount, provider?: Provider): Promise<RawTransaction>;\n\n /**\n * Creates a Raw Transaction for withdrawing tokens from Liquidity pools\n * @param params\n * @param provider - will be used to access the network\n */\n withdraw(params: LiquidityPoolsParamsWithAmount, provider?: Provider): Promise<RawTransaction>;\n\n /**\n * Creates a Raw Transaction for claiming rewards from Liquidity pools\n * @param params\n * @param provider - will be used to access the network\n */\n claimRewards(params: LiquidityPoolsParams, provider?: Provider): Promise<RawTransaction>;\n}\n\nexport class DefaultRawPoolTransactionBuilder implements RawPoolTransactionBuilder {\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 if (b) {\n const provider = a as Provider;\n const approveData: ApproveParams = b;\n return this.tokenService.buildRawTransactionApprove(\n {\n ...approveData,\n spender: approveData.token.poolAddress,\n },\n provider,\n );\n } else {\n const approveData: ApproveParams = a as ApproveParams;\n return this.tokenService.buildRawTransactionApprove({\n ...approveData,\n spender: approveData.token.poolAddress,\n });\n }\n }\n\n async deposit(params: LiquidityPoolsParamsWithAmount, provider?: Provider): Promise<RawTransaction> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, params.token.decimals);\n params.amount = convertFloatAmountToInt(params.amount, params.token.decimals).toFixed();\n return getChainPoolService(\n params.token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider,\n ).buildRawTransactionDeposit(params);\n }\n\n async withdraw(params: LiquidityPoolsParamsWithAmount, provider?: Provider): Promise<RawTransaction> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, params.token.decimals);\n params.amount = convertFloatAmountToInt(params.amount, SYSTEM_PRECISION).toFixed();\n return getChainPoolService(\n params.token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider,\n ).buildRawTransactionWithdraw(params);\n }\n\n async claimRewards(params: LiquidityPoolsParams, provider?: Provider): Promise<RawTransaction> {\n return getChainPoolService(\n params.token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider,\n ).buildRawTransactionClaimRewards(params);\n }\n}\n"]}
|
|
@@ -12,12 +12,14 @@ const compute_budget_1 = require("../../utils/sol/compute-budget");
|
|
|
12
12
|
const models_1 = require("../models");
|
|
13
13
|
const pool_1 = require("../models/pool");
|
|
14
14
|
class SolanaPoolService extends pool_1.ChainPoolService {
|
|
15
|
+
solanaRpcUrl;
|
|
16
|
+
api;
|
|
17
|
+
chainType = chain_enums_1.ChainType.SOLANA;
|
|
18
|
+
P = 48;
|
|
15
19
|
constructor(solanaRpcUrl, api) {
|
|
16
20
|
super();
|
|
17
21
|
this.solanaRpcUrl = solanaRpcUrl;
|
|
18
22
|
this.api = api;
|
|
19
|
-
this.chainType = chain_enums_1.ChainType.SOLANA;
|
|
20
|
-
this.P = 48;
|
|
21
23
|
}
|
|
22
24
|
async getUserBalanceInfo(accountAddress, token) {
|
|
23
25
|
const provider = this.buildAnchorProvider(accountAddress);
|
|
@@ -32,7 +34,7 @@ class SolanaPoolService extends pool_1.ChainPoolService {
|
|
|
32
34
|
rewardDebt: rewardDebt.toString(),
|
|
33
35
|
});
|
|
34
36
|
}
|
|
35
|
-
catch (
|
|
37
|
+
catch (ignoreError) {
|
|
36
38
|
return new models_1.UserBalance({ lpAmount: "0", rewardDebt: "0" });
|
|
37
39
|
}
|
|
38
40
|
}
|
|
@@ -122,7 +124,7 @@ class SolanaPoolService extends pool_1.ChainPoolService {
|
|
|
122
124
|
try {
|
|
123
125
|
await (0, sol_1.getTokenAccountData)(userToken, provider);
|
|
124
126
|
}
|
|
125
|
-
catch (
|
|
127
|
+
catch (ignoreError) {
|
|
126
128
|
const associatedProgram = anchor_1.Spl.associatedToken(provider);
|
|
127
129
|
const createUserTokenInstruction = await associatedProgram.methods
|
|
128
130
|
.create()
|
|
@@ -137,7 +139,7 @@ class SolanaPoolService extends pool_1.ChainPoolService {
|
|
|
137
139
|
try {
|
|
138
140
|
await bridge.account.userDeposit.fetch(userDepositAccount);
|
|
139
141
|
}
|
|
140
|
-
catch (
|
|
142
|
+
catch (ignoreError) {
|
|
141
143
|
const instruction = await bridge.methods
|
|
142
144
|
.initDepositAccount()
|
|
143
145
|
.accounts({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/sol/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/sol/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { AnchorProvider, BN, Program, Provider, Spl, web3 } from \"@project-serum/anchor\";\nimport { Connection, PublicKey, TransactionInstruction } from \"@solana/web3.js\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { RawTransaction } from \"../../models\";\nimport { Bridge as BridgeType, IDL as bridgeIdl } from \"../../models/sol/types/bridge\";\nimport { getTokenAccountData } from \"../../utils/sol\";\nimport {\n getAssociatedAccount,\n getAuthorityAccount,\n getBridgeTokenAccount,\n getConfigAccount,\n getUserDepositAccount,\n} from \"../../utils/sol/accounts\";\nimport { addUnitLimitAndUnitPriceToTx } from \"../../utils/sol/compute-budget\";\nimport { LiquidityPoolsParams, LiquidityPoolsParamsWithAmount, UserBalance, UserBalanceInfo } from \"../models\";\nimport { ChainPoolService } from \"../models/pool\";\n\ninterface LPAccounts {\n mint: PublicKey;\n user: PublicKey;\n config: PublicKey;\n pool: PublicKey;\n bridgeAuthority: PublicKey;\n userDeposit: PublicKey;\n userToken: PublicKey;\n bridgeToken: PublicKey;\n}\n\ninterface LPTransactionData {\n accounts: LPAccounts;\n preInstructions: TransactionInstruction[];\n}\n\nexport class SolanaPoolService extends ChainPoolService {\n chainType: ChainType.SOLANA = ChainType.SOLANA;\n private P = 48;\n\n constructor(\n public solanaRpcUrl: string,\n public api: AllbridgeCoreClient,\n ) {\n super();\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n const provider = this.buildAnchorProvider(accountAddress);\n const bridge = this.getBridge(token.bridgeAddress, provider);\n const poolAccount = new PublicKey(token.poolAddress);\n const poolAccountInfo = await bridge.account.pool.fetch(poolAccount);\n try {\n const userDepositAccount = await getUserDepositAccount(\n new PublicKey(accountAddress),\n poolAccountInfo.mint,\n bridge.programId,\n );\n const { lpAmount, rewardDebt } = await bridge.account.userDeposit.fetch(userDepositAccount);\n return new UserBalance({\n lpAmount: lpAmount.toString(),\n rewardDebt: rewardDebt.toString(),\n });\n } catch (ignoreError) {\n return new UserBalance({ lpAmount: \"0\", rewardDebt: \"0\" });\n }\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n const provider = this.buildAnchorProvider(token.bridgeAddress);\n const pool = await this.getBridge(token.bridgeAddress, provider).account.pool.fetch(token.poolAddress);\n const vUsdBalance = pool.vUsdBalance.toString();\n const tokenBalance = pool.tokenBalance.toString();\n const imbalance = calculatePoolInfoImbalance({ tokenBalance, vUsdBalance });\n return {\n dValue: pool.d.toString(),\n aValue: pool.a.toString(),\n totalLpAmount: pool.totalLpAmount.toString(),\n vUsdBalance,\n tokenBalance,\n accRewardPerShareP: pool.accRewardPerShareP.toString(),\n p: this.P,\n imbalance,\n };\n }\n\n async buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const { bridge, accounts, preInstructions } = await this.prepareDataForTransaction(params);\n\n const tx = await bridge.methods\n .deposit(new BN(params.amount))\n .accounts(accounts)\n .preInstructions(preInstructions)\n .transaction();\n tx.recentBlockhash = (\n await this.buildAnchorProvider(params.accountAddress).connection.getLatestBlockhash()\n ).blockhash;\n tx.feePayer = new PublicKey(params.accountAddress);\n await addUnitLimitAndUnitPriceToTx(tx, params.txFeeParams, this.solanaRpcUrl);\n return tx;\n }\n\n async buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const { bridge, accounts, preInstructions } = await this.prepareDataForTransaction(params);\n\n const tx = await bridge.methods\n .withdraw(new BN(params.amount))\n .accounts(accounts)\n .preInstructions(preInstructions)\n .transaction();\n tx.recentBlockhash = (\n await this.buildAnchorProvider(params.accountAddress).connection.getLatestBlockhash()\n ).blockhash;\n tx.feePayer = new PublicKey(params.accountAddress);\n await addUnitLimitAndUnitPriceToTx(tx, params.txFeeParams, this.solanaRpcUrl);\n return tx;\n }\n\n async buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawTransaction> {\n const { bridge, accounts, preInstructions } = await this.prepareDataForTransaction(params);\n\n const tx = await bridge.methods.claimRewards().accounts(accounts).preInstructions(preInstructions).transaction();\n tx.recentBlockhash = (\n await this.buildAnchorProvider(params.accountAddress).connection.getLatestBlockhash()\n ).blockhash;\n tx.feePayer = new PublicKey(params.accountAddress);\n await addUnitLimitAndUnitPriceToTx(tx, params.txFeeParams, this.solanaRpcUrl);\n return tx;\n }\n\n private async prepareDataForTransaction(params: LiquidityPoolsParams) {\n const provider = this.buildAnchorProvider(params.accountAddress);\n const bridge = this.getBridge(params.token.bridgeAddress, provider);\n\n const { accounts, preInstructions } = await this._getLPTransactionData(\n bridge,\n params.token.poolAddress,\n params.accountAddress,\n provider,\n );\n return { bridge, accounts, preInstructions };\n }\n\n private getBridge(bridgeAddress: string, provider: Provider): Program<BridgeType> {\n return new Program<BridgeType>(bridgeIdl, bridgeAddress, provider);\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 private async _getLPTransactionData(\n bridge: Program<BridgeType>,\n poolAddress: string,\n account: string,\n provider: Provider,\n ): Promise<LPTransactionData> {\n const user = new PublicKey(account);\n const configAccount = await getConfigAccount(bridge.programId);\n const bridgeAuthority = await getAuthorityAccount(bridge.programId);\n const poolAccount = new PublicKey(poolAddress);\n const poolAccountInfo = await bridge.account.pool.fetch(poolAccount);\n const tokenMintAccount = poolAccountInfo.mint;\n const userToken = await getAssociatedAccount(user, tokenMintAccount);\n const bridgeTokenAccount = await getBridgeTokenAccount(tokenMintAccount, bridge.programId);\n const userDepositAccount = await getUserDepositAccount(user, tokenMintAccount, bridge.programId);\n\n const preInstructions: TransactionInstruction[] = [\n web3.ComputeBudgetProgram.setComputeUnitLimit({\n units: 1000000,\n }),\n ];\n\n try {\n await getTokenAccountData(userToken, provider);\n } catch (ignoreError) {\n const associatedProgram = Spl.associatedToken(provider);\n const createUserTokenInstruction: TransactionInstruction = await associatedProgram.methods\n .create()\n .accounts({\n mint: tokenMintAccount,\n owner: user,\n associatedAccount: userToken,\n })\n .instruction();\n preInstructions.push(createUserTokenInstruction);\n }\n\n try {\n await bridge.account.userDeposit.fetch(userDepositAccount);\n } catch (ignoreError) {\n const instruction: TransactionInstruction = await bridge.methods\n .initDepositAccount()\n .accounts({\n mint: tokenMintAccount,\n user,\n userDeposit: userDepositAccount,\n })\n .instruction();\n preInstructions.push(instruction);\n }\n\n const accounts: LPAccounts = {\n mint: tokenMintAccount,\n user,\n config: configAccount,\n pool: poolAccount,\n bridgeAuthority: bridgeAuthority,\n userDeposit: userDepositAccount,\n userToken,\n bridgeToken: bridgeTokenAccount,\n };\n\n return { accounts, preInstructions };\n }\n}\n"]}
|
|
@@ -7,13 +7,16 @@ const calculation_1 = require("../../../utils/calculation");
|
|
|
7
7
|
const pool_contract_1 = require("../../models/srb/pool-contract");
|
|
8
8
|
const models_2 = require("../models");
|
|
9
9
|
class SrbPoolService extends models_2.ChainPoolService {
|
|
10
|
+
nodeRpcUrlsConfig;
|
|
11
|
+
params;
|
|
12
|
+
api;
|
|
13
|
+
chainType = index_1.ChainType.SRB;
|
|
14
|
+
P = 48;
|
|
10
15
|
constructor(nodeRpcUrlsConfig, params, api) {
|
|
11
16
|
super();
|
|
12
17
|
this.nodeRpcUrlsConfig = nodeRpcUrlsConfig;
|
|
13
18
|
this.params = params;
|
|
14
19
|
this.api = api;
|
|
15
|
-
this.chainType = index_1.ChainType.SRB;
|
|
16
|
-
this.P = 48;
|
|
17
20
|
}
|
|
18
21
|
async getUserBalanceInfo(accountAddress, token) {
|
|
19
22
|
const poolContract = this.getContract(token.poolAddress);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/srb/index.ts"],"names":[],"mappings":";;;AAEA,0CAAiF;AACjF,4CAOyB;AACzB,4DAAwE;AAGxE,kEAA8D;AAC9D,sCAA0D;AAG1D,MAAa,cAAe,SAAQ,yBAAgB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/srb/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { contract } from \"@stellar/stellar-sdk\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { AllbridgeCoreSdkOptions, ChainSymbol, ChainType } from \"../../../index\";\nimport {\n LiquidityPoolsParams,\n LiquidityPoolsParamsWithAmount,\n PoolInfo,\n SdkError,\n TokenWithChainDetails,\n UserBalanceInfo,\n} from \"../../../models\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { NodeRpcUrlsConfig } from \"../../index\";\nimport { RawTransaction } from \"../../models\";\nimport { PoolContract } from \"../../models/srb/pool-contract\";\nimport { ChainPoolService, UserBalance } from \"../models\";\nimport ContractClientOptions = contract.ClientOptions;\n\nexport class SrbPoolService extends ChainPoolService {\n chainType: ChainType.SRB = ChainType.SRB;\n private P = 48;\n\n constructor(\n readonly nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n readonly params: AllbridgeCoreSdkOptions,\n readonly api: AllbridgeCoreClient,\n ) {\n super();\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n const poolContract = this.getContract(token.poolAddress);\n const result = (await poolContract.get_user_deposit({ user: accountAddress })).result;\n if (result.isErr()) {\n throw new SdkError();\n }\n const userDeposit = result.unwrap();\n return new UserBalance({\n lpAmount: userDeposit.lp_amount.toString(),\n rewardDebt: userDeposit.reward_debt.toString(),\n });\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n const poolContract = this.getContract(token.poolAddress);\n const result = (await poolContract.get_pool()).result;\n if (result.isErr()) {\n throw new SdkError();\n }\n const pool = result.unwrap();\n return {\n aValue: pool.a.toString(),\n accRewardPerShareP: pool.acc_reward_per_share_p.toString(),\n dValue: pool.d.toString(),\n tokenBalance: pool.token_balance.toString(),\n p: this.P,\n totalLpAmount: pool.total_lp_amount.toString(),\n vUsdBalance: pool.v_usd_balance.toString(),\n imbalance: calculatePoolInfoImbalance({\n tokenBalance: pool.token_balance.toString(),\n vUsdBalance: pool.v_usd_balance.toString(),\n }),\n };\n }\n\n async buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const poolContract = this.getContract(params.token.poolAddress, params.accountAddress);\n return (\n await poolContract.deposit({\n sender: params.accountAddress,\n amount: BigInt(params.amount),\n })\n ).toXDR();\n }\n\n async buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const poolContract = this.getContract(params.token.poolAddress, params.accountAddress);\n return (\n await poolContract.withdraw({\n sender: params.accountAddress,\n amount_lp: BigInt(params.amount),\n })\n ).toXDR();\n }\n\n async buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawTransaction> {\n const poolContract = this.getContract(params.token.poolAddress, params.accountAddress);\n return (\n await poolContract.claim_rewards({\n sender: params.accountAddress,\n })\n ).toXDR();\n }\n\n private getContract(address: string, sender?: string): PoolContract {\n const config: ContractClientOptions = {\n publicKey: sender,\n contractId: address,\n networkPassphrase: this.params.sorobanNetworkPassphrase,\n rpcUrl: this.nodeRpcUrlsConfig.getNodeRpcUrl(ChainSymbol.SRB),\n };\n return new PoolContract(config);\n }\n}\n"]}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import TronWeb from "tronweb";
|
|
1
|
+
import { TronWeb } from "tronweb";
|
|
2
2
|
import { ChainType } from "../../../chains/chain.enums";
|
|
3
3
|
import { AllbridgeCoreClient } from "../../../client/core-api/core-client-base";
|
|
4
4
|
import { PoolInfo, TokenWithChainDetails } from "../../../tokens-info";
|
|
5
5
|
import { RawTransaction } from "../../models";
|
|
6
|
-
import { LiquidityPoolsParams, LiquidityPoolsParamsWithAmount, UserBalanceInfo } from "../models";
|
|
7
|
-
import { ChainPoolService } from "../models/pool";
|
|
6
|
+
import { LiquidityPoolsParams, LiquidityPoolsParamsWithAmount, UserBalanceInfo, ChainPoolService } from "../models";
|
|
8
7
|
export declare class TronPoolService extends ChainPoolService {
|
|
9
|
-
tronWeb:
|
|
8
|
+
tronWeb: TronWeb;
|
|
10
9
|
api: AllbridgeCoreClient;
|
|
11
10
|
chainType: ChainType.TRX;
|
|
12
11
|
private P;
|
|
13
12
|
private web3;
|
|
14
|
-
constructor(tronWeb:
|
|
13
|
+
constructor(tronWeb: TronWeb, api: AllbridgeCoreClient, tronJsonRpc: string | undefined);
|
|
15
14
|
getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo>;
|
|
16
15
|
private getUserBalanceInfoByBatch;
|
|
17
16
|
private getUserBalanceInfoPerProperty;
|
|
@@ -4,24 +4,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.TronPoolService = void 0;
|
|
7
|
-
const web3_1 =
|
|
7
|
+
const web3_1 = require("web3");
|
|
8
8
|
const chain_enums_1 = require("../../../chains/chain.enums");
|
|
9
9
|
const exceptions_1 = require("../../../exceptions");
|
|
10
10
|
const calculation_1 = require("../../../utils/calculation");
|
|
11
11
|
const utils_1 = require("../../bridge/utils");
|
|
12
|
-
const
|
|
13
|
-
const utils_2 = require("../../utils");
|
|
12
|
+
const Pool_1 = __importDefault(require("../../models/abi/Pool"));
|
|
14
13
|
const models_1 = require("../models");
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
class TronPoolService extends models_1.ChainPoolService {
|
|
15
|
+
tronWeb;
|
|
16
|
+
api;
|
|
17
|
+
chainType = chain_enums_1.ChainType.TRX;
|
|
18
|
+
P = 52;
|
|
19
|
+
web3;
|
|
17
20
|
constructor(tronWeb, api, tronJsonRpc) {
|
|
18
21
|
super();
|
|
19
22
|
this.tronWeb = tronWeb;
|
|
20
23
|
this.api = api;
|
|
21
|
-
this.chainType = chain_enums_1.ChainType.TRX;
|
|
22
|
-
this.P = 52;
|
|
23
24
|
if (tronJsonRpc) {
|
|
24
|
-
this.web3 = new web3_1.
|
|
25
|
+
this.web3 = new web3_1.Web3(tronJsonRpc);
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
async getUserBalanceInfo(accountAddress, token) {
|
|
@@ -30,7 +31,7 @@ class TronPoolService extends pool_1.ChainPoolService {
|
|
|
30
31
|
try {
|
|
31
32
|
userBalanceInfo = await this.getUserBalanceInfoByBatch(this.web3, accountAddress, token);
|
|
32
33
|
}
|
|
33
|
-
catch (
|
|
34
|
+
catch (ignoreError) {
|
|
34
35
|
userBalanceInfo = await this.getUserBalanceInfoPerProperty(accountAddress, token);
|
|
35
36
|
}
|
|
36
37
|
}
|
|
@@ -41,18 +42,31 @@ class TronPoolService extends pool_1.ChainPoolService {
|
|
|
41
42
|
}
|
|
42
43
|
async getUserBalanceInfoByBatch(web3, accountAddress, token) {
|
|
43
44
|
const batch = new web3.BatchRequest();
|
|
44
|
-
const contract = new web3.eth.Contract(
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
batch.
|
|
48
|
-
|
|
49
|
-
|
|
45
|
+
const contract = new web3.eth.Contract(Pool_1.default.abi, (0, utils_1.tronAddressToEthAddress)(token.poolAddress));
|
|
46
|
+
const userRewardDebtAbi = contract.methods.userRewardDebt(accountAddress).encodeABI();
|
|
47
|
+
const balanceOfAbi = contract.methods.balanceOf(accountAddress).encodeABI();
|
|
48
|
+
batch.add({
|
|
49
|
+
method: "eth_call",
|
|
50
|
+
params: [{ to: token.poolAddress, data: userRewardDebtAbi }, "latest"],
|
|
51
|
+
});
|
|
52
|
+
batch.add({
|
|
53
|
+
method: "eth_call",
|
|
54
|
+
params: [{ to: token.poolAddress, data: balanceOfAbi }, "latest"],
|
|
55
|
+
});
|
|
56
|
+
const [rewardDebtResult, lpAmountResult] = await batch.execute();
|
|
57
|
+
if (rewardDebtResult && lpAmountResult && !rewardDebtResult.error && !lpAmountResult.error) {
|
|
58
|
+
return new models_1.UserBalance({
|
|
59
|
+
lpAmount: web3_1.Web3.utils.toBigInt(lpAmountResult.result).toString(),
|
|
60
|
+
rewardDebt: web3_1.Web3.utils.toBigInt(rewardDebtResult.result).toString(),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
throw new Error("Batched failed");
|
|
50
64
|
}
|
|
51
65
|
async getUserBalanceInfoPerProperty(accountAddress, token) {
|
|
52
66
|
if (!this.tronWeb.defaultAddress.base58) {
|
|
53
67
|
this.tronWeb.setAddress(accountAddress);
|
|
54
68
|
}
|
|
55
|
-
const contract =
|
|
69
|
+
const contract = this.getContract(token.poolAddress);
|
|
56
70
|
const rewardDebt = (await contract.methods.userRewardDebt(accountAddress).call()).toString();
|
|
57
71
|
const lpAmount = (await contract.methods.balanceOf(accountAddress).call()).toString();
|
|
58
72
|
return new models_1.UserBalance({ lpAmount, rewardDebt });
|
|
@@ -63,7 +77,7 @@ class TronPoolService extends pool_1.ChainPoolService {
|
|
|
63
77
|
try {
|
|
64
78
|
poolInfo = await this.getPoolInfoByBatch(this.web3, token);
|
|
65
79
|
}
|
|
66
|
-
catch (
|
|
80
|
+
catch (ignoreError) {
|
|
67
81
|
poolInfo = await this.getPoolInfoPerProperty(token);
|
|
68
82
|
}
|
|
69
83
|
}
|
|
@@ -74,29 +88,71 @@ class TronPoolService extends pool_1.ChainPoolService {
|
|
|
74
88
|
}
|
|
75
89
|
async getPoolInfoByBatch(web3, token) {
|
|
76
90
|
const batch = new web3.BatchRequest();
|
|
77
|
-
const contract = new web3.eth.Contract(
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
const
|
|
82
|
-
const
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
const contract = new web3.eth.Contract(Pool_1.default.abi, (0, utils_1.tronAddressToEthAddress)(token.poolAddress), this.web3);
|
|
92
|
+
const aAbi = contract.methods.a().encodeABI();
|
|
93
|
+
const dAbi = contract.methods.d().encodeABI();
|
|
94
|
+
const tokenBalanceAbi = contract.methods.tokenBalance().encodeABI();
|
|
95
|
+
const vUsdBalanceAbi = contract.methods.vUsdBalance().encodeABI();
|
|
96
|
+
const totalSupplyAbi = contract.methods.totalSupply().encodeABI();
|
|
97
|
+
const accRewardPerSharePAbi = contract.methods.accRewardPerShareP().encodeABI();
|
|
98
|
+
batch.add({
|
|
99
|
+
method: "eth_call",
|
|
100
|
+
params: [{ to: token.poolAddress, data: aAbi }, "latest"],
|
|
101
|
+
});
|
|
102
|
+
batch.add({
|
|
103
|
+
method: "eth_call",
|
|
104
|
+
params: [{ to: token.poolAddress, data: dAbi }, "latest"],
|
|
105
|
+
});
|
|
106
|
+
batch.add({
|
|
107
|
+
method: "eth_call",
|
|
108
|
+
params: [{ to: token.poolAddress, data: tokenBalanceAbi }, "latest"],
|
|
109
|
+
});
|
|
110
|
+
batch.add({
|
|
111
|
+
method: "eth_call",
|
|
112
|
+
params: [{ to: token.poolAddress, data: vUsdBalanceAbi }, "latest"],
|
|
113
|
+
});
|
|
114
|
+
batch.add({
|
|
115
|
+
method: "eth_call",
|
|
116
|
+
params: [{ to: token.poolAddress, data: totalSupplyAbi }, "latest"],
|
|
117
|
+
});
|
|
118
|
+
batch.add({
|
|
119
|
+
method: "eth_call",
|
|
120
|
+
params: [{ to: token.poolAddress, data: accRewardPerSharePAbi }, "latest"],
|
|
121
|
+
});
|
|
122
|
+
const [aResult, dResult, tokenBalanceResult, vUsdBalanceResult, totalSupplyResult, accRewardPerSharePResult] = await batch.execute();
|
|
123
|
+
if (aResult &&
|
|
124
|
+
dResult &&
|
|
125
|
+
tokenBalanceResult &&
|
|
126
|
+
vUsdBalanceResult &&
|
|
127
|
+
totalSupplyResult &&
|
|
128
|
+
accRewardPerSharePResult &&
|
|
129
|
+
!aResult.error &&
|
|
130
|
+
!dResult.error &&
|
|
131
|
+
!tokenBalanceResult.error &&
|
|
132
|
+
!vUsdBalanceResult.error &&
|
|
133
|
+
!totalSupplyResult.error &&
|
|
134
|
+
!accRewardPerSharePResult.error) {
|
|
135
|
+
const tokenBalanceStr = web3_1.Web3.utils.toBigInt(tokenBalanceResult.result).toString();
|
|
136
|
+
const vUsdBalanceStr = web3_1.Web3.utils.toBigInt(vUsdBalanceResult.result).toString();
|
|
137
|
+
const imbalance = (0, calculation_1.calculatePoolInfoImbalance)({ tokenBalance: tokenBalanceStr, vUsdBalance: vUsdBalanceStr });
|
|
138
|
+
return {
|
|
139
|
+
aValue: web3_1.Web3.utils.toBigInt(aResult.result).toString(),
|
|
140
|
+
dValue: web3_1.Web3.utils.toBigInt(dResult.result).toString(),
|
|
141
|
+
tokenBalance: tokenBalanceStr,
|
|
142
|
+
vUsdBalance: vUsdBalanceStr,
|
|
143
|
+
totalLpAmount: web3_1.Web3.utils.toBigInt(totalSupplyResult.result).toString(),
|
|
144
|
+
accRewardPerShareP: web3_1.Web3.utils.toBigInt(accRewardPerSharePResult.result).toString(),
|
|
145
|
+
p: this.P,
|
|
146
|
+
imbalance,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
throw new Error("Batched failed");
|
|
94
150
|
}
|
|
95
151
|
async getPoolInfoPerProperty(token) {
|
|
96
152
|
if (!this.tronWeb.defaultAddress.base58) {
|
|
97
153
|
this.tronWeb.setAddress(token.poolAddress);
|
|
98
154
|
}
|
|
99
|
-
const poolContract =
|
|
155
|
+
const poolContract = this.getContract(token.poolAddress);
|
|
100
156
|
const [aValue, dValue, tokenBalance, vUsdBalance, totalLpAmount, accRewardPerShareP] = await Promise.all([
|
|
101
157
|
poolContract.methods.a().call(),
|
|
102
158
|
poolContract.methods.d().call(),
|
|
@@ -139,15 +195,15 @@ class TronPoolService extends pool_1.ChainPoolService {
|
|
|
139
195
|
}
|
|
140
196
|
async buildRawTransaction(contractAddress, methodSignature, parameter, value, fromAddress) {
|
|
141
197
|
const transactionObject = await this.tronWeb.transactionBuilder.triggerSmartContract(contractAddress, methodSignature, {
|
|
142
|
-
callValue: value,
|
|
198
|
+
callValue: +value,
|
|
143
199
|
}, parameter, fromAddress);
|
|
144
200
|
if (!transactionObject?.result?.result) {
|
|
145
201
|
throw new exceptions_1.SdkError("Unknown error: " + JSON.stringify(transactionObject, null, 2));
|
|
146
202
|
}
|
|
147
203
|
return transactionObject.transaction;
|
|
148
204
|
}
|
|
149
|
-
|
|
150
|
-
return
|
|
205
|
+
getContract(contractAddress) {
|
|
206
|
+
return this.tronWeb.contract(Pool_1.default.abi, contractAddress);
|
|
151
207
|
}
|
|
152
208
|
}
|
|
153
209
|
exports.TronPoolService = TronPoolService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/trx/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/trx/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { TronWeb } from \"tronweb\";\nimport { Web3 } from \"web3\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { SdkError } from \"../../../exceptions\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { tronAddressToEthAddress } from \"../../bridge/utils\";\nimport { RawTransaction, SmartContractMethodParameter } from \"../../models\";\nimport Pool from \"../../models/abi/Pool\";\nimport {\n LiquidityPoolsParams,\n LiquidityPoolsParamsWithAmount,\n UserBalance,\n UserBalanceInfo,\n ChainPoolService,\n} from \"../models\";\n\nexport class TronPoolService extends ChainPoolService {\n chainType: ChainType.TRX = ChainType.TRX;\n private P = 52;\n private web3: Web3 | undefined;\n\n constructor(\n public tronWeb: TronWeb,\n public api: AllbridgeCoreClient,\n tronJsonRpc: string | undefined,\n ) {\n super();\n if (tronJsonRpc) {\n this.web3 = new Web3(tronJsonRpc);\n }\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n let userBalanceInfo;\n if (this.web3) {\n try {\n userBalanceInfo = await this.getUserBalanceInfoByBatch(this.web3, accountAddress, token);\n } catch (ignoreError) {\n userBalanceInfo = await this.getUserBalanceInfoPerProperty(accountAddress, token);\n }\n } else {\n userBalanceInfo = await this.getUserBalanceInfoPerProperty(accountAddress, token);\n }\n return userBalanceInfo;\n }\n\n private async getUserBalanceInfoByBatch(\n web3: Web3,\n accountAddress: string,\n token: TokenWithChainDetails,\n ): Promise<UserBalanceInfo> {\n const batch = new web3.BatchRequest();\n const contract = new web3.eth.Contract(Pool.abi, tronAddressToEthAddress(token.poolAddress));\n\n const userRewardDebtAbi = contract.methods.userRewardDebt(accountAddress).encodeABI();\n const balanceOfAbi = contract.methods.balanceOf(accountAddress).encodeABI();\n\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: userRewardDebtAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: balanceOfAbi }, \"latest\"],\n });\n\n const [rewardDebtResult, lpAmountResult] = await batch.execute();\n\n if (rewardDebtResult && lpAmountResult && !rewardDebtResult.error && !lpAmountResult.error) {\n return new UserBalance({\n lpAmount: Web3.utils.toBigInt(lpAmountResult.result).toString(),\n rewardDebt: Web3.utils.toBigInt(rewardDebtResult.result).toString(),\n });\n }\n throw new Error(\"Batched failed\");\n }\n\n private async getUserBalanceInfoPerProperty(\n accountAddress: string,\n token: TokenWithChainDetails,\n ): Promise<UserBalanceInfo> {\n if (!this.tronWeb.defaultAddress.base58) {\n this.tronWeb.setAddress(accountAddress);\n }\n const contract = this.getContract(token.poolAddress);\n const rewardDebt = (await contract.methods.userRewardDebt(accountAddress).call()).toString();\n const lpAmount = (await contract.methods.balanceOf(accountAddress).call()).toString();\n return new UserBalance({ lpAmount, rewardDebt });\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n let poolInfo;\n if (this.web3) {\n try {\n poolInfo = await this.getPoolInfoByBatch(this.web3, token);\n } catch (ignoreError) {\n poolInfo = await this.getPoolInfoPerProperty(token);\n }\n } else {\n poolInfo = await this.getPoolInfoPerProperty(token);\n }\n return poolInfo;\n }\n\n private async getPoolInfoByBatch(web3: Web3, token: TokenWithChainDetails): Promise<PoolInfo> {\n const batch = new web3.BatchRequest();\n const contract = new web3.eth.Contract(Pool.abi, tronAddressToEthAddress(token.poolAddress), this.web3);\n\n const aAbi = contract.methods.a().encodeABI();\n const dAbi = contract.methods.d().encodeABI();\n const tokenBalanceAbi = contract.methods.tokenBalance().encodeABI();\n const vUsdBalanceAbi = contract.methods.vUsdBalance().encodeABI();\n const totalSupplyAbi = contract.methods.totalSupply().encodeABI();\n const accRewardPerSharePAbi = contract.methods.accRewardPerShareP().encodeABI();\n\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: aAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: dAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: tokenBalanceAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: vUsdBalanceAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: totalSupplyAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: accRewardPerSharePAbi }, \"latest\"],\n });\n\n const [aResult, dResult, tokenBalanceResult, vUsdBalanceResult, totalSupplyResult, accRewardPerSharePResult] =\n await batch.execute();\n\n if (\n aResult &&\n dResult &&\n tokenBalanceResult &&\n vUsdBalanceResult &&\n totalSupplyResult &&\n accRewardPerSharePResult &&\n !aResult.error &&\n !dResult.error &&\n !tokenBalanceResult.error &&\n !vUsdBalanceResult.error &&\n !totalSupplyResult.error &&\n !accRewardPerSharePResult.error\n ) {\n const tokenBalanceStr = Web3.utils.toBigInt(tokenBalanceResult.result).toString();\n const vUsdBalanceStr = Web3.utils.toBigInt(vUsdBalanceResult.result).toString();\n const imbalance = calculatePoolInfoImbalance({ tokenBalance: tokenBalanceStr, vUsdBalance: vUsdBalanceStr });\n return {\n aValue: Web3.utils.toBigInt(aResult.result).toString(),\n dValue: Web3.utils.toBigInt(dResult.result).toString(),\n tokenBalance: tokenBalanceStr,\n vUsdBalance: vUsdBalanceStr,\n totalLpAmount: Web3.utils.toBigInt(totalSupplyResult.result).toString(),\n accRewardPerShareP: Web3.utils.toBigInt(accRewardPerSharePResult.result).toString(),\n p: this.P,\n imbalance,\n };\n }\n throw new Error(\"Batched failed\");\n }\n\n private async getPoolInfoPerProperty(token: TokenWithChainDetails): Promise<PoolInfo> {\n if (!this.tronWeb.defaultAddress.base58) {\n this.tronWeb.setAddress(token.poolAddress);\n }\n const poolContract = this.getContract(token.poolAddress);\n const [aValue, dValue, tokenBalance, vUsdBalance, totalLpAmount, accRewardPerShareP] = await Promise.all([\n poolContract.methods.a().call(),\n poolContract.methods.d().call(),\n poolContract.methods.tokenBalance().call(),\n poolContract.methods.vUsdBalance().call(),\n poolContract.methods.totalSupply().call(),\n poolContract.methods.accRewardPerShareP().call(),\n ]);\n const tokenBalanceStr = tokenBalance.toString();\n const vUsdBalanceStr = vUsdBalance.toString();\n const imbalance = calculatePoolInfoImbalance({ tokenBalance: tokenBalanceStr, vUsdBalance: vUsdBalanceStr });\n return {\n aValue: aValue.toString(),\n dValue: dValue.toString(),\n tokenBalance: tokenBalanceStr,\n vUsdBalance: vUsdBalanceStr,\n totalLpAmount: totalLpAmount.toString(),\n accRewardPerShareP: accRewardPerShareP.toString(),\n p: this.P,\n imbalance,\n };\n }\n\n buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const { amount, accountAddress } = params;\n\n const parameter = [{ type: \"uint256\", value: amount }];\n const methodSignature = \"deposit(uint256)\";\n\n return this.buildRawTransaction(params.token.poolAddress, methodSignature, parameter, \"0\", accountAddress);\n }\n\n buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const { amount, accountAddress } = params;\n\n const parameter = [{ type: \"uint256\", value: amount }];\n const methodSignature = \"withdraw(uint256)\";\n\n return this.buildRawTransaction(params.token.poolAddress, methodSignature, parameter, \"0\", accountAddress);\n }\n\n buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawTransaction> {\n const { accountAddress } = params;\n\n const parameter: SmartContractMethodParameter[] = [];\n const methodSignature = \"claimRewards()\";\n\n return this.buildRawTransaction(params.token.poolAddress, methodSignature, parameter, \"0\", accountAddress);\n }\n\n private async buildRawTransaction(\n contractAddress: string,\n methodSignature: string,\n parameter: 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 parameter,\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 private getContract(contractAddress: string): any {\n return this.tronWeb.contract(Pool.abi, contractAddress);\n }\n}\n"]}
|