У меня возникли проблемы с развертыванием моего смарт-контракта в сети ropsten с использованием infura и truffle. Я получаю сообщение об ошибке
"var sig = secp256k1.sign(msgHash, privateKey);
^
TypeError: private key should be a Buffer"
Вы можете узнать, как развернуть контракт с помощью трюфеля и инфуры, как это объясняется в документации по трюфелю.
Я скопировал код развертывания, который у меня уже был ниже,
// Allows us to use ES6 in our migrations and tests.
require('babel-register')
const HDWalletProvider = require("truffle-hdwallet-provider-privkey");
const privateKey = "PRIVATEKEYADDRESS"; // private keys
module.exports = {
// See <http://truffleframework.com/docs/advanced/configuration>
// for more about customizing your Truffle configuration!
networks: {
development: {
host: "127.0.0.1",
port: 8545,
network_id: "*" // Match any network id
},
rinkeby: {
provider: () => {
return new HDWalletProvider(privateKey, "https://rinkeby.infura.io/INFURAAPIKEY")
},
network_id: 4
}
}
};
Надеюсь, это сработает и для вас.
contract myContract is ERC20Interface { .. }
, вам просто нужно включить myContract в файл 2_deploy_contracts.js.Вы должны использовать адрес «от» в нижнем регистре при развертывании контракта для тестирования сети, чтобы избежать этой ошибки.
secp256k1.sign
не принимает параметр from.Согласитесь с Исмаэлем, говорящим, что функция sepc256k1.sign не нуждается в параметре from. у меня работало без объявления приватных ключей и из параметра
Никита Фукс
Исмаэль
const privateKey = Buffer.from("ab1a..", "hex");