etherscan 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/etherscan/version.rb +1 -1
- data/lib/etherscan.rb +52 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ae5a3c27f579a927ac49bf966f739638880883ea3427329e68f77a6d94fa84f
|
4
|
+
data.tar.gz: 2a88c324132a2a6cad32e36b290d50410abb9d19a54293566454ed26dc0615d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0ae0a1a1092fae3b479260a95f1725724b685a305c8aab475a573855f5226b74e88fc67b8f62b8c85662f7e615d55470735971eaff8a4cab9eb3bf51b9a427e
|
7
|
+
data.tar.gz: 599c757ea7a9812a3a9a46f045708d936858bfc7670049d75d7ed9a1453b7e54409b9b9119544349e4fd28e69ebd5ab37cd203f184842fc6b91ed5a88a89b27e
|
data/lib/etherscan/version.rb
CHANGED
data/lib/etherscan.rb
CHANGED
@@ -9,6 +9,40 @@ require 'active_support'
|
|
9
9
|
require 'active_support/core_ext/string'
|
10
10
|
|
11
11
|
module Etherscan
|
12
|
+
CHAIN_SHORT_NAME_BY_ID = {
|
13
|
+
1 => 'eth',
|
14
|
+
5 => 'gor',
|
15
|
+
11_155_111 => 'sep',
|
16
|
+
42_161 => 'arb1',
|
17
|
+
421_613 => 'arb_goerli',
|
18
|
+
421_614 => 'arb_sep',
|
19
|
+
56 => 'bnb',
|
20
|
+
97 => 'bnbt',
|
21
|
+
137 => 'matic',
|
22
|
+
80_001 => 'maticmum',
|
23
|
+
1101 => 'zkevm',
|
24
|
+
14_422 => 'testnet_zk_evm_mango',
|
25
|
+
250 => 'ftm',
|
26
|
+
4002 => 'tftm',
|
27
|
+
10 => 'oeth',
|
28
|
+
1284 => 'mbeam',
|
29
|
+
1285 => 'mriver',
|
30
|
+
1287 => 'mbase',
|
31
|
+
25 => 'cronos',
|
32
|
+
199 => 'btt',
|
33
|
+
1028 => 'tbtt',
|
34
|
+
100 => 'gnosis',
|
35
|
+
42_170 => 'arb_nova',
|
36
|
+
59_144 => 'linea',
|
37
|
+
59_140 => 'linea_testnet',
|
38
|
+
8453 => 'base',
|
39
|
+
84_531 => 'basegor',
|
40
|
+
1111 => 'wemix',
|
41
|
+
534_352 => 'scr',
|
42
|
+
534_351 => 'scr_sepolia',
|
43
|
+
204 => 'obnb'
|
44
|
+
}
|
45
|
+
|
12
46
|
# https://chainid.network/chains.json
|
13
47
|
# key is the underscore(short name) of the chain in chains.json
|
14
48
|
# https://blockscan.com/
|
@@ -50,19 +84,26 @@ module Etherscan
|
|
50
84
|
|
51
85
|
# https://tronscan.org/#/developer/api
|
52
86
|
TRON_CHAINS = {
|
53
|
-
'tron' => 'https://apilist.tronscanapi.com/api'
|
87
|
+
'tron' => 'https://apilist.tronscanapi.com/api'
|
54
88
|
}
|
55
89
|
|
56
90
|
SUBSCAN_CHAINS = {
|
57
91
|
'pangolin' => 'https://pangolin.api.subscan.io/api',
|
58
92
|
'crab' => 'https://crab.api.subscan.io/api',
|
59
|
-
'darwinia' => 'https://darwinia.api.subscan.io/api'
|
93
|
+
'darwinia' => 'https://darwinia.api.subscan.io/api'
|
60
94
|
}
|
61
95
|
|
62
96
|
class << self
|
63
97
|
attr_accessor :logger
|
64
98
|
|
65
|
-
def api(
|
99
|
+
def api(chain_id_or_short_name, api_key = nil)
|
100
|
+
if chain_id_or_short_name.is_a?(Integer)
|
101
|
+
chain_short_name = CHAIN_SHORT_NAME_BY_ID[chain_id_or_short_name]
|
102
|
+
raise "Chain id `#{chain_id_or_short_name}` is not supported." if chain_short_name.nil?
|
103
|
+
else
|
104
|
+
chain_short_name = chain_id_or_short_name
|
105
|
+
end
|
106
|
+
|
66
107
|
url = CHAINS[chain_short_name]
|
67
108
|
url = CHAINS[chain_short_name.underscore] if url.nil?
|
68
109
|
|
@@ -72,14 +113,17 @@ module Etherscan
|
|
72
113
|
subscan_url = SUBSCAN_CHAINS[chain_short_name]
|
73
114
|
subscan_url = SUBSCAN_CHAINS[chain_short_name.underscore] if url.nil?
|
74
115
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
116
|
+
if url.nil? && tron_url.nil? && subscan_url.nil?
|
117
|
+
raise "Chain `#{chain_short_name}` is not supported. Only " \
|
118
|
+
"ETHERSCAN #{CHAINS.keys} & " \
|
119
|
+
"SUBSCAN #{SUBSCAN_CHAINS.keys} & " \
|
120
|
+
"TRONSCAN #{TRON_CHAINS.keys} are supported."
|
121
|
+
end
|
79
122
|
|
80
123
|
return Etherscan::Api.new(url, api_key) if url
|
81
124
|
return Tronscan::Api.new(tron_url, api_key) if tron_url
|
82
|
-
|
125
|
+
|
126
|
+
Subscan::Api.new(subscan_url, api_key) if subscan_url
|
83
127
|
end
|
84
128
|
|
85
129
|
# for example: Etherscan.eth('your_api_key')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: etherscan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aki Wu
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|