Skip to content

Commit 733b4d2

Browse files
Merge pull request #113 from tronprotocol/release_0.8.26
Release 0.8.26
2 parents 3e2818d + 6542cbb commit 733b4d2

3 files changed

Lines changed: 37 additions & 34 deletions

File tree

.github/workflows/build.yml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@ jobs:
1313
- name: Checkout code
1414
uses: actions/checkout@v5
1515

16+
- name: Fix git safe directory
17+
run: git config --global --add safe.directory '*'
18+
1619
- name: Cache dependencies
1720
id: cache-deps
18-
uses: actions/cache@v4
21+
uses: actions/cache@v5
1922
with:
2023
path: .\deps
2124
key: dependencies-win-${{ runner.arch }}-${{ hashFiles('scripts/install_deps.ps1') }}
@@ -37,7 +40,7 @@ jobs:
3740
cp build/solc/Release/solc.exe github/solc-windows.exe
3841
3942
- name: Save artifact to cache
40-
uses: actions/cache/save@v4
43+
uses: actions/cache/save@v5
4144
with:
4245
path: github/solc-windows.exe
4346
key: solc-windows-${{ github.run_id }}
@@ -67,7 +70,7 @@ jobs:
6770
cp build/solc/solc github/solc-macos
6871
6972
- name: Save artifact to cache
70-
uses: actions/cache/save@v4
73+
uses: actions/cache/save@v5
7174
with:
7275
path: github/solc-macos
7376
key: solc-macos-${{ github.run_id }}
@@ -100,7 +103,7 @@ jobs:
100103
cp build/solc/solc github/solc-static-linux
101104
102105
- name: Save artifact to cache
103-
uses: actions/cache/save@v4
106+
uses: actions/cache/save@v5
104107
with:
105108
path: github/solc-static-linux
106109
key: solc-linux-${{ github.run_id }}
@@ -131,7 +134,7 @@ jobs:
131134
cp upload/soljson.js github/soljson.js
132135
133136
- name: Save artifact to cache
134-
uses: actions/cache/save@v4
137+
uses: actions/cache/save@v5
135138
with:
136139
path: github/soljson.js
137140
key: solc-ems-${{ github.run_id }}
@@ -147,27 +150,27 @@ jobs:
147150

148151
steps:
149152
- name: Restore solc-windows
150-
uses: actions/cache/restore@v4
153+
uses: actions/cache/restore@v5
151154
with:
152155
path: github/solc-windows.exe
153156
key: solc-windows-${{ github.run_id }}
154157
enableCrossOsArchive: true
155158

156159
- name: Restore solc-macos
157-
uses: actions/cache/restore@v4
160+
uses: actions/cache/restore@v5
158161
with:
159162
path: github/solc-macos
160163
key: solc-macos-${{ github.run_id }}
161164
enableCrossOsArchive: true
162165

163166
- name: Restore solc-linux
164-
uses: actions/cache/restore@v4
167+
uses: actions/cache/restore@v5
165168
with:
166169
path: github/solc-static-linux
167170
key: solc-linux-${{ github.run_id }}
168171

169172
- name: Restore solc-ems
170-
uses: actions/cache/restore@v4
173+
uses: actions/cache/restore@v5
171174
with:
172175
path: github/soljson.js
173176
key: solc-ems-${{ github.run_id }}

