feat: Add init code
This commit is contained in:
commit
8205ccedd5
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
hns-address/
|
||||
.venv/
|
||||
*.txt
|
10
README.md
Normal file
10
README.md
Normal file
@ -0,0 +1,10 @@
|
||||
# Some additional plugins for FireWallet
|
||||
|
||||
These plugins aren't included by default as there are already a lot of plugins included
|
||||
|
||||
## Import
|
||||
Go to Plugins > Custom Plugin Manager
|
||||
Import this URL:
|
||||
```
|
||||
https://git.woodburn.au/nathanwoodburn/FireWalletPlugins.git
|
||||
```
|
102
hns-address.py
Normal file
102
hns-address.py
Normal file
@ -0,0 +1,102 @@
|
||||
import json
|
||||
# import account
|
||||
import requests
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
|
||||
# Plugin Data
|
||||
info = {
|
||||
"name": "HNS-Address Functions",
|
||||
"description": "Run HNS-Address functions within FireWallet",
|
||||
"version": "1.0",
|
||||
"author": "Nathan.Woodburn/"
|
||||
}
|
||||
|
||||
# Functions
|
||||
functions = {
|
||||
"generate": {
|
||||
"name": "Generate HNS Addresses",
|
||||
"type": "default",
|
||||
"description": "Generate HNS addresses",
|
||||
"params": {
|
||||
"count": {
|
||||
"name": "Count",
|
||||
"type": "number",
|
||||
"description": "Number of addresses to generate (default 1000)"
|
||||
},
|
||||
"startIndex": {
|
||||
"name": "Start Index",
|
||||
"type": "number",
|
||||
"description": "Start index for the generated addresses (default 0)"
|
||||
},
|
||||
"xpub": {
|
||||
"name": "XPUB",
|
||||
"type": "text",
|
||||
"description": "Extended public key to use for generating addresses (default account xpub)"
|
||||
}
|
||||
},
|
||||
"returns": {
|
||||
"result":
|
||||
{
|
||||
"name": "Result",
|
||||
"type": "list"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def initialize():
|
||||
# Check if hns-address is installed
|
||||
if not os.path.exists(os.path.join(os.path.dirname(os.path.realpath(__file__)), "hns-address")):
|
||||
# Try to install hns-address
|
||||
try:
|
||||
print("Cloning hns-address...")
|
||||
result = subprocess.run(["git", "clone", "https://git.woodburn.au/nathanwoodburn/hns-address.git"], capture_output=True, text=True)
|
||||
if result.returncode != 0:
|
||||
return -1
|
||||
except:
|
||||
return -1
|
||||
|
||||
# Check if npm install was successful
|
||||
if not os.path.exists(os.path.join(os.path.dirname(os.path.realpath(__file__)), "hns-address", "node_modules")):
|
||||
try:
|
||||
print("Installing hns-address dependencies...")
|
||||
result = subprocess.run(["npm", "install"], cwd=os.path.join(os.path.dirname(os.path.realpath(__file__)), "hns-address"), capture_output=True, text=True)
|
||||
if result.returncode != 0:
|
||||
return -1
|
||||
except:
|
||||
return -1
|
||||
|
||||
return 0
|
||||
|
||||
def generate(params, authentication):
|
||||
# Check if hns-address is installed
|
||||
if (initialize() != 0):
|
||||
return {"result": ["Failed to initialize hns-address"]}
|
||||
|
||||
count = params["count"]
|
||||
startIndex = params["startIndex"]
|
||||
xpub = params["xpub"]
|
||||
|
||||
if (count == None):
|
||||
count = 1000
|
||||
|
||||
if (startIndex == None):
|
||||
startIndex = 0
|
||||
|
||||
if (xpub == None):
|
||||
xpub = "xpub6BvF6DnLZRV6my62FuQ8nw5TRebL8qr9Wa7u2tE1aEedHWBt4XAfSaNTmP1SM2nXErGWSzxRAHVwqstPzRrsXtA2vn1a4KzLwAVEgLNmfca"
|
||||
|
||||
result = subprocess.run(["node", "generate-address.js", "--xpub", xpub, "--number", str(count), "--startIndex", str(startIndex)], capture_output=True, text=True, cwd=os.path.join(os.path.dirname(os.path.realpath(__file__)), "hns-address"))
|
||||
with open(f"{xpub}-addresses.txt", "w") as f:
|
||||
f.write(result.stdout)
|
||||
|
||||
return {"result": result.stdout.split("\n")[2:-1]}
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(generate({
|
||||
"count": 1000,
|
||||
"startIndex": 0,
|
||||
"xpub": "xpub6BvF6DnLZRV6my62FuQ8nw5TRebL8qr9Wa7u2tE1aEedHWBt4XAfSaNTmP1SM2nXErGWSzxRAHVwqstPzRrsXtA2vn1a4KzLwAVEgLNmfca"
|
||||
}, None))
|
Loading…
Reference in New Issue
Block a user