Update flo-webwallet.js
- Wrapped flo webwallet module inside IIF. - use strict for flo webwallet module - moved onload fn to index.html
This commit is contained in:
parent
d4673462c0
commit
f89cf27826
16
index.html
16
index.html
@ -24,6 +24,21 @@
|
|||||||
<script src="scripts/floBlockchainAPI.js"></script>
|
<script src="scripts/floBlockchainAPI.js"></script>
|
||||||
<script src="scripts/compactIDB.js"></script>
|
<script src="scripts/compactIDB.js"></script>
|
||||||
<script src="scripts/flo-webwallet.js"></script>
|
<script src="scripts/flo-webwallet.js"></script>
|
||||||
|
<script>
|
||||||
|
function onLoadStartUp() {
|
||||||
|
var IDBObjects = {
|
||||||
|
lastSync: {},
|
||||||
|
labels: {},
|
||||||
|
pinnedIds: {},
|
||||||
|
transactions: {}
|
||||||
|
}
|
||||||
|
compactIDB.initDB("FLOwebWallet", IDBObjects).then(result => {
|
||||||
|
showPage(window.location.hash)
|
||||||
|
render.savedIds();
|
||||||
|
console.log(result)
|
||||||
|
}).catch(error => console.error(error))
|
||||||
|
}
|
||||||
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body onload="onLoadStartUp()" class="hide">
|
<body onload="onLoadStartUp()" class="hide">
|
||||||
@ -1706,4 +1721,5 @@
|
|||||||
]
|
]
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
@ -1,51 +1,10 @@
|
|||||||
/*FLO Web Wallet operations*/
|
(function (EXPORTS) {
|
||||||
floWebWallet = {
|
/*FLO Web Wallet operations*/
|
||||||
|
'use strict';
|
||||||
util: {
|
const floWebWallet = EXPORTS;
|
||||||
//Get new Tx in blockchain since last sync using API
|
|
||||||
getNewTxs: function (addr, ignoreOld) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
floBlockchainAPI.readTxs(addr, 0, 1).then(response => {
|
|
||||||
var newItems = response.totalItems - ignoreOld;
|
|
||||||
if (newItems) {
|
|
||||||
floBlockchainAPI.readTxs(addr, 0, newItems * 2).then(response => {
|
|
||||||
var filteredData = [];
|
|
||||||
for (i = 0; i < newItems; i++) {
|
|
||||||
var item = {
|
|
||||||
time: response.items[i].time,
|
|
||||||
txid: response.items[i].txid,
|
|
||||||
floData: response.items[i].floData
|
|
||||||
}
|
|
||||||
if (response.items[i].isCoinBase) {
|
|
||||||
item.sender = '(mined)' + response.items[i].vin[0].coinbase;
|
|
||||||
item.receiver = addr;
|
|
||||||
} else {
|
|
||||||
item.sender = response.items[i].vin[0].addr;
|
|
||||||
item.receiver = response.items[i].vout[0].scriptPubKey.addresses[0];
|
|
||||||
}
|
|
||||||
filteredData.unshift(item);
|
|
||||||
}
|
|
||||||
resolve({
|
|
||||||
totalItems: response.totalItems,
|
|
||||||
items: filteredData
|
|
||||||
});
|
|
||||||
}).catch(error => {
|
|
||||||
reject(error);
|
|
||||||
});
|
|
||||||
} else
|
|
||||||
resolve({
|
|
||||||
totalItems: response.totalItems,
|
|
||||||
items: []
|
|
||||||
})
|
|
||||||
}).catch(error => {
|
|
||||||
reject(error);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
//generate a new Address triplet : resolves Object(floID,pubKey,privKey)
|
//generate a new Address triplet : resolves Object(floID,pubKey,privKey)
|
||||||
generateNewAddr: function () {
|
floWebWallet.generateNewAddr = function () {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
var triplet = floCrypto.generateNewID();
|
var triplet = floCrypto.generateNewID();
|
||||||
@ -54,10 +13,10 @@ floWebWallet = {
|
|||||||
reject(error);
|
reject(error);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
}
|
||||||
|
|
||||||
//recover triplet from given privKey : resolves Object(floID,pubKey,privKey)
|
//recover triplet from given privKey : resolves Object(floID,pubKey,privKey)
|
||||||
recoverAddr: function (privKey) {
|
floWebWallet.recoverAddr = function (privKey) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
try {
|
try {
|
||||||
var triplet = {}
|
var triplet = {}
|
||||||
@ -69,32 +28,32 @@ floWebWallet = {
|
|||||||
reject(error);
|
reject(error);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
}
|
||||||
|
|
||||||
//get balance of addr using API : resolves (balance)
|
//get balance of addr using API : resolves (balance)
|
||||||
getBalance: function (addr) {
|
floWebWallet.getBalance = function (addr) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
floBlockchainAPI.getBalance(addr)
|
floBlockchainAPI.getBalance(addr)
|
||||||
.then(txid => resolve(txid))
|
.then(txid => resolve(txid))
|
||||||
.catch(error => reject(error))
|
.catch(error => reject(error))
|
||||||
})
|
})
|
||||||
},
|
}
|
||||||
|
|
||||||
//send transaction to the blockchain using API : resolves (txid)
|
//send transaction to the blockchain using API : resolves (txid)
|
||||||
sendTransaction: function (sender, receiver, amount, floData, privKey) {
|
floWebWallet.sendTransaction = function (sender, receiver, amount, floData, privKey) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
floBlockchainAPI.sendTx(sender, receiver, amount, privKey, floData)
|
floBlockchainAPI.sendTx(sender, receiver, amount, privKey, floData)
|
||||||
.then(txid => resolve(txid))
|
.then(txid => resolve(txid))
|
||||||
.catch(error => reject(error))
|
.catch(error => reject(error))
|
||||||
})
|
})
|
||||||
},
|
}
|
||||||
|
|
||||||
//sync new transactions from blockchain using API and stores in IDB : resolves Array(newItems)
|
//sync new transactions from blockchain using API and stores in IDB : resolves Array(newItems)
|
||||||
syncTransactions: function (addr) {
|
floWebWallet.syncTransactions = function (addr) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
compactIDB.readData('lastSync', addr).then(lastSync => {
|
compactIDB.readData('lastSync', addr).then(lastSync => {
|
||||||
lastSync = lastSync | 0;
|
lastSync = lastSync | 0;
|
||||||
this.util.getNewTxs(addr, lastSync).then(APIresult => {
|
getNewTxs(addr, lastSync).then(APIresult => {
|
||||||
compactIDB.readData('transactions', addr).then(IDBresult => {
|
compactIDB.readData('transactions', addr).then(IDBresult => {
|
||||||
if (IDBresult === undefined)
|
if (IDBresult === undefined)
|
||||||
var promise1 = compactIDB.addData('transactions', APIresult.items, addr)
|
var promise1 = compactIDB.addData('transactions', APIresult.items, addr)
|
||||||
@ -106,39 +65,65 @@ floWebWallet = {
|
|||||||
})
|
})
|
||||||
}).catch(error => reject(error))
|
}).catch(error => reject(error))
|
||||||
})
|
})
|
||||||
},
|
}
|
||||||
|
|
||||||
|
//Get new Tx in blockchain since last sync using API
|
||||||
|
function getNewTxs(addr, ignoreOld) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
floBlockchainAPI.readTxs(addr, 0, 1).then(response => {
|
||||||
|
var newItems = response.totalItems - ignoreOld;
|
||||||
|
if (newItems) {
|
||||||
|
floBlockchainAPI.readTxs(addr, 0, newItems * 2).then(response => {
|
||||||
|
var filteredData = [];
|
||||||
|
for (let i = 0; i < newItems; i++) {
|
||||||
|
var item = {
|
||||||
|
time: response.items[i].time,
|
||||||
|
txid: response.items[i].txid,
|
||||||
|
floData: response.items[i].floData
|
||||||
|
}
|
||||||
|
if (response.items[i].isCoinBase) {
|
||||||
|
item.sender = '(mined)' + response.items[i].vin[0].coinbase;
|
||||||
|
item.receiver = addr;
|
||||||
|
} else {
|
||||||
|
item.sender = response.items[i].vin[0].addr;
|
||||||
|
item.receiver = response.items[i].vout[0].scriptPubKey.addresses[0];
|
||||||
|
}
|
||||||
|
filteredData.unshift(item);
|
||||||
|
}
|
||||||
|
resolve({
|
||||||
|
totalItems: response.totalItems,
|
||||||
|
items: filteredData
|
||||||
|
});
|
||||||
|
}).catch(error => {
|
||||||
|
reject(error);
|
||||||
|
});
|
||||||
|
} else
|
||||||
|
resolve({
|
||||||
|
totalItems: response.totalItems,
|
||||||
|
items: []
|
||||||
|
})
|
||||||
|
}).catch(error => {
|
||||||
|
reject(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
//read transactions stored in IDB : resolves Array(storedItems)
|
//read transactions stored in IDB : resolves Array(storedItems)
|
||||||
readTransactions: function (addr) {
|
floWebWallet.readTransactions = function (addr) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
compactIDB.readData('transactions', addr)
|
compactIDB.readData('transactions', addr)
|
||||||
.then(IDBresult => resolve(IDBresult))
|
.then(IDBresult => resolve(IDBresult))
|
||||||
.catch(error => reject(error))
|
.catch(error => reject(error))
|
||||||
})
|
})
|
||||||
},
|
}
|
||||||
|
|
||||||
//get address-label pairs from IDB : resolves Object(addr:label)
|
//get address-label pairs from IDB : resolves Object(addr:label)
|
||||||
getLabels: function () {
|
floWebWallet.getLabels = function () {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
compactIDB.readAllData('labels')
|
compactIDB.readAllData('labels')
|
||||||
.then(IDBresult => resolve(IDBresult))
|
.then(IDBresult => resolve(IDBresult))
|
||||||
.catch(error => reject(error))
|
.catch(error => reject(error))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function onLoadStartUp() {
|
})(window.floWebWallet = {});
|
||||||
var IDBObjects = {
|
|
||||||
lastSync: {},
|
|
||||||
labels: {},
|
|
||||||
pinnedIds: {},
|
|
||||||
transactions: {}
|
|
||||||
}
|
|
||||||
compactIDB.initDB("FLOwebWallet", IDBObjects)
|
|
||||||
.then(result => {
|
|
||||||
showPage(window.location.hash)
|
|
||||||
render.savedIds();
|
|
||||||
console.log(result)
|
|
||||||
})
|
|
||||||
.catch(error => console.error(error))
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue
Block a user