Commit cfbf07eb cfbf07ebd8198a418d8e5d9871f84eb4b1ecc9f3 by wulianyou

优化程序,编写readMe

1 parent dc0cbbae
# 说明
该程序是主网升级,根据账户信息批量给账户转账的脚本
# 初始化
 ```bash
$ npm i
```
# 运行转账
```bash
$ npm start
```
# 转账完成后检查转账是否成功
```bash
$ npm run check
```
# 文件说明
```bash
|-- batch-transfer-script
|-- .ddnrc.js # @ddn/node-sdk 配置,配置nethash
|-- .gitignore
|-- README.md # 文档
|-- check.js # 检查转账结果脚本
|-- config.js # 转出token的钱包私钥
|-- directoryList.md # 文件结构
|-- index.js # 转账程序源码
|-- package.json
|-- config
| |-- constants.js # @ddn/node-sdk 配置,配置nethash,要和.ddnrc.js配置保持一致,两个文件都需要配置
| |-- mem_accounts.json # 需要转账的账户列表
| |-- uninclude.js # 转账时要排除的地址
|-- log
|-- all.text # 转账总金额和总条数日志
|-- error.text # 转账失败的记录日志
|-- success.text # 转账成功的日志 ,同时也是转账完成后检查已经转账的地址列表
|-- unSuccess.text # 转账完成后检查已经转账的地址,token没到账的日志
|-- unTrs.text # 和mem_accounts.json对比,没有转账的记录
```
# 转账逻辑说明
* 脚本读取mem_accounts.json文件作为需要转账的地址列表,读取uninclude.js文件把这里面的地址排除
* 转账时排除balance小于等于0,publickey为“”(这样的账户认为是无效账户),在ununclude.js文件里的地址
* 循环转账
* 转账成功的记录放到success.text日志下
* 转账失败房贷error.text下
* 没有转账的记录放到unTrs.text下
# 检查转账成功的地址中token是否到账
## 运行 npm check检查账户
* 程序会根据成功的日志循环检测成功的地址列表中在链上的账户余额,查看是否和转账金额相同
* 不相同会记录到unSuccess.text文件下
# 转账和检测都完成后
* 日志unSuccess.text和日志error.text文件下的账户地址列表就需要手动转账了
*** 注意⚠️:转账命令不要多次运行,多次运行会多次转账 ***
# [升级文档地址](https://ddnd.yuque.com/nhy4p6/biofg4/fniqi6)
\ No newline at end of file
const file = require('fs')
const request = require('request')
async function getBlance(address) {
return new Promise((resolve, reject) => {
request({
url: `http://localhost:8001/api/accounts?address=${address}`,
method: 'GET',
}, (err, response, body) => {
if (err) {
reject(err)
} else {
body = JSON.parse(body)
resolve(body)
}
})
})
// const respose=await nodeFetch('http://localhost:8001/api/transaction', {
// method: 'post',
// body: JSON.stringify(data),
// headers: {'Content-Type': 'application/json'}
// })
// return await respose.json()
}
async function main() {
let result = await file.readFileSync('./log/success.text','utf-8')
const array = JSON.parse(result).list
let unSuccessAccount = [], total = 0, unSuccesstotal = 0;
for (let index = 0; index < array.length; index++) {
const item = array[index];
const result = await getBlance(item.address)
if (result.success && Number(result.account.balance) !== Number(item.balance)) {
console.log(result.account.balance, item.balance, Number(result.account.balance) !== Number(item.balance))
unSuccesstotal += Number(item.balance)
unSuccessAccount.push({ address: item.address, balance: item.balance, index: index })
} else {
total += Number(result.account.balance)
}
}
console.log(`成功转账:${total},失败转账:${unSuccesstotal}`)
file.writeFile('./log/unSuccess.text', `{"success":${total},"unSucccess":${unSuccesstotal},"list":${JSON.stringify(unSuccessAccount)}}`, { flag: 'a' }, err => { })
// file.writeFile('./log/unSuccess.text', `${JSON.stringify(unSuccessAccount)}`, { flag: 'a' }, err => { })
}
main()
\ No newline at end of file
|-- ddn-mainnet-upgrade
|-- .ddnrc.js
|-- .gitignore
|-- README.md
|-- check.js
|-- config.js
|-- directoryList.md
|-- index.js
|-- package.json
|-- config
| |-- constants.js
| |-- mem_accounts.json
| |-- uninclude.js
|-- log
|-- all.text
|-- error.text
|-- success.text
|-- unSuccess.text
|-- unTrs.text
module.exports={
index:[2,22,43,72,84,107,114,132,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,241,242,243,244,247,248,249,252,255,257,260,262,263,266,268,271,272,274,276,278,283,293,295,308,316,321,335,341,347,348,351,361,368,381,385,388,390,399,405,408,411,412,414,417,425,426,429,435,436,437,440,442,454,457,460,464,465,466,471,476,479,482,483,500,501,502,504,505,506,510,515,542,546,551,556,601,614,622,623,624,626,629,631,653,685,688,727,751,760,772,773,781,794,795,801,826,829,830,834,835,836,842,843,851,852,898,899,900,901,903,904,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,927,928,934,947,950,952,956,957,958,960,961,964,966,968,970,977,978,979,980,981,983,984,987,988,990,991,993,994,995,996,997,1000,1003,1004,1005,1006,1007,1011,1012,1014,1015,1016,1017,1018,1019,1021,1039,1041,1061,1062,1063,1064,1070,1072,1075,1077,1130,1134,1179,1280,1293,1304,1313,1315,1316,1339,1342,1345,1352,1358,1362,1365,1379,1401,1472,1474,1476,1477,1478,1482,1486,1488,1490,1491,1492,1496,1506,1509,1510,1511,1514,1516,1518,1521,1533,1542,1545,1547,1551,1556,1560,1561,1562,1563,1565,1567,1568,1571,1580,1581,1584,1588,1589,1591,1594,1607,1613,1621,1624,1632,1635,1636,1639,1665,1671,1709,1736,1770,1778,1779,1780,1781,1782,2283,2291,2294,2351,2383,2418,2419,2420,2421,2523]
};
\ No newline at end of file
// import { password } from './config'
const password = require('./config').password
const sdk = require('@ddn/node-sdk').default
const data = require('./mem_accounts.json')
const addressList = require('./uninclude.js').addressList
const data = require('./config/mem_accounts.json')
const addressList = require('./config/uninclude.js').addressList
// const nodeFetch = require('node-fetch')
const request = require('request')
const file = require('fs')
......@@ -52,9 +52,10 @@ async function main() {
console.log(`转帐成功条数:${successCount}, 转账成功总金额:${succeeAmount}`)
console.log(`转帐失败条数:${errorCount}, 转账失败总金额:${errorAmount}`)
console.log(`没有转账条数:${unTrsCount}, 没有转账金额:${unTrsAmount}`)
file.writeFile('./success.text', `total: ${total}, 位置:${JSON.stringify(success)}`, { flag: 'a' }, err => { })
file.writeFile('./error.text', `${JSON.stringify(error)}`, { flag: 'a' }, err => { })
file.writeFile('./unTrs.text', `${JSON.stringify(unTrs)}`, { flag: 'a' }, err => { })
file.writeFile('./log/success.text', `{"total":${successCount},"totalAmount":${succeeAmount},"list":${JSON.stringify(success)}}`, { flag: 'a' }, err => { })
file.writeFile('./log/error.text', `{"total":${errorCount},"totalAmount":${errorAmount},"list":${JSON.stringify(error)}}`, { flag: 'a' }, err => { })
file.writeFile('./log/unTrs.text', `{"total":${unTrsCount},"totalAmount":${unTrsAmount},"list":${JSON.stringify(unTrs)}}`, { flag: 'a' }, err => { })
file.writeFile('./log/all.text', `{"total":${total},"totalAmount":${totalAmount}}`, { flag: 'a' }, err => { })
}
async function createTransaction(recipientId, amount) {
const transaction = await sdk.transaction.createTransaction(recipientId, amount, '账户转账', password)
......@@ -84,46 +85,6 @@ async function pushTransaction(data) {
// })
// return await respose.json()
}
async function getBlance(address) {
return new Promise((resolve, reject) => {
request({
url: `http://localhost:8001/api/accounts?address=${address}`,
method: 'GET',
}, (err, response, body) => {
if (err) {
reject(err)
} else {
body = JSON.parse(body)
resolve(body)
}
})
})
// const respose=await nodeFetch('http://localhost:8001/api/transaction', {
// method: 'post',
// body: JSON.stringify(data),
// headers: {'Content-Type': 'application/json'}
// })
// return await respose.json()
}
async function getAccount() {
const array = require('./getBalance').index
let unSuccessAccount = [], total = 0, unSuccesstotal = 0;
for (let index = 0; index < array.length; index++) {
const element = array[index];
const item = data.RECORDS[element]
const result = await getBlance(item.address)
if (result.success && Number(result.account.balance) !== Number(item.balance)) {
console.log(result.account.balance, item.balance, Number(result.account.balance) !== Number(item.balance))
unSuccesstotal += Number(item.balance)
unSuccessAccount.push({ address: item.address, balance: item.balance, index: element })
} else {
total += Number(result.account.balance)
}
}
console.log(`成功转账:${total},失败转账:${unSuccesstotal}`)
file.writeFile('./unSuccess.text', `${JSON.stringify(unSuccessAccount)}`, { flag: 'a' }, err => { })
}
let wait = ms => new Promise(resolve => setTimeout(resolve, ms));
main()
\ No newline at end of file
// getAccount()
\ No newline at end of file
......
{total:1311,totalAmount:67642680.6112077}
\ No newline at end of file
This diff could not be displayed because it is too large.
{success:4467828706609349,unSucccess:570000000,[{"address":"DFyN2CBGcCvQsPWNt9W96cnb61hHFcWLes","balance":"10000000","index":1007},{"address":"D2P8mkzjS2G73qdErAtnVqWg6i7jgVCtdE","balance":"80000000","index":1124},{"address":"DK9RWV588qxZtAqewJzdQWfARQdZzrQbk1","balance":"480000000","index":1190}]}
\ No newline at end of file
This diff could not be displayed because it is too large.
{
"scripts": {
"start":"node index",
"check":"node check"
},
"dependencies": {
"@ddn/node-sdk": "^2.2.0",
"node-fetch": "^3.2.4"
......
total: 1311, 位置:[132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,237,238,239,240,243,244,245,248,251,253,256,258,259,262,264,267,268,270,272,274,279,289,291,304,312,317,331,337,343,344,347,357,364,377,381,384,386,395,401,404,407,408,410,413,421,422,425,431,432,433,436,438,450,453,456,460,461,462,467,472,475,478,479,496,497,498,500,501,502,506,511,538,542,547,552,597,610,618,619,620,622,625,627,649,681,684,723,747,756,768,769,777,790,791,797,822,825,826,830,831,832,838,839,847,848,894,895,896,897,899,900,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,923,924,930,943,946,948,952,953,954,956,957,960,962,964,966,973,974,975,976,977,979,980,983,984,986,987,989,990,991,992,993,996,999,1000,1001,1002,1003,1007,1008,1010,1011,1012,1013,1014,1015,1017,1035,1037,1057,1058,1059,1060,1066,1068,1071,1073,1126,1130,1175,1276,1289,1300,1309,1311,1312,1335,1338,1341,1348,1354,1358,1361,1375,1397,1468,1470,1472,1473,1474,1478,1482,1484,1485,1486,1487,1488,1492,1502,1505,1506,1507,1509,1510,1512,1514,1517,1529,1538,1539,1541,1543,1544,1545,1546,1547,1548,1552,1555,1556,1557,1558,1559,1560,1561,1562,1563,1564,1566,1567,1568,1570,1571,1576,1577,1578,1580,1584,1585,1587,1589,1590,1601,1602,1603,1609,1610,1613,1614,1615,1617,1618,1619,1620,1622,1625,1627,1628,1630,1631,1632,1635,1637,1639,1640,1641,1642,1643,1644,1661,1663,1667,1685,1699,1704,1705,1719,1721,1723,1730,1731,1732,1734,1736,1742,1744,1754,1755,1756,1757,1758,1759,1764,1766,1772,1774,1775,1776,1777,1778,1779,1780,1781,1782,1783,1784,1785,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1855,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1960,1961,1962,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2027,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2070,2071,2072,2073,2074,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2137,2138,2139,2140,2141,2142,2143,2144,2145,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2156,2157,2158,2159,2160,2161,2162,2163,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2176,2177,2178,2179,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2193,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2208,2209,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,2221,2222,2223,2224,2225,2226,2227,2228,2229,2230,2231,2232,2233,2234,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2255,2256,2257,2258,2259,2260,2261,2262,2263,2264,2265,2266,2267,2268,2269,2270,2271,2272,2273,2279,2284,2287,2290,2347,2379,2413,2414,2415,2416,2417,2519,2551,2554,2556,2560,2562,2563,2565,2566,2567,2568,2569,2571,2572,2573,2574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2584,2585,2586,2587,2588,2589,2590,2591,2592,2593,2594,2595,2596,2597,2598,2599,2600,2601,2602,2603,2604,2605,2606,2607,2608,2609,2610,2611,2612,2613,2614,2615,2616,2617,2618,2619,2620,2621,2622,2623,2624,2625,2626,2628,2629,2630,2631,2632,2634,2635,2636,2637,2638,2640,2641,2642,2643,2644,2645,2646,2647,2648,2649,2650,2651,2652,2653,2654,2655,2656,2657,2658,2659,2661,2662,2664,2665,2666,2667,2668,2669,2670,2671,2672,2674,2675,2676,2677,2678,2679,2680,2682,2683,2684,2685,2686,2687,2689,2690,2691,2692,2693,2694,2695,2696,2697,2698,2709,2710,2711,2712,2714,2715,2722,2723,2724,2725,2726,2727,2728,2729,2730,2731,2733,2734,2735,2736,2737,2738,2739,2740,2741,2742,2743,2744,2746,2748,2750,2755,2758,2759,2760,2761,2762,2840,2880,3908,3983,4003,4024,4031,4047,4048,4317,4717,4987,5121,5270,5284,5285,5420,5433,5446,5551,5705,5760,5996,5997,6000,6600,7075,7599,7638,7728,7885,7892,7894,7902,7903,7914,7923,7924,7926,7927,7968,7973,7985,7986,7994,7997,8010,8036,8038,8045,8050,8055,8057,8071,8081,8088,8118,8119,8363,8387,8436,8480,8582,8596,8599,8614,8620,8634,8649,8684,8685,8691,9242,9249,9453,12252,16124,16160,16878,16991,16992,17333,17491,17501,17504,17525,17573,17675,17680,17682,17694,17704,17714,17720,17726,17737,17745,17757,17759,17760,17772,17780,17789,17792,17793,17805,17815,17824,17826,17828,17835,17838,17840,17842,17843,17848,17852,17856,17857,17858,17865,17871,17884,17889,17893,17894,17897,17898,17903,17906,17907,17909,17926,17928,17930,17959,17961,17967,17997,18002,18005,18006,18007,18008,18009,18025,18043,18053,18058,18072,18120,18125,18133,18187]
\ No newline at end of file
File mode changed
File mode changed
This diff could not be displayed because it is too large.