diff --git a/Makefile b/Makefile index 18a875d0..21e230ae 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ gen: gen-client gen-client: copy-proto @for dir in $(PROTO_DIRS); do \ mkdir -p ./pyinjective/$${dir}; \ - python3.10 -m grpc_tools.protoc \ + python3 -m grpc_tools.protoc \ -I proto \ --python_out=./pyinjective/proto \ --grpc_python_out=./pyinjective/proto \ @@ -34,4 +34,7 @@ copy-proto: cp "$${file}" proto/exchange/; \ done -.PHONY: all gen gen-client copy-proto +tests: + pytest -v tests/** + +.PHONY: all gen gen-client copy-proto tests diff --git a/Pipfile b/Pipfile index 956c5a05..b65021b0 100644 --- a/Pipfile +++ b/Pipfile @@ -22,6 +22,8 @@ websockets = "*" urllib3 = "<2" [dev-packages] +pytest = "*" +pytest-asyncio = "*" [requires] python_version = "3.9" diff --git a/Pipfile.lock b/Pipfile.lock index 8f821441..488b6277 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1090,5 +1090,62 @@ "version": "==1.9.2" } }, - "develop": {} + "develop": { + "exceptiongroup": { + "hashes": [ + "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e", + "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785" + ], + "markers": "python_version < '3.11'", + "version": "==1.1.1" + }, + "iniconfig": { + "hashes": [ + "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", + "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374" + ], + "markers": "python_version >= '3.7'", + "version": "==2.0.0" + }, + "packaging": { + "hashes": [ + "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61", + "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f" + ], + "markers": "python_version >= '3.7'", + "version": "==23.1" + }, + "pluggy": { + "hashes": [ + "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159", + "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3" + ], + "markers": "python_version >= '3.6'", + "version": "==1.0.0" + }, + "pytest": { + "hashes": [ + "sha256:3799fa815351fea3a5e96ac7e503a96fa51cc9942c3753cda7651b93c1cfa362", + "sha256:434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3" + ], + "index": "pypi", + "version": "==7.3.1" + }, + "pytest-asyncio": { + "hashes": [ + "sha256:2b38a496aef56f56b0e87557ec313e11e1ab9276fc3863f6a7be0f1d0e415e1b", + "sha256:f2b3366b7cd501a4056858bd39349d5af19742aed2d81660b7998b6341c7eb9c" + ], + "index": "pypi", + "version": "==0.21.0" + }, + "tomli": { + "hashes": [ + "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", + "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" + ], + "markers": "python_version < '3.11'", + "version": "==2.0.1" + } + } } diff --git a/README.md b/README.md index 27359f20..74310d41 100644 --- a/README.md +++ b/README.md @@ -76,8 +76,22 @@ python pyinjective/fetch_metadata.py Note that the [sync client](https://github.com/InjectiveLabs/sdk-python/blob/master/pyinjective/client.py) has been deprecated as of April 18, 2022. If you are using the sync client please make sure to transition to the [async client](https://github.com/InjectiveLabs/sdk-python/blob/master/pyinjective/async_client.py), for more information read [here](https://github.com/InjectiveLabs/sdk-python/issues/101) +5. Install the development environment (requires `pipenv`) +``` +pipenv install -d +``` + +6. Run all unit tests in a development environment +``` +make tests +``` ### Changelogs +**0.6.4** +* 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 + **0.6.3.3** * Update the code to the new structure of transaction responses diff --git a/compatibility-tests/tests.py b/compatibility-tests/tests.py index 98feaed1..aba3b682 100644 --- a/compatibility-tests/tests.py +++ b/compatibility-tests/tests.py @@ -204,5 +204,4 @@ async def post_tx(tx_json: str): return resp['txhash'] if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) \ No newline at end of file diff --git a/examples/SendToInjective.py b/examples/SendToInjective.py index fdfdfef7..7a27841b 100644 --- a/examples/SendToInjective.py +++ b/examples/SendToInjective.py @@ -34,5 +34,4 @@ async def main() -> None: receiver=receiver, amount=amount, maxFeePerGas=maxFeePerGas_Gwei, maxPriorityFeePerGas=maxPriorityFeePerGas_Gwei, data=data, peggo_abi=peggo_abi) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/0_LocalOrderHash.py b/examples/chain_client/0_LocalOrderHash.py index 732e2bc0..a43cffee 100644 --- a/examples/chain_client/0_LocalOrderHash.py +++ b/examples/chain_client/0_LocalOrderHash.py @@ -247,5 +247,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/13_MsgIncreasePositionMargin.py b/examples/chain_client/13_MsgIncreasePositionMargin.py index 091263b0..6d3926ec 100644 --- a/examples/chain_client/13_MsgIncreasePositionMargin.py +++ b/examples/chain_client/13_MsgIncreasePositionMargin.py @@ -74,5 +74,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/15_MsgWithdraw.py b/examples/chain_client/15_MsgWithdraw.py index c02d163a..74fc8bce 100644 --- a/examples/chain_client/15_MsgWithdraw.py +++ b/examples/chain_client/15_MsgWithdraw.py @@ -84,5 +84,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/16_MsgSubaccountTransfer.py b/examples/chain_client/16_MsgSubaccountTransfer.py index a1c83ddb..6d02e5c2 100644 --- a/examples/chain_client/16_MsgSubaccountTransfer.py +++ b/examples/chain_client/16_MsgSubaccountTransfer.py @@ -72,5 +72,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/17_MsgBatchUpdateOrders.py b/examples/chain_client/17_MsgBatchUpdateOrders.py index b5c05bce..7ec36bd0 100644 --- a/examples/chain_client/17_MsgBatchUpdateOrders.py +++ b/examples/chain_client/17_MsgBatchUpdateOrders.py @@ -157,5 +157,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/18_MsgBid.py b/examples/chain_client/18_MsgBid.py index 1b4cc5d0..35ab0256 100644 --- a/examples/chain_client/18_MsgBid.py +++ b/examples/chain_client/18_MsgBid.py @@ -67,5 +67,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/19_MsgGrant.py b/examples/chain_client/19_MsgGrant.py index 38d7181c..da9fbbb5 100644 --- a/examples/chain_client/19_MsgGrant.py +++ b/examples/chain_client/19_MsgGrant.py @@ -84,5 +84,4 @@ async def main() -> None: if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/1_MsgSend.py b/examples/chain_client/1_MsgSend.py index 0348bb80..f3a48769 100644 --- a/examples/chain_client/1_MsgSend.py +++ b/examples/chain_client/1_MsgSend.py @@ -70,5 +70,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/20_MsgExec.py b/examples/chain_client/20_MsgExec.py index 4f9409e6..8aafd5d4 100644 --- a/examples/chain_client/20_MsgExec.py +++ b/examples/chain_client/20_MsgExec.py @@ -92,5 +92,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/21_MsgRevoke.py b/examples/chain_client/21_MsgRevoke.py index 17618243..b01d799c 100644 --- a/examples/chain_client/21_MsgRevoke.py +++ b/examples/chain_client/21_MsgRevoke.py @@ -69,5 +69,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/22_MsgSendToEth.py b/examples/chain_client/22_MsgSendToEth.py index f56e60ec..91ecceb3 100644 --- a/examples/chain_client/22_MsgSendToEth.py +++ b/examples/chain_client/22_MsgSendToEth.py @@ -78,5 +78,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/23_MsgRelayPriceFeedPrice.py b/examples/chain_client/23_MsgRelayPriceFeedPrice.py index ca2adbd0..592e993e 100644 --- a/examples/chain_client/23_MsgRelayPriceFeedPrice.py +++ b/examples/chain_client/23_MsgRelayPriceFeedPrice.py @@ -74,5 +74,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/24_MsgRewardsOptOut.py b/examples/chain_client/24_MsgRewardsOptOut.py index 7ffd317f..eb413004 100644 --- a/examples/chain_client/24_MsgRewardsOptOut.py +++ b/examples/chain_client/24_MsgRewardsOptOut.py @@ -66,5 +66,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/25_MsgDelegate.py b/examples/chain_client/25_MsgDelegate.py index aab5b4e3..fb78dba8 100644 --- a/examples/chain_client/25_MsgDelegate.py +++ b/examples/chain_client/25_MsgDelegate.py @@ -71,5 +71,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/26_MsgWithdrawDelegatorReward.py b/examples/chain_client/26_MsgWithdrawDelegatorReward.py index 563bf057..a1b955a7 100644 --- a/examples/chain_client/26_MsgWithdrawDelegatorReward.py +++ b/examples/chain_client/26_MsgWithdrawDelegatorReward.py @@ -69,5 +69,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/27_Grants.py b/examples/chain_client/27_Grants.py index 7f219304..7f16ecac 100644 --- a/examples/chain_client/27_Grants.py +++ b/examples/chain_client/27_Grants.py @@ -14,5 +14,4 @@ async def main() -> None: print(authorizations) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) \ No newline at end of file diff --git a/examples/chain_client/28_BankBalances.py b/examples/chain_client/28_BankBalances.py index 7be067b0..6a185ccc 100644 --- a/examples/chain_client/28_BankBalances.py +++ b/examples/chain_client/28_BankBalances.py @@ -12,5 +12,4 @@ async def main() -> None: print(all_bank_balances) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) \ No newline at end of file diff --git a/examples/chain_client/29_BankBalance.py b/examples/chain_client/29_BankBalance.py index 01196448..aab01086 100644 --- a/examples/chain_client/29_BankBalance.py +++ b/examples/chain_client/29_BankBalance.py @@ -13,5 +13,4 @@ async def main() -> None: print(bank_balance) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) \ No newline at end of file diff --git a/examples/chain_client/2_MsgDeposit.py b/examples/chain_client/2_MsgDeposit.py index c506b9ae..bcb6f78e 100644 --- a/examples/chain_client/2_MsgDeposit.py +++ b/examples/chain_client/2_MsgDeposit.py @@ -70,5 +70,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/30_ExternalTransfer.py b/examples/chain_client/30_ExternalTransfer.py index b91a92a4..26defc09 100644 --- a/examples/chain_client/30_ExternalTransfer.py +++ b/examples/chain_client/30_ExternalTransfer.py @@ -72,5 +72,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/31_MsgCreateBinaryOptionsLimitOrder.py b/examples/chain_client/31_MsgCreateBinaryOptionsLimitOrder.py index 50cb82e5..ab79d52a 100644 --- a/examples/chain_client/31_MsgCreateBinaryOptionsLimitOrder.py +++ b/examples/chain_client/31_MsgCreateBinaryOptionsLimitOrder.py @@ -87,5 +87,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/32_MsgCreateBinaryOptionsMarketOrder.py b/examples/chain_client/32_MsgCreateBinaryOptionsMarketOrder.py index c87218e1..31d9cf04 100644 --- a/examples/chain_client/32_MsgCreateBinaryOptionsMarketOrder.py +++ b/examples/chain_client/32_MsgCreateBinaryOptionsMarketOrder.py @@ -82,5 +82,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/33_MsgCancelBinaryOptionsOrder.py b/examples/chain_client/33_MsgCancelBinaryOptionsOrder.py index 5c8c4335..ca51d084 100644 --- a/examples/chain_client/33_MsgCancelBinaryOptionsOrder.py +++ b/examples/chain_client/33_MsgCancelBinaryOptionsOrder.py @@ -78,5 +78,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/34_MsgAdminUpdateBinaryOptionsMarket.py b/examples/chain_client/34_MsgAdminUpdateBinaryOptionsMarket.py index 641b13ad..2f665919 100644 --- a/examples/chain_client/34_MsgAdminUpdateBinaryOptionsMarket.py +++ b/examples/chain_client/34_MsgAdminUpdateBinaryOptionsMarket.py @@ -83,5 +83,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/35_MsgInstantBinaryOptionsMarketLaunch.py b/examples/chain_client/35_MsgInstantBinaryOptionsMarketLaunch.py index 4009e2d0..3b12ab87 100644 --- a/examples/chain_client/35_MsgInstantBinaryOptionsMarketLaunch.py +++ b/examples/chain_client/35_MsgInstantBinaryOptionsMarketLaunch.py @@ -85,5 +85,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/36_MsgRelayProviderPrices.py b/examples/chain_client/36_MsgRelayProviderPrices.py index e5b6e832..a579fb6a 100644 --- a/examples/chain_client/36_MsgRelayProviderPrices.py +++ b/examples/chain_client/36_MsgRelayProviderPrices.py @@ -78,5 +78,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/37_GetTx.py b/examples/chain_client/37_GetTx.py index 92f95dac..2e2487bc 100644 --- a/examples/chain_client/37_GetTx.py +++ b/examples/chain_client/37_GetTx.py @@ -12,5 +12,4 @@ async def main() -> None: print(tx_logs) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) \ No newline at end of file diff --git a/examples/chain_client/38_StreamEventOrderFail.py b/examples/chain_client/38_StreamEventOrderFail.py index ac3a253a..1b3f760f 100644 --- a/examples/chain_client/38_StreamEventOrderFail.py +++ b/examples/chain_client/38_StreamEventOrderFail.py @@ -38,5 +38,4 @@ async def main() -> None: print(dict) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/39_Account.py b/examples/chain_client/39_Account.py index f987250a..50d30c76 100644 --- a/examples/chain_client/39_Account.py +++ b/examples/chain_client/39_Account.py @@ -12,5 +12,4 @@ async def main() -> None: print(acc) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/3_MsgCreateSpotLimitOrder.py b/examples/chain_client/3_MsgCreateSpotLimitOrder.py index 431a9455..04cb0ffa 100644 --- a/examples/chain_client/3_MsgCreateSpotLimitOrder.py +++ b/examples/chain_client/3_MsgCreateSpotLimitOrder.py @@ -83,5 +83,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/40_MsgExecuteContract.py b/examples/chain_client/40_MsgExecuteContract.py index 9cb885b8..4661f4b4 100644 --- a/examples/chain_client/40_MsgExecuteContract.py +++ b/examples/chain_client/40_MsgExecuteContract.py @@ -76,5 +76,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) \ No newline at end of file diff --git a/examples/chain_client/41_MsgCreateInsuranceFund.py b/examples/chain_client/41_MsgCreateInsuranceFund.py index 05f4fcc6..255419b0 100644 --- a/examples/chain_client/41_MsgCreateInsuranceFund.py +++ b/examples/chain_client/41_MsgCreateInsuranceFund.py @@ -72,5 +72,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) \ No newline at end of file diff --git a/examples/chain_client/42_MsgUnderwrite.py b/examples/chain_client/42_MsgUnderwrite.py index 765550ba..49aa7313 100644 --- a/examples/chain_client/42_MsgUnderwrite.py +++ b/examples/chain_client/42_MsgUnderwrite.py @@ -68,5 +68,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) \ No newline at end of file diff --git a/examples/chain_client/43_MsgRequestRedemption.py b/examples/chain_client/43_MsgRequestRedemption.py index 36bffc0b..a37a774d 100644 --- a/examples/chain_client/43_MsgRequestRedemption.py +++ b/examples/chain_client/43_MsgRequestRedemption.py @@ -68,5 +68,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) \ No newline at end of file diff --git a/examples/chain_client/4_MsgCreateSpotMarketOrder.py b/examples/chain_client/4_MsgCreateSpotMarketOrder.py index d6cdf191..d851517c 100644 --- a/examples/chain_client/4_MsgCreateSpotMarketOrder.py +++ b/examples/chain_client/4_MsgCreateSpotMarketOrder.py @@ -82,5 +82,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/5_MsgCancelSpotOrder.py b/examples/chain_client/5_MsgCancelSpotOrder.py index a5844848..a347a54b 100644 --- a/examples/chain_client/5_MsgCancelSpotOrder.py +++ b/examples/chain_client/5_MsgCancelSpotOrder.py @@ -74,5 +74,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/6_MsgCreateDerivativeLimitOrder.py b/examples/chain_client/6_MsgCreateDerivativeLimitOrder.py index e89f456c..f53667b3 100644 --- a/examples/chain_client/6_MsgCreateDerivativeLimitOrder.py +++ b/examples/chain_client/6_MsgCreateDerivativeLimitOrder.py @@ -84,5 +84,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/7_MsgCreateDerivativeMarketOrder.py b/examples/chain_client/7_MsgCreateDerivativeMarketOrder.py index 50c6f00c..a8d456d1 100644 --- a/examples/chain_client/7_MsgCreateDerivativeMarketOrder.py +++ b/examples/chain_client/7_MsgCreateDerivativeMarketOrder.py @@ -83,5 +83,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/chain_client/8_MsgCancelDerivativeOrder.py b/examples/chain_client/8_MsgCancelDerivativeOrder.py index ba81ebe2..7abbf16a 100644 --- a/examples/chain_client/8_MsgCancelDerivativeOrder.py +++ b/examples/chain_client/8_MsgCancelDerivativeOrder.py @@ -74,5 +74,4 @@ async def main() -> None: print("gas fee: {} INJ".format(gas_fee)) if __name__ == "__main__": - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/accounts_rpc/1_StreamSubaccountBalance.py b/examples/exchange_client/accounts_rpc/1_StreamSubaccountBalance.py index 4c126f87..53d85f90 100644 --- a/examples/exchange_client/accounts_rpc/1_StreamSubaccountBalance.py +++ b/examples/exchange_client/accounts_rpc/1_StreamSubaccountBalance.py @@ -18,5 +18,4 @@ async def main() -> None: print(balance) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/accounts_rpc/2_SubaccountBalance.py b/examples/exchange_client/accounts_rpc/2_SubaccountBalance.py index c25acf99..61ef0396 100644 --- a/examples/exchange_client/accounts_rpc/2_SubaccountBalance.py +++ b/examples/exchange_client/accounts_rpc/2_SubaccountBalance.py @@ -16,5 +16,4 @@ async def main() -> None: print(balance) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/accounts_rpc/3_SubaccountsList.py b/examples/exchange_client/accounts_rpc/3_SubaccountsList.py index 0526fe5e..d037106c 100644 --- a/examples/exchange_client/accounts_rpc/3_SubaccountsList.py +++ b/examples/exchange_client/accounts_rpc/3_SubaccountsList.py @@ -12,5 +12,4 @@ async def main() -> None: print(subacc_list) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/accounts_rpc/4_SubaccountBalancesList.py b/examples/exchange_client/accounts_rpc/4_SubaccountBalancesList.py index 21bdf572..c5c8b9de 100644 --- a/examples/exchange_client/accounts_rpc/4_SubaccountBalancesList.py +++ b/examples/exchange_client/accounts_rpc/4_SubaccountBalancesList.py @@ -16,5 +16,4 @@ async def main() -> None: print(subacc_balances_list) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/accounts_rpc/5_SubaccountHistory.py b/examples/exchange_client/accounts_rpc/5_SubaccountHistory.py index c3c9e053..66d9875b 100644 --- a/examples/exchange_client/accounts_rpc/5_SubaccountHistory.py +++ b/examples/exchange_client/accounts_rpc/5_SubaccountHistory.py @@ -24,5 +24,4 @@ async def main() -> None: print(subacc_history) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/accounts_rpc/6_SubaccountOrderSummary.py b/examples/exchange_client/accounts_rpc/6_SubaccountOrderSummary.py index 06f7d387..21eb6051 100644 --- a/examples/exchange_client/accounts_rpc/6_SubaccountOrderSummary.py +++ b/examples/exchange_client/accounts_rpc/6_SubaccountOrderSummary.py @@ -18,5 +18,4 @@ async def main() -> None: print(subacc_order_summary) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/accounts_rpc/7_OrderStates.py b/examples/exchange_client/accounts_rpc/7_OrderStates.py index 8f31f488..c0851ed6 100644 --- a/examples/exchange_client/accounts_rpc/7_OrderStates.py +++ b/examples/exchange_client/accounts_rpc/7_OrderStates.py @@ -13,5 +13,4 @@ async def main() -> None: print(orders) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/accounts_rpc/8_Portfolio.py b/examples/exchange_client/accounts_rpc/8_Portfolio.py index 8f179fed..9fea55a5 100644 --- a/examples/exchange_client/accounts_rpc/8_Portfolio.py +++ b/examples/exchange_client/accounts_rpc/8_Portfolio.py @@ -12,5 +12,4 @@ async def main() -> None: print(portfolio) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/accounts_rpc/9_Rewards.py b/examples/exchange_client/accounts_rpc/9_Rewards.py index 01a7b6da..f99d804f 100644 --- a/examples/exchange_client/accounts_rpc/9_Rewards.py +++ b/examples/exchange_client/accounts_rpc/9_Rewards.py @@ -15,5 +15,4 @@ async def main() -> None: print(rewards) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/auctions_rpc/1_Auction.py b/examples/exchange_client/auctions_rpc/1_Auction.py index 85d8893f..79fd2dc8 100644 --- a/examples/exchange_client/auctions_rpc/1_Auction.py +++ b/examples/exchange_client/auctions_rpc/1_Auction.py @@ -13,5 +13,4 @@ async def main() -> None: print(auction) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/auctions_rpc/2_Auctions.py b/examples/exchange_client/auctions_rpc/2_Auctions.py index af6d8551..fca61338 100644 --- a/examples/exchange_client/auctions_rpc/2_Auctions.py +++ b/examples/exchange_client/auctions_rpc/2_Auctions.py @@ -12,5 +12,4 @@ async def main() -> None: print(auctions) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/auctions_rpc/3_StreamBids.py b/examples/exchange_client/auctions_rpc/3_StreamBids.py index 17d5db0a..60b6927f 100644 --- a/examples/exchange_client/auctions_rpc/3_StreamBids.py +++ b/examples/exchange_client/auctions_rpc/3_StreamBids.py @@ -13,5 +13,4 @@ async def main() -> None: print(bid) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/10_StreamHistoricalOrders.py b/examples/exchange_client/derivative_exchange_rpc/10_StreamHistoricalOrders.py index 43749d1b..5e28a2ec 100644 --- a/examples/exchange_client/derivative_exchange_rpc/10_StreamHistoricalOrders.py +++ b/examples/exchange_client/derivative_exchange_rpc/10_StreamHistoricalOrders.py @@ -18,5 +18,4 @@ async def main() -> None: print(order) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/11_Trades.py b/examples/exchange_client/derivative_exchange_rpc/11_Trades.py index 6e7580a0..e855fb94 100644 --- a/examples/exchange_client/derivative_exchange_rpc/11_Trades.py +++ b/examples/exchange_client/derivative_exchange_rpc/11_Trades.py @@ -17,5 +17,4 @@ async def main() -> None: print(trades) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/12_StreamTrades.py b/examples/exchange_client/derivative_exchange_rpc/12_StreamTrades.py index 89770795..77479fdf 100644 --- a/examples/exchange_client/derivative_exchange_rpc/12_StreamTrades.py +++ b/examples/exchange_client/derivative_exchange_rpc/12_StreamTrades.py @@ -21,5 +21,4 @@ async def main() -> None: print(trade) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/13_SubaccountOrdersList.py b/examples/exchange_client/derivative_exchange_rpc/13_SubaccountOrdersList.py index 69a86fde..97d005c9 100644 --- a/examples/exchange_client/derivative_exchange_rpc/13_SubaccountOrdersList.py +++ b/examples/exchange_client/derivative_exchange_rpc/13_SubaccountOrdersList.py @@ -22,5 +22,4 @@ async def main() -> None: if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/14_SubaccountTradesList.py b/examples/exchange_client/derivative_exchange_rpc/14_SubaccountTradesList.py index 0a57ec78..a1ab1d29 100644 --- a/examples/exchange_client/derivative_exchange_rpc/14_SubaccountTradesList.py +++ b/examples/exchange_client/derivative_exchange_rpc/14_SubaccountTradesList.py @@ -26,5 +26,4 @@ async def main() -> None: if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/15_FundingPayments.py b/examples/exchange_client/derivative_exchange_rpc/15_FundingPayments.py index d5334239..cda7faa1 100644 --- a/examples/exchange_client/derivative_exchange_rpc/15_FundingPayments.py +++ b/examples/exchange_client/derivative_exchange_rpc/15_FundingPayments.py @@ -23,5 +23,4 @@ async def main() -> None: print(funding) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/16_StreamOrderbooks.py b/examples/exchange_client/derivative_exchange_rpc/16_StreamOrderbooks.py index aeb6ca4c..d4851237 100644 --- a/examples/exchange_client/derivative_exchange_rpc/16_StreamOrderbooks.py +++ b/examples/exchange_client/derivative_exchange_rpc/16_StreamOrderbooks.py @@ -14,5 +14,4 @@ async def main() -> None: print(orders) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/17_FundingRates.py b/examples/exchange_client/derivative_exchange_rpc/17_FundingRates.py index 37abf31b..15b03bc4 100644 --- a/examples/exchange_client/derivative_exchange_rpc/17_FundingRates.py +++ b/examples/exchange_client/derivative_exchange_rpc/17_FundingRates.py @@ -21,5 +21,4 @@ async def main() -> None: print(funding_rates) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/18_Orderbooks.py b/examples/exchange_client/derivative_exchange_rpc/18_Orderbooks.py index 4536f6df..a07a40d5 100644 --- a/examples/exchange_client/derivative_exchange_rpc/18_Orderbooks.py +++ b/examples/exchange_client/derivative_exchange_rpc/18_Orderbooks.py @@ -17,5 +17,4 @@ async def main() -> None: print(markets) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/19_Binary_Options_Markets.py b/examples/exchange_client/derivative_exchange_rpc/19_Binary_Options_Markets.py index dbc1c38e..f7e9b111 100644 --- a/examples/exchange_client/derivative_exchange_rpc/19_Binary_Options_Markets.py +++ b/examples/exchange_client/derivative_exchange_rpc/19_Binary_Options_Markets.py @@ -17,5 +17,4 @@ async def main() -> None: print(market) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/1_Market.py b/examples/exchange_client/derivative_exchange_rpc/1_Market.py index 3420df01..7cff7347 100644 --- a/examples/exchange_client/derivative_exchange_rpc/1_Market.py +++ b/examples/exchange_client/derivative_exchange_rpc/1_Market.py @@ -13,5 +13,4 @@ async def main() -> None: print(market) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/20_Binary_Options_Market.py b/examples/exchange_client/derivative_exchange_rpc/20_Binary_Options_Market.py index a39e498b..59949fee 100644 --- a/examples/exchange_client/derivative_exchange_rpc/20_Binary_Options_Market.py +++ b/examples/exchange_client/derivative_exchange_rpc/20_Binary_Options_Market.py @@ -12,5 +12,4 @@ async def main() -> None: print(market) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/21_Historical_Orders.py b/examples/exchange_client/derivative_exchange_rpc/21_Historical_Orders.py index 99b3c588..77a4af8b 100644 --- a/examples/exchange_client/derivative_exchange_rpc/21_Historical_Orders.py +++ b/examples/exchange_client/derivative_exchange_rpc/21_Historical_Orders.py @@ -23,5 +23,4 @@ async def main() -> None: print(orders) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py b/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py index e58d7997..18c7b7de 100644 --- a/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py +++ b/examples/exchange_client/derivative_exchange_rpc/22_OrderbooksV2.py @@ -16,5 +16,4 @@ async def main() -> None: print(orderbooks) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/23_StreamOrderbooksV2.py b/examples/exchange_client/derivative_exchange_rpc/23_StreamOrderbooksV2.py index 824ca900..a51acd38 100644 --- a/examples/exchange_client/derivative_exchange_rpc/23_StreamOrderbooksV2.py +++ b/examples/exchange_client/derivative_exchange_rpc/23_StreamOrderbooksV2.py @@ -15,5 +15,4 @@ async def main() -> None: print(orderbook) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/2_Markets.py b/examples/exchange_client/derivative_exchange_rpc/2_Markets.py index 4f060e99..89242d02 100644 --- a/examples/exchange_client/derivative_exchange_rpc/2_Markets.py +++ b/examples/exchange_client/derivative_exchange_rpc/2_Markets.py @@ -17,5 +17,4 @@ async def main() -> None: print(market) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/3_StreamMarket.py b/examples/exchange_client/derivative_exchange_rpc/3_StreamMarket.py index aef92b5f..f4f09d9a 100644 --- a/examples/exchange_client/derivative_exchange_rpc/3_StreamMarket.py +++ b/examples/exchange_client/derivative_exchange_rpc/3_StreamMarket.py @@ -13,5 +13,4 @@ async def main() -> None: print(market) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py b/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py index 09df87ef..ecbcffc7 100644 --- a/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py +++ b/examples/exchange_client/derivative_exchange_rpc/4_Orderbook.py @@ -13,5 +13,4 @@ async def main() -> None: print(market) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/5_StreamOrderbooks.py b/examples/exchange_client/derivative_exchange_rpc/5_StreamOrderbooks.py index e3fe747b..4eff0f7f 100644 --- a/examples/exchange_client/derivative_exchange_rpc/5_StreamOrderbooks.py +++ b/examples/exchange_client/derivative_exchange_rpc/5_StreamOrderbooks.py @@ -15,5 +15,4 @@ async def main() -> None: print(market) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/6_StreamOrderbookUpdate.py b/examples/exchange_client/derivative_exchange_rpc/6_StreamOrderbookUpdate.py index af5dda90..4a62945d 100644 --- a/examples/exchange_client/derivative_exchange_rpc/6_StreamOrderbookUpdate.py +++ b/examples/exchange_client/derivative_exchange_rpc/6_StreamOrderbookUpdate.py @@ -123,5 +123,4 @@ def apply_orderbook_update(orderbook: Orderbook, updates): if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.run(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/7_Positions.py b/examples/exchange_client/derivative_exchange_rpc/7_Positions.py index 7cf2c4d4..c8272c91 100644 --- a/examples/exchange_client/derivative_exchange_rpc/7_Positions.py +++ b/examples/exchange_client/derivative_exchange_rpc/7_Positions.py @@ -28,5 +28,4 @@ async def main() -> None: print(positions) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/derivative_exchange_rpc/9_StreamPositions.py b/examples/exchange_client/derivative_exchange_rpc/9_StreamPositions.py index 6760a8de..bd15e386 100644 --- a/examples/exchange_client/derivative_exchange_rpc/9_StreamPositions.py +++ b/examples/exchange_client/derivative_exchange_rpc/9_StreamPositions.py @@ -18,5 +18,4 @@ async def main() -> None: print(position) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/explorer_rpc/10_GetIBCTransfers.py b/examples/exchange_client/explorer_rpc/10_GetIBCTransfers.py index 88be3a8e..38602907 100644 --- a/examples/exchange_client/explorer_rpc/10_GetIBCTransfers.py +++ b/examples/exchange_client/explorer_rpc/10_GetIBCTransfers.py @@ -29,5 +29,4 @@ async def main() -> None: print(ibc_transfers) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/explorer_rpc/1_GetTxByHash.py b/examples/exchange_client/explorer_rpc/1_GetTxByHash.py index 0a95f2ea..7362d1e0 100644 --- a/examples/exchange_client/explorer_rpc/1_GetTxByHash.py +++ b/examples/exchange_client/explorer_rpc/1_GetTxByHash.py @@ -20,5 +20,4 @@ async def main() -> None: print(first_message) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/explorer_rpc/2_AccountTxs.py b/examples/exchange_client/explorer_rpc/2_AccountTxs.py index 29c6a513..7e5c7a3f 100644 --- a/examples/exchange_client/explorer_rpc/2_AccountTxs.py +++ b/examples/exchange_client/explorer_rpc/2_AccountTxs.py @@ -21,5 +21,4 @@ async def main() -> None: print(first_message) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/explorer_rpc/3_Blocks.py b/examples/exchange_client/explorer_rpc/3_Blocks.py index 37c7e8f6..0b636ffd 100644 --- a/examples/exchange_client/explorer_rpc/3_Blocks.py +++ b/examples/exchange_client/explorer_rpc/3_Blocks.py @@ -13,5 +13,4 @@ async def main() -> None: print(block) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/explorer_rpc/4_Block.py b/examples/exchange_client/explorer_rpc/4_Block.py index 463c422d..91aac693 100644 --- a/examples/exchange_client/explorer_rpc/4_Block.py +++ b/examples/exchange_client/explorer_rpc/4_Block.py @@ -13,5 +13,4 @@ async def main() -> None: print(block) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/explorer_rpc/5_TxsRequest.py b/examples/exchange_client/explorer_rpc/5_TxsRequest.py index a99d6ce2..d8c53771 100644 --- a/examples/exchange_client/explorer_rpc/5_TxsRequest.py +++ b/examples/exchange_client/explorer_rpc/5_TxsRequest.py @@ -13,5 +13,4 @@ async def main() -> None: print(txs) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/explorer_rpc/6_StreamTxs.py b/examples/exchange_client/explorer_rpc/6_StreamTxs.py index b23e8e19..d146ea81 100644 --- a/examples/exchange_client/explorer_rpc/6_StreamTxs.py +++ b/examples/exchange_client/explorer_rpc/6_StreamTxs.py @@ -14,5 +14,4 @@ async def main() -> None: print(tx) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/explorer_rpc/7_StreamBlocks.py b/examples/exchange_client/explorer_rpc/7_StreamBlocks.py index 7916e7fb..da755cdb 100644 --- a/examples/exchange_client/explorer_rpc/7_StreamBlocks.py +++ b/examples/exchange_client/explorer_rpc/7_StreamBlocks.py @@ -14,5 +14,4 @@ async def main() -> None: print(block) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/explorer_rpc/8_GetPeggyDeposits.py b/examples/exchange_client/explorer_rpc/8_GetPeggyDeposits.py index 355a2872..b2ecb90a 100644 --- a/examples/exchange_client/explorer_rpc/8_GetPeggyDeposits.py +++ b/examples/exchange_client/explorer_rpc/8_GetPeggyDeposits.py @@ -13,5 +13,4 @@ async def main() -> None: print(peggy_deposits) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/explorer_rpc/9_GetPeggyWithdrawals.py b/examples/exchange_client/explorer_rpc/9_GetPeggyWithdrawals.py index 3e986bc1..fc12d7a6 100644 --- a/examples/exchange_client/explorer_rpc/9_GetPeggyWithdrawals.py +++ b/examples/exchange_client/explorer_rpc/9_GetPeggyWithdrawals.py @@ -17,5 +17,4 @@ async def main() -> None: print(peggy_deposits) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/insurance_rpc/1_InsuranceFunds.py b/examples/exchange_client/insurance_rpc/1_InsuranceFunds.py index d50efee8..7dd3a207 100644 --- a/examples/exchange_client/insurance_rpc/1_InsuranceFunds.py +++ b/examples/exchange_client/insurance_rpc/1_InsuranceFunds.py @@ -12,5 +12,4 @@ async def main() -> None: print(insurance_funds) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/insurance_rpc/2_Redemptions.py b/examples/exchange_client/insurance_rpc/2_Redemptions.py index 83ee56a0..de0582e7 100644 --- a/examples/exchange_client/insurance_rpc/2_Redemptions.py +++ b/examples/exchange_client/insurance_rpc/2_Redemptions.py @@ -19,5 +19,4 @@ async def main() -> None: print(insurance_redemptions) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/meta_rpc/1_Ping.py b/examples/exchange_client/meta_rpc/1_Ping.py index 886e3b6a..0745dcbc 100644 --- a/examples/exchange_client/meta_rpc/1_Ping.py +++ b/examples/exchange_client/meta_rpc/1_Ping.py @@ -12,5 +12,4 @@ async def main() -> None: print('Health OK?', resp) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/meta_rpc/2_Version.py b/examples/exchange_client/meta_rpc/2_Version.py index c3326feb..3ed2581d 100644 --- a/examples/exchange_client/meta_rpc/2_Version.py +++ b/examples/exchange_client/meta_rpc/2_Version.py @@ -12,5 +12,4 @@ async def main() -> None: print('Version:', resp) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/meta_rpc/3_Info.py b/examples/exchange_client/meta_rpc/3_Info.py index 792f9a04..c6b5ba32 100644 --- a/examples/exchange_client/meta_rpc/3_Info.py +++ b/examples/exchange_client/meta_rpc/3_Info.py @@ -17,5 +17,4 @@ async def main() -> None: if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/meta_rpc/4_StreamKeepAlive.py b/examples/exchange_client/meta_rpc/4_StreamKeepAlive.py index 7eeb4bcf..e73ef56b 100644 --- a/examples/exchange_client/meta_rpc/4_StreamKeepAlive.py +++ b/examples/exchange_client/meta_rpc/4_StreamKeepAlive.py @@ -37,5 +37,4 @@ async def keepalive(client, tasks: list): if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/oracle_rpc/1_StreamPrices.py b/examples/exchange_client/oracle_rpc/1_StreamPrices.py index 8cca2c75..c4233229 100644 --- a/examples/exchange_client/oracle_rpc/1_StreamPrices.py +++ b/examples/exchange_client/oracle_rpc/1_StreamPrices.py @@ -20,5 +20,4 @@ async def main() -> None: print(oracle) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/oracle_rpc/2_Price.py b/examples/exchange_client/oracle_rpc/2_Price.py index 892df99b..eb3abdd2 100644 --- a/examples/exchange_client/oracle_rpc/2_Price.py +++ b/examples/exchange_client/oracle_rpc/2_Price.py @@ -21,5 +21,4 @@ async def main() -> None: print(oracle_prices) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/oracle_rpc/3_OracleList.py b/examples/exchange_client/oracle_rpc/3_OracleList.py index 6032ae61..0eb58036 100644 --- a/examples/exchange_client/oracle_rpc/3_OracleList.py +++ b/examples/exchange_client/oracle_rpc/3_OracleList.py @@ -12,5 +12,4 @@ async def main() -> None: print(oracle_list) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/portfolio_rpc/1_AccountPortfolio.py b/examples/exchange_client/portfolio_rpc/1_AccountPortfolio.py index 74633b12..4ab4def8 100644 --- a/examples/exchange_client/portfolio_rpc/1_AccountPortfolio.py +++ b/examples/exchange_client/portfolio_rpc/1_AccountPortfolio.py @@ -15,5 +15,4 @@ async def main() -> None: print(portfolio) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/portfolio_rpc/2_StreamAccountPortfolio.py b/examples/exchange_client/portfolio_rpc/2_StreamAccountPortfolio.py index 3646af50..9c37cb42 100644 --- a/examples/exchange_client/portfolio_rpc/2_StreamAccountPortfolio.py +++ b/examples/exchange_client/portfolio_rpc/2_StreamAccountPortfolio.py @@ -16,5 +16,4 @@ async def main() -> None: if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/10_StreamTrades.py b/examples/exchange_client/spot_exchange_rpc/10_StreamTrades.py index 49645489..392be977 100644 --- a/examples/exchange_client/spot_exchange_rpc/10_StreamTrades.py +++ b/examples/exchange_client/spot_exchange_rpc/10_StreamTrades.py @@ -27,5 +27,4 @@ async def main() -> None: if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/11_SubaccountOrdersList.py b/examples/exchange_client/spot_exchange_rpc/11_SubaccountOrdersList.py index 80f01bf5..178934c5 100644 --- a/examples/exchange_client/spot_exchange_rpc/11_SubaccountOrdersList.py +++ b/examples/exchange_client/spot_exchange_rpc/11_SubaccountOrdersList.py @@ -21,5 +21,4 @@ async def main() -> None: print(orders) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/12_SubaccountTradesList.py b/examples/exchange_client/spot_exchange_rpc/12_SubaccountTradesList.py index 5ed7f821..f67816d8 100644 --- a/examples/exchange_client/spot_exchange_rpc/12_SubaccountTradesList.py +++ b/examples/exchange_client/spot_exchange_rpc/12_SubaccountTradesList.py @@ -25,5 +25,4 @@ async def main() -> None: print(trades) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/13_StreamOrderbooks.py b/examples/exchange_client/spot_exchange_rpc/13_StreamOrderbooks.py index 1a81e087..b78a54fa 100644 --- a/examples/exchange_client/spot_exchange_rpc/13_StreamOrderbooks.py +++ b/examples/exchange_client/spot_exchange_rpc/13_StreamOrderbooks.py @@ -16,5 +16,4 @@ async def main() -> None: print(orders) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py b/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py index cc736793..0e792d5a 100644 --- a/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py +++ b/examples/exchange_client/spot_exchange_rpc/14_Orderbooks.py @@ -15,5 +15,4 @@ async def main() -> None: print(orderbooks) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/15_HistoricalOrders.py b/examples/exchange_client/spot_exchange_rpc/15_HistoricalOrders.py index 8b5c47a7..1e3266c9 100644 --- a/examples/exchange_client/spot_exchange_rpc/15_HistoricalOrders.py +++ b/examples/exchange_client/spot_exchange_rpc/15_HistoricalOrders.py @@ -22,5 +22,4 @@ async def main() -> None: print(orders) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/16_OrderbooksV2.py b/examples/exchange_client/spot_exchange_rpc/16_OrderbooksV2.py index 41a9e530..6a28009e 100644 --- a/examples/exchange_client/spot_exchange_rpc/16_OrderbooksV2.py +++ b/examples/exchange_client/spot_exchange_rpc/16_OrderbooksV2.py @@ -16,5 +16,4 @@ async def main() -> None: print(orderbooks) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/1_Market.py b/examples/exchange_client/spot_exchange_rpc/1_Market.py index 1cff30f0..abc3b47a 100644 --- a/examples/exchange_client/spot_exchange_rpc/1_Market.py +++ b/examples/exchange_client/spot_exchange_rpc/1_Market.py @@ -12,5 +12,4 @@ async def main() -> None: print(market) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/2_Markets.py b/examples/exchange_client/spot_exchange_rpc/2_Markets.py index 3e9e5cc8..59f0590b 100644 --- a/examples/exchange_client/spot_exchange_rpc/2_Markets.py +++ b/examples/exchange_client/spot_exchange_rpc/2_Markets.py @@ -19,5 +19,4 @@ async def main() -> None: if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/3_StreamMarkets.py b/examples/exchange_client/spot_exchange_rpc/3_StreamMarkets.py index a29a3615..90b4a1a2 100644 --- a/examples/exchange_client/spot_exchange_rpc/3_StreamMarkets.py +++ b/examples/exchange_client/spot_exchange_rpc/3_StreamMarkets.py @@ -13,5 +13,4 @@ async def main() -> None: print(market) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py b/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py index 3061da52..44522fbc 100644 --- a/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py +++ b/examples/exchange_client/spot_exchange_rpc/4_Orderbook.py @@ -12,5 +12,4 @@ async def main() -> None: print(orderbook) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/6_Trades.py b/examples/exchange_client/spot_exchange_rpc/6_Trades.py index ba5bea8e..46cf0ee8 100644 --- a/examples/exchange_client/spot_exchange_rpc/6_Trades.py +++ b/examples/exchange_client/spot_exchange_rpc/6_Trades.py @@ -22,5 +22,4 @@ async def main() -> None: print(orders) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/7_StreamOrderbookSnapshot.py b/examples/exchange_client/spot_exchange_rpc/7_StreamOrderbookSnapshot.py index 1b7932a9..5514502e 100644 --- a/examples/exchange_client/spot_exchange_rpc/7_StreamOrderbookSnapshot.py +++ b/examples/exchange_client/spot_exchange_rpc/7_StreamOrderbookSnapshot.py @@ -15,5 +15,4 @@ async def main() -> None: print(orderbook) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/8_StreamOrderbookUpdate.py b/examples/exchange_client/spot_exchange_rpc/8_StreamOrderbookUpdate.py index aa60b601..b39bf981 100644 --- a/examples/exchange_client/spot_exchange_rpc/8_StreamOrderbookUpdate.py +++ b/examples/exchange_client/spot_exchange_rpc/8_StreamOrderbookUpdate.py @@ -123,5 +123,4 @@ def apply_orderbook_update(orderbook: Orderbook, updates): if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.run(main()) diff --git a/examples/exchange_client/spot_exchange_rpc/9_StreamHistoricalOrders.py b/examples/exchange_client/spot_exchange_rpc/9_StreamHistoricalOrders.py index a319d6b3..6a10b2f4 100644 --- a/examples/exchange_client/spot_exchange_rpc/9_StreamHistoricalOrders.py +++ b/examples/exchange_client/spot_exchange_rpc/9_StreamHistoricalOrders.py @@ -18,5 +18,4 @@ async def main() -> None: print(order) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/pyinjective/async_client.py b/pyinjective/async_client.py index 65340984..889cd038 100644 --- a/pyinjective/async_client.py +++ b/pyinjective/async_client.py @@ -65,14 +65,13 @@ ) from .constant import Network +from .utils.logger import LoggerProvider DEFAULT_TIMEOUTHEIGHT_SYNC_INTERVAL = 20 # seconds DEFAULT_TIMEOUTHEIGHT = 30 # blocks DEFAULT_SESSION_RENEWAL_OFFSET = 120 # seconds DEFAULT_BLOCK_TIME = 2 # seconds -logging.basicConfig(format="%(levelname)s:%(message)s", level=logging.INFO) - class AsyncClient: def __init__( @@ -124,8 +123,8 @@ def __init__( cookie_file = open(chain_cookie_location, "r+") self.chain_cookie = cookie_file.read() cookie_file.close() - logging.info( - "chain session cookie loaded from disk:{}".format(self.chain_cookie) + LoggerProvider().logger_for_class(logging_class=self.__class__).info( + f"chain session cookie loaded from disk: {self.chain_cookie}" ) self.exchange_cookie = "" @@ -204,7 +203,9 @@ async def sync_timeout_height(self): block = await self.get_latest_block() self.timeout_height = block.block.header.height + DEFAULT_TIMEOUTHEIGHT except Exception as e: - logging.debug("error while fetching latest block, setting timeout height to 0:{}".format(e)) + LoggerProvider().logger_for_class(logging_class=self.__class__).debug( + f"error while fetching latest block, setting timeout height to 0: {e}" + ) self.timeout_height = 0 # cookie helper methods @@ -287,7 +288,7 @@ def set_cookie(self, metadata, type): cookie_file = open(self.chain_cookie_location, "w") cookie_file.write(new_cookie) cookie_file.close() - logging.info("chain session cookie saved to disk") + LoggerProvider().logger_for_class(logging_class=self.__class__).info("chain session cookie saved to disk") if type == "exchange": self.exchange_cookie = new_cookie @@ -309,7 +310,8 @@ async def get_account(self, address: str) -> Optional[account_pb2.EthAccount]: self.number = int(account.base_account.account_number) self.sequence = int(account.base_account.sequence) except Exception as e: - logging.debug("error while fetching sequence and number{}".format(e)) + LoggerProvider().logger_for_class(logging_class=self.__class__).debug( + f"error while fetching sequence and number {e}") return None async def get_request_id_by_tx_hash(self, tx_hash: bytes) -> List[int]: @@ -658,12 +660,15 @@ async def get_spot_orders(self, market_id: str, **kwargs): ) return await self.stubSpotExchange.Orders(req) - async def get_historical_spot_orders(self, market_id: str, **kwargs): + async def get_historical_spot_orders(self, market_id: Optional[str] = None, **kwargs): + market_ids = kwargs.get("market_ids", []) + if market_id is not None: + market_ids.append(market_id) req = spot_exchange_rpc_pb.OrdersHistoryRequest( - market_id=market_id, + market_ids=kwargs.get("market_ids", []), direction=kwargs.get("direction"), - order_types=kwargs.get("order_types"), - execution_types=kwargs.get("execution_types"), + order_types=kwargs.get("order_types", []), + execution_types=kwargs.get("execution_types", []), subaccount_id=kwargs.get("subaccount_id"), skip=kwargs.get("skip"), limit=kwargs.get("limit"), @@ -818,14 +823,19 @@ async def get_derivative_orders(self, market_id: str, **kwargs): ) return await self.stubDerivativeExchange.Orders(req) - async def get_historical_derivative_orders(self, market_id: str, **kwargs): + async def get_historical_derivative_orders(self, market_id: Optional[str] = None, **kwargs): + market_ids = kwargs.get("market_ids", []) + if market_id is not None: + market_ids.append(market_id) + order_types = kwargs.get("order_types", []) + order_type = kwargs.get("order_type") + if order_type is not None: + order_types.append(market_id) req = derivative_exchange_rpc_pb.OrdersHistoryRequest( - market_id=market_id, - market_ids=kwargs.get("market_ids"), + market_ids=market_ids, direction=kwargs.get("direction"), - order_type=kwargs.get("order_type"), - order_types=kwargs.get("order_types"), - execution_types=kwargs.get("execution_types"), + order_types=order_types, + execution_types=kwargs.get("execution_types", []), subaccount_id=kwargs.get("subaccount_id"), is_conditional=kwargs.get("is_conditional"), skip=kwargs.get("skip"), diff --git a/pyinjective/composer.py b/pyinjective/composer.py index 92858868..5db90cc9 100644 --- a/pyinjective/composer.py +++ b/pyinjective/composer.py @@ -33,10 +33,10 @@ from .proto.cosmwasm.wasm.v1 import tx_pb2 as wasm_tx_pb from .constant import Denom -from .utils import * +from .utils.utils import * from typing import List -logging.basicConfig(format="%(levelname)s:%(message)s", level=logging.INFO) +from pyinjective.utils.logger import LoggerProvider class Composer: @@ -93,7 +93,8 @@ def SpotOrder( ): # load denom metadata denom = Denom.load_market(self.network, market_id) - logging.info("Loaded market metadata for:{}".format(denom.description)) + LoggerProvider().logger_for_class(logging_class=self.__class__).info( + f"Loaded market metadata for: {denom.description}") # prepare values quantity = spot_quantity_to_backend(quantity, denom) @@ -136,7 +137,8 @@ def DerivativeOrder( ): # load denom metadata denom = Denom.load_market(self.network, market_id) - logging.info("Loaded market metadata for:{}".format(denom.description)) + LoggerProvider().logger_for_class(logging_class=self.__class__).info( + f"Loaded market metadata for: {denom.description}") if kwargs.get("is_reduce_only") is None: margin = derivative_margin_to_backend( @@ -207,7 +209,8 @@ def BinaryOptionsOrder( denom = Denom.load_market(self.network, market_id) # load denom metadata - logging.info("Loaded market metadata for:{}".format(denom.description)) + LoggerProvider().logger_for_class(logging_class=self.__class__).info( + f"Loaded market metadata for: {denom.description}") if kwargs.get("is_reduce_only") is None and kwargs.get("is_buy"): margin = binary_options_buy_margin_to_backend(price, quantity, denom) @@ -253,10 +256,8 @@ def BinaryOptionsOrder( def MsgSend(self, from_address: str, to_address: str, amount: float, denom: str): peggy_denom, decimals = Denom.load_peggy_denom(self.network, denom) be_amount = amount_to_backend(amount, decimals) - logging.info( - "Loaded send symbol {} ({}) with decimals = {}".format( - denom, peggy_denom, decimals - ) + LoggerProvider().logger_for_class(logging_class=self.__class__).info( + f"Loaded send symbol {denom} ({peggy_denom}) with decimals = {decimals}" ) return cosmos_bank_tx_pb.MsgSend( @@ -276,10 +277,8 @@ def MsgExecuteContract(self, sender: str, contract: str, msg: str, **kwargs): def MsgDeposit(self, sender: str, subaccount_id: str, amount: float, denom: str): peggy_denom, decimals = Denom.load_peggy_denom(self.network, denom) be_amount = amount_to_backend(amount, decimals) - logging.info( - "Loaded deposit symbol {} ({}) with decimals = {}".format( - denom, peggy_denom, decimals - ) + LoggerProvider().logger_for_class(logging_class=self.__class__).info( + f"Loaded deposit symbol {denom} ({peggy_denom}) with decimals = {decimals}" ) return injective_exchange_tx_pb.MsgDeposit( @@ -637,10 +636,8 @@ def MsgSubaccountTransfer( def MsgWithdraw(self, sender: str, subaccount_id: str, amount: float, denom: str): peggy_denom, decimals = Denom.load_peggy_denom(self.network, denom) be_amount = amount_to_backend(amount, decimals) - logging.info( - "Loaded withdrawal symbol {} ({}) with decimals = {}".format( - denom, peggy_denom, decimals - ) + LoggerProvider().logger_for_class(logging_class=self.__class__).info( + f"Loaded withdrawal symbol {denom} ({peggy_denom}) with decimals = {decimals}" ) return injective_exchange_tx_pb.MsgWithdraw( @@ -659,10 +656,8 @@ def MsgExternalTransfer( ): peggy_denom, decimals = Denom.load_peggy_denom(self.network, denom) be_amount = amount_to_backend(amount, decimals) - logging.debug( - "Loaded send symbol {} ({}) with decimals = {}".format( - denom, peggy_denom, decimals - ) + LoggerProvider().logger_for_class(logging_class=self.__class__).info( + f"Loaded send symbol {denom} ({peggy_denom}) with decimals = {decimals}" ) return injective_exchange_tx_pb.MsgExternalTransfer( @@ -796,10 +791,8 @@ def MsgSendToEth( peggy_denom, decimals = Denom.load_peggy_denom(self.network, denom) be_amount = amount_to_backend(amount, decimals) be_bridge_fee = amount_to_backend(bridge_fee, decimals) - logging.info( - "Loaded withdrawal symbol {} ({}) with decimals = {}".format( - denom, peggy_denom, decimals - ) + LoggerProvider().logger_for_class(logging_class=self.__class__).info( + f"Loaded withdrawal symbol {denom} ({peggy_denom}) with decimals = {decimals}" ) return injective_peggy_tx_pb.MsgSendToEth( @@ -834,10 +827,8 @@ def MsgCreateInsuranceFund( ): peggy_denom, decimals = Denom.load_peggy_denom(self.network, quote_denom) be_amount = amount_to_backend(initial_deposit, decimals) - logging.info( - "Loaded send symbol {} ({}) with decimals = {}".format( - quote_denom, peggy_denom, decimals - ) + LoggerProvider().logger_for_class(logging_class=self.__class__).info( + f"Loaded send symbol {quote_denom} ({peggy_denom}) with decimals = {decimals}" ) return injective_insurance_tx_pb.MsgCreateInsuranceFund( @@ -854,10 +845,8 @@ def MsgUnderwrite( ): peggy_denom, decimals = Denom.load_peggy_denom(self.network, quote_denom) be_amount = amount_to_backend(amount, decimals) - logging.info( - "Loaded send symbol {} ({}) with decimals = {}".format( - quote_denom, peggy_denom, decimals - ) + LoggerProvider().logger_for_class(logging_class=self.__class__).info( + f"Loaded send symbol {quote_denom} ({peggy_denom}) with decimals = {decimals}" ) return injective_insurance_tx_pb.MsgUnderwrite( diff --git a/pyinjective/fetch_metadata.py b/pyinjective/fetch_metadata.py index ce29956a..1abbd815 100644 --- a/pyinjective/fetch_metadata.py +++ b/pyinjective/fetch_metadata.py @@ -105,5 +105,4 @@ async def main() -> None: text_file.write(data) if __name__ == '__main__': - logging.basicConfig(level=logging.INFO) asyncio.get_event_loop().run_until_complete(main()) diff --git a/pyinjective/sendtocosmos.py b/pyinjective/sendtocosmos.py index 762c589e..102d1c6c 100644 --- a/pyinjective/sendtocosmos.py +++ b/pyinjective/sendtocosmos.py @@ -1,10 +1,8 @@ from web3 import Web3 -import logging +from .utils.logger import LoggerProvider from .wallet import Address -logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.INFO) - class Peggo: def __init__(self, network: str): self.network = network @@ -17,7 +15,7 @@ def sendToInjective(self, ethereum_endpoint: str, private_key: str, token_contra elif self.network == 'devnet': peggy_proxy_address = "0x4F38F75606d046819638f909b66B112aF1095e8d" else: - logging.info("Network is not supported") + LoggerProvider().logger_for_class(logging_class=self.__class__).info("Network is not supported") web3 = Web3(Web3.HTTPProvider(ethereum_endpoint)) contract = web3.eth.contract(address=peggy_proxy_address, abi=peggo_abi) @@ -62,7 +60,9 @@ def sendToInjective(self, ethereum_endpoint: str, private_key: str, token_contra try: tx_hash = web3.eth.send_raw_transaction(signed_tx.rawTransaction) - logging.info("Transferred {} {} from {} to {}".format(amount, token_contract, sender_ethereum_address, receiver)) - logging.info("Transaction hash:".format(web3.toHex(tx_hash))) + LoggerProvider().logger_for_class(logging_class=self.__class__).info( + f"Transferred {amount} {token_contract} from {sender_ethereum_address} to {receiver}") + LoggerProvider().logger_for_class(logging_class=self.__class__).info( + "Transaction hash:".format(Web3.to_hex(tx_hash))) except Exception as e: - logging.info("Transaction failed".format(e)) + LoggerProvider().logger_for_class(logging_class=self.__class__).info("Transaction failed".format(e)) diff --git a/pyinjective/utils/__init__.py b/pyinjective/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pyinjective/utils/logger.py b/pyinjective/utils/logger.py new file mode 100644 index 00000000..7562e95d --- /dev/null +++ b/pyinjective/utils/logger.py @@ -0,0 +1,16 @@ +import logging +from logging import Logger +from typing import Type + +# If the application using the SDK has its own logging configuration, the following basic configuration will have no +# effect +logging.basicConfig(format="%(asctime)s - %(name)s - %(levelname)s - %(message)s") + + +class LoggerProvider: + + def logger(self) -> Logger: + return logging.getLogger(__name__) + + def logger_for_class(self, logging_class: Type) -> Logger: + return logging.getLogger(f"{logging_class.__module__}.{logging_class.__name__}") diff --git a/pyinjective/utils.py b/pyinjective/utils/utils.py similarity index 100% rename from pyinjective/utils.py rename to pyinjective/utils/utils.py diff --git a/setup.py b/setup.py index 2f589c3b..b5646fc1 100755 --- a/setup.py +++ b/setup.py @@ -16,8 +16,8 @@ URL = "https://github.com/InjectiveLabs/sdk-python" EMAIL = "achilleas@injectivelabs.com" AUTHOR = "Injective Labs" -REQUIRES_PYTHON = ">=3.7.0" -VERSION = "0.6.3.3" +REQUIRES_PYTHON = ">=3.7, <3.11" +VERSION = "0.6.4" REQUIRED = [ "protobuf", @@ -37,6 +37,11 @@ "websockets" ] +DEV_REQUIRED = [ + "pytest", + "pytest-asyncio", +] + # The rest you shouldn't have to touch too much :) # ------------------------------------------------ # Except, perhaps the License and Trove Classifiers! @@ -114,6 +119,9 @@ def run(self): python_requires=REQUIRES_PYTHON, url=URL, install_requires=REQUIRED, + extras_require={ + "dev": DEV_REQUIRED, + }, classifiers=[ # Trove classifiers # Full list: https://pypi.python.org/pypi?%3Aaction=list_classifiers diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/async_client_tests.py b/tests/async_client_tests.py new file mode 100644 index 00000000..0446d9ec --- /dev/null +++ b/tests/async_client_tests.py @@ -0,0 +1,84 @@ +import logging + +import pytest +from pyinjective.constant import Network + +from pyinjective.async_client import AsyncClient + + +class TestAsyncClient: + + def test_instance_creation_logs_session_cookie_load_info(self, caplog): + caplog.set_level(logging.INFO) + + AsyncClient( + network=Network.local(), + insecure=False, + ) + + expected_log_message_prefix = "chain session cookie loaded from disk: " + found_log = next( + (record for record in caplog.record_tuples if record[2].startswith(expected_log_message_prefix)), + None, + ) + assert(found_log is not None) + assert(found_log[0] == "pyinjective.async_client.AsyncClient") + assert(found_log[1] == logging.INFO) + + + @pytest.mark.asyncio + async def test_sync_timeout_height_logs_exception(self, caplog): + client = AsyncClient( + network=Network.local(), + insecure=False, + ) + + with caplog.at_level(logging.DEBUG): + await client.sync_timeout_height() + + expected_log_message_prefix = "error while fetching latest block, setting timeout height to 0: " + found_log = next( + (record for record in caplog.record_tuples if record[2].startswith(expected_log_message_prefix)), + None, + ) + assert (found_log is not None) + assert (found_log[0] == "pyinjective.async_client.AsyncClient") + assert (found_log[1] == logging.DEBUG) + + def test_set_cookie_logs_chain_session_cookie_saved(self, caplog): + caplog.set_level(logging.INFO) + + client = AsyncClient( + network=Network.local(), + insecure=False, + ) + + client.set_cookie(metadata=[("set-cookie", "test-value")], type="chain") + + expected_log_message_prefix = "chain session cookie saved to disk" + found_log = next( + (record for record in caplog.record_tuples if record[2].startswith(expected_log_message_prefix)), + None, + ) + assert (found_log is not None) + assert (found_log[0] == "pyinjective.async_client.AsyncClient") + assert (found_log[1] == logging.INFO) + + @pytest.mark.asyncio + async def test_get_account_logs_exception(self, caplog): + client = AsyncClient( + network=Network.local(), + insecure=False, + ) + + with caplog.at_level(logging.DEBUG): + await client.get_account(address="") + + expected_log_message_prefix = "error while fetching sequence and number " + found_log = next( + (record for record in caplog.record_tuples if record[2].startswith(expected_log_message_prefix)), + None, + ) + assert (found_log is not None) + assert (found_log[0] == "pyinjective.async_client.AsyncClient") + assert (found_log[1] == logging.DEBUG) \ No newline at end of file diff --git a/tests/composer_tests.py b/tests/composer_tests.py new file mode 100644 index 00000000..eabef128 --- /dev/null +++ b/tests/composer_tests.py @@ -0,0 +1,183 @@ +import logging + +import pytest + +from pyinjective.composer import Composer +from pyinjective.constant import Denom, Network + + +class TestComposer: + + @pytest.fixture + def inj_usdt_market_id(self): + return "0xa508cb32923323679f29a032c70342c147c17d0145625922b0ef22e955c844c0" + + def test_spot_order_creation_logs_market_data_loaded_info(self, caplog, inj_usdt_market_id): + caplog.set_level(logging.INFO) + + composer = Composer(network=Network.devnet().string()) + + composer.SpotOrder( + market_id=inj_usdt_market_id, + subaccount_id="", + fee_recipient="", + price=1.0, + quantity=1.0, + ) + + expected_log_message_prefix = "Loaded market metadata for: 'Devnet Spot INJ/USDT'" + expected_log_record = ("pyinjective.composer.Composer", logging.INFO, expected_log_message_prefix) + assert(expected_log_record in caplog.record_tuples) + + def test_derivative_order_creation_logs_market_data_loaded_info(self, caplog, inj_usdt_market_id): + caplog.set_level(logging.INFO) + + composer = Composer(network=Network.devnet().string()) + + composer.DerivativeOrder( + market_id=inj_usdt_market_id, + subaccount_id="", + fee_recipient="", + price=1.0, + quantity=1.0, + leverage=1.0, + ) + + expected_log_message_prefix = "Loaded market metadata for: 'Devnet Spot INJ/USDT'" + expected_log_record = ("pyinjective.composer.Composer", logging.INFO, expected_log_message_prefix) + assert(expected_log_record in caplog.record_tuples) + + def test_binary_order_creation_logs_market_data_loaded_info(self, caplog, inj_usdt_market_id): + caplog.set_level(logging.INFO) + + composer = Composer(network=Network.devnet().string()) + + composer.BinaryOptionsOrder( + market_id=inj_usdt_market_id, + subaccount_id="", + fee_recipient="", + price=1.0, + quantity=1.0, + ) + + expected_log_message_prefix = "Loaded market metadata for: 'Devnet Spot INJ/USDT'" + expected_log_record = ("pyinjective.composer.Composer", logging.INFO, expected_log_message_prefix) + assert(expected_log_record in caplog.record_tuples) + + def test_msg_send_logs_market_data_loaded_info(self, caplog): + caplog.set_level(logging.INFO) + + composer = Composer(network=Network.devnet().string()) + + composer.MsgSend( + from_address="", + to_address="", + amount=1.0, + denom="INJ", + ) + + expected_log_message_prefix = f"Loaded send symbol INJ (inj) with decimals = 18" + expected_log_record = ("pyinjective.composer.Composer", logging.INFO, expected_log_message_prefix) + assert(expected_log_record in caplog.record_tuples) + + def test_msg_deposit_logs_market_data_loaded_info(self, caplog): + caplog.set_level(logging.INFO) + + composer = Composer(network=Network.devnet().string()) + + composer.MsgDeposit( + sender="", + subaccount_id="", + amount=1.0, + denom="INJ", + ) + + expected_log_message_prefix = f"Loaded deposit symbol INJ (inj) with decimals = 18" + expected_log_record = ("pyinjective.composer.Composer", logging.INFO, expected_log_message_prefix) + assert(expected_log_record in caplog.record_tuples) + + def test_msg_withdraw_logs_market_data_loaded_info(self, caplog): + caplog.set_level(logging.INFO) + + composer = Composer(network=Network.devnet().string()) + + composer.MsgWithdraw( + sender="", + subaccount_id="", + amount=1.0, + denom="INJ", + ) + + expected_log_message_prefix = f"Loaded withdrawal symbol INJ (inj) with decimals = 18" + expected_log_record = ("pyinjective.composer.Composer", logging.INFO, expected_log_message_prefix) + assert(expected_log_record in caplog.record_tuples) + + def test_msg_external_transfer_logs_market_data_loaded_info(self, caplog): + caplog.set_level(logging.INFO) + + composer = Composer(network=Network.devnet().string()) + + composer.MsgExternalTransfer( + sender="", + source_subaccount_id="", + destination_subaccount_id="", + amount=1.0, + denom="INJ", + ) + + expected_log_message_prefix = f"Loaded send symbol INJ (inj) with decimals = 18" + expected_log_record = ("pyinjective.composer.Composer", logging.INFO, expected_log_message_prefix) + assert(expected_log_record in caplog.record_tuples) + + def test_msg_send_to_eth_logs_market_data_loaded_info(self, caplog): + caplog.set_level(logging.INFO) + + composer = Composer(network=Network.devnet().string()) + + composer.MsgSendToEth( + denom="INJ", + sender="", + eth_dest="", + amount=1.0, + bridge_fee=1.0, + ) + + expected_log_message_prefix = f"Loaded withdrawal symbol INJ (inj) with decimals = 18" + expected_log_record = ("pyinjective.composer.Composer", logging.INFO, expected_log_message_prefix) + assert(expected_log_record in caplog.record_tuples) + + def test_msg_create_insurance_fund_logs_market_data_loaded_info(self, caplog): + caplog.set_level(logging.INFO) + + composer = Composer(network=Network.devnet().string()) + + composer.MsgCreateInsuranceFund( + sender="", + ticker="", + quote_denom="INJ", + oracle_base="", + oracle_quote="", + oracle_type=1, + expiry=1, + initial_deposit=1, + ) + + expected_log_message_prefix = f"Loaded send symbol INJ (inj) with decimals = 18" + expected_log_record = ("pyinjective.composer.Composer", logging.INFO, expected_log_message_prefix) + assert(expected_log_record in caplog.record_tuples) + + def test_msg_underwrite_logs_market_data_loaded_info(self, caplog, inj_usdt_market_id): + caplog.set_level(logging.INFO) + + composer = Composer(network=Network.devnet().string()) + + composer.MsgUnderwrite( + sender="", + market_id=inj_usdt_market_id, + quote_denom="INJ", + amount=1, + ) + + expected_log_message_prefix = f"Loaded send symbol INJ (inj) with decimals = 18" + expected_log_record = ("pyinjective.composer.Composer", logging.INFO, expected_log_message_prefix) + assert(expected_log_record in caplog.record_tuples)