Changes for pypi release (#44)
* Adjustments for pypi release * Remove if else * Fix typo * Revert "Remove if else" This reverts commit 9beb895e56b4e9fa9d9a0b597671486afc84c072. * Restore queue.py * Revert "Restore queue.py" This reverts commit d868475b0059d5d8c1c62132d9d031524e85729b. * Restore event_queue_binary * Restore other stuff * Update README.md * Fix version * Address feedback
This commit is contained in:
parent
ca281af3f1
commit
135c770dcf
|
@ -35,10 +35,10 @@ jobs:
|
|||
|
||||
- name: Run linters
|
||||
run: |
|
||||
pipenv run black --check --diff --line-length=120 setup.py src tests
|
||||
pipenv run pylint --rcfile=.pylintrc setup.py src tests
|
||||
pipenv run flake8 setup.py src tests
|
||||
pipenv run mypy src
|
||||
pipenv run black --check --diff --line-length=120 setup.py pyserum tests
|
||||
pipenv run pylint --rcfile=.pylintrc setup.py pyserum tests
|
||||
pipenv run flake8 setup.py pyserum tests
|
||||
pipenv run mypy pyserum
|
||||
|
||||
- name: Run unit tests
|
||||
run: |
|
||||
|
|
20
Makefile
20
Makefile
|
@ -2,18 +2,28 @@ clean:
|
|||
rm -rf dist build _build __pycache__ *.egg-info
|
||||
|
||||
format:
|
||||
pipenv run isort setup.py src tests
|
||||
pipenv run black --line-length=120 setup.py src tests
|
||||
pipenv run isort setup.py pyserum tests
|
||||
pipenv run black --line-length=120 setup.py pyserum tests
|
||||
|
||||
lint:
|
||||
pipenv run flake8 setup.py src tests
|
||||
pipenv run mypy src
|
||||
pipenv run pylint --rcfile=.pylintrc setup.py src tests
|
||||
pipenv run flake8 setup.py pyserum tests
|
||||
pipenv run mypy pyserum
|
||||
pipenv run pylint --rcfile=.pylintrc setup.py pyserum tests
|
||||
|
||||
.PHONY: notebook
|
||||
notebook:
|
||||
cd notebooks && PYTHONPATH=../ jupyter notebook
|
||||
|
||||
publish:
|
||||
make clean
|
||||
python setup.py sdist bdist_wheel
|
||||
pipenv run twine upload -u serum-community dist/*
|
||||
|
||||
test-publish:
|
||||
make clean
|
||||
python setup.py sdist bdist_wheel
|
||||
pipenv run twine upload -r testpypi -u serum-community dist/*
|
||||
|
||||
unit-tests:
|
||||
pipenv run pytest -v -m "not integration"
|
||||
|
||||
|
|
2
Pipfile
2
Pipfile
|
@ -21,6 +21,8 @@ flake8 = "*"
|
|||
isort = "*"
|
||||
rope = "*"
|
||||
pytest-cov = "*"
|
||||
twine = "*"
|
||||
setuptools = "*"
|
||||
|
||||
[packages]
|
||||
solana = "*"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "bd38fc4b3f1d2f88a5043a76b2a8083910d4aecb3e13d72887d5b01daa06c85f"
|
||||
"sha256": "b16e0702ee2af4c8a299cc56792c430548deeec4711d9c1e3007a0fc3c87e892"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
|
@ -33,36 +33,44 @@
|
|||
},
|
||||
"cffi": {
|
||||
"hashes": [
|
||||
"sha256:0da50dcbccd7cb7e6c741ab7912b2eff48e85af217d72b57f80ebc616257125e",
|
||||
"sha256:12a453e03124069b6896107ee133ae3ab04c624bb10683e1ed1c1663df17c13c",
|
||||
"sha256:15419020b0e812b40d96ec9d369b2bc8109cc3295eac6e013d3261343580cc7e",
|
||||
"sha256:15a5f59a4808f82d8ec7364cbace851df591c2d43bc76bcbe5c4543a7ddd1bf1",
|
||||
"sha256:23e44937d7695c27c66a54d793dd4b45889a81b35c0751ba91040fe825ec59c4",
|
||||
"sha256:29c4688ace466a365b85a51dcc5e3c853c1d283f293dfcc12f7a77e498f160d2",
|
||||
"sha256:57214fa5430399dffd54f4be37b56fe22cedb2b98862550d43cc085fb698dc2c",
|
||||
"sha256:577791f948d34d569acb2d1add5831731c59d5a0c50a6d9f629ae1cefd9ca4a0",
|
||||
"sha256:6539314d84c4d36f28d73adc1b45e9f4ee2a89cdc7e5d2b0a6dbacba31906798",
|
||||
"sha256:65867d63f0fd1b500fa343d7798fa64e9e681b594e0a07dc934c13e76ee28fb1",
|
||||
"sha256:672b539db20fef6b03d6f7a14b5825d57c98e4026401fce838849f8de73fe4d4",
|
||||
"sha256:6843db0343e12e3f52cc58430ad559d850a53684f5b352540ca3f1bc56df0731",
|
||||
"sha256:7057613efefd36cacabbdbcef010e0a9c20a88fc07eb3e616019ea1692fa5df4",
|
||||
"sha256:76ada88d62eb24de7051c5157a1a78fd853cca9b91c0713c2e973e4196271d0c",
|
||||
"sha256:837398c2ec00228679513802e3744d1e8e3cb1204aa6ad408b6aff081e99a487",
|
||||
"sha256:8662aabfeab00cea149a3d1c2999b0731e70c6b5bac596d95d13f643e76d3d4e",
|
||||
"sha256:95e9094162fa712f18b4f60896e34b621df99147c2cee216cfa8f022294e8e9f",
|
||||
"sha256:99cc66b33c418cd579c0f03b77b94263c305c389cb0c6972dac420f24b3bf123",
|
||||
"sha256:9b219511d8b64d3fa14261963933be34028ea0e57455baf6781fe399c2c3206c",
|
||||
"sha256:ae8f34d50af2c2154035984b8b5fc5d9ed63f32fe615646ab435b05b132ca91b",
|
||||
"sha256:b9aa9d8818c2e917fa2c105ad538e222a5bce59777133840b93134022a7ce650",
|
||||
"sha256:bf44a9a0141a082e89c90e8d785b212a872db793a0080c20f6ae6e2a0ebf82ad",
|
||||
"sha256:c0b48b98d79cf795b0916c57bebbc6d16bb43b9fc9b8c9f57f4cf05881904c75",
|
||||
"sha256:da9d3c506f43e220336433dffe643fbfa40096d408cb9b7f2477892f369d5f82",
|
||||
"sha256:e4082d832e36e7f9b2278bc774886ca8207346b99f278e54c9de4834f17232f7",
|
||||
"sha256:e4b9b7af398c32e408c00eb4e0d33ced2f9121fd9fb978e6c1b57edd014a7d15",
|
||||
"sha256:e613514a82539fc48291d01933951a13ae93b6b444a88782480be32245ed4afa",
|
||||
"sha256:f5033952def24172e60493b68717792e3aebb387a8d186c43c020d9363ee7281"
|
||||
"sha256:005f2bfe11b6745d726dbb07ace4d53f057de66e336ff92d61b8c7e9c8f4777d",
|
||||
"sha256:09e96138280241bd355cd585148dec04dbbedb4f46128f340d696eaafc82dd7b",
|
||||
"sha256:0b1ad452cc824665ddc682400b62c9e4f5b64736a2ba99110712fdee5f2505c4",
|
||||
"sha256:0ef488305fdce2580c8b2708f22d7785ae222d9825d3094ab073e22e93dfe51f",
|
||||
"sha256:15f351bed09897fbda218e4db5a3d5c06328862f6198d4fb385f3e14e19decb3",
|
||||
"sha256:22399ff4870fb4c7ef19fff6eeb20a8bbf15571913c181c78cb361024d574579",
|
||||
"sha256:23e5d2040367322824605bc29ae8ee9175200b92cb5483ac7d466927a9b3d537",
|
||||
"sha256:2791f68edc5749024b4722500e86303a10d342527e1e3bcac47f35fbd25b764e",
|
||||
"sha256:2f9674623ca39c9ebe38afa3da402e9326c245f0f5ceff0623dccdac15023e05",
|
||||
"sha256:3363e77a6176afb8823b6e06db78c46dbc4c7813b00a41300a4873b6ba63b171",
|
||||
"sha256:33c6cdc071ba5cd6d96769c8969a0531be2d08c2628a0143a10a7dcffa9719ca",
|
||||
"sha256:3b8eaf915ddc0709779889c472e553f0d3e8b7bdf62dab764c8921b09bf94522",
|
||||
"sha256:3cb3e1b9ec43256c4e0f8d2837267a70b0e1ca8c4f456685508ae6106b1f504c",
|
||||
"sha256:3eeeb0405fd145e714f7633a5173318bd88d8bbfc3dd0a5751f8c4f70ae629bc",
|
||||
"sha256:44f60519595eaca110f248e5017363d751b12782a6f2bd6a7041cba275215f5d",
|
||||
"sha256:4d7c26bfc1ea9f92084a1d75e11999e97b62d63128bcc90c3624d07813c52808",
|
||||
"sha256:529c4ed2e10437c205f38f3691a68be66c39197d01062618c55f74294a4a4828",
|
||||
"sha256:6642f15ad963b5092d65aed022d033c77763515fdc07095208f15d3563003869",
|
||||
"sha256:85ba797e1de5b48aa5a8427b6ba62cf69607c18c5d4eb747604b7302f1ec382d",
|
||||
"sha256:8f0f1e499e4000c4c347a124fa6a27d37608ced4fe9f7d45070563b7c4c370c9",
|
||||
"sha256:a624fae282e81ad2e4871bdb767e2c914d0539708c0f078b5b355258293c98b0",
|
||||
"sha256:b0358e6fefc74a16f745afa366acc89f979040e0cbc4eec55ab26ad1f6a9bfbc",
|
||||
"sha256:bbd2f4dfee1079f76943767fce837ade3087b578aeb9f69aec7857d5bf25db15",
|
||||
"sha256:bf39a9e19ce7298f1bd6a9758fa99707e9e5b1ebe5e90f2c3913a47bc548747c",
|
||||
"sha256:c11579638288e53fc94ad60022ff1b67865363e730ee41ad5e6f0a17188b327a",
|
||||
"sha256:c150eaa3dadbb2b5339675b88d4573c1be3cb6f2c33a6c83387e10cc0bf05bd3",
|
||||
"sha256:c53af463f4a40de78c58b8b2710ade243c81cbca641e34debf3396a9640d6ec1",
|
||||
"sha256:cb763ceceae04803adcc4e2d80d611ef201c73da32d8f2722e9d0ab0c7f10768",
|
||||
"sha256:cc75f58cdaf043fe6a7a6c04b3b5a0e694c6a9e24050967747251fb80d7bce0d",
|
||||
"sha256:d80998ed59176e8cba74028762fbd9b9153b9afc71ea118e63bbf5d4d0f9552b",
|
||||
"sha256:de31b5164d44ef4943db155b3e8e17929707cac1e5bd2f363e67a56e3af4af6e",
|
||||
"sha256:e66399cf0fc07de4dce4f588fc25bfe84a6d1285cc544e67987d22663393926d",
|
||||
"sha256:f0620511387790860b249b9241c2f13c3a80e21a73e0b861a2df24e9d6f56730",
|
||||
"sha256:f4eae045e6ab2bb54ca279733fe4eb85f1effda392666308250714e01907f394",
|
||||
"sha256:f92cdecb618e5fa4658aeb97d5eb3d2f47aa94ac6477c6daf0f306c5a3b9e6b1",
|
||||
"sha256:f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591"
|
||||
],
|
||||
"version": "==1.14.2"
|
||||
"version": "==1.14.3"
|
||||
},
|
||||
"chardet": {
|
||||
"hashes": [
|
||||
|
@ -131,7 +139,7 @@
|
|||
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
|
||||
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
||||
"version": "==1.15.0"
|
||||
},
|
||||
"solana": {
|
||||
|
@ -251,36 +259,44 @@
|
|||
},
|
||||
"cffi": {
|
||||
"hashes": [
|
||||
"sha256:0da50dcbccd7cb7e6c741ab7912b2eff48e85af217d72b57f80ebc616257125e",
|
||||
"sha256:12a453e03124069b6896107ee133ae3ab04c624bb10683e1ed1c1663df17c13c",
|
||||
"sha256:15419020b0e812b40d96ec9d369b2bc8109cc3295eac6e013d3261343580cc7e",
|
||||
"sha256:15a5f59a4808f82d8ec7364cbace851df591c2d43bc76bcbe5c4543a7ddd1bf1",
|
||||
"sha256:23e44937d7695c27c66a54d793dd4b45889a81b35c0751ba91040fe825ec59c4",
|
||||
"sha256:29c4688ace466a365b85a51dcc5e3c853c1d283f293dfcc12f7a77e498f160d2",
|
||||
"sha256:57214fa5430399dffd54f4be37b56fe22cedb2b98862550d43cc085fb698dc2c",
|
||||
"sha256:577791f948d34d569acb2d1add5831731c59d5a0c50a6d9f629ae1cefd9ca4a0",
|
||||
"sha256:6539314d84c4d36f28d73adc1b45e9f4ee2a89cdc7e5d2b0a6dbacba31906798",
|
||||
"sha256:65867d63f0fd1b500fa343d7798fa64e9e681b594e0a07dc934c13e76ee28fb1",
|
||||
"sha256:672b539db20fef6b03d6f7a14b5825d57c98e4026401fce838849f8de73fe4d4",
|
||||
"sha256:6843db0343e12e3f52cc58430ad559d850a53684f5b352540ca3f1bc56df0731",
|
||||
"sha256:7057613efefd36cacabbdbcef010e0a9c20a88fc07eb3e616019ea1692fa5df4",
|
||||
"sha256:76ada88d62eb24de7051c5157a1a78fd853cca9b91c0713c2e973e4196271d0c",
|
||||
"sha256:837398c2ec00228679513802e3744d1e8e3cb1204aa6ad408b6aff081e99a487",
|
||||
"sha256:8662aabfeab00cea149a3d1c2999b0731e70c6b5bac596d95d13f643e76d3d4e",
|
||||
"sha256:95e9094162fa712f18b4f60896e34b621df99147c2cee216cfa8f022294e8e9f",
|
||||
"sha256:99cc66b33c418cd579c0f03b77b94263c305c389cb0c6972dac420f24b3bf123",
|
||||
"sha256:9b219511d8b64d3fa14261963933be34028ea0e57455baf6781fe399c2c3206c",
|
||||
"sha256:ae8f34d50af2c2154035984b8b5fc5d9ed63f32fe615646ab435b05b132ca91b",
|
||||
"sha256:b9aa9d8818c2e917fa2c105ad538e222a5bce59777133840b93134022a7ce650",
|
||||
"sha256:bf44a9a0141a082e89c90e8d785b212a872db793a0080c20f6ae6e2a0ebf82ad",
|
||||
"sha256:c0b48b98d79cf795b0916c57bebbc6d16bb43b9fc9b8c9f57f4cf05881904c75",
|
||||
"sha256:da9d3c506f43e220336433dffe643fbfa40096d408cb9b7f2477892f369d5f82",
|
||||
"sha256:e4082d832e36e7f9b2278bc774886ca8207346b99f278e54c9de4834f17232f7",
|
||||
"sha256:e4b9b7af398c32e408c00eb4e0d33ced2f9121fd9fb978e6c1b57edd014a7d15",
|
||||
"sha256:e613514a82539fc48291d01933951a13ae93b6b444a88782480be32245ed4afa",
|
||||
"sha256:f5033952def24172e60493b68717792e3aebb387a8d186c43c020d9363ee7281"
|
||||
"sha256:005f2bfe11b6745d726dbb07ace4d53f057de66e336ff92d61b8c7e9c8f4777d",
|
||||
"sha256:09e96138280241bd355cd585148dec04dbbedb4f46128f340d696eaafc82dd7b",
|
||||
"sha256:0b1ad452cc824665ddc682400b62c9e4f5b64736a2ba99110712fdee5f2505c4",
|
||||
"sha256:0ef488305fdce2580c8b2708f22d7785ae222d9825d3094ab073e22e93dfe51f",
|
||||
"sha256:15f351bed09897fbda218e4db5a3d5c06328862f6198d4fb385f3e14e19decb3",
|
||||
"sha256:22399ff4870fb4c7ef19fff6eeb20a8bbf15571913c181c78cb361024d574579",
|
||||
"sha256:23e5d2040367322824605bc29ae8ee9175200b92cb5483ac7d466927a9b3d537",
|
||||
"sha256:2791f68edc5749024b4722500e86303a10d342527e1e3bcac47f35fbd25b764e",
|
||||
"sha256:2f9674623ca39c9ebe38afa3da402e9326c245f0f5ceff0623dccdac15023e05",
|
||||
"sha256:3363e77a6176afb8823b6e06db78c46dbc4c7813b00a41300a4873b6ba63b171",
|
||||
"sha256:33c6cdc071ba5cd6d96769c8969a0531be2d08c2628a0143a10a7dcffa9719ca",
|
||||
"sha256:3b8eaf915ddc0709779889c472e553f0d3e8b7bdf62dab764c8921b09bf94522",
|
||||
"sha256:3cb3e1b9ec43256c4e0f8d2837267a70b0e1ca8c4f456685508ae6106b1f504c",
|
||||
"sha256:3eeeb0405fd145e714f7633a5173318bd88d8bbfc3dd0a5751f8c4f70ae629bc",
|
||||
"sha256:44f60519595eaca110f248e5017363d751b12782a6f2bd6a7041cba275215f5d",
|
||||
"sha256:4d7c26bfc1ea9f92084a1d75e11999e97b62d63128bcc90c3624d07813c52808",
|
||||
"sha256:529c4ed2e10437c205f38f3691a68be66c39197d01062618c55f74294a4a4828",
|
||||
"sha256:6642f15ad963b5092d65aed022d033c77763515fdc07095208f15d3563003869",
|
||||
"sha256:85ba797e1de5b48aa5a8427b6ba62cf69607c18c5d4eb747604b7302f1ec382d",
|
||||
"sha256:8f0f1e499e4000c4c347a124fa6a27d37608ced4fe9f7d45070563b7c4c370c9",
|
||||
"sha256:a624fae282e81ad2e4871bdb767e2c914d0539708c0f078b5b355258293c98b0",
|
||||
"sha256:b0358e6fefc74a16f745afa366acc89f979040e0cbc4eec55ab26ad1f6a9bfbc",
|
||||
"sha256:bbd2f4dfee1079f76943767fce837ade3087b578aeb9f69aec7857d5bf25db15",
|
||||
"sha256:bf39a9e19ce7298f1bd6a9758fa99707e9e5b1ebe5e90f2c3913a47bc548747c",
|
||||
"sha256:c11579638288e53fc94ad60022ff1b67865363e730ee41ad5e6f0a17188b327a",
|
||||
"sha256:c150eaa3dadbb2b5339675b88d4573c1be3cb6f2c33a6c83387e10cc0bf05bd3",
|
||||
"sha256:c53af463f4a40de78c58b8b2710ade243c81cbca641e34debf3396a9640d6ec1",
|
||||
"sha256:cb763ceceae04803adcc4e2d80d611ef201c73da32d8f2722e9d0ab0c7f10768",
|
||||
"sha256:cc75f58cdaf043fe6a7a6c04b3b5a0e694c6a9e24050967747251fb80d7bce0d",
|
||||
"sha256:d80998ed59176e8cba74028762fbd9b9153b9afc71ea118e63bbf5d4d0f9552b",
|
||||
"sha256:de31b5164d44ef4943db155b3e8e17929707cac1e5bd2f363e67a56e3af4af6e",
|
||||
"sha256:e66399cf0fc07de4dce4f588fc25bfe84a6d1285cc544e67987d22663393926d",
|
||||
"sha256:f0620511387790860b249b9241c2f13c3a80e21a73e0b861a2df24e9d6f56730",
|
||||
"sha256:f4eae045e6ab2bb54ca279733fe4eb85f1effda392666308250714e01907f394",
|
||||
"sha256:f92cdecb618e5fa4658aeb97d5eb3d2f47aa94ac6477c6daf0f306c5a3b9e6b1",
|
||||
"sha256:f92f789e4f9241cd262ad7a555ca2c648a98178a953af117ef7fad46aa1d5591"
|
||||
],
|
||||
"version": "==1.14.2"
|
||||
"version": "==1.14.3"
|
||||
},
|
||||
"chardet": {
|
||||
"hashes": [
|
||||
|
@ -297,6 +313,14 @@
|
|||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==7.1.2"
|
||||
},
|
||||
"colorama": {
|
||||
"hashes": [
|
||||
"sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff",
|
||||
"sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==0.4.3"
|
||||
},
|
||||
"coverage": {
|
||||
"hashes": [
|
||||
"sha256:0203acd33d2298e19b57451ebb0bed0ab0c602e5cf5a818591b4918b1f97d516",
|
||||
|
@ -352,6 +376,14 @@
|
|||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==0.6.0"
|
||||
},
|
||||
"docutils": {
|
||||
"hashes": [
|
||||
"sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af",
|
||||
"sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==0.16"
|
||||
},
|
||||
"entrypoints": {
|
||||
"hashes": [
|
||||
"sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19",
|
||||
|
@ -378,11 +410,11 @@
|
|||
},
|
||||
"importlib-metadata": {
|
||||
"hashes": [
|
||||
"sha256:90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783edea9f9b077f83",
|
||||
"sha256:dc15b2969b4ce36305c51eebe62d418ac7791e9a157911d58bfb1f9ccd8e2070"
|
||||
"sha256:77a540690e24b0305878c37ffd421785a6f7e53c8b5720d211b211de8d0e95da",
|
||||
"sha256:cefa1a2f919b866c5beb7c9f7b0ebb4061f30a8a9bf16d609b000e2dfaceb9c3"
|
||||
],
|
||||
"markers": "python_version < '3.8'",
|
||||
"version": "==1.7.0"
|
||||
"markers": "python_version < '3.8' and python_version < '3.8'",
|
||||
"version": "==2.0.0"
|
||||
},
|
||||
"iniconfig": {
|
||||
"hashes": [
|
||||
|
@ -416,11 +448,11 @@
|
|||
},
|
||||
"isort": {
|
||||
"hashes": [
|
||||
"sha256:171c5f365791073426b5ed3a156c2081a47f88c329161fd28228ff2da4c97ddb",
|
||||
"sha256:ba91218eee31f1e300ecc079ef0c524cea3fc41bfbb979cbdf5fd3a889e3cfed"
|
||||
"sha256:36f0c6659b9000597e92618d05b72d4181104cf59472b1c6a039e3783f930c95",
|
||||
"sha256:ba040c24d20aa302f78f4747df549573ae1eaf8e1084269199154da9c483f07f"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==5.5.2"
|
||||
"version": "==5.5.4"
|
||||
},
|
||||
"jedi": {
|
||||
"hashes": [
|
||||
|
@ -478,10 +510,10 @@
|
|||
},
|
||||
"jupyterlab-pygments": {
|
||||
"hashes": [
|
||||
"sha256:19a0ccde7daddec638363cd3d60b63a4f6544c9181d65253317b2fb492a797b9",
|
||||
"sha256:c9535e5999f29bff90bd0fa423717dcaf247b71fad505d66b17d3217e9021fc5"
|
||||
"sha256:abfb880fd1561987efaefcb2d2ac75145d2a5d0139b1876d5be806e32f630008",
|
||||
"sha256:cfcda0873626150932f438eccf0f8bf22bfa92345b814890ab360d666b254146"
|
||||
],
|
||||
"version": "==0.1.1"
|
||||
"version": "==0.1.2"
|
||||
},
|
||||
"jupyterlab-server": {
|
||||
"hashes": [
|
||||
|
@ -491,6 +523,14 @@
|
|||
"markers": "python_version >= '3.5'",
|
||||
"version": "==1.2.0"
|
||||
},
|
||||
"keyring": {
|
||||
"hashes": [
|
||||
"sha256:4e34ea2fdec90c1c43d6610b5a5fafa1b9097db1802948e90caf5763974b8f8d",
|
||||
"sha256:9aeadd006a852b78f4b4ef7c7556c2774d2432bbef8ee538a3e9089ac8b11466"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==21.4.0"
|
||||
},
|
||||
"lazy-object-proxy": {
|
||||
"hashes": [
|
||||
"sha256:0c4b206227a8097f05c4dbdd323c50edf81f15db3b8dc064d08c62d37e1a504d",
|
||||
|
@ -571,14 +611,6 @@
|
|||
],
|
||||
"version": "==0.8.4"
|
||||
},
|
||||
"more-itertools": {
|
||||
"hashes": [
|
||||
"sha256:6f83822ae94818eae2612063a5101a7311e68ae8002005b5e05f03fd74a86a20",
|
||||
"sha256:9b30f12df9393f0d28af9210ff8efe48d10c94f73e5daf886f10c4b0b0b4f03c"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==8.5.0"
|
||||
},
|
||||
"mypy": {
|
||||
"hashes": [
|
||||
"sha256:2c6cde8aa3426c1682d35190b59b71f661237d74b053822ea3d748e2c9578a7c",
|
||||
|
@ -616,11 +648,11 @@
|
|||
},
|
||||
"nbconvert": {
|
||||
"hashes": [
|
||||
"sha256:06c64fd45d4b6424e88eb3bf7e5eb205a0fc8a4c0a69666f0b9a2262c76f59e1",
|
||||
"sha256:d8490f40368a1324521f8e740a0e341dc40bcd6e6926da64fa64b3a8801f16a3"
|
||||
"sha256:68335477288aab8a9b9ec03002dce59b4eb1ca967116741ec218a4e78c129efd",
|
||||
"sha256:d8549f62e739a4d51f275c2932b1783ee5039dde07a2b71de70c0296a42c8394"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==6.0.3"
|
||||
"version": "==6.0.6"
|
||||
},
|
||||
"nbformat": {
|
||||
"hashes": [
|
||||
|
@ -632,11 +664,11 @@
|
|||
},
|
||||
"nest-asyncio": {
|
||||
"hashes": [
|
||||
"sha256:5773054bbc14579b000236f85bc01ecced7ffd045ec8ca4a9809371ec65a59c8",
|
||||
"sha256:ea51120725212ef02e5870dd77fc67ba7343fc945e3b9a7ff93384436e043b6a"
|
||||
"sha256:a4487c4f49f2d11a7bb89a512a6886b6a5045f47097f49815b2851aaa8599cf0",
|
||||
"sha256:b86c3193abda5b2eeccf8c79894bc71c680369a178f4b068514ac00720b14e01"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==1.4.0"
|
||||
"version": "==1.4.1"
|
||||
},
|
||||
"notebook": {
|
||||
"hashes": [
|
||||
|
@ -690,6 +722,13 @@
|
|||
],
|
||||
"version": "==0.7.5"
|
||||
},
|
||||
"pkginfo": {
|
||||
"hashes": [
|
||||
"sha256:7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb",
|
||||
"sha256:a6d9e40ca61ad3ebd0b72fbadd4fba16e4c0e4df0428c041e01e06eb6ee71f32"
|
||||
],
|
||||
"version": "==1.5.0.1"
|
||||
},
|
||||
"pluggy": {
|
||||
"hashes": [
|
||||
"sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0",
|
||||
|
@ -782,7 +821,7 @@
|
|||
"sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1",
|
||||
"sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"
|
||||
],
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'",
|
||||
"version": "==2.4.7"
|
||||
},
|
||||
"pyrsistent": {
|
||||
|
@ -794,11 +833,11 @@
|
|||
},
|
||||
"pytest": {
|
||||
"hashes": [
|
||||
"sha256:0e37f61339c4578776e090c3b8f6b16ce4db333889d65d0efb305243ec544b40",
|
||||
"sha256:c8f57c2a30983f469bf03e68cdfa74dc474ce56b8f280ddcb080dfd91df01043"
|
||||
"sha256:1cd09785c0a50f9af72220dd12aa78cfa49cbffc356c61eab009ca189e018a33",
|
||||
"sha256:d010e24666435b39a4cf48740b039885642b6c273a3f77be3e7e03554d2806b7"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==6.0.2"
|
||||
"version": "==6.1.0"
|
||||
},
|
||||
"pytest-cov": {
|
||||
"hashes": [
|
||||
|
@ -821,7 +860,7 @@
|
|||
"sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c",
|
||||
"sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
||||
"version": "==2.8.1"
|
||||
},
|
||||
"pyzmq": {
|
||||
|
@ -855,34 +894,41 @@
|
|||
"sha256:f1a25a61495b6f7bb986accc5b597a3541d9bd3ef0016f50be16dbb32025b302",
|
||||
"sha256:fa411b1d8f371d3a49d31b0789eb6da2537dadbb2aef74a43aa99a78195c3f76"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
||||
"version": "==19.0.2"
|
||||
},
|
||||
"readme-renderer": {
|
||||
"hashes": [
|
||||
"sha256:cbe9db71defedd2428a1589cdc545f9bd98e59297449f69d721ef8f1cfced68d",
|
||||
"sha256:cc4957a803106e820d05d14f71033092537a22daa4f406dfbdd61177e0936376"
|
||||
],
|
||||
"version": "==26.0"
|
||||
},
|
||||
"regex": {
|
||||
"hashes": [
|
||||
"sha256:0dc64ee3f33cd7899f79a8d788abfbec168410be356ed9bd30bbd3f0a23a7204",
|
||||
"sha256:1269fef3167bb52631ad4fa7dd27bf635d5a0790b8e6222065d42e91bede4162",
|
||||
"sha256:14a53646369157baa0499513f96091eb70382eb50b2c82393d17d7ec81b7b85f",
|
||||
"sha256:3a3af27a8d23143c49a3420efe5b3f8cf1a48c6fc8bc6856b03f638abc1833bb",
|
||||
"sha256:46bac5ca10fb748d6c55843a931855e2727a7a22584f302dd9bb1506e69f83f6",
|
||||
"sha256:4c037fd14c5f4e308b8370b447b469ca10e69427966527edcab07f52d88388f7",
|
||||
"sha256:51178c738d559a2d1071ce0b0f56e57eb315bcf8f7d4cf127674b533e3101f88",
|
||||
"sha256:5ea81ea3dbd6767873c611687141ec7b06ed8bab43f68fad5b7be184a920dc99",
|
||||
"sha256:6961548bba529cac7c07af2fd4d527c5b91bb8fe18995fed6044ac22b3d14644",
|
||||
"sha256:75aaa27aa521a182824d89e5ab0a1d16ca207318a6b65042b046053cfc8ed07a",
|
||||
"sha256:7a2dd66d2d4df34fa82c9dc85657c5e019b87932019947faece7983f2089a840",
|
||||
"sha256:8a51f2c6d1f884e98846a0a9021ff6861bdb98457879f412fdc2b42d14494067",
|
||||
"sha256:9c568495e35599625f7b999774e29e8d6b01a6fb684d77dee1f56d41b11b40cd",
|
||||
"sha256:9eddaafb3c48e0900690c1727fba226c4804b8e6127ea409689c3bb492d06de4",
|
||||
"sha256:bbb332d45b32df41200380fff14712cb6093b61bd142272a10b16778c418e98e",
|
||||
"sha256:bc3d98f621898b4a9bc7fecc00513eec8f40b5b83913d74ccb445f037d58cd89",
|
||||
"sha256:c11d6033115dc4887c456565303f540c44197f4fc1a2bfb192224a301534888e",
|
||||
"sha256:c50a724d136ec10d920661f1442e4a8b010a4fe5aebd65e0c2241ea41dbe93dc",
|
||||
"sha256:d0a5095d52b90ff38592bbdc2644f17c6d495762edf47d876049cfd2968fbccf",
|
||||
"sha256:d6cff2276e502b86a25fd10c2a96973fdb45c7a977dca2138d661417f3728341",
|
||||
"sha256:e46d13f38cfcbb79bfdb2964b0fe12561fe633caf964a77a5f8d4e45fe5d2ef7"
|
||||
"sha256:088afc8c63e7bd187a3c70a94b9e50ab3f17e1d3f52a32750b5b77dbe99ef5ef",
|
||||
"sha256:1fe0a41437bbd06063aa184c34804efa886bcc128222e9916310c92cd54c3b4c",
|
||||
"sha256:41bb65f54bba392643557e617316d0d899ed5b4946dccee1cb6696152b29844b",
|
||||
"sha256:4318d56bccfe7d43e5addb272406ade7a2274da4b70eb15922a071c58ab0108c",
|
||||
"sha256:4707f3695b34335afdfb09be3802c87fa0bc27030471dbc082f815f23688bc63",
|
||||
"sha256:5533a959a1748a5c042a6da71fe9267a908e21eded7a4f373efd23a2cbdb0ecc",
|
||||
"sha256:5f18875ac23d9aa2f060838e8b79093e8bb2313dbaaa9f54c6d8e52a5df097be",
|
||||
"sha256:60b0e9e6dc45683e569ec37c55ac20c582973841927a85f2d8a7d20ee80216ab",
|
||||
"sha256:84e9407db1b2eb368b7ecc283121b5e592c9aaedbe8c78b1a2f1102eb2e21d19",
|
||||
"sha256:8d69cef61fa50c8133382e61fd97439de1ae623fe943578e477e76a9d9471637",
|
||||
"sha256:9a02d0ae31d35e1ec12a4ea4d4cca990800f66a917d0fb997b20fbc13f5321fc",
|
||||
"sha256:9bc13e0d20b97ffb07821aa3e113f9998e84994fe4d159ffa3d3a9d1b805043b",
|
||||
"sha256:a6f32aea4260dfe0e55dc9733ea162ea38f0ea86aa7d0f77b15beac5bf7b369d",
|
||||
"sha256:ae91972f8ac958039920ef6e8769277c084971a142ce2b660691793ae44aae6b",
|
||||
"sha256:c570f6fa14b9c4c8a4924aaad354652366577b4f98213cf76305067144f7b100",
|
||||
"sha256:d23a18037313714fb3bb5a94434d3151ee4300bae631894b1ac08111abeaa4a3",
|
||||
"sha256:eaf548d117b6737df379fdd53bdde4f08870e66d7ea653e230477f071f861121",
|
||||
"sha256:ebbe29186a3d9b0c591e71b7393f1ae08c83cb2d8e517d2a822b8f7ec99dfd8b",
|
||||
"sha256:eda4771e0ace7f67f58bc5b560e27fb20f32a148cbc993b0c3835970935c2707",
|
||||
"sha256:f1b3afc574a3db3b25c89161059d857bd4909a1269b0b3cb3c904677c8c4a3f7",
|
||||
"sha256:f2388013e68e750eaa16ccbea62d4130180c26abb1d8e5d584b9baf69672b30f"
|
||||
],
|
||||
"version": "==2020.7.14"
|
||||
"version": "==2020.9.27"
|
||||
},
|
||||
"requests": {
|
||||
"hashes": [
|
||||
|
@ -892,6 +938,20 @@
|
|||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
|
||||
"version": "==2.24.0"
|
||||
},
|
||||
"requests-toolbelt": {
|
||||
"hashes": [
|
||||
"sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f",
|
||||
"sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0"
|
||||
],
|
||||
"version": "==0.9.1"
|
||||
},
|
||||
"rfc3986": {
|
||||
"hashes": [
|
||||
"sha256:112398da31a3344dc25dbf477d8df6cb34f9278a94fee2625d89e4514be8bb9d",
|
||||
"sha256:af9147e9aceda37c91a05f4deb128d4b4b49d6b199775fd2d2927768abdc8f50"
|
||||
],
|
||||
"version": "==1.4.0"
|
||||
},
|
||||
"rope": {
|
||||
"hashes": [
|
||||
"sha256:658ad6705f43dcf3d6df379da9486529cf30e02d9ea14c5682aa80eb33b649e1"
|
||||
|
@ -911,7 +971,7 @@
|
|||
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
|
||||
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
|
||||
"version": "==1.15.0"
|
||||
},
|
||||
"snowballstemmer": {
|
||||
|
@ -923,11 +983,11 @@
|
|||
},
|
||||
"terminado": {
|
||||
"hashes": [
|
||||
"sha256:7ceea4c1644b0e95588d1d2ba09c5bf365b318c26d0a13ef6a5f2751a2f6efa3",
|
||||
"sha256:e0eaea25d978d9a8d557f63ef23b0ec81a2f9e22b9dabfe5db4a79d8d38dd7c2"
|
||||
"sha256:3da72a155b807b01c9e8a5babd214e052a0a45a975751da3521a1c3381ce6d76",
|
||||
"sha256:c55f025beb06c2e2669f7ba5a04f47bb3304c30c05842d4981d8f0fc9ab3b4e3"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==0.9.0"
|
||||
"version": "==0.9.1"
|
||||
},
|
||||
"testpath": {
|
||||
"hashes": [
|
||||
|
@ -958,6 +1018,14 @@
|
|||
"markers": "python_version >= '3.5'",
|
||||
"version": "==6.0.4"
|
||||
},
|
||||
"tqdm": {
|
||||
"hashes": [
|
||||
"sha256:2dd75fdb764f673b8187643496fcfbeac38348015b665878e582b152f3391cdb",
|
||||
"sha256:93b7a6a9129fce904f6df4cf3ae7ff431d779be681a95c3344c26f3e6c09abfa"
|
||||
],
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1'",
|
||||
"version": "==4.50.0"
|
||||
},
|
||||
"traitlets": {
|
||||
"hashes": [
|
||||
"sha256:86c9351f94f95de9db8a04ad8e892da299a088a64fd283f9f6f18770ae5eae1b",
|
||||
|
@ -966,6 +1034,14 @@
|
|||
"markers": "python_version >= '3.7'",
|
||||
"version": "==5.0.4"
|
||||
},
|
||||
"twine": {
|
||||
"hashes": [
|
||||
"sha256:34352fd52ec3b9d29837e6072d5a2a7c6fe4290e97bba46bb8d478b5c598f7ab",
|
||||
"sha256:ba9ff477b8d6de0c89dd450e70b2185da190514e91c42cc62f96850025c10472"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==3.2.0"
|
||||
},
|
||||
"typed-ast": {
|
||||
"hashes": [
|
||||
"sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355",
|
||||
|
@ -990,7 +1066,7 @@
|
|||
"sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4",
|
||||
"sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7"
|
||||
],
|
||||
"markers": "python_version < '3.8' and implementation_name == 'cpython'",
|
||||
"markers": "implementation_name == 'cpython' and python_version < '3.8'",
|
||||
"version": "==1.4.1"
|
||||
},
|
||||
"typing-extensions": {
|
||||
|
@ -1031,11 +1107,11 @@
|
|||
},
|
||||
"zipp": {
|
||||
"hashes": [
|
||||
"sha256:aa36550ff0c0b7ef7fa639055d797116ee891440eac1a56f378e2d3179e0320b",
|
||||
"sha256:c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96"
|
||||
"sha256:43f4fa8d8bb313e65d8323a3952ef8756bf40f9a5c3ea7334be23ee4ec8278b6",
|
||||
"sha256:b52f22895f4cfce194bc8172f3819ee8de7540aa6d873535a8668b730b8b411f"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.1.0"
|
||||
"version": "==3.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
32
README.md
32
README.md
|
@ -9,13 +9,14 @@ Python client library for interacting with the [Project Serum](https://projectse
|
|||
## Get Started
|
||||
|
||||
```python
|
||||
from src.market import Market
|
||||
from pyserum.connection import conn
|
||||
from pyserum.market import Market
|
||||
|
||||
endpoint = "https://api.mainnet-beta.solana.com/"
|
||||
market_address = "CAgAeMD7quTdnr6RPa7JySQpjf3irAmefYNdTb6anemq" # Address for BTC/USDC
|
||||
cc = conn("https://api.mainnet-beta.solana.com/")
|
||||
market_address = "5LgJphS6D5zXwUVPU7eCryDBkyta3AidrJ5vjNU6BcGW" # Address for BTC/USDC
|
||||
|
||||
# Load the given market
|
||||
market = Market.load(endpoint, market_address, None)
|
||||
market = Market.load(cc, market_address)
|
||||
asks = market.load_asks()
|
||||
# Show all current ask order
|
||||
print("Ask Orders:")
|
||||
|
@ -36,23 +37,6 @@ for bid in bids:
|
|||
|
||||
The source of truth of the market address can be found [here](https://github.com/project-serum/serum-js/blob/master/src/tokens_and_markets.ts). Feel free to open a PR if the following addresses needs modification or addition.
|
||||
|
||||
| Currency Pair | Address |
|
||||
| :-----------: | :------------------------------------------: |
|
||||
| MSRM/USDT | H4snTKK9adiU15gP22ErfZYtro3aqR9BTMXiH3AwiUTQ |
|
||||
| MSRM/USDC | 7kgkDyW7dmyMeP8KFXzbcUZz1R2WHsovDZ7n3ihZuNDS |
|
||||
| BTC/USDT | 8AcVjMG2LTbpkjNoyq8RwysokqZunkjy3d5JDzxC6BJa |
|
||||
| BTC/USDC | CAgAeMD7quTdnr6RPa7JySQpjf3irAmefYNdTb6anemq |
|
||||
| ETH/USDT | HfCZdJ1wfsWKfYP2qyWdXTT5PWAGWFctzFjLH48U1Hsd |
|
||||
| ETH/USDC | ASKiV944nKg1W9vsf7hf3fTsjawK6DwLwrnB2LH9n61c |
|
||||
| SRM/USDT | HARFLhSq8nECZk4DVFKvzqXMNMA9a3hjvridGMFizeLa |
|
||||
| SRM/USDC | 68J6nkWToik6oM9rTatKSR5ibVSykAtzftBUEAvpRsys |
|
||||
| FTT/USDT | DHDdghmkBhEpReno3tbzBPtsxCt6P3KrMzZvxavTktJt |
|
||||
| FTT/USDC | FZqrBXz7ADGsmDf1TM9YgysPUfvtG8rJiNUrqDpHc9Au |
|
||||
| YFI/USDT | 5zu5bTZZvqESAAgFsr12CUMxdQvMrvU9CgvC1GW8vJdf |
|
||||
| YFI/USDC | FJg9FUtbN3fg3YFbMCFiZKjGh5Bn4gtzxZmtxFzmz9kT |
|
||||
| LINK/USDT | F5xschQBMpu1gD2q1babYEAVJHR1buj1YazLiXyQNqSW |
|
||||
| LINK/USDC | 7GZ59DMgJ7D6dfoJTpszPayTRyua9jwcaGJXaRMMF1my |
|
||||
|
||||
## Development
|
||||
|
||||
### Setup
|
||||
|
@ -75,6 +59,12 @@ pipenv install --dev
|
|||
pipenv shell
|
||||
```
|
||||
|
||||
### Format
|
||||
|
||||
```
|
||||
make format
|
||||
```
|
||||
|
||||
### Lint
|
||||
|
||||
```sh
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from src.market import Market\n",
|
||||
"from pyserum.market import Market\n",
|
||||
"\n",
|
||||
"market = Market.load(\"https://api.mainnet-beta.solana.com\", \"CAgAeMD7quTdnr6RPa7JySQpjf3irAmefYNdTb6anemq\", None)"
|
||||
]
|
||||
|
@ -46,7 +46,7 @@
|
|||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from src.market import Market\n",
|
||||
"from pyserum.market import Market\n",
|
||||
"\n",
|
||||
"endpoint = \"https://api.mainnet-beta.solana.com/\"\n",
|
||||
"market_address = \"CAgAeMD7quTdnr6RPa7JySQpjf3irAmefYNdTb6anemq\" # Address for BTC/USDC\n",
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
"""PySerum."""
|
||||
|
||||
import sys
|
||||
|
||||
__import__("pkg_resources").declare_namespace("pyserum") # type: ignore
|
||||
|
||||
if sys.version_info < (3, 7):
|
||||
raise EnvironmentError("Python 3.7 or above is required.")
|
|
@ -35,9 +35,8 @@ def __from_bytes(
|
|||
|
||||
|
||||
def __parse_queue_item(buffer: Sequence[int], queue_type: QueueType) -> Union[Event, Request]:
|
||||
layout = EVENT_LAYOUT if queue_type == QueueType.Event else REQUEST_LAYOUT
|
||||
parsed_item = layout.parse(buffer)
|
||||
if queue_type == QueueType.Event: # pylint: disable=no-else-return
|
||||
parsed_item = EVENT_LAYOUT.parse(buffer)
|
||||
parsed_event_flags = parsed_item.event_flags
|
||||
event_flags = EventFlags(
|
||||
fill=parsed_event_flags.fill,
|
||||
|
@ -58,6 +57,7 @@ def __parse_queue_item(buffer: Sequence[int], queue_type: QueueType) -> Union[Ev
|
|||
client_order_id=parsed_item.client_order_id,
|
||||
)
|
||||
else:
|
||||
parsed_item = REQUEST_LAYOUT.parse(buffer)
|
||||
parsed_request_flags = parsed_item.request_flags
|
||||
request_flags = ReuqestFlags(
|
||||
new_order=parsed_request_flags.new_order,
|
||||
|
@ -89,5 +89,5 @@ def decode_request_queue(buffer: bytes, history: Optional[int] = None) -> List[R
|
|||
def decode_event_queue(buffer: bytes, history: Optional[int] = None) -> List[Event]:
|
||||
header, nodes = __from_bytes(buffer, QueueType.Event, history)
|
||||
if not header.account_flags.initialized or not header.account_flags.event_queue:
|
||||
raise Exception("Invalid events queue, either not initialized or not a request queue.")
|
||||
raise Exception("Invalid events queue, either not initialized or not a event queue.")
|
||||
return cast(List[Event], nodes)
|
|
@ -14,8 +14,8 @@ from spl.token.constants import ACCOUNT_LEN, TOKEN_PROGRAM_ID, WRAPPED_SOL_MINT
|
|||
from spl.token.instructions import CloseAccountParams # type: ignore
|
||||
from spl.token.instructions import InitializeAccountParams, close_account, initialize_account
|
||||
|
||||
import src.instructions as instructions
|
||||
import src.market.types as t
|
||||
import pyserum.instructions as instructions
|
||||
import pyserum.market.types as t
|
||||
|
||||
from .._layouts.open_orders import OPEN_ORDERS_LAYOUT
|
||||
from ..enums import OrderType, Side
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
|||
|
||||
from typing import Iterable, List, Sequence, Union
|
||||
|
||||
import src.market.types as t
|
||||
import pyserum.market.types as t
|
||||
|
||||
from ..enums import Side
|
||||
from ._internal.slab import Slab, SlabInnerNode, SlabLeafNode
|
|
@ -7,7 +7,7 @@ from construct import Container, Struct # type: ignore
|
|||
from solana.publickey import PublicKey
|
||||
from solana.rpc.api import Client
|
||||
|
||||
from src.utils import get_mint_decimals, load_bytes_data
|
||||
from pyserum.utils import get_mint_decimals, load_bytes_data
|
||||
|
||||
from .._layouts.market import MARKET_LAYOUT
|
||||
from .types import AccountFlags
|
|
@ -4,7 +4,7 @@ from solana.publickey import PublicKey
|
|||
from solana.rpc.api import Client
|
||||
from spl.token.constants import WRAPPED_SOL_MINT # type: ignore # TODO: Remove ignore.
|
||||
|
||||
from src._layouts.market import MINT_LAYOUT
|
||||
from pyserum._layouts.market import MINT_LAYOUT
|
||||
|
||||
|
||||
def load_bytes_data(addr: PublicKey, conn: Client):
|
28
setup.py
28
setup.py
|
@ -1 +1,29 @@
|
|||
"""setuptools module for PySerum."""
|
||||
|
||||
from setuptools import find_packages, setup
|
||||
|
||||
setup(
|
||||
name="pyserum",
|
||||
version="0.0.1a1",
|
||||
author="serum-community",
|
||||
description="""Python client library for interacting with the Project Serum DEX.""",
|
||||
include_package_data=True,
|
||||
install_requires=[
|
||||
"construct>=2.10.56, <3.0.0",
|
||||
"solana>=0.3.0, <1.0.0",
|
||||
],
|
||||
python_requires=">=3.7, <4",
|
||||
license="MIT",
|
||||
package_data={"pyserum": ["py.typed"]},
|
||||
packages=find_packages(exclude=("tests", "test.*")),
|
||||
url="https://github.com/serum-community/pyserum",
|
||||
zip_safe=False, # required per mypy
|
||||
classifiers=[
|
||||
"Development Status :: 2 - Pre-Alpha",
|
||||
"Intended Audience :: Developers",
|
||||
"License :: OSI Approved :: MIT License",
|
||||
"Natural Language :: English",
|
||||
"Programming Language :: Python :: 3.7",
|
||||
"Programming Language :: Python :: 3.8",
|
||||
],
|
||||
)
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
"""PySerum."""
|
|
@ -5,7 +5,7 @@ from solana.account import Account
|
|||
from solana.publickey import PublicKey
|
||||
from solana.rpc.api import Client
|
||||
|
||||
from src.connection import conn
|
||||
from pyserum.connection import conn
|
||||
|
||||
|
||||
@pytest.mark.integration
|
||||
|
|
|
@ -5,8 +5,8 @@ from solana.account import Account
|
|||
from solana.publickey import PublicKey
|
||||
from solana.rpc.api import Client
|
||||
|
||||
from src.enums import OrderType, Side
|
||||
from src.market import Market
|
||||
from pyserum.enums import OrderType, Side
|
||||
from pyserum.market import Market
|
||||
|
||||
from .utils import confirm_transaction
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
"""Tests for account flags layout."""
|
||||
|
||||
from src._layouts.account_flags import ACCOUNT_FLAGS_LAYOUT
|
||||
from pyserum._layouts.account_flags import ACCOUNT_FLAGS_LAYOUT
|
||||
|
||||
|
||||
def default_flags():
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
"""Tests for instruction layouts."""
|
||||
from solana.publickey import PublicKey
|
||||
|
||||
from src._layouts.instructions import _VERSION, INSTRUCTIONS_LAYOUT, InstructionType
|
||||
from src.enums import OrderType, Side
|
||||
from pyserum._layouts.instructions import _VERSION, INSTRUCTIONS_LAYOUT, InstructionType
|
||||
from pyserum.enums import OrderType, Side
|
||||
|
||||
|
||||
def assert_parsed_layout(instruction_type, args, raw_bytes):
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
from solana.publickey import PublicKey
|
||||
|
||||
import src.instructions as inlib
|
||||
from src.enums import OrderType, Side
|
||||
import pyserum.instructions as inlib
|
||||
from pyserum.enums import OrderType, Side
|
||||
|
||||
|
||||
def test_initialize_market():
|
||||
|
|
|
@ -4,9 +4,9 @@ import pytest
|
|||
from construct import Container
|
||||
from solana.rpc.api import Client
|
||||
|
||||
from src.instructions import DEFAULT_DEX_PROGRAM_ID
|
||||
from src.market import Market, OrderBook, State
|
||||
from src.market.types import AccountFlags, Order, OrderInfo
|
||||
from pyserum.instructions import DEFAULT_DEX_PROGRAM_ID
|
||||
from pyserum.market import Market, OrderBook, State
|
||||
from pyserum.market.types import AccountFlags, Order, OrderInfo
|
||||
|
||||
from .binary_file_path import ASK_ORDER_BIN_PATH
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ import base64
|
|||
import pytest
|
||||
from solana.publickey import PublicKey
|
||||
|
||||
from src.open_orders_account import OPEN_ORDERS_LAYOUT, OpenOrdersAccount
|
||||
from pyserum.open_orders_account import OPEN_ORDERS_LAYOUT, OpenOrdersAccount
|
||||
|
||||
from .binary_file_path import OPEN_ORDER_ACCOUNT_BIN_PATH
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import base64
|
||||
|
||||
from src.market._internal.queue import decode_event_queue
|
||||
from pyserum.market._internal.queue import decode_event_queue
|
||||
|
||||
from .binary_file_path import EVENT_QUEUE_BIN_PATH
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
import base64
|
||||
|
||||
from src._layouts.slab import ORDER_BOOK_LAYOUT, SLAB_HEADER_LAYOUT, SLAB_LAYOUT, SLAB_NODE_LAYOUT
|
||||
from src.market._internal.slab import Slab
|
||||
from pyserum._layouts.slab import ORDER_BOOK_LAYOUT, SLAB_HEADER_LAYOUT, SLAB_LAYOUT, SLAB_NODE_LAYOUT
|
||||
from pyserum.market._internal.slab import Slab
|
||||
|
||||
from .binary_file_path import ASK_ORDER_BIN_PATH
|
||||
|
||||
|
|
Loading…
Reference in New Issue