增加cec claim相关接口

This commit is contained in:
CounterFire2023 2024-08-21 16:30:49 +08:00
parent fd9ffce88b
commit fa64a84b15
33 changed files with 124951 additions and 31 deletions

101
docs/bitget.md Normal file
View File

@ -0,0 +1,101 @@
### 0. 说明
测试环境https://oauth-svr.cebggame.com/task
正式环境https://taskapi.cebggame.com
### 1. 钱包登录
#### Request
- URL`/api/bigget/login`
- 方法:`POST`
- 头部:
- Content-type: application/json
- Body:
```json
{
"code": String,
"message": SiweMessage
}
```
SiweMessage说明: https://docs.login.xyz/sign-in-with-ethereum/quickstart-guide/creating-siwe-messages
#### Response
```json
{
"token": String,
}
```
### 2.\* 发送邮件验证码
#### Request
- URL`/api/bigget/send_code`
- 方法POST
- 头部:
- Authorization: Bearer JWT_token
body:
```js
{
"email": "email"
}
```
> 验证email的正则
```js
export const isEmail = (email) => {
const reg = /^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/
return reg.test(email)
}
```
#### Response
```js
{
}
```
### 3.\* 验证邮件地址
#### Request
- URL`/api/bigget/verify_email`
- 方法POST
- 头部:
- Authorization: Bearer JWT_token
body:
```js
{
"email": "email",
"code": "123221"
}
```
> 验证code的正则
```js
export const isValiedCode = (code) => {
return /^\d{6}$/.test(code)
}
```
#### Response
```js
{
"token": String,
}
```

120
docs/cec_claim.md Normal file
View File

@ -0,0 +1,120 @@
### 1.\* 查询可获得的CEC(所有)
#### Request
- URL`/api/cec/info_all/:address`
- 方法:`GET`
#### Response
```js
{
"total": "200000000000000000000", // 总量
"available": "100000000000000000000", // 当前可获取的数量
"claimed": "0", // 已领取的数量
"outerAccount": 0, // 是否已绑定交易所账号
"stages": [ // 阶段信息
{
"stage": 1,
"amount": "100000000000000000000", // 当前阶段可获取的数量
"status": 0, // 领取状态, 0: 未领取, 1: 领取中, 9: 已领取
"unlocked": true, // 是否已解锁
"claimTime": 1720685893000, // 领取时间
"unlockTime": 1720685893000 // 解锁时间
},
{
"stage": 2,
"amount": "100000000000000000000",
"status": 0,
"unlocked": false,
"unlockTime": 1720772293000
}
],
"records": [
{
"address": "0x50a8e60041a206acaa5f844a1104896224be6f39",
"amount": "100000000000000000000", // 获得数量
"desc": "UAW", // 获得原因
"earnTime": "2024/04/01-2024/06/01" // 获得的时间
},
{
"address": "0x50a8e60041a206acaa5f844a1104896224be6f39",
"amount": "100000000000000000000",
"desc": "UAW ingame",
"earnTime": "2024/04/01-2024/06/01"
}
]
}
```
### 2.\* 查询可获得的CEC(所有)
#### Request
- URL`/api/cec/claim`
- 方法:`POST`
- 头部:
- Authorization: Bearer JWT_token
body:
```js
{
"address": "操作用的钱包"
}
#### Response
```js
{
"calls": [
{
"trans_req": {
"data": "0xd718f2fe00000000000000000000000050a8e60041a206acaa5f844a1104896224be6f39000000000000000000000000e34c5ea0c3083d11a735dc0609533b92130319f5000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000066c5a3be00000000000000000000000000000000000000000000000000009cd152f9e5c300000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000417e20d59d85b8a49a9ea0e117f98e7d8ec92d6fdc8d3f7320347686734b320a967e75e307197badb266eacc97cbe70321916b5a74f721f00e2ec4eaa2dbbf6ad51b00000000000000000000000000000000000000000000000000000000000000",
"to": "0xC95bDFAaFBf79b435e4d2bF8d77842fc19e6fE56"
},
"trans_id": ""
}
],
"errcode": 0
}
```
### 3.\* 绑定交易所账号
#### Request
- URL`/api/cec/bind_account`
- 方法:`POST`
- 头部:
- Authorization: Bearer JWT_token
body:
```js
{
"accid": "bitget交易所账号id"
}
#### Response
```js
{
"errcode": 0
}
```

View File

