|
|
@ -545,6 +545,11 @@ UniValue importwallet(const JSONRPCRequest& request) |
|
|
|
fGood = false; |
|
|
|
fGood = false; |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
int64_t birth_time = DecodeDumpTime(vstr[1]); |
|
|
|
|
|
|
|
if (birth_time > 0) { |
|
|
|
|
|
|
|
pwallet->m_script_metadata[CScriptID(script)].nCreateTime = birth_time; |
|
|
|
|
|
|
|
nTimeBegin = std::min(nTimeBegin, birth_time); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
file.close(); |
|
|
|
file.close(); |
|
|
@ -653,6 +658,7 @@ UniValue dumpwallet(const JSONRPCRequest& request) |
|
|
|
pwallet->GetKeyBirthTimes(mapKeyBirth); |
|
|
|
pwallet->GetKeyBirthTimes(mapKeyBirth); |
|
|
|
|
|
|
|
|
|
|
|
std::set<CScriptID> scripts = pwallet->GetCScripts(); |
|
|
|
std::set<CScriptID> scripts = pwallet->GetCScripts(); |
|
|
|
|
|
|
|
// TODO: include scripts in GetKeyBirthTimes() output instead of separate
|
|
|
|
|
|
|
|
|
|
|
|
// sort time/key pairs
|
|
|
|
// sort time/key pairs
|
|
|
|
std::vector<std::pair<int64_t, CKeyID> > vKeyBirth; |
|
|
|
std::vector<std::pair<int64_t, CKeyID> > vKeyBirth; |
|
|
@ -710,9 +716,15 @@ UniValue dumpwallet(const JSONRPCRequest& request) |
|
|
|
file << "\n"; |
|
|
|
file << "\n"; |
|
|
|
for (const CScriptID &scriptid : scripts) { |
|
|
|
for (const CScriptID &scriptid : scripts) { |
|
|
|
CScript script; |
|
|
|
CScript script; |
|
|
|
|
|
|
|
std::string create_time = "0"; |
|
|
|
std::string address = EncodeDestination(scriptid); |
|
|
|
std::string address = EncodeDestination(scriptid); |
|
|
|
|
|
|
|
// get birth times for scripts with metadata
|
|
|
|
|
|
|
|
auto it = pwallet->m_script_metadata.find(scriptid); |
|
|
|
|
|
|
|
if (it != pwallet->m_script_metadata.end()) { |
|
|
|
|
|
|
|
create_time = EncodeDumpTime(it->second.nCreateTime); |
|
|
|
|
|
|
|
} |
|
|
|
if(pwallet->GetCScript(scriptid, script)) { |
|
|
|
if(pwallet->GetCScript(scriptid, script)) { |
|
|
|
file << strprintf("%s 0 script=1", HexStr(script.begin(), script.end())); |
|
|
|
file << strprintf("%s %s script=1", HexStr(script.begin(), script.end()), create_time); |
|
|
|
file << strprintf(" # addr=%s\n", address); |
|
|
|
file << strprintf(" # addr=%s\n", address); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|