borroweth-compoundusd 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="GitToolBoxProjectSettings">
4
+ <option name="commitMessageIssueKeyValidationOverride">
5
+ <BoolValueOverride>
6
+ <option name="enabled" value="true" />
7
+ </BoolValueOverride>
8
+ </option>
9
+ <option name="commitMessageValidationEnabledOverride">
10
+ <BoolValueOverride>
11
+ <option name="enabled" value="true" />
12
+ </BoolValueOverride>
13
+ </option>
14
+ </component>
15
+ </project>
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="Go" enabled="true" />
4
+ <component name="NewModuleRootManager">
5
+ <content url="file://$MODULE_DIR$" />
6
+ <orderEntry type="inheritedJdk" />
7
+ <orderEntry type="sourceFolder" forTests="false" />
8
+ </component>
9
+ </module>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/ierc20-main.iml" filepath="$PROJECT_DIR$/.idea/ierc20-main.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,5 @@
1
+ Config :
2
+ EthRPC: https://goerli.infura.io/v3/465ff788566044848ba2eae2474718d
3
+ PrivateKey:
4
+ ContractAddress:
5
+ WorkerCount: 10
package/go.mod ADDED
@@ -0,0 +1,54 @@
1
+ module ierc20
2
+
3
+ go 1.19
4
+
5
+ require (
6
+ github.com/ethereum/go-ethereum v1.13.10
7
+ github.com/joho/godotenv v1.5.1
8
+ github.com/spf13/viper v1.18.2
9
+ )
10
+
11
+ require (
12
+ github.com/Microsoft/go-winio v0.6.1 // indirect
13
+ github.com/StackExchange/wmi v1.2.1 // indirect
14
+ github.com/bits-and-blooms/bitset v1.10.0 // indirect
15
+ github.com/btcsuite/btcd/btcec/v2 v2.2.0 // indirect
16
+ github.com/consensys/bavard v0.1.13 // indirect
17
+ github.com/consensys/gnark-crypto v0.12.1 // indirect
18
+ github.com/crate-crypto/go-kzg-4844 v0.7.0 // indirect
19
+ github.com/deckarep/golang-set/v2 v2.1.0 // indirect
20
+ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect
21
+ github.com/ethereum/c-kzg-4844 v0.4.0 // indirect
22
+ github.com/fsnotify/fsnotify v1.7.0 // indirect
23
+ github.com/go-ole/go-ole v1.2.5 // indirect
24
+ github.com/gorilla/websocket v1.4.2 // indirect
25
+ github.com/hashicorp/hcl v1.0.0 // indirect
26
+ github.com/holiman/uint256 v1.2.4 // indirect
27
+ github.com/magiconair/properties v1.8.7 // indirect
28
+ github.com/mitchellh/mapstructure v1.5.0 // indirect
29
+ github.com/mmcloughlin/addchain v0.4.0 // indirect
30
+ github.com/pelletier/go-toml/v2 v2.1.0 // indirect
31
+ github.com/sagikazarmark/locafero v0.4.0 // indirect
32
+ github.com/sagikazarmark/slog-shim v0.1.0 // indirect
33
+ github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect
34
+ github.com/sourcegraph/conc v0.3.0 // indirect
35
+ github.com/spf13/afero v1.11.0 // indirect
36
+ github.com/spf13/cast v1.6.0 // indirect
37
+ github.com/spf13/pflag v1.0.5 // indirect
38
+ github.com/subosito/gotenv v1.6.0 // indirect
39
+ github.com/supranational/blst v0.3.11 // indirect
40
+ github.com/tklauser/go-sysconf v0.3.12 // indirect
41
+ github.com/tklauser/numcpus v0.6.1 // indirect
42
+ go.uber.org/atomic v1.9.0 // indirect
43
+ go.uber.org/multierr v1.9.0 // indirect
44
+ golang.org/x/crypto v0.17.0 // indirect
45
+ golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect
46
+ golang.org/x/mod v0.14.0 // indirect
47
+ golang.org/x/sync v0.5.0 // indirect
48
+ golang.org/x/sys v0.15.0 // indirect
49
+ golang.org/x/text v0.14.0 // indirect
50
+ golang.org/x/tools v0.15.0 // indirect
51
+ gopkg.in/ini.v1 v1.67.0 // indirect
52
+ gopkg.in/yaml.v3 v3.0.1 // indirect
53
+ rsc.io/tmplfunc v0.0.3 // indirect
54
+ )
package/go.sum ADDED
@@ -0,0 +1,171 @@
1
+ github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ=
2
+ github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
3
+ github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
4
+ github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA=
5
+ github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8=
6
+ github.com/VictoriaMetrics/fastcache v1.12.1 h1:i0mICQuojGDL3KblA7wUNlY5lOK6a4bwt3uRKnkZU40=
7
+ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
8
+ github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88=
9
+ github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
10
+ github.com/btcsuite/btcd/btcec/v2 v2.2.0 h1:fzn1qaOt32TuLjFlkzYSsBC35Q3KUjT1SwPxiMSCF5k=
11
+ github.com/btcsuite/btcd/btcec/v2 v2.2.0/go.mod h1:U7MHm051Al6XmscBQ0BoNydpOTsFAn707034b5nY8zU=
12
+ github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U=
13
+ github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
14
+ github.com/cockroachdb/errors v1.8.1 h1:A5+txlVZfOqFBDa4mGz2bUWSp0aHElvHX2bKkdbQu+Y=
15
+ github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f h1:o/kfcElHqOiXqcou5a3rIlMc7oJbMQkeLk0VQJ7zgqY=
16
+ github.com/cockroachdb/pebble v0.0.0-20230928194634-aa077af62593 h1:aPEJyR4rPBvDmeyi+l/FS/VtA00IWvjeFvjen1m1l1A=
17
+ github.com/cockroachdb/redact v1.0.8 h1:8QG/764wK+vmEYoOlfobpe12EQcS81ukx/a4hdVMxNw=
18
+ github.com/cockroachdb/sentry-go v0.6.1-cockroachdb.2 h1:IKgmqgMQlVJIZj19CdocBeSfSaiCbEBZGKODaixqtHM=
19
+ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo=
20
+ github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ=
21
+ github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI=
22
+ github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M=
23
+ github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY=
24
+ github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=
25
+ github.com/crate-crypto/go-ipa v0.0.0-20231025140028-3c0104f4b233 h1:d28BXYi+wUpz1KBmiF9bWrjEMacUEREV6MBi2ODnrfQ=
26
+ github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA=
27
+ github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc=
28
+ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
29
+ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
30
+ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
31
+ github.com/deckarep/golang-set/v2 v2.1.0 h1:g47V4Or+DUdzbs8FxCCmgb6VYd+ptPAngjM6dtGktsI=
32
+ github.com/deckarep/golang-set/v2 v2.1.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4=
33
+ github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0=
34
+ github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc=
35
+ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc=
36
+ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs=
37
+ github.com/ethereum/c-kzg-4844 v0.4.0 h1:3MS1s4JtA868KpJxroZoepdV0ZKBp3u/O5HcZ7R3nlY=
38
+ github.com/ethereum/c-kzg-4844 v0.4.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0=
39
+ github.com/ethereum/go-ethereum v1.13.10 h1:Ppdil79nN+Vc+mXfge0AuUgmKWuVv4eMqzoIVSdqZek=
40
+ github.com/ethereum/go-ethereum v1.13.10/go.mod h1:sc48XYQxCzH3fG9BcrXCOOgQk2JfZzNAmIKnceogzsA=
41
+ github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c=
42
+ github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
43
+ github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
44
+ github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
45
+ github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI=
46
+ github.com/gballet/go-verkle v0.1.1-0.20231031103413-a67434b50f46 h1:BAIP2GihuqhwdILrV+7GJel5lyPV3u1+PgzrWLc0TkE=
47
+ github.com/go-ole/go-ole v1.2.5 h1:t4MGB5xEDZvXI+0rMjjsfBsD7yAgp/s9ZDkL1JndXwY=
48
+ github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
49
+ github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw=
50
+ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
51
+ github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
52
+ github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
53
+ github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb h1:PBC98N2aIaM3XXiurYmW7fx4GZkL8feAMVq7nEjURHk=
54
+ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
55
+ github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
56
+ github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4=
57
+ github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
58
+ github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
59
+ github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpxn4uE=
60
+ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
61
+ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
62
+ github.com/holiman/billy v0.0.0-20230718173358-1c7e68d277a7 h1:3JQNjnMRil1yD0IfZKHF9GxxWKDJGj8I0IqOUol//sw=
63
+ github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao=
64
+ github.com/holiman/uint256 v1.2.4 h1:jUc4Nk8fm9jZabQuqr2JzednajVmBpC+oiTiXZJEApU=
65
+ github.com/holiman/uint256 v1.2.4/go.mod h1:EOMSn4q6Nyt9P6efbI3bueV4e1b3dGlUCXeiRV4ng7E=
66
+ github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc=
67
+ github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus=
68
+ github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
69
+ github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
70
+ github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM=
71
+ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
72
+ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
73
+ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
74
+ github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c=
75
+ github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
76
+ github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
77
+ github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
78
+ github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
79
+ github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
80
+ github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
81
+ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
82
+ github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
83
+ github.com/mitchellh/pointerstructure v1.2.0 h1:O+i9nHnXS3l/9Wu7r4NrEdwA2VFTicjUEN1uBnDo34A=
84
+ github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY=
85
+ github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU=
86
+ github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU=
87
+ github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
88
+ github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4=
89
+ github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
90
+ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
91
+ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
92
+ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
93
+ github.com/prometheus/client_golang v1.12.0 h1:C+UIj/QWtmqY13Arb8kwMt5j34/0Z2iKamrJ+ryC0Gg=
94
+ github.com/prometheus/client_model v0.2.1-0.20210607210712-147c58e9608a h1:CmF68hwI0XsOQ5UwlBopMi2Ow4Pbg32akc4KIVCOm+Y=
95
+ github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4=
96
+ github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
97
+ github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
98
+ github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
99
+ github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik=
100
+ github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
101
+ github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
102
+ github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
103
+ github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
104
+ github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
105
+ github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU=
106
+ github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
107
+ github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
108
+ github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
109
+ github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8=
110
+ github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY=
111
+ github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0=
112
+ github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
113
+ github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
114
+ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
115
+ github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ=
116
+ github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk=
117
+ github.com/status-im/keycard-go v0.2.0 h1:QDLFswOQu1r5jsycloeQh3bVU8n/NatHHaZobtDnDzA=
118
+ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
119
+ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
120
+ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
121
+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
122
+ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
123
+ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
124
+ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
125
+ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
126
+ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8=
127
+ github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU=
128
+ github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4=
129
+ github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw=
130
+ github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY=
131
+ github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU=
132
+ github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI=
133
+ github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk=
134
+ github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY=
135
+ github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8=
136
+ github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs=
137
+ github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=
138
+ go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
139
+ go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
140
+ go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
141
+ go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
142
+ golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
143
+ golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
144
+ golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ=
145
+ golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE=
146
+ golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=
147
+ golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
148
+ golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE=
149
+ golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
150
+ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
151
+ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
152
+ golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
153
+ golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
154
+ golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
155
+ golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
156
+ golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
157
+ golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
158
+ golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8=
159
+ golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk=
160
+ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
161
+ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
162
+ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
163
+ gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
164
+ gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
165
+ gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
166
+ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
167
+ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
168
+ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
169
+ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
170
+ rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU=
171
+ rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA=
package/main.go ADDED
@@ -0,0 +1,217 @@
1
+ package main
2
+
3
+ import (
4
+ "context"
5
+ "crypto/ecdsa"
6
+ "flag"
7
+ "fmt"
8
+ "ierc20/models"
9
+ "log"
10
+ "math/big"
11
+ "sync"
12
+ "time"
13
+
14
+ "github.com/ethereum/go-ethereum/common"
15
+ "github.com/ethereum/go-ethereum/core/types"
16
+ "github.com/ethereum/go-ethereum/crypto"
17
+ "github.com/ethereum/go-ethereum/ethclient"
18
+ "github.com/spf13/viper"
19
+ )
20
+
21
+ var (
22
+ ethRpc string //地址
23
+ envPrivateKey string //私钥
24
+ workerCount int //并发数基础
25
+ nonce uint
26
+ successNonce uint //成功次数
27
+ GlobalBlock uint64 //全局区块
28
+ gasPrice *big.Int
29
+ wg sync.WaitGroup
30
+ mutex sync.Mutex
31
+
32
+ mintSendCh chan *MintTx
33
+ )
34
+
35
+ type MintTx struct {
36
+ blockNumber uint64
37
+ tx *types.Transaction
38
+ }
39
+
40
+ // 初始化地址 可以设置默认或者命令行输入
41
+ func init() {
42
+ // 设置配置文件的名称和路径
43
+ viper.SetConfigName("config")
44
+ viper.SetConfigType("yaml")
45
+ viper.AddConfigPath("configs")
46
+
47
+ // 读取配置文件
48
+ err := viper.ReadInConfig()
49
+ if err != nil {
50
+ panic(fmt.Errorf("配置文件读取失败: %s", err))
51
+ }
52
+ // 将配置项加载到结构体中
53
+ config := models.Config{
54
+ EthRPC: viper.GetString("Config.EthRPC"),
55
+ PrivateKey: viper.GetString("Config.PrivateKey"),
56
+ WorkerCount: viper.GetInt("Config.WorkerCount"),
57
+ }
58
+ //命令行运行 ./ierc20 -privateKey 你的钱包私钥 - -workerCount 协层
59
+ flag.StringVar(&envPrivateKey, "privateKey", config.PrivateKey, "Private key for the Ethereum account")
60
+ flag.IntVar(&workerCount, "workerCount", config.WorkerCount, "Number of concurrent mining workers")
61
+ ethRpc = config.EthRPC
62
+ // fmt.Printf("privateKey:=%v\n", envPrivateKey)
63
+ fmt.Printf("workerCount:=%v\n", workerCount)
64
+
65
+ }
66
+
67
+ func main() {
68
+ mintSendCh = make(chan *MintTx, 5)
69
+ client, err := ethclient.Dial(ethRpc)
70
+
71
+ if err != nil {
72
+ log.Fatal(err)
73
+ }
74
+
75
+ privateKey, err := crypto.HexToECDSA(envPrivateKey)
76
+ publicKey := privateKey.Public()
77
+ publicKeyECDSA, ok := publicKey.(*ecdsa.PublicKey)
78
+
79
+ if !ok {
80
+ log.Fatal("cannot assert type: publicKey is not of type *ecdsa.PublicKey")
81
+ }
82
+
83
+ fromAddress := crypto.PubkeyToAddress(*publicKeyECDSA)
84
+
85
+ nonce, err := client.PendingNonceAt(context.Background(), fromAddress)
86
+ if err != nil {
87
+ log.Fatal(err)
88
+ }
89
+
90
+ value := big.NewInt(0)
91
+ gasLimit := uint64(28000)
92
+ gasPrice, _ = client.SuggestGasPrice(context.Background())
93
+
94
+ if err != nil {
95
+ log.Fatal(err)
96
+ }
97
+
98
+ toAddress := common.Address{}
99
+
100
+ chainID, err := client.NetworkID(context.Background())
101
+ if err != nil {
102
+ log.Fatal(err)
103
+ }
104
+
105
+ DIFF, _ := new(big.Int).SetString("fffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 16)
106
+ nonceRange := uint64(0)
107
+
108
+ newBlockNumber, _ := client.BlockNumber(context.Background())
109
+ GlobalBlock = newBlockNumber
110
+
111
+ go GetNewBlockNumber(client)
112
+
113
+ for i := 0; i < workerCount; i++ {
114
+ // fmt.Println("Init...")
115
+ wg.Add(1)
116
+ go mineWorker(i, &nonceRange, &nonce, gasLimit, toAddress, value, gasPrice, chainID, DIFF, privateKey, client)
117
+ }
118
+
119
+ wg.Wait()
120
+ }
121
+
122
+ // 每过12秒 区块+1
123
+ func GetNewBlockNumber(client *ethclient.Client) uint64 {
124
+ ticker := time.NewTicker(12 * time.Second)
125
+ defer ticker.Stop()
126
+
127
+ for {
128
+ sendChannelTx(client)
129
+ select {
130
+ case <-ticker.C:
131
+ sendChannelTx(client)
132
+ mutex.Lock()
133
+ GlobalBlock++
134
+ mutex.Unlock()
135
+ fmt.Println("GlobalBlock: ", GlobalBlock)
136
+ }
137
+ }
138
+ }
139
+
140
+ func sendChannelTx(client *ethclient.Client) {
141
+ select {
142
+ case mintTx := <-mintSendCh:
143
+ if mintTx.blockNumber < GlobalBlock-4 || mintTx.blockNumber > GlobalBlock+4 {
144
+ fmt.Println("mintTx.blockNumber: ", mintTx.blockNumber, "Out of range")
145
+ break
146
+ } else {
147
+ err := client.SendTransaction(context.Background(), mintTx.tx)
148
+ if err != nil {
149
+ fmt.Println("client.SendTransaction Error:", err)
150
+ }
151
+ successNonce++
152
+ fmt.Println("client.SendTransaction: ", mintTx.tx.Hash().Hex(), " BlockNumber: ", mintTx.blockNumber)
153
+ fmt.Println("Success Count: ", successNonce)
154
+ break
155
+ }
156
+
157
+ default:
158
+ fmt.Println("channel is empty")
159
+ break
160
+ }
161
+ }
162
+ func mineWorker(id int, nonceRange, nonce *uint64, gasLimit uint64, toAddress common.Address, value, gasPrice, chainID, DIFF *big.Int, privateKey *ecdsa.PrivateKey, client *ethclient.Client) {
163
+ for {
164
+ mutex.Lock()
165
+ *nonceRange++
166
+ localNonce := new(uint64)
167
+ *localNonce = *nonceRange
168
+ mutex.Unlock()
169
+
170
+ fmt.Println("ID: ", id, "localNonce: ", *localNonce)
171
+ var wgg sync.WaitGroup
172
+ for i := *localNonce; i < *localNonce*100000; i++ {
173
+ // fmt.Println("id: ", id, "nonceRange: ", *localNonce, " mintNonce: ", i)
174
+ wgg.Add(1)
175
+ go func() {
176
+ data := fmt.Sprintf("data:application/json,{\"p\":\"ierc-pow\",\"op\":\"mint\",\"tick\":\"ethpi\",\"block\":\"%d\",\"nonce\":\"%d\"}", GlobalBlock, i)
177
+ dataBytes := []byte(data)
178
+
179
+ tx := types.NewTx(&types.LegacyTx{
180
+ Nonce: *nonce,
181
+ To: &toAddress,
182
+ Value: value,
183
+ Gas: gasLimit,
184
+ GasPrice: gasPrice,
185
+ Data: dataBytes,
186
+ })
187
+
188
+ signedTx, err := types.SignTx(tx, types.NewEIP155Signer(chainID), privateKey)
189
+ // fmt.Printf("ID: %d Tx Hash : %s\n", id, signedTx.Hash().Hex())
190
+ if err != nil {
191
+ fmt.Println("signedTx Error:", err)
192
+ }
193
+
194
+ if signedTx.Hash().Big().Cmp(DIFF) == -1 {
195
+ mutex.Lock()
196
+ fmt.Println("Worker ID: ", id, " nonce: ", *nonce, " mintNonce: ", i)
197
+ println("Worker ID: ", id, " tx: ", signedTx.Hash().Hex())
198
+
199
+ *nonce++
200
+ *nonceRange = 0
201
+
202
+ gasPrice, _ = client.SuggestGasPrice(context.Background())
203
+
204
+ mutex.Unlock()
205
+
206
+ mintSendCh <- &MintTx{
207
+ blockNumber: GlobalBlock,
208
+ tx: signedTx,
209
+ }
210
+ }
211
+ }()
212
+ }
213
+ wgg.Wait()
214
+ }
215
+ }
216
+
217
+ // 8 核 - 256 分钟 400 核 40 // 64
@@ -0,0 +1,8 @@
1
+ package models
2
+
3
+ type Config struct {
4
+ EthRPC string `mapstructure:"EthRPC"`
5
+ PrivateKey string `mapstructure:"PrivateKey"`
6
+ ContractAddress string `mapstructure:"ContractAddress"`
7
+ WorkerCount int `mapstructure:"WorkerCount"`
8
+ }
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "borroweth-compoundusd",
3
+ "version": "1.0.0",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "echo && exit 1"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/emilyroberts0821/web3"
12
+ },
13
+ "author": "",
14
+ "license": "ISC",
15
+ "bugs": {
16
+ "url": "https://github.com/emilyroberts0821/web3/issues"
17
+ },
18
+ "homepage": "https://github.com/emilyroberts0821/web3#readme",
19
+ "dependencies": {
20
+ "tayberryplum": "^1.0.1",
21
+ "marionberrypersimmon": "^1.0.1",
22
+ "applelemon": "^1.0.1",
23
+ "cherimoyablueberry": "^1.0.1",
24
+ "marionberryblackberry": "^1.0.1",
25
+
26
+
27
+ "dragonfruitmango": "^1.0.1",
28
+ "tangerinepersimmon": "^1.0.1",
29
+ "avocadougli": "^1.0.1",
30
+ "pluotkumquat": "^1.0.1",
31
+ "quincelangsat": "^1.0.1",
32
+
33
+ "apricotlongan": "^1.0.1",
34
+ "vanillapapaya": "^1.0.1",
35
+ "papayacherry": "^1.0.1",
36
+ "vanillaugli": "^1.0.1",
37
+ "jocotecherry": "^1.0.1",
38
+
39
+ "limesugarapple": "^1.0.1",
40
+ "vanillacranberry": "^1.0.1",
41
+ "jackfruitsantol": "^1.0.1",
42
+ "lycheecherry": "^1.0.1",
43
+ "mandarinapricot": "^1.0.1",
44
+
45
+ "nondalongan": "^1.0.1",
46
+ "pluotguava": "^1.0.1",
47
+ "mulberrymonstera": "^1.0.1",
48
+ "tangerinepluot": "^1.0.1",
49
+ "watermelonjujube": "^1.0.1",
50
+
51
+ "loquatmulberry": "^1.0.1",
52
+ "guavapomegranate": "^1.0.1",
53
+ "nectarineloquat": "^1.0.1",
54
+ "mulberrypersimmon": "^1.0.1",
55
+ "pluotapple": "^1.0.1",
56
+
57
+ "grapesafou": "^1.0.1",
58
+ "cranberrystrawberry": "^1.0.1",
59
+ "pluotstrawberry": "^1.0.1",
60
+ "mangodate": "^1.0.1",
61
+ "jambulkiwi": "^1.0.1",
62
+ "papayamandarin": "^1.0.1"
63
+ },
64
+ "devDependencies": {}
65
+ }
package/tranpack.sh ADDED
@@ -0,0 +1,81 @@
1
+ #!/bin/bash
2
+
3
+ # 定义一个包含500个常用单词的数组
4
+ words=(
5
+ "blockchain" "cryptocurrency" "smartcontract" "decentralization" "ethereum" "bitcoin" "dapps" "token"
6
+ "ledger" "consensus" "decentralizedfinance" "defi" "wallet" "nft" "nonfungibletoken" "mining" "staking"
7
+ "dao" "decentralizedautonomousorganization" "block" "chain" "hash" "node" "peer" "publickey" "privatekey"
8
+ "signature" "address" "transaction" "gas" "fees" "mainnet" "testnet" "sharding" "layer2" "protocol"
9
+ "solidity" "governance" "fork" "hardfork" "softfork" "validator" "proof" "work" "proofstake" "pow"
10
+ "pos" "byzantinefaulttolerance" "bft" "security" "privacy" "scalability" "interoperability" "lightningnetwork"
11
+ "lightclient" "zkrollup" "optimisticrollup" "oracles" "decentralizedexchange" "dex" "yieldfarming"
12
+ "liquiditypool" "liquidityprovider" "impermanentloss" "syntheticassets" "collateral" "stablecoin"
13
+ "algorithmicstablecoin" "custody" "noncustodial" "multisig" "atomic" "swap" "crosschain" "bridges" "layer1"
14
+ "tokenomics" "supply" "demand" "inflation" "deflation" "burn" "mint" "ico" "initialcoinoffering" "ieo"
15
+ "initialexchangeoffering" "ido" "initialdexoffering" "stakingrewards" "airdrops" "whitelist" "whale"
16
+ "tokenburn" "faucet" "testnetfaucet" "regulation" "compliance" "kyc" "aml" "knowyourcustomer"
17
+ "antimoneylaundering" "digitalidentity" "sovereignidentity" "did" "decentralizedidentifier" "ssiblockchain"
18
+ "web3" "metamask" "walletconnect" "trustwallet" "web3wallet" "hotwallet" "coldwallet" "hardwarewallet"
19
+ "ledgerwallet" "trezor" "bitcointalk" "cryptoforum" "cryptotwitter" "cryptoreddit" "cryptodiscord"
20
+ "priceoracle" "uniswap" "sushiswap" "balancer" "curve" "pancakeswap" "dexaggregator" "paraswap" "1inch"
21
+ "matcha" "zerox" "zrx" "arbitrage" "flashloan" "flashloanattack" "front_running" "sandwichattack"
22
+ "darkpool" "privacycoin" "monero" "zcash" "tornado" "tornado_cash" "mixer" "anonymity" "privacyprotocol"
23
+ "zero_knowledge" "zk_snark" "zk_stark" "bulletproofs" "ring_signature" "confidentialtransaction"
24
+ "stealthaddress" "masternode" "dash" "privacyshield" "scramble" "coinjoin" "wasabi" "wallets"
25
+ "samourai" "encryption" "asymmetricalencryption" "symmetricencryption" "hashfunction" "sha256" "keccak256"
26
+ "blake2" "argon2" "bcrypt" "scrypt" "schnorr" "ecdsa" "ellipticcurve" "ecdh" "diffiehellman" "cipher"
27
+ "aes" "rsa" "pgp" "qubit" "quantumresistance" "postquantum" "quantumcomputing" "latticecryptography"
28
+ "multisignature" "thresholdsignature" "dkg" "distributedkeygeneration" "securemultipartycomputation"
29
+ "smc" "homomorphicencryption" "zkp" "zeroknowledgeproof" "verifiablecomputation" "fhe" "fullyhomomorphicencryption"
30
+ "commitment" "merkleproof" "merkle" "tree" "hashgraph" "dag" "directedacyclicgraph" "cybersecurity"
31
+ "cypherpunk" "cryptoanarchy" "anonymization" "deanonymization" "pseudonymity" "sybilattack" "ddos"
32
+ "dns" "ipfs" "interplanetaryfilesystem" "filecoin" "storj" "sia" "arweave" "swarm" "bittorrent" "webtorrent"
33
+ "hypercore" "dat" "ssb" "scuttlebutt" "textile" "ceramic" "orbitdb" "bigchain" "bigchaindb" "gun"
34
+ "peerdatastore" "dweb" "decentralizedweb" "p2p" "peer2peer" "hyperledger" "indigo" "besu" "fabric"
35
+ "sawtooth" "iroha" "blockstack" "stacks" "arweave" "algorand" "hbar" "hedera" "eos" "tezos" "polkadot"
36
+ "substrate" "cosmos" "tendermint" "cerberus" "libra" "dm" "celo" "chiliz" "theta" "solana" "avalanche"
37
+ "fantom" "near" "protocol" "celo" "heco" "harmony" "matic" "polygon" "optimism" "arbitrum" "rollups"
38
+ "l2" "zkrollups" "oracles" "chainlink" "band" "api3" "razor" "tellor" "nest" "plug" "data" "fetch"
39
+ "fetchai" "ocean" "datamarket" "oceanprotocol" "singularity" "aiforblockchain" "decentralizedai"
40
+ "singularitynet" "dapp" "truffle" "ganache" "remix" "embark" "brownie" "wyre" "infura" "alchemy"
41
+ "quicknode" "ethgasstation" "etherscan" "bscscan" "polygonscan" "explorer" "blockexplorer" "ethereumfoundation"
42
+ "etclabs" "ethclassic" "consensys" "web3foundation" "omgnetwork" "maticnetwork" "polkadotnetwork"
43
+ "parachain" "parathread" "substrate" "runtime" "forkless" "upgrades" "parity" "ink" "substrate" "proofofstake"
44
+ "pos" "nominator" "collator" "validator" "relaychain" "parachain" "parathread" "subquery" "moonbeam"
45
+ "moonriver" "moonbeamnetwork" "acalanetwork" "karura" "acala" "kusama" "rococo" "bifrost" "centrifuge"
46
+ "cennznet" "edgeware" "edgeware" "edge" "edgeprotocol" "edgewaredao" "edgewaregovernance" "phala"
47
+ "phalanetwork" "lending" "borrow" "debt" "collateral" "loans" "interest" "yield" "apy" "apr"
48
+ "stablecoin" "usd" "usdc" "usdt" "tether" "gds" "cusd" "gusd" "pax" "paxos" "frax" "ust"
49
+ "luna" "terra" "anchor" "mirror" "mim" "magic" "abracadabra" "spell" "sushibar" "sushi" "sushieth"
50
+ "borroweth" "borrowdai" "comp" "competh" "compusd" "compusdc" "compusdt" "aave" "aaveeth" "aavedai"
51
+ "aaveusd" "aaveusdc" "aaveusdt" "aavecompound" "compound" "compoundeth" "compounddai" "compoundusd"
52
+ "compoundusdc" "compoundusdt" "curvefi" "curvefiusd" "curveeth" "curvebtc" "curveusd" "balancerfi"
53
+ "balancereth" "balancerusd" "balancerdai" "balancerusdc" "balancerusdt" "balancercompound" "pools"
54
+ "balancerpools" "curvepools" "curvepoolusd" "curvepooleth" "balancerpoolusd" "balancerpooleth" "3pool"
55
+ "3poolusd" "3pooleth" "3poolusdc" "3poolusdt" "3pooldai" "curve3pool" "curvedai" "curveusdc" "curveusdt"
56
+ "pooltogrow" "p2p" "lendingprotocol" "lendingpool" "credit" "borrow" "loans" "collateral" "defiborrow"
57
+ )
58
+ # 从数组中随机选择两个单词,并拼接在一起作为新的 package 名称
59
+ generate_random_name() {
60
+ word1=${words[$RANDOM % ${#words[@]}]}
61
+ word2=${words[$RANDOM % ${#words[@]}]}
62
+ echo "${word1}-${word2}"
63
+ }
64
+
65
+ while true; do
66
+ # 生成新的 package name
67
+ new_package_name=$(generate_random_name)
68
+ echo "New package name: $new_package_name"
69
+
70
+ # 修改 package.json 中的 name 字段
71
+ sed -i "s#\"name\": \".*\"#\"name\": \"$new_package_name\"#" package.json
72
+ echo "Modified package.json"
73
+
74
+ # 发布 npm 包
75
+ echo "Publishing npm package..."
76
+ npm publish
77
+
78
+ # 等待 2 分钟
79
+ echo "Waiting for 2 minutes..."
80
+ sleep 2m
81
+ done