75 lines
1.6 KiB
Python
75 lines
1.6 KiB
Python
# standard imports
|
|
import os
|
|
import json
|
|
|
|
# external imports
|
|
from cic_types import MetadataPointer
|
|
from cic_types.processor import generate_metadata_pointer
|
|
from hexathon import strip_0x
|
|
|
|
# local imports
|
|
from .base import (
|
|
Data,
|
|
data_dir,
|
|
)
|
|
|
|
|
|
class Meta(Data):
|
|
|
|
def __init__(self, path='.'):
|
|
super(Meta, self).__init__()
|
|
self.name = None
|
|
self.contact = {}
|
|
self.path = path
|
|
self.meta_path = os.path.join(self.path, 'meta.json')
|
|
|
|
|
|
def load(self):
|
|
super(Meta, self).load()
|
|
|
|
f = open(self.meta_path, 'r')
|
|
o = json.load(f)
|
|
f.close()
|
|
|
|
self.name = o['name']
|
|
self.contact = o['contact']
|
|
|
|
self.inited = True
|
|
|
|
|
|
def start(self):
|
|
super(Meta, self).start()
|
|
|
|
meta_template_file_path = os.path.join(data_dir, 'meta_template_v{}.json'.format(self.version()))
|
|
|
|
f = open(meta_template_file_path)
|
|
o = json.load(f)
|
|
f.close()
|
|
|
|
f = open(self.meta_path, 'w')
|
|
json.dump(o, f)
|
|
f.close()
|
|
|
|
|
|
def reference(self, token_address):
|
|
token_address_bytes = bytes.fromhex(strip_0x(token_address))
|
|
return generate_metadata_pointer(token_address_bytes, MetadataPointer.TOKEN)
|
|
|
|
|
|
def asdict(self):
|
|
return {
|
|
'name': self.name,
|
|
'contact': self.contact,
|
|
}
|
|
|
|
|
|
def __str__(self):
|
|
s = "contact.name = {}\n".format(self.name)
|
|
|
|
for k in self.contact.keys():
|
|
if self.contact[k] == '':
|
|
continue
|
|
s += "contact.{} = {}\n".format(k.lower(), self.contact[k])
|
|
|
|
return s
|