From da3c0461476ca204d0fd4cd369b4640f8e54796d Mon Sep 17 00:00:00 2001 From: PayLink Protocol Date: Sat, 30 Nov 2024 15:26:41 +0100 Subject: [PATCH] Add files via upload --- LICENSE | 26 ++++++++++++ README.md | 16 ++++++++ build/lib/paylink_protocol/__init__.py | 2 + build/lib/paylink_protocol/constants.py | 2 + build/lib/paylink_protocol/event.py | 10 +++++ build/lib/paylink_protocol/exceptions.py | 2 + build/lib/paylink_protocol/manager.py | 38 ++++++++++++++++++ dist/paylink_protocol-1.0.0-py3-none-any.whl | Bin 0 -> 4263 bytes dist/paylink_protocol-1.0.0.tar.gz | Bin 0 -> 3192 bytes examples/listen_events.py | 7 ++++ paylink_protocol.egg-info/PKG-INFO | 32 +++++++++++++++ paylink_protocol.egg-info/SOURCES.txt | 13 ++++++ .../dependency_links.txt | 1 + paylink_protocol.egg-info/requires.txt | 2 + paylink_protocol.egg-info/top_level.txt | 1 + paylink_protocol/__init__.py | 2 + .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 327 bytes .../__pycache__/constants.cpython-312.pyc | Bin 0 -> 404 bytes .../__pycache__/event.cpython-312.pyc | Bin 0 -> 1193 bytes .../__pycache__/manager.cpython-312.pyc | Bin 0 -> 2665 bytes paylink_protocol/constants.py | 2 + paylink_protocol/event.py | 10 +++++ paylink_protocol/exceptions.py | 2 + paylink_protocol/manager.py | 38 ++++++++++++++++++ setup.py | 24 +++++++++++ 25 files changed, 230 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 build/lib/paylink_protocol/__init__.py create mode 100644 build/lib/paylink_protocol/constants.py create mode 100644 build/lib/paylink_protocol/event.py create mode 100644 build/lib/paylink_protocol/exceptions.py create mode 100644 build/lib/paylink_protocol/manager.py create mode 100644 dist/paylink_protocol-1.0.0-py3-none-any.whl create mode 100644 dist/paylink_protocol-1.0.0.tar.gz create mode 100644 examples/listen_events.py create mode 100644 paylink_protocol.egg-info/PKG-INFO create mode 100644 paylink_protocol.egg-info/SOURCES.txt create mode 100644 paylink_protocol.egg-info/dependency_links.txt create mode 100644 paylink_protocol.egg-info/requires.txt create mode 100644 paylink_protocol.egg-info/top_level.txt create mode 100644 paylink_protocol/__init__.py create mode 100644 paylink_protocol/__pycache__/__init__.cpython-312.pyc create mode 100644 paylink_protocol/__pycache__/constants.cpython-312.pyc create mode 100644 paylink_protocol/__pycache__/event.cpython-312.pyc create mode 100644 paylink_protocol/__pycache__/manager.cpython-312.pyc create mode 100644 paylink_protocol/constants.py create mode 100644 paylink_protocol/event.py create mode 100644 paylink_protocol/exceptions.py create mode 100644 paylink_protocol/manager.py create mode 100644 setup.py diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0440a1a --- /dev/null +++ b/LICENSE @@ -0,0 +1,26 @@ + +--- + +### **`LICENSE`** +```text +MIT License + +Copyright (c) 2024 Paylink Protocol + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..de90a39 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# PayLink Protocol Library + +A Python library for interacting with the PayLink Protocol on Ethereum. + +## Features + +- Subscribe to PayLink Protocol events +- Decode event data into Python objects +- Works with any Ethereum-compatible RPC endpoint + +## Installation + +Install the library via pip: + +```bash +pip install paylink_protocol diff --git a/build/lib/paylink_protocol/__init__.py b/build/lib/paylink_protocol/__init__.py new file mode 100644 index 0000000..2453eef --- /dev/null +++ b/build/lib/paylink_protocol/__init__.py @@ -0,0 +1,2 @@ +from .manager import PayLinkProtocolManager +from .event import Event \ No newline at end of file diff --git a/build/lib/paylink_protocol/constants.py b/build/lib/paylink_protocol/constants.py new file mode 100644 index 0000000..7b1ffed --- /dev/null +++ b/build/lib/paylink_protocol/constants.py @@ -0,0 +1,2 @@ +PLP_ROUTER_ADDRESS = "0xf76Ea386437B011A14F133A3fCdd421788CD8827" +PLP_PURCHASE_TOPIC = "0xd2f563bab83cfae3f320e2a0abd440c6add9be679a8eee00b2c26c183bc64d87" \ No newline at end of file diff --git a/build/lib/paylink_protocol/event.py b/build/lib/paylink_protocol/event.py new file mode 100644 index 0000000..e2bea8f --- /dev/null +++ b/build/lib/paylink_protocol/event.py @@ -0,0 +1,10 @@ +class Event: + def __init__(self, app_id, purchased_token, purchase_amount, user_id, customer_user_address): + self.app_id = app_id + self.purchased_token = purchased_token + self.purchase_amount = purchase_amount + self.user_id = user_id + self.customer_user_address = customer_user_address + + def __str__(self): + return f"Event(app_id={self.app_id}, purchased_token={self.purchased_token}, purchase_amount={self.purchase_amount}, user_id={self.user_id}, customer_user_address={self.customer_user_address})" diff --git a/build/lib/paylink_protocol/exceptions.py b/build/lib/paylink_protocol/exceptions.py new file mode 100644 index 0000000..3552e1a --- /dev/null +++ b/build/lib/paylink_protocol/exceptions.py @@ -0,0 +1,2 @@ +class PayLinkProtocolError(Exception): + pass diff --git a/build/lib/paylink_protocol/manager.py b/build/lib/paylink_protocol/manager.py new file mode 100644 index 0000000..9a06c4e --- /dev/null +++ b/build/lib/paylink_protocol/manager.py @@ -0,0 +1,38 @@ +from .constants import PLP_ROUTER_ADDRESS, PLP_PURCHASE_TOPIC +from .event import Event +from web3 import Web3 +from hexbytes import HexBytes +import time + +class PayLinkProtocolManager: + def __init__(self, rpc_url, app_id): + self.app_id = app_id + self.web3 = Web3(Web3.HTTPProvider(rpc_url)) + + def subscribe(self): + app_id_bytes = self.app_id.to_bytes(32, byteorder="big") + filter_params = { + "fromBlock": "latest", + "address": PLP_ROUTER_ADDRESS, + "topics": [ + PLP_PURCHASE_TOPIC, + Web3.to_hex(app_id_bytes) + ] + } + + event_filter = self.web3.eth.filter(filter_params) + while True: + try: + for log in event_filter.get_new_entries(): + log_data = HexBytes(log["data"]) + purchased_token = Web3.to_checksum_address("0x" + log["topics"][2].hex()[-40:]) + user_id = int.from_bytes(log_data[:32], byteorder="big") + purchase_amount = int.from_bytes(log_data[32:64], byteorder="big") + customer_user_address = Web3.to_checksum_address("0x" + log_data[64:96].hex()[-40:]) + + event = Event(self.app_id, purchased_token, purchase_amount, user_id, customer_user_address) + print(event) + time.sleep(2) + except Exception as e: + print(f"Error in event listener: {e}") + time.sleep(10) diff --git a/dist/paylink_protocol-1.0.0-py3-none-any.whl b/dist/paylink_protocol-1.0.0-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..dbe1f59095f16abe53154b7c802bf0e19a9dec7c GIT binary patch literal 4263 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 literal 0 HcmV?d00001 diff --git a/dist/paylink_protocol-1.0.0.tar.gz b/dist/paylink_protocol-1.0.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..e8b521839275c04a8ead0f757c217f1d270908e9 GIT binary patch literal 3192 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 literal 0 HcmV?d00001 diff --git a/examples/listen_events.py b/examples/listen_events.py new file mode 100644 index 0000000..3fe44c0 --- /dev/null +++ b/examples/listen_events.py @@ -0,0 +1,7 @@ +from paylink_protocol import PayLinkProtocolManager + +RPC_URL = "https://eth-sepolia.g.alchemy.com/v2/lAY70T35Lt5A4ViwfULpWvgeKfA4k5Q5" +APP_ID = 1732888855 + +manager = PayLinkProtocolManager(RPC_URL, APP_ID) +manager.subscribe() diff --git a/paylink_protocol.egg-info/PKG-INFO b/paylink_protocol.egg-info/PKG-INFO new file mode 100644 index 0000000..3bebce1 --- /dev/null +++ b/paylink_protocol.egg-info/PKG-INFO @@ -0,0 +1,32 @@ +Metadata-Version: 2.1 +Name: paylink_protocol +Version: 1.0.0 +Summary: A Python library for managing the PayLink Protocol on Ethereum. +Home-page: https://github.com/paylinkprotocol +Author: Paylink Protocol +Author-email: mail@paylinkprotocol.com +Classifier: Programming Language :: Python :: 3 +Classifier: License :: OSI Approved :: MIT License +Classifier: Operating System :: OS Independent +Requires-Python: >=3.7 +Description-Content-Type: text/markdown +License-File: LICENSE +Requires-Dist: web3>=5.0.0 +Requires-Dist: hexbytes>=0.2.0 + +# PayLink Protocol Library + +A Python library for interacting with the PayLink Protocol on Ethereum. + +## Features + +- Subscribe to PayLink Protocol events +- Decode event data into Python objects +- Works with any Ethereum-compatible RPC endpoint + +## Installation + +Install the library via pip: + +```bash +pip install paylink_protocol diff --git a/paylink_protocol.egg-info/SOURCES.txt b/paylink_protocol.egg-info/SOURCES.txt new file mode 100644 index 0000000..d07b30f --- /dev/null +++ b/paylink_protocol.egg-info/SOURCES.txt @@ -0,0 +1,13 @@ +LICENSE +README.md +setup.py +paylink_protocol/__init__.py +paylink_protocol/constants.py +paylink_protocol/event.py +paylink_protocol/exceptions.py +paylink_protocol/manager.py +paylink_protocol.egg-info/PKG-INFO +paylink_protocol.egg-info/SOURCES.txt +paylink_protocol.egg-info/dependency_links.txt +paylink_protocol.egg-info/requires.txt +paylink_protocol.egg-info/top_level.txt \ No newline at end of file diff --git a/paylink_protocol.egg-info/dependency_links.txt b/paylink_protocol.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/paylink_protocol.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/paylink_protocol.egg-info/requires.txt b/paylink_protocol.egg-info/requires.txt new file mode 100644 index 0000000..867027c --- /dev/null +++ b/paylink_protocol.egg-info/requires.txt @@ -0,0 +1,2 @@ +web3>=5.0.0 +hexbytes>=0.2.0 diff --git a/paylink_protocol.egg-info/top_level.txt b/paylink_protocol.egg-info/top_level.txt new file mode 100644 index 0000000..d75b8dd --- /dev/null +++ b/paylink_protocol.egg-info/top_level.txt @@ -0,0 +1 @@ +paylink_protocol diff --git a/paylink_protocol/__init__.py b/paylink_protocol/__init__.py new file mode 100644 index 0000000..2453eef --- /dev/null +++ b/paylink_protocol/__init__.py @@ -0,0 +1,2 @@ +from .manager import PayLinkProtocolManager +from .event import Event \ No newline at end of file diff --git a/paylink_protocol/__pycache__/__init__.cpython-312.pyc b/paylink_protocol/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0769a9f2607a558807657709d7533c69fa37fbd9 GIT binary patch literal 327 zcmX@j%ge<81cB1t>8?QfF^B^LOi;#W86aaiLkdF*V-7=JUUooHeo20EevWTqUSfJ`5m1KJwJbHS#7~pu7JDv4u!tF` z=N4-!NW6#z$X?0t8Avkx>U6e>2`x@7Dvn9aD^5?0aY-%CF3B&50UDZ>nq86_<6Kl( zP?8VfCzmJ~85o(yKrL2)*{q-u;1i%31&%WRaIljxPsxE5Qhf-bC?mm@jwj+p09gue&>8krw0kh>pN>(bCi&u zX!Jyi58Vkk91u!Yh(Y#wsp)!l1B}q48wNLBS4{+xYu3vg zpU#sADTDz8isBUHv z2eKj`fp_Fo88^ey8zy7HAY%>NXx8yO%-Bv-uSXG{hFm@ha74no@Gm*eJOuo67jyQ= zIhEx{-4Q{KJB0BZP!uMQVFfmhXi7bf`YrNt@P)TvlQU5egx_>P$cpC#F)aBD^5q$V literal 0 HcmV?d00001 diff --git a/paylink_protocol/__pycache__/manager.cpython-312.pyc b/paylink_protocol/__pycache__/manager.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..43714595030acae275882a864d42c856f3d06171 GIT binary patch literal 2665 zcmb7GU2Gdw7QXXmd;F86sZ-~#wX-duZUQQWZXtp~n>b{(rZsH>!E!Z>XQs|L;~8`3 zn#9Eh9{P}nu9Rp&E&>ER5!8LiV;_T1Q6*k%8Ifvm#Y)Rd9#+aWNV{Smy7$gxoGJxX zdmhd`=iYP9J@?#uzM1brAwR(M*MUFhSPuaIAc{-uj<7wAg&L57OlhD%rKtj)rYWM+ z8dG4?ES4FW)wqHu?XhJ}^A>z*pDlYdKF!nMWgvU60@-(icA}>JWlx;nq_7sJt?pDZ zC0sZ^Go82~oSB%okhpl!nM=)F7@sS-~8&EqA57Tfepy02S)SPEPKKqqKd?_(sW+oJK9vQ_94w6^qk&+pQ{KA;mLPT%Ur9WZRI^Zos$ynR zWi)5#nW9+MaHWLePN^QAC^*G?vRJl!f}rXu5`-(!->&eJu7QsnAcood;Ld@;CH7jN z74H2cywP{8(RXb1RI~5tX84&U_AmT4wgHlRu|y%R_QmvLjxPq}$?P7=w~M^HAX75^ zH^zOCRZ3=2`^pe*28R&uN_o3gT+JDGFEmHX+$T&GKZ`uMjXjj_*fW9E{Jw|hDzy7B zstgZ!P+{`>AGW%&Gc^G&eFH$1MLn)fg_S*hSZPP$9?1WIYqdMdUhLr`9x_jOp0GXS z?k4+X&=0QQ)pm3b>UWLv2VH4*tZ)Q0`Y}*EP-pKWeJDAw$H(``Q*d%X4)*`Q`SU31 zX8YUkrsApiD&7izgS0=UsviwG5^iR{TL%hUyTt-@*j>pVai!f+<{z;B=V5?`-L)eC zK2Z(q#+5^rz{lXz_Di516}e+K@*5bItATd|*G@R&0<{1ZnK!@!74JN^8N*vzOjgZd z$mFvaFAYdQ#iNNBIuV8y{xUQQXEj5bx4fb(L&Y>L55^8vGA&jXk!aD!7vTU7vq^AV zy>tKm{mqw%`X**q`VtTtFsAA;g`jjyQ%$7k3LJ}VlHQ4jZJ@Gz$PmcxCL~=6Nz*x4 zhqn^ultoCI#bOjRXL&BG8p0`d<`g98%7TEy5;%gS>#hCRUYb*+d9zdy+XDJB6CjOJ~E1T8GyEM-jzs#)bq>~|owZDD^D-oj9cF*Pz!duQdHjmStNGO~L1 z=4189NHg-%QtFa1*v9bb z#_;KzXkEH}^y@->dZsb?+QwwMF_~^oX6l#TtX~rAli9|L+2*jce7<#P=rjEzeRXzC zT7#>X)|Kme^H6g6<<@ZgOZ^LdZT4n%y?aflr)ECao5QbRhtcC3qZ5tMiS_B*Q}vnG z>$BjxEWaQW47sEcIVcEkl|;>1f!#O=9K-A@0Le$degTj)lFi89f&EIZf_pU0o!s{I zb5Y08Znl8MONMSDQAZCp+Ox!;bc5YxPT%=(%Qy{5+6s;mX76*FNbS8X-}6qYr{NjA nKt96eA=5.0.0", + "hexbytes>=0.2.0" + ], + classifiers=[ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + ], + python_requires=">=3.7", +)