// keys = [] // rpc = None // masterpassword = None // # Keys from database // configStorage = None // MasterPassword = None // keyStorage = None // # Manually provided keys // keys = { } # struct with pubkey as key and wif as value // keyMap = {} # type:wif pairs to force certain keys /// <summary> /// /// </summary> /// <param name="rpc">SteemNodeRPC rpc: RPC connection to a Steem node</param> /// <param name="args">Predefine the wif keys to shortcut the wallet database</param> /// <param name="kwargs">Predefine the wif keys to shortcut the wallet database</param> public Wallet(SteemNodeRPC rpc, object[] args, Dictionary <string, object> kwargs)// def __init__(self, rpc, * args, ** kwargs): { // from.storage import configStorage // self.configStorage = configStorage //# RPC // Wallet.rpc = rpc // # Prefix? // if Wallet.rpc: // self.prefix = Wallet.rpc.chain_params["prefix"] // else: // # If not connected, load prefix from config // self.prefix = self.configStorage["prefix"] // # Compatibility after name change from wif->keys // if "wif" in kwargs and "keys" not in kwargs: // kwargs["keys"] = kwargs["wif"] // if "keys" in kwargs: // self.setKeys(kwargs["keys"]) // else: // """ If no keys are provided manually we load the SQLite // keyStorage // """ // from.storage import(keyStorage, // MasterPassword) // self.MasterPassword = MasterPassword // self.keyStorage = keyStorage }
//class Signed_Transaction(GrapheneSigned_Transaction): // """ Overwrite default chain: // """ // def __init__(self, * args, ** kwargs): // super(Signed_Transaction, self).__init__(*args, ** kwargs) // def sign(self, wifkeys, chain= chain): // return super(Signed_Transaction, self).sign(wifkeys, chain) // def verify(self, pubkey, chain= chain): // return super(Signed_Transaction, self).verify(pubkey, chain) /// <summary> /// Auxiliary method to obtain ``ref_block_num`` and /// ``ref_block_prefix``. Requires a websocket connection to a /// witness node! /// </summary> /// <param name="rpc"></param> /// <returns></returns> public string[] getBlockParams(SteemNodeRPC rpc) //def getBlockParams(ws): { // dynBCParams = ws.get_dynamic_global_properties() // ref_block_num = dynBCParams["head_block_number"] & 0xFFFF // ref_block_prefix = struct.unpack_from("<I", unhexlify(dynBCParams["head_block_id"]), 4)[0] // return ref_block_num, ref_block_prefix var dynBCParams = rpc.get_dynamic_global_properties(); var ref_block_num = dynBCParams["head_block_number"]; // & 0xFFFF; var ref_block_prefix = "2066969480"; //struct.unpack_from("<I", unhexlify(dynBCParams["head_block_id"]), 4)[0]; return(new[] { ref_block_num, ref_block_prefix }); // (Pdb)p dynBCParams['head_block_number'] //10510027 //(Pdb) n //> / home / pmartynov /.virtualenvs / steemstagram / lib / python3.5 / site - packages / steembase / transactions.py(55)getBlockParams() // ->ref_block_prefix = struct.unpack_from("<I", unhexlify(dynBCParams["head_block_id"]), 4)[0] //(Pdb) p dynBCParams['head_block_id'] //'00a05ecb8873337bbe4eb08687197f232efd8a22' //(Pdb) p unhexlify(dynBCParams['head_block_id']) //b'\x00\xa0^\xcb\x88s3{\xbeN\xb0\x86\x87\x19\x7f#.\xfd\x8a"' //(Pdb) p struct.unpack_from("<I", unhexlify(dynBCParams["head_block_id"]), 4) //(2066969480,) //(Pdb) p struct.unpack_from("<I", unhexlify(dynBCParams["head_block_id"]), 4)[0] //2066969480 }