@ -1100,4 +1100,56 @@ export const isValiedCode = (code) => {
```js
{
}
```
### 36.\* 查询可获得的CEC
#### Request
- URL`/api/cec/info/:address`
- 方法:`GET`
#### Response
```js
{
"total": "200000000000000000000", // 总量
"available": "100000000000000000000", // 当前可获取的数量
"claimed": "0", // 已领取的数量
"stages": [ // 阶段信息
{
"stage": 1,
"amount": "100000000000000000000", // 当前阶段可获取的数量
"status": 0, // 领取状态, 0: 未领取, 1: 领取中, 9: 已领取
"unlocked": true, // 是否已解锁
"claimTime": 1720685893000, // 领取时间
"unlockTime": 1720685893000 // 解锁时间
},
{
"stage": 2,
"amount": "100000000000000000000",
"status": 0,
"unlocked": false,
"unlockTime": 1720772293000
}
],
"records": [
{
"address": "0x50a8e60041a206acaa5f844a1104896224be6f39",
"amount": "100000000000000000000", // 获得数量
"desc": "UAW", // 获得原因
"earnTime": "2024/04/01-2024/06/01" // 获得的时间
},
{
"address": "0x50a8e60041a206acaa5f844a1104896224be6f39",
"amount": "100000000000000000000",
"desc": "UAW ingame",
"earnTime": "2024/04/01-2024/06/01"
}
]
}
```

451
initdatas/cec_gacha.txt Normal file
View File

@ -0,0 +1,451 @@
0xf9f182d8f670baad9bfef244d9982cb67f8d457c 30
0x17daaada3a05e8ce32a9ebc904dbdc8d7dd82980 30
0x0214dfb283cf4aaeaf1b3fc22cfd10008d936c5d 30
0xac09a154807d3a0d8edaf450db7b055873a0e5c2 30
0xbba2546cbc7d589a7e5f51a5e122b22b31fb0d65 30
0xece04900e62d951fec4b357d30142d24948ce76c 30
0xefeba0433ee5afad9987f012040fd19584e62f53 30
0x82523059a6b68df6d5e1a6f2c4a4b3a0c5f6f5b8 30
0x87bf31dcea1be8f8ce3b1a0869a29ff551597899 30
0x52ceba71b0e3b200bb01a0c3fc28de3f781833a4 60
0x2ef89cbf855115ed6964fc1762eab2b10a83df47 30
0xf862e1051d5c637f6cf534529fd5382ae7275bba 90
0x0859a68264d2b10dcd683a9e79c6eaeada119370 30
0x1ca0dd94e926bee840b19b043419edb8f29e7778 90
0x26fee709d605adb07ad5814a2f90e7f844256b99 30
0xb03a824809b042c5b9d4b04e280a0c2962b864e1 30
0x5a39421ef49f5d9f213262953edb735c63810e71 30
0x781c8b68c5b55c100f5e5755304df7d4aa2732f9 30
0x5ce91c25ba4a1e81c3f50869672e032c843b09e1 30
0x8f3cd5c3aa3aa7e623063acbeb202a035472f7d8 30
0x894f2cd4e73153ca9ffd7d88c35010e0c0fb7c9b 30
0xa3383ca3a4396e28aa36e50944282a9c36afd439 30
0x84f37209935a93a47f97cb26dde53aca2ce18a86 30
0x006d7f4219d80211f8d1dc0af06bc3245ec0e472 30
0xf4743d8c03e95a8a3cb32b336a10c87ece3685a7 30
0x327e1ff6b454ac8a6d8c82d8c588aebb88e65000 30
0x57b3a4a514941e61bb74c8cb1c11fbf3c549a9fb 30
0xb12a1799c0a5051efe3c634ad5247d458f691a7d 30
0x7dc5f5a9969229022ec07811a90dc823ee5b00a7 30
0x2abfd0511b6b2166a8e8a74fc19f963d726fe2e5 30
0xc4cdd71e2aca6f034d21522d51404fd2054b2a95 30
0xe35a6b01275693600edb8baad942e66edf240633 60
0xb4ead62f4c27858274e8b2d326d6ac09750f1021 30
0xf92d56a4841264694d928a379249f3e85e2c2416 300
0x27bc3cdb7d1ec8c60cd814583eb330c80ea46f71 30
0x7261162930a9a5113c67ebd9eccc941447472ea8 30
0x3e62352b41131acb6e64e7560e4f6a4ace2b754b 30
0x72492e3c742497e993a84e4e891fa4798d1c7566 30
0xa7cf09ecbfe618d65a433fe921e6eae19e030a00 30
0x9fef8b1167da90ad072b6d734fb1f5d02c9d45c0 30
0x167219214ab246057a1fba4736ade849bc4e32c9 60
0xc05b663d746da10c2dc48fd2a8f01b94b990c612 30
0xc3e1a628118dbe3c4eb1f1c06bdcbd2ae6ae620b 30
0x405cbdaa490e7558d7f51e584727379af609142c 30
0x917dbfdf06928e51b95553e32c6d84948008a9f1 30
0x89425d65e85f0c1c5e9c1663ea6e13f61987e245 30
0x8bd50f5ee76f65627ac507781b4a4624170d9ffd 30
0x7fe1bc74049e2455cc3023f684f301b38db64e56 30
0x9cb7b31b030236d023789c6830b522ad419573c1 30
0x54d34521ee97ab1a4e85524cabf6c3714080f138 60
0xf82fa73e9871be0654d312dd7ef1f27c5c9fce81 60
0x7ac9f4616206a6b04e9465ff94dfda0f3099eede 30
0x053e3dfa0f90d65436816fa6b8f1fc8e69e696ee 30
0x771ee851f094c827f9bd8a37086909c2599425c2 800
0xfbc061d7e5e86bd2ec024705d819e994cb18c865 150
0x9bb1fea42c489c59e2ce00e980f4e1e34a5f3bc5 800
0x3a8c426e5514f042860c879c9d5798cc82481e1f 90
0x3a0e7b1c3525000b2f2568fa831f3e4f1926f87a 30
0x75bf219c6c111353690de94a8cbdfc52e35d82ca 30
0x908ca8d1a016addd0c3ceba21962221e99949bb7 30
0x32c8c0771c40f08e799ca1f2a64c94c3f26a546f 800
0x08913af2b92783947b93639803a3feb6259fbdca 800
0xd7a4adca51cdc41edf82343d3b1328ed73446d64 800
0x116b2518d15264e9c7bd1de1fcbd441a522f259f 800
0xc2cdc8ea4d8a7d2284611c350814d840aea59429 30
0xd6053730de1402a8a26d590406b0a72fac94ea28 30
0xde6a63b8d8c44d39f5d5b80aa3e9d5abc1eab582 30
0xa374f75ad3682711cc7a9649c7f5146ab56597d5 640
0x31e0765e434610ca91c4cd2b5e22a145b7a5997c 30
0x738a1bf0e3ba270a3f611979a603e0e1c7c54e5b 800
0xfeb4505532a4a5d340fae86c024512326a84de13 30
0x77d7c09d09eb1d2c903945d416e4a244f186d863 800
0xb60422d79f4f02001724eb158644ca2406b86380 30
0xa453c2ea6e06ff0ca1546e5be376303919450561 30
0x9588ea6bc680206a26f581e17d7abf3e22e51f89 30
0x36989ce9b555796219ffa970bd5fb263ff53bb36 30
0x25477f90849839a2cc7351a9d7333cd50a4c4ca2 800
0x4c23e8e3e6ff20b53e18faaf51510bf1805c959d 30
0x17216e4eb7922bda921ea57ba3bee435b3d718bb 30
0x57d728e9abe1d2579aea77d6a9ae8f2c51c3d4a1 800
0x40077206354077fd9491432830dfa9f384acb964 30
0xb00bd17039cc252edc528ce7269336a12c803d00 30
0x8eca89627c0c77e4007f60e2dc2fdcb236e3c5b6 30
0x3b1e44af9f47f4d284b9aeb3c7358b76a0f475d4 30
0x7671fdb395c34b1c98b797db485e5d70dc30aac6 30
0x338b696048ec1ee2d641da1bebb3db1b0de580ff 30
0x69aa22c2501cd85e2d88dd9c673c7962592429a3 30
0xddb22372dd5a7ec17b5b3504e607cd6f5bd691bd 60
0x7d2fd4e88b1241c92ebd53e84dca6ca021d3f5c9 30
0x41dbf8022c00ea74d690d98fc3039120ff821ee5 30
0x05b92e4b47d88b15a79389abc605efe0f9784e3f 30
0xfe95392bbc95614f07438f8fc3763142aa1dc202 30
0x4edbcbcf26c4cfbf6c8e0880789c4438078d4bc9 30
0xd12a132dc3fea45855650d7d62e2611116f401f1 30
0x649b35461f72b4f3afd0bcc81a1092fe0f7365a6 30
0xdf9387448265d19e809c874f703ccd54024923d8 30
0x5ddfcbfc8f4d025150a424231db8970b91c9f22d 30
0xa34b4d27c6bcd5d6b7ffc75db117baac2874cf65 30
0xfa630dd8197bc0d23118b5bc3f73fe4d526db949 30
0x615aacf68c519e28f1e37581c8d096d5d0ec0c04 30
0x78615d413dd43acae76aa028adebe500089613c8 30
0x0d66d3ffec8391855e1773bea7de38f1bd024ab2 30
0xfb808c2aabb191edafa78ad087b4c34e599b3356 30
0xc698a6a6da5bf34910b8524cb0f1bd462e827d39 30
0xaa822db3e6ed0107e9c0df17124781aa2624ee72 30
0xcd02d97bde7bde91cebe3bab18cb590478e17053 30
0x4c5c8e196aeabf83396b785478b7fb7e87ed5f03 30
0xaf8bf536b8281c167452048fcffc5cec2ab50da5 90
0x19cf81e1826275c5e31037e0c075d7e354718b1e 2250
0x9ad2cca185c45a70d4442ca85e8c8dec3fa426e2 2250
0x0cc2186894a9a0e6211a93d5eb9022fd0c6b7b46 2250
0xfa5a2850a708babaeacd2a1f08394fe122f45686 2250
0x4fb1085c4b9ddcd896c4d0d7b9a6e714fa304a26 2250
0x59f42d9e8fc0915bdfb7cabb8582ef1d9e135e37 2250
0x8e640ed37914f5c75984fa473d022b08b5b588ec 2250
0xe19c5154d1b097d15856743c7b93861ac44a07e2 2250
0xa41cf0cf5688be1c8aeabb5a21d98f9c3708b165 480
0x0b6a3611a4afc479d904314b98fdcef978cec3e0 90
0x9572245328b4b58ed24efbaa4b57899684acf5fe 1035
0x0c8ed320ee1bbb30a6070c73b9c318631426312f 2250
0xd84537a062e37f5578760706c48e088f2a078eda 1125
0x06c4ffade73361429866dfd5bdee2bf96fa33b1f 30
0x2dffdd73e7c62d19560d5a1ba81a812d82469c32 2250
0x48a5fef87fee2a925d74dcd0a742373569fe7be8 90
0x303907da8c50fa8251fe0bc7b7cc7884a41db077 30
0x7f84b564b82fd37447eb810aa41c08e6213ceeb5 30
0x90855c49886649fb5a8eea1eb026f82d16ac39e1 30
0x63ffbe56c78a2daa338e7192e111bc14d08ed76c 30
0xf62dfbe451fa7175f296e077641ba660213b2bc7 680
0xb378d29e4cc804f375b0c9eedb7f88fa055ad582 1170
0x4617217a6f515dee68fb446cc9220d5cdb27671e 30
0x21162a49845b450026611c45faa8ba2eb0d873ac 30
0xc77249fe1cf1d7760471a357884d1958c450ed23 2250
0x12a25e58cee5e18b9fc43526454641038787af10 30
0x820cce89fb99a198ca4359c9aa7fc289800cde61 2250
0x310abed04815a01a6ea98f316898ea42961959ee 2250
0x2fdee73c28f30ba3137f8f33f7718f70868cc262 150
0x7530b83f2c87debd5ece6c8818307cf3ce2474e6 120
0xa35e9f0e7f7903a0fc40e5e2cf8e037c6d9d6f88 30
0xed0ea2b5dcfa77c12d158f1ee305f00f78c904d6 30
0xe4f39c53db0240552909cacff2ff5d3eabbdbad5 30
0x7dd84f54871378de8e047b078e1c3c87e9a08d33 30
0xeb6ad59a3d51ff68548fa810f3874b0743995d92 30
0x2ce58766ec044d4976c5ded6493d180ddc143125 30
0xf6e021cd7f02a972d7fa86b956cd1068a52027e7 30
0x7aed777a9ca9f86025f324c0d99c3d3b7e0c7d75 30
0xb0ccfcf501b3b30d1d9cf2ae919db4d34dd43150 30
0xcd843fcaac19527906d33448283c84788404343b 2250
0xaa01cc28ca900d78ca63c64140f2e5f202038235 30
0x4bb1f41a76c34090edb4d4da76d56da1a02a776b 90
0xb4f721afa7c63e175dedba270f7248e04eb82923 180
0xc117552733b3545e6f4a0d09de74d783e4a68c5c 30
0xc656cf1e215f2410d58d60ed400dd0d01ff0f231 30
0xd613120d66e4abdcd67d929c2df161a0d2c52430 30
0x036e450b609e11b82ba374abc09bcc1ead496140 30
0x583bca11cf8d695e6ee15e483385edeb5b6c2d0b 30
0x08797f7bef40b1f373175d3d5ce5ebb4b1313968 2025
0xf0c9862824d849a4f6ba3153a55ee213bea09605 2250
0x598cbe878752b06104142975f7ab6ecf4d1617b9 30
0x5da5f71a186e4bb5100c157b5306d4f572a063d5 120
0x6e504d274ba851a92909e70ba6f878e016d96637 30
0xfd3dabf35ae9fce32469e13be8d2806e39ab0ca0 30
0x78043adb8f52c869e65fc68b2bf96dcef231d4d8 30
0xb96058a0e079eaf7cfe4cd6f10f575352a639c96 30
0xf00ef948fc2c216445fc19440263e5abc6bcc166 90
0x4ba60373967ff798b64a3a092365ab1c434050c9 30
0x9cb6e871f7384e8d2166ce3d9fab4ad6909de4e3 30
0x9e19c5a01b95dab234925c62d3d9b6de104200f7 30
0xfa0e93234013f21b81c01bb3335e6dd38a68cff2 60
0x18156c2591974326c11eb802e11b6a30bb75671d 30
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 30
0x0f416e5b481e6c9ba68f02f34e504d48d8b869f2 60
0x840ea3ea4295b44ff1132854847a1ac75644016c 60
0x732baddb1bbbfd070d6c19f04c6d6445e6e65bf7 2250
0xb776030a301ae9d88e24d0943088d899f5e59ff1 30
0xc73c60fbe31ea495895da002c52e1903a4a79895 30
0xadab17c568f3acbcf28e0a52438a1ce4e585a0d6 30
0x571b976a4dde9684b80edfeb8ac97dbeb5e44636 30
0x607b62686288ec68c3cca34eb65217a034fc1131 270
0x45e3f2effa409e79a829379066eaf541100c1ef9 440
0x581e492a70d7c6dc2ea1d538780161e99879a58e 30
0x3632ad3e67674952524cbff2b89935807d8c45ba 400
0x097e64003b3e1691a951839ba5e6821e7eeb7322 60
0x4dc075918f86732186f4028e373c7780fc48fe98 30
0x3ab6a12505e099644df8a6c29fef638a399fc7ec 30
0xa27f87aa1a409ec24ad9a9a8cf2000dcd329b734 60
0xd7c1e24137ae63a958a37bcb1b5899be49ca7161 30
0x480291cd1e9beb999d59f53c7cdb93188e5fcbaa 30
0xfb45ce44dc991b6293dcbb04af3d676f6c61aa55 30
0x13c2e540b99c126477b66e13b3442b77e7d14210 30
0x7a85f06587e334ddc8ea4574bc35c20fc8e8736a 30
0xf8bfa2daa84774dd4d6c4fc87d7077cb166b3d7c 30
0x10bce91fbbe66c987dcfc5042bca6fd9f6e2bc20 30
0x32d678eb535ed73d25ab3b9cb78b756d7faa10b4 30
0x9933e8aac4ec46330a807bc22dad35f7c0174a8b 60
0x538b7b5e5f5bcc75f1fd8a6a5e020d3a6d119dc6 60
0x8399b25edb32eb7cecea076b69d5d592580b6b1f 30
0xf3d9b1a3a30e432e2a1c5559a903fa3439f68593 2250
0xc7f4b3314ea2a6f077bfbc2c75ecfdb700538332 2250
0x30de150d1ed69c84d28d0f20abe1bdefca8605de 2250
0x6d31345c2f3ca9834b405a42ad996b5ef75081e3 30
0xc6d790b5298c6acb70c91d23d9eecaebbb488244 30
0xfce2e5fc5602b7cfaf29e8487a7f0fc81fc8c87e 30
0x8f07538fb0ddb43a7ea1761c702ec195ab81f7e6 30
0xb045a5d0b347b530cc3a0c1ca2e0932cc68d4805 30
0x6ed977cefa9e1020cf0bbb1793b4e73ed4a1dc1c 30
0xf8803fbd2691841c154e64bba7db35027514914c 180
0x3e07c022c2b42528ba019eeda571e71599ecc22f 30
0xa5a6c9f541445096b90f2a711dffdf6286ed72fa 30
0xc9c6ff8982caca63f2a6a849308138c346ab96f7 30
0xf44ae4c26c9fbc469dea2c3823b9cc0276c3306f 30
0xcd4713e314e65c14ea2d9eaf48d4799cfda9d842 60
0x1442dfeea924049c74df2a607a5045e164903ce4 30
0xd7784ac9509170da04443c07896fc558a80879f4 30
0x9a550cc8639f7386514fefef6ab274c8d620a890 30
0xe32c5f4f0a442d936b69f006aff182fb0e7c309e 30
0x96ed46b8c742c29c4a32f1c6b87f881c62688a24 30
0xaa2d2f17494883ff0f08fbcd0a6a82fc17397675 30
0xcdad026d00508578b4a73e1f3104eb0cfba8ba6f 30
0x4b379d65e477e6dc2a4b88dedfc4445c6a18384d 30
0x2645de00fddb44ce732f72018f15553b4efd9ee9 30
0x2b7e63862725decd01126f9bd72adb45886b103d 30
0xf24cc8c27ebb9da77ba82f652fc3e4e664294d32 30
0x9ea7e42ba1b0d6b348049c5b2d9918987ecd8387 30
0x7f0692f804c2687d8d17f3d1601236732a44969f 30
0x332dcc7e03dd6f1bd136c798a263ab41c9152bb2 90
0xa64b0dd58ffd0e5bdbc3054f7e9ffb6aa74e59bc 60
0x1eed5e48b5dcbc3f5b41ce63391c77eae9e5afbc 30
0xd2290cebfaca513fb9de31128bdfa209a188a852 30
0x6ddbb5b5c40d8a7e904c8adcc4ed044ca4f5b133 30
0xe149341ac9cf015b94aa6f9421cfbb9cf7ff3081 30
0xae95089bd4783dda0e531e40ccd5d351c62677fe 90
0x62d9ef5c5991af584e1f274ac1e2e2f3c81c7e0d 30
0x0dc48acf3fed6bd7da1d4be302695c37a8dec193 30
0x53a94c23fb33f3a45e1328fa8ef578f3cd6a13ec 30
0xc3b38e4b534b9160c0ef21db5807eb0ec4b7bded 400
0x1d1ebcb425c071dde863049b4601f25add4de1d9 30
0x06bf001bf3668eb28b9577584d79c8771f69b804 30
0xc9e9d0a625e70afa2a1db8001c11eb5a0defeaab 30
0x349ab8ac18213867de0ea48de1ea9018c6ce5084 120
0xe6c265680390716b9a380294119515290324e56b 30
0x7b78117aadd90746c3f7ffd3f5864ec2ed55cc56 60
0xece234250872ec18f14c6ca4842cefa74e27bf89 480
0x07696a1a99aa3d5474ba819371149b8f00b09d1c 30
0x85512dcddb5b750c67e6b56732421b19140090b6 30
0x956982d9501722273752cab2e9255565a600d95f 30
0x88c1da9bc48c56dddc08887c0cbb16d8bd8f2ce8 60
0xb5dad630bb88698a77cc6f5beee524c4e19b0aa8 30
0xa135f37b3b2cf7247f163a2376f6db7728556983 120
0x9b9f1ca91f64c3d1d40d6454629e5cbc4abc6df6 30
0x9299d64e7ab97c119e9df740c025b050409fa993 60
0xce33b6769c03d1c7e4984df2bb6fb03d88c95520 30
0xa9c156329e649059043529a6440ed680b9676928 30
0x564d8597b1d39747fd11dda97d06bfd6d680fe3b 60
0x7307803462ae61dff59ae8d3d23d6cb153d2bc73 30
0xb42b3831e0981e1836a39a5612194dbc40e89a26 90
0x5cae99d3a514a4518115dd0c7b5b2b99aeeb77c4 30
0xb8895dac1a7391dd066e08e4831635733fceeaf7 30
0xfd1e824b1e921f729956ef5d777dfc1c47b83147 30
0xef6dad2f1c98de95b0b5a490cb60e9d12f3093c9 30
0x2f99f7d15392d5ad0022b1a3062315277d18e67a 30
0xd99b21ee3df39f7f85c71733f519081ba5b7eb1e 30
0x0f9bf85833a89219713cf0fdd2093a33c8a17200 30
0x53c6a53bc8537fb404a702ed2e4c26249c139578 30
0xeb3aa93af1197459f4913e8bf6a532b332de954d 30
0x39faf6d6b945b7e20f54c1082eea338cfd6d49b2 30
0x01404c596bd28275a8e4cc9c14b9dc6f4ef6e4bf 60
0x9d8c6af07253d6e39570da6004ce8967ead8ee68 30
0x41295781a6690f6c275965cbedf67f3542b3704d 60
0x868596b9453d98b3fa33541e0d1306aa1249c8bc 30
0x1dedd7f1fdc55b2c70057ed36f48be60ddf7a8a0 30
0x811b6a175dd9cd8a59d2bf7a8c43075f6bf48ada 30
0x8d2be66cac4c65ca0ad6210c70ccce32fb042a8f 30
0xb8c9f251402fc07e72d9af6d569ddfcdeb9b4d59 30
0x5cb8de150c24839b6b561faf5f621f71054c83c9 90
0x5e425ac7ebe4a1354fe962bbc70c31d6d5a90c60 30
0x2fc133799a8ce60423111e80ecf7939cf2a62833 60
0xfd6c5340e1944a8b185e2a62a83b605d09ac673b 30
0xee4568aec8462610c76e3700d5a1af0bf34ab913 150
0x73f37a3ff4203aa73b7913f66bb45c58a15c2e44 30
0x9ec146e20bf78bab9b97dbd0acd6389bad867ff2 30
0x17d33bff0bf63be15ad8f85a1b935715234490cc 1035
0x8ed262c6dfd42f5d6112d9f2f36e8fbb6f19d29f 30
0x96cf4d631c5d1c21f618a3a927a6d175cd3420e3 30
0x54e3adf62532db7b3cf00cfca079861fb19c4180 30
0x8341ca3155830c8a877a7d69debeba2726a1eda0 180
0x269c9080928c6275b35f73ccef9fad99955aca2e 60
0xbd4b42be436ca6933d5cbd0d433dd49417b2b65c 60
0x587027d30cbb9ce38476aee2b3176840f5c76c4f 945
0xd9545453129c80334c1c3d1029ca4dc36ea80f0d 30
0x5b42efe9164a399d141d21c5c52c77a433b4c51b 30
0x2c4ce49fc8c3c4049cbd66819a3783f082608d5f 30
0xb826bceda7e628253e901a74e8b862c1a03c63be 30
0xd38bbd3600f0cfcd8484c3f0ed7e280bad6e6496 30
0x25b59a346fce4d3bd368972f73c66066bc7f4f65 30
0x88a5ad147eec3b39008b43a6b3c47a0f7d900f6a 30
0xa1ef34a8bd68f2eb67400ca61fccac60b4595c83 2250
0xa481c9f81361a0633fb338322379cabcafd41d8b 60
0x014d29868a23cb0b4b8c23f54647c04801030cf4 30
0xd397ac0770fad2f16bbcfa52563494e03f157a3f 560
0x5b51c4a2c2452deafb8fb437dd778910b5428edc 90
0x7a9425f291d4454f26fbdc74305e023ab3e82596 30
0xfbfcfaeaf3d65e1606995ae373c7aa31045bf811 150
0xfc4565bed18bca91e8a069b3bc7e17983261e1b1 30
0x15dfec6b2b6c39ee53a11b03446249d5080bd0b1 945
0x7805cb45076a4f421df716efa27a8eb26022e2b5 30
0xce5cba4d53dd09da79692ece42f7461a11e7f4e7 30
0xa061c09bd424be95271823b893e75644385a49ba 30
0xc971b3d42064b4d4417d4db745058047a44e9066 30
0xbaeb392a34b5da14260a1b138398b2ce8d2f0a17 30
0xc4dedabe3b41774538345d120f3f813288d194a9 30
0x79bae5c1fe23ffad1219ac384dab6469e72c6505 30
0x6f07b8ea44835a8d6fd67ad9621287bb48e2984f 60
0x42eb3419619d83f1dda5890946cf8734b7e0b3bf 30
0xff26d89243d33caabcf5093c57ff244a7ae9c96c 400
0x77e6eb128f991cc2b4e09c454a2b79b0ede49a8a 30
0x26f7c408c6e1c29ee5c6bbf565be58b8e6c419b0 30
0x7081917c78e1c95a40dcb12466e515fb48855a96 120
0x46b399d3685bd5b0dadb613ed363469ffc985687 150
0x4690e3331cd955c80818351c4b00c4e67e2426e8 400
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 400
0x5e009b23e21997584c0a644340d4fae3553de94b 30
0x1b6465f33fb45a5f2f19063f74c91b05ac2eddaf 2250
0xdf73201b06a41e0a70976ebf197878ede0905a32 30
0xf672e7b1bf5ef311ddc39c3e85aa8e71ad67d84e 30
0x7cde6654feb7efe7191d6ea8e0c85a97b40e1fe6 30
0x575408d17a80bb9078dfc6052ece8afbae0e3c2d 60
0x9e34db8654653ad65fe01658891feacc1b6b3bf6 2250
0xc4599ec25eb0ffef2fdd40f947fd54eebcc0b0eb 30
0xd52a954ddfbe9176771cd43ace1534c6e15e1f35 2250
0xce48d03f8a9df5669c8e9271f388c79c343e6f13 30
0x9a638a02c704903c32540928ae4c7f06bcadc700 30
0xf3c4b7bcea884f652e780adfdd6755e121530875 30
0xd89ef8484864b35b52f5f43296fdbec433c62802 90
0xe84f5f5b22a0989bd1dcc5c2004e80d95fd6d9eb 440
0xf61be42c32435ea17364003324d72c4dc5c7cdf6 30
0xb0ab2abdd154e903c9f782d01f8db5a9819b5b25 30
0xdf0580afd77679e11b29329da696cde9d88cb45d 30
0x58639f6b8c36e0d93fe121ae76143400377ff6d2 90
0x4d4d2bfd31c54aab1658068485d9545869d75171 30
0x4fdf3589f1bfeb6af97145e5a6d315736274b693 30
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 1800
0x62209cad0540de5bd56368681fca9b7eb5dadba7 60
0x7aa49f0e9cfba78be1b72aab509c070602b93d9a 30
0xe14deaa0c32cc53ee0c920c492e0e577c5ffbac8 30
0x2b0ee51da1eb23de434a5ee2133cd0e3691a4441 2250
0x8bdece29c9e565722827f07c0239380fcc41b594 30
0xeaa222bdd57e6b3f31c7f44a9d56b6726739c5cc 60
0x0873ba4ea24520577e963327c7e475d6ca37019d 30
0xbb19f9316aa2cc26dc618f1645275b0466db001c 400
0xdf71065674b0db4ae315b756decf46738e33a81a 1530
0x28ad460be74002145d74cd9d7eb246bbda101055 210
0x54a486436f1beab8a46d298fd82a4569a3856082 30
0xe87924bf688e41339c57763c2ae460179cc08e31 30
0xbfe04aab2ee2eca5294cade954fcdb99e7e36416 90
0x22b5aac417d3a70e4b098dfa3228b00dccfe22a4 945
0x455de6cc1c2bf77e9d8b654be8441ec617dd9147 30
0x100904e5a0a8bc07dbf572f46a02ff26dce1a3af 30
0xa06a12c018bee9f5de5f56f71dbb203e2f2d85a0 30
0x6a1e0e4bca95d10cb40c11f3d46e0eef82dd2a14 150
0x8418259e62817a002486961a9b97001d88388433 30
0x77f3360c1632fcea429b174dc35d44881ea373ee 945
0x59f24f15ab4c4900d82321845ef2922ea30d31bf 30
0x9010676e15874e95917c450b6e64b9aa22bb6cfd 30
0x49b2ea8b80b65f3ff39786d7634e7903b49d4862 30
0x4dd4bc1682de7ac08030776b1bd8848517f3b277 30
0x38b114b58cbdcb480c4758754849a3472f38b58b 30
0x567bb665a06794dac446c18534ba2dd33e3a6fa9 2250
0x81e92a2ee60081d56e94150aa74b67f4c248927e 2250
0x7abbfe8c8e2ce4e923551ca019f02f192c38f84d 30
0x81ccad273da2afccaf152a5ad1f15fb0b5703b56 440
0xba01de8a7b159ab2540387ea74d2848f573a505f 30
0xb24b549f3534f78ebc71a2c1b64043745ed8a04b 30
0x50d12236b2f42af85396e0897b0d36b3c7e7a917 30
0x0213e3027a8428c5fe4bd04a7d898a609f31bad8 30
0x969e5827f48bc6cf68fe675dc179c51f1c7ac86f 30
0x9e5a83e6f6bc2014dc24da7e9c98209292a21c5e 400
0x8856e1dc49d0e4f7738110fd842db4f7da12082b 30
0xd90b12540860481ad8900df9bdad9c9469cf9f97 120
0x1e835d298de517bf92412d5fa49689015f072420 30
0xa2d6f28699b4e890cb4bceb7acd99592a74f6d3c 30
0x0f001e1ea9c6159d0cee17e7b2cc36b4f9a3e4d9 210
0xbcd83bf9a4586661dc79e85999dfff9d9b5577ce 30
0xd5a5b5d34af2d8a746e8e2e620a249916ef9502e 2295
0xfbcec8edd831a4dc8509c5521627bea62701059c 440
0xaffeaaa3144341842fef43341ae6d6a9ec5e5262 30
0xa33ef89a67d94b47b14ee09289815f160d3cc48c 90
0xe495b65fc8b77acde87daff462befefc4e2190a2 30
0x2a05af114fcb3dbef1f7d243d8669d249bb98cb3 180
0x7517ea71494c603188fd98e41e2c79c41d78cadd 120
0xb8d8092eecf3b447325bcfa742f4e6a7de4e3dcb 30
0x31797ed25af992f0621759406d18422fe9b63642 30
0x641a4970e5546aeb37b3eb066f2d973dfb5d73ae 30
0x28176e3639a5bf78700457f4e730b5c213e100a2 30
0x856cf901a3757031f262f27f8fe4bb4b40df60a4 90
0x9816f54829bcf438dee60d1cbb9c302dbe297372 150
0x5305fd2e41bdccb8f9de2cec65505d391bb30342 800
0x6ff18232b737eec4ee2e3ec7900b3dcd5f19131b 30
0x869525b75d620c2f021494224810129677bcdfe5 2205
0x36b277bca24f246315f4e7d667dc268dc9a128a3 30
0x42bae70c96a0dcf8f60552e264d3f95a98e4146d 150
0x074d599b67c1c37a547ba5033bc4083b2807beeb 2205
0x8321125307bba53dcff116afd57c0ecc71930b60 2250
0x3c7588fb5e4423b6a37d575d6c3db37d1bb050e4 945
0x5ab289a236d4a1a316c332a20a26a49a41404d27 30
0x57b2c8f1f3c4ef58a253631763cddbcf4986d980 30
0x4ae066c0575636d81cb5e073ccb9a255103c6aee 30
0x34487ff5c9e5604d0b148a299900c9035866c3b4 30
0xad2f05853738523740611cc86cd2756e6efc6acd 30
0x3206d9149de31becf4a3322688f662c0733300d3 400
0x8b4208466313fb59f37d80285813961071865fa0 60
0xc74ff714c501048d3c3942763c3414bfb4e34749 30
0xa722de3e53ec2ef40a4109ef877f24a0c70cdcee 30
0xacc627182f38f8446116eeadcb215201b9f931e9 30
0x2651a3b93bbbce8b8fbb6498491999d356e7e37d 30
0xce8d26ce3df69f45b9622801b0cc6c58185e1010 30
0xd11502cad5c19d402de3abbb2522f80d24e776f8 2250
0xa58170e65da4cd52031c5f3749e9e01aacae1a9f 30
0xc4025544d3edbaa30ed3df99a5d31863174f1ca3 270
0x005a57f64021a77579e4d849b8a8ba73216bbc33 2250
0xb033c0b72a841a4c37b891297d047c4e3aa70b44 30
0xbf02ff94463781e0abf531cd2aefb693983e0d1c 400
0x73bfa66de8b8552a90c98d8ee9de9d06ff7b9dc3 150
0xb84c573f9d5492606727e54cd3f356a53b7a9262 2115
0x4cec0307afde90a0ced01708cc3607cdd9d1a509 60
0xf7b546da5e887d0e71181c7b586d1f4cd9df8510 440
0xd3fa15628d0f1252f936db1e4bac6ee56cf9a42c 2250
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 30
0x693da45ed9333e323ed5804d306e8e64fcac2589 1845
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 2250
0x1444eedada030a0d04ba31f57955cde5047f3143 150
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 30
0x14af23b3ee40fa62bfec154497de627e6944a329 2205
0x2be2479f3d34c572971176de85426db471f977b2 2250
0x5db3c7c7aefa8de582389848f3fb6aabea227327 30
0xe9cc48944e388f78f2ed6f1d150de0071acae589 2970
0x34b4888c2812277d73ccfe5c83864aa6daa00990 90
0xdd36a9dac72be69a435bd313b3297255c397db06 30
0xfcaae6baaaf8b9d2629dfc6f0949eff8105eb25f 2250
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 270
0x120f4714e046e3a5eb0a4d4ab8a335b2355afe58 1350
0x02d9b83c6e8e3201da66a68bc79fb64c967b567d 30
0x840287c028cb2e6291d8af50bc6da83fd23a6e66 2250
0xf9099e77acee804499a69d251db17d5a7ccb5f91 2250
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 2250
0x1f185b31f10a2738e909b5b985fefb8057c8e7c3 60
0xf9c10d1c9fa8ea6506e2cba25c5760ea5f29c335 400
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 2340
0x9b9002f05c790e4f2d41588b8061b4e13ca4038e 2250
0xfc0dfec8760427695f0781bce998270749d7421d 150
0x6bff85b6d72b3bbcdd7865f2dbea39201795f0db 90

View File

@ -0,0 +1,680 @@
0x52f01e8791cb558c93ee0c59ea5ff5d79fc82044 8595.05
0xe6e00ab3278755b83693d2d648602d2b5782868d 7328.78
0xa62d071adf78f3ed1402ce89ddd5a87934f454eb 6244.64
0x1f5ceffbca9da937316f00f896585545eafe9e19 5831.22
0x3659d4b99e3370e7baa320862be65235a896c554 5412.02
0xdd1b91070b1bca0bbc42176c23c86565c3492a57 3613.80
0x4b895dcf49209e02d3a95ebd10e9e627c3713029 3593.56
0x68f808b66b1a762a5c93f3c5c6e7f54b9f6a9910 3535.74
0x92db56c0be8f4c4dff62b41fcadd1cc88364fe95 3266.87
0x06bf45eb9ccfc7a8606f4e59bd6cc866fc19df50 2934.40
0x3c2acdc99b54ccdbba351c577395eddb613d2fe3 2893.93
0x6d89b9c2bd2cf1ffeff938a6482399b93dda8cdc 2610.61
0x4449d8535ea90c5ea00f39d62410d50171210ac5 2393.78
0xcedcd255b22380aaf3bcb4e425f54d5e5c87c0da 2269.46
0x31ed57974ef070f0e71f1603fdf98d6dfa3a0895 1942.78
0xb815f6ea2f0e8c0993271d163f2e3fb9a328951c 1867.61
0xade726113c4dc27b12f5e2eec1b7900bb6d96780 1725.95
0x82132d2c49229283bc150f61b26b610dad7d7fcb 1604.53
0x807e70db478a281587f872a96ad3c6c300dfc517 1598.74
0xaf7014d4ccb0968348414eba7aa89f9afe9a036b 1595.85
0x98d71e0088f61fdb2eb344c02dc276f517bd50cc 1549.60
0xbc7f78c1733a8336c527eeed32848ea4b381a41b 1509.12
0xb781c4a62fa1bd4c61dbb8c822708149c78bba41 1474.43
0xe36a698790e174e324a49146081cd34331024741 1361.68
0x2fb883a1dcc2a0667f0f77d93bb2d181802f075b 1254.71
0xcb56daf51b2e36cc8d0ff2b923a57cdb058d7c41 1234.47
0xc5bf0e4da113345e65eeb94458e5679443d73c76 1194.00
0xefdc640ecd4fcb2b4e91f9a934270d741d40d9e9 1162.20
0x63a211407e9bb8d477a29fb2886d4bda998cedeb 1162.20
0x7cf8b5f53716bff7b4ab23c050dce4b7b71a254b 1147.74
0x28daae7e8acd8b8e7692d55a7cac9ee1234453cc 1104.38
0xd2ef57c897ce3cb4278893bd73b0f9b4843a3d71 1087.03
0x7586d55bc36e214ed3f7027d792649099449748f 1078.36
0x4d5f53079f4e1380bb1bc8ec5d4f1c75b8aa9555 1034.99
0x8c35f0ae8974105c8be95a410f054e2a0e19809a 1011.86
0xe4376fdc29e57a8f13c4148716bdc168b5628330 985.84
0x42240f483d404eb08ebfad3337a1d6f331a96d15 948.26
0x1a5674afa1d4a6d25008578c2e27f180fb0ef9b7 928.02
0x6c4adc1207fffcb8311e27d7d4a7be12357dd9bd 922.24
0x8ed65371cbf0bae6f431ad357cb84e8ac4033feb 913.57
0xcdee2b42a5cef0d91ce23a9a2f593830bf4f5d30 884.66
0xc09c01f3325a92f3df3ba517dd97e0611a40345c 881.77
0xd8c98d10dd5971306470b8f87919ad78d929e648 852.86
0xb260b63cde22fb8c244682efc0bc653933eddb6b 821.05
0x7e365e88ae0a5f66901befa7186a8e407a412dac 821.05
0x9f877e7834b90c54185e50ae9aabdd91357cc0a8 809.49
0x97469be452ab6e9711c276a866d897a95df25be4 795.04
0x0a6c5e3b598d3517b4e102f2848b3bdad4a7d79d 751.67
0xb57db1428e611c67be927a4bcb1147a68aca8843 722.76
0xe74025f23e5bd98893d1b25c4db79fedb09e7c9e 690.96
0x1ce0045a4d5a01d38cb79620c96302941fd11f1f 673.61
0xa511d7f825370fcef57911773f5f9e8be05f570f 664.94
0xa7aacbb16a4a35dc9b1e8d7368a5016b757bb3dc 659.16
0x6a39566b10d1976f83ca6c0148b6fcb6046af28d 647.59
0x347894180b1dbdbe23b1ae5c16b9fd5c0aec12fa 633.14
0x0eaee4e252e71746395b7ef81a7bf67935dc9fef 633.14
0x38bc7df3d90a22955f187f609b3132b37f377ace 630.25
0x3952a9502f2d0dd6d02be1e9fbb97e6fd3d109e5 621.57
0x0b55f0015d09b3330c0940976c96eaa5b4d95664 621.57
0x39c750b5add2a0bb73ae7acbcf119b574b354ab2 612.90
0xebabe2a086522b86fbc94c1b06e9a5a88b39b222 607.12
0x56888ae895ec3912a282ed4a8889f4824192d5db 601.34
0x40c6dee867a78939c8187d66104728deddd72f5a 598.44
0x7451674de413bd8f54c8c625a14601142f20b11c 595.55
0x454d20dda450061244546bb20e8756ed64584aa3 592.66
0x4d5fb193ce292e83e1ec21db17fb35f6864cfb9f 589.77
0x82782919a0857c2b035ca145892b1d76f94dbc21 578.21
0x50bc91ebf921cb4fc8603fe2c46dfe7a80822ebb 578.21
0x0adaf6276db6eb06b7fadd898168684a928bab7f 560.86
0xffa91dde077d08a337db4a5b18083a8b40a62e18 549.30
0xaa31553af0d3c6d7b3911bd8cfa97188cd699383 529.06
0x5ff3b31822ab3451d2a31e389833f596ecee59ed 523.28
0x0db3393f9d94c502b54708346583e69e651371ec 517.50
0x37fbc2319cd835aab71ac1b12ad331fa09c462b9 505.93
0xe402d13dde39c123745e8dcb4ce4eab00d13d7c4 505.93
0x0a40fbaf9eb95f2d00a414eae269e25d8e4faae8 503.04
0x8f38da7e60ca85996b826a2aae59da41d12dc81e 500.15
0x760a7bdb03c958dfc29dbde883eb2697e98f3e44 494.37
0xbb4ee658e85fcfddd0e870385e5819da62e3cc6a 491.48
0xe067eeaa351fc403b22b0ac376ac9b5930533f7f 474.13
0xe1bc525810f34e6ee2111430de41b29131fba41b 471.24
0x34d6f5e96f3615fbbcc381064e3dc435cb2a19f8 451.00
0x1f64a30bdf362c7b792a8c863da9c972a82bc2d3 445.22
0x4d10e44a56637b00a77d6a56f8e08cb293d90d2b 442.33
0x673e9dbe71405e3ff61f4004890322edaece7e65 439.44
0x367affdf7a2689af07f3f93ce7229684800368de 436.55
0x19b76beec7745a5c53ed2cc73f1cebfa58e27a77 422.09
0x0f5e1b0b3e5aecc7354138f0af4a75ef69aa71cf 416.31
0x6e24e16254b87841eba0338a927f17b65e504356 413.42
0xb98a8ef60aed429fab3b54dd5608558342804ceb 413.42
0x1530065bae71ff87dafbca22aa181442d944cf69 413.42
0x3713107c5ef88b5c00cefe65e403eb5b033d42d2 381.62
0x9450651a449d29ab5648e0cb84a13ef10bb0e23d 381.62
0x225cc2e7289f550674b8eecf827ff3a7c52b455c 375.83
0x7522010ca6c2f67661cfa2d2ccfd0884e2e9b0fa 375.83
0x63be1f50db320469473c31efedb0bf3eaba85c9d 361.38
0x3783942de94551661598463f71bd06f0da0d5c9a 361.38
0x005f192a6498b76556f3aff35dc2d657ec349424 349.82
0x9b5499ea986153abdf988af7c69f0cbc325c592f 349.82
0xfc22f5a8c7a7570854c77edb00e4a2324d214eee 338.25
0x3bffa3d0db9456c73d71bcaaee1544ca5a033944 335.36
0x9364202b0f8bb4f6a158ea3497e922694778b072 329.58
0xfb65db607bfd9dc47a422b2396d08f9ef7a272ce 323.80
0x9616c92eaa8cf64e0d795268c3070f5c31e36658 323.80
0x9a0d2b18971bd4fc713e70ef5cd0dd6eaace3894 323.80
0xeb90ac234ca87f8fb12a68c15ee88bc8c21c17ec 320.91
0x75aae41d6e4e54e87c837e55d2d51f16721168cb 315.12
0x88f8b74f10b2a323a5ed59138c0f6aa2cb983956 306.45
0xfed27d4a5c64d5943b9ef8683432f46ec1e21921 306.45
0x64987846797b80d4699bae930b2794b0975b6fd7 303.56
0xfcea781d884fa5fbee6574e8546d59c7b0766b53 300.67
0xd301925ac6c09e1306b903f6cae2c93c33c2bbef 300.67
0x38f65e9ba6e29c2d1af96cb2c6891c8b9300f82f 291.99
0xc57f4f73d01e6828b9f9255f229b8304aa8d1c3f 291.99
0x20b39bb56d4e6bd9b83988315198e240adbf156c 291.99
0x9d6144bdc5fbee5139f34d24b6c683ad5e9206b2 289.10
0xa0ad32ba48bf1fb13125e560504e6a8866ac3955 289.10
0x02653899f231ec0bfe7b043430da35c97db2eae9 289.10
0x4d19008b85bd6d5766197f543dad0da19455cec7 289.10
0x0a17387fb76e58f281a75ed68740c4a8aeb43d04 283.32
0xcdd3769c804e9d3891631a865ff1e0165a4e0a0c 280.43
0xd2b9c5e75052cff51d4abb46e059165e5fbb0db0 277.54
0x3e63f87e290625ec135782fc0005c2b3c15faae2 263.08
0xa4b8affa8d4934d7c8bce0e6d3db9b6e1eb4ea43 260.19
0xb7727b979a4d922e9bf10d18229d3301f8f1b1fa 257.30
0xfd4b4626b63234b8b263c60eea48bc928ad9fc43 248.63
0xd0d641bcc97010ab8281b854ead7fb8ce3fae139 237.07
0x8485e91101e410d086a8fccd74a74224644739e3 237.07
0x49a796161f6e3523f88c66388c2d703816661286 234.17
0xeaf4c484ecb28bcded93b5ca2d9bf27103797e73 228.39
0xd100dfdb99fe69e7662f8dd68f749f1fc09e8256 219.72
0x3aa258ca77e0a2461dc3f8981e99955262eb3298 219.72
0xad13d1ba561975be99a8498b3a07e5e03042e3ec 211.05
0x7da38ce6eee520b883c9c18e5e100272a5c29d28 211.05
0x470ea73d86f84357abae8a651851c5eccedbac81 208.15
0xcc41466ab45e10d8aadf9b20ce7e068770473fee 208.15
0x74da1033fb4eb77f75357dd373b84136d157f3b4 205.26
0x6059f15ea42ac48fee086aa1b6b369873b505ec0 202.37
0x844132788b1dcfd200acb7438789070e1c6b9072 202.37
0xb582eb97bb6ec7e871be8e40a1c51f33eb6e1a79 199.48
0xbd30d3fbb9feaad47647da48cfdb140542b0bfe6 199.48
0x2dd557a0eab66cd6981e7230ef7b3c998476825b 196.59
0x0770d6a352687614d3fcdf6e52d82e7a75baa08a 196.59
0x311df7af0b5db94b47ad326212526bb562868460 193.70
0xad4f1fde89a8ce42db24a9bf71f72ff2919417a7 190.81
0x8b021c3bc36cef0e591484439239628f968ce179 190.81
0x7a4825039696f8c162c65c5ba475ffb3eff60353 187.92
0x181e7a9620a1101589aabf5e0e8457f5add13434 187.92
0xfee1eaeca9a37b898ca0e21b3e8ab37d4665bd36 185.03
0x8308b66adccf350e5956cf3cf3570dd744ede760 185.03
0xaf26a4e51c687af816a33b18a2d4191f1c0f61c3 185.03
0xf2a31dc1bc1463d22222dfb3e07646516f241172 185.03
0xb7f3b43e13dbb15d815053ba6fdd3b22ca92dacb 182.14
0xbe52f24c15e9ea6f3b88393495ca10d9b865d8f0 182.14
0x8349a63d97c36abb2397b111b81ea7e4fd2e50ca 179.24
0xfaefbead90805d86df00fa5f49647267302f35b0 176.35
0xc55e414c1f550ef510150ad7ff077d0db94f263d 176.35
0xa358ae6668e2e6abe4c4a80119021b46d7352232 176.35
0x5c23405864f8e36fb58c0150f64d74502dd072ec 176.35
0x51cec79ac71ef601d95808622567f57dca788ef2 173.46
0x05aaebe976166818192bcf58107a19b3d55f28b4 173.46
0x4bd8bbe6b0dbccab04f217a5384ead4e3025caeb 173.46
0x27051ce0f96dc5223056880220dc0b548d36838b 173.46
0xaa0b22090593306e45e3e225594df831b7d3b4b9 167.68
0x770ce0f4d2091098ddc2fb20981f75c6f4f15409 167.68
0x98d3c20382b66da24ba010b7c061d3468e9b1297 167.68
0xd7cd8dad5849be5088acfe5592a115c6d6df9e20 164.79
0xc2ca31125bc816bd9d35aa16830d930cdfdb156d 161.90
0x767a12da8c84a60e5ccc6c58c3a0c9b60492588d 161.90
0xc7d2286cf359d5e01db0d4e6b2c68b64dfc847b0 159.01
0xc27f45737f4597b50b1bda8bc0ad2e6a586e698c 159.01
0xa49e44835620c57f251d172669a60ab7dd1a5574 159.01
0x9994e2198bca2987a2d3ec82fbf8b42820e0b4e7 159.01
0x9189ec92039eef2f8c69aec79d03373846791e0c 156.12
0x18ac6f53d79a40eb9fee8ae7e030bd9d9a62687f 156.12
0xb94a1718601211c7c44dabbe56f8c4335f72dfd1 153.22
0x1e946238ffdc64b827d56fd55dc1e9e368e9ccbb 153.22
0x468054587a19169c3eacb0e179c12f0111800f5c 150.33
0x657eab9b13ccbdfa2ba397047782d2f6fb98fb06 150.33
0xc3778a9746e8bc59ec368c1c48aa06bcd237f1e8 150.33
0xbbd47d5fc898145dbf0f6c6ed0b70de103b07555 150.33
0x0364f95c1b21a0e274b8268bc45bb8d96a529b30 147.44
0xe2c1aace27b999af1f4e6e36612cbf32e69f3576 147.44
0x08001021bb8bb7e438aea1b5db437ac4e16ee3d8 147.44
0x2ef2895c7fa47d95aa198036ff53646bde9d5efc 147.44
0x214448156d01fefe0ab637d688db54f748adab77 147.44
0x095265c1e21a476960f5497652e3dda3a971835f 144.55
0x19248410af8d12558276548762d175178d169d86 144.55
0x1a4abbb1a574dbe24ed06ed109117a88a2f47682 141.66
0xd335971ce4eb71b203829ff8fdc538520c3b4e67 130.10
0xf8266df587c86bb95ec4b1f4bc16ac71bde36402 130.10
0x60159e98affa2388f14ae7980a088505d2bb73ea 124.31
0x9d16ba593a6253412bda68694433a4dd29ae1741 121.42
0x805ec7a32ee0b94b1a5ebf557784816033956824 115.64
0x900351548a675e431c7e1bd37b3fd82a24ccc000 112.75
0x29b70dcc7521af4a7b7acd09b3d0a86feb2b4cd1 98.30
0x342adcb14fa1d5c873a01fe0f52b58da0cbf4afa 95.40
0x31e249afde08c41aad0ee2c41e5d6a36e168c829 92.51
0x1a5d028e09159e40a0991c0d85d7f97c9f59f017 89.62
0xe98362ae0c90348c47769c3299f0c0ca18bf5218 89.62
0x1bda0232a48c2f56bd37d8d0d2d52b142a11e4dd 89.62
0xd885a07ce389e009e52519526e708a8792c8b24b 86.73
0x773bdd51bcdc55fc67df6c4dd09c90c0fe5d9477 86.73
0x662e599b84fcaccf24bd6272c4f9d9185f771bb0 80.95
0x46978d189ff584530f05133a7f229fb728872a6f 78.06
0xffe4801dffdc48dde1c5fa30279f9797b875de66 66.49
0x713f6f50a0d57beef4ca21c828d16c8af3bbc0cf 66.49
0x89e54d19309d0923de037c588535fa8549cbc947 66.49
0x7900568105f76b246b0ad7d1afcc6781f07ea88b 66.49
0x7f429b114b550dddfacf8bf9acc83c74ec43b1ee 63.60
0x2c88fb80ee680cb89316289e995c16f753bdb57a 60.71
0xd3c16f4544eaab4c4019945f406ddb2c367f7979 57.82
0x8ad77e8d29146eff9725019828baba7a38b74408 52.04
0x14bea94f85b552ea5385c146e012479e072b9632 52.04
0xbfee2b066b994f586b6c91a0f8505d24a62b776a 49.15
0xb833a1bf31475c357dd08da572319fdf9f37a4cd 49.15
0x2c971e1b79b8451c11659d2398ffcdeb84bc95bf 46.26
0x3c1dda8d50f3222b44ea34c3f15e8c2769da720c 43.37
0x5ed18c0c50e7431c4324874608a025dbe4de53d5 43.37
0xb0f078b6369959b31282ee6c1a8299cb24b7762b 43.37
0x5a1387b68f5151c271952dd7b1f20354208b9c32 40.47
0x33fe93d4d57bd53aec65a4fd3818b7a2d5429321 37.58
0x741004b930822e6a99e628fe5174bd833db9ab75 37.58
0x610eb0af2570500f7a1ac713deb2c1e40f24cc98 37.58
0xe2bb07459af7a0dd88722f503036dde10131b983 37.58
0x4c1164f53cb2ab8cbaee50daa07e65ba6a9f8e0d 37.58
0x4c36d6de40b75df354c808fb7b209cf34a197c2c 37.58
0xc4e92cfcf8ce1568dc738948808601bde90ffb7d 34.69
0x475437b0d3b650117fe8881ec249d1cb6808d54d 34.69
0xed1c52e3e22833411bc3d6a0869de337defea354 34.69
0x37158779862d71657f482e1db5ef3a8bd5fc6aa3 34.69
0xa710f4f1eccbe4553b31ad4542ed7fc74e166476 34.69
0xd335528fb1d59c38f0c3662840421e8aca93deff 31.80
0x803a70ce58b46f9d3fb4f9ab87246afcc740b3be 31.80
0xe645a44c6ca01cdb726eb6e1b57267799084594a 31.80
0x7e9fccc52e70d25fc15cb7939f7a1b0f76bbe95d 31.80
0x4ea440f571d67ac51a2b580f3988c1bcb374f82a 31.80
0x6f942c6847b727edac16625f09034c06dbf447c1 31.80
0x363167c802173d137231fb2db4783f2306cdc040 31.80
0x7cf01db1280149795bce06ead3037a67b5e5624f 31.80
0xe456704e66c2f23b7b2fef90216772a573729b1c 31.80
0x39b54c62b39193d8a6ca6fcab7840f352910eacd 31.80
0xef163e2179cf11548aeee7e46c7ecf2c6fbb76eb 31.80
0x7214ba8b07d5ee823c71549362ce96f9091d25a6 31.80
0x077e02c40e4a88cb4dfb331671448b38d5dd83fb 31.80
0xeb31b7a975623ab2fadc79dd946db3a2bddf70a8 31.80
0xbffa58e6d786f7ba43cb39efcee219aeb6201753 31.80
0x480981cdd494a42827cc2126e99cc804a52c5ff3 28.91
0xc6bec4bab3940bd531fe4bff6ab38f2c49adcc9f 28.91
0xa26b9968007cf5ee346b1a042518452489450747 28.91
0x0de9f7641193bd04fd34f12c9155c5080f2151c4 28.91
0x3546b93355c35607d2dc6e8010884bb35ffb0017 28.91
0x84573c4fed4b547cf329f02f9e5cce32310f2f30 28.91
0x5a26ce49f0fbf49d977c3a11c91eb86662a73ae2 28.91
0x63c1514544d7b66f3458346edda28738226d010d 28.91
0xe39d564aafd7044af1c034a2427e8ddb807f37cc 28.91
0x571e5d608686bbe0de3783d461d6f506f60b4e7f 28.91
0xc494fc976b47ef0da9bdef3063b2cfd83a78305f 28.91
0x468d6e3d7ddaca2985c0f807555197d57c3d0a70 26.02
0xcef281074b2a2241f637426bf176af5ee6822633 23.13
0x0a5339de5ad12c00a0bc6a5f38fae5343a860c05 23.13
0x87736df3ce13c6f55b97fd7bcf250bbdc5b92129 23.13
0x0559e55f34ef2567c245acd012755d070b9c459a 23.13
0x3333f72cecd4dff58ee2acc11ec4f314ddb6561d 23.13
0x4c4c508bade9f6e1af9e3ffd52ef8c7422bf6d04 20.24
0x8d6dab5f7a3e1118b5c0c58f13d94551074566e5 20.24
0x988c665347010c6e82043a6b05cd31c91300092f 20.24
0x01d0aee5f664e9f8bfbe6567f1d65731dbc63ff1 20.24
0x493283ce6dd4699191a8ca73a70dd3d22cf963fa 20.24
0xb28233ab801165dbf3d4129258706d6bb8db0807 20.24
0x297e6fca1fb11823eb5de3d9d4e6359879b2a7cf 20.24
0xa431e7ea99ae8bd22d84cec92d48d8145edefb2c 20.24
0x0dfd2d2c6a2f01d0a48abb1dd688b0f4ea9023a5 20.24
0xaa995825e202c285945e619c8be30ea5da282728 17.35
0xaa8dedeafdd826a4c23db11d822ef62b5deff90c 17.35
0xaea76a01d0d043cba76d5b43d4e3e6b722d6df50 17.35
0x47eab618efdfe671f85a80bb6fb468569b594fc4 17.35
0xd8eb968fdd203ec34a5904b423e4e7f0fbc165ee 17.35
0x9c1648d5eb02241cdd9e82357b9c2e04dc4ed021 14.46
0x62e9b4e23df6145757587fec323e0d50f5acbd17 14.46
0x781c28985142e0803a5d8e19c72c856110c9fab0 14.46
0xf9491d4957872ca6e7fb61b217ac7cddeff476f8 14.46
0xb8070bbb8959e871a35e598b777987e2e375ceea 14.46
0x79b4ade223f130ee9aa2e2437ed1bb31e57cedb5 14.46
0x4a693a202f94ab92a7488e19e1f6c98bd07da1b7 14.46
0x84578f4c07f3bdecfd3a9f5778f38f718c03ef42 14.46
0x6f45cd38049b744b73a389dd65e35271279ce334 14.46
0x6cb44b4cc535109e7005ebc0debfd6f14be797a2 14.46
0xc8ab61f86cf9c475e6f39999b570a56ea2dbdfc6 14.46
0x2541952b7de2d98582318f6f0286c208b294baba 11.56
0xcc4ef72b6da15a980a8e868ec5ab0db8b21c7121 11.56
0xa037bfbfa282e37c59f5d62f8114da8cfefe9b7c 11.56
0x89504504c4bd3750d46d47d8021d3813e819cac8 11.56
0x6aaa965efaeba3e53533296fd039cf25438d9e77 11.56
0x9bd4df7327afb3bc427584b255490c7f47f34597 11.56
0xf2973d6f379c1501c040f1d783d52c59b11e6e9c 11.56
0xb3307ad396163b8f6fca810433745d61cd5530e8 11.56
0x8a483f372d1da105a4d96f8e8bbd633299ac58fc 11.56
0xd74ad35e5b43ae7680e0b80bc98516f8b2d4b3cc 11.56
0xb22fa5192466e7324d1e2867fb20c0f1652afaf1 11.56
0xb1678723f3047a38cc811bf6d425dcaf0006a549 11.56
0x6c50d68c573048c88df0a8faba51ad305583f06c 11.56
0x6560b3599303a1be4f7ef29a66cabc8c4a24716d 11.56
0x98ce3d9607f3955f0b7bddcdbcd0401c391a72a3 11.56
0x84411212f4bfcc4487c87f547dc1a4cc30ad7aad 8.67
0x0fd4fd212a197aa9a0eaa91d2f25577268ebfb55 8.67
0xf02748b0d9e2b1e373c9441625b251f813d8af4d 8.67
0x4acba81df3573790a06ce8eef21c866fb3b90cef 8.67
0xbcdeb1619ddd9e6ebb02671e93d9214b03ae36a3 8.67
0xed728cc5f84402e36dd7ac26c4e4aa15b6602a91 8.67
0xce28e08470b287670ce30ee5af1b1b95a55c1507 8.67
0x6480089d6b73bb09cfdd2c41eff781131a87d0f7 8.67
0x1953575773bd8bf93a8248f21ef03d0b308a0d52 8.67
0x51cb9d2bc3965a50a0b70de1576bb7e16a6d3a4a 8.67
0x1d37af1232c5fb3cacf08e00b93d1b089818ac3d 8.67
0x195f8d12b7fe1e88a4be8eed231de4889f3e6e67 8.67
0x87f83980722ef12cbb32248b34aa91f2cecf636a 8.67
0x81467de7d6f0783e430a0138d0f09b31c38d82da 8.67
0x5f1dda92a71f8d9ba9ffd127de6ee5cab6fb56f0 8.67
0x803f05df41ebae0305e768c1645484d3d2e4d42b 5.78
0xb41a77a6f9cc2f3b661ad2befc92a9420ac032c3 5.78
0xdb9a05bc157b7127558a139ded624a59aa5f2e50 5.78
0x21302a1fec90f731af592d50fa568c41d0d89b1d 5.78
0xbec5727a37c5abb6e9bf58f484e3955b3dcbf190 5.78
0x23ea54aaf66afd0f919724eb1bb46677fc592da2 5.78
0xd16c838d88721e02badc18689877fde0df5ded1a 5.78
0xba95602502f5a2a23b145ae3c35e5ec1283e6682 5.78
0x90fe5c834b9aeb3d4fbdcdaecb6f5c135bc2369d 5.78
0x08f3ef1941333ee50a34c5ff3c2c45bca8b807df 5.78
0x0e3b5b9944d4ab192005a41099b265747fd6d302 5.78
0xbef5f64b30c87f6d350ff73a6c35a590f91dde98 5.78
0x94e3fe5876a4f04a582517cfd56581d38648699a 5.78
0x799ab82e4b77ce8fbfa3d0ad5edf35fae0d77ef3 5.78
0x2d980d3ef9c7701b9df31ab232ad5d07611d18d8 5.78
0xcfea2420a5fc99b695653308eb541f345dd5851c 5.78
0xd3feb28d9c26fab5c52bcf5d251db2136899ad4f 5.78
0xac1bf3c01cf742d41ff41ff9d9ffe24dbfe3e63a 5.78
0xd003eb439f9c882a64e75c762ef5494bdc0a0ed3 5.78
0x3bf586502f0ebe540674a0665fe054827113fe1e 5.78
0xbad4bcee0b705049d7be4832b79946a825144a5e 5.78
0xb057ff40f303d7c4957db897b57800469063bed4 5.78
0x365b252990da1c3a7654bbdcc90be123ec51bed8 5.78
0xf15503fbe094f1e5ef0fb17eb1acf54f4831a16e 5.78
0x6b707391bc500fba18608c0120079e07e6f38502 5.78
0xc8677d1b39b19c287b8beac33f874c11040d037c 5.78
0x62e3b86efd2d04b5cf5fca4b7418bf03ec6877ca 5.78
0xb217c69809827f27a0445209c0c5c983d384dcac 5.78
0xc2d48006aadbed87e406e5c420abd8f0bfed97b1 5.78
0xc704eb4c1c468a7a3b33ef584ae5f1a45addfb2c 5.78
0x0db117e11810c9d75e7776b891e68bae5dc69d5b 5.78
0x1997fa7bba28b786c624b768b52fafbebd7fabab 5.78
0xf39aaac0e8ff5fad857cfa1b28b270c4fb182d67 5.78
0xbdbfbfed1d83ddf6434106d23f622f800033f86e 5.78
0xbc775b820c37427049f829fc77bb8e370408f4c8 5.78
0x48929943f6ab90cf6b8a51fce3589d25a6aed642 5.78
0x96171b11443f1a9a740f83b08ee01e92829fa5f6 5.78
0x6b8b3e787322d1b9a0989d24781354843ec5c00d 5.78
0xacfbbe4de0166e99660881b1e3879a9c6cb1a1d8 5.78
0xd992863eb27223a3c1ffa0b5c42cbdb065a97fe9 5.78
0x01317dde2c44ed3d791ab6a4cb0a5fa01cc09f2e 5.78
0xbe0cb3f5129c1f3ebd92494072972e559d58d8c0 5.78
0xd7fbfc5237ed913cd9b179e43b3f6f9cf9266e96 5.78
0xe7bc29b31692c3705760ff10c363c1e81327bbfc 5.78
0x20eaf9f0e20db3b3b5e9d07ef9bf8c00f0bc8edf 5.78
0x297b0467fc7f92dfd5b2ed4a718cb19df9e6ed35 5.78
0xbecde8b6a7d20fa072ba710adbd793ec1442c738 2.89
0x699620fc6347b7ff39302d110fc55677fffcbc52 2.89
0x66fd989801dc6d676f4e09cc00630dcdde2d3aa3 2.89
0x020db564500d8981dd0e9e6cc8e573e142f8e432 2.89
0xd0ea609b923c78abd81f667edf39136a4c575921 2.89
0x7ccb4a22a37b5a28e5144cd77e79aa4ef9f4e622 2.89
0x47c00387cfd75875c657ef6a0e3480cfa44bc991 2.89
0xc9baa0737e23835b45a0c987a7bec3384d0226ba 2.89
0x8583d15d7b15c9822d17b8e606df9ec2d67e05a9 2.89
0x4c3bdc6f837348742e5d172dc6b9e39f5b7efc9e 2.89
0x48388101215b06d64f4dc3b8cacfc8334275509a 2.89
0x22b7e20e37b779c11b2610e62243b6283e7e6c9b 2.89
0x5ac6b9d568ca48c19d02b5bef2861921559388c4 2.89
0x6639e95a242114887dd1e9455c4f8a67a4980b1b 2.89
0x126221691ae14a3051bf70eaed89ec5de155605e 2.89
0xa95261007cbf25ee03f5932ab9b0ba067f855646 2.89
0x567be1f17c1f0e8a8bd4f0ba9407d792c2ea68a4 2.89
0xe59836e4b8958d3bff92ea600d70ffecdacb6277 2.89
0xa9d2eb46c7bedca27f22cdbf98cb8dbad3ca020f 2.89
0xcf2a868c9cf660b45c689ff1f166a2f12996206b 2.89
0x5fbfdaa48eacea8ae1f75b930e7fd22f55963df5 2.89
0xbe7c0a2910ab3755a402a9b83643a4f9a0c457b3 2.89
0x02e853a57d53dac85a128a12a5b4a004381ec08b 2.89
0x3e9ad841449130bbdfc87f9e8baa4da993aea103 2.89
0x65508e82ea47f608cdc1fbb0b41b5c0474660fb2 2.89
0x06f936677c5cfa91b12d00ff9f5315c83b33415f 2.89
0x4e8c1cbf7c2b6487d2814d0b44d2bdf244d75ff0 2.89
0xfbff89afffd33d4093f6cb63ff585f2dac452552 2.89
0xf6af0f2b30b6a4cd60aa78f9e310732a53bb0b19 2.89
0x623ff8238071233ff284db4e10cd3d3623ba28cf 2.89
0xe935a26f8d64d8b7972858ee9332073944cd84e0 2.89
0xd26f92f41259b03b0e542c78503158d72450475b 2.89
0xf85c7301a8f4bd462f6f8e6946f94eab0a52600b 2.89
0x91423dff9ab70b25b3b51ac802288885141045f5 2.89
0x02ea2384df0acd25f3ad4d8bf60a5533abccebd5 2.89
0x98f43f1f5503cfbb51f342fc17d1c3ef20454281 2.89
0x76697349e4b78a63d288b21576bc98965c8726d5 2.89
0xf3a4744c1350fbfb64f50614b9f62a2a19c48b88 2.89
0x053fab6ae575e60a99e4d00f06b520b70399a39b 2.89
0xd78145a4ff282f1c12dee2eb82b53cb495a211d1 2.89
0xe322e9e858940563cbf37eac3c440f914a840712 2.89
0xaa1492a40a08eef72267341aaeb4e5f854842b8e 2.89
0xd84ec7841298c909d0790db75d2abf81a409854b 2.89
0x13b3bcf60a52add7a92b2a7d3fe66ac15cfccb1f 2.89
0x8af5b7b27136cbdc8313222add15fc45bfb4fc29 2.89
0x1c28057e6b7383db862db3187331d3c9606a13db 2.89
0xadc1437d7ef889c3a65f3797d7a342f1e9faddfc 2.89
0x88347d3c9f96eca33934b5595dac96f78f589340 2.89
0xe8f08d5dcc914459fa66fc8a29572df4077992b1 2.89
0x71a2c9685af695df6da1fa2e3c0384a65e0df663 2.89
0xc41d72ef46b771a6f963c1d801406dbb96ea6dc4 2.89
0x2f98b6efbc22c45c6627f6dc20bd480c41b80da6 2.89
0xb83ff0a261014c4c79ff1c43f13dd4898dccef38 2.89
0xd5e1698730a9786aaea53ceaff73020936faa1f9 2.89
0x72b456ffa367f736f4005c124b2287e0217741d9 2.89
0x0cd93a2fd586a0fef4daae5cc6717803b8b8b765 2.89
0xa6b91303166237d672e0f647183f8aff9119d0aa 2.89
0x6b2e3ffe125193a0529d4f00735c189011767880 2.89
0xf400b14581dfbe16bf3a15dd95c46552b27259e7 2.89
0x05a461dda40cc4b20682cf897ff70e69c0f10a86 2.89
0xa0ac673742201a8d181afdeabf5cbf7b4738f00c 2.89
0xcfed389ed0f15285410c71bfa0fdc83158313055 2.89
0x82205a3828d3a1edc183ee405ff9220fccf04469 2.89
0xe72ab8e817d6e14262a09facfd64bd437e805d35 2.89
0xe67f5d857c3c36fb50d4962d11e5940c432d3b7d 2.89
0xCE945b19b488ff9DA522e357CA4447d636FcF43A 1015.98
0xb9aC7A1F5A948aD36a13a4E15b5486eC63fb67E0 491.66
0xafA2D3D4D10a65AEbb6569A121f23cb420B14568 849.83
0x7e63A8680a96EfDd55F2f462DfE624830f9c6F97 464.26
0x5F8BB403Fa570E5517F8b209D1d3f1055b94a77D 1123.08
0x1B3cB0506E55F31f4E1d663e7075d3Cba7ee771C 259.03
0x0Cf9aea4D2521207fbaDCF8105870e896803b0df 626.82
0xa67Ef3a1A2E6982b7518B373A95aF6c1f1E067F9 281.77
0xAB37D485f6f82D568577bf24e7ca6df675d75FDa 540.46
0x70fAD053E4D016759318d212829691626C7Ad702 794.55
0x5156c3FA43E7b7d2e6AFcEe423b52250f30dA4B4 786.82
0x62a9Ea584dfaEb2Ae6e455cdbefD375CEB099B26 442.83
0x7232b4e454E467E5Ba24684B22e870E5C75187ff 936.33
0x6b514Dfc32C754B3b0dCFA4E65fCDbf403b8ebbc 1073.19
0xe3a61db84244bb5A1a1542B2c8768125af9a8F35 616.04
0x47fd80D9D23ecc67a07D0cF96197c03C7581A7bF 434.91
0x14E4D91477e0560A59e4A0e3ba3540932a4d91eF 336.60
0xF07b45E04a382144dD8524790845C298f035468E 352.26
0x7E431ebB24903c4aD91672DAb890878BdEF90eA0 484.76
0x24bd94D1D68457C3c4FE9a3eb29293AC9129464B 1140.90
0xfE48F291AEaB2a6CfEe85902026Cda1136F8251E 76.00
0xe79fd2A97840d09E54F09cdda858cB3c7d921199 642.60
0x94e4ddf23087c7C58ED61Ef9d6Eaa8358eea5d2f 500.72
0x273c24E161B45f54C4FE9782dC952B001d1f1726 258.25
0x91D48278B930f4f5c5105871b012232D934Ab3Fa 801.33
0xA60596def33B49E0090daA0Bd05db4d507d50Cc9 853.89
0x3edf0bEF9A58f9B6eB9926E1923EeA0c4a2edDE7 561.78
0x4d1c3707e02D0c6778e1e984cE68324441644a52 657.99
0x55a2Efb74844E2745e28AD692faf17832A12Efeb 795.93
0xdf09e72F4DFAa717Ef82246e6a0c4eC31192abcC 622.96
0x63fdcD8fA202C671AeFe114E059653f1731C71a8 213.43
0x42EDeFB904ED1fF010e970BbD731313D1fe57EC2 890.90
0xC8EFC030554106062398EBF3508d8e3b7c80e6B1 668.48
0xCB97913c842FFe9F4c25ad1B60378fd4E2C0b0E0 221.16
0xAe5696165091ebfBBA4D03a58925814309Bad58e 375.71
0x49a7a94B294BA598067e0cb9Ff704d5e16B12eaf 864.00
0xE6Ae889CA2eB9a9a00f118A15D112Aacc6192ab7 108.05
0x71d98D38c4C082d8D5eA55de955D420d10Df0eC4 137.19
0x16D574039981726568d4dfb7207be110bf40f63d 645.71
0xEF30138f25Bb1Ed65ad0555385487F26cD09c813 815.34
0x78aF641380515e9D968bCa0cfd11aC13eD9FfD2C 609.40
0x760d84fa31F1704736334527fBe4949D2B24232E 418.82
0xAD2D9b2BF0C1d651ce12591520354cb87127eA95 727.46
0x42D5a77D17e7c6fCd6ec3Fc3657F77d53B77AEd5 115.10
0xaA0265C3262adE7ABc3318be3952d54D165f5Ff5 1157.37
0x9A1a48333A030A6794485a9b1f18CA8c94853Ef9 916.13
0x23c7B73f75cDaDaCb09172BF823D2Bb9A869c804 402.90
0x4706FdDbD1AFe05D6DD05d45CEC8d0E55D1a90E2 951.65
0x34E92e0207c0462f429D70A24E98926E0eC5703F 305.40
0xE70d44Ba1890F7F316177C8843Df101A8EAcBc3A 232.55
0x297dB5D8958af3E8D602aD91ddd990D0d6b29f70 498.24
0x2F8f4D8BCF82CC078D45F1f7Cc9ff2b352813F1e 161.59
0x7112BA36128E6DA4D4DEDA6f858e239c233a9d34 327.43
0x88c77Ff383B65d48924B0588f6159E0fB1aDFc36 22.75
0x76Da41aa2a7Bf1E9eC792D96307C789caE8110D9 377.42
0x94d90D134A5331ec5ce3a244F4Dff727eDc839ca 700.22
0xf489778fd65fF172e447f1aF1E5fd07ea4f26BF9 396.28
0xC7CdA8370ef3b2eC41028E81d0B90c90f6ea8ac1 183.70
0x1aa9D032F78200B12598ed0E81299572E5c9e456 88.42
0xFE4570a8918E9C894b60e10945954363Dce9B9eB 1135.64
0x588CbD9396CA71d87c201E35f43157C3B4A79731 1010.08
0x2cAED71bDdB2A42b7Ff238AbBa1d339AC1B35ba3 23.14
0xE75cc5b94c21984F7C08d295cfd21266730947D0 897.83
0xBa8ccaF41e2D7E0f96723136DcC2f7eE426643Ba 1043.92
0x29f6b03fF3550eb2e5a3f29039024bd200e56aF1 660.20
0xEDd052C83d4FBBcB355a6D6dEe276D159B28D177 247.08
0x47ABCa18F0964AcEb56e55d8050fb573dF5f9497 286.32
0x276c644a6b079CeDE9Ee428fECcEBE95c4809E3D 902.33
0x157c3bA55dC044A0820F633A5b7Edbb6b9c82E4b 678.80
0x05E31e397f4ecd6Ddf6c9Fa77aaf6A3B8d8D8e45 876.66
0xB403E69D220CA48F2C2b7B7718b562620Bd3Ce09 1068.51
0x52b30ec162042Fc5Ec74937e2706ed8A27FD1C1a 877.78
0x58Aa4786BAf32b9145056c552D0Be6d0a3e50C21 1091.43
0xeA72037c064aE2E3c7B59B482c87847de3363E76 786.87
0xE13d0E28B719DD5254BF72d0820A302C3665608D 55.49
0x276f2BFA4010f7F705309F5327872608A456Bb87 356.89
0x5206795E7601fE88eF4E9e2724048f8CA956a808 46.97
0x527d41e5634C9Fdedc4088b9977B892144FF4617 556.99
0xa33a1c120Fe5731c18E3146F9828D39522300B39 977.56
0xB870edd038Fff637eaD370df258B0Ba84e12649E 201.99
0x09baB1D15dFfeC4e9b42cDAD44Af789CD9550b10 1145.86
0xcBe5C9b32E49BC29344a90504F6B2088F5FC67fb 108.53
0xf2600fbD12991559068Cd81598F5083b08A712Cc 678.28
0xa49C9aF122D4ea1831c66e6139314b3529D8eEB9 14.17
0xe1E184973C706932ff1481B153377061cF29fD96 231.47
0x30D2Accc27626d46f0c3f1036c591b8DF2B9B1Db 714.10
0xf44cfC31838359A6A4dbd1aFEa23820eA5eBf649 566.95
0x83aBbB20a72101598Fd3585F21c336a4246B792c 506.23
0xAF307522B101B1a6663C27f9833e2a93e557CBa1 320.59
0x54F05D4BE2E42BDB11d94Ff188AD9d36a1930832 13.53
0xA358Cf924A88218942937e1C1dE82cFc816d9f55 514.49
0xd77AFE17776eB1885B07878e28905Dc346DA160f 155.47
0xAAb0708d3630D9c9e07022E44BFE696fadF279E9 92.14
0x247f80b2169F1056e2aD45eCCF15B0c0C5eD2772 43.39
0x4091c101Df8dE9A9D3a2352Ea7a80Ed9d8076b12 508.07
0xBf389A8d4Ac1E449A6f18053F243C372ecae58fa 551.16
0xFd2daaC3F12FB79BB6392802988C55ED81164e0c 101.45
0x8D9B6531ad3605Ce2C53d2E681d667854fa81D0b 686.35
0x92a82e496BB217bE309Bc0d061eeC325Bf288f15 903.11
0x579edA7B42054231Ee7255444Fc917ba659439A0 31.73
0xe775c0ec98ecC2EfC00079C8E15Bd6F78C32FFe0 57.25
0x7d4A974839552E74ec6C1B3db818Befe4Ede7fD7 158.57
0x9509Df67e5b9c1B0554C9e1705d9951173DCF8Cb 237.44
0xAB3CE6F8aa1e67Aa6E30028794386F470D05f73E 558.90
0xADcEab063518CDF2B4012f46A75DCeAFDcCDf8d1 258.01
0x8E07d3fd782696357F3D8f26220F2a41b15da425 793.49
0xf0f3A1c48DAbFEA96f436975659b8cCc72Edb119 664.23
0x9A4884657280faE8904f4203D42e4C13D1387EC2 587.11
0xad154bC94522C012C27fCD41197c789915558A05 859.42
0xcEB0F882608d05cddDa95937b60cE92D846A8466 489.18
0x14cd8F2D0385282E5bcba47dFA8fBbBa5dF6c0a5 647.57
0x88C0473d7351A1659d9C37a63F7d3Ce7330bcb9a 746.95
0x9F715a8aD181Cee341a79B8c660585677D3f9Ed0 920.73
0x99fd5CDcDc36Adb7fA89C9AB42551822f94461fA 536.20
0x67bCddA5EB8DBD19442A1F12915f97d424782fb9 566.57
0x2d21C8d5ed15A85650f5DEF11d190451964aef3a 188.11
0xd67BE2ff1742af1DB0179C1A623A4d1eEcB60056 856.35
0xE39AE268C521D42d6c6667A9175ff29f6b20ABe7 1140.19
0x50c42082B634FC9940150C34d0aeA7f92C8aded1 384.63
0xD86fC563E4dC0f80dFCcCcAD1D5F968e4f472D27 168.37
0x09F26aCA2e2563a568c9D22aa11ec32dFB5ffF9E 1150.57
0x820c44De1D6dD8d1A5468A1d3F14991D1F412aA7 655.83
0xB4C9542AeFd8A1171a35c27dD93AeddCF17C3Ed3 335.77
0xe9c73A852C81863FE514a8a91B426d7CB21D7022 95.27
0xE12cb8A0F70aFC9e825Dd76B76b90B2D95fb0224 80.70
0xd050Cc4DCE30Be29a3865cf9D8708F13466B6896 320.41
0x97Cf720d1bde3DCF12C271E64eCb98c0F4F246e9 520.27
0x448ECCDECD18d57fceBeB8884f3b1C6765754849 703.15
0x55750EE78b5131377db772ed0d9ff62510FDb788 106.58
0x2b5F7E4C5af62b7DDff8434CbeF643a3A9a29433 966.85
0xE5895e9997aaA78E4c64da77cbFf7458E924ebee 632.29
0x209Df116C9AEC8e5fef623975FD05AE8a9eA083F 460.26
0x2717385D217Db5fC94981C9C97939b64eEfe8418 113.57
0x413f29807A2c0E182348D4160da5B0FdAA9e1464 218.22
0x352262581446Cc1d21411318D491977Cd476c7B2 328.05
0xE3554dc80864fB027f46CbCe2F87475c043C4b9f 943.68
0x51Ae82fcf76743CC6D66E512436c438E7980aB05 1156.55
0x9C6F57D786bfD109294a3F99C6677E94bd75E914 896.67
0x1Bebe40e40be49114631e0018E1415D593627173 865.34
0xe329C7A096D9cdE5300aD23fe4cA9b81467D3A86 980.81
0xE00A77B1145652F613BeBE299F8953d4E51EbB47 1114.17
0x92a63B256E5764Fbc2d2251f8b5205f15dB53260 351.41
0x118F88ADe2fB01f3523646C2B9697A7615B937e8 911.25
0x9abF5Ce367d81Cd19200C1637318c2AD7A829D8D 947.44
0x2cB493d7Ca3DAbFb6Be0994A8Ff4e4D7071239dA 288.96
0x9Bd6bF4465EB6442D45D0e95AA5cFe9fb23f361B 1133.03
0xDad3799bD15df632fCca374278156F3949Fa78a7 125.79
0x355eb62E6757bee3E270827bc6BE8976d8E0B45e 661.40
0x283745198fA6d845CfCE1De2D183d152062d1656 1056.87
0x029C684e21d6Db11758E56431A9eF990BC3bb098 889.18
0xc9c127abD93429a10C9465869D6b3e736E1d0A3C 101.24
0xDA5cE21B260d9F786B9fC3c0b4D7Ad13Eaea3743 820.72
0x7C2D3a21F079169Cc21fb2FDbCA9742ce98d3b5B 82.37
0x71057b2580CBCf71824651AcC6BB588b421771bB 214.95
0xdB98015e1De93D0Ef38e0dA87d2674B334011294 38.06
0x6A0752BB7Bf88c2524f1daBd4f251E0829c0627c 441.53
0x02eAE1cFba79CBE25898259564C347C175C55A84 1052.43
0xF9B413c28C049634500920240f90fcAF8652d8D8 890.53
0x68759c2869087a0d391bc624B8DB6429d5f2298F 622.44
0x4Cb65c60F5A706105062ECcA2b3ec72855cD5506 891.07
0xb7c5d22F555deFe4A6e9709aF0E6105a9637a703 96.70
0x5556af2d203EE2452bd419aD10C81b186db581f0 920.39
0x64aCb7c9b54Fdf1309f3E3D4c669cee053b896c3 78.70
0xeFa6224e8c6EA08C3b2e6988F05B6Ae95c63c585 224.93
0x2196D8fCe69c48d882B9d4e32B355549578a6364 1141.25
0x11d1Ee506e9c8A9eEd62A1F636a340c2E055291f 437.91
0xF35774B26FE0DD22F19bBc6aA004bABE280E94dC 819.29
0xD6f66ddA034622c4f18F73e5472C9922a4EFFa1C 310.43
0x7bE3C835CDEF1bef55d47C58493Ce9160AeAE6AA 1144.26
0x114A26463c3C75c58Ca982C9368825178ca8622A 952.39
0x84Dc7a3ad966D2F8Da1b1FbC0786FAB374F17489 607.72
0xB1E6206267117835B640Fb514cf0c3164e606380 663.56
0x2031BEeE4278623556244Ee7Da0F284576300889 937.38
0x6c9A10EFc5a3A75a610Bc5164cB79afac428C483 774.10
0x94736Db414d14525f402Dd7217203A9E1f41278c 989.05
0xF832544c54d4B7B59aef0750947E68CBccD96C87 517.81
0x52B8c108c489659A700f3e5a1638c19408fb1f5E 647.73
0x92CdEE0eA7E2D0f41e7ec4f5C084fe7fF87c871D 908.91
0xe73FdBbe3EF94571D96a6108722368f33AE3e139 1154.94
0xfc81429f85296DE58cd0b27e1F7551Ff1a9593E7 272.77
0xb8566F9C24C1C6f947CB3D853C4beb133c58FE55 303.05
0x19bE7c8501Fe8E8099e226e48d7Eda4fc922d214 619.76
0x3a6E6eC0010324C5B47F6836cD4D80bC43A0c68A 1046.77
0x9469BB06eDd84D7159591812Bb45D42D108300f6 17.27
0xFe1ed918337eC185EB1960fFeF07594ab68576E5 507.36
0x562232f8a7E148d4C75e13075891089f9E9cF9bB 1108.36
0xe7BAd12ef93428F768Ffb0db8692B5a8d050A27f 136.67
0xB324062d5D47c192E558fE3853a3e3Ee4867A768 814.60
0x1878cFec964a5B52e092E29Ff6007abb0Ba36E23 579.78
0xf8A51F59B9A4DAAfC4321dcCEE497991c47eF42F 667.31
0xA68e1C8F45C7ee44CC77E8bE8f5752c347bbA5D5 449.36
0x7CAbdD261FfDdD5990Fba8CC28653A0CCf5E1c3d 13.16
0xE31757549D0bb72EaD1EC50B848B5beb79CB8c22 702.21
0x890fD8621efd3Bcc2d6599cB9278cF7D2383FE91 1073.18
0x055DfC3BBc49BCd4b43F53B7Ec47C35758b4c563 778.19
0xAEFaAD8A051300FdE78F5F59E71807f962f0AC25 688.50
0x9D6B4e7055c09F1B6936b2E6959F1411143416B3 578.27
0x71e466AB0cEbdC307DFc1c52aaA24d0864cd6621 493.41
0xBAAE67eD1102EC1d96692f69DE54b8312AfCEbCC 278.34
0xB0f485669f5Ba0977F04a8F2792a6edC5bc8f390 1003.71
0xBbE724884C665af608E08bc822dE0f232DDAb96e 651.55
0x1544604DD7C07681d68Df109CA04e121A47E9664 1141.86
0xf85ac2d800307f97358913fcB0ec4c55911Ad716 948.89
0x014FD07Debc30A1468C319B2994FA06f206E08D8 1057.79
0xd885FcD0550BC17C1E647fe98895f6054D4C2a20 921.80
0x8EDBdEb4B3E304BC793d16D6d72fC4428cc2c337 812.78
0x00B9ABE9228a7787486F155065AcB609c8dA5DD2 457.33
0x121d39E48b541d37489F439AA32968567101E818 323.97
0xa0DdB52C9A707bE512aC622D48528C92226fC020 557.92
0x880f130a191e928D573cEeE76e13322a53A36261 791.44
0x8966CcB2Cc471395f2776C73A1390389269f83D3 494.71
0x25f2B27a5F058474afe32588ead79A2489d63B3D 152.37
0x61fB9B544a3CC715dCe50602951262560AEDB84e 988.98
0x5163bb4ec5Ba1678739759A90Ef658bF003BC033 131.09
0xe9D7dC7D608a2a7857b2138AB4E1Ac7aB3393e18 581.12
0x5DE03b8ee7C98da9183772e0aF7bd5F95384119C 301.66
0x4ac4Fd10183c6b0B72028d48eF81dbfca27A57e5 448.52
0xd8ce1567945950c447c886C5b37eB472d8099429 191.63
0xCFF062EC98cE18a08725D420Dad95b6b21F0cCBF 740.25
0x6cbD5A3047030D453D781b26d60798CB79F7D8Cf 501.46
0x89331E7664B722A068c6a0a43DF2624D08501CCd 569.75
0x2d8BcBd41B4F03eE18264fbA01854254c5d60002 331.42
0xe982545bD31b0bFE248b359CBe53935711c0f807 272.70
0x23bC2e3A25Cfd0c3f09228b5c0294e5f37551d6e 507.93
0x6E822DD0B1a0EEC83F36179a5A60AF4bD0e25Eac 918.72
0x747f28aA2994B15B59087C51D3434816F0bFf726 955.82
0x7BC959dAA542464Abd63118A774E30045c317629 718.59
0x0410a54E91f5Cdc8ec208842350B7B5c03102692 210.20
0x7995Aa30f33f389c699b3f1C3587911E57F732DD 443.73
0x1435fdcEfFdCEF5cD581D9BeD99283Ec66aa5dD0 552.90
0x4aAe896B3EA894c4660EA78E9bf7e270bE59B347 11.01
0x6b6762164634BE5371CD3B2bA1A9E8a5b014fc3b 453.70
0xdeB74Ccc7a7053F2A13C130E7B092a7F7d8756E4 848.75
0xFc2Ee0aAdbE27cBE25D2977243741d8195B94881 688.14
0x759b27D15Eb3BE1fA9BaA4FfAbcb2b44e826de67 577.82
0x0AE5BA5a6744C6b74E054bdd4D94DFDC6B65DE83 1095.80
0x36A836c3f2D8Bd295eD8f321F68b9770649BAB95 590.12
0xCC1aa15468872D09d4cC2da1c2BE94C87fcF9c0B 632.27
0x388A9B71f35823db55CbF3B51D50fc3faf2a1E98 319.96
0x0A7B46fC85933C6983a4a9000CeF5663C6374AeF 687.60
0x6F13b65Baf7E03df9862049bab368535C0bE6781 619.37
0x086A079dE19F0E96e24E212C84267b46a8f5af92 759.50
0x706968Cf998157D27277270cBc7817511F1Fde27 583.08
0xf9082B0d0649321DD6937e4752BFA4912a8DEb95 272.79
0x6A04D29113f636C9C96de5EAaDCbE70AF587C66a 1017.52
0x417D1adCC6D2915ADA1e5f9Cea9D6Db717c367F9 773.39
0x061320EB4a013F90624188D0C44A15E9eD830c14 906.05
0xA2A8acFDd2E164ac43abe1a57c6b00be2d60957d 456.28
0xE4F9da285A858bb550f029fC02b332b74823Fa68 902.94
0x807cfa6115B5B60d7B32e8c50b25f25Ad619C7aB 205.19

716
initdatas/cec_hashrate.txt Normal file
View File

@ -0,0 +1,716 @@
0x0f001e1ea9c6159d0cee17e7b2cc36b4f9a3e4d9 0.51
0x5a7ff715af4a22316f529599947728e4e727e1b1 1.71
0x581501981a31468831e8c3cf841e486c2f6817f9 1.71
0x9eed42c6de0fd3fd7b3658f3d7e8a15b71097858 2.21
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 23.91
0x4690e3331cd955c80818351c4b00c4e67e2426e8 7.01
0xd11502cad5c19d402de3abbb2522f80d24e776f8 90.31
0x14af23b3ee40fa62bfec154497de627e6944a329 15.21
0xce8d26ce3df69f45b9622801b0cc6c58185e1010 2.31
0xf9c10d1c9fa8ea6506e2cba25c5760ea5f29c335 0.91
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 2.31
0xfc0dfec8760427695f0781bce998270749d7421d 5.11
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 7.11
0xdf71065674b0db4ae315b756decf46738e33a81a 0.11
0x8eed9ec5c985a941a4cee1ea75a8b22fa7fa9d4c 0.91
0x6876faaf4702a647e7952b9dc7bd96915101cb49 1.21
0x77f3360c1632fcea429b174dc35d44881ea373ee 0.31
0xd3fa15628d0f1252f936db1e4bac6ee56cf9a42c 4.01
0xa592610c968f35797db54b9c38582a9b52da386b 0.21
0x7517ea71494c603188fd98e41e2c79c41d78cadd 72.11
0x30246a4812efe43c10a20239ee68fbec906dc76f 0.91
0xf9099e77acee804499a69d251db17d5a7ccb5f91 1.71
0x7081917c78e1c95a40dcb12466e515fb48855a96 1.11
0xc3fd3974f5b3ba7da3378f3c4f610d6aa0598c04 3.81
0x2a05af114fcb3dbef1f7d243d8669d249bb98cb3 0.91
0xdd36a9dac72be69a435bd313b3297255c397db06 1.21
0x22b5aac417d3a70e4b098dfa3228b00dccfe22a4 0.11
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 41.11
0xfc01f185b82c7cbadeec232399d38af589aef6c8 20.01
0x23e0431482694a4b3da658e0340345954687b9f5 6.11
0xb84c573f9d5492606727e54cd3f356a53b7a9262 4.71
0xb033c0b72a841a4c37b891297d047c4e3aa70b44 0.41
0x63d9db8f01371a4114d524b116a71adbb60e28bf 0.71
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 2.31
0xfcaae6baaaf8b9d2629dfc6f0949eff8105eb25f 65.31
0x37c3187dc8426f74771998971140d9d45af4c9f6 0.51
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 8.01
0x02d9b83c6e8e3201da66a68bc79fb64c967b567d 0.21
0x31797ed25af992f0621759406d18422fe9b63642 0.31
0x7ce5fae58508f8f45b04846ef4457b1f693d824f 0.11
0x4cec0307afde90a0ced01708cc3607cdd9d1a509 0.41
0xe495b65fc8b77acde87daff462befefc4e2190a2 0.41
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 23.11
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100.21
0x307383de1667149ccab3388a875e141ed9e0739c 0.11
0xe9cc48944e388f78f2ed6f1d150de0071acae589 0.71
0x120f4714e046e3a5eb0a4d4ab8a335b2355afe58 0.11
0x5ab289a236d4a1a316c332a20a26a49a41404d27 0.51
0x9b9002f05c790e4f2d41588b8061b4e13ca4038e 9.41
0x693da45ed9333e323ed5804d306e8e64fcac2589 16.81
0x2be2479f3d34c572971176de85426db471f977b2 118.11
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 161.81
0x1f185b31f10a2738e909b5b985fefb8057c8e7c3 2.71
0x99140e55d06b876cff40bb76aff4449c4a57f6b2 1.91
0x46b399d3685bd5b0dadb613ed363469ffc985687 58.51
0x5a7ff715af4a22316f529599947728e4e727e1b1 1.6
0x581501981a31468831e8c3cf841e486c2f6817f9 1.1
0xce97dec58280e7d899adcb3458353b6beb8136ad 1.3
0x9eed42c6de0fd3fd7b3658f3d7e8a15b71097858 1.9
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 10.3
0xc74ff714c501048d3c3942763c3414bfb4e34749 0.5
0x81e92a2ee60081d56e94150aa74b67f4c248927e 0.2
0xd11502cad5c19d402de3abbb2522f80d24e776f8 21.6
0x14af23b3ee40fa62bfec154497de627e6944a329 0.7
0xce8d26ce3df69f45b9622801b0cc6c58185e1010 4.4
0xf9c10d1c9fa8ea6506e2cba25c5760ea5f29c335 0.1
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 10
0xfc0dfec8760427695f0781bce998270749d7421d 7.1
0x840287c028cb2e6291d8af50bc6da83fd23a6e66 1.4
0x04c9d6f194407d0a56bf456e13801ab424d7a719 0.1
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 6.6
0x0fd75f382f8b2baa56c07d0bd96593117092968b 1.4
0x8eed9ec5c985a941a4cee1ea75a8b22fa7fa9d4c 1
0x8db3010630c5787b6bcccc67154db5c4d0b6fe11 0.9
0x6876faaf4702a647e7952b9dc7bd96915101cb49 2.01
0x8aac90d7d40b330ecc755453d043acc6f1107b23 0.7
0x979c478054f2c67f7b7ae9617834eab5781a08a8 5.7
0xd3fa15628d0f1252f936db1e4bac6ee56cf9a42c 3.7
0xa592610c968f35797db54b9c38582a9b52da386b 0.8
0x7517ea71494c603188fd98e41e2c79c41d78cadd 101.5
0x30246a4812efe43c10a20239ee68fbec906dc76f 1
0x56ef15a085437d9edcc7ba45a47f6c7a4024e1ca 1.1
0x9ba6c19da66c536c458d54b4a909219f5e28bab5 0.8
0xc3fd3974f5b3ba7da3378f3c4f610d6aa0598c04 1.1
0x5d86cbf8025151b455bf5aa703f3fae3ccc9c9e0 1.3
0x4b640bcbc2d3b906bd4a9812a3d5e2d9542f8562 1.5
0x2a05af114fcb3dbef1f7d243d8669d249bb98cb3 0.1
0xdd36a9dac72be69a435bd313b3297255c397db06 0.7
0x22b5aac417d3a70e4b098dfa3228b00dccfe22a4 3.9
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 111.41
0xfc01f185b82c7cbadeec232399d38af589aef6c8 16.2
0x23e0431482694a4b3da658e0340345954687b9f5 3
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 65.11
0xf1a90c9152f407989c62c75e35ff4e3bb565bb4f 1
0xb84c573f9d5492606727e54cd3f356a53b7a9262 2.6
0x63d9db8f01371a4114d524b116a71adbb60e28bf 0.4
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 2.2
0xaffeaaa3144341842fef43341ae6d6a9ec5e5262 0.5
0xfcaae6baaaf8b9d2629dfc6f0949eff8105eb25f 18.4
0x37c3187dc8426f74771998971140d9d45af4c9f6 2.5
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 96.5
0x31797ed25af992f0621759406d18422fe9b63642 0.1
0x7ce5fae58508f8f45b04846ef4457b1f693d824f 0.3
0x094d1327e6436ea82f5d0ec528045898aabc2070 3.3
0xe495b65fc8b77acde87daff462befefc4e2190a2 1.4
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 8.6
0x53a94c23fb33f3a45e1328fa8ef578f3cd6a13ec 1.1
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100
0x9c90a4bbde61cc57d0bf8ffab530a1493c2c6292 0.1
0xe9cc48944e388f78f2ed6f1d150de0071acae589 1.1
0x5ab289a236d4a1a316c332a20a26a49a41404d27 0.9
0x9b9002f05c790e4f2d41588b8061b4e13ca4038e 11.3
0x7aed777a9ca9f86025f324c0d99c3d3b7e0c7d75 2.1
0xac2667954db550a527a0df6125d429a2eb99381c 1.5
0x693da45ed9333e323ed5804d306e8e64fcac2589 0.5
0x2be2479f3d34c572971176de85426db471f977b2 143.1
0x8fd0c4e72bebd45badea20377b68ba644191d388 0.9
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 106.9
0x1f185b31f10a2738e909b5b985fefb8057c8e7c3 2.2
0x99140e55d06b876cff40bb76aff4449c4a57f6b2 4.1
0xc3a76244e887c1de4baa76b80512061802d68914 0.1
0x46b399d3685bd5b0dadb613ed363469ffc985687 100.5
0xcc676b6c10c7eda88eb6026b568f4994a6809753 1.6
0x0f001e1ea9c6159d0cee17e7b2cc36b4f9a3e4d9 0.3
0x5a7ff715af4a22316f529599947728e4e727e1b1 1.7
0x9eed42c6de0fd3fd7b3658f3d7e8a15b71097858 1.5
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 10.5
0x4690e3331cd955c80818351c4b00c4e67e2426e8 8.6
0xc74ff714c501048d3c3942763c3414bfb4e34749 0.9
0x4fb8cc3a435f6ff19d068633749d7bc4ee31a08f 0.4
0xd11502cad5c19d402de3abbb2522f80d24e776f8 21.2
0xce8d26ce3df69f45b9622801b0cc6c58185e1010 2.5
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 9.6
0xfc0dfec8760427695f0781bce998270749d7421d 5.6
0x840287c028cb2e6291d8af50bc6da83fd23a6e66 1
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 5.7
0x0fd75f382f8b2baa56c07d0bd96593117092968b 0.7
0x61bcdcb1291a829cc6a83110363021e396023d34 12.3
0xbcb83683cd6f306871aec0c9da9577a1094fef28 0.4
0xbcaf57497993b963da6b63dc5ef777b5b8a674c8 0.3
0x6876faaf4702a647e7952b9dc7bd96915101cb49 0.4
0x8aac90d7d40b330ecc755453d043acc6f1107b23 0.5
0x979c478054f2c67f7b7ae9617834eab5781a08a8 3.9
0xd3fa15628d0f1252f936db1e4bac6ee56cf9a42c 2.4
0xa592610c968f35797db54b9c38582a9b52da386b 0.5
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100.1
0x30246a4812efe43c10a20239ee68fbec906dc76f 0.7
0x56ef15a085437d9edcc7ba45a47f6c7a4024e1ca 0.3
0x7081917c78e1c95a40dcb12466e515fb48855a96 6
0xba01de8a7b159ab2540387ea74d2848f573a505f 1.3
0xd84537a062e37f5578760706c48e088f2a078eda 0.1
0x73bfa66de8b8552a90c98d8ee9de9d06ff7b9dc3 2.1
0xc3fd3974f5b3ba7da3378f3c4f610d6aa0598c04 0.5
0x4b640bcbc2d3b906bd4a9812a3d5e2d9542f8562 0.7
0x2a05af114fcb3dbef1f7d243d8669d249bb98cb3 0.1
0xb00ddb22da461f59b966cf73c8bfb9f4ff98540a 12
0xdd36a9dac72be69a435bd313b3297255c397db06 0.7
0x22b5aac417d3a70e4b098dfa3228b00dccfe22a4 0.3
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 152.41
0xfc01f185b82c7cbadeec232399d38af589aef6c8 16.8
0xb57e02c584866ae580b01be478bb6dc088262438 0.1
0x23e0431482694a4b3da658e0340345954687b9f5 3.1
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 62.11
0xf1a90c9152f407989c62c75e35ff4e3bb565bb4f 0.8
0xb84c573f9d5492606727e54cd3f356a53b7a9262 3
0xb033c0b72a841a4c37b891297d047c4e3aa70b44 0.3
0x39f3ed128f43f5ef072e204d68229ebcd59b1498 3.1
0x63d9db8f01371a4114d524b116a71adbb60e28bf 0.1
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 1.2
0xaffeaaa3144341842fef43341ae6d6a9ec5e5262 0.4
0xfcaae6baaaf8b9d2629dfc6f0949eff8105eb25f 4
0x37c3187dc8426f74771998971140d9d45af4c9f6 1.9
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 11.3
0x31797ed25af992f0621759406d18422fe9b63642 0.1
0x9816f54829bcf438dee60d1cbb9c302dbe297372 1.7
0x094d1327e6436ea82f5d0ec528045898aabc2070 1.3
0x1444eedada030a0d04ba31f57955cde5047f3143 1.8
0xe495b65fc8b77acde87daff462befefc4e2190a2 0.8
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 9.2
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100
0x138d1dfb66ae1e1698bf4477469ebb0e0d0890dc 2.3
0xe9cc48944e388f78f2ed6f1d150de0071acae589 0.2
0x5ab289a236d4a1a316c332a20a26a49a41404d27 0.9
0x9b9002f05c790e4f2d41588b8061b4e13ca4038e 7.3
0x38b114b58cbdcb480c4758754849a3472f38b58b 4.1
0x7aed777a9ca9f86025f324c0d99c3d3b7e0c7d75 1.2
0x473bb7b62474c9e63c0c6db8de8bd8608d4ac21a 0.4
0x2be2479f3d34c572971176de85426db471f977b2 149.5
0x8fd0c4e72bebd45badea20377b68ba644191d388 0.9
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 105
0x1f185b31f10a2738e909b5b985fefb8057c8e7c3 3.3
0x99140e55d06b876cff40bb76aff4449c4a57f6b2 2.8
0x46b399d3685bd5b0dadb613ed363469ffc985687 41.8
0x2645de00fddb44ce732f72018f15553b4efd9ee9 0.3
0xbec9cd9bd7c4b2616057dfb55a40d8b4af271f7a 0.2
0xcc676b6c10c7eda88eb6026b568f4994a6809753 4.3
0x5a7ff715af4a22316f529599947728e4e727e1b1 0.4
0xce97dec58280e7d899adcb3458353b6beb8136ad 0.8
0x9eed42c6de0fd3fd7b3658f3d7e8a15b71097858 0.1
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 10.9
0xc74ff714c501048d3c3942763c3414bfb4e34749 0.1
0x7d620619061d92938830cc18b807c0f3aa0a2a17 0.3
0xffdc7a0df1d4cb2a42b6d5e8bd8567b4c8b4fa98 0.1
0xd11502cad5c19d402de3abbb2522f80d24e776f8 18.9
0x4e954b97c493bd62d09ad412cf0b9362e95451d9 1
0xce8d26ce3df69f45b9622801b0cc6c58185e1010 1.8
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 24.7
0xfc0dfec8760427695f0781bce998270749d7421d 5.8
0x840287c028cb2e6291d8af50bc6da83fd23a6e66 0.5
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 27.9
0xa33ef89a67d94b47b14ee09289815f160d3cc48c 0.7
0x61bcdcb1291a829cc6a83110363021e396023d34 48.7
0xb826bceda7e628253e901a74e8b862c1a03c63be 0.2
0x641a4970e5546aeb37b3eb066f2d973dfb5d73ae 0.8
0xbcb83683cd6f306871aec0c9da9577a1094fef28 2.01
0x3c7588fb5e4423b6a37d575d6c3db37d1bb050e4 0.9
0x8db3010630c5787b6bcccc67154db5c4d0b6fe11 9.8
0x6876faaf4702a647e7952b9dc7bd96915101cb49 1.6
0x979c478054f2c67f7b7ae9617834eab5781a08a8 2.8
0xd3fa15628d0f1252f936db1e4bac6ee56cf9a42c 4.7
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100
0x56ef15a085437d9edcc7ba45a47f6c7a4024e1ca 0.2
0x7ead64bbe96497bfe4c3fda7b1b44adaf5afa71b 0.7
0x7081917c78e1c95a40dcb12466e515fb48855a96 9.6
0xba01de8a7b159ab2540387ea74d2848f573a505f 0.5
0x73bfa66de8b8552a90c98d8ee9de9d06ff7b9dc3 0.1
0x991894f833d80208aa283918d60d2326597831ec 0.1
0x88e21fdea4c514d127636c912df1c6c8f550ebc6 3.5
0x5d86cbf8025151b455bf5aa703f3fae3ccc9c9e0 0.9
0x4b640bcbc2d3b906bd4a9812a3d5e2d9542f8562 0.5
0x2a05af114fcb3dbef1f7d243d8669d249bb98cb3 0.1
0xdd36a9dac72be69a435bd313b3297255c397db06 2.1
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 157.2
0xf3d2a9816a7016ffaf5ccba02524ecfbde9c06cc 0.7
0xfc01f185b82c7cbadeec232399d38af589aef6c8 19.4
0x23e0431482694a4b3da658e0340345954687b9f5 3.1
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 30.3
0xce2a588adaf0d64e8449dc392d06855a0c175924 0.1
0xb84c573f9d5492606727e54cd3f356a53b7a9262 0.5
0x85f46b537e7832f3b3b0cd0a2eeb7b2ad24d54a4 0.1
0xb033c0b72a841a4c37b891297d047c4e3aa70b44 0.5
0x933963751b8f5be3e9e756bf4579177edde1eb1a 0.3
0x39f3ed128f43f5ef072e204d68229ebcd59b1498 0.2
0x8418259e62817a002486961a9b97001d88388433 20.9
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 1.9
0xaffeaaa3144341842fef43341ae6d6a9ec5e5262 0.1
0xfcaae6baaaf8b9d2629dfc6f0949eff8105eb25f 6.2
0x37c3187dc8426f74771998971140d9d45af4c9f6 3.3
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 12.2
0x02d9b83c6e8e3201da66a68bc79fb64c967b567d 0.6
0xe495b65fc8b77acde87daff462befefc4e2190a2 0.6
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 9.8
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100
0xe9cc48944e388f78f2ed6f1d150de0071acae589 0.9
0x44c34f8829de40d908f83e918a98da7c7e2b9902 0.9
0x5ab289a236d4a1a316c332a20a26a49a41404d27 0.4
0x9b9002f05c790e4f2d41588b8061b4e13ca4038e 6
0x693da45ed9333e323ed5804d306e8e64fcac2589 0.1
0xa9c156329e649059043529a6440ed680b9676928 0.1
0x2be2479f3d34c572971176de85426db471f977b2 148.9
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 109.11
0x6708459af55abb840e5164294a05bd92ff417916 3.1
0x1f185b31f10a2738e909b5b985fefb8057c8e7c3 3.7
0x99140e55d06b876cff40bb76aff4449c4a57f6b2 0.2
0x46b399d3685bd5b0dadb613ed363469ffc985687 60.9
0x2645de00fddb44ce732f72018f15553b4efd9ee9 1.91
0xbec9cd9bd7c4b2616057dfb55a40d8b4af271f7a 0.11
0xce97dec58280e7d899adcb3458353b6beb8136ad 0.51
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 7.91
0xc74ff714c501048d3c3942763c3414bfb4e34749 0.11
0xd11502cad5c19d402de3abbb2522f80d24e776f8 12.31
0xce8d26ce3df69f45b9622801b0cc6c58185e1010 0.91
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 4.41
0xfc0dfec8760427695f0781bce998270749d7421d 0.51
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 11.21
0x61bcdcb1291a829cc6a83110363021e396023d34 36.11
0x3c7588fb5e4423b6a37d575d6c3db37d1bb050e4 1.21
0x8eed9ec5c985a941a4cee1ea75a8b22fa7fa9d4c 1.01
0x979c478054f2c67f7b7ae9617834eab5781a08a8 1.51
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100.01
0x56ef15a085437d9edcc7ba45a47f6c7a4024e1ca 0.31
0x7ead64bbe96497bfe4c3fda7b1b44adaf5afa71b 1.11
0x7081917c78e1c95a40dcb12466e515fb48855a96 9.11
0x88e21fdea4c514d127636c912df1c6c8f550ebc6 0.71
0x34487ff5c9e5604d0b148a299900c9035866c3b4 1.21
0x2a05af114fcb3dbef1f7d243d8669d249bb98cb3 0.11
0xdd36a9dac72be69a435bd313b3297255c397db06 0.21
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 121.51
0xf3d2a9816a7016ffaf5ccba02524ecfbde9c06cc 0.81
0xfc01f185b82c7cbadeec232399d38af589aef6c8 22.61
0x23e0431482694a4b3da658e0340345954687b9f5 0.21
0xb033c0b72a841a4c37b891297d047c4e3aa70b44 2.01
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 0.61
0xaffeaaa3144341842fef43341ae6d6a9ec5e5262 0.11
0xfcaae6baaaf8b9d2629dfc6f0949eff8105eb25f 4.01
0x37c3187dc8426f74771998971140d9d45af4c9f6 4.01
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 1.51
0x9010676e15874e95917c450b6e64b9aa22bb6cfd 0.21
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 7.61
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100.01
0x9b9002f05c790e4f2d41588b8061b4e13ca4038e 1.11
0x38b114b58cbdcb480c4758754849a3472f38b58b 0.31
0xa9c156329e649059043529a6440ed680b9676928 0.51
0x2be2479f3d34c572971176de85426db471f977b2 138.01
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 130.81
0x6708459af55abb840e5164294a05bd92ff417916 0.11
0x879444745b6d7c6d6cf11472d32ca413e64bf738 0.21
0x46b399d3685bd5b0dadb613ed363469ffc985687 103.01
0x2645de00fddb44ce732f72018f15553b4efd9ee9 0.1
0x0f001e1ea9c6159d0cee17e7b2cc36b4f9a3e4d9 1.6
0x5a7ff715af4a22316f529599947728e4e727e1b1 1.1
0x581501981a31468831e8c3cf841e486c2f6817f9 0.8
0x9eed42c6de0fd3fd7b3658f3d7e8a15b71097858 4.5
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 12.3
0xc74ff714c501048d3c3942763c3414bfb4e34749 1.1
0xd11502cad5c19d402de3abbb2522f80d24e776f8 21.6
0xce8d26ce3df69f45b9622801b0cc6c58185e1010 2.3
0xf9c10d1c9fa8ea6506e2cba25c5760ea5f29c335 2.1
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 5.1
0xfc0dfec8760427695f0781bce998270749d7421d 10.2
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 8.7
0x6ddbb5b5c40d8a7e904c8adcc4ed044ca4f5b133 0.2
0x61bcdcb1291a829cc6a83110363021e396023d34 36.3
0xb826bceda7e628253e901a74e8b862c1a03c63be 0.3
0xdcb2582a3600278120304370ac9f984dbc644042 1.7
0x3c7588fb5e4423b6a37d575d6c3db37d1bb050e4 1.9
0x8db3010630c5787b6bcccc67154db5c4d0b6fe11 0.9
0x6876faaf4702a647e7952b9dc7bd96915101cb49 1.2
0x979c478054f2c67f7b7ae9617834eab5781a08a8 8.2
0x7f401e77c0d739b11af42130e950e938ea74ccff 0.3
0xbffa7f626d2a9a307ebae55ac65d1e43cc3ab843 1
0xd3fa15628d0f1252f936db1e4bac6ee56cf9a42c 5.1
0x3007ef915e8e551bf4449c1b2e96b9068f654dbb 0.6
0x7517ea71494c603188fd98e41e2c79c41d78cadd 101
0x4fdf3589f1bfeb6af97145e5a6d315736274b693 0.4
0x7bf92308d9562417e146176be1d21ab413879fa8 1.5
0x7081917c78e1c95a40dcb12466e515fb48855a96 3.4
0x991894f833d80208aa283918d60d2326597831ec 0.6
0x88e21fdea4c514d127636c912df1c6c8f550ebc6 1.3
0x2a05af114fcb3dbef1f7d243d8669d249bb98cb3 1
0xdd36a9dac72be69a435bd313b3297255c397db06 2.5
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 88.7
0xf3d2a9816a7016ffaf5ccba02524ecfbde9c06cc 1.3
0xfc01f185b82c7cbadeec232399d38af589aef6c8 8.6
0xf00c25b849e304b75559360c3da14e77d76308f2 1.1
0x23e0431482694a4b3da658e0340345954687b9f5 1.2
0xf699986c101d7602307351442ba1c3e592875dba 1.3
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 104.2
0xce2a588adaf0d64e8449dc392d06855a0c175924 0.7
0xb84c573f9d5492606727e54cd3f356a53b7a9262 6
0x85f46b537e7832f3b3b0cd0a2eeb7b2ad24d54a4 1.2
0xb033c0b72a841a4c37b891297d047c4e3aa70b44 4.5
0x24ff3f6abaae1a28ccb62a14b61fd0005e20e5b0 0.3
0x6c80ae41b0ae5a9c1e909b674816f68cdfdf45d9 0.1
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 4
0x1a7236d944c47b4b89a53cf8fcf1f439fe63cb47 0.5
0xaffeaaa3144341842fef43341ae6d6a9ec5e5262 0.8
0xfcaae6baaaf8b9d2629dfc6f0949eff8105eb25f 7
0x59f24f15ab4c4900d82321845ef2922ea30d31bf 0.8
0x37c3187dc8426f74771998971140d9d45af4c9f6 5.6
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 5
0x31797ed25af992f0621759406d18422fe9b63642 0.8
0x82a3fb171702cef61af04e674994e7a50274878c 0.5
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 10.8
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100.2
0x340ecf5baf1f058407264b0235a65b6897091abf 0.6
0xe9cc48944e388f78f2ed6f1d150de0071acae589 2
0x120f4714e046e3a5eb0a4d4ab8a335b2355afe58 2
0x5ab289a236d4a1a316c332a20a26a49a41404d27 2.9
0x9b9002f05c790e4f2d41588b8061b4e13ca4038e 9.2
0x7aed777a9ca9f86025f324c0d99c3d3b7e0c7d75 0.4
0xac2667954db550a527a0df6125d429a2eb99381c 3
0x693da45ed9333e323ed5804d306e8e64fcac2589 2.1
0xd89ef8484864b35b52f5f43296fdbec433c62802 0.4
0xa9c156329e649059043529a6440ed680b9676928 1
0x2be2479f3d34c572971176de85426db471f977b2 120.5
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 107.41
0x6708459af55abb840e5164294a05bd92ff417916 0.7
0x1f185b31f10a2738e909b5b985fefb8057c8e7c3 3.6
0x99140e55d06b876cff40bb76aff4449c4a57f6b2 4.9
0x46b399d3685bd5b0dadb613ed363469ffc985687 106.2
0xaf646c9d1eb5fce84b56698a99c13fa21aa7c665 0.11
0xcc676b6c10c7eda88eb6026b568f4994a6809753 0.71
0x0f001e1ea9c6159d0cee17e7b2cc36b4f9a3e4d9 1.01
0x5a7ff715af4a22316f529599947728e4e727e1b1 0.21
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 8.91
0xd1e69eb30ec3503a344930601744035e65718329 0.81
0xd11502cad5c19d402de3abbb2522f80d24e776f8 20.11
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 4.71
0xfc0dfec8760427695f0781bce998270749d7421d 4.81
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 5.51
0x61bcdcb1291a829cc6a83110363021e396023d34 24.11
0x641a4970e5546aeb37b3eb066f2d973dfb5d73ae 0.91
0x3c7588fb5e4423b6a37d575d6c3db37d1bb050e4 1.31
0x6876faaf4702a647e7952b9dc7bd96915101cb49 0.11
0x45e3f2effa409e79a829379066eaf541100c1ef9 0.11
0x979c478054f2c67f7b7ae9617834eab5781a08a8 5.31
0xd3fa15628d0f1252f936db1e4bac6ee56cf9a42c 1.41
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100.01
0xc3429918827926d2ce462e86a8e5cc79893594cf 0.11
0x7ead64bbe96497bfe4c3fda7b1b44adaf5afa71b 1.31
0xc3fd3974f5b3ba7da3378f3c4f610d6aa0598c04 0.71
0x88e21fdea4c514d127636c912df1c6c8f550ebc6 0.91
0x9cb6e871f7384e8d2166ce3d9fab4ad6909de4e3 0.11
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 50.61
0xf3d2a9816a7016ffaf5ccba02524ecfbde9c06cc 0.31
0xfc01f185b82c7cbadeec232399d38af589aef6c8 5.61
0xf00c25b849e304b75559360c3da14e77d76308f2 0.51
0x23e0431482694a4b3da658e0340345954687b9f5 1.01
0xf699986c101d7602307351442ba1c3e592875dba 0.31
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 74.51
0x869525b75d620c2f021494224810129677bcdfe5 2.51
0xb84c573f9d5492606727e54cd3f356a53b7a9262 0.51
0xb033c0b72a841a4c37b891297d047c4e3aa70b44 0.31
0x1e835d298de517bf92412d5fa49689015f072420 0.71
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 1.51
0xaffeaaa3144341842fef43341ae6d6a9ec5e5262 0.11
0xfcaae6baaaf8b9d2629dfc6f0949eff8105eb25f 2.01
0x37c3187dc8426f74771998971140d9d45af4c9f6 2.91
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 0.81
0x094d1327e6436ea82f5d0ec528045898aabc2070 2.01
0xe495b65fc8b77acde87daff462befefc4e2190a2 1.71
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 6.71
0x53a94c23fb33f3a45e1328fa8ef578f3cd6a13ec 0.31
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100.01
0x5ab289a236d4a1a316c332a20a26a49a41404d27 0.71
0xac2667954db550a527a0df6125d429a2eb99381c 0.21
0x693da45ed9333e323ed5804d306e8e64fcac2589 4.21
0xacc627182f38f8446116eeadcb215201b9f931e9 0.81
0x2be2479f3d34c572971176de85426db471f977b2 43.61
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 102.21
0x46b399d3685bd5b0dadb613ed363469ffc985687 100.01
0xcc676b6c10c7eda88eb6026b568f4994a6809753 0.6
0x0f001e1ea9c6159d0cee17e7b2cc36b4f9a3e4d9 0.7
0x0768945219a34b431f8057f096559c3e296119bc 0.1
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 10.8
0xd11502cad5c19d402de3abbb2522f80d24e776f8 18.6
0xa1ef34a8bd68f2eb67400ca61fccac60b4595c83 0.4
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 1.1
0xfc0dfec8760427695f0781bce998270749d7421d 8.3
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 5
0xa33ef89a67d94b47b14ee09289815f160d3cc48c 2
0x6ddbb5b5c40d8a7e904c8adcc4ed044ca4f5b133 0.2
0x440643e51928817c01b748ff0d3fb69fa2995028 0.2
0x61bcdcb1291a829cc6a83110363021e396023d34 36.2
0x8db3010630c5787b6bcccc67154db5c4d0b6fe11 6
0x979c478054f2c67f7b7ae9617834eab5781a08a8 5.3
0x02de7d7bf3c6a0a534fdd56a389946c33dd49629 0.6
0xd3fa15628d0f1252f936db1e4bac6ee56cf9a42c 5
0x7517ea71494c603188fd98e41e2c79c41d78cadd 101.3
0x7081917c78e1c95a40dcb12466e515fb48855a96 4.2
0x73bfa66de8b8552a90c98d8ee9de9d06ff7b9dc3 2.9
0x88e21fdea4c514d127636c912df1c6c8f550ebc6 1.4
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 70.91
0xf3d2a9816a7016ffaf5ccba02524ecfbde9c06cc 0.1
0xb463ce78eeeafdfb01405d63aeba9674ea749195 0.3
0xfc01f185b82c7cbadeec232399d38af589aef6c8 5.6
0xfa0e93234013f21b81c01bb3335e6dd38a68cff2 0.1
0xf699986c101d7602307351442ba1c3e592875dba 0.2
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 91.7
0xb84c573f9d5492606727e54cd3f356a53b7a9262 1
0xb033c0b72a841a4c37b891297d047c4e3aa70b44 0.1
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 1.4
0x37c3187dc8426f74771998971140d9d45af4c9f6 0.6
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 0.3
0x9816f54829bcf438dee60d1cbb9c302dbe297372 4.1
0x724d93832b62280fcbeba03ef767aa7ca807ea76 0.9
0x1444eedada030a0d04ba31f57955cde5047f3143 4
0xe495b65fc8b77acde87daff462befefc4e2190a2 0.6
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 10.4
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100
0x5ab289a236d4a1a316c332a20a26a49a41404d27 0.3
0x9b9002f05c790e4f2d41588b8061b4e13ca4038e 2
0x693da45ed9333e323ed5804d306e8e64fcac2589 3.2
0x2be2479f3d34c572971176de85426db471f977b2 50.2
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 101.1
0x8bdece29c9e565722827f07c0239380fcc41b594 0.4
0x46b399d3685bd5b0dadb613ed363469ffc985687 100.1
0xcc676b6c10c7eda88eb6026b568f4994a6809753 0.81
0x0f001e1ea9c6159d0cee17e7b2cc36b4f9a3e4d9 0.21
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 10.91
0xffdc7a0df1d4cb2a42b6d5e8bd8567b4c8b4fa98 0.41
0xd11502cad5c19d402de3abbb2522f80d24e776f8 19.61
0xa1ef34a8bd68f2eb67400ca61fccac60b4595c83 0.21
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 1.11
0xfc0dfec8760427695f0781bce998270749d7421d 5.61
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 4.21
0x61bcdcb1291a829cc6a83110363021e396023d34 24.11
0x8db3010630c5787b6bcccc67154db5c4d0b6fe11 5.81
0x979c478054f2c67f7b7ae9617834eab5781a08a8 3.31
0xf221cce5e806879dabf0854cf975e9ce3d303be9 0.21
0xd3fa15628d0f1252f936db1e4bac6ee56cf9a42c 3.51
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100.21
0x56ef15a085437d9edcc7ba45a47f6c7a4024e1ca 1.01
0x73bfa66de8b8552a90c98d8ee9de9d06ff7b9dc3 0.61
0x88e21fdea4c514d127636c912df1c6c8f550ebc6 1.21
0xdd36a9dac72be69a435bd313b3297255c397db06 0.21
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 151.11
0xfc01f185b82c7cbadeec232399d38af589aef6c8 9.61
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 60.01
0xb84c573f9d5492606727e54cd3f356a53b7a9262 0.61
0x24ff3f6abaae1a28ccb62a14b61fd0005e20e5b0 0.71
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 0.11
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 1.41
0x9816f54829bcf438dee60d1cbb9c302dbe297372 0.51
0x1444eedada030a0d04ba31f57955cde5047f3143 0.11
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 10.61
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100.01
0x5ab289a236d4a1a316c332a20a26a49a41404d27 0.41
0x9b9002f05c790e4f2d41588b8061b4e13ca4038e 0.51
0x693da45ed9333e323ed5804d306e8e64fcac2589 2.31
0x2be2479f3d34c572971176de85426db471f977b2 49.81
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 102.11
0x46b399d3685bd5b0dadb613ed363469ffc985687 100.01
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 8.51
0xd11502cad5c19d402de3abbb2522f80d24e776f8 10.81
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 4.11
0xfc0dfec8760427695f0781bce998270749d7421d 2.51
0x840287c028cb2e6291d8af50bc6da83fd23a6e66 2.51
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 4.01
0x61bcdcb1291a829cc6a83110363021e396023d34 24.01
0x8db3010630c5787b6bcccc67154db5c4d0b6fe11 1.61
0x979c478054f2c67f7b7ae9617834eab5781a08a8 1.81
0xd3fa15628d0f1252f936db1e4bac6ee56cf9a42c 1.21
0x7517ea71494c603188fd98e41e2c79c41d78cadd 101.31
0xf9099e77acee804499a69d251db17d5a7ccb5f91 2.91
0x7081917c78e1c95a40dcb12466e515fb48855a96 8.11
0x73bfa66de8b8552a90c98d8ee9de9d06ff7b9dc3 0.11
0x09af0c5471bd67dbd0b06ee9c015688226a55179 0.11
0x88e21fdea4c514d127636c912df1c6c8f550ebc6 0.21
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 121.41
0xfc01f185b82c7cbadeec232399d38af589aef6c8 2.61
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 44.01
0x63d9db8f01371a4114d524b116a71adbb60e28bf 0.51
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 0.11
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 0.21
0x9816f54829bcf438dee60d1cbb9c302dbe297372 0.11
0x34b4888c2812277d73ccfe5c83864aa6daa00990 1.41
0xe495b65fc8b77acde87daff462befefc4e2190a2 0.41
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 8.31
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100.01
0x5ab289a236d4a1a316c332a20a26a49a41404d27 0.41
0x693da45ed9333e323ed5804d306e8e64fcac2589 4.11
0x2be2479f3d34c572971176de85426db471f977b2 42.21
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 101.21
0x46b399d3685bd5b0dadb613ed363469ffc985687 100.01
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 7.1
0xd11502cad5c19d402de3abbb2522f80d24e776f8 15.1
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 1
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 4
0x61bcdcb1291a829cc6a83110363021e396023d34 12
0x8aac90d7d40b330ecc755453d043acc6f1107b23 1.4
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100
0x9ea7e42ba1b0d6b348049c5b2d9918987ecd8387 0.6
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 84
0xfc01f185b82c7cbadeec232399d38af589aef6c8 2.2
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 40
0xcdc7adffecfeacf9d0087918684f1fc8f11222db 0.1
0x59800bd2cab56e44f9cc826b7ec4ea26dbae1c9a 9
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 7
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100
0x5ab289a236d4a1a316c332a20a26a49a41404d27 0.2
0x332dcc7e03dd6f1bd136c798a263ab41c9152bb2 0.1
0x2be2479f3d34c572971176de85426db471f977b2 42.91
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 100.3
0x46b399d3685bd5b0dadb613ed363469ffc985687 100.3
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 6
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 4
0xbcb83683cd6f306871aec0c9da9577a1094fef28 0.3
0x979c478054f2c67f7b7ae9617834eab5781a08a8 0.2
0x9d8c6af07253d6e39570da6004ce8967ead8ee68 0.2
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100
0x9ea7e42ba1b0d6b348049c5b2d9918987ecd8387 0.8
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 74
0xfc01f185b82c7cbadeec232399d38af589aef6c8 2
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 30
0x24ff3f6abaae1a28ccb62a14b61fd0005e20e5b0 0.1
0x63d9db8f01371a4114d524b116a71adbb60e28bf 0.1
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 5
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100
0x5ab289a236d4a1a316c332a20a26a49a41404d27 0.1
0x2be2479f3d34c572971176de85426db471f977b2 37.1
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 100.2
0x46b399d3685bd5b0dadb613ed363469ffc985687 100
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 8.31
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 5.01
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 3.01
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100.01
0x9ea7e42ba1b0d6b348049c5b2d9918987ecd8387 0.11
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 160.01
0xfc01f185b82c7cbadeec232399d38af589aef6c8 4.41
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 30.01
0xaffeaaa3144341842fef43341ae6d6a9ec5e5262 0.11
0x1fccb21f06d44d1c192ffec8e84010d2f721d826 0.31
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 9.31
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100.01
0x5ab289a236d4a1a316c332a20a26a49a41404d27 0.31
0x2be2479f3d34c572971176de85426db471f977b2 30.01
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 100.01
0x46b399d3685bd5b0dadb613ed363469ffc985687 100.01
0xbec9cd9bd7c4b2616057dfb55a40d8b4af271f7a 0.41
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 2.01
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 2.01
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100.01
0x9ea7e42ba1b0d6b348049c5b2d9918987ecd8387 0.11
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 104.01
0xfc01f185b82c7cbadeec232399d38af589aef6c8 0.61
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100.01
0x5ab289a236d4a1a316c332a20a26a49a41404d27 0.11
0x2be2479f3d34c572971176de85426db471f977b2 12.01
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 100.01
0x46b399d3685bd5b0dadb613ed363469ffc985687 100.01
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 9.1
0xd11502cad5c19d402de3abbb2522f80d24e776f8 3
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 4
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 2
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 141
0xfc01f185b82c7cbadeec232399d38af589aef6c8 0.2
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 24.8
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 9
0xc4dedabe3b41774538345d120f3f813288d194a9 0.3
0x2be2479f3d34c572971176de85426db471f977b2 12.1
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 100
0x46b399d3685bd5b0dadb613ed363469ffc985687 115
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 49.31
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 3.01
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 2.01
0x979c478054f2c67f7b7ae9617834eab5781a08a8 0.21
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100.01
0xdd36a9dac72be69a435bd313b3297255c397db06 0.81
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 92.01
0xfc01f185b82c7cbadeec232399d38af589aef6c8 1.41
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 50.01
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 7.01
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100.01
0x2be2479f3d34c572971176de85426db471f977b2 18.01
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 100.21
0x46b399d3685bd5b0dadb613ed363469ffc985687 112.01
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 6
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 2
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 1
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100
0x9ea7e42ba1b0d6b348049c5b2d9918987ecd8387 1.4
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 40
0xfc01f185b82c7cbadeec232399d38af589aef6c8 0.6
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 149.1
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 6
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 100
0x46b399d3685bd5b0dadb613ed363469ffc985687 100
0x78b3553c2f47270c6f779191ab22383226caf644 3.2
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 6.01
0xd11502cad5c19d402de3abbb2522f80d24e776f8 3.01
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 1.01
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 2.01
0x61bcdcb1291a829cc6a83110363021e396023d34 12.21
0xb3dc365da28b92cdcce78b7b38fc7d43e41d080a 1.01
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100.01
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 58.01
0xfc01f185b82c7cbadeec232399d38af589aef6c8 0.61
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 46.01
0x1e835d298de517bf92412d5fa49689015f072420 0.21
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 5.01
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100.01
0x668560df6f9c0a1e828fd9cfc444ddcedc971aa9 0.11
0x2be2479f3d34c572971176de85426db471f977b2 6.01
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 100.01
0x46b399d3685bd5b0dadb613ed363469ffc985687 100.01
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 1.01
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 1.01
0x61bcdcb1291a829cc6a83110363021e396023d34 24.01
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100.01
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 56.01
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 44.11
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100.01
0x6a1e0e4bca95d10cb40c11f3d46e0eef82dd2a14 0.51
0x2be2479f3d34c572971176de85426db471f977b2 6.01
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 100.01
0x46b399d3685bd5b0dadb613ed363469ffc985687 100.01
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 6.01
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 1.01
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 3.01
0xf439a1106be498ed35fb030e456a0ad5509399d9 0.11
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100.01
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 40.01
0xfc01f185b82c7cbadeec232399d38af589aef6c8 0.61
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 40.01
0x4cec0307afde90a0ced01708cc3607cdd9d1a509 1.31
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 6.01
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100.01
0xbd4b42be436ca6933d5cbd0d433dd49417b2b65c 0.21
0x2be2479f3d34c572971176de85426db471f977b2 12.01
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 100.01
0x46b399d3685bd5b0dadb613ed363469ffc985687 100.01
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 8.01
0xd11502cad5c19d402de3abbb2522f80d24e776f8 3.01
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 1.01
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 2.01
0xdf71065674b0db4ae315b756decf46738e33a81a 0.51
0x08797f7bef40b1f373175d3d5ce5ebb4b1313968 0.11
0x641a4970e5546aeb37b3eb066f2d973dfb5d73ae 0.71
0xd7784ac9509170da04443c07896fc558a80879f4 0.11
0x7517ea71494c603188fd98e41e2c79c41d78cadd 100.01
0xf3d9b1a3a30e432e2a1c5559a903fa3439f68593 0.11
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 50.01
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 70.01
0x24ff3f6abaae1a28ccb62a14b61fd0005e20e5b0 0.11
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 8.01
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 100.01
0x45685f7f2298d934a8561c379e1600f25bddadb7 0.11
0xddb22372dd5a7ec17b5b3504e607cd6f5bd691bd 100.01
0x2be2479f3d34c572971176de85426db471f977b2 12.01
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 100.01
0x1f837b80831bf5dd6491462a38e4c56bc4b2af21 0.11
0x46b399d3685bd5b0dadb613ed363469ffc985687 121.51

15323
initdatas/cec_ingame.txt Normal file

File diff suppressed because it is too large Load Diff

107
initdatas/cec_loyalty.txt Normal file
View File

@ -0,0 +1,107 @@
0xDC6F942CCB8d20D135871eb6FB345A34991E5D47 273619.1089
0xf14B02Ce886553b754aE77abff882Dc468f82B28 124372.3222
0xcD64bB95EE1b3A95586836D636849b71B871732b 99497.8578
0x9FB23A9d484EE7AB3e5Ec864DA290E72B79716Fe 49748.9289
0x931bd858fd7BC2960F51a42489B84805881036cF 49748.9289
0x8436641D7C21540562E57ABaD156963E5291E22B 49748.9289
0x91af1d9a7d4041eba4e5cf6f4c792b1b6db6ec3b 41457.44075
0x326e77B0fEE5411f21BF5064d06B793182519720 8291.48815
0x82b7a1e57AEC7e14801b3CecBbE38fc2335Ec16C 16582.9763
0x53c8b1b74d31f3dc908c591fe3e491c740d67c13 16582.9763
0x4442B1f594e6CF47FaD51C5eCb3D977F6EC7A66d 16582.9763
0x1d7cc86C28A75BB8D4F7a994A9F7775FAaAB1740 16582.9763
0x1D074d446DC3C8F83390F36cab81528611CA353A 16582.9763
0x19747e0527d3f7b8BD3aa7B147d4A61435D08824 8365.934733
0x08edc50e8ab47649c216f5d16088708f66411541 8330.572606
0xD077BB17d13247Be1227d4095fd7D790Bc714132 8291.48815
0x4Db49D1ebAa49270f252B7343caCE7b95E6578d3 8291.48815
0xa2f0D3582F4dbCEdD0977856C528eab985d92afb 8291.48815
0xFfbFEc64e1CF52a089a971da456EB904103206c9 8291.48815
0x110177710aD083ecfda2e73Ae4ca6925dD6e9495 8291.48815
0x86920e21aB0C18832369C2E09e93B27c4a5A1750 8291.48815
0x9fae7ff188aaf70bdc9f0567cf1524df260dc8ee 8291.48815
0x4093455e238eadeafb2da0b69b2ed61234cc8239 8291.48815
0x2D750F37415EA2Cd039b8e0b20E37671E742B05F 8291.48815
0x90D4a8E0254Ff8665E2311578a7355d5E3c10458 8291.48815
0x8210A401239F580280Ebf85082278E2266af8B2D 8291.48815
0xe19985C2F123641F9C6D8bB6E8ee5B1949959827 8291.48815
0x4259EFBDe098E67CB45a8e23FF8f9A4b155d6100 8291.48815
0xd039B418180875F2cD413764349462b68C1C6460 8291.48815
0xd32baa0AE934520495f9134c3Fd8A172989DC0b8 8291.48815
0xc196Eb8d5a08fb6CE0297b2748e18137F2B431FC 8291.48815
0xBfE1d5893Ddbb0B04e52AFDBDb18842f42D733cB 8291.48815
0x39aF18442470F2F6fd670D23466a02752EF55142 8291.48815
0xA045BB2c43bfb1D4286E88CA60355e7A0D9746cB 8291.48815
0x1aA666D676Fde62ae9477c75e7F501f214D1849c 8291.48815
0x66da213025fd3c313A10184C97cAb4f44E4e75b6 8291.48815
0x2D7CF39E1f50eFc84334aE7d5044dBC6c6241798 8291.48815
0xc9F51c54a7C3d26d62a8ac3a7C6BffDd5A6a9e53 8291.48815
0xad47a5f98174cbea6934e8676d54bd36ae07d225 8291.48815
0x0Decb04d7f0685d196BEb845a62356ff2C4098fd 8291.48815
0xc48fa5BbC4a0C9B33a1265F68BFeB926ef907b50 8291.48815
0xCDCd15Ca484b528aE128ba0B4C06f0d0926a5Dd3 8291.48815
0x4764E2D1f34406CBfCBB91759103db97d8327E36 8291.48815
0x210b8b648220a4C7e1bbE508C7B9723E2eCdec24 8291.48815
0x15929d5e816D23a3ff8B447FE57b28cC524C1dD1 8291.48815
0x110A929Df2C3243046C562BF9D2988a340EBc584 8291.48815
0x44655092BEBaBdf0d3e3B4f90F7f94aFec904E72 8291.48815
0x32c0a4c8Cb0d937c5E2F188a752ec2f591627b39 8291.48815
0xb35D77527e9887F8343D7F44167A74CA06008C49 8291.48815
0x0b3be3ee356ce386592f6a944ce9dfc81d8081f8 8291.48815
0x6BBfA2a1Faa657f95282673437B005D1838049Ba 8291.48815
0x99f5dFaFb3BCD5bBcffCE553E6a35Fe5E1b08ACa 8291.48815
0x299b54926ea6e99f0c82a2259749eea19e76c283 8291.48815
0xeb0939D7a8555106c187a17C9cFA8409d8Cc2cb8 8291.48815
0xbcc93F97E3bBE689CaEb5d935FD85879E2a09Aad 8291.48815
0x6c433968265b57E74584309b2364AF6d6b394CA0 8291.48815
0xaf4E4C99078Be26Db80f3Bcd08DCA89438024f4F 8291.48815
0x4133DFC1532e6E666D37099e73bE00C4934e88C6 8291.48815
0xAFf81e3f863d19F1D2EcEa1e54f4e988131A6122 8291.48815
0x96C3A3795666D2e3909AA360dD2c4E6beD63Dbd7 8291.48815
0x1157261d71359053ba4373404375b5D7DE0dcbac 8291.48815
0xDfe9C04c39A0B21929E71b43757bE91AC36b0243 8291.48815
0xC4A65629636ee4a1A31Ce55CC32B6b1A429cA156 8291.48815
0x422dfBB161b364B21A33Cf04d1251168c49B0603 8291.48815
0x3c4aa4530B1351bad6ca196f418FBFCE628eC6b8 8291.48815
0xC3a1717Bde32c99202f56dbd0865e5f9EBb09482 8291.48815
0x1487f1b080a2c726b24529676ad8ad3e5dac8eb0 8291.48815
0x481f99f02133e2e0d85f6f6248f2ad127d359659 8291.48815
0xBb673508a9A784FB316042F57502b3D442fa3ba6 8257.987188
0x0722CAB71aAdEd9eD36885C81828870f0534FcFC 8217.041567
0x1941b936657408253F5C5Dec9c7f5bbf84c760cD 8217.041567
0xd41797b1336E6CfA9632F347a628ACF10f22E7bD 8217.041567
0x3EA06201F8F7dc29BA776E6Ffcdf1eF77528e8B2 8217.041567
0x90f99FeA4275Ceddb169C631b5bfF96781CC8dCC 8217.041567
0x22dcB6342Ef319A4d8B92B19fb280A0983940c7b 8217.041567
0x17075C6717579318d2fafEA354A23C59f31AA5c6 8217.041567
0x46f9cdA8E931af33390c5E66dB89A42D39F91007 8217.041567
0x344Ad6781370Af1d1A21A81b1016Ce278bB24EA9 8217.041567
0x44239DB3d29828d05227b02c2e5B23a5C6919e44 8217.041567
0x09dbE191065884cF36C18bfa5A9Fde973edC86E3 8217.041567
0x90cdBA3a888e170a5b7Fef40F525991205Edfde9 8217.041567
0x5c2260103bA960D23603a7b824c80a24EAe159b9 8217.041567
0x099AF32b55a6f050f5852d2034CeC92172f3f5BA 8217.041567
0x389B1930726972734b576965Cd305877840Cc33C 8217.041567
0xB0481E4d9513924D3EeF075781794ea81b14e0F7 8217.041567
0xaB8f80824Fc189026cb887F22f3cd53777a374dF 8217.041567
0x0711CE8fc0a94093EB3aD4bB422FbC26837C6399 8217.041567
0x3Fb26FDC65754fDEb3Af6D5E9bb3d2dE8154A988 8217.041567
0x701023a62871aD80AED12270Ad5F0296CBfe8e88 8217.041567
0xF1092fffDF736fCE2881E16A57c3c68AC8e745d0 8196.568757
0x8B6b7C70Aa678E0f93808be74dC4b64bF3950E87 8068.148402
0xc6E7A4b569D4FFA6d4A5988bB2129AaE9067AcFB 8068.148402
0x62F6Bf824AA091266C92dCe575Bb2e6De6d23984 8068.148402
0x92CC6bb9e1b0102673aD28c5D4d05Eb4F4aE0bF2 8068.148402
0x7B60E46EBA142B7E95E967C1E34CfB862385eE53 8068.148402
0x2881fDf7e15D3664BeDCFb79B4775A89ED7Fc122 8068.148402
0x381921Bb1C940eAEcF2bC40a6DAb81f970343299 7398.129157
0xc5c6f9f0ea697c4727190da140bb776adae026b9 5313.624841
0xa9F015A4dc944Fa0A6F31E8517eCa861A4d43786 4420.265849
0xACa7ca703bEB966a7E2abF8C17262509dA513e78 4345.819266
0x05aDF3093237D32d5cfB0a2F7C013197AE070545 3899.13977
0xf2aAC76a8DC431201bF61528d99a30cFD37217dD 3601.353439
0x88b7b36E038d4C2015D2C4419613D4ac093356E5 3378.013691
0x04e7D38BABa79759eF6F0C06769721d0e5f96152 2559.101281
0xd8e1C7E0A9DFF7cDeD0303AF9252ec8f32dD51CF 234.5067356
0x17d36852625Cd08BB7a538c17f498205cB8db537 61.41843074
0x81683aF10aa7eE91F8dF570726F55fD00D2915bE 39.08445593

View File

@ -0,0 +1,228 @@
0x9b9002f05c790e4f2d41588b8061b4e13ca4038e 2400
0x1f185b31f10a2738e909b5b985fefb8057c8e7c3 1920
0xf9099e77acee804499a69d251db17d5a7ccb5f91 1440
0xfc0dfec8760427695f0781bce998270749d7421d 1296
0x120f4714e046e3a5eb0a4d4ab8a335b2355afe58 1209.6
0x840287c028cb2e6291d8af50bc6da83fd23a6e66 1123.2
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 1036.8
0xf9c10d1c9fa8ea6506e2cba25c5760ea5f29c335 950.4
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 864
0xfcaae6baaaf8b9d2629dfc6f0949eff8105eb25f 777.6
0x34b4888c2812277d73ccfe5c83864aa6daa00990 699.9
0x2be2479f3d34c572971176de85426db471f977b2 692.7
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 685.5
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 678.3
0x0fd75f382f8b2baa56c07d0bd96593117092968b 671.25
0x693da45ed9333e323ed5804d306e8e64fcac2589 664.05
0x979c478054f2c67f7b7ae9617834eab5781a08a8 656.85
0xe9cc48944e388f78f2ed6f1d150de0071acae589 649.65
0x8aac90d7d40b330ecc755453d043acc6f1107b23 642.45
0x5d86cbf8025151b455bf5aa703f3fae3ccc9c9e0 635.25
0xdd36a9dac72be69a435bd313b3297255c397db06 628.05
0x4cec0307afde90a0ced01708cc3607cdd9d1a509 620.85
0xc4025544d3edbaa30ed3df99a5d31863174f1ca3 613.8
0x14af23b3ee40fa62bfec154497de627e6944a329 599.4
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 592.2
0x30246a4812efe43c10a20239ee68fbec906dc76f 585
0xa58170e65da4cd52031c5f3749e9e01aacae1a9f 577.8
0x1444eedada030a0d04ba31f57955cde5047f3143 570.6
0x02d9b83c6e8e3201da66a68bc79fb64c967b567d 563.4
0xd3fa15628d0f1252f936db1e4bac6ee56cf9a42c 556.35
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 549.15
0xb84c573f9d5492606727e54cd3f356a53b7a9262 541.95
0x9eed42c6de0fd3fd7b3658f3d7e8a15b71097858 534.75
0x73bfa66de8b8552a90c98d8ee9de9d06ff7b9dc3 527.55
0x005a57f64021a77579e4d849b8a8ba73216bbc33 520.35
0xdcb2582a3600278120304370ac9f984dbc644042 505.95
0xba01de8a7b159ab2540387ea74d2848f573a505f 498.9
0xbf02ff94463781e0abf531cd2aefb693983e0d1c 491.7
0x42bae70c96a0dcf8f60552e264d3f95a98e4146d 462.9
0x99140e55d06b876cff40bb76aff4449c4a57f6b2 455.7
0xabdc66cf9962b1d09cccc4f1fe6914130c700ffd 448.5
0x5db3c7c7aefa8de582389848f3fb6aabea227327 441.45
0x2651a3b93bbbce8b8fbb6498491999d356e7e37d 434.25
0x869525b75d620c2f021494224810129677bcdfe5 427.05
0x34487ff5c9e5604d0b148a299900c9035866c3b4 419.85
0x3206d9149de31becf4a3322688f662c0733300d3 377.85
0xce8d26ce3df69f45b9622801b0cc6c58185e1010 374.7
0x8eed9ec5c985a941a4cee1ea75a8b22fa7fa9d4c 371.7
0xb033c0b72a841a4c37b891297d047c4e3aa70b44 368.55
0x8856e1dc49d0e4f7738110fd842db4f7da12082b 365.55
0xd5a5b5d34af2d8a746e8e2e620a249916ef9502e 359.4
0x094d1327e6436ea82f5d0ec528045898aabc2070 356.25
0xa722de3e53ec2ef40a4109ef877f24a0c70cdcee 353.25
0xe495b65fc8b77acde87daff462befefc4e2190a2 350.1
0xf7b546da5e887d0e71181c7b586d1f4cd9df8510 346.95
0xbea67e7dc06e511e098798943bc9826050ee49c6 343.95
0xa33ef89a67d94b47b14ee09289815f160d3cc48c 340.8
0x6a1e0e4bca95d10cb40c11f3d46e0eef82dd2a14 337.8
0x57b2c8f1f3c4ef58a253631763cddbcf4986d980 334.65
0x3c7588fb5e4423b6a37d575d6c3db37d1bb050e4 331.65
0x8b4208466313fb59f37d80285813961071865fa0 328.5
0xd11502cad5c19d402de3abbb2522f80d24e776f8 325.5
0x85f46b537e7832f3b3b0cd0a2eeb7b2ad24d54a4 322.35
0x5aaec65f5579dce713c56e1395d599bf9a7f4f8f 319.35
0x1e835d298de517bf92412d5fa49689015f072420 316.2
0x3d01cc5ad3756edc21f6feb6b4964d3a944cbc01 313.05
0x2a05af114fcb3dbef1f7d243d8669d249bb98cb3 310.05
0x36b277bca24f246315f4e7d667dc268dc9a128a3 306.9
0x4dd4bc1682de7ac08030776b1bd8848517f3b277 303.9
0x9816f54829bcf438dee60d1cbb9c302dbe297372 300.75
0x641a4970e5546aeb37b3eb066f2d973dfb5d73ae 297.75
0xacc627182f38f8446116eeadcb215201b9f931e9 294.6
0x56ef15a085437d9edcc7ba45a47f6c7a4024e1ca 291.6
0x0213e3027a8428c5fe4bd04a7d898a609f31bad8 288.45
0x6ff18232b737eec4ee2e3ec7900b3dcd5f19131b 285.3
0xb8d8092eecf3b447325bcfa742f4e6a7de4e3dcb 282.3
0x0f001e1ea9c6159d0cee17e7b2cc36b4f9a3e4d9 279.15
0xc74ff714c501048d3c3942763c3414bfb4e34749 276.15
0xaffeaaa3144341842fef43341ae6d6a9ec5e5262 270
0x31797ed25af992f0621759406d18422fe9b63642 266.85
0x9e5a83e6f6bc2014dc24da7e9c98209292a21c5e 263.85
0x28176e3639a5bf78700457f4e730b5c213e100a2 260.7
0x47417ed159e4323880f35cb2cdf4acba13763472 257.7
0x22b5aac417d3a70e4b098dfa3228b00dccfe22a4 254.55
0xad2f05853738523740611cc86cd2756e6efc6acd 251.4
0xeb99fb51ebd4ebb458f74b91d0249e9847cfce31 245.25
0x7517ea71494c603188fd98e41e2c79c41d78cadd 242.25
0x8418259e62817a002486961a9b97001d88388433 239.1
0xfbcec8edd831a4dc8509c5521627bea62701059c 236.1
0xac2667954db550a527a0df6125d429a2eb99381c 232.95
0x4cfeeb7f150954f35e1009eac1dd3031072cd858 229.95
0x59fc8f99bb40c189e87d7a616f11216c67063a20 226.8
0x81e92a2ee60081d56e94150aa74b67f4c248927e 204
0xb3dc365da28b92cdcce78b7b38fc7d43e41d080a 203.85
0x4ae066c0575636d81cb5e073ccb9a255103c6aee 203.55
0x8321125307bba53dcff116afd57c0ecc71930b60 203.4
0xdf71065674b0db4ae315b756decf46738e33a81a 203.25
0x95e3eb8c7d19f4026f902eac3c0afd219a86fc45 202.95
0xc4599ec25eb0ffef2fdd40f947fd54eebcc0b0eb 202.35
0x59f24f15ab4c4900d82321845ef2922ea30d31bf 202.2
0xfcbd5b54575246460bd97c1d4bfb71629432a81f 201.9
0xda29c773690bc667971945ec07b4d767bf05ee22 201.75
0x7e7e098ee07132bc86543ebc88e0883cabcbaa71 201.6
0x991894f833d80208aa283918d60d2326597831ec 201.3
0x9a638a02c704903c32540928ae4c7f06bcadc700 201.15
0x77f3360c1632fcea429b174dc35d44881ea373ee 201
0x9b9002f05c790e4f2d41588b8061b4e13ca4038e 2400
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 1920
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 1440
0xfc0dfec8760427695f0781bce998270749d7421d 1296
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 1209.6
0x2be2479f3d34c572971176de85426db471f977b2 1123.2
0x99140e55d06b876cff40bb76aff4449c4a57f6b2 1036.8
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 950.4
0xd3fa15628d0f1252f936db1e4bac6ee56cf9a42c 864
0xce8d26ce3df69f45b9622801b0cc6c58185e1010 777.6
0x1f185b31f10a2738e909b5b985fefb8057c8e7c3 699.9
0x979c478054f2c67f7b7ae9617834eab5781a08a8 685.5
0xfc01f185b82c7cbadeec232399d38af589aef6c8 678.3
0xb84c573f9d5492606727e54cd3f356a53b7a9262 671.25
0x46b399d3685bd5b0dadb613ed363469ffc985687 664.05
0x8db3010630c5787b6bcccc67154db5c4d0b6fe11 656.85
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 649.65
0xf9099e77acee804499a69d251db17d5a7ccb5f91 642.45
0x693da45ed9333e323ed5804d306e8e64fcac2589 635.25
0x37c3187dc8426f74771998971140d9d45af4c9f6 628.05
0x9eed42c6de0fd3fd7b3658f3d7e8a15b71097858 620.85
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 613.8
0x840287c028cb2e6291d8af50bc6da83fd23a6e66 606.6
0x0fd75f382f8b2baa56c07d0bd96593117092968b 599.4
0x4b640bcbc2d3b906bd4a9812a3d5e2d9542f8562 592.2
0x5d86cbf8025151b455bf5aa703f3fae3ccc9c9e0 585
0xdd36a9dac72be69a435bd313b3297255c397db06 577.8
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 570.6
0x8eed9ec5c985a941a4cee1ea75a8b22fa7fa9d4c 563.4
0x8fd0c4e72bebd45badea20377b68ba644191d388 556.35
0xf1a90c9152f407989c62c75e35ff4e3bb565bb4f 549.15
0x094d1327e6436ea82f5d0ec528045898aabc2070 541.95
0x73bfa66de8b8552a90c98d8ee9de9d06ff7b9dc3 534.75
0x581501981a31468831e8c3cf841e486c2f6817f9 527.55
0xe9cc48944e388f78f2ed6f1d150de0071acae589 520.35
0x1444eedada030a0d04ba31f57955cde5047f3143 513.15
0x38b114b58cbdcb480c4758754849a3472f38b58b 505.95
0x4690e3331cd955c80818351c4b00c4e67e2426e8 498.9
0xcc676b6c10c7eda88eb6026b568f4994a6809753 491.7
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 484.5
0x5a7ff715af4a22316f529599947728e4e727e1b1 477.3
0xfcbd5b54575246460bd97c1d4bfb71629432a81f 470.1
0x9816f54829bcf438dee60d1cbb9c302dbe297372 462.9
0x473bb7b62474c9e63c0c6db8de8bd8608d4ac21a 455.7
0xe495b65fc8b77acde87daff462befefc4e2190a2 448.5
0xfcaae6baaaf8b9d2629dfc6f0949eff8105eb25f 441.45
0x88e21fdea4c514d127636c912df1c6c8f550ebc6 434.25
0x6876faaf4702a647e7952b9dc7bd96915101cb49 427.05
0xac2667954db550a527a0df6125d429a2eb99381c 419.85
0x30246a4812efe43c10a20239ee68fbec906dc76f 377.85
0xba01de8a7b159ab2540387ea74d2848f573a505f 374.7
0xd11502cad5c19d402de3abbb2522f80d24e776f8 371.7
0x09c94a99b0e399500701bb0cbb1b6ca000766694 368.55
0xc3fd3974f5b3ba7da3378f3c4f610d6aa0598c04 365.55
0x56ef15a085437d9edcc7ba45a47f6c7a4024e1ca 362.4
0xbffa7f626d2a9a307ebae55ac65d1e43cc3ab843 359.4
0xeb99fb51ebd4ebb458f74b91d0249e9847cfce31 356.25
0x4fb8cc3a435f6ff19d068633749d7bc4ee31a08f 353.25
0x1e0d71b507c2cad9e32b2b9ff94badd57fd84a73 350.1
0xce97dec58280e7d899adcb3458353b6beb8136ad 346.95
0x7517ea71494c603188fd98e41e2c79c41d78cadd 343.95
0x34487ff5c9e5604d0b148a299900c9035866c3b4 340.8
0xbd6f787028b9dab2528eef1acb09ac66e9373e9c 337.8
0x6708459af55abb840e5164294a05bd92ff417916 334.65
0x8aac90d7d40b330ecc755453d043acc6f1107b23 331.65
0xb033c0b72a841a4c37b891297d047c4e3aa70b44 328.5
0x22b5aac417d3a70e4b098dfa3228b00dccfe22a4 325.5
0xc74ff714c501048d3c3942763c3414bfb4e34749 322.35
0xb8d8092eecf3b447325bcfa742f4e6a7de4e3dcb 319.35
0xb3dc365da28b92cdcce78b7b38fc7d43e41d080a 316.2
0x0f001e1ea9c6159d0cee17e7b2cc36b4f9a3e4d9 313.05
0xb57e02c584866ae580b01be478bb6dc088262438 310.05
0x2a05af114fcb3dbef1f7d243d8669d249bb98cb3 306.9
0xa33ef89a67d94b47b14ee09289815f160d3cc48c 303.9
0x7aed777a9ca9f86025f324c0d99c3d3b7e0c7d75 300.75
0xd5a5b5d34af2d8a746e8e2e620a249916ef9502e 297.75
0x8418259e62817a002486961a9b97001d88388433 294.6
0x869525b75d620c2f021494224810129677bcdfe5 291.6
0x120f4714e046e3a5eb0a4d4ab8a335b2355afe58 288.45
0x81e92a2ee60081d56e94150aa74b67f4c248927e 285.3
0x02d9b83c6e8e3201da66a68bc79fb64c967b567d 282.3
0x44c34f8829de40d908f83e918a98da7c7e2b9902 279.15
0x14af23b3ee40fa62bfec154497de627e6944a329 276.15
0x2be2479f3d34c572971176de85426db471f977b2 2400
0xd3fa15628d0f1252f936db1e4bac6ee56cf9a42c 1920
0x8db3010630c5787b6bcccc67154db5c4d0b6fe11 1440
0xfc0dfec8760427695f0781bce998270749d7421d 1296
0x693da45ed9333e323ed5804d306e8e64fcac2589 1209.6
0x979c478054f2c67f7b7ae9617834eab5781a08a8 1123.2
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 1036.8
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 950.4
0xfc01f185b82c7cbadeec232399d38af589aef6c8 864
0x99140e55d06b876cff40bb76aff4449c4a57f6b2 777.6
0x37c3187dc8426f74771998971140d9d45af4c9f6 699.9
0xd11502cad5c19d402de3abbb2522f80d24e776f8 692.7
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 685.5
0x9816f54829bcf438dee60d1cbb9c302dbe297372 678.3
0xb84c573f9d5492606727e54cd3f356a53b7a9262 671.25
0x82a3fb171702cef61af04e674994e7a50274878c 664.05
0x9b9002f05c790e4f2d41588b8061b4e13ca4038e 656.85
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 649.65
0xce8d26ce3df69f45b9622801b0cc6c58185e1010 642.45
0x88e21fdea4c514d127636c912df1c6c8f550ebc6 635.25
0xdd469a8b4b1a4644e1f639f9bdf98af4b7e7d848 628.05
0x7517ea71494c603188fd98e41e2c79c41d78cadd 620.85
0xdc2aa97c738a9d1c61f0e197f24d95d919645bcd 613.8
0xac2667954db550a527a0df6125d429a2eb99381c 606.6
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 599.4
0x1444eedada030a0d04ba31f57955cde5047f3143 592.2
0x46b399d3685bd5b0dadb613ed363469ffc985687 585
0xb033c0b72a841a4c37b891297d047c4e3aa70b44 577.8
0x9eed42c6de0fd3fd7b3658f3d7e8a15b71097858 570.6
0x0f001e1ea9c6159d0cee17e7b2cc36b4f9a3e4d9 563.4
0xfcbd5b54575246460bd97c1d4bfb71629432a81f 556.35
0xcc676b6c10c7eda88eb6026b568f4994a6809753 549.15
0xa33ef89a67d94b47b14ee09289815f160d3cc48c 541.95
0x73bfa66de8b8552a90c98d8ee9de9d06ff7b9dc3 534.75
0x8eed9ec5c985a941a4cee1ea75a8b22fa7fa9d4c 527.55
0xdd36a9dac72be69a435bd313b3297255c397db06 520.35
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 513.15
0x167219214ab246057a1fba4736ade849bc4e32c9 505.95
0xe495b65fc8b77acde87daff462befefc4e2190a2 498.9

23
initdatas/cec_stake.txt Normal file
View File

@ -0,0 +1,23 @@
0xbd2d6de4b70d370954b187c95dddfbd00f4129ff 167.5
0x4690e3331cd955c80818351c4b00c4e67e2426e8 16.25
0xa6a2ea9aef84ed0046e6cc692e2f448299c28e4d 7942.5
0x4115c6c5bf7d0a0e4ec6d2551761f14c85e697e1 1273.75
0x2be2479f3d34c572971176de85426db471f977b2 1562.5
0xd11502cad5c19d402de3abbb2522f80d24e776f8 662.5
0x0a94e04d29692e73f90761b0c5bc707bf4e1268d 1275
0x554bc33a5333ebad5ffaa85c8b47de6b959a096d 37.5
0x7081917c78e1c95a40dcb12466e515fb48855a96 700
0xf9df0b4468e48de0f1ab3dcb8ac1454e5b688a75 867.5
0xcf01c3bbd4f48150d0b0da90b4a5f6d128e1b451 867.5
0x23e0431482694a4b3da658e0340345954687b9f5 37.5
0xfcaae6baaaf8b9d2629dfc6f0949eff8105eb25f 281.25
0xa5a2439220cdda9a4c20938f46a3acebb49f0f1b 43643.75
0x7517ea71494c603188fd98e41e2c79c41d78cadd 3860
0xddb22372dd5a7ec17b5b3504e607cd6f5bd691bd 37528.541666667
0x7f0692f804c2687d8d17f3d1601236732a44969f 0
0x61bcdcb1291a829cc6a83110363021e396023d34 0
0x46b399d3685bd5b0dadb613ed363469ffc985687 9166.6666666667
0x59800bd2cab56e44f9cc826b7ec4ea26dbae1c9a 1030.2083333333
0x361ab17d2677692296c6773abccbdfe99984e2f0 12000
0x9ea7e42ba1b0d6b348049c5b2d9918987ecd8387 0
0xe9cc48944e388f78f2ed6f1d150de0071acae589 5

105735
initdatas/cec_uaw.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@ -30,6 +30,8 @@
"ingame": "ts-node -r tsconfig-paths/register src/fixIngame.ts",
"reward": "ts-node -r tsconfig-paths/register src/rewardSchedule.ts",
"testdraw": "ts-node -r tsconfig-paths/register src/testdraw.ts",
"importcec": "ts-node -r tsconfig-paths/register src/importCEC.ts",
"parsecec": "ts-node -r tsconfig-paths/register src/cecStatic.ts",
"test:watch": "jest --watch",
"test": "jest"
},
@ -47,6 +49,7 @@
"fastify": "^4.15.0",
"fastify-plugin": "^3.0.0",
"fastify-xml-body-parser": "^2.2.0",
"get-jwks": "^9.0.2",
"google-auth-library": "^9.9.0",
"ioredis": "^5.4.1",
"mongodb-extended-json": "^1.11.1",

