Commit e41735ff authored by Eriksson Monteiro's avatar Eriksson Monteiro

update millix node

parent ae5c8af4
...@@ -285,20 +285,25 @@ class Wallet { ...@@ -285,20 +285,25 @@ class Wallet {
} }
updateTransactionOutputWithAddressInformation(outputs) { updateTransactionOutputWithAddressInformation(outputs) {
const keychainRepository = database.getRepository('keychain'); const keychainRepository = database.getRepository('keychain');
const addressRepository = database.getRepository('address'); const addressRepository = database.getRepository('address');
const addressToAddressBaseMap = {}; const outputAddressToAddressComponentMap = {};
return keychainRepository.getAddressesByAddressBase(_.uniq(_.map(outputs, output => { return keychainRepository.getAddressesByAddressBase(_.uniq(_.map(outputs, output => {
const {address: addressBase} = addressRepository.getAddressComponent(output.address); const addressComponents = addressRepository.getAddressComponent(output.address);
addressToAddressBaseMap[output.address] = addressBase; outputAddressToAddressComponentMap[output.address] = {
return addressBase; address_base : addressComponents.address,
address_version : addressComponents.version,
address_key_identifier: addressComponents.identifier
};
return addressComponents.address; //address_base
}))).then(addresses => { }))).then(addresses => {
const addressBaseToAddressInfoMap = {}; const addressBaseToAddressInfoMap = {};
addresses.forEach(address => addressBaseToAddressInfoMap[address.address_base] = address); addresses.forEach(address => addressBaseToAddressInfoMap[address.address_base] = address);
const outputToRemoveList = []; const outputToRemoveList = [];
for (let i = 0; i < outputs.length; i++) { for (let i = 0; i < outputs.length; i++) {
const output = outputs[i]; const output = outputs[i];
const outputAddress = addressBaseToAddressInfoMap[addressToAddressBaseMap[output.address]]; const outputAddress = outputAddressToAddressComponentMap[output.address];
const addressInfo = addressBaseToAddressInfoMap[outputAddress.address_base];
if (!outputAddress) { if (!outputAddress) {
console.log('[wallet][warn] output address not found', output); console.log('[wallet][warn] output address not found', output);
outputToRemoveList.push(output); outputToRemoveList.push(output);
...@@ -307,8 +312,8 @@ class Wallet { ...@@ -307,8 +312,8 @@ class Wallet {
output['address_version'] = outputAddress.address_version; output['address_version'] = outputAddress.address_version;
output['address_key_identifier'] = outputAddress.address_key_identifier; output['address_key_identifier'] = outputAddress.address_key_identifier;
output['address_base'] = outputAddress.address_base; output['address_base'] = outputAddress.address_base;
output['address_position'] = outputAddress.address_position; output['address_position'] = addressInfo.address_position;
output['address_attribute'] = outputAddress.address_attribute; output['address_attribute'] = addressInfo.address_attribute;
} }
} }
...@@ -321,7 +326,7 @@ class Wallet { ...@@ -321,7 +326,7 @@ class Wallet {
processTransaction(transactionFunction) { processTransaction(transactionFunction) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
mutex.lock(['write'], (unlock) => { mutex.lock(['write'], (unlock) => {
this._isSendingNewTransaction = true; this._isSendingNewTransaction = true;
this._transactionSendInterrupt = false; this._transactionSendInterrupt = false;
return transactionFunction() return transactionFunction()
.then(transactionList => { .then(transactionList => {
...@@ -330,12 +335,12 @@ class Wallet { ...@@ -330,12 +335,12 @@ class Wallet {
}) })
.then((transactionList) => { .then((transactionList) => {
this._transactionSendInterrupt = false; this._transactionSendInterrupt = false;
this._isSendingNewTransaction = false; this._isSendingNewTransaction = false;
unlock(); unlock();
resolve(transactionList); resolve(transactionList);
}) })
.catch((e) => { .catch((e) => {
this._isSendingNewTransaction = false; this._isSendingNewTransaction = false;
this._transactionSendInterrupt = false; this._transactionSendInterrupt = false;
unlock(); unlock();
reject(e); reject(e);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment