-
Notifications
You must be signed in to change notification settings - Fork 4
/
Cargo.toml
235 lines (221 loc) · 20.6 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
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
233
234
235
[workspace]
members = [
"node",
"runtime",
"runtime/generate-bags",
"precompiles/substrate-transfer",
]
resolver = "2"
[workspace.package]
version = "3.40.0"
authors = ["Gluwa Inc. Developer Support <[email protected]>"]
edition = "2021"
license = "Unlicense"
publish = false
repository = "https://github.com/gluwa/creditcoin3/"
[workspace.dependencies]
assert_matches = "1.5.0"
async-trait = "0.1"
bn = { package = "substrate-bn", version = "0.6", default-features = false }
clap = { version = "4.5.21", features = ["derive", "deprecated"] }
derive_more = { version = "1.0", features = ["display"] }
environmental = { version = "1.1.4", default-features = false }
ethereum = { version = "0.14.0", default-features = false }
ethereum-types = { version = "0.14.1", default-features = false }
evm = { git = "https://github.com/rust-blockchain/evm", rev = "b7b82c7e1fc57b7449d6dfa6826600de37cc1e65", default-features = false }
futures = "0.3.31"
hash-db = { version = "0.16.0", default-features = false }
hex = { version = "0.4.3", default-features = false, features = ["alloc"] }
hex-literal = "0.4.1"
impl-serde = { version = "0.4.0", default-features = false }
impl-trait-for-tuples = "0.2.1"
jsonrpsee = "0.16.3"
kvdb-rocksdb = "0.19.0"
libsecp256k1 = { version = "0.7.1", default-features = false }
log = { version = "0.4.22", default-features = false }
num_enum = { version = "0.7.3", default-features = false }
parity-db = "0.4.13"
parking_lot = "0.12.3"
rlp = { version = "0.5.2", default-features = false }
paste = "1.0.15"
slices = "0.2.0"
affix = "0.1.2"
parity-scale-codec = { version = "3.6.12", default-features = false, features = [
"derive",
] }
scale-info = { version = "2.11.6", default-features = false, features = [
"derive",
] }
serde = { version = "1.0", default-features = false, features = [
"derive",
"alloc",
] }
serde_json = "1.0"
similar-asserts = "1.6.0"
sqlx = { version = "0.7.4", default-features = false, features = ["macros"] }
thiserror = "1.0"
tokio = "1.41.1"
sha3 = { version = "0.10", default-features = false }
tracing = "0.1.41"
tracing-core = "0.1.29"
bip32 = { version = "0.5.2", default-features = false, features = ["bip39"] }
primitive-types = "0.12.2"
tiny-bip39 = { version = "1.0", default-features = false }
url = "2.2.2"
# Substrate Client
sc-basic-authorship = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-block-builder = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-chain-spec = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-cli = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sc-client-api = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-client-db = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sc-consensus = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-consensus-babe = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-consensus-babe-rpc = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-consensus-epochs = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-consensus-grandpa = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-consensus-grandpa-rpc = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-consensus-manual-seal = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-executor = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-keystore = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-network = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-network-common = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-network-sync = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-offchain = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-rpc = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-rpc-api = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-service = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sc-telemetry = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-transaction-pool = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-transaction-pool-api = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sc-utils = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
# Substrate Primitive
sp-api = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-block-builder = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-blockchain = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sp-consensus = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sp-consensus-babe = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-consensus-grandpa = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-core = { version = "21.0.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-core-hashing = { version = "9.0.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-core-hashing-proc-macro = { version = "9.0.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-database = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sp-inherents = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-io = { version = "23.0.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-keyring = { version = "24.0.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sp-keystore = { version = "0.27.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
sp-offchain = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-runtime = { version = "24.0.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-runtime-interface = { version = "17.0.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-session = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-staking = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-state-machine = { version = "0.28.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-std = { version = "8.0.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-storage = { version = "13.0.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-timestamp = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-transaction-pool = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-version = { version = "22.0.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
sp-weights = { version = "20.0.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
# Substrate FRAME
frame-benchmarking = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
frame-election-provider-support = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
frame-executive = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
frame-support = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
frame-system = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
frame-system-benchmarking = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
frame-system-rpc-runtime-api = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-authorship = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-babe = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-bags-list = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-balances = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-fast-unstake = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-grandpa = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-identity = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-im-online = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-nomination-pools = { version = "1.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-nomination-pools-runtime-api = { version = "1.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-offences = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-proxy = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-session = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-staking = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-sudo = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-timestamp = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-transaction-payment = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-transaction-payment-rpc = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
pallet-transaction-payment-rpc-runtime-api = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
pallet-utility = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch", default-features = false }
# Substrate Utility
frame-benchmarking-cli = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
substrate-prometheus-endpoint = { version = "0.10.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
substrate-build-script-utils = { version = "3.0.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
substrate-frame-rpc-system = { version = "4.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
substrate-test-runtime-client = { version = "2.0.0", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
substrate-wasm-builder = { version = "5.0.0-dev", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
generate-bags = { git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
xcm = { package = "staging-xcm", git = "https://github.com/gluwa/polkadot-sdk", branch = "release-polkadot-v1.1.0-patch" }
# Frontier Client
fc-api = { version = "1.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch" }
fc-cli = { version = "1.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
fc-consensus = { version = "2.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch" }
fc-db = { version = "2.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
fc-mapping-sync = { version = "2.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
fc-rpc = { version = "2.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
fc-rpc-core = { version = "1.1.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch" }
fc-storage = { version = "1.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch" }
# Frontier Primitive
fp-account = { version = "1.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
fp-consensus = { version = "2.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
fp-dynamic-fee = { version = "1.0.0", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
fp-ethereum = { version = "1.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
fp-evm = { version = "3.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
fp-rpc = { version = "3.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
fp-self-contained = { version = "1.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
fp-storage = { version = "2.0.0", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
# Frontier FRAME
pallet-base-fee = { version = "1.0.0", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
pallet-dynamic-fee = { version = "4.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
pallet-ethereum = { version = "4.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
pallet-evm = { version = "6.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
pallet-evm-chain-id = { version = "1.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
pallet-evm-precompile-modexp = { version = "2.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
pallet-evm-precompile-sha3fips = { version = "2.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
pallet-evm-precompile-simple = { version = "2.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
pallet-evm-test-vector-support = { version = "1.0.0-dev", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch" }
pallet-hotfix-sufficients = { version = "1.0.0", git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
# Frontier Utility
precompile-utils = { git = "https://github.com/gluwa/frontier", branch = "polkadot-v1.1.0-patch", default-features = false }
# Gluwa
creditcoin3-runtime = { path = "runtime", default-features = false }
# Precompiles
pallet-evm-precompile-substrate-transfer = { path = "precompiles/substrate-transfer", default-features = false }
# Arkworks
ark-bls12-377 = { version = "0.4.0", default-features = false, features = [
"curve",
] }
ark-bw6-761 = { version = "0.4.0", default-features = false }
ark-ec = { version = "0.4.0", default-features = false }
ark-ff = { version = "0.4.0", default-features = false }
ark-std = { version = "0.4.0", default-features = false }
# Tracing
evm-gasometer = { git = "https://github.com/rust-blockchain/evm", rev = "b7b82c7e1fc57b7449d6dfa6826600de37cc1e65", default-features = false }
evm-runtime = { git = "https://github.com/rust-blockchain/evm", rev = "b7b82c7e1fc57b7449d6dfa6826600de37cc1e65", default-features = false }
evm-tracing-events = { path = "primitives/rpc/evm-tracing-events", default-features = false }
creditcoin3-primitives-ext = { path = "primitives/ext", default-features = false }
creditcoin3-rpc-primitives-debug = { path = "primitives/rpc/debug", default-features = false }
creditcoin3-evm-tracer = { path = "runtime/evm_tracer", default-features = false }
creditcoin3-cli-opt = { path = "node/cli-opt", default-features = false }
creditcoin3-client-evm-tracing = { path = "client/evm-tracing" }
creditcoin3-rpc-core-debug = { path = "client/rpc-core/debug" }
creditcoin3-rpc-core-trace = { path = "client/rpc-core/trace" }
creditcoin3-rpc-core-types = { path = "client/rpc-core/types" }
creditcoin3-rpc-debug = { path = "client/rpc/debug" }
creditcoin3-rpc-trace = { path = "client/rpc/trace" }
[profile.release]
# Substrate runtime requires unwinding.
panic = "unwind"
[profile.production]
inherits = "release"
# Sacrifice compile speed for execution speed by using optimization flags:
# https://doc.rust-lang.org/rustc/linker-plugin-lto.html
lto = "fat"
codegen-units = 1