View File

@ -157,6 +157,14 @@ export class ApiServer {
await new SyncLocker().unlock(req)
// @ts-ignore
if (!payload.errcode) {
// @ts-ignore
if (payload.direct) {
// @ts-ignore
delete payload.direct
// @ts-ignore
payload.errcode = 0
return payload
}
payload = {
errcode: 0,
data: payload,

254
src/cecStatic.ts Normal file
View File

@ -0,0 +1,254 @@
import { MongoClient } from 'mongodb'
import * as dotenv from 'dotenv'
let fs = require('fs')
import { ethers } from 'ethers'
import mongoose from 'mongoose'
const envFile = process.env.NODE_ENV && process.env.NODE_ENV === 'production' ? `.env.production` : '.env.development'
dotenv.config({ path: envFile })
console.log(process.env.DB_MAIN)
import { CECRecord } from './models/CECRecord'
import { CECRecordTotal } from './models/CECRecordTotal'
const dbMain = mongoose.createConnection(process.env.DB_MAIN)
const importCecEvent = async () => {
const clientEvent = await MongoClient.connect("mongodb://10.0.0.194/")
const dbEvent = clientEvent.db('web-chain-development')
let records = await dbEvent.collection('event_score').find({}).toArray()
for (let record of records) {
if (!record.address) {
continue
}
console.log('1', record.address, record.score, ethers.utils.parseUnits(record.score,"ether").toString())
let cecRecord = new CECRecordTotal({
address: record.address.toLowerCase(),
num: Number(record.score),
earnTime: 'before 2024',
desc: 'old game event'
})
cecRecord.amount = ethers.utils.parseUnits(record.score,"ether").toString()
await cecRecord.save()
}
}
const importUAW = async () => {
let records = await CECRecord.find({})
for (let record of records) {
let cecRecord = new CECRecordTotal({
address: record.address.toLowerCase(),
amount: record.amount.toString(),
num: Number(ethers.utils.formatEther( record.amount )),
earnTime: record.earnTime,
desc: record.desc
})
await cecRecord.save()
}
}
const importGachaEvent = async () => {
const clientEvent = await MongoClient.connect("mongodb://10.0.0.194/")
const dbEvent = clientEvent.db('web-chain-development')
let records = await dbEvent.collection('claim_score_list').find({}).toArray()
for (let record of records) {
let val = BigInt(record.cecBasicReal) + BigInt(record.cecRankReal)
let cecRecord = new CECRecordTotal({
address: record.address.toLowerCase(),
amount: val.toString(),
num: Number(ethers.utils.formatEther( val )),
earnTime: 'Nov 2023',
desc: 'Rase of Gacha '
})
await cecRecord.save()
}
}
const loadGameSeason = async () => {
console.time('load game test')
let datas = fs.readFileSync('initdatas/cec_season_rank.txt', 'utf-8').split('\n')
console.timeEnd('load game test')
console.time('insert game test')
let actionsUaw = []
const descUaw = 'game season rank'
const timeUaw = 'Jul 2023 - Jan 2024'
for (let data of datas) {
if (!data) {
continue
}
let [address, amount] = data.split(' ')
address = address.toLowerCase()
let amountBig = ethers.utils.parseEther(amount).toString()
actionsUaw.push({
insertOne: {
document: {
address,
amount: amountBig,
num: Number(amount),
desc: descUaw,
earnTime: timeUaw,
status: 1,
firstRate: 50,
createdAt: new Date(),
updatedAt: new Date(),
__v: 0.0,
},
},
})
}
await dbMain.collection('cec_record_total').bulkWrite(actionsUaw)
console.timeEnd('insert game test')
}
const loadStake = async () => {
console.time('load game test')
let datas = fs.readFileSync('initdatas/cec_stake.txt', 'utf-8').split('\n')
console.timeEnd('load game test')
console.time('insert game test')
let actionsUaw = []
const descUaw = 'Badge staking rewards'
const timeUaw = 'Aug 2023'
for (let data of datas) {
if (!data) {
continue
}
let [address, amount] = data.split(' ')
address = address.toLowerCase()
let amountBig = ethers.utils.parseEther(amount).toString()
actionsUaw.push({
insertOne: {
document: {
address,
amount: amountBig,
num: Number(amount),
desc: descUaw,
earnTime: timeUaw,
status: 1,
firstRate: 50,
createdAt: new Date(),
updatedAt: new Date(),
__v: 0.0,
},
},
})
}
await dbMain.collection('cec_record_total').bulkWrite(actionsUaw)
console.timeEnd('insert game test')
}
const loadHashRate = async () => {
console.time('load game test')
let datas = fs.readFileSync('initdatas/cec_hashrate.txt', 'utf-8').split('\n')
console.timeEnd('load game test')
console.time('insert game test')
let actionsUaw = []
const descUaw = 'hash rate rewards'
const timeUaw = 'Jul 2023 - Jan 2024'
for (let data of datas) {
if (!data) {
continue
}
let [address, amount] = data.split(' ')
address = address.toLowerCase()
let amountBig = ethers.utils.parseEther(amount).toString()
actionsUaw.push({
insertOne: {
document: {
address,
amount: amountBig,
num: Number(amount),
desc: descUaw,
earnTime: timeUaw,
status: 1,
firstRate: 50,
createdAt: new Date(),
updatedAt: new Date(),
__v: 0.0,
},
},
})
}
await dbMain.collection('cec_record_total').bulkWrite(actionsUaw)
console.timeEnd('insert game test')
}
const loadGacha = async () => {
console.time('load game test')
let datas = fs.readFileSync('initdatas/cec_gacha.txt', 'utf-8').split('\n')
console.timeEnd('load game test')
console.time('insert game test')
let actionsUaw = []
const descUaw = 'Gacha Journey'
const timeUaw = 'Nov 2023'
for (let data of datas) {
if (!data) {
continue
}
let [address, amount] = data.split(' ')
address = address.toLowerCase()
let amountBig = ethers.utils.parseEther(amount).toString()
actionsUaw.push({
insertOne: {
document: {
address,
amount: amountBig,
num: Number(amount),
desc: descUaw,
earnTime: timeUaw,
status: 1,
firstRate: 50,
createdAt: new Date(),
updatedAt: new Date(),
__v: 0.0,
},
},
})
}
await dbMain.collection('cec_record_total').bulkWrite(actionsUaw)
console.timeEnd('insert game test')
}
const exportRecords = async () => {
let records = await CECRecord.find({})
let results100 = []
let results500 = []
let map = new Map()
for (let record of records) {
let address = record.address.toLowerCase()
if (!map.has(address)) {
map.set(address, 0)
}
map.set(address, map.get(address) + parseFloat(ethers.utils.formatEther( record.amount )))
}
for (let [address, amount] of map) {
if (amount >=100) {
results100.push({ address, amount })
}
if (amount >= 500) {
results500.push({ address, amount })
}
}
console.log(results100.length)
console.log(results500.length)
// write results to file
// fs.writeFileSync('outdatas/results100.txt', JSON.stringify(results100))
// fs.writeFileSync('outdatas/results500.txt', JSON.stringify(results500))
}
;(async () => {
try {
// await importCecEvent();
// await importUAW()
// await loadGameSeason()
// await loadHashRate()
// await importGachaEvent()
await loadStake()
// await loadGacha()
// await exportRecords()
} catch (e) {
console.log(e)
}
process.exit(0)
})()

View File

@ -11,6 +11,10 @@ export const isValidShareCode = (str: string) => {
return reg.test(str)
}
export const isValidEthAddress = (str: string) => {
return /^0x[a-fA-F0-9]{40}$/.test(str)
}
export const isValidVoucherCode = (str: string) => {
let reg = new RegExp(`^[${BASE52_ALPHABET}]{12}$`)
return reg.test(str)

View File

@ -0,0 +1,193 @@
import { SyncLocker } from 'common/SyncLocker'
import { BitgetUser } from 'models/BiggetUser'
import { SiweMessage } from 'siwe'
import { ZError, BaseController, ROLE_ANON, role, router } from 'zutils'
import { checkParamsNeeded } from 'zutils/utils/net.util'
import logger from 'logger/logger'
import {
CodeRecord,
CodeStatus,
CodeType,
DEFAULT_CODE,
DEFAULT_EXPIRE_TIME,
isEmail,
isValiedCode,
} from 'models/CodeRecord'
import { DEFAULT_LOGIN_MAIL_HTML, DEFAULT_LOGIN_MAIL_SUBJECT, DEFAULT_VERIFY_MAIL_HTML, DEFAULT_VERIFY_MAIL_SUBJECT, EmailSvr } from 'services/email.svr'
import { generateWalletToken } from 'utils/jwt.utils'
import { checkReCaptcha } from 'services/google.svr'
const debug = process.env.IS_DEBUG === 'true'
export const checkNonce = (nonce: string) => {
if (!nonce) {
throw new ZError(11, 'Invalid nonce')
}
// use regex to check if nonce is 24 length hex string
if (nonce.length === 13) {
const timestamp = parseInt(nonce)
if (Date.now() - timestamp > 5 * 60 * 1000) {
throw new ZError(13, 'nonce expired')
}
} else {
if (!/^[0-9a-f]{24}$/.test(nonce)) {
throw new ZError(11, 'Invalid nonce.')
}
}
}
class BiggetController extends BaseController {
@role(ROLE_ANON)
@router('post /api/bigget/login')
async walletVerify(req, res) {
const { message, code } = req.params
checkParamsNeeded(code, message)
checkNonce(message.nonce)
const msgSign = new SiweMessage(message)
try {
await msgSign.verify({ signature: code, nonce: message.nonce })
} catch (e) {
throw new ZError(14, 'signature invalid')
}
let address = message.address
address = address.toLowerCase()
const user = await BitgetUser.insertOrUpdate({ address }, {})
const token = generateWalletToken({
id: user.id,
plat: 13,
openid: user.address,
email: user.email || '',
})
return { token }
}
@router('post /api/bigget/send_code')
async sendCode(req, res) {
await new SyncLocker().checkLock(req)
logger.db('send_mail_code', req)
await checkReCaptcha(req, 'send_mail_code')
let user = req.user
let { email, type } = req.params
type = type || CodeType.VERIFY
if (!email) {
throw new ZError(10, 'params mismatch')
}
if (!isEmail(email)) {
throw new ZError(11, 'Invalid email')
}
if (user.email) {
throw new ZError(12, 'already bind game account')
}
email = email.toLowerCase()
let userCheck = await BitgetUser.findOne({ email })
if (userCheck && userCheck.id !== user.id) {
throw new ZError(13, 'Email already binded to another account')
}
type = parseInt(type)
let record = await CodeRecord.findByEmail(user.id, email, type)
if (!record || record.user !== user.id) {
record = new CodeRecord({ email, type, code: DEFAULT_CODE, user: user.id })
await record.save()
}
let html: string, subject: string
switch (type) {
case CodeType.VERIFY:
html = DEFAULT_LOGIN_MAIL_HTML
subject = DEFAULT_LOGIN_MAIL_SUBJECT
}
if (!html || !subject) {
throw new ZError(15, 'type error')
}
subject = record.code + ' ' + subject
html = html.replace('{{ocde}}', record.code)
html = html.replace('{{time}}', new Date().format('yyyy-MM-dd hh:mm:ss'))
let msgData = {
to: email,
html,
subject,
}
setImmediate(async () => {
try {
let { errcode, errmsg, data } = await new EmailSvr().sendMail(msgData)
if (errcode) {
logger.info(`error send mail:: email: ${email}, type: ${type}, errcode: ${errcode}, errmsg: ${errmsg}`)
record.status = CodeStatus.FAIL
} else {
logger.info(`success send mail:: email: ${email}, type: ${type}, messageId: ${data.messageId}`)
record.mailSend = true
record.emailId = data.messageId
record.expiredAt = Date.now() + DEFAULT_EXPIRE_TIME
}
await record.save()
} catch (err) {
logger.info(`error send mail:: email: ${email}, type: ${type}, errmsg: ${err.message || err}`)
record.status = CodeStatus.FAIL
await record.save()
}
})
return {}
}
@router('post /api/bigget/verify_email')
async verifyCode(req, res) {
await new SyncLocker().checkLock(req)
logger.db('verify_mail_code', req)
let user = req.user
let { email, code } = req.params
if (!email || !code) {
throw new ZError(10, 'params mismatch')
}
if (!isEmail(email)) {
throw new ZError(11, 'Invalid email')
}
if (!isValiedCode(code)) {
throw new ZError(12, 'Invalid code')
}
if (user.email) {
throw new ZError(13, 'already bind game account')
}
email = email.toLowerCase()
let record = await CodeRecord.findByEmail(user.id, email, CodeType.VERIFY)
if (!record || record.user !== user.id) {
throw new ZError(14, 'code not found')
}
if (record.expiredAt < Date.now()) {
throw new ZError(15, 'code expired')
}
if (record.code !== code) {
throw new ZError(16, 'code not match')
}
user.email = email
await user.save()
const token = generateWalletToken({
id: user.id,
plat: 13,
openid: user.address,
email: user.email || '',
})
return { token }
}
@role(ROLE_ANON)
@router('get /api/bigget/remove_email')
async removeEmail(req, res) {
let { email } = req.params
if (!debug) {
throw new ZError(10, 'not allow')
}
if (!email) {
throw new ZError(10, 'params mismatch')
}
if (!isEmail(email)) {
throw new ZError(11, 'Invalid email')
}
email = email.toLowerCase()
let user = await BitgetUser.findOne({ email })
if (!user) {
throw new ZError(12, 'email not found')
}
user.email = ''
await user.save()
}
}

View File

@ -0,0 +1,271 @@
import logger from 'logger/logger'
import { BaseController, ROLE_ANON, ZError, role, router } from 'zutils'
import { CECRecord } from 'models/CECRecord'
import { ethers } from 'ethers'
import { CECClaimHistory, CECClaimStatus } from 'models/CECClaimHistory'
import { SyncLocker } from 'common/SyncLocker'
import { CECRecordTotal, CECStatusEnum } from 'models/CECRecordTotal'
import { buildTokenClaimData } from 'services/chain.svr'
import { Wallet } from 'models/Wallet'
import { PlatEnum } from 'enums/PlatEnum'
import { BitgetBindInfo } from 'models/BitgitBindInfo'
const STAGE1_UNLOCK_TIME = Number(process.env.CEC_CLAIM_STAGE1)
const STAGE2_UNLOCK_TIME = Number(process.env.CEC_CLAIM_STAGE2)
const CEC_ADDRESS = process.env.CEC_CONTRACT
const checkAddress = (address: string) => {
if (!address) {
throw new ZError(11, 'address is required')
}
if (!ethers.utils.isAddress(address)) {
throw new ZError(12, 'address is invalid')
}
return ethers.utils.getAddress(address).toLowerCase()
}
/**
* CEC领取相关接口
*/
class CECController extends BaseController {
/**
* CEC
*/
@role(ROLE_ANON)
@router('get /api/cec/info/:address')
async scoreInfo(req) {
let { address } = req.params
if (!address) {
throw new ZError(11, 'address is required')
}
if (!ethers.utils.isAddress(address)) {
throw new ZError(12, 'address is invalid')
}
address = ethers.utils.getAddress(address)
address = address.toLowerCase()
let total = 0n
let available = 0n
let claimed = 0n
const records = await CECRecord.find({ address })
const now = Date.now()
const stages = []
const lists = []
let firstTotal = 0n
for (const record of records) {
total += record.amount
let firstRate = record.firstRate || 50
let firstAmount = record.amount * BigInt(firstRate) / 100n
firstTotal += firstAmount
if (STAGE1_UNLOCK_TIME < now) {
available += firstAmount
}
if (STAGE2_UNLOCK_TIME < now) {
available += (record.amount - firstAmount)
}
lists.push(record.toJson())
}
stages.push({
stage: 1,
amount: firstTotal.toString(),
status: 0,
unlocked: STAGE1_UNLOCK_TIME < now,
unlockTime: STAGE1_UNLOCK_TIME
})
stages.push({
stage: 2,
amount: (total - firstTotal).toString(),
status: 0,
unlocked: STAGE2_UNLOCK_TIME < now,
unlockTime: STAGE2_UNLOCK_TIME
})
const historys = await CECClaimHistory.find({ address })
for (const history of historys) {
if (history.status === CECClaimStatus.FAILED) {
continue
}
if (history.status === CECClaimStatus.CONFIRMED) {
claimed += history.amount
}
stages[history.stage - 1].status = history.status
stages[history.stage - 1].claimTime = history.claimTime
available -= history.amount
}
return {
total: total.toString(),
available: available.toString(),
claimed: claimed.toString(),
stages,
records: lists
}
}
@role(ROLE_ANON)
@router('get /api/cec/info_all/:address')
async scoreInfoTotal(req: any) {
let { address } = req.params
address = checkAddress(address)
let total = 0n
let available = 0n
let claimed = 0n
const records = await CECRecordTotal.find({ address })
const now = Date.now()
const stages = []
const lists = []
let firstTotal = 0n
let firstAvailable = 0n
let secondAvailable = 0n
for (const record of records) {
let currentTotal = BigInt(record.amount)
total += currentTotal
let firstRate = record.firstRate || 50
let firstAmount = currentTotal * BigInt(firstRate) / 100n
firstTotal += firstAmount
if (STAGE1_UNLOCK_TIME < now && record.status == CECStatusEnum.NORMAL) {
available += firstAmount
firstAvailable += firstAmount
}
if (STAGE2_UNLOCK_TIME < now
&& record.status != CECStatusEnum.STAGE2_CLAIMED
&& record.firstRate < 100) {
available += (currentTotal - firstAmount)
secondAvailable += (currentTotal - firstAmount)
}
}
stages.push({
stage: 1,
amount: firstTotal.toString(),
available: firstAvailable.toString(),
status: 0,
unlocked: STAGE1_UNLOCK_TIME < now,
unlockTime: STAGE1_UNLOCK_TIME
})
stages.push({
stage: 2,
amount: (total - firstTotal).toString(),
available: secondAvailable.toString(),
status: 0,
unlocked: STAGE2_UNLOCK_TIME < now,
unlockTime: STAGE2_UNLOCK_TIME
})
const bindRecord = await BitgetBindInfo.findOne({ address: address })
return {
total: total.toString(),
available: available.toString(),
claimed: claimed.toString(),
stages,
records: lists,
outerAccount: bindRecord? 1: 0
}
}
@router('post /api/cec/claim')
async claimCEC(req: any) {
await new SyncLocker().checkLock(req)
logger.db('claim_cec', req)
const user = req.user
const now = Date.now()
if (STAGE1_UNLOCK_TIME > now) {
throw new ZError(14, 'not begin')
}
let wallet: string; // 通过该地址查询可以claim的cec数量
if (user.plat === PlatEnum.EXTERNAL_WALLET) {
wallet = user.openId || user.openid
} else {
let walletRecord = await Wallet.findOne({ account: user.id })
if (walletRecord) {
wallet = walletRecord.address
}
}
if (!wallet) {
throw new ZError(11, 'wallet not found')
}
wallet = wallet.toLowerCase()
let { address } = req.params // 这个地址用于执行claim的动作
address = checkAddress(address)
const bindRecord = await BitgetBindInfo.findOne({ address: wallet })
if (bindRecord) {
throw new ZError(18, 'already bind exchange account')
}
const records = await CECRecordTotal.find({ address: wallet })
if (records.length === 0) {
throw new ZError(15, 'record not found')
}
let total = 0n
let available = 0n
let bit = 0
for (const record of records) {
let currentTotal = BigInt(record.amount)
total += currentTotal
let firstRate = record.firstRate || 50
let firstAmount = currentTotal * BigInt(firstRate) / 100n
if (STAGE1_UNLOCK_TIME < now && record.status == CECStatusEnum.NORMAL) {
available += firstAmount
bit = bit | 1 << (record.bit * 2)
}
if (STAGE2_UNLOCK_TIME < now
&& record.status != CECStatusEnum.STAGE2_CLAIMED
&& record.firstRate < 100) {
available += (currentTotal - firstAmount)
bit = bit | 1 << (record.bit * 2 + 1)
}
}
if (available === 0n) {
throw new ZError(16, 'no cec to claim')
}
const nonce = now + '' +((Math.random() * 1000) | 0);
let data = await buildTokenClaimData({
address,
account: wallet,
token: CEC_ADDRESS,
amount: available.toString(),
bit,
nonce
})
return { calls: [{trans_req: data, trans_id: ''}], direct: true }
}
@router('post /api/cec/bind_account')
async bindAccount(req: any) {
const user = req.user
const { accid } = req.body
if (!accid) {
throw new ZError(11, 'accid is required')
}
const now = Date.now()
if (STAGE1_UNLOCK_TIME > now) {
throw new ZError(14, 'not begin')
}
let wallet: string; // 通过该地址查询可以claim的cec数量
if (user.plat === PlatEnum.EXTERNAL_WALLET) {
wallet = user.openId || user.openid
} else {
let walletRecord = await Wallet.findOne({ account: user.id })
if (walletRecord) {
wallet = walletRecord.address
}
}
if (!wallet) {
throw new ZError(11, 'wallet not found')
}
wallet = wallet.toLowerCase()
const records = await CECRecordTotal.find({ address: wallet })
if (records.length === 0) {
throw new ZError(15, 'record not found')
}
let record = await BitgetBindInfo.findOne({ address: wallet })
if (record) {
throw new ZError(17, 'already bind')
}
record = new BitgetBindInfo({ address: wallet, biggetAcc: accid })
await record.save()
return {}
}
}

163
src/importCEC.ts Normal file
View File

@ -0,0 +1,163 @@
import mongoose from 'mongoose'
import * as dotenv from 'dotenv'
import { ethers } from 'ethers'
import { Types } from 'mongoose'
let fs = require('fs')
const envFile = process.env.NODE_ENV && process.env.NODE_ENV === 'production' ? `.env.production` : '.env.development'
dotenv.config({ path: envFile })
console.log(process.env.DB_MAIN)
const dbMain = mongoose.createConnection(process.env.DB_MAIN)
const loadUaw = async () => {
console.time('load uaw')
let datas = fs.readFileSync('initdatas/cec_uaw.txt', 'utf-8').split('\n')
console.timeEnd('load uaw')
console.time('insert uaw')
let actionsUaw = []
const descUaw = 'uaw'
const timeUaw = 'Wed, 17 Apr 2024 - Sun, 02 Jun 2024'
for (let data of datas) {
if (!data) {
continue
}
let [address, amount] = data.split(' ')
address = address.toLowerCase()
amount = ethers.utils.parseEther(amount).toString()
actionsUaw.push({
insertOne: {
document: {
address,
amount,
desc: descUaw,
earnTime: timeUaw,
status: 1,
firstRate: 50,
createdAt: new Date(),
updatedAt: new Date(),
__v: 0.0,
},
},
})
}
await dbMain.collection('cec_earn_record').bulkWrite(actionsUaw)
console.timeEnd('insert uaw')
}
const loadIngame = async () => {
console.time('load ingame')
let datas = fs.readFileSync('initdatas/cec_ingame.txt', 'utf-8').split('\n')
console.timeEnd('load ingame')
console.time('insert ingame')
let actionsUaw = []
const descUaw = 'p2a'
const timeUaw = 'Tue, 14 May 2024 - Sun, 02 Jun 2024'
for (let data of datas) {
if (!data) {
continue
}
let [address, amount] = data.split(' ')
address = address.toLowerCase()
amount = ethers.utils.parseEther(amount).toString()
actionsUaw.push({
insertOne: {
document: {
address,
amount,
desc: descUaw,
earnTime: timeUaw,
status: 1,
firstRate: 50,
createdAt: new Date(),
updatedAt: new Date(),
__v: 0.0,
},
},
})
}
await dbMain.collection('cec_earn_record').bulkWrite(actionsUaw)
console.timeEnd('insert ingame')
}
const loadGameTest1 = async () => {
console.time('load game test')
let datas = fs.readFileSync('initdatas/cec_game_test1.txt', 'utf-8').split('\n')
console.timeEnd('load game test')
console.time('insert game test')
let actionsUaw = []
const descUaw = 'game test parse 1'
const timeUaw = 'Fri, 5 Jul 2024 - Wed, 17 Jul 2024'
for (let data of datas) {
if (!data) {
continue
}
let [address, amount] = data.split(' ')
address = address.toLowerCase()
amount = ethers.utils.parseEther(amount).toString()
actionsUaw.push({
insertOne: {
document: {
address,
amount,
desc: descUaw,
earnTime: timeUaw,
status: 1,
firstRate: 50,
createdAt: new Date(),
updatedAt: new Date(),
__v: 0.0,
},
},
})
}
await dbMain.collection('cec_earn_record').bulkWrite(actionsUaw)
console.timeEnd('insert game test')
}
const loadLoyalty = async () => {
console.time('load loyalty test')
let datas = fs.readFileSync('initdatas/cec_loyalty.txt', 'utf-8').split('\n')
console.timeEnd('load loyalty test')
console.time('insert loyalty test')
let actionsUaw = []
const descUaw = 'Loyalty Points Rewards'
const timeUaw = 'Fri, 8 Mar 2024 - Thu, 25 Jul 2024'
for (let data of datas) {
if (!data) {
continue
}
let [address, amount] = data.split(' ')
address = address.toLowerCase()
amount = ethers.utils.parseEther(amount).toString()
actionsUaw.push({
insertOne: {
document: {
address,
amount,
desc: descUaw,
earnTime: timeUaw,
status: 1,
firstRate: 100,
createdAt: new Date(),
updatedAt: new Date(),
__v: 0.0,
},
},
})
}
await dbMain.collection('cec_earn_record').bulkWrite(actionsUaw)
console.timeEnd('loyalty')
}
;(async () => {
try {
// await loadUaw()
// await loadIngame()
// await loadGameTest1()
await loadLoyalty()
} catch (e) {
console.log(e)
}
process.exit(0)
})()

34
src/models/BiggetUser.ts Normal file
View File

@ -0,0 +1,34 @@
import {
getModelForClass,
index,
modelOptions,
mongoose,
pre,
prop,
ReturnModelType,
Severity,
} from '@typegoose/typegoose'
import { dbconn } from 'decorators/dbconn'
import { Base, TimeStamps } from '@typegoose/typegoose/lib/defaultClasses'
import { BaseModule } from './Base'
export interface BitgetUserClass extends Base, TimeStamps {}
@dbconn()
@index({ address: 1 }, { unique: true })
@index({ email: 1 }, { unique: true, partialFilterExpression: { email: {$exists: true} } })
@modelOptions({
schemaOptions: { collection: 'bitget_user', timestamps: true },
options: { allowMixed: Severity.ALLOW },
})
export class BitgetUserClass extends BaseModule {
@prop({ required: true })
public address: string
@prop()
public email?: string
}
export const BitgetUser = getModelForClass(BitgetUserClass, { existingConnection: BitgetUserClass.db })

View File

@ -0,0 +1,34 @@
import {
getModelForClass,
index,
modelOptions,
mongoose,
pre,
prop,
ReturnModelType,
Severity,
} from '@typegoose/typegoose'
import { dbconn } from 'decorators/dbconn'
import { Base, TimeStamps } from '@typegoose/typegoose/lib/defaultClasses'
import { BaseModule } from './Base'
export interface BitgetUserClass extends Base, TimeStamps {}
@dbconn()
@index({ address: 1 }, { unique: true })
@index({ biggetAcc: 1 }, { unique: false})
@modelOptions({
schemaOptions: { collection: 'bitget_bing_info', timestamps: true },
options: { allowMixed: Severity.ALLOW },
})
export class BitgetBindInfoClass extends BaseModule {
@prop({ required: true })
public address: string
@prop()
public biggetAcc: string
}
export const BitgetBindInfo = getModelForClass(BitgetBindInfoClass, { existingConnection: BitgetBindInfoClass.db })

View File

@ -0,0 +1,58 @@
import { dbconn } from 'decorators/dbconn'
import { getModelForClass, index, modelOptions, prop, mongoose } from '@typegoose/typegoose'
import { BaseModule } from './Base'
export enum CECClaimStatus {
FAILED = 0,
PENDING = 1,
CONFIRMED = 9,
}
/**
* CEC claim记录
*/
@dbconn()
@index({ address: 1, recordId: 1 }, { unique: false })
@index({ tx: 1 }, { unique: true })
@modelOptions({
schemaOptions: { collection: 'cec_claim_history', timestamps: true },
})
class CECClaimHistoryClass extends BaseModule {
@prop()
public address: string
@prop()
public recordId: string
@prop({ set: (val: bigint | BigInt | String | Number) => val.toString(), get: (val: string) => BigInt(val)})
public amount: bigint
@prop()
public desc: string
@prop()
public stage: number
@prop()
public claimTime: number
@prop()
public confirmTime: number
@prop({ enum: CECClaimStatus, default: CECClaimStatus.PENDING })
public status: CECClaimStatus
@prop()
public tx: string
public toJson() {
return {
address: this.address,
amount: this.amount.toString(),
desc: this.desc,
claimTime: this.claimTime,
tx: this.tx,
}
}
}
export const CECClaimHistory = getModelForClass(CECClaimHistoryClass, { existingConnection: CECClaimHistoryClass['db'] })

47
src/models/CECRecord.ts Normal file
View File

@ -0,0 +1,47 @@
import { dbconn } from 'decorators/dbconn'
import { getModelForClass, index, modelOptions, prop, mongoose } from '@typegoose/typegoose'
import { BaseModule } from './Base'
export enum CECStatusEnum {
NORMAL = 1,
CLAIMED = 9,
}
/**
* CEC赚取记录
*/
@dbconn()
@index({ address: 1 }, { unique: false })
@modelOptions({
schemaOptions: { collection: 'cec_earn_record', timestamps: true },
})
class CECRecordClass extends BaseModule {
@prop()
public address: string
@prop({ set: (val: bigint | BigInt | String | Number) => val.toString(), get: (val: string) => BigInt(val)})
public amount: bigint
@prop()
public earnTime: string
@prop()
public desc: string
@prop()
public firstRate: number
@prop({ enum: CECStatusEnum, default: CECStatusEnum.NORMAL })
public status: CECStatusEnum
public toJson() {
return {
address: this.address,
amount: this.amount.toString(),
desc: this.desc,
earnTime: this.earnTime
}
}
}
export const CECRecord = getModelForClass(CECRecordClass, { existingConnection: CECRecordClass['db'] })

View File

@ -0,0 +1,72 @@
import { dbconn } from 'decorators/dbconn'
import { getModelForClass, index, modelOptions, prop, mongoose } from '@typegoose/typegoose'
import { BaseModule } from './Base'
import { BigNumber } from 'ethers'
/**
* CEC赚取记录
*/
export enum CECStatusEnum {
NORMAL = 1,
STAGE1_CLAIMED = 2,
STAGE2_CLAIMED = 3
}
/**
* CEC赚取记录
*/
@dbconn()
@index({ address: 1 }, { unique: false })
@modelOptions({
schemaOptions: { collection: 'cec_record_total', timestamps: true },
})
class CECRecordTotalClass extends BaseModule {
@prop()
public address: string
@prop()
public amount: string
@prop()
public num: number
/**
* claim时作为标记位
*
0: uaw
1: p2a
2: game test parse 1
3: Loyalty Points Rewards
4: Badge staking rewards
5: Gacha Journey
6: Rase of Gacha
7: game season rank
8: hash rate rewards
9: old game event
**/
@prop()
public bit: number
@prop()
public earnTime: string
@prop()
public desc: string
@prop()
public firstRate: number
@prop({ enum: CECStatusEnum, default: CECStatusEnum.NORMAL })
public status: CECStatusEnum
public toJson() {
return {
address: this.address,
amount: this.amount.toString(),
desc: this.desc,
earnTime: this.earnTime
}
}
}
export const CECRecordTotal = getModelForClass(CECRecordTotalClass, { existingConnection: CECRecordTotalClass['db'] })

47
src/models/Wallet.ts Normal file
View File

@ -0,0 +1,47 @@
import { getModelForClass, index, modelOptions, mongoose, prop, ReturnModelType, Severity } from '@typegoose/typegoose'
import { dbconn } from 'decorators/dbconn'
import { BaseModule } from './Base'
@dbconn('wallet')
@index({ account: 1 }, { unique: true })
@modelOptions({
schemaOptions: { collection: 'wallet', timestamps: true },
})
class WalletClass extends BaseModule {
@prop({ required: true })
public account!: string
/**
* master key
*/
@prop()
public key: string
@prop()
public address: string
/**
*
*/
@prop()
public salt: string
@prop({ required: true, default: true })
public nweRecord: boolean
@prop({ default: false })
public toOkx: boolean
public static async findByAccount(this: ReturnModelType<typeof WalletClass>, account: string) {
return this.findOne({ account }).exec()
}
public toJson() {
return {
key: this.key,
address: this.address,
salt: this.salt,
}
}
}
export const Wallet = getModelForClass(WalletClass, { existingConnection: WalletClass.db })

View File

@ -6,6 +6,10 @@ import { ROLE_ANON } from 'zutils'
import { DocumentType } from '@typegoose/typegoose'
import { ReadOnlyCache } from 'common/ReadOnlyCache'
import { ACTIVITY_NAME } from 'common/Constants'
import { BitgetUser } from 'models/BiggetUser'
import { verifyCombinedToken, verifyWalletToken } from 'utils/jwt.utils'
import { Account } from 'models/Account'
import { isValidEthAddress } from 'common/Utils'
declare module 'fastify' {
interface FastifyRequest {
@ -67,12 +71,29 @@ const apiAuthPlugin: FastifyPluginAsync<ApiAuthOptions> = async function (fastif
if (!request.token) {
return reply.send({ errcode: 11, errmsg: 'need login' })
}
//@ts-ignore
const data = this.jwt.verify(request.token)
if (!data || !data.id) {
return reply.send({ errcode: 10, errmsg: 'need login' })
let account;
// 针对不同的接口进行不同的token验证
// cec claim的接口验证wallet-svr的token
if (request.url.indexOf('api/cec') >= 0) {
const data = await verifyCombinedToken(request.token)
data.openid = data.openId || data.openid || data.passport?.zkevm_eth_address || data.passport?.eth_key
if (data.openid && isValidEthAddress(data.openid)) {
account = { plat: 13, openId: data.openid }
} else {
account = await Account.findById(data.id)
}
} else if (request.url.indexOf('api/bigget') >= 0) {
const data = verifyWalletToken(request.token)
account = await BitgetUser.findById(data.id)
} else {
//@ts-ignore
const data = this.jwt.verify(request.token)
if (!data || !data.id) {
return reply.send({ errcode: 10, errmsg: 'need login' })
}
account = await ActivityUser.findById(data.id)
}
let account = await ActivityUser.findById(data.id)
if (!account) {
return reply.send({ errcode: 10, errmsg: 'need login' })
}

View File

@ -125,8 +125,7 @@ const generateGameScoreList = async (start: number) => {
// const records = await new ZRedisClient().zrevrange(gameTotalKey, start, end)
const records = await InGameStats.find({ score: { $gt: 0 } })
.sort({ score: -1 })
.skip(start)
.limit(pageSize)
let results = []
for (let i = 0; i < records.length; i++) {
let score = records[i].score
@ -205,34 +204,35 @@ const queryHolder = async () => {
try {
let opts = { url: process.env.REDIS }
new ZRedisClient(opts)
await new ZRedisClient().del(totalKey)
// await new ZRedisClient().del(gameTotalKey)
console.time('update redis')
await saveScoreToRedis()
console.timeEnd('update redis')
console.time('query holder info')
await queryHolder()
console.timeEnd('query holder info')
console.time('update releation redis')
await saveTypeScoreToRedis('invite_rebate')
console.timeEnd('update releation redis')
console.time('generate score list')
const total = (await new ZRedisClient().zcard(totalKey)) as number
for (let i = 0; i < total; i += pageSize) {
await generateScoreList(i)
}
console.timeEnd('generate score list')
// await new ZRedisClient().del(totalKey)
// // await new ZRedisClient().del(gameTotalKey)
// console.time('update redis')
// await saveScoreToRedis()
// console.timeEnd('update redis')
// console.time('query holder info')
// await queryHolder()
// console.timeEnd('query holder info')
// console.time('update releation redis')
// await saveTypeScoreToRedis('invite_rebate')
// console.timeEnd('update releation redis')
// console.time('generate score list')
// const total = (await new ZRedisClient().zcard(totalKey)) as number
// for (let i = 0; i < total; i += pageSize) {
// await generateScoreList(i)
// }
// console.timeEnd('generate score list')
// console.time('update game redis')
// await saveGameScoreToRedis()
// console.timeEnd('update game redis')
// console.time('generate game score list')
console.time('generate game score list')
// const totalGame = (await new ZRedisClient().zcard(gameTotalKey)) as number
// const totalGame = await InGameStats.countDocuments({ score: { $gt: 0 } })
// for (let i = 0; i < totalGame; i += pageSize) {
// await generateGameScoreList(i)
// }
// console.timeEnd('generate game score list')
await generateGameScoreList(0)
console.timeEnd('generate game score list')
// console.time('generate white list')
// await generateWhiteList()
// console.timeEnd('generate white list')

View File

@ -1,6 +1,8 @@
import { Contract } from 'ethers'
import { CheckIn } from 'models/chain/CheckIn'
import { NftHolder } from 'models/chain/NftHolder'
import { NftStake } from 'models/chain/NftStake'
import { sign } from 'utils/sign.utils'
import { getMonthBegin, getNDayAgo } from 'utils/utcdate.util'
import { timeoutFetch } from 'zutils/utils/net.util'
import { numberToBN } from 'zutils/utils/number.util'
@ -164,3 +166,29 @@ export const fetchClaimStatus = async (address: string, taskId: string) => {
const method = '4902f7e0'
return fetchChainStatus(address, `0x${method}${addressStr}${valStr}`)
}
const claimTokenAbi = [
'function claim(address,address,uint256[4],bytes)',
]
const claimKeyArr = ["address","address", "address", "address", "uint256","uint256", "uint256", "uint256", "uint256"]
export const buildTokenClaimData = async ({address, account, token, amount, bit, nonce}:
{
address: string,
account: string,
token: string,
amount: string,
bit: number | string,
nonce: string
}) => {
const contract = new Contract(process.env.CLAIM_CONTRACT, claimTokenAbi)
const time = (Date.now() / 1000 | 0)+''
bit = bit +''
const signValArr = [address, account, token, process.env.CLAIM_CONTRACT, process.env.CLAIM_CHAIN, amount, bit, time, nonce]
const signature = await sign(process.env.SIGN_PRIVATE_KEY, claimKeyArr, signValArr)
const vals = [amount, bit, time, nonce]
const params = [account, token, vals, signature]
console.log(JSON.stringify(params))
return contract.populateTransaction['claim'](...params)
}

View File

@ -11,6 +11,18 @@ export const checkReCaptcha = async (req: any, action: string) => {
if (!rtoken) {
throw new ZError(50, 'reCaptcha token is required')
}
/**
*
{
"event": {
"token": "TOKEN",
"expectedAction": "USER_ACTION",
"siteKey": "6Ld3xoIpAAAAABW7f5ImgAC6GcWLeDCbt5HPXqe2",
}
}
*/
// const url = `https://recaptchaenterprise.googleapis.com/v1/projects/root-vortex-407111/assessments?key=${process.env.RECAPTCHA_SECRET}`
const url = `https://www.google.com/recaptcha/api/siteverify?secret=${process.env.RECAPTCHA_SECRET}&response=${rtoken}`
const response = await fetch(url, {
method: 'POST',

View File

@ -3,7 +3,7 @@ import { handleFetch, timeoutFetch } from 'zutils/utils/net.util'
import { AuthRecord, PlatEnum } from 'models/oauth/AuthRecord'
import { ZError, ZRedisClient } from 'zutils'
import { getAvableAccessToken, userGuildMember } from './discord.svr'
import { logger } from 'ethers'
import logger from 'logger/logger'
const SECRET_KEY = process.env.HASH_SALT
const DEFAULT_TIMEOUT = 30000

90
src/utils/jwt.utils.ts Normal file
View File

@ -0,0 +1,90 @@
import { ReadOnlyCache } from 'common/ReadOnlyCache'
import { createSigner, createVerifier } from 'fast-jwt'
import buildGetJwks from 'get-jwks'
const domain = 'https://auth.immutable.com'
const privateKey = `-----BEGIN PRIVATE KEY-----
${process.env.REFRESH_TOKEN_SECRET_PRIVATE}
-----END PRIVATE KEY-----
`
const publicKey = `-----BEGIN PUBLIC KEY-----
${process.env.REFRESH_TOKEN_SECRET_PUBLIC}
-----END PUBLIC KEY-----
`
const REFRESH_TOKEN_EXPIRES_IN = 30 * 24 * 60 * 60 * 1000
const privateKeyWallet = `-----BEGIN PRIVATE KEY-----
${process.env.API_TOKEN_SECRET_PRIVATE}
-----END PRIVATE KEY-----
`
const publicKeyWallet = `-----BEGIN PUBLIC KEY-----
${process.env.API_TOKEN_SECRET_PUBLIC}
-----END PUBLIC KEY-----
`
const WALLET_TOKEN_EXPIRES_IN = 30 * 24 * 60 * 60 * 1000
const getJwks = buildGetJwks({ })
export const generateRefreshToken = (data: any) => {
const signSync = createSigner({
algorithm: 'EdDSA',
expiresIn: REFRESH_TOKEN_EXPIRES_IN,
key: privateKey,
})
return signSync(data)
}
export const verifyRefreshToken = (token: string) => {
const verifier = createVerifier({
algorithms: ['EdDSA'],
key: publicKey,
})
return verifier(token)
}
export const generateWalletToken = (data: any) => {
const signSync = createSigner({
algorithm: 'EdDSA',
expiresIn: WALLET_TOKEN_EXPIRES_IN,
key: privateKeyWallet,
})
return signSync(data)
}
export const verifyWalletToken = (token: string) => {
const verifier = createVerifier({
algorithms: ['EdDSA'],
key: publicKeyWallet,
})
return verifier(token)
}
export const verifyPassportToken = (token: string) => {
const verifyWithPromise = createVerifier({
key: async function (header) {
let publicKey = new ReadOnlyCache().getData('passport_public_key')
if (!publicKey) {
publicKey = await getJwks.getPublicKey({
kid: header.kid,
alg: header.alg,
domain,
})
new ReadOnlyCache().setData('passport_public_key', publicKey)
}
return Promise.resolve(publicKey)
},
})
return verifyWithPromise(token)
}
export const verifyCombinedToken = (token: string) => {
let tokenSuffix = token.split('.')[3]
tokenSuffix = tokenSuffix || 'passport'
token = token.replace(`.${tokenSuffix}`, '')
if (tokenSuffix === 'passport') {
return verifyPassportToken(token)
} else {
return verifyWalletToken(token)
}
}

9
src/utils/sign.utils.ts Normal file
View File

@ -0,0 +1,9 @@
import { Wallet } from 'ethers'
import { arrayify, solidityKeccak256 } from 'ethers/lib/utils'
export const sign = async (secret: string, keys: string[], vals: any[]) => {
const signer = new Wallet(secret)
const localMsgHash = solidityKeccak256(keys, vals)
const signature = await signer.signMessage(arrayify(localMsgHash));
return signature
}

View File

@ -8,14 +8,14 @@
"module": "commonjs",
"esModuleInterop": true,
"resolveJsonModule": true,
"target": "es2019",
"target": "es2020",
"moduleResolution": "node",
"sourceMap": true,
"outDir": "./dist",
"baseUrl": "./src",
"rootDir": "./src"
},
"lib": ["es2019"],
"lib": ["es2020"],
"include": [
"src/**/*.ts",
"typings/extend.d.ts"

View File

@ -1738,7 +1738,7 @@ array-union@^2.1.0:
resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
asn1.js@^5.4.1:
asn1.js@^5.3.0, asn1.js@^5.4.1:
version "5.4.1"
resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz"
integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==
@ -2646,6 +2646,19 @@ elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.4:
minimalistic-assert "^1.0.1"
minimalistic-crypto-utils "^1.0.1"
elliptic@^6.5.7:
version "6.5.7"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.7.tgz#8ec4da2cb2939926a1b9a73619d768207e647c8b"
integrity sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==
dependencies:
bn.js "^4.11.9"
brorand "^1.1.0"
hash.js "^1.0.0"
hmac-drbg "^1.0.1"
inherits "^2.0.4"
minimalistic-assert "^1.0.1"
minimalistic-crypto-utils "^1.0.1"
emittery@^0.13.1:
version "0.13.1"
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
@ -3501,6 +3514,15 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.4:
has-symbols "^1.0.3"
hasown "^2.0.0"
get-jwks@^9.0.2:
version "9.0.2"
resolved "https://registry.yarnpkg.com/get-jwks/-/get-jwks-9.0.2.tgz#9364efb7a48b126a8df88e67757c413d6abf747d"
integrity sha512-zn2OvElozYtckpYJvgRWMOMhEkW8KgFp+lN0B7Q6SXPZg/CFfeiPoh73Wbhacj4fYXDJxkxbcwI9j+/cubpzSQ==
dependencies:
jwk-to-pem "^2.0.4"
lru-cache "^10.0.0"
node-fetch "^2.6.1"
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
@ -4546,6 +4568,15 @@ jwa@^2.0.0:
ecdsa-sig-formatter "1.0.11"
safe-buffer "^5.0.1"
jwk-to-pem@^2.0.4:
version "2.0.6"
resolved "https://registry.yarnpkg.com/jwk-to-pem/-/jwk-to-pem-2.0.6.tgz#0810c03307e873d5c81faeb650408fa3ae91eb9c"
integrity sha512-zPC/5vjyR08TpknpTGW6Z3V3lDf9dU92oHbf0jJlG8tGOzslF9xk2UiO/seSx2llCUrNAe+AvmuGTICSXiYU7A==
dependencies:
asn1.js "^5.3.0"
elliptic "^6.5.7"
safe-buffer "^5.0.1"
jws@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jws/-/jws-4.0.0.tgz#2d4e8cf6a318ffaa12615e9dec7e86e6c97310f4"
@ -4676,6 +4707,11 @@ lowercase-keys@^3.0.0:
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2"
integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==
lru-cache@^10.0.0:
version "10.4.3"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119"
integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
lru-cache@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
@ -5041,7 +5077,7 @@ node-addon-api@^2.0.0:
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32"
integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==
node-fetch@2, node-fetch@^2.6.12, node-fetch@^2.6.9:
node-fetch@2, node-fetch@^2.6.1, node-fetch@^2.6.12, node-fetch@^2.6.9:
version "2.7.0"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==