aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorKevin Serrano <kevgagser@gmail.com>2016-08-24 05:51:09 +0800
committerKevin Serrano <kevgagser@gmail.com>2016-08-24 05:51:09 +0800
commit4bceda37a8dfa414d4e5ff2b315b9968120d0d37 (patch)
tree4ed708d8f1db35b5373389b7c005ff2b9bfc4807 /app
parent00e8db31cebaf7af42660e828cc912b2b6af5b5d (diff)
parent9dad3a5917308cb6d9ee56aa183298b8eaad1c5f (diff)
downloadtangerine-wallet-browser-4bceda37a8dfa414d4e5ff2b315b9968120d0d37.tar.gz
tangerine-wallet-browser-4bceda37a8dfa414d4e5ff2b315b9968120d0d37.tar.zst
tangerine-wallet-browser-4bceda37a8dfa414d4e5ff2b315b9968120d0d37.zip
Merge branch 'master' into fox-sub
Diffstat (limited to 'app')
-rw-r--r--app/_locales/es/messages.json10
-rw-r--r--app/_locales/es_419/messages.json10
-rw-r--r--app/_locales/zh_CN/messages.json10
-rw-r--r--app/scripts/inpage.js2
-rw-r--r--app/scripts/lib/config-manager.js6
-rw-r--r--app/scripts/lib/inpage-provider.js30
6 files changed, 65 insertions, 3 deletions
diff --git a/app/_locales/es/messages.json b/app/_locales/es/messages.json
new file mode 100644
index 000000000..78fc64dbf
--- /dev/null
+++ b/app/_locales/es/messages.json
@@ -0,0 +1,10 @@
+{
+ "appName": {
+ "message": "MetaMask",
+ "description": "The name of the application"
+ },
+ "appDescription": {
+ "message": "Administración de identidad en Ethereum",
+ "description": "The description of the application"
+ }
+}
diff --git a/app/_locales/es_419/messages.json b/app/_locales/es_419/messages.json
new file mode 100644
index 000000000..78fc64dbf
--- /dev/null
+++ b/app/_locales/es_419/messages.json
@@ -0,0 +1,10 @@
+{
+ "appName": {
+ "message": "MetaMask",
+ "description": "The name of the application"
+ },
+ "appDescription": {
+ "message": "Administración de identidad en Ethereum",
+ "description": "The description of the application"
+ }
+}
diff --git a/app/_locales/zh_CN/messages.json b/app/_locales/zh_CN/messages.json
new file mode 100644
index 000000000..fc87384e5
--- /dev/null
+++ b/app/_locales/zh_CN/messages.json
@@ -0,0 +1,10 @@
+{
+ "appName": {
+ "message": "MetaMask",
+ "description": "The name of the application"
+ },
+ "appDescription": {
+ "message": "以太坊身份管理",
+ "description": "The description of the application"
+ }
+}
diff --git a/app/scripts/inpage.js b/app/scripts/inpage.js
index 7c508c66f..28a1223ac 100644
--- a/app/scripts/inpage.js
+++ b/app/scripts/inpage.js
@@ -54,7 +54,7 @@ var __define
function cleanContextForImports () {
__define = global.define
try {
- delete global.define
+ global.define = undefined
} catch (_) {
console.warn('MetaMask - global.define could not be deleted.')
}
diff --git a/app/scripts/lib/config-manager.js b/app/scripts/lib/config-manager.js
index 6f5cb3a4a..4d270bcdb 100644
--- a/app/scripts/lib/config-manager.js
+++ b/app/scripts/lib/config-manager.js
@@ -5,6 +5,7 @@ const rp = require('request-promise')
const TESTNET_RPC = MetamaskConfig.network.testnet
const MAINNET_RPC = MetamaskConfig.network.mainnet
+const txLimit = 40
/* The config-manager is a convenience object
* wrapping a pojo-migrator.
@@ -15,6 +16,8 @@ const MAINNET_RPC = MetamaskConfig.network.mainnet
*/
module.exports = ConfigManager
function ConfigManager (opts) {
+ this.txLimit = txLimit
+
// ConfigManager is observable and will emit updates
this._subs = []
@@ -181,6 +184,9 @@ ConfigManager.prototype._saveTxList = function (txList) {
ConfigManager.prototype.addTx = function (tx) {
var transactions = this.getTxList()
+ while (transactions.length > this.txLimit - 1) {
+ transactions.shift()
+ }
transactions.push(tx)
this._saveTxList(transactions)
}
diff --git a/app/scripts/lib/inpage-provider.js b/app/scripts/lib/inpage-provider.js
index b3ed3d9e2..65354cd3d 100644
--- a/app/scripts/lib/inpage-provider.js
+++ b/app/scripts/lib/inpage-provider.js
@@ -33,8 +33,16 @@ function MetamaskInpageProvider (connectionStream) {
})
asyncProvider.on('error', console.error.bind(console))
self.asyncProvider = asyncProvider
- // overwrite own sendAsync method
- self.sendAsync = asyncProvider.sendAsync.bind(asyncProvider)
+ // handle sendAsync requests via asyncProvider
+ self.sendAsync = function(payload, cb){
+ // rewrite request ids
+ var request = jsonrpcMessageTransform(payload, (message) => {
+ message.id = createRandomId()
+ return message
+ })
+ // forward to asyncProvider
+ asyncProvider.sendAsync(request, cb)
+ }
}
MetamaskInpageProvider.prototype.send = function (payload) {
@@ -92,3 +100,21 @@ function remoteStoreWithLocalStorageCache (storageKey) {
return store
}
+
+function createRandomId(){
+ const extraDigits = 3
+ // 13 time digits
+ const datePart = new Date().getTime() * Math.pow(10, extraDigits)
+ // 3 random digits
+ const extraPart = Math.floor(Math.random() * Math.pow(10, extraDigits))
+ // 16 digits
+ return datePart + extraPart
+}
+
+function jsonrpcMessageTransform(payload, transformFn){
+ if (Array.isArray(payload)) {
+ return payload.map(transformFn)
+ } else {
+ return transformFn(payload)
+ }
+} \ No newline at end of file