libevmasm/GasMeter.cpp

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,11 @@ GasMeter::GasConsumption GasMeter::estimateMax(AssemblyItem const& _item, bool _
173173
valueSize = 0;
174174
else if (!classes.knownZero(m_state->relativeStackElement(-1 - valueSize)))
175175
gas += GasCosts::callValueTransferGas;
176-
gas += memoryGas(-2 - valueSize, -3 - valueSize);
177-
gas += memoryGas(-4 - valueSize, -5 - valueSize);
176+
int tokenIdSize = 0;
177+
if (_item.instruction() == Instruction::CALLTOKEN)
178+
tokenIdSize = 1;
179+
gas += memoryGas(-2 - valueSize - tokenIdSize, -3 - valueSize - tokenIdSize);
180+
gas += memoryGas(-4 - valueSize - tokenIdSize, -5 - valueSize - tokenIdSize);
178181
}
179182
break;
180183
}
@@ -212,38 +215,29 @@ GasMeter::GasConsumption GasMeter::estimateMax(AssemblyItem const& _item, bool _
212215
case Instruction::ISCONTRACT:
213216
gas = GasCosts::balanceGas(m_evmVersion);
214217
break;
215-
case Instruction::NATIVEFREEZE:
216-
gas = runGas(Instruction::NATIVEFREEZE, m_evmVersion);
217-
break;
218-
case Instruction::NATIVEUNFREEZE:
219-
gas = runGas(Instruction::NATIVEUNFREEZE, m_evmVersion);
220-
break;
221-
case Instruction::NATIVEFREEZEEXPIRETIME:
222-
gas = runGas(Instruction::NATIVEFREEZEEXPIRETIME, m_evmVersion);
223-
break;
218+
case Instruction::NATIVEFREEZE:
219+
gas = GasCosts::freezeV1Gas;
220+
gas += GasCosts::callNewAccountGas;
221+
break;
222+
case Instruction::NATIVEUNFREEZE:
223+
gas = GasCosts::freezeV1Gas;
224+
break;
225+
case Instruction::NATIVEFREEZEEXPIRETIME:
226+
gas = GasCosts::expireTimeGas;
227+
break;
224228
case Instruction::NATIVEVOTE:
225-
gas = runGas(Instruction::NATIVEVOTE, m_evmVersion);
229+
gas = GasCosts::voteGas;
226230
break;
227231
case Instruction::NATIVEWITHDRAWREWARD:
228-
gas = runGas(Instruction::NATIVEWITHDRAWREWARD, m_evmVersion);
232+
gas = GasCosts::withdrawGas;
229233
break;
230234
case Instruction::NATIVEFREEZEBALANCEV2:
231-
gas = runGas(Instruction::NATIVEFREEZEBALANCEV2, m_evmVersion);
232-
break;
233235
case Instruction::NATIVEUNFREEZEBALANCEV2:
234-
gas = runGas(Instruction::NATIVEUNFREEZEBALANCEV2, m_evmVersion);
235-
break;
236-
case Instruction::NATIVECANCELALLUNFREEZEV2:
237-
gas = runGas(Instruction::NATIVECANCELALLUNFREEZEV2, m_evmVersion);
238-
break;
236+
case Instruction::NATIVECANCELALLUNFREEZEV2:
239237
case Instruction::NATIVEWITHDRAWEXPIREUNFREEZE:
240-
gas = runGas(Instruction::NATIVEWITHDRAWEXPIREUNFREEZE, m_evmVersion);
241-
break;
242238
case Instruction::NATIVEDELEGATERESOURCE:
243-
gas = runGas(Instruction::NATIVEDELEGATERESOURCE, m_evmVersion);
244-
break;
245239
case Instruction::NATIVEUNDELEGATERESOURCE:
246-
gas = runGas(Instruction::NATIVEUNDELEGATERESOURCE, m_evmVersion);
240+
gas = GasCosts::freezeV2Gas;
247241
break;
248242
case Instruction::CHAINID:
249243
gas = runGas(Instruction::CHAINID, m_evmVersion);

libevmasm/GasMeter.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,12 @@ namespace GasCosts
177177
return _evmVersion >= langutil::EVMVersion::istanbul() ? 16 : 68;
178178
}
179179
static unsigned const copyGas = 3;
180+
181+
static unsigned const freezeV1Gas = 20000;
182+
static unsigned const expireTimeGas = 50;
183+
static unsigned const freezeV2Gas = 10000;
184+
static unsigned const withdrawGas = 20000;
185+
static unsigned const voteGas = 30000;
180186
}
181187

182188
/**

0 commit comments

Comments
 (0)