@townsq/mm-sdk 1.0.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/README.md +95 -0
- package/dist/chains/evm/common/constant/abi/arbitrum-node-interface-abi.d.ts +25 -0
- package/dist/chains/evm/common/constant/abi/arbitrum-node-interface-abi.js +18 -0
- package/dist/chains/evm/common/constant/abi/arbitrum-node-interface-abi.js.map +1 -0
- package/dist/chains/evm/common/constant/abi/bridge-router-abi.d.ts +1030 -0
- package/dist/chains/evm/common/constant/abi/bridge-router-abi.js +794 -0
- package/dist/chains/evm/common/constant/abi/bridge-router-abi.js.map +1 -0
- package/dist/chains/evm/common/constant/abi/ccip-data-adapter-abi.d.ts +796 -0
- package/dist/chains/evm/common/constant/abi/ccip-data-adapter-abi.js +622 -0
- package/dist/chains/evm/common/constant/abi/ccip-data-adapter-abi.js.map +1 -0
- package/dist/chains/evm/common/constant/abi/erc-20-abi.d.ts +235 -0
- package/dist/chains/evm/common/constant/abi/erc-20-abi.js +157 -0
- package/dist/chains/evm/common/constant/abi/erc-20-abi.js.map +1 -0
- package/dist/chains/evm/common/constant/abi/wormhole-data-adapter-abi.d.ts +821 -0
- package/dist/chains/evm/common/constant/abi/wormhole-data-adapter-abi.js +645 -0
- package/dist/chains/evm/common/constant/abi/wormhole-data-adapter-abi.js.map +1 -0
- package/dist/chains/evm/common/constant/abi/wormhole-relayer-abi.d.ts +783 -0
- package/dist/chains/evm/common/constant/abi/wormhole-relayer-abi.js +501 -0
- package/dist/chains/evm/common/constant/abi/wormhole-relayer-abi.js.map +1 -0
- package/dist/chains/evm/common/constant/chain.d.ts +128 -0
- package/dist/chains/evm/common/constant/chain.js +62 -0
- package/dist/chains/evm/common/constant/chain.js.map +1 -0
- package/dist/chains/evm/common/constant/contract.d.ts +9 -0
- package/dist/chains/evm/common/constant/contract.js +13 -0
- package/dist/chains/evm/common/constant/contract.js.map +1 -0
- package/dist/chains/evm/common/constant/tokens.d.ts +6 -0
- package/dist/chains/evm/common/constant/tokens.js +21 -0
- package/dist/chains/evm/common/constant/tokens.js.map +1 -0
- package/dist/chains/evm/common/types/chain.d.ts +9 -0
- package/dist/chains/evm/common/types/chain.js +2 -0
- package/dist/chains/evm/common/types/chain.js.map +1 -0
- package/dist/chains/evm/common/types/contract.d.ts +8 -0
- package/dist/chains/evm/common/types/contract.js +2 -0
- package/dist/chains/evm/common/types/contract.js.map +1 -0
- package/dist/chains/evm/common/types/gmp.d.ts +37 -0
- package/dist/chains/evm/common/types/gmp.js +2 -0
- package/dist/chains/evm/common/types/gmp.js.map +1 -0
- package/dist/chains/evm/common/types/module.d.ts +90 -0
- package/dist/chains/evm/common/types/module.js +2 -0
- package/dist/chains/evm/common/types/module.js.map +1 -0
- package/dist/chains/evm/common/types/token.d.ts +28 -0
- package/dist/chains/evm/common/types/token.js +2 -0
- package/dist/chains/evm/common/types/token.js.map +1 -0
- package/dist/chains/evm/common/utils/chain.d.ts +7 -0
- package/dist/chains/evm/common/utils/chain.js +24 -0
- package/dist/chains/evm/common/utils/chain.js.map +1 -0
- package/dist/chains/evm/common/utils/contract.d.ts +7387 -0
- package/dist/chains/evm/common/utils/contract.js +67 -0
- package/dist/chains/evm/common/utils/contract.js.map +1 -0
- package/dist/chains/evm/common/utils/gmp.d.ts +7 -0
- package/dist/chains/evm/common/utils/gmp.js +32 -0
- package/dist/chains/evm/common/utils/gmp.js.map +1 -0
- package/dist/chains/evm/common/utils/message.d.ts +21 -0
- package/dist/chains/evm/common/utils/message.js +426 -0
- package/dist/chains/evm/common/utils/message.js.map +1 -0
- package/dist/chains/evm/common/utils/provider.d.ts +5 -0
- package/dist/chains/evm/common/utils/provider.js +24 -0
- package/dist/chains/evm/common/utils/provider.js.map +1 -0
- package/dist/chains/evm/common/utils/tokens.d.ts +11 -0
- package/dist/chains/evm/common/utils/tokens.js +58 -0
- package/dist/chains/evm/common/utils/tokens.js.map +1 -0
- package/dist/chains/evm/hub/constants/abi/account-manager-abi.d.ts +945 -0
- package/dist/chains/evm/hub/constants/abi/account-manager-abi.js +709 -0
- package/dist/chains/evm/hub/constants/abi/account-manager-abi.js.map +1 -0
- package/dist/chains/evm/hub/constants/abi/bridge-router-hub-abi.d.ts +1062 -0
- package/dist/chains/evm/hub/constants/abi/bridge-router-hub-abi.js +816 -0
- package/dist/chains/evm/hub/constants/abi/bridge-router-hub-abi.js.map +1 -0
- package/dist/chains/evm/hub/constants/abi/hub-abi.d.ts +344 -0
- package/dist/chains/evm/hub/constants/abi/hub-abi.js +229 -0
- package/dist/chains/evm/hub/constants/abi/hub-abi.js.map +1 -0
- package/dist/chains/evm/hub/constants/abi/hub-pool-abi.d.ts +1999 -0
- package/dist/chains/evm/hub/constants/abi/hub-pool-abi.js +1558 -0
- package/dist/chains/evm/hub/constants/abi/hub-pool-abi.js.map +1 -0
- package/dist/chains/evm/hub/constants/abi/hub-rewards-v1-abi.d.ts +850 -0
- package/dist/chains/evm/hub/constants/abi/hub-rewards-v1-abi.js +649 -0
- package/dist/chains/evm/hub/constants/abi/hub-rewards-v1-abi.js.map +1 -0
- package/dist/chains/evm/hub/constants/abi/hub-rewards-v2-abi.d.ts +1213 -0
- package/dist/chains/evm/hub/constants/abi/hub-rewards-v2-abi.js +890 -0
- package/dist/chains/evm/hub/constants/abi/hub-rewards-v2-abi.js.map +1 -0
- package/dist/chains/evm/hub/constants/abi/loan-manager-abi.d.ts +1573 -0
- package/dist/chains/evm/hub/constants/abi/loan-manager-abi.js +1055 -0
- package/dist/chains/evm/hub/constants/abi/loan-manager-abi.js.map +1 -0
- package/dist/chains/evm/hub/constants/abi/node-manager-abi.d.ts +269 -0
- package/dist/chains/evm/hub/constants/abi/node-manager-abi.js +228 -0
- package/dist/chains/evm/hub/constants/abi/node-manager-abi.js.map +1 -0
- package/dist/chains/evm/hub/constants/abi/oracle-manager-abi.d.ts +495 -0
- package/dist/chains/evm/hub/constants/abi/oracle-manager-abi.js +391 -0
- package/dist/chains/evm/hub/constants/abi/oracle-manager-abi.js.map +1 -0
- package/dist/chains/evm/hub/constants/chain.d.ts +3 -0
- package/dist/chains/evm/hub/constants/chain.js +242 -0
- package/dist/chains/evm/hub/constants/chain.js.map +1 -0
- package/dist/chains/evm/hub/modules/index.d.ts +5 -0
- package/dist/chains/evm/hub/modules/index.js +6 -0
- package/dist/chains/evm/hub/modules/index.js.map +1 -0
- package/dist/chains/evm/hub/modules/ts-hub-account.d.ts +8 -0
- package/dist/chains/evm/hub/modules/ts-hub-account.js +75 -0
- package/dist/chains/evm/hub/modules/ts-hub-account.js.map +1 -0
- package/dist/chains/evm/hub/modules/ts-hub-gmp.d.ts +18 -0
- package/dist/chains/evm/hub/modules/ts-hub-gmp.js +98 -0
- package/dist/chains/evm/hub/modules/ts-hub-gmp.js.map +1 -0
- package/dist/chains/evm/hub/modules/ts-hub-loan.d.ts +27 -0
- package/dist/chains/evm/hub/modules/ts-hub-loan.js +484 -0
- package/dist/chains/evm/hub/modules/ts-hub-loan.js.map +1 -0
- package/dist/chains/evm/hub/modules/ts-hub-oracle.d.ts +8 -0
- package/dist/chains/evm/hub/modules/ts-hub-oracle.js +58 -0
- package/dist/chains/evm/hub/modules/ts-hub-oracle.js.map +1 -0
- package/dist/chains/evm/hub/modules/ts-hub-pool.d.ts +5 -0
- package/dist/chains/evm/hub/modules/ts-hub-pool.js +138 -0
- package/dist/chains/evm/hub/modules/ts-hub-pool.js.map +1 -0
- package/dist/chains/evm/hub/types/account.d.ts +23 -0
- package/dist/chains/evm/hub/types/account.js +2 -0
- package/dist/chains/evm/hub/types/account.js.map +1 -0
- package/dist/chains/evm/hub/types/chain.d.ts +20 -0
- package/dist/chains/evm/hub/types/chain.js +2 -0
- package/dist/chains/evm/hub/types/chain.js.map +1 -0
- package/dist/chains/evm/hub/types/loan.d.ts +148 -0
- package/dist/chains/evm/hub/types/loan.js +9 -0
- package/dist/chains/evm/hub/types/loan.js.map +1 -0
- package/dist/chains/evm/hub/types/oracle.d.ts +19 -0
- package/dist/chains/evm/hub/types/oracle.js +2 -0
- package/dist/chains/evm/hub/types/oracle.js.map +1 -0
- package/dist/chains/evm/hub/types/pool.d.ts +66 -0
- package/dist/chains/evm/hub/types/pool.js +2 -0
- package/dist/chains/evm/hub/types/pool.js.map +1 -0
- package/dist/chains/evm/hub/types/token.d.ts +9 -0
- package/dist/chains/evm/hub/types/token.js +2 -0
- package/dist/chains/evm/hub/types/token.js.map +1 -0
- package/dist/chains/evm/hub/utils/chain.d.ts +15 -0
- package/dist/chains/evm/hub/utils/chain.js +37 -0
- package/dist/chains/evm/hub/utils/chain.js.map +1 -0
- package/dist/chains/evm/hub/utils/contract.d.ts +26 -0
- package/dist/chains/evm/hub/utils/contract.js +76 -0
- package/dist/chains/evm/hub/utils/contract.js.map +1 -0
- package/dist/chains/evm/hub/utils/events.d.ts +23 -0
- package/dist/chains/evm/hub/utils/events.js +100 -0
- package/dist/chains/evm/hub/utils/events.js.map +1 -0
- package/dist/chains/evm/hub/utils/loan.d.ts +4 -0
- package/dist/chains/evm/hub/utils/loan.js +37 -0
- package/dist/chains/evm/hub/utils/loan.js.map +1 -0
- package/dist/chains/evm/spoke/constants/abi/bridge-router-spoke-abi.d.ts +1044 -0
- package/dist/chains/evm/spoke/constants/abi/bridge-router-spoke-abi.js +806 -0
- package/dist/chains/evm/spoke/constants/abi/bridge-router-spoke-abi.js.map +1 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-common-abi.d.ts +1152 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-common-abi.js +735 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-common-abi.js.map +1 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-rewards-v2-common-abi.d.ts +697 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-rewards-v2-common-abi.js +501 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-rewards-v2-common-abi.js.map +1 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-token-abi.d.ts +986 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-token-abi.js +705 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-token-abi.js.map +1 -0
- package/dist/chains/evm/spoke/modules/index.d.ts +3 -0
- package/dist/chains/evm/spoke/modules/index.js +4 -0
- package/dist/chains/evm/spoke/modules/index.js.map +1 -0
- package/dist/chains/evm/spoke/modules/ts-evm-account.d.ts +18 -0
- package/dist/chains/evm/spoke/modules/ts-evm-account.js +141 -0
- package/dist/chains/evm/spoke/modules/ts-evm-account.js.map +1 -0
- package/dist/chains/evm/spoke/modules/ts-evm-gmp.d.ts +20 -0
- package/dist/chains/evm/spoke/modules/ts-evm-gmp.js +163 -0
- package/dist/chains/evm/spoke/modules/ts-evm-gmp.js.map +1 -0
- package/dist/chains/evm/spoke/modules/ts-evm-loan.d.ts +38 -0
- package/dist/chains/evm/spoke/modules/ts-evm-loan.js +461 -0
- package/dist/chains/evm/spoke/modules/ts-evm-loan.js.map +1 -0
- package/dist/chains/evm/spoke/types/pool.d.ts +7 -0
- package/dist/chains/evm/spoke/types/pool.js +2 -0
- package/dist/chains/evm/spoke/types/pool.js.map +1 -0
- package/dist/chains/evm/spoke/utils/contract.d.ts +18 -0
- package/dist/chains/evm/spoke/utils/contract.js +46 -0
- package/dist/chains/evm/spoke/utils/contract.js.map +1 -0
- package/dist/common/constants/adapter.d.ts +2 -0
- package/dist/common/constants/adapter.js +6 -0
- package/dist/common/constants/adapter.js.map +1 -0
- package/dist/common/constants/byte.d.ts +6 -0
- package/dist/common/constants/byte.js +7 -0
- package/dist/common/constants/byte.js.map +1 -0
- package/dist/common/constants/chain.d.ts +10 -0
- package/dist/common/constants/chain.js +224 -0
- package/dist/common/constants/chain.js.map +1 -0
- package/dist/common/constants/gmp.d.ts +3 -0
- package/dist/common/constants/gmp.js +10 -0
- package/dist/common/constants/gmp.js.map +1 -0
- package/dist/common/constants/lending.d.ts +2 -0
- package/dist/common/constants/lending.js +4 -0
- package/dist/common/constants/lending.js.map +1 -0
- package/dist/common/constants/message.d.ts +9 -0
- package/dist/common/constants/message.js +23 -0
- package/dist/common/constants/message.js.map +1 -0
- package/dist/common/constants/pool.d.ts +14 -0
- package/dist/common/constants/pool.js +24 -0
- package/dist/common/constants/pool.js.map +1 -0
- package/dist/common/types/adapter.d.ts +30 -0
- package/dist/common/types/adapter.js +7 -0
- package/dist/common/types/adapter.js.map +1 -0
- package/dist/common/types/address.d.ts +9 -0
- package/dist/common/types/address.js +2 -0
- package/dist/common/types/address.js.map +1 -0
- package/dist/common/types/brand.d.ts +6 -0
- package/dist/common/types/brand.js +2 -0
- package/dist/common/types/brand.js.map +1 -0
- package/dist/common/types/chain.d.ts +29 -0
- package/dist/common/types/chain.js +9 -0
- package/dist/common/types/chain.js.map +1 -0
- package/dist/common/types/core.d.ts +28 -0
- package/dist/common/types/core.js +2 -0
- package/dist/common/types/core.js.map +1 -0
- package/dist/common/types/gmp.d.ts +15 -0
- package/dist/common/types/gmp.js +6 -0
- package/dist/common/types/gmp.js.map +1 -0
- package/dist/common/types/lending.d.ts +20 -0
- package/dist/common/types/lending.js +13 -0
- package/dist/common/types/lending.js.map +1 -0
- package/dist/common/types/message.d.ts +280 -0
- package/dist/common/types/message.js +32 -0
- package/dist/common/types/message.js.map +1 -0
- package/dist/common/types/module.d.ts +20 -0
- package/dist/common/types/module.js +2 -0
- package/dist/common/types/module.js.map +1 -0
- package/dist/common/types/token.d.ts +49 -0
- package/dist/common/types/token.js +24 -0
- package/dist/common/types/token.js.map +1 -0
- package/dist/common/utils/adapter.d.ts +17 -0
- package/dist/common/utils/adapter.js +98 -0
- package/dist/common/utils/adapter.js.map +1 -0
- package/dist/common/utils/address.d.ts +6 -0
- package/dist/common/utils/address.js +32 -0
- package/dist/common/utils/address.js.map +1 -0
- package/dist/common/utils/bytes.d.ts +6 -0
- package/dist/common/utils/bytes.js +25 -0
- package/dist/common/utils/bytes.js.map +1 -0
- package/dist/common/utils/chain.d.ts +20 -0
- package/dist/common/utils/chain.js +79 -0
- package/dist/common/utils/chain.js.map +1 -0
- package/dist/common/utils/formulae.d.ts +19 -0
- package/dist/common/utils/formulae.js +118 -0
- package/dist/common/utils/formulae.js.map +1 -0
- package/dist/common/utils/gmp.d.ts +3 -0
- package/dist/common/utils/gmp.js +5 -0
- package/dist/common/utils/gmp.js.map +1 -0
- package/dist/common/utils/lending.d.ts +7 -0
- package/dist/common/utils/lending.js +16 -0
- package/dist/common/utils/lending.js.map +1 -0
- package/dist/common/utils/math-lib.d.ts +10 -0
- package/dist/common/utils/math-lib.js +41 -0
- package/dist/common/utils/math-lib.js.map +1 -0
- package/dist/common/utils/messages.d.ts +16 -0
- package/dist/common/utils/messages.js +124 -0
- package/dist/common/utils/messages.js.map +1 -0
- package/dist/common/utils/token.d.ts +3 -0
- package/dist/common/utils/token.js +8 -0
- package/dist/common/utils/token.js.map +1 -0
- package/dist/common/utils/transaction.d.ts +4 -0
- package/dist/common/utils/transaction.js +18 -0
- package/dist/common/utils/transaction.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/lifeline/core/ts-core.d.ts +24 -0
- package/dist/lifeline/core/ts-core.js +101 -0
- package/dist/lifeline/core/ts-core.js.map +1 -0
- package/dist/lifeline/modules/index.d.ts +5 -0
- package/dist/lifeline/modules/index.js +6 -0
- package/dist/lifeline/modules/index.js.map +1 -0
- package/dist/lifeline/modules/ts-account.d.ts +23 -0
- package/dist/lifeline/modules/ts-account.js +205 -0
- package/dist/lifeline/modules/ts-account.js.map +1 -0
- package/dist/lifeline/modules/ts-gmp.d.ts +3 -0
- package/dist/lifeline/modules/ts-gmp.js +4 -0
- package/dist/lifeline/modules/ts-gmp.js.map +1 -0
- package/dist/lifeline/modules/ts-loan.d.ts +48 -0
- package/dist/lifeline/modules/ts-loan.js +580 -0
- package/dist/lifeline/modules/ts-loan.js.map +1 -0
- package/dist/lifeline/modules/ts-oracle.d.ts +8 -0
- package/dist/lifeline/modules/ts-oracle.js +27 -0
- package/dist/lifeline/modules/ts-oracle.js.map +1 -0
- package/dist/lifeline/modules/ts-pool.d.ts +5 -0
- package/dist/lifeline/modules/ts-pool.js +8 -0
- package/dist/lifeline/modules/ts-pool.js.map +1 -0
- package/dist/types/generics.d.ts +1 -0
- package/dist/types/generics.js +2 -0
- package/dist/types/generics.js.map +1 -0
- package/dist/utils/address.d.ts +1 -0
- package/dist/utils/address.js +2 -0
- package/dist/utils/address.js.map +1 -0
- package/dist/utils/array.d.ts +3 -0
- package/dist/utils/array.js +7 -0
- package/dist/utils/array.js.map +1 -0
- package/dist/utils/exhaustive-check.d.ts +1 -0
- package/dist/utils/exhaustive-check.js +4 -0
- package/dist/utils/exhaustive-check.js.map +1 -0
- package/dist/utils/random.d.ts +1 -0
- package/dist/utils/random.js +4 -0
- package/dist/utils/random.js.map +1 -0
- package/package.json +56 -0
- package/src/chains/evm/common/constant/abi/arbitrum-node-interface-abi.ts +17 -0
- package/src/chains/evm/common/constant/abi/bridge-router-abi.ts +793 -0
- package/src/chains/evm/common/constant/abi/ccip-data-adapter-abi.ts +621 -0
- package/src/chains/evm/common/constant/abi/erc-20-abi.ts +156 -0
- package/src/chains/evm/common/constant/abi/wormhole-data-adapter-abi.ts +644 -0
- package/src/chains/evm/common/constant/abi/wormhole-relayer-abi.ts +500 -0
- package/src/chains/evm/common/constant/chain.ts +88 -0
- package/src/chains/evm/common/constant/contract.ts +15 -0
- package/src/chains/evm/common/constant/tokens.ts +33 -0
- package/src/chains/evm/common/types/chain.ts +26 -0
- package/src/chains/evm/common/types/contract.ts +17 -0
- package/src/chains/evm/common/types/gmp.ts +43 -0
- package/src/chains/evm/common/types/module.ts +115 -0
- package/src/chains/evm/common/types/token.ts +35 -0
- package/src/chains/evm/common/utils/chain.ts +33 -0
- package/src/chains/evm/common/utils/contract.ts +120 -0
- package/src/chains/evm/common/utils/gmp.ts +54 -0
- package/src/chains/evm/common/utils/message.ts +648 -0
- package/src/chains/evm/common/utils/provider.ts +38 -0
- package/src/chains/evm/common/utils/tokens.ts +102 -0
- package/src/chains/evm/hub/constants/abi/account-manager-abi.ts +708 -0
- package/src/chains/evm/hub/constants/abi/bridge-router-hub-abi.ts +815 -0
- package/src/chains/evm/hub/constants/abi/hub-abi.ts +228 -0
- package/src/chains/evm/hub/constants/abi/hub-pool-abi.ts +1557 -0
- package/src/chains/evm/hub/constants/abi/hub-rewards-v1-abi.ts +648 -0
- package/src/chains/evm/hub/constants/abi/hub-rewards-v2-abi.ts +889 -0
- package/src/chains/evm/hub/constants/abi/loan-manager-abi.ts +1054 -0
- package/src/chains/evm/hub/constants/abi/node-manager-abi.ts +227 -0
- package/src/chains/evm/hub/constants/abi/oracle-manager-abi.ts +390 -0
- package/src/chains/evm/hub/constants/chain.ts +305 -0
- package/src/chains/evm/hub/modules/index.ts +5 -0
- package/src/chains/evm/hub/modules/ts-hub-account.ts +117 -0
- package/src/chains/evm/hub/modules/ts-hub-gmp.ts +231 -0
- package/src/chains/evm/hub/modules/ts-hub-loan.ts +915 -0
- package/src/chains/evm/hub/modules/ts-hub-oracle.ts +131 -0
- package/src/chains/evm/hub/modules/ts-hub-pool.ts +241 -0
- package/src/chains/evm/hub/types/account.ts +30 -0
- package/src/chains/evm/hub/types/chain.ts +22 -0
- package/src/chains/evm/hub/types/loan.ts +188 -0
- package/src/chains/evm/hub/types/oracle.ts +25 -0
- package/src/chains/evm/hub/types/pool.ts +75 -0
- package/src/chains/evm/hub/types/token.ts +10 -0
- package/src/chains/evm/hub/utils/chain.ts +78 -0
- package/src/chains/evm/hub/utils/contract.ts +178 -0
- package/src/chains/evm/hub/utils/events.ts +160 -0
- package/src/chains/evm/hub/utils/loan.ts +72 -0
- package/src/chains/evm/spoke/constants/abi/bridge-router-spoke-abi.ts +805 -0
- package/src/chains/evm/spoke/constants/abi/spoke-common-abi.ts +734 -0
- package/src/chains/evm/spoke/constants/abi/spoke-rewards-v2-common-abi.ts +500 -0
- package/src/chains/evm/spoke/constants/abi/spoke-token-abi.ts +704 -0
- package/src/chains/evm/spoke/modules/index.ts +3 -0
- package/src/chains/evm/spoke/modules/ts-evm-account.ts +341 -0
- package/src/chains/evm/spoke/modules/ts-evm-gmp.ts +353 -0
- package/src/chains/evm/spoke/modules/ts-evm-loan.ts +1032 -0
- package/src/chains/evm/spoke/types/pool.ts +7 -0
- package/src/chains/evm/spoke/utils/contract.ts +123 -0
- package/src/common/constants/adapter.ts +6 -0
- package/src/common/constants/byte.ts +7 -0
- package/src/common/constants/chain.ts +319 -0
- package/src/common/constants/gmp.ts +19 -0
- package/src/common/constants/lending.ts +9 -0
- package/src/common/constants/message.ts +25 -0
- package/src/common/constants/pool.ts +30 -0
- package/src/common/types/adapter.ts +44 -0
- package/src/common/types/address.ts +11 -0
- package/src/common/types/brand.ts +3 -0
- package/src/common/types/chain.ts +42 -0
- package/src/common/types/core.ts +31 -0
- package/src/common/types/gmp.ts +19 -0
- package/src/common/types/lending.ts +26 -0
- package/src/common/types/message.ts +401 -0
- package/src/common/types/module.ts +46 -0
- package/src/common/types/token.ts +72 -0
- package/src/common/utils/adapter.ts +197 -0
- package/src/common/utils/address.ts +50 -0
- package/src/common/utils/bytes.ts +36 -0
- package/src/common/utils/chain.ts +163 -0
- package/src/common/utils/formulae.ts +270 -0
- package/src/common/utils/gmp.ts +8 -0
- package/src/common/utils/lending.ts +31 -0
- package/src/common/utils/math-lib.ts +50 -0
- package/src/common/utils/messages.ts +283 -0
- package/src/common/utils/token.ts +13 -0
- package/src/common/utils/transaction.ts +27 -0
- package/src/index.ts +73 -0
- package/src/lifeline/core/ts-core.ts +136 -0
- package/src/lifeline/modules/index.ts +5 -0
- package/src/lifeline/modules/ts-account.ts +420 -0
- package/src/lifeline/modules/ts-gmp.ts +5 -0
- package/src/lifeline/modules/ts-loan.ts +1268 -0
- package/src/lifeline/modules/ts-oracle.ts +68 -0
- package/src/lifeline/modules/ts-pool.ts +19 -0
- package/src/types/generics.ts +1 -0
- package/src/utils/address.ts +0 -0
- package/src/utils/array.ts +11 -0
- package/src/utils/exhaustive-check.ts +3 -0
- package/src/utils/random.ts +3 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { getEvmSignerAddress } from '../../chains/evm/common/utils/chain.js';
|
|
2
|
+
import { getHubChainAdapterAddress, isHubChain, } from '../../chains/evm/hub/utils/chain.js';
|
|
3
|
+
import { exhaustiveCheck } from '../../utils/exhaustive-check.js';
|
|
4
|
+
import { TS_CHAIN, SPOKE_CHAIN } from '../constants/chain.js';
|
|
5
|
+
import { ChainType } from '../types/chain.js';
|
|
6
|
+
import { convertToGenericAddress } from './address.js';
|
|
7
|
+
export function getTsChain(tsChainId, network) {
|
|
8
|
+
const tsChain = TS_CHAIN[network][tsChainId];
|
|
9
|
+
if (!tsChain)
|
|
10
|
+
throw new Error(`Townsq Chain not found for tsChainId: ${tsChainId}`);
|
|
11
|
+
return tsChain;
|
|
12
|
+
}
|
|
13
|
+
export function getTsChainsByNetwork(network) {
|
|
14
|
+
return Object.values(TS_CHAIN[network]);
|
|
15
|
+
}
|
|
16
|
+
export function getTsChainIdsByNetwork(networkType) {
|
|
17
|
+
return getTsChainsByNetwork(networkType).map((tsChain) => tsChain.tsChainId);
|
|
18
|
+
}
|
|
19
|
+
export function isSpokeChainSupported(tsChainId, network) {
|
|
20
|
+
return SPOKE_CHAIN[network][tsChainId] !== undefined;
|
|
21
|
+
}
|
|
22
|
+
export function assertSpokeChainSupported(tsChainId, network) {
|
|
23
|
+
if (!isSpokeChainSupported(tsChainId, network))
|
|
24
|
+
throw new Error(`Spoke chain is not supported for tsChainId: ${tsChainId}`);
|
|
25
|
+
}
|
|
26
|
+
export function getSpokeChain(tsChainId, network) {
|
|
27
|
+
const spokeChain = SPOKE_CHAIN[network][tsChainId];
|
|
28
|
+
if (!spokeChain)
|
|
29
|
+
throw new Error(`Spoke chain not found for tsChainId: ${tsChainId}`);
|
|
30
|
+
return spokeChain;
|
|
31
|
+
}
|
|
32
|
+
export function doesSpokeSupportTsToken(spokeChain, tsTokenId) {
|
|
33
|
+
return spokeChain.tokens[tsTokenId] !== undefined;
|
|
34
|
+
}
|
|
35
|
+
export function getSpokeTokenData(spokeChain, tsTokenId) {
|
|
36
|
+
const tokenData = spokeChain.tokens[tsTokenId];
|
|
37
|
+
if (!tokenData)
|
|
38
|
+
throw new Error(`Spoke Token not found for tsTokenId: ${tsTokenId}`);
|
|
39
|
+
return tokenData;
|
|
40
|
+
}
|
|
41
|
+
export function isTsTokenSupported(tsTokenId, tsChainId, network) {
|
|
42
|
+
const spokeChain = getSpokeChain(tsChainId, network);
|
|
43
|
+
return doesSpokeSupportTsToken(spokeChain, tsTokenId);
|
|
44
|
+
}
|
|
45
|
+
export function assertSpokeChainSupportTsToken(tsChainId, tsTokenId, network) {
|
|
46
|
+
if (!isTsTokenSupported(tsTokenId, tsChainId, network))
|
|
47
|
+
throw new Error(`Townsq Token ${tsTokenId} is not supported on Townsq Chain ${tsChainId}`);
|
|
48
|
+
}
|
|
49
|
+
export function getSpokeChainAdapterAddress(tsChainId, network, adapterType) {
|
|
50
|
+
const spokeChain = getSpokeChain(tsChainId, network);
|
|
51
|
+
const { adapters } = spokeChain;
|
|
52
|
+
const adapterAddress = adapters[adapterType];
|
|
53
|
+
if (adapterAddress)
|
|
54
|
+
return adapterAddress;
|
|
55
|
+
throw new Error(`Adapter ${adapterType} not found for spoke chain ${tsChainId}`);
|
|
56
|
+
}
|
|
57
|
+
export function getAdapterAddress(tsChainId, network, adapterType) {
|
|
58
|
+
if (isHubChain(tsChainId, network))
|
|
59
|
+
return getHubChainAdapterAddress(network, adapterType);
|
|
60
|
+
return getSpokeChainAdapterAddress(tsChainId, network, adapterType);
|
|
61
|
+
}
|
|
62
|
+
export function getSpokeChainBridgeRouterAddress(spokeChain) {
|
|
63
|
+
const { messageDispatcherAddress } = spokeChain;
|
|
64
|
+
return messageDispatcherAddress;
|
|
65
|
+
}
|
|
66
|
+
export function getSignerGenericAddress(tsChainSigner) {
|
|
67
|
+
const chainType = tsChainSigner.chainType;
|
|
68
|
+
switch (chainType) {
|
|
69
|
+
case ChainType.EVM:
|
|
70
|
+
return convertToGenericAddress(getEvmSignerAddress(tsChainSigner.signer), chainType);
|
|
71
|
+
default:
|
|
72
|
+
return exhaustiveCheck(chainType);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export function assertHubChainSelected(tsChainId, network) {
|
|
76
|
+
if (!isHubChain(tsChainId, network))
|
|
77
|
+
throw new Error(`Wrong chain selected: ${tsChainId}. Expected Hub chain`);
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=chain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/common/utils/chain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Dnum } from 'dnum';
|
|
2
|
+
export declare function calcPeriodNumber(offset: bigint, length: bigint): bigint;
|
|
3
|
+
export declare function calcNextPeriodReset(periodNumber: bigint, offset: bigint, length: bigint): bigint;
|
|
4
|
+
export declare function calcOverallBorrowInterestRate(totalVarDebt: bigint, totalStableDebt: bigint, variableBorInterestRate: Dnum, avgStableBorInterestRate: Dnum): Dnum;
|
|
5
|
+
export declare function calcDepositInterestIndex(dirt1: Dnum, diit1: Dnum, latestUpdate: bigint, lastTimestamp?: bigint): Dnum;
|
|
6
|
+
export declare function calcBorrowInterestIndex(birt1: Dnum, biit1: Dnum, latestUpdate: bigint, lastTimestamp?: bigint): Dnum;
|
|
7
|
+
export declare function calcRetention(actualRetained: bigint, totalDebt: bigint, overallBorrowInterestRate: Dnum, retentionRate: Dnum, latestUpdate: bigint, lastTimestamp?: bigint): bigint;
|
|
8
|
+
export declare function calcRewardIndex(used: bigint, ma: bigint, rit1: Dnum, rs: Dnum, latestUpdate: bigint): Dnum;
|
|
9
|
+
export declare function calcAccruedRewards(amount: bigint, rit: Dnum, ritn1: Dnum): bigint;
|
|
10
|
+
export declare function toFAmount(underlyingAmount: bigint, diit: Dnum): bigint;
|
|
11
|
+
export declare function toUnderlyingAmount(fAmount: bigint, diit: Dnum): bigint;
|
|
12
|
+
export declare function calcAssetDollarValue(amount: bigint, tokenPrice: Dnum, tokenDecimals: number): Dnum;
|
|
13
|
+
export declare function calcCollateralAssetLoanValue(amount: bigint, tokenPrice: Dnum, tokenDecimals: number, collateralFactor: Dnum): Dnum;
|
|
14
|
+
export declare function calcBorrowAssetLoanValue(amount: bigint, tokenPrice: Dnum, tokenDecimals: number, borrowFactor: Dnum): Dnum;
|
|
15
|
+
export declare function calcBorrowBalance(bbtn1: bigint, biit: Dnum, biitn1: Dnum): bigint;
|
|
16
|
+
export declare function calcStableInterestRate(bbt: bigint, amount: bigint, sbirtn1: Dnum, sbirt1: Dnum): Dnum;
|
|
17
|
+
export declare function calcLtvRatio(totalBorrowBalanceValue: Dnum, totalCollateralBalanceValue: Dnum): Dnum;
|
|
18
|
+
export declare function calcBorrowUtilisationRatio(totalEffectiveBorrowBalanceValue: Dnum, totalEffectiveCollateralBalanceValue: Dnum): Dnum;
|
|
19
|
+
export declare function calcLiquidationMargin(totalEffectiveBorrowBalanceValue: Dnum, totalEffectiveCollateralBalanceValue: Dnum): Dnum;
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import * as dn from 'dnum';
|
|
2
|
+
import { SECONDS_IN_YEAR, expBySquaring, unixTime } from './math-lib.js';
|
|
3
|
+
export function calcPeriodNumber(offset, length) {
|
|
4
|
+
return (BigInt(unixTime()) + offset) / length;
|
|
5
|
+
}
|
|
6
|
+
export function calcNextPeriodReset(periodNumber, offset, length) {
|
|
7
|
+
return (periodNumber + BigInt(1)) * length - offset;
|
|
8
|
+
}
|
|
9
|
+
export function calcOverallBorrowInterestRate(totalVarDebt, totalStableDebt, variableBorInterestRate, avgStableBorInterestRate) {
|
|
10
|
+
const totalDebt = totalVarDebt + totalStableDebt;
|
|
11
|
+
if (totalDebt === 0n)
|
|
12
|
+
return dn.from(0, 18);
|
|
13
|
+
return dn.div(dn.add(dn.mul(totalVarDebt, variableBorInterestRate, {
|
|
14
|
+
rounding: 'ROUND_DOWN',
|
|
15
|
+
decimals: 0,
|
|
16
|
+
}), dn.mul(totalStableDebt, avgStableBorInterestRate, {
|
|
17
|
+
rounding: 'ROUND_DOWN',
|
|
18
|
+
decimals: 0,
|
|
19
|
+
})), totalDebt, { rounding: 'ROUND_DOWN', decimals: 18 });
|
|
20
|
+
}
|
|
21
|
+
export function calcDepositInterestIndex(dirt1, diit1, latestUpdate, lastTimestamp = BigInt(unixTime())) {
|
|
22
|
+
const dt = lastTimestamp - latestUpdate;
|
|
23
|
+
return dn.mul(diit1, dn.add(dn.from(1, 18), dn.div(dn.mul(dirt1, dt, { rounding: 'ROUND_DOWN' }), SECONDS_IN_YEAR, {
|
|
24
|
+
rounding: 'ROUND_DOWN',
|
|
25
|
+
})), { rounding: 'ROUND_DOWN' });
|
|
26
|
+
}
|
|
27
|
+
export function calcBorrowInterestIndex(birt1, biit1, latestUpdate, lastTimestamp = BigInt(unixTime())) {
|
|
28
|
+
const dt = lastTimestamp - latestUpdate;
|
|
29
|
+
return dn.mul(biit1, expBySquaring(dn.add(dn.from(1, 18), dn.div(birt1, SECONDS_IN_YEAR, { rounding: 'ROUND_DOWN' })), dt), { rounding: 'ROUND_DOWN' });
|
|
30
|
+
}
|
|
31
|
+
export function calcRetention(actualRetained, totalDebt, overallBorrowInterestRate, retentionRate, latestUpdate, lastTimestamp = BigInt(unixTime())) {
|
|
32
|
+
const dt = lastTimestamp - latestUpdate;
|
|
33
|
+
const [retainedDelta] = dn.div(dn.mul(dn.mul(dn.mul(totalDebt, overallBorrowInterestRate, {
|
|
34
|
+
rounding: 'ROUND_DOWN',
|
|
35
|
+
decimals: 0,
|
|
36
|
+
}), retentionRate, {
|
|
37
|
+
rounding: 'ROUND_DOWN',
|
|
38
|
+
decimals: 0,
|
|
39
|
+
}), dt, { rounding: 'ROUND_DOWN' }), SECONDS_IN_YEAR, {
|
|
40
|
+
rounding: 'ROUND_DOWN',
|
|
41
|
+
});
|
|
42
|
+
return actualRetained + retainedDelta;
|
|
43
|
+
}
|
|
44
|
+
export function calcRewardIndex(used, ma, rit1, rs, latestUpdate) {
|
|
45
|
+
if (used <= ma)
|
|
46
|
+
return rit1;
|
|
47
|
+
const dt = BigInt(unixTime()) - latestUpdate;
|
|
48
|
+
return dn.add(rit1, dn.div(dn.mul(rs, dt, { rounding: 'ROUND_DOWN' }), used, {
|
|
49
|
+
rounding: 'ROUND_DOWN',
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
export function calcAccruedRewards(amount, rit, ritn1) {
|
|
53
|
+
const [accruedRewards] = dn.mul([amount, 0], dn.sub(rit, ritn1), {
|
|
54
|
+
rounding: 'ROUND_DOWN',
|
|
55
|
+
});
|
|
56
|
+
return accruedRewards;
|
|
57
|
+
}
|
|
58
|
+
export function toFAmount(underlyingAmount, diit) {
|
|
59
|
+
const [fAmount] = dn.div([underlyingAmount, 0], diit, {
|
|
60
|
+
rounding: 'ROUND_DOWN',
|
|
61
|
+
});
|
|
62
|
+
return fAmount;
|
|
63
|
+
}
|
|
64
|
+
export function toUnderlyingAmount(fAmount, diit) {
|
|
65
|
+
const [underlyingAmount] = dn.mul([fAmount, 0], diit, {
|
|
66
|
+
rounding: 'ROUND_DOWN',
|
|
67
|
+
});
|
|
68
|
+
return underlyingAmount;
|
|
69
|
+
}
|
|
70
|
+
export function calcAssetDollarValue(amount, tokenPrice, tokenDecimals) {
|
|
71
|
+
return dn.mul(tokenPrice, [amount, tokenDecimals], {
|
|
72
|
+
rounding: 'ROUND_DOWN',
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
export function calcCollateralAssetLoanValue(amount, tokenPrice, tokenDecimals, collateralFactor) {
|
|
76
|
+
return dn.mul(calcAssetDollarValue(amount, tokenPrice, tokenDecimals), collateralFactor, {
|
|
77
|
+
rounding: 'ROUND_DOWN',
|
|
78
|
+
decimals: 8,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
export function calcBorrowAssetLoanValue(amount, tokenPrice, tokenDecimals, borrowFactor) {
|
|
82
|
+
return dn.mul(calcAssetDollarValue(amount, tokenPrice, tokenDecimals), borrowFactor, {
|
|
83
|
+
rounding: 'ROUND_UP',
|
|
84
|
+
decimals: 8,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
export function calcBorrowBalance(bbtn1, biit, biitn1) {
|
|
88
|
+
const [borrowBalance] = dn.mul([bbtn1, 0], dn.div(biit, biitn1, { rounding: 'ROUND_UP' }), {
|
|
89
|
+
rounding: 'ROUND_UP',
|
|
90
|
+
});
|
|
91
|
+
return borrowBalance;
|
|
92
|
+
}
|
|
93
|
+
export function calcStableInterestRate(bbt, amount, sbirtn1, sbirt1) {
|
|
94
|
+
return dn.div(dn.add(dn.mul(sbirtn1, [bbt, 0]), dn.mul(sbirt1, [amount, 0])), dn.add([bbt, 0], [amount, 0]));
|
|
95
|
+
}
|
|
96
|
+
export function calcLtvRatio(totalBorrowBalanceValue, totalCollateralBalanceValue) {
|
|
97
|
+
const [, decimals] = totalBorrowBalanceValue;
|
|
98
|
+
if (dn.equal(totalCollateralBalanceValue, 0))
|
|
99
|
+
return dn.from(0, decimals);
|
|
100
|
+
return dn.div(totalBorrowBalanceValue, totalCollateralBalanceValue, {
|
|
101
|
+
rounding: 'ROUND_UP',
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
export function calcBorrowUtilisationRatio(totalEffectiveBorrowBalanceValue, totalEffectiveCollateralBalanceValue) {
|
|
105
|
+
const [, decimals] = totalEffectiveBorrowBalanceValue;
|
|
106
|
+
if (dn.equal(totalEffectiveCollateralBalanceValue, 0))
|
|
107
|
+
return dn.from(0, decimals);
|
|
108
|
+
return dn.div(totalEffectiveBorrowBalanceValue, totalEffectiveCollateralBalanceValue, { rounding: 'ROUND_UP' });
|
|
109
|
+
}
|
|
110
|
+
export function calcLiquidationMargin(totalEffectiveBorrowBalanceValue, totalEffectiveCollateralBalanceValue) {
|
|
111
|
+
const [, decimals] = totalEffectiveBorrowBalanceValue;
|
|
112
|
+
if (dn.equal(totalEffectiveCollateralBalanceValue, 0))
|
|
113
|
+
return dn.from(0, decimals);
|
|
114
|
+
return dn.div(dn.sub(totalEffectiveCollateralBalanceValue, totalEffectiveBorrowBalanceValue), totalEffectiveCollateralBalanceValue, {
|
|
115
|
+
rounding: 'ROUND_DOWN',
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=formulae.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formulae.js","sourceRoot":"","sources":["../../../src/common/utils/formulae.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gmp.js","sourceRoot":"","sources":["../../../src/common/utils/gmp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKpD,MAAM,UAAU,eAAe,CAAC,SAAoB;IAClD,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { GenericAddress } from '../types/address.js';
|
|
2
|
+
import type { TSChainId } from '../types/chain.js';
|
|
3
|
+
import type { AccountId, LoanId, LoanName, Nonce } from '../types/lending.js';
|
|
4
|
+
export declare function isAccountId(accountId: AccountId): boolean;
|
|
5
|
+
export declare function buildAccountId(addr: GenericAddress, chainId: TSChainId, nonce: Nonce): AccountId;
|
|
6
|
+
export declare function buildLoanId(accountId: AccountId, nonce: Nonce): LoanId;
|
|
7
|
+
export declare function convertStringToLoanName(name: string): LoanName;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { concat, keccak256, pad, toHex } from 'viem';
|
|
2
|
+
import { BYTES32_LENGTH, UINT16_LENGTH } from '../constants/byte.js';
|
|
3
|
+
import { convertNumberToBytes } from './bytes.js';
|
|
4
|
+
export function isAccountId(accountId) {
|
|
5
|
+
return accountId.length === 64 + 2;
|
|
6
|
+
}
|
|
7
|
+
export function buildAccountId(addr, chainId, nonce) {
|
|
8
|
+
return keccak256(concat([addr, convertNumberToBytes(chainId, UINT16_LENGTH), nonce]));
|
|
9
|
+
}
|
|
10
|
+
export function buildLoanId(accountId, nonce) {
|
|
11
|
+
return keccak256(concat([accountId, nonce]));
|
|
12
|
+
}
|
|
13
|
+
export function convertStringToLoanName(name) {
|
|
14
|
+
return pad(toHex(name), { size: BYTES32_LENGTH });
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=lending.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lending.js","sourceRoot":"","sources":["../../../src/common/utils/lending.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAMlD,MAAM,UAAU,WAAW,CAAC,SAAoB;IAC9C,OAAO,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAoB,EACpB,OAAkB,EAClB,KAAY;IAEZ,OAAO,SAAS,CACd,MAAM,CAAC,CAAC,IAAI,EAAE,oBAAoB,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC,CACvD,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAoB,EAAE,KAAY;IAC5D,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAW,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAa,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Dnum } from "dnum";
|
|
2
|
+
export declare const SECONDS_IN_YEAR: bigint;
|
|
3
|
+
export declare const HOURS_IN_YEAR: bigint;
|
|
4
|
+
export declare function unixTime(): number;
|
|
5
|
+
export declare function expBySquaring(x: Dnum, n: bigint): Dnum;
|
|
6
|
+
export declare function compoundEverySecond(rate: Dnum): Dnum;
|
|
7
|
+
export declare function compoundEveryHour(rate: Dnum): Dnum;
|
|
8
|
+
export declare const bigIntMax: (...args: Array<bigint>) => bigint;
|
|
9
|
+
export declare const bigIntMin: (...args: Array<bigint>) => bigint;
|
|
10
|
+
export declare const increaseByPercent: (value: bigint, percent: number) => bigint;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import * as dn from "dnum";
|
|
2
|
+
export const SECONDS_IN_YEAR = BigInt(365 * 24 * 60 * 60);
|
|
3
|
+
export const HOURS_IN_YEAR = BigInt(365 * 24);
|
|
4
|
+
export function unixTime() {
|
|
5
|
+
return Math.floor(Date.now() / 1000);
|
|
6
|
+
}
|
|
7
|
+
export function expBySquaring(x, n) {
|
|
8
|
+
const [, decimals] = x;
|
|
9
|
+
const one = dn.from(1, decimals);
|
|
10
|
+
if (n === BigInt(0))
|
|
11
|
+
return one;
|
|
12
|
+
let y = one;
|
|
13
|
+
while (n > BigInt(1)) {
|
|
14
|
+
if (n % BigInt(2)) {
|
|
15
|
+
y = dn.mul(x, y, { rounding: "ROUND_DOWN" });
|
|
16
|
+
n = (n - BigInt(1)) / BigInt(2);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
n = n / BigInt(2);
|
|
20
|
+
}
|
|
21
|
+
x = dn.mul(x, x, { rounding: "ROUND_DOWN" });
|
|
22
|
+
}
|
|
23
|
+
return dn.mul(x, y, { rounding: "ROUND_DOWN" });
|
|
24
|
+
}
|
|
25
|
+
function compound(rate, period) {
|
|
26
|
+
const [, decimals] = rate;
|
|
27
|
+
const one = dn.from(1, decimals);
|
|
28
|
+
return dn.sub(expBySquaring(dn.add(one, dn.div(rate, period)), period), one);
|
|
29
|
+
}
|
|
30
|
+
export function compoundEverySecond(rate) {
|
|
31
|
+
return compound(rate, SECONDS_IN_YEAR);
|
|
32
|
+
}
|
|
33
|
+
export function compoundEveryHour(rate) {
|
|
34
|
+
return compound(rate, HOURS_IN_YEAR);
|
|
35
|
+
}
|
|
36
|
+
export const bigIntMax = (...args) => args.reduce((m, e) => (e > m ? e : m));
|
|
37
|
+
export const bigIntMin = (...args) => args.reduce((m, e) => (e < m ? e : m));
|
|
38
|
+
export const increaseByPercent = (value, percent) => {
|
|
39
|
+
return value + (value * BigInt(10_000 * percent)) / BigInt(10_000);
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=math-lib.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math-lib.js","sourceRoot":"","sources":["../../../src/common/utils/math-lib.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ChainType } from '../types/chain.js';
|
|
2
|
+
import { MessageDirection } from '../types/gmp.js';
|
|
3
|
+
import { Action } from '../types/message.js';
|
|
4
|
+
import type { TSChainId, NetworkType } from '../types/chain.js';
|
|
5
|
+
import type { TSProvider } from '../types/core.js';
|
|
6
|
+
import type { MessageBuilderParams, MessageToSend, OptionalFeeParams, Payload } from '../types/message.js';
|
|
7
|
+
import type { Hex } from 'viem';
|
|
8
|
+
export declare function buildMessageToSend(chainType: ChainType, messageToSendBuilderParams: MessageBuilderParams, feeParams?: OptionalFeeParams): MessageToSend;
|
|
9
|
+
export declare function estimateAdapterReceiveGasLimit(sourceTSChainId: TSChainId, destTSChainId: TSChainId, destTSChainProvider: TSProvider, network: NetworkType, messageDirection: MessageDirection, messageBuilderParams: MessageBuilderParams, receiverValue?: bigint, returnGasLimit?: bigint, isRewards?: boolean): Promise<bigint>;
|
|
10
|
+
export declare function getOperationIdsByTransaction(chainType: ChainType, tsProvider: TSProvider, txnHash: Hex): Promise<`0x${string}`[]>;
|
|
11
|
+
export declare function waitOperationIds(chainType: ChainType, tsProvider: TSProvider, txnHash: Hex, confirmations?: number): Promise<`0x${string}`[]>;
|
|
12
|
+
export declare function isReversibleAction(action: Action, messageDirection: MessageDirection): boolean;
|
|
13
|
+
export declare function assertReversibleAction(action: Action, messageDirection: MessageDirection): void;
|
|
14
|
+
export declare function isRetryableAction(action: Action, messageDirection: MessageDirection): boolean;
|
|
15
|
+
export declare function assertRetryableAction(action: Action, messageDirection: MessageDirection): void;
|
|
16
|
+
export declare function decodeMessagePayload(payload: Hex): Payload;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { hexToNumber, parseEventLogs, sliceHex, } from 'viem';
|
|
2
|
+
import { getTransactionReceipt } from 'viem/actions';
|
|
3
|
+
import { WormholeDataAdapterAbi } from '../../chains/evm/common/constant/abi/wormhole-data-adapter-abi.js';
|
|
4
|
+
import { GAS_LIMIT_ESTIMATE_INCREASE } from '../../chains/evm/common/constant/contract.js';
|
|
5
|
+
import { buildEvmMessageToSend, estimateEvmWormholeDataGasLimit, getSendTokenStateOverride, } from '../../chains/evm/common/utils/message.js';
|
|
6
|
+
import { getHubChainAdapterAddress } from '../../chains/evm/hub/utils/chain.js';
|
|
7
|
+
import { exhaustiveCheck } from '../../utils/exhaustive-check.js';
|
|
8
|
+
import { BYTES32_LENGTH, UINT16_LENGTH, } from '../constants/byte.js';
|
|
9
|
+
import { REVERSIBLE_HUB_ACTIONS, SEND_TOKEN_ACTIONS, } from '../constants/message.js';
|
|
10
|
+
import { ChainType } from '../types/chain.js';
|
|
11
|
+
import { MessageDirection } from '../types/gmp.js';
|
|
12
|
+
import { Action, AdapterType } from '../types/message.js';
|
|
13
|
+
import { convertFromGenericAddress } from './address.js';
|
|
14
|
+
import { getTsChain, getSpokeChainAdapterAddress } from './chain.js';
|
|
15
|
+
import { getWormholeData } from './gmp.js';
|
|
16
|
+
import { waitTransaction } from './transaction.js';
|
|
17
|
+
export function buildMessageToSend(chainType, messageToSendBuilderParams, feeParams = {}) {
|
|
18
|
+
switch (chainType) {
|
|
19
|
+
case ChainType.EVM: {
|
|
20
|
+
return buildEvmMessageToSend(messageToSendBuilderParams, feeParams);
|
|
21
|
+
}
|
|
22
|
+
default:
|
|
23
|
+
return exhaustiveCheck(chainType);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function getAdapterId(messageDirection, adapters) {
|
|
27
|
+
if (messageDirection === MessageDirection.SpokeToHub)
|
|
28
|
+
return adapters.adapterId;
|
|
29
|
+
return adapters.returnAdapterId;
|
|
30
|
+
}
|
|
31
|
+
function getAdaptersAddresses(messageDirection, sourceTSChainId, destTSChainId, network, adapterId, isRewards = false) {
|
|
32
|
+
if (messageDirection === MessageDirection.SpokeToHub)
|
|
33
|
+
return {
|
|
34
|
+
sourceAdapterAddress: getSpokeChainAdapterAddress(sourceTSChainId, network, adapterId),
|
|
35
|
+
destAdapterAddress: getHubChainAdapterAddress(network, adapterId),
|
|
36
|
+
};
|
|
37
|
+
return {
|
|
38
|
+
sourceAdapterAddress: getHubChainAdapterAddress(network, adapterId),
|
|
39
|
+
destAdapterAddress: getSpokeChainAdapterAddress(destTSChainId, network, adapterId),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export async function estimateAdapterReceiveGasLimit(sourceTSChainId, destTSChainId, destTSChainProvider, network, messageDirection, messageBuilderParams, receiverValue = BigInt(0), returnGasLimit = BigInt(0), isRewards = false) {
|
|
43
|
+
const destTsChain = getTsChain(destTSChainId, network);
|
|
44
|
+
const adapterId = getAdapterId(messageDirection, messageBuilderParams.adapters);
|
|
45
|
+
const { sourceAdapterAddress, destAdapterAddress } = getAdaptersAddresses(messageDirection, sourceTSChainId, destTSChainId, network, adapterId, isRewards);
|
|
46
|
+
switch (destTsChain.chainType) {
|
|
47
|
+
case ChainType.EVM: {
|
|
48
|
+
let stateOverride = [];
|
|
49
|
+
if (messageBuilderParams.action === Action.SendToken) {
|
|
50
|
+
stateOverride = stateOverride.concat(getSendTokenStateOverride(destTSChainId, messageBuilderParams.overrideData));
|
|
51
|
+
}
|
|
52
|
+
switch (adapterId) {
|
|
53
|
+
case AdapterType.HUB: {
|
|
54
|
+
return 500000n;
|
|
55
|
+
}
|
|
56
|
+
case AdapterType.WORMHOLE_DATA: {
|
|
57
|
+
const sourceWormholeChainId = getWormholeData(sourceTSChainId).wormholeChainId;
|
|
58
|
+
const wormholeRelayer = convertFromGenericAddress(getWormholeData(destTSChainId).wormholeRelayer, ChainType.EVM);
|
|
59
|
+
const gasLimitEstimation = await estimateEvmWormholeDataGasLimit(
|
|
60
|
+
// eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style
|
|
61
|
+
destTSChainProvider, messageBuilderParams, receiverValue, returnGasLimit, sourceWormholeChainId, wormholeRelayer, destAdapterAddress, sourceAdapterAddress, stateOverride);
|
|
62
|
+
return gasLimitEstimation + GAS_LIMIT_ESTIMATE_INCREASE;
|
|
63
|
+
}
|
|
64
|
+
default:
|
|
65
|
+
return exhaustiveCheck(adapterId);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
default:
|
|
69
|
+
return exhaustiveCheck(destTsChain.chainType);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export async function getOperationIdsByTransaction(chainType, tsProvider, txnHash) {
|
|
73
|
+
switch (chainType) {
|
|
74
|
+
case ChainType.EVM: {
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
76
|
+
const receipt = await getTransactionReceipt(tsProvider, {
|
|
77
|
+
hash: txnHash,
|
|
78
|
+
});
|
|
79
|
+
const logs = parseEventLogs({
|
|
80
|
+
abi: WormholeDataAdapterAbi,
|
|
81
|
+
logs: receipt.logs,
|
|
82
|
+
eventName: 'SendMessage',
|
|
83
|
+
});
|
|
84
|
+
return logs.map((log) => log.args.operationId);
|
|
85
|
+
}
|
|
86
|
+
default:
|
|
87
|
+
return exhaustiveCheck(chainType);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export async function waitOperationIds(chainType, tsProvider, txnHash, confirmations = 1) {
|
|
91
|
+
switch (chainType) {
|
|
92
|
+
case ChainType.EVM: {
|
|
93
|
+
const receipt = await waitTransaction(chainType, tsProvider, txnHash, confirmations);
|
|
94
|
+
return await getOperationIdsByTransaction(chainType, tsProvider, receipt.transactionHash);
|
|
95
|
+
}
|
|
96
|
+
default:
|
|
97
|
+
return exhaustiveCheck(chainType);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
export function isReversibleAction(action, messageDirection) {
|
|
101
|
+
return (messageDirection === MessageDirection.HubToSpoke &&
|
|
102
|
+
REVERSIBLE_HUB_ACTIONS.includes(action));
|
|
103
|
+
}
|
|
104
|
+
export function assertReversibleAction(action, messageDirection) {
|
|
105
|
+
if (!isReversibleAction(action, messageDirection))
|
|
106
|
+
throw new Error(`Action ${action} is not reversible for message direction ${messageDirection}`);
|
|
107
|
+
}
|
|
108
|
+
export function isRetryableAction(action, messageDirection) {
|
|
109
|
+
return (messageDirection === MessageDirection.HubToSpoke ||
|
|
110
|
+
SEND_TOKEN_ACTIONS.includes(action));
|
|
111
|
+
}
|
|
112
|
+
export function assertRetryableAction(action, messageDirection) {
|
|
113
|
+
if (!isRetryableAction(action, messageDirection))
|
|
114
|
+
throw new Error(`Action ${action} is not retryable for message direction ${messageDirection}`);
|
|
115
|
+
}
|
|
116
|
+
export function decodeMessagePayload(payload) {
|
|
117
|
+
return {
|
|
118
|
+
action: hexToNumber(sliceHex(payload, 0, UINT16_LENGTH)),
|
|
119
|
+
accountId: sliceHex(payload, UINT16_LENGTH, UINT16_LENGTH + BYTES32_LENGTH),
|
|
120
|
+
userAddr: sliceHex(payload, UINT16_LENGTH + BYTES32_LENGTH, UINT16_LENGTH + BYTES32_LENGTH + BYTES32_LENGTH),
|
|
121
|
+
data: sliceHex(payload, UINT16_LENGTH + BYTES32_LENGTH + BYTES32_LENGTH),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/common/utils/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TS_TOKEN_IDS_FROM_POOL_BY_NETWORK } from '../constants/pool.js';
|
|
2
|
+
export function getTSTokenIdFromPool(poolId, network) {
|
|
3
|
+
const tsTokenId = TS_TOKEN_IDS_FROM_POOL_BY_NETWORK[network][poolId];
|
|
4
|
+
if (!tsTokenId)
|
|
5
|
+
throw new Error(`Unknown poolId: ${poolId}`);
|
|
6
|
+
return tsTokenId;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/common/utils/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,sBAAsB,CAAC;AAKzE,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,OAAoB;IAEpB,MAAM,SAAS,GAAG,iCAAiC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IACrE,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IAC7D,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ChainType } from '../types/chain.js';
|
|
2
|
+
import type { TSProvider } from '../types/core.js';
|
|
3
|
+
import type { Hex, TransactionReceipt } from 'viem';
|
|
4
|
+
export declare function waitTransaction(chainType: ChainType, tsProvider: TSProvider, txnHash: Hex, confirmations?: number): Promise<TransactionReceipt>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { waitForTransactionReceipt } from 'viem/actions';
|
|
2
|
+
import { exhaustiveCheck } from '../../utils/exhaustive-check.js';
|
|
3
|
+
import { ChainType } from '../types/chain.js';
|
|
4
|
+
export async function waitTransaction(chainType, tsProvider, txnHash, confirmations = 1) {
|
|
5
|
+
switch (chainType) {
|
|
6
|
+
case ChainType.EVM: {
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
8
|
+
const receipt = await waitForTransactionReceipt(tsProvider, {
|
|
9
|
+
hash: txnHash,
|
|
10
|
+
confirmations,
|
|
11
|
+
});
|
|
12
|
+
return receipt;
|
|
13
|
+
}
|
|
14
|
+
default:
|
|
15
|
+
return exhaustiveCheck(chainType);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/common/utils/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAK9C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAoB,EACpB,UAAsB,EACtB,OAAY,EACZ,aAAa,GAAG,CAAC;IAEjB,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACnB,oEAAoE;YACpE,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,UAAW,EAAE;gBAC3D,IAAI,EAAE,OAAO;gBACb,aAAa;aACd,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC;QACD;YACE,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export { TSCore } from './lifeline/core/ts-core.js';
|
|
2
|
+
export { TSAccount, TSLoan, //
|
|
3
|
+
TSOracle, //
|
|
4
|
+
TSPool, //
|
|
5
|
+
TSGmp, } from './lifeline/modules/index.js';
|
|
6
|
+
export * from './common/types/adapter.js';
|
|
7
|
+
export * from './common/types/address.js';
|
|
8
|
+
export * from './common/types/chain.js';
|
|
9
|
+
export * from './common/types/core.js';
|
|
10
|
+
export * from './common/types/lending.js';
|
|
11
|
+
export * from './common/types/message.js';
|
|
12
|
+
export * from './common/types/module.js';
|
|
13
|
+
export * from './common/types/token.js';
|
|
14
|
+
export * from './common/constants/byte.js';
|
|
15
|
+
export * from './common/constants/chain.js';
|
|
16
|
+
export * from './common/constants/gmp.js';
|
|
17
|
+
export * from './common/constants/message.js';
|
|
18
|
+
export * from './common/constants/pool.js';
|
|
19
|
+
export { getSupportedMessageAdapters } from './common/utils/adapter.js';
|
|
20
|
+
export { convertFromGenericAddress, convertToGenericAddress, } from './common/utils/address.js';
|
|
21
|
+
export { getRandomBytes } from './common/utils/bytes.js';
|
|
22
|
+
export { getAdapterAddress } from './common/utils/chain.js';
|
|
23
|
+
export { toFAmount, toUnderlyingAmount, calcAssetDollarValue, } from './common/utils/formulae.js';
|
|
24
|
+
export { getWormholeData } from './common/utils/gmp.js';
|
|
25
|
+
export { buildAccountId, buildLoanId } from './common/utils/lending.js';
|
|
26
|
+
export { waitTransaction } from './common/utils/transaction.js';
|
|
27
|
+
export { isHubChain } from './chains/evm/hub/utils/chain.js';
|
|
28
|
+
export { HUB_CHAIN } from './chains/evm/hub/constants/chain.js';
|
|
29
|
+
export * from './chains/evm/common/constant/chain.js';
|
|
30
|
+
export * from './chains/evm/common/types/chain.js';
|
|
31
|
+
export { isEvmChainId } from './chains/evm/common/utils/chain.js';
|
|
32
|
+
export * from './chains/evm/hub/types/account.js';
|
|
33
|
+
export * from './chains/evm/hub/types/chain.js';
|
|
34
|
+
export * from './chains/evm/hub/types/loan.js';
|
|
35
|
+
export * from './chains/evm/hub/types/oracle.js';
|
|
36
|
+
export * from './chains/evm/hub/types/pool.js';
|
|
37
|
+
export * from './chains/evm/hub/types/token.js';
|
|
38
|
+
export * from './chains/evm/spoke/types/pool.js';
|