Skip to content

Commit 5c190ca

Browse files
committed
hooked - allow rpc-level overrides
1 parent 9b937c0 commit 5c190ca

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

subproviders/hooked-wallet.js

+40
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,11 @@ HookedWalletSubprovider.prototype.handleRequest = function(payload, next, end){
8080
switch(payload.method) {
8181

8282
case 'eth_coinbase':
83+
// check for full method override
84+
if (opts.eth_coinbase) {
85+
return opts.eth_coinbase(payload, next, end)
86+
}
87+
// process normally
8388
self.getAccounts(function(err, accounts){
8489
if (err) return end(err)
8590
var result = accounts[0] || null
@@ -88,13 +93,23 @@ HookedWalletSubprovider.prototype.handleRequest = function(payload, next, end){
8893
return
8994

9095
case 'eth_accounts':
96+
// check for full method override
97+
if (opts.eth_accounts) {
98+
return opts.eth_accounts(payload, next, end)
99+
}
100+
// process normally
91101
self.getAccounts(function(err, accounts){
92102
if (err) return end(err)
93103
end(null, accounts)
94104
})
95105
return
96106

97107
case 'eth_sendTransaction':
108+
// check for full method override
109+
if (opts.eth_sendTransaction) {
110+
return opts.eth_sendTransaction(payload, next, end)
111+
}
112+
// process normally
98113
var txParams = payload.params[0]
99114
waterfall([
100115
(cb) => self.validateTransaction(txParams, cb),
@@ -103,6 +118,11 @@ HookedWalletSubprovider.prototype.handleRequest = function(payload, next, end){
103118
return
104119

105120
case 'eth_signTransaction':
121+
// check for full method override
122+
if (opts.eth_signTransaction) {
123+
return opts.eth_signTransaction(payload, next, end)
124+
}
125+
// process normally
106126
var txParams = payload.params[0]
107127
waterfall([
108128
(cb) => self.validateTransaction(txParams, cb),
@@ -111,6 +131,11 @@ HookedWalletSubprovider.prototype.handleRequest = function(payload, next, end){
111131
return
112132

113133
case 'eth_sign':
134+
// check for full method override
135+
if (opts.eth_sign) {
136+
return opts.eth_sign(payload, next, end)
137+
}
138+
// process normally
114139
var address = payload.params[0]
115140
var message = payload.params[1]
116141
// non-standard "extraParams" to be appended to our "msgParams" obj
@@ -127,6 +152,11 @@ HookedWalletSubprovider.prototype.handleRequest = function(payload, next, end){
127152
return
128153

129154
case 'personal_sign':
155+
// check for full method override
156+
if (opts.personal_sign) {
157+
return opts.personal_sign(payload, next, end)
158+
}
159+
// process normally
130160
const first = payload.params[0]
131161
const second = payload.params[1]
132162

@@ -167,6 +197,11 @@ HookedWalletSubprovider.prototype.handleRequest = function(payload, next, end){
167197
return
168198

169199
case 'personal_ecRecover':
200+
// check for full method override
201+
if (opts.personal_ecRecover) {
202+
return opts.personal_ecRecover(payload, next, end)
203+
}
204+
// process normally
170205
var message = payload.params[0]
171206
var signature = payload.params[1]
172207
// non-standard "extraParams" to be appended to our "msgParams" obj
@@ -180,6 +215,11 @@ HookedWalletSubprovider.prototype.handleRequest = function(payload, next, end){
180215
return
181216

182217
case 'eth_signTypedData':
218+
// check for full method override
219+
if (opts.eth_signTypedData) {
220+
return opts.eth_signTypedData(payload, next, end)
221+
}
222+
// process normally
183223
message = payload.params[0]
184224
address = payload.params[1]
185225
var extraParams = payload.params[2] || {}

0 commit comments

Comments
 (0)