Проблемы с формированием сигнатуры MetaMask c#
Я разрабатываю клиента на C# для dydX. В заголовках приватных запросов используется сигнатура по протоколу EIP-712 Ethereum. Для создания запроса я использую следующий код.
var data= new Dictionary<string, object>()
{
{ "action", "DYDX-ONBOARDING" },
{ "onlySignOn", "https://trade.dydx.exchange" }
};
var js = JsonConvert.SerializeObject(data);
var key = new EthECKey(privateKey);
var signature = signer.EncodeUTF8AndSign(js, key);
client = new RestClient("https://api.dydx.exchange");
var req = new RestRequest("v3/onboarding", Method.POST);
req.AddHeader("dydx-ethereum-address", ethereumAdress);
req.AddHeader("dydx-signature", signature);
var result = client.Execute(req)?.Content;
Использую библиотеку:
using Nethereum.Signer;
Прилетает такое сообщение:
msg: "signature must be a valid hex string in headers of hex length 132"
Пробовал сделать сигнатуру с использованием библиотеки Nethereum.Web3, но тоже получаю неверную сигатуру. Может, сталкивался кто с подобной проблемой?
Ответы (1 шт):
Автор решения: Nightfire
→ Ссылка
Вопрос закрыт в связи с использованием их клиентов на py и ts. Если вы наткнулись на этот вопрос, даже не пытайтесь связываться с этим. Библиотеки эфириума и веб3 криво работают.