Skip to content

Commit 5fa94d0

Browse files
authored
Merge pull request #151 from tronprotocol/develop
Develop
2 parents 46a6d28 + 0668456 commit 5fa94d0

File tree

6 files changed

+377
-9
lines changed

6 files changed

+377
-9
lines changed

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,15 @@ Supposing you are using a server which provides everything, like TronGrid, you c
117117
```js
118118
const tronWeb = new TronWeb({
119119
fullHost: 'https://api.trongrid.io',
120+
headers: { "TRON-PRO-API-KEY": 'your api key' },
120121
privateKey: 'your private key'
121122
})
122123
```
123124

124125
For retro-compatibility, though, you can continue to use the old approach, where any parameter is passed separately:
125126
```js
126127
const tronWeb = new TronWeb(fullNode, solidityNode, eventServer, privateKey)
127-
128+
tronWeb.setHeader({ "TRON-PRO-API-KEY": 'your api key' });
128129
```
129130

130131
If you are, for example, using a server as full and solidity node, and another server for the events, you can set it as:
@@ -168,6 +169,9 @@ In order to contribute you can
168169

169170
## Recent History
170171

172+
__3.2.6__
173+
- Add setHeader function
174+
171175
__3.2.5__
172176
- Set feeLimit max value as 5000 TRX
173177

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tronweb",
3-
"version": "3.2.5",
3+
"version": "3.2.6",
44
"description": "JavaScript SDK that encapsulates the TRON HTTP API",
55
"main": "dist/TronWeb.node.js",
66
"scripts": {
@@ -22,13 +22,14 @@
2222
},
2323
"dependencies": {
2424
"@babel/runtime": "^7.0.0",
25-
"axios": "^0.19.0",
25+
"axios": "^0.21.1",
2626
"babel-runtime": "^6.26.0",
2727
"bignumber.js": "^7.2.1",
2828
"elliptic": "^6.5.3",
2929
"ethers": "^5.0.8",
3030
"eventemitter3": "^3.1.0",
3131
"injectpromise": "^1.0.0",
32+
"jsonwebtoken": "^8.5.1",
3233
"lodash": "^4.17.14",
3334
"semver": "^5.6.0",
3435
"validator": "^10.7.1"

src/index.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,16 @@ export default class TronWeb extends EventEmitter {
3636
super();
3737

3838
let fullNode;
39+
let headers = false;
40+
let eventHeaders = false;
3941

4042
if (typeof options === 'object' && (options.fullNode || options.fullHost)) {
4143
fullNode = options.fullNode || options.fullHost;
4244
sideOptions = solidityNode;
4345
solidityNode = options.solidityNode || options.fullHost;
4446
eventServer = options.eventServer || options.fullHost;
47+
headers = options.headers || false;
48+
eventHeaders = options.eventHeaders || headers;
4549
privateKey = options.privateKey;
4650
} else {
4751
fullNode = options;
@@ -95,6 +99,14 @@ export default class TronWeb extends EventEmitter {
9599
this.fullnodeVersion = DEFAULT_VERSION;
96100
this.feeLimit = FEE_LIMIT;
97101
this.injectPromise = injectpromise(this);
102+
103+
if (headers) {
104+
this.setFullNodeHeader(headers);
105+
}
106+
107+
if (eventHeaders) {
108+
this.setEventHeader(eventHeaders);
109+
}
98110
}
99111

100112
async getFullnodeVersion() {
@@ -187,6 +199,29 @@ export default class TronWeb extends EventEmitter {
187199
this.event.setServer(...params)
188200
}
189201

202+
setHeader (headers = {}) {
203+
const fullNode = new providers.HttpProvider(this.fullNode.host, 30000, false, false, headers);
204+
const solidityNode = new providers.HttpProvider(this.solidityNode.host, 30000, false, false, headers);
205+
const eventServer = new providers.HttpProvider(this.eventServer.host, 30000, false, false, headers);
206+
207+
this.setFullNode(fullNode);
208+
this.setSolidityNode(solidityNode);
209+
this.setEventServer(eventServer);
210+
}
211+
212+
setFullNodeHeader (headers = {}) {
213+
const fullNode = new providers.HttpProvider(this.fullNode.host, 30000, false, false, headers);
214+
const solidityNode = new providers.HttpProvider(this.solidityNode.host, 30000, false, false, headers);
215+
216+
this.setFullNode(fullNode);
217+
this.setSolidityNode(solidityNode);
218+
}
219+
220+
setEventHeader (headers = {}) {
221+
const eventServer = new providers.HttpProvider(this.eventServer.host, 30000, false, false, headers);
222+
this.setEventServer(eventServer);
223+
}
224+
190225
currentProviders() {
191226
return {
192227
fullNode: this.fullNode,

src/utils/ethersUtils.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
2-
import {utils} from 'ethers';
1+
import { utils } from "ethers";
32

43
const keccak256 = utils.keccak256;
54
const sha256 = utils.sha256;
65
const toUtf8Bytes = utils.toUtf8Bytes;
6+
const toUtf8String = utils.toUtf8String;
77
const recoverAddress = utils.recoverAddress;
88
const SigningKey = utils.SigningKey;
99
const AbiCoder = utils.AbiCoder;
@@ -12,7 +12,8 @@ export {
1212
keccak256,
1313
sha256,
1414
toUtf8Bytes,
15+
toUtf8String,
1516
recoverAddress,
1617
SigningKey,
17-
AbiCoder
18-
}
18+
AbiCoder,
19+
};

test/helpers/config.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,38 @@ module.exports = {
1717
freeBandwidth: 10,
1818
freeBandwidthLimit: 100
1919
},
20+
TEST_TRON_GRID_API: 'http://47.252.84.138:29086',
21+
TEST_TRON_HEADER_API_KEY: 'be815f09-e30f-4b98-b84d-0bb41f0708fd',
22+
TEST_TRON_HEADER_API_JWT_KEY: '95057b57-a2bd-4bd5-9337-5b52cb2b3bc2',
23+
TEST_TRON_HEADER_JWT_ID: '2b3b8c99254f48ef90be2dee387fe7b6',
24+
TEST_TRON_HEADER_JWT_PRIVATE_KEY: `-----BEGIN RSA PRIVATE KEY-----
25+
MIIEpQIBAAKCAQEAuU+RD27l1tYdSnjiySnqUjTkuHguJq21+nS+oYIqiwHXLQot
26+
AC9vriP5sOXJ9w1SmWvj5JOmO2qYFxyO+zluW2vfPphXB2jPD0Fv2Cl/Cdef/SCg
27+
UR+KtGjMDudR/xgJcm9nZQ7pXcSi5rBXxQ9oIcLDxyU2wwXkGR9hJyIwqLkaP7nK
28+
Ce5zoE3C26uVikVC2szjjF1I70tXtlHtdhkM8DaZeNhcKc8zV7Ge5hr/9tQIjH4t
29+
RYKa1ldANlcEyzwQPGrsHM5KuurWQSjjLIl6JrPy9mYPbrU51KUcIwuOWPz+UcCX
30+
KZZMFXJNlYiZelYlAIFHRXpgvV7HFqDuLkc30wIDAQABAoIBAQCjAzZVQDXZZiMA
31+
JxVA5qllRXhKOhZHGhpyRw6G3w1zmNvjmAb8Gb6Bjs4QaiPfOw4FPl6L7cKWk+9U
32+
rV+t6diFfYA1/SbZsr4q6mJr4h0J2G+56WB93GRUzbdsCNsdrtRooU1wHcz2Gos+
33+
qbOb+zCcOkukvLzOlDkSTINXPIFXeXPp3ccvz6a58dwUCpvS5fw50Jl6FBhCaGcv
34+
t4k9dmKa/EUeMVgfZ6lwzMHm7tlp+KubHAvESr+KT+jvk2g/eTosUM+jvp1prFct
35+
TQgEyVeC6beXPgzvRb3Ao7C0w+N9VYwst4LoH9rHrtsROTpKsKvpUA+T2fhN6RaB
36+
GVYQuVEJAoGBAPNWxFDBRvaUO7j0ipQDzEhn1J7jHhq/zofCAv6YqWbFZUiM3Z+4
37+
WZJIUy6JyKPhg7UPSwlJtwIygO8EzlDIr8cKGh8vxy2cP4KUI/zOZfx8Y19x/vz/
38+
eEF+0kMz0qIf2JiWnG94nC/JzqQ6IIjHaPYXimz2DfkiTBCiBPoDoh+FAoGBAMLz
39+
4AISOSFlkiJRNbDCTOogbQaX0voYlt3aRBXIGeOgcodI8adjLOGDFDMFUL8Kdxke
40+
l3zhkmBlbHw9+q7a5GDd03i+n5CSZQDMuljAb8lUm36MnV6sGMnlCX2mGQjHdwLI
41+
Kql9NwoK5fNcvwjqQogbTnXLkaIecaUES8eTHp13AoGATEHyv8PyMy/9D1dDXmNa
42+
T46KaUiPlJ5rYMwCGDtLSzOtK/FJOtaQ63DS8JCpWgJAPiuOvlhli8C7+yusZFCg
43+
FWYrDX7xkm+Wz5sRNBaSi2+HzM9ys2J0E0JlLj49UiVcwWThnWVUvP0nTvwQWgzz
44+
7bsu3Dq34k1HPScpHBirY+kCgYEAoSRqJewgMv289AbCZW/FmcThuZBnQHhww8J1
45+
greaxq9J248syBpO77ykRqP/IVoqJaZGu1/M2Ucci/nDKyMdoP/am7SdOif3uth+
46+
s3ulKvp3aPwb3DRObRuXY7eWe848Dh2cPeqVQwTNHAKumVThV5WSngV9RE77ytWp
47+
ObbemHMCgYEAmlnWvwed2VkRiHpPV7VcFP7NCz6c+WCgRH9gca//fFLPzxB6dwsz
48+
vvQ4W6Hmeyh9ef/dGQRPKwBp2oiJELouIVybtc2S2wT3DYm2AgYv4RFcH3CB2cIW
49+
Djyb5403LJztsxdExbyQkm++Gg631CZus4xA77wMafGw37IhCE6sTBo=
50+
-----END RSA PRIVATE KEY-----`,
51+
2052
getTokenOptions: () => {
2153
const rnd = Math.random().toString(36).substr(2);
2254
return {

0 commit comments

Comments
 (0)