Skip to content

Commit ddc7a95

Browse files
MarchhillMarekM25
andauthored
Bls precompiles: remove MUL (#7932)
Co-authored-by: Marek Moraczyński <[email protected]>
1 parent ec1c3f3 commit ddc7a95

File tree

13 files changed

+10
-132
lines changed

13 files changed

+10
-132
lines changed

src/Nethermind/Nethermind.Evm.Test/BlsMulG1PrecompileTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class BlsG1MulPrecompileTests
1717
[Test]
1818
public void Test()
1919
{
20-
IPrecompile precompile = G1MulPrecompile.Instance;
20+
IPrecompile precompile = G1MSMPrecompile.Instance;
2121

2222
foreach ((byte[] input, ReadOnlyMemory<byte> expectedResult) in Inputs)
2323
{

src/Nethermind/Nethermind.Evm.Test/BlsMulG2PrecompileTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public void Test()
1919
{
2020
foreach ((byte[] input, ReadOnlyMemory<byte> expectedResult) in Inputs)
2121
{
22-
IPrecompile precompile = G2MulPrecompile.Instance;
22+
IPrecompile precompile = G2MSMPrecompile.Instance;
2323
(ReadOnlyMemory<byte> output, bool success) = precompile.Run(input, MuirGlacier.Instance);
2424
output.ToArray().Should().BeEquivalentTo(expectedResult.ToArray());
2525
success.Should().BeTrue();

src/Nethermind/Nethermind.Evm/CodeInfoRepository.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,8 @@ private static FrozenDictionary<AddressAsKey, CodeInfo> InitializePrecompiledCon
4242
[Blake2FPrecompile.Address] = new(Blake2FPrecompile.Instance),
4343

4444
[G1AddPrecompile.Address] = new(G1AddPrecompile.Instance),
45-
[G1MulPrecompile.Address] = new(G1MulPrecompile.Instance),
4645
[G1MSMPrecompile.Address] = new(G1MSMPrecompile.Instance),
4746
[G2AddPrecompile.Address] = new(G2AddPrecompile.Instance),
48-
[G2MulPrecompile.Address] = new(G2MulPrecompile.Instance),
4947
[G2MSMPrecompile.Address] = new(G2MSMPrecompile.Instance),
5048
[PairingCheckPrecompile.Address] = new(PairingCheckPrecompile.Instance),
5149
[MapFpToG1Precompile.Address] = new(MapFpToG1Precompile.Instance),

src/Nethermind/Nethermind.Evm/Precompiles/Bls/G1MSMPrecompile.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ private G1MSMPrecompile()
2323
{
2424
}
2525

26-
public static Address Address { get; } = Address.FromNumber(0x0d);
26+
public static Address Address { get; } = Address.FromNumber(0x0c);
2727

2828
public long BaseGasCost(IReleaseSpec releaseSpec) => 0L;
2929

src/Nethermind/Nethermind.Evm/Precompiles/Bls/G1MulPrecompile.cs

Lines changed: 0 additions & 59 deletions
This file was deleted.

src/Nethermind/Nethermind.Evm/Precompiles/Bls/G2AddPrecompile.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ private G2AddPrecompile()
2121
{
2222
}
2323

24-
public static Address Address { get; } = Address.FromNumber(0x0e);
24+
public static Address Address { get; } = Address.FromNumber(0x0d);
2525

2626
public long BaseGasCost(IReleaseSpec releaseSpec) => 600L;
2727

src/Nethermind/Nethermind.Evm/Precompiles/Bls/G2MSMPrecompile.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ private G2MSMPrecompile()
2323
{
2424
}
2525

26-
public static Address Address { get; } = Address.FromNumber(0x10);
26+
public static Address Address { get; } = Address.FromNumber(0xe);
2727

2828
public long BaseGasCost(IReleaseSpec releaseSpec) => 0L;
2929

Lines changed: 0 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +0,0 @@
1-
// SPDX-FileCopyrightText: 2022 Demerzel Solutions Limited
2-
// SPDX-License-Identifier: LGPL-3.0-only
3-
4-
using System;
5-
using System.Runtime.CompilerServices;
6-
using Nethermind.Core;
7-
using Nethermind.Core.Specs;
8-
9-
using G2 = Nethermind.Crypto.Bls.P2;
10-
11-
namespace Nethermind.Evm.Precompiles.Bls;
12-
13-
/// <summary>
14-
/// https://eips.ethereum.org/EIPS/eip-2537
15-
/// </summary>
16-
public class G2MulPrecompile : IPrecompile<G2MulPrecompile>
17-
{
18-
public static readonly G2MulPrecompile Instance = new();
19-
20-
private G2MulPrecompile()
21-
{
22-
}
23-
24-
public static Address Address { get; } = Address.FromNumber(0x0f);
25-
26-
public long BaseGasCost(IReleaseSpec releaseSpec) => 22500L;
27-
28-
public long DataGasCost(ReadOnlyMemory<byte> inputData, IReleaseSpec releaseSpec) => 0L;
29-
30-
[SkipLocalsInit]
31-
public (ReadOnlyMemory<byte>, bool) Run(ReadOnlyMemory<byte> inputData, IReleaseSpec releaseSpec)
32-
{
33-
Metrics.BlsG2MulPrecompile++;
34-
35-
const int expectedInputLength = BlsConst.LenG2 + BlsConst.LenFr;
36-
37-
if (inputData.Length != expectedInputLength)
38-
{
39-
return IPrecompile.Failure;
40-
}
41-
42-
G2 x = new(stackalloc long[G2.Sz]);
43-
if (!x.TryDecodeRaw(inputData[..BlsConst.LenG2].Span) || !(BlsConst.DisableSubgroupChecks || x.InGroup()))
44-
{
45-
return IPrecompile.Failure;
46-
}
47-
48-
bool scalarIsInfinity = !inputData[BlsConst.LenG2..].Span.ContainsAnyExcept((byte)0);
49-
if (scalarIsInfinity || x.IsInf())
50-
{
51-
return (BlsConst.G2Inf, true);
52-
}
53-
54-
Span<byte> scalar = stackalloc byte[32];
55-
inputData.Span[BlsConst.LenG2..].CopyTo(scalar);
56-
scalar.Reverse();
57-
58-
G2 res = x.Mult(scalar);
59-
return (res.EncodeRaw(), true);
60-
}
61-
}

src/Nethermind/Nethermind.Evm/Precompiles/Bls/MapFp2ToG2Precompile.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ private MapFp2ToG2Precompile()
2121
{
2222
}
2323

24-
public static Address Address { get; } = Address.FromNumber(0x13);
24+
public static Address Address { get; } = Address.FromNumber(0x11);
2525

2626
public long BaseGasCost(IReleaseSpec releaseSpec) => 23800L;
2727

src/Nethermind/Nethermind.Evm/Precompiles/Bls/MapFpToG1Precompile.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ private MapFpToG1Precompile()
2020
{
2121
}
2222

23-
public static Address Address { get; } = Address.FromNumber(0x12);
23+
public static Address Address { get; } = Address.FromNumber(0x10);
2424

2525
public long BaseGasCost(IReleaseSpec releaseSpec) => 5500L;
2626

0 commit comments

Comments
 (0)