@folks-finance/xchain-sdk 0.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 +1 -0
- package/dist/chains/evm/common/constants/abi/ccip-data-adapter-abi.d.ts +796 -0
- package/dist/chains/evm/common/constants/abi/ccip-data-adapter-abi.js +614 -0
- package/dist/chains/evm/common/constants/abi/ccip-data-adapter-abi.js.map +1 -0
- package/dist/chains/evm/common/constants/abi/erc-20-abi.d.ts +235 -0
- package/dist/chains/evm/common/constants/abi/erc-20-abi.js +157 -0
- package/dist/chains/evm/common/constants/abi/erc-20-abi.js.map +1 -0
- package/dist/chains/evm/common/constants/abi/wormhole-data-adapter-abi.d.ts +807 -0
- package/dist/chains/evm/common/constants/abi/wormhole-data-adapter-abi.js +621 -0
- package/dist/chains/evm/common/constants/abi/wormhole-data-adapter-abi.js.map +1 -0
- package/dist/chains/evm/common/constants/chain.d.ts +2349 -0
- package/dist/chains/evm/common/constants/chain.js +45 -0
- package/dist/chains/evm/common/constants/chain.js.map +1 -0
- package/dist/chains/evm/common/constants/contract.d.ts +2 -0
- package/dist/chains/evm/common/constants/contract.js +6 -0
- package/dist/chains/evm/common/constants/contract.js.map +1 -0
- package/dist/chains/evm/common/constants/tokens.d.ts +6 -0
- package/dist/chains/evm/common/constants/tokens.js +33 -0
- package/dist/chains/evm/common/constants/tokens.js.map +1 -0
- package/dist/chains/evm/common/types/chain.d.ts +10 -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 +14 -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/index.d.ts +3 -0
- package/dist/chains/evm/common/types/index.js +4 -0
- package/dist/chains/evm/common/types/index.js.map +1 -0
- package/dist/chains/evm/common/types/module.d.ts +66 -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/tokens.d.ts +28 -0
- package/dist/chains/evm/common/types/tokens.js +2 -0
- package/dist/chains/evm/common/types/tokens.js.map +1 -0
- package/dist/chains/evm/common/utils/chain.d.ts +6 -0
- package/dist/chains/evm/common/utils/chain.js +16 -0
- package/dist/chains/evm/common/utils/chain.js.map +1 -0
- package/dist/chains/evm/common/utils/contract.d.ts +6006 -0
- package/dist/chains/evm/common/utils/contract.js +54 -0
- package/dist/chains/evm/common/utils/contract.js.map +1 -0
- package/dist/chains/evm/common/utils/gmp.d.ts +4 -0
- package/dist/chains/evm/common/utils/gmp.js +13 -0
- package/dist/chains/evm/common/utils/gmp.js.map +1 -0
- package/dist/chains/evm/common/utils/message.d.ts +22 -0
- package/dist/chains/evm/common/utils/message.js +398 -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 +10 -0
- package/dist/chains/evm/common/utils/tokens.js +37 -0
- package/dist/chains/evm/common/utils/tokens.js.map +1 -0
- package/dist/chains/evm/hub/constants/abi/account-manager-abi.d.ts +907 -0
- package/dist/chains/evm/hub/constants/abi/account-manager-abi.js +686 -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 +969 -0
- package/dist/chains/evm/hub/constants/abi/bridge-router-hub-abi.js +764 -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 +285 -0
- package/dist/chains/evm/hub/constants/abi/hub-abi.js +187 -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 +1742 -0
- package/dist/chains/evm/hub/constants/abi/hub-pool-abi.js +1346 -0
- package/dist/chains/evm/hub/constants/abi/hub-pool-abi.js.map +1 -0
- package/dist/chains/evm/hub/constants/abi/loan-manager-abi.d.ts +1559 -0
- package/dist/chains/evm/hub/constants/abi/loan-manager-abi.js +1040 -0
- package/dist/chains/evm/hub/constants/abi/loan-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 +389 -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 +96 -0
- package/dist/chains/evm/hub/constants/chain.js.map +1 -0
- package/dist/chains/evm/hub/modules/folks-hub-account.d.ts +15 -0
- package/dist/chains/evm/hub/modules/folks-hub-account.js +98 -0
- package/dist/chains/evm/hub/modules/folks-hub-account.js.map +1 -0
- package/dist/chains/evm/hub/modules/folks-hub-gmp.d.ts +14 -0
- package/dist/chains/evm/hub/modules/folks-hub-gmp.js +57 -0
- package/dist/chains/evm/hub/modules/folks-hub-gmp.js.map +1 -0
- package/dist/chains/evm/hub/modules/folks-hub-loan.d.ts +25 -0
- package/dist/chains/evm/hub/modules/folks-hub-loan.js +397 -0
- package/dist/chains/evm/hub/modules/folks-hub-loan.js.map +1 -0
- package/dist/chains/evm/hub/modules/folks-hub-oracle.d.ts +5 -0
- package/dist/chains/evm/hub/modules/folks-hub-oracle.js +24 -0
- package/dist/chains/evm/hub/modules/folks-hub-oracle.js.map +1 -0
- package/dist/chains/evm/hub/modules/folks-hub-pool.d.ts +5 -0
- package/dist/chains/evm/hub/modules/folks-hub-pool.js +114 -0
- package/dist/chains/evm/hub/modules/folks-hub-pool.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/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 +15 -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 +126 -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 +4 -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 +60 -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 +13 -0
- package/dist/chains/evm/hub/utils/chain.js +29 -0
- package/dist/chains/evm/hub/utils/chain.js.map +1 -0
- package/dist/chains/evm/hub/utils/contract.d.ts +17 -0
- package/dist/chains/evm/hub/utils/contract.js +52 -0
- package/dist/chains/evm/hub/utils/contract.js.map +1 -0
- package/dist/chains/evm/hub/utils/events.d.ts +24 -0
- package/dist/chains/evm/hub/utils/events.js +97 -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 +36 -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 +951 -0
- package/dist/chains/evm/spoke/constants/abi/bridge-router-spoke-abi.js +754 -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 +1101 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-common-abi.js +710 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-common-abi.js.map +1 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-token-abi.d.ts +882 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-token-abi.js +643 -0
- package/dist/chains/evm/spoke/constants/abi/spoke-token-abi.js.map +1 -0
- package/dist/chains/evm/spoke/modules/folks-evm-account.d.ts +18 -0
- package/dist/chains/evm/spoke/modules/folks-evm-account.js +119 -0
- package/dist/chains/evm/spoke/modules/folks-evm-account.js.map +1 -0
- package/dist/chains/evm/spoke/modules/folks-evm-gmp.d.ts +14 -0
- package/dist/chains/evm/spoke/modules/folks-evm-gmp.js +57 -0
- package/dist/chains/evm/spoke/modules/folks-evm-gmp.js.map +1 -0
- package/dist/chains/evm/spoke/modules/folks-evm-loan.d.ts +39 -0
- package/dist/chains/evm/spoke/modules/folks-evm-loan.js +396 -0
- package/dist/chains/evm/spoke/modules/folks-evm-loan.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/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 +12 -0
- package/dist/chains/evm/spoke/utils/contract.js +28 -0
- package/dist/chains/evm/spoke/utils/contract.js.map +1 -0
- package/dist/common/constants/adapter.d.ts +4 -0
- package/dist/common/constants/adapter.js +5 -0
- package/dist/common/constants/adapter.js.map +1 -0
- package/dist/common/constants/bytes.d.ts +5 -0
- package/dist/common/constants/bytes.js +6 -0
- package/dist/common/constants/bytes.js.map +1 -0
- package/dist/common/constants/chain.d.ts +15 -0
- package/dist/common/constants/chain.js +152 -0
- package/dist/common/constants/chain.js.map +1 -0
- package/dist/common/constants/gmp.d.ts +4 -0
- package/dist/common/constants/gmp.js +32 -0
- package/dist/common/constants/gmp.js.map +1 -0
- package/dist/common/constants/lending.d.ts +1 -0
- package/dist/common/constants/lending.js +3 -0
- package/dist/common/constants/lending.js.map +1 -0
- package/dist/common/constants/message.d.ts +4 -0
- package/dist/common/constants/message.js +5 -0
- package/dist/common/constants/message.js.map +1 -0
- package/dist/common/constants/pool.d.ts +8 -0
- package/dist/common/constants/pool.js +10 -0
- package/dist/common/constants/pool.js.map +1 -0
- package/dist/common/constants/token.d.ts +2 -0
- package/dist/common/constants/token.js +3 -0
- package/dist/common/constants/token.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 +10 -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 +17 -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 +4 -0
- package/dist/common/types/lending.js +2 -0
- package/dist/common/types/lending.js.map +1 -0
- package/dist/common/types/message.d.ts +239 -0
- package/dist/common/types/message.js +33 -0
- package/dist/common/types/message.js.map +1 -0
- package/dist/common/types/module.d.ts +21 -0
- package/dist/common/types/module.js +6 -0
- package/dist/common/types/module.js.map +1 -0
- package/dist/common/types/token.d.ts +42 -0
- package/dist/common/types/token.js +15 -0
- package/dist/common/types/token.js.map +1 -0
- package/dist/common/utils/adapter.d.ts +11 -0
- package/dist/common/utils/adapter.js +63 -0
- package/dist/common/utils/adapter.js.map +1 -0
- package/dist/common/utils/address.d.ts +8 -0
- package/dist/common/utils/address.js +35 -0
- package/dist/common/utils/address.js.map +1 -0
- package/dist/common/utils/bytes.d.ts +9 -0
- package/dist/common/utils/bytes.js +34 -0
- package/dist/common/utils/bytes.js.map +1 -0
- package/dist/common/utils/chain.d.ts +19 -0
- package/dist/common/utils/chain.js +74 -0
- package/dist/common/utils/chain.js.map +1 -0
- package/dist/common/utils/formulae.d.ts +15 -0
- package/dist/common/utils/formulae.js +77 -0
- package/dist/common/utils/formulae.js.map +1 -0
- package/dist/common/utils/gmp.d.ts +4 -0
- package/dist/common/utils/gmp.js +14 -0
- package/dist/common/utils/gmp.js.map +1 -0
- package/dist/common/utils/math-lib.d.ts +9 -0
- package/dist/common/utils/math-lib.js +38 -0
- package/dist/common/utils/math-lib.js.map +1 -0
- package/dist/common/utils/messages.d.ts +7 -0
- package/dist/common/utils/messages.js +93 -0
- package/dist/common/utils/messages.js.map +1 -0
- package/dist/common/utils/token.d.ts +2 -0
- package/dist/common/utils/token.js +5 -0
- package/dist/common/utils/token.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +38 -0
- package/dist/index.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/xchain/core/folks-core.d.ts +24 -0
- package/dist/xchain/core/folks-core.js +100 -0
- package/dist/xchain/core/folks-core.js.map +1 -0
- package/dist/xchain/modules/folks-account.d.ts +30 -0
- package/dist/xchain/modules/folks-account.js +205 -0
- package/dist/xchain/modules/folks-account.js.map +1 -0
- package/dist/xchain/modules/folks-gmp.d.ts +12 -0
- package/dist/xchain/modules/folks-gmp.js +53 -0
- package/dist/xchain/modules/folks-gmp.js.map +1 -0
- package/dist/xchain/modules/folks-loan.d.ts +68 -0
- package/dist/xchain/modules/folks-loan.js +598 -0
- package/dist/xchain/modules/folks-loan.js.map +1 -0
- package/dist/xchain/modules/folks-oracle.d.ts +4 -0
- package/dist/xchain/modules/folks-oracle.js +11 -0
- package/dist/xchain/modules/folks-oracle.js.map +1 -0
- package/dist/xchain/modules/folks-pool.d.ts +5 -0
- package/dist/xchain/modules/folks-pool.js +8 -0
- package/dist/xchain/modules/folks-pool.js.map +1 -0
- package/dist/xchain/modules/index.d.ts +5 -0
- package/dist/xchain/modules/index.js +6 -0
- package/dist/xchain/modules/index.js.map +1 -0
- package/package.json +79 -0
- package/src/chains/evm/common/constants/abi/ccip-data-adapter-abi.ts +613 -0
- package/src/chains/evm/common/constants/abi/erc-20-abi.ts +156 -0
- package/src/chains/evm/common/constants/abi/wormhole-data-adapter-abi.ts +620 -0
- package/src/chains/evm/common/constants/chain.ts +56 -0
- package/src/chains/evm/common/constants/contract.ts +7 -0
- package/src/chains/evm/common/constants/tokens.ts +39 -0
- package/src/chains/evm/common/types/chain.ts +23 -0
- package/src/chains/evm/common/types/contract.ts +7 -0
- package/src/chains/evm/common/types/gmp.ts +15 -0
- package/src/chains/evm/common/types/index.ts +3 -0
- package/src/chains/evm/common/types/module.ts +85 -0
- package/src/chains/evm/common/types/tokens.ts +31 -0
- package/src/chains/evm/common/utils/chain.ts +20 -0
- package/src/chains/evm/common/utils/contract.ts +84 -0
- package/src/chains/evm/common/utils/gmp.ts +24 -0
- package/src/chains/evm/common/utils/message.ts +496 -0
- package/src/chains/evm/common/utils/provider.ts +32 -0
- package/src/chains/evm/common/utils/tokens.ts +52 -0
- package/src/chains/evm/hub/constants/abi/account-manager-abi.ts +685 -0
- package/src/chains/evm/hub/constants/abi/bridge-router-hub-abi.ts +763 -0
- package/src/chains/evm/hub/constants/abi/hub-abi.ts +186 -0
- package/src/chains/evm/hub/constants/abi/hub-pool-abi.ts +1345 -0
- package/src/chains/evm/hub/constants/abi/loan-manager-abi.ts +1039 -0
- package/src/chains/evm/hub/constants/abi/oracle-manager-abi.ts +388 -0
- package/src/chains/evm/hub/constants/chain.ts +130 -0
- package/src/chains/evm/hub/modules/folks-hub-account.ts +137 -0
- package/src/chains/evm/hub/modules/folks-hub-gmp.ts +105 -0
- package/src/chains/evm/hub/modules/folks-hub-loan.ts +603 -0
- package/src/chains/evm/hub/modules/folks-hub-oracle.ts +38 -0
- package/src/chains/evm/hub/modules/folks-hub-pool.ts +171 -0
- package/src/chains/evm/hub/modules/index.ts +5 -0
- package/src/chains/evm/hub/types/account.ts +27 -0
- package/src/chains/evm/hub/types/chain.ts +16 -0
- package/src/chains/evm/hub/types/loan.ts +147 -0
- package/src/chains/evm/hub/types/oracle.ts +6 -0
- package/src/chains/evm/hub/types/pool.ts +66 -0
- package/src/chains/evm/hub/types/token.ts +10 -0
- package/src/chains/evm/hub/utils/chain.ts +41 -0
- package/src/chains/evm/hub/utils/contract.ts +98 -0
- package/src/chains/evm/hub/utils/events.ts +112 -0
- package/src/chains/evm/hub/utils/loan.ts +60 -0
- package/src/chains/evm/spoke/constants/abi/bridge-router-spoke-abi.ts +753 -0
- package/src/chains/evm/spoke/constants/abi/spoke-common-abi.ts +709 -0
- package/src/chains/evm/spoke/constants/abi/spoke-token-abi.ts +642 -0
- package/src/chains/evm/spoke/modules/folks-evm-account.ts +228 -0
- package/src/chains/evm/spoke/modules/folks-evm-gmp.ts +105 -0
- package/src/chains/evm/spoke/modules/folks-evm-loan.ts +721 -0
- package/src/chains/evm/spoke/modules/index.ts +3 -0
- package/src/chains/evm/spoke/types/pool.ts +7 -0
- package/src/chains/evm/spoke/utils/contract.ts +74 -0
- package/src/common/constants/adapter.ts +5 -0
- package/src/common/constants/bytes.ts +6 -0
- package/src/common/constants/chain.ts +227 -0
- package/src/common/constants/gmp.ts +38 -0
- package/src/common/constants/lending.ts +3 -0
- package/src/common/constants/message.ts +4 -0
- package/src/common/constants/pool.ts +11 -0
- package/src/common/constants/token.ts +3 -0
- package/src/common/types/adapter.ts +38 -0
- package/src/common/types/address.ts +11 -0
- package/src/common/types/brand.ts +3 -0
- package/src/common/types/chain.ts +35 -0
- package/src/common/types/core.ts +31 -0
- package/src/common/types/gmp.ts +22 -0
- package/src/common/types/lending.ts +5 -0
- package/src/common/types/message.ts +330 -0
- package/src/common/types/module.ts +42 -0
- package/src/common/types/token.ts +50 -0
- package/src/common/utils/adapter.ts +75 -0
- package/src/common/utils/address.ts +49 -0
- package/src/common/utils/bytes.ts +46 -0
- package/src/common/utils/chain.ts +103 -0
- package/src/common/utils/formulae.ts +124 -0
- package/src/common/utils/gmp.ts +16 -0
- package/src/common/utils/math-lib.ts +46 -0
- package/src/common/utils/messages.ts +192 -0
- package/src/common/utils/token.ts +7 -0
- package/src/index.ts +47 -0
- package/src/utils/exhaustive-check.ts +3 -0
- package/src/xchain/core/folks-core.ts +128 -0
- package/src/xchain/modules/folks-account.ts +385 -0
- package/src/xchain/modules/folks-gmp.ts +129 -0
- package/src/xchain/modules/folks-loan.ts +1175 -0
- package/src/xchain/modules/folks-oracle.ts +15 -0
- package/src/xchain/modules/folks-pool.ts +11 -0
- package/src/xchain/modules/index.ts +5 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { FolksTokenId } from "../../../../common/types/token.js";
|
|
2
|
+
|
|
3
|
+
import { EVM_FOLKS_CHAIN_ID } from "./chain.js";
|
|
4
|
+
|
|
5
|
+
import type { EvmFolksChainId } from "../types/chain.js";
|
|
6
|
+
import type { Erc20ContractSlot } from "../types/tokens.js";
|
|
7
|
+
|
|
8
|
+
export const CONTRACT_SLOT: Partial<
|
|
9
|
+
Record<EvmFolksChainId, { erc20: Partial<Record<FolksTokenId, Erc20ContractSlot>> }>
|
|
10
|
+
> = {
|
|
11
|
+
[EVM_FOLKS_CHAIN_ID.AVALANCHE_FUJI]: {
|
|
12
|
+
erc20: {
|
|
13
|
+
[FolksTokenId.USDC]: {
|
|
14
|
+
balanceOf: 9n,
|
|
15
|
+
allowance: 10n,
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
[EVM_FOLKS_CHAIN_ID.BASE_SEPOLIA]: {
|
|
20
|
+
erc20: {
|
|
21
|
+
[FolksTokenId.USDC]: {
|
|
22
|
+
balanceOf: 9n,
|
|
23
|
+
allowance: 10n,
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
[EVM_FOLKS_CHAIN_ID.ETHEREUM_SEPOLIA]: {
|
|
28
|
+
erc20: {
|
|
29
|
+
[FolksTokenId.USDC]: {
|
|
30
|
+
balanceOf: 9n,
|
|
31
|
+
allowance: 10n,
|
|
32
|
+
},
|
|
33
|
+
[FolksTokenId.LINK_eth_sep]: {
|
|
34
|
+
balanceOf: 0n,
|
|
35
|
+
allowance: 1n,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
} as const;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
EVM_CHAIN_ID,
|
|
3
|
+
MAINNET_EVM_CHAIN_ID,
|
|
4
|
+
TESTNET_EVM_CHAIN_ID,
|
|
5
|
+
EVM_CHAIN_NAMES,
|
|
6
|
+
MAINNET_EVM_CHAIN_NAMES,
|
|
7
|
+
TESTNET_EVM_CHAIN_NAMES,
|
|
8
|
+
EVM_FOLKS_CHAIN_ID,
|
|
9
|
+
MAINNET_EVM_FOLKS_CHAIN_ID,
|
|
10
|
+
TESTNET_EVM_FOLKS_CHAIN_ID,
|
|
11
|
+
} from "../constants/chain.js";
|
|
12
|
+
|
|
13
|
+
export type MainnetEvmChainName = (typeof MAINNET_EVM_CHAIN_NAMES)[number];
|
|
14
|
+
export type TestnetEvmChainName = (typeof TESTNET_EVM_CHAIN_NAMES)[number];
|
|
15
|
+
export type EvmChainName = (typeof EVM_CHAIN_NAMES)[number];
|
|
16
|
+
|
|
17
|
+
export type MainnetEvmChainId = (typeof MAINNET_EVM_CHAIN_ID)[keyof typeof MAINNET_EVM_CHAIN_ID];
|
|
18
|
+
export type TestnetEvmChainId = (typeof TESTNET_EVM_CHAIN_ID)[keyof typeof TESTNET_EVM_CHAIN_ID];
|
|
19
|
+
export type EvmChainId = (typeof EVM_CHAIN_ID)[keyof typeof EVM_CHAIN_ID];
|
|
20
|
+
|
|
21
|
+
export type MainnetEvmFolksChainId = (typeof MAINNET_EVM_FOLKS_CHAIN_ID)[keyof typeof MAINNET_EVM_FOLKS_CHAIN_ID];
|
|
22
|
+
export type TestnetEvmFolksChainId = (typeof TESTNET_EVM_FOLKS_CHAIN_ID)[keyof typeof TESTNET_EVM_FOLKS_CHAIN_ID];
|
|
23
|
+
export type EvmFolksChainId = (typeof EVM_FOLKS_CHAIN_ID)[keyof typeof EVM_FOLKS_CHAIN_ID];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Abi, GetContractReturnType, Client, GetContractEventsParameters } from "viem";
|
|
2
|
+
|
|
3
|
+
type OmitWrite<T> = Omit<T, "write">;
|
|
4
|
+
export type GetReadContractReturnType<TAbi extends Abi> = OmitWrite<GetContractReturnType<TAbi, Client>>;
|
|
5
|
+
|
|
6
|
+
export type EventParams = Pick<GetContractEventsParameters, "strict" | "fromBlock" | "toBlock">;
|
|
7
|
+
export type GetEventParams = { eventParams: EventParams };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { EvmAddress, GenericAddress } from "../../../../common/types/address.js";
|
|
2
|
+
import type { Hex } from "viem";
|
|
3
|
+
|
|
4
|
+
type CCIPTokenAmount = {
|
|
5
|
+
token: EvmAddress;
|
|
6
|
+
amount: bigint;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export type CCIPAny2EvmMessage = {
|
|
10
|
+
messageId: Hex;
|
|
11
|
+
sourceChainSelector: bigint;
|
|
12
|
+
sender: GenericAddress;
|
|
13
|
+
data: Hex;
|
|
14
|
+
destTokenAmounts: Array<CCIPTokenAmount>;
|
|
15
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { GenericAddress } from "../../../../common/types/address.js";
|
|
2
|
+
import type { MessageParams } from "../../../../common/types/message.js";
|
|
3
|
+
import type { SpokeTokenData } from "../../../../common/types/token.js";
|
|
4
|
+
import type { Hex } from "viem";
|
|
5
|
+
|
|
6
|
+
export type PrepareCall = {
|
|
7
|
+
msgValue: bigint;
|
|
8
|
+
gasLimit: bigint;
|
|
9
|
+
messageParams: MessageParams;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export type PrepareCreateAccountCall = {
|
|
13
|
+
spokeCommonAddress: GenericAddress;
|
|
14
|
+
} & PrepareCall;
|
|
15
|
+
|
|
16
|
+
export type PrepareInviteAddressCall = {
|
|
17
|
+
spokeCommonAddress: GenericAddress;
|
|
18
|
+
} & PrepareCall;
|
|
19
|
+
|
|
20
|
+
export type PrepareAcceptInviteAddressCall = {
|
|
21
|
+
spokeCommonAddress: GenericAddress;
|
|
22
|
+
} & PrepareCall;
|
|
23
|
+
|
|
24
|
+
export type PrepareUnregisterAddressCall = {
|
|
25
|
+
spokeCommonAddress: GenericAddress;
|
|
26
|
+
} & PrepareCall;
|
|
27
|
+
|
|
28
|
+
export type PrepareAddDelegateCall = {
|
|
29
|
+
spokeCommonAddress: GenericAddress;
|
|
30
|
+
} & PrepareCall;
|
|
31
|
+
|
|
32
|
+
export type PrepareRemoveDelegateCall = {
|
|
33
|
+
spokeCommonAddress: GenericAddress;
|
|
34
|
+
} & PrepareCall;
|
|
35
|
+
|
|
36
|
+
export type PrepareCreateLoanCall = {
|
|
37
|
+
spokeCommonAddress: GenericAddress;
|
|
38
|
+
} & PrepareCall;
|
|
39
|
+
|
|
40
|
+
export type PrepareDeleteLoanCall = {
|
|
41
|
+
spokeCommonAddress: GenericAddress;
|
|
42
|
+
} & PrepareCall;
|
|
43
|
+
|
|
44
|
+
export type PrepareCreateLoanAndDepositCall = {
|
|
45
|
+
spokeTokenData: SpokeTokenData;
|
|
46
|
+
} & PrepareCall;
|
|
47
|
+
|
|
48
|
+
export type PrepareDepositCall = {
|
|
49
|
+
spokeTokenData: SpokeTokenData;
|
|
50
|
+
} & PrepareCall;
|
|
51
|
+
|
|
52
|
+
export type PrepareWithdrawCall = {
|
|
53
|
+
spokeCommonAddress: GenericAddress;
|
|
54
|
+
} & PrepareCall;
|
|
55
|
+
|
|
56
|
+
export type PrepareBorrowCall = {
|
|
57
|
+
spokeCommonAddress: GenericAddress;
|
|
58
|
+
} & PrepareCall;
|
|
59
|
+
|
|
60
|
+
export type PrepareRepayCall = {
|
|
61
|
+
spokeTokenData: SpokeTokenData;
|
|
62
|
+
} & PrepareCall;
|
|
63
|
+
|
|
64
|
+
export type PrepareRepayWithCollateralCall = {
|
|
65
|
+
spokeCommonAddress: GenericAddress;
|
|
66
|
+
} & PrepareCall;
|
|
67
|
+
|
|
68
|
+
export type PrepareSwitchBorrowTypeCall = {
|
|
69
|
+
spokeCommonAddress: GenericAddress;
|
|
70
|
+
} & PrepareCall;
|
|
71
|
+
|
|
72
|
+
export type PrepareLiquidateCall = {
|
|
73
|
+
messageData: Hex;
|
|
74
|
+
hubAddress: GenericAddress;
|
|
75
|
+
} & Omit<PrepareCall, "messageParams" | "msgValue">;
|
|
76
|
+
|
|
77
|
+
export type PrepareRetryMessageCall = {
|
|
78
|
+
isHub: boolean;
|
|
79
|
+
bridgeRouterAddress: GenericAddress;
|
|
80
|
+
} & Omit<PrepareCall, "messageParams">;
|
|
81
|
+
|
|
82
|
+
export type PrepareReverseMessageCall = {
|
|
83
|
+
isHub: boolean;
|
|
84
|
+
bridgeRouterAddress: GenericAddress;
|
|
85
|
+
} & Omit<PrepareCall, "messageParams">;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { EvmFolksChainId } from "./chain.js";
|
|
2
|
+
import type { EvmAddress } from "../../../../common/types/address.js";
|
|
3
|
+
import type { FolksTokenId, TokenType } from "../../../../common/types/token.js";
|
|
4
|
+
|
|
5
|
+
export type Erc20ContractSlot = {
|
|
6
|
+
balanceOf: bigint;
|
|
7
|
+
allowance: bigint;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export type AllowanceStateOverride = {
|
|
11
|
+
erc20Address: EvmAddress;
|
|
12
|
+
stateDiff: Array<{
|
|
13
|
+
owner: EvmAddress;
|
|
14
|
+
spender: EvmAddress;
|
|
15
|
+
folksChainId: EvmFolksChainId;
|
|
16
|
+
folksTokenId: FolksTokenId;
|
|
17
|
+
tokenType: TokenType;
|
|
18
|
+
amount: bigint;
|
|
19
|
+
}>;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export type BalanceOfStateOverride = {
|
|
23
|
+
erc20Address: EvmAddress;
|
|
24
|
+
stateDiff: Array<{
|
|
25
|
+
owner: EvmAddress;
|
|
26
|
+
folksChainId: EvmFolksChainId;
|
|
27
|
+
folksTokenId: FolksTokenId;
|
|
28
|
+
tokenType: TokenType;
|
|
29
|
+
amount: bigint;
|
|
30
|
+
}>;
|
|
31
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { EVM_FOLKS_CHAIN_ID } from "../constants/chain.js";
|
|
2
|
+
|
|
3
|
+
import type { EvmAddress } from "../../../../common/types/address.js";
|
|
4
|
+
import type { EvmChainId } from "../types/chain.js";
|
|
5
|
+
import type { Account, WalletClient } from "viem";
|
|
6
|
+
|
|
7
|
+
export function getEvmSignerAddress(signer: WalletClient): EvmAddress {
|
|
8
|
+
if (signer.account?.address) return signer.account.address as EvmAddress;
|
|
9
|
+
throw new Error("EVM Signer address is not set");
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function getEvmSignerAccount(signer: WalletClient): Account {
|
|
13
|
+
if (signer.account) return signer.account;
|
|
14
|
+
throw new Error("EVM Signer account is not set");
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const isEvmChainId = (chainId: number): chainId is EvmChainId => {
|
|
18
|
+
// @ts-expect-error -- this is made on purpose to have the type predicate
|
|
19
|
+
return Object.values(EVM_FOLKS_CHAIN_ID).includes(chainId);
|
|
20
|
+
};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { BaseError, ContractFunctionRevertedError, encodeAbiParameters, getContract, keccak256 } from "viem";
|
|
2
|
+
|
|
3
|
+
import { ChainType } from "../../../../common/types/chain.js";
|
|
4
|
+
import { convertFromGenericAddress } from "../../../../common/utils/address.js";
|
|
5
|
+
import { CCIPDataAdapterAbi } from "../constants/abi/ccip-data-adapter-abi.js";
|
|
6
|
+
import { ERC20Abi } from "../constants/abi/erc-20-abi.js";
|
|
7
|
+
import { WormholeDataAdapterAbi } from "../constants/abi/wormhole-data-adapter-abi.js";
|
|
8
|
+
|
|
9
|
+
import { getEvmSignerAccount, getEvmSignerAddress } from "./chain.js";
|
|
10
|
+
|
|
11
|
+
import type { EvmAddress, GenericAddress } from "../../../../common/types/address.js";
|
|
12
|
+
import type { GetReadContractReturnType } from "../types/contract.js";
|
|
13
|
+
import type { Client, Hex, WalletClient } from "viem";
|
|
14
|
+
|
|
15
|
+
export function getERC20Contract(provider: Client, address: GenericAddress, signer: WalletClient) {
|
|
16
|
+
return getContract({
|
|
17
|
+
abi: ERC20Abi,
|
|
18
|
+
address: convertFromGenericAddress<ChainType.EVM>(address, ChainType.EVM),
|
|
19
|
+
client: { wallet: signer, public: provider },
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export async function sendERC20Approve(
|
|
24
|
+
provider: Client,
|
|
25
|
+
address: GenericAddress,
|
|
26
|
+
signer: WalletClient,
|
|
27
|
+
spender: EvmAddress,
|
|
28
|
+
amount: bigint,
|
|
29
|
+
): Promise<Hex | null> {
|
|
30
|
+
const erc20 = getERC20Contract(provider, address, signer);
|
|
31
|
+
const allowance = await erc20.read.allowance([getEvmSignerAddress(signer), spender]);
|
|
32
|
+
|
|
33
|
+
// approve if not enough
|
|
34
|
+
if (allowance < amount)
|
|
35
|
+
return await erc20.write.approve([spender, BigInt(amount)], {
|
|
36
|
+
account: getEvmSignerAccount(signer),
|
|
37
|
+
chain: signer.chain,
|
|
38
|
+
});
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function getWormholeDataAdapterContract(
|
|
43
|
+
provider: Client,
|
|
44
|
+
address: GenericAddress,
|
|
45
|
+
): GetReadContractReturnType<typeof WormholeDataAdapterAbi> {
|
|
46
|
+
return getContract({
|
|
47
|
+
abi: WormholeDataAdapterAbi,
|
|
48
|
+
address: convertFromGenericAddress<ChainType.EVM>(address, ChainType.EVM),
|
|
49
|
+
client: { public: provider },
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function getCCIPDataAdapterContract(
|
|
54
|
+
provider: Client,
|
|
55
|
+
address: GenericAddress,
|
|
56
|
+
): GetReadContractReturnType<typeof CCIPDataAdapterAbi> {
|
|
57
|
+
return getContract({
|
|
58
|
+
abi: CCIPDataAdapterAbi,
|
|
59
|
+
address: convertFromGenericAddress<ChainType.EVM>(address, ChainType.EVM),
|
|
60
|
+
client: { public: provider },
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function extractRevertErrorName(err: unknown): string | undefined {
|
|
65
|
+
if (err instanceof BaseError) {
|
|
66
|
+
const revertError = err.walk((err) => err instanceof ContractFunctionRevertedError);
|
|
67
|
+
if (revertError instanceof ContractFunctionRevertedError && revertError.data?.errorName) {
|
|
68
|
+
return revertError.data.errorName;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function getBalanceOfSlotHash(address: EvmAddress, slot: bigint) {
|
|
74
|
+
return keccak256(encodeAbiParameters([{ type: "address" }, { type: "uint256" }], [address, slot]));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function getAllowanceSlotHash(owner: EvmAddress, spender: EvmAddress, slot: bigint) {
|
|
78
|
+
return keccak256(
|
|
79
|
+
encodeAbiParameters(
|
|
80
|
+
[{ type: "address" }, { type: "bytes32" }],
|
|
81
|
+
[spender, keccak256(encodeAbiParameters([{ type: "address" }, { type: "uint256" }], [owner, slot]))],
|
|
82
|
+
),
|
|
83
|
+
);
|
|
84
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { concat } from "viem";
|
|
2
|
+
|
|
3
|
+
import { UINT16_LENGTH, UINT256_LENGTH } from "../../../../common/constants/bytes.js";
|
|
4
|
+
import { convertNumberToBytes } from "../../../../common/utils/bytes.js";
|
|
5
|
+
|
|
6
|
+
import type { GenericAddress } from "../../../../common/types/address.js";
|
|
7
|
+
import type { AdapterType } from "../../../../common/types/message.js";
|
|
8
|
+
import type { Hex } from "viem";
|
|
9
|
+
|
|
10
|
+
export function encodeEvmPayloadWithMetadata(
|
|
11
|
+
returnAdapterId: AdapterType,
|
|
12
|
+
returnGasLimit: bigint,
|
|
13
|
+
sender: GenericAddress,
|
|
14
|
+
handler: GenericAddress,
|
|
15
|
+
payload: Hex,
|
|
16
|
+
): Hex {
|
|
17
|
+
return concat([
|
|
18
|
+
convertNumberToBytes(returnAdapterId, UINT16_LENGTH),
|
|
19
|
+
convertNumberToBytes(returnGasLimit, UINT256_LENGTH),
|
|
20
|
+
sender,
|
|
21
|
+
handler,
|
|
22
|
+
payload,
|
|
23
|
+
]);
|
|
24
|
+
}
|