我正在尝试使用 ethers.js 创建一条链下签名消息,并使用 验证该消息在链上ecrecover。我正在从我的元掩码钱包签署正确的消息,并将该签名中的 r、s 和 v 传递到 ecrecover,但没有与我的元掩码钱包匹配。
我的可靠性代码应该适用于带前缀或不带前缀的签名。
这是我用来验证签名的合同:
pragma solidity ^0.5.0;
contract SignatureVerifier {
/// @dev Signature verifier
function isSigned(address _address, bytes32 messageHash, uint8 v, bytes32 r, bytes32 s) public pure returns (bool) {
return _isSigned(_address, messageHash, v, r, s) || _isSignedPrefixed(_address, messageHash, v, r, s);
}
/// @dev Checks unprefixed signatures.
function _isSigned(address _address, bytes32 messageHash, uint8 v, bytes32 r, bytes32 s)
internal pure returns (bool)
{
return ecrecover(messageHash, v, r, s) == _address; …Run Code Online (Sandbox Code Playgroud) 此时,在我的代码中,我有一个img包含 Base-64 编码图像的变量。我通过记录输出img并将其粘贴到代码美化 Base-64 图像编码器中来确认 Base-64 图像是正确的。
现在,我正在尝试弄清楚如何 POST 到 Slack API。我已阅读 Slack 的 files.upload 方法 API 文档,其中表示它们接受多部分表单数据或 application/x-www-form-urlencoded,但我不知道如何从 Base-64 转换为其中任何一个节点.js。完成转换后,我也不知道如何使用 request.post 制作实际的帖子,因为我不清楚如何对 slack 请求的相关信息进行编码。
目前,我正在尝试这样的事情:
request.post({ url: 'https://slack.com/api/files.upload',
formData: {
token: slackToken,
tile: "Image",
filename: "image.png",
filetype: "auto",
channels: "testing",
file: img,
},
}, function (err, response) {
// just for debugging
console.log(JSON.parse(response.body));
});
Run Code Online (Sandbox Code Playgroud)
获取响应:
{ ok: false, error: 'no_file_data' },这是有道理的,因为 Slack 不接受 base-64 编码img
非常感谢任何帮助!
我通过 netlify 创建了一个托管在 www.example.com 的前端。前端对 AWS 上托管的负载均衡器地址进行 API 调用。通过Netlify,我设置了一条A记录,让server.example.com指向负载均衡器。在 Amazon Certificate Manager 中,通过在 Netlify 中创建 CNAME 记录,我成功地为 example.com 和 server.example.com 导入了证书。
但是,当我在浏览器中访问 server.example.com 时,它正确加载了我的 Express Server,但Not Secure尽管通过 https 提供服务,但它在浏览器中显示。它说证书无效。
我想知道如何使证书在 server.example.com 上有效 - 任何帮助将不胜感激,因为我已经为此苦苦挣扎了两天。
谢谢!
我想在我的合约中包含一个内部方法,该方法允许在由参数命名的存储中创建一个新的 uint256。就像是:
function createUint (string memory _name) internal {
/*
* creates a new uint256 named _name in storage
*/
}
Run Code Online (Sandbox Code Playgroud)
我的猜测是它需要内联汇编,但我不知道如何