All notable changes to this project will be documented in this file.
- Updated OFAC list link and contents
- The markets initialization in AsyncClient has been modified to get markets information from the chain endpoints instead of the Indexer endpoints
- Removed the legacy deprecated markets and tokens initialization using the denoms INI files in the SDK. Removed also the INI files from the SDK
- Fixed link to official
ofac.json
file - Refreshed the local copy of the file after the update
- Fixed logic to get the absolute ofac.json file path
- Added OFAC restricted addresses validations
- Updated reference gas cost for messages in the gas limit estimator after chain upgrade v1.13
- Fixed issue in the
listen_derivative_market_updates
method in theAsyncClient
class
- Added support for the following messages in the chain "exchange" module:
- MsgDecreasePositionMargin
- MsgUpdateSpotMarket
- MsgUpdateDerivativeMarket
- MsgAuthorizeStakeGrants
- MsgActivateStakeGrant
- Support for all queries in the chain "tendermint" module
- Support for all queries in the "IBC Transfer" module
- Support for all queries in the "IBC Channel" module
- Support for all queries in the "IBC Client" module
- Support for all queries in the "IBC Connection" module
- Support for all queries and messages in the chain "permissions" module
- Tokens initialization from the official tokens list in https://github.com/InjectiveLabs/injective-lists
- Updated all proto definitions based on chain upgrade to v1.13
- Refactored cookies management logic to use all gRPC calls' responses to update the current cookies
- Fixed all import statements in pyinjective.proto modules to make them explicit
- Fixed all import statements in pyinjective.proto modules to make them explicit
- Changed parameter
key
from the PaginationOption class. - Fixed an error when using the next page key in PaginationOption, causing incorrect pagination responses.
- Fixed
protobuf
dependency version to "<5" to for the v1.4 branch, because newer versions require a code refactoring (done in v1.5) - Fixed
protobuf
dependency version to "<5" for the v1.4 branch because newer versions require a code refactoring (done in v1.5)
- Updated
protobuf
dependency version to ">=5.26.1"
- Updated calls to
json_format.MessageToDict
for compliance with the new version of theprotobuf
library
- Refactoring in Network class to support mixed secure and insecure endpoints.
- Marked the Network parameter
use_secure_connection
as deprecated.
- Updated
aiohttp
dependency version to ">=3.9.2" to solve a security vulnerability detected by Dependabot
- Updates example scripts that were still using deprecated methods
- Added support for all queries and messages in the chain 'distribution' module
- Added support for all queries and messages in the chain 'exchange' module
- Use of python-dotenv in all example scripts to load private keys from a .env file
- Updated cookie assistant logic to support the Indexer exchange server not using cookies and the chain server using them
- Removed
asyncio
from the dependencies
- Updated reference gas cost for all messages in the gas estimator
- Included different calculation for Post Only orders
- Updated all proto definitions for Injective Core 1.12.1
- Updated the logic to create a
MsgLiquidatePosition
message
- Added new functions in all Market classes to convert values from extended chain format (the ones provided by chain streams) into human-readable format
- Updated proto definitions for Indexer node using version v1.12.79.1
- Updated market and tokens INI configuration files
- Added low level API components for all modules (chain, exchain and explorer) to make the Python SDK compatible with the TypeScript SDK.
- Added support for all wasm module messages.
- Added support for all token factory module messages.
- Updated proto definitions to injective-core v1.12.0 and injective-indexer v1.12.72
- Added new functions in AsyncClient to interact with chain, exchange and explorer using the low level API components
- Marked old function sin AsyncClient as deprecated (the functions will be removed in a future version)
- Updated all API examples to use the new AsyncClient functions
- Added logic to support use of Client Order ID (CID) new identifier in OrderInfo
- New chain stream support
- Remove support for
sentry
nodes in mainnet network. The only supported node option in mainnet islb
- Migrated all proto objects dependency to support chain version 1.22
- Moved changelog from the README.md file to its own CHANGELOG.md file
- Remove
aiocron
dependency. Use plain asyncio tasks to solve the timeout height synchronization - Updated the gas fee buffer used to calculate fee consumption in all examples
- Refactored logic in AsyncClient to load markets and tokens, to ensure there are no duplicated tokens with the same denom
- Synchronized markets and tokens config files to add KIRA/INJ, NINJA/INJ, KATANA/INJ, BRETT/INJ and nINJ/INJ spot markets
- Synchronized markets and tokens config files to add SEI/USDT and TIA/USDT perpetual markets
- Synchronized markets and tokens config files to add SOL/USDT spot market
- Synchronized markets and tokens config files to add USDY/USDT and WHALE/USDT spot markets
- Synchronized markets and tokens config files to add PYTH/USDT spot market
- Added PYTH/USDT PERP market info in mainnet metadata ini file
- Synchronized denom ini files with Indexer information for mainnet, testnet and devnet to include TALIS/INJ and KUJI/USDT markets
- Updated fetch_metadata script (to synchronize denom ini files) to reuse logic in AsyncClient
- Synchronized denom ini files with Indexer information for mainnet, testnet and devnet
- Added TIA/USDT spot market in mainnet and testnet ini file
- Updated TIA/USDT-30NOV2023 market id in denoms_mainnet.ini file
- Added fix to the grpc import error in Mac with M1 and M2 chips
- Added new spot markets in mainnet ini file: KAVA/USDT, USDTkv/USDT
- Added new derivative markets in mainnet ini file: TIA/USDT-30NOV2023, AXL/USDT, BTC/USDTkv, ETH/USDTkv
- Improvement in broadcaster to initialize the account sequence number and the timeout height only when required
- Replace Pipenv with Poetry
- Add pre-commit validations to the project
- Add a GitHub workflow to run all tests and calculate coverage for each PR
- Added NEOK/USDT and ORAI/USDT spot markets to the mainnet .ini file
- Added methods to SpotMarket, DerivativeMarket and BianaryOptionMarket to translate chain prices and quantities to human-readable format.
- Fix dependency issue in setup.py.
- Add web3 library as a dependency for the project.
- Moved the configuration to use a secure or insecure connection inside the Network class. The AsyncClient's
insecure
parameter is no longer used for anything and will be removed in the future. - Made the new load balanced bare-metal node the default one for mainnet (it is called
lb
). The legacy one (load balanced k8s node) is calledlb_k8s
- Refactor Composer to be created with all the markets and tokens. The Composer now uses the real markets and tokens to convert human-readable values to chain format
- The Composer can still be instantiated without markets and tokens. When markets and tokens are not provided the Composer loads the required information from the Denoms used in previous versions
- Change in AsyncClient to be able to create Composer instances for the client network, markets and tokens
- Examples have been adapted to create Composer instances using the AsyncClient
- Added new nodes (bare-metal load balancing nodes) for mainnet and testnet
- Deprecated the kubernetes load balanced nodes for testnet
- Refactored the cookies management logic into a cookie assistant. Added the required logic to support the new cookies format for bare-metal load balanced nodes
- Removed class Client. The only supported now is the async version called AsyncClient.
- Fixed Testnet network URLs
- Synchronization of denoms configuration files.
- Added a new gas limit calculation for the TransactionBroadcaster that estimates the value based on the messages in the transaction (without running the transaction simulation).
- Add NBLA
- Fixed Testnet network URLs
- Include implementation of the TransactionBroadcaster, to simplify the transaction creation and broadcasting process.
- ADD SEI/USDT in metadata
- Added the required logic in the MsgSubaccountTransfer message to translate amounts and token into the correct amount and token name representation for the chain
- Synchronized decimals for ATOM and WETH in Testnet with the configuration provided by the indexer
- Add FRCOIN testnet
- Removed from AsyncClient all references to the deprecated OrderBook RPC endpoints (replaced them with OrderBookV2)
- Updated all orderbook examples
- Removed references to pysha3 library (and also eip712-struct that required it) and replaced it with other implementation to allow the project to work with Python 3.11
- Updated sentry nodes LCD URL, for each sentry node to use its own service
- Removed
k8s
from the list of supported mainnet nodes (lb
should be used instead)
- Change logging logic to use different loggers for each module and class
- Solved issue preventing requesting spot and derivative historical orders for more than one market_id
- Add
pytest
as a development dependency to implement and run unit tests
- Update the code to the new structure of transaction responses
- Update the code to the new structure of transaction simulation responses
- Fix margin calculation in utils
- Remove version deps from Pipfile
- Add MsgUnderwrite, MsgRequestRedemption in Composer
- Add MsgCreateInsuranceFund in Composer
- Re-gen mainnet denoms
- Add MsgExecuteContract in Composer
- Add wMATIC
- Add OrderbookV2 method in async client
- Add ARB/USDT
- Deprecate K8S and set LB as default
- Proto re-gen
- Add USDCfr
- Add LDO
- Set default testnet endpoints to K8S
- Remove LB config for testnet
- Fix relative imports in composer
- Add AccountPortfolio & StreamAccountPortfolio
- Add new testnet endpoints
- Re-gen mainnet denoms
- Remove explicit versions from protobuf and grpcio-tools dependencies
- Re-gen mainnet denoms
- Change default network to LB
- Re-gen mainnet denoms
- Re-gen mainnet denoms
- Re-gen proto
- Add orderbook snaphot methods
- Re-gen mainnet denoms
- Re-gen mainnet denoms
- Fix margin conversion for binary options
- Add skip/limit to BinaryOptionsMarketsRequest
- Re-gen proto
- Fix MsgRewardsOptOut
- Remove pysha3 dependency
- Add grpc_explorer_endpoint in Network
- Add explorer channel and stub
BREAKING CHANGES
- Clients using Custom Network must now set grpc_explorer_endpoint during init