es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Nethereum EthECKey no funciona. Los scripts no están compilados.

Si agrego esta línea a mi código, se niega a compilar. (Esto sucede con todos los scripts en Unity, incluso los vacíos)

string publicKey = Nethereum.Signer.EthECKey.GetPublicAddress(privatekey);

Imagen1
Imagen2

Código:

using System.Collections;
using System;
using System.Collections.Generic;
using Nethereum.Util;
using UnityEngine;
using System.Threading.Tasks;
using Nethereum.Hex.HexConvertors.Extensions;
using Org.BouncyCastle.Crypto.Digests;
using System.Linq;
using System.Text;
using Nethereum.Util.Keccak;
using System.Numerics;
using System.Runtime.CompilerServices;
using Nethereum.RLP;
using Nethereum.Signer.Crypto;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Agreement;
using Org.BouncyCastle.Crypto.Generators;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Security;
using Org.BouncyCastle.Utilities;
public class MianScript : MonoBehaviour
{
    string chain = "ethereum";
    string network = "rinkeby";
    [SerializeField]
    public string password;
    public void OnClickBTN()
    {
    string privatekey = CreateAccount();
    string publicKey = Nethereum.Signer.EthECKey.GetPublicAddress(privatekey);
    Debug.Log("\nPrivate: " + privatekey + "\nPublicKey: " + publicKey);
}


public byte[] CalculateHash(byte[] value)
{
    var digest = new KeccakDigest(256);
    var output = new byte[digest.GetDigestSize()];
    digest.BlockUpdate(value, 0, value.Length);
    digest.DoFinal(output, 0);
    return output;
}
public async Task<string> GetBalance(string chain1, string network1, string address1)
{
    string balance = await EVM.BalanceOf(chain1, network1, address1);
    return balance;
}
public static string CreateAccount()
{
    System.Random random = new System.Random();
    var bytes = new Byte[32];
    random.NextBytes(bytes);

    var hexArray = Array.ConvertAll(bytes, x => x.ToString("X2"));
    var hexStr = String.Concat(hexArray);
    return Convert.ToString(hexStr.ToLower());
}
}

¡Ayuda por favor!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el error es causado por el hecho de que el espacio de nombres Nethereum.Signer no está referenciado correctamente en el código. Puede intentar agregar la siguiente línea al comienzo del script para ver si resuelve el problema:

    using Nethereum.Signer;

    Alternativamente, puede intentar usar el nombre completamente calificado de la clase al declarar la variable publicKey:

    string publicKey = EthECKey.GetPublicAddress(privatekey);

    Asegúrese también de verificar si todos los paquetes necesarios están instalados e importados correctamente en el proyecto.

Comments are closed.