From 36612e791dd30307ea3c285fd91aebd4d0b4730e Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Thu, 30 Jan 2025 18:15:15 +1100 Subject: [PATCH] feat: Initial code --- README.md | 10 +++++ firesales.py | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 README.md create mode 100644 firesales.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..b2a2553 --- /dev/null +++ b/README.md @@ -0,0 +1,10 @@ +# FireSales Plugin for FireWallet + +This plugin allows you to easily list and delete listings from FireSales. + +## Import +Go to Plugins > Custom Plugin Manager +Import this URL: +``` +https://git.woodburn.au/nathanwoodburn/firesales-plugin.git +``` \ No newline at end of file diff --git a/firesales.py b/firesales.py new file mode 100644 index 0000000..9a98354 --- /dev/null +++ b/firesales.py @@ -0,0 +1,115 @@ +import json +import account +import requests + +# Plugin Data +info = { + "name": "FireSales", + "description": "Manage FireSales listings", + "version": "1.0", + "author": "Nathan.Woodburn/" +} + +# Functions +functions = { + "list": { + "name": "List", + "description": "List a new domain", + "type":"default", + "params": { + "domain": { + "type": "text", + "name": "Domain to list" + }, + "price": { + "type": "number", + "name": "Price of the domain" + }, + "contact": { + "type": "text", + "name": "Contact info" + }, + "description": { + "type": "longText", + "name": "Listing description" + } + }, + "returns": { + "status": { + "type": "text", + "name": "Status of the listing" + } + } + }, + "delete": { + "name": "Delete", + "description": "Delete a listing", + "type":"default", + "params": { + "domain": { + "type": "text", + "name": "Domain to list" + } + }, + "returns": { + "status": { + "type": "text", + "name": "Status" + } + } + } +} + +def list(params, authentication): + domain = params["domain"] + price = params["price"] + contact = params["contact"] + description = params["description"] + + # Generate message + message = requests.get("https://sales.firewallet.au/api/v1/listing-message?domain=" + domain + "&price=" + str(price) + "&contact=" + contact + "&description=" + description) + message = message.json() + + if message['success'] != True: + return {"status": "Error: " + message['error']} + + # Sign message + signature = account.signMessage(authentication,domain,message['message']) + + if signature['error'] != None: + return {"status": "Error: " + signature['error']} + + # Send message + response = requests.post("https://sales.firewallet.au/api/v1/list",json= + { + "domain": domain, + "price": price, + "contact": contact, + "description": description, + "signature": signature['result'] + }) + + response = response.json() + if response['success'] != True: + return {"status": "Error: " + response['error']} + + + return {"status": "Success
View listing"} + +def delete(params, authentication): + domain = params["domain"] + signature = account.signMessage(authentication,domain,f'FS: {domain}') + if signature['error'] != None: + return {"status": "Error: " + signature['error']} + + response = requests.post("https://sales.firewallet.au/api/v1/delete",json= + { + "domain": domain, + "signature": signature['result'] + }) + response = response.json() + if response['success'] != True: + return {"status": "Error: " + response['error']} + + + return {"status": "Success"} \ No newline at end of file