我正在尝试使用通过 Solana 命令行生成的私钥在 JavaScript / Node.js 中创建钱包。我想使用该web3.Keypair.fromSeed()方法。
以下是我迄今为止所采取的步骤。
solana-keygen new -o keyfile.json[237,158,92,107,132,192,1,57,8,20,213,108,29,227,37,8,3,105,196,244,8,221,184,199,62,253,98,131,33,165,165,215,14,7,46,23,221,242,240,226,94,79,161,31,192,163,13,25,106,53,34,215,83,124,162,156,8,97,194,180,213,179,33,68]
然而,调用fromSeed()只需要 32 个字节。3. 检查 solana 地址,以便我知道一切何时正常工作:
> solana address -->
wm4MapPtFaUoSsyBJppVnChYMGvHzTeAL6BNZ5GmSqH
Run Code Online (Sandbox Code Playgroud)
这就是公钥
我如何调用web3.Keypair.fromSeed()加载该私钥并获取我的公共地址(也称为公钥)?
我有一个我创建的 Swift 函数,它接受一个函数作为参数:
func doMath(_ f:(_ i1 : Int, _ i2 : Int) ->
(), _ i1: Int, _ i2: Int) {
print("doing Math")
f(i1, i2)
}
Run Code Online (Sandbox Code Playgroud)
该函数采用两个参数(均为 Int)并且不返回任何内容。
我可以使用非匿名函数通过以下代码成功调用该方法。
func add(_ m1:Int, _ m2: Int){
print (m1 + m2)
}
doMath(add, 3,5)
Run Code Online (Sandbox Code Playgroud)
当 doMath 被调用时,它会打印:
做数学
然后调用 add 函数,然后打印:
8
什么语法允许doMath使用匿名函数调用函数?
我试过的
doMath(5,8, {
(m1:Int, m2:Int) -> () in
print(m1 * m2)
})
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,指出:
我正在按照Angular 文档尝试尝试基本的 Web Worker 示例。
\n\n我构建了一个基本的 Angular 模板应用程序,它运行良好。
\n\n我添加了一个名为 RunnerComponent 的非常基本的组件,然后运行命令(按照文档的指示):
\n\nng generate web-worker runner\nRun Code Online (Sandbox Code Playgroud)\n\n这成功添加了依赖项并添加了新的 TypeScript 文件,并将测试代码添加到我的 RunnerComponent 中。\n这里是新添加的 runner.worker.ts 中包含的简单代码:
\n\n/// <reference lib="webworker" />\n\naddEventListener(\'message\', ({ data }) => {\n const response = `worker response to ${data}`;\n postMessage(response);\n});\nRun Code Online (Sandbox Code Playgroud)\n\n这是它添加到 runner.component.ts 中的 RunnerComponent 的代码:
\n\nif (typeof Worker !== \'undefined\') {\n // Create a new\n const worker = new Worker(\'./runner.worker\', { type: \'module\' });\n worker.onmessage = ({ data }) => {\n console.log(`page …Run Code Online (Sandbox Code Playgroud) 我可以使用以下代码通过 NodeJS 成功创建 Hmac:(稍微更改示例: https: //nodejs.org/api/crypto.html#cryptocreatehmacalgorithm-key-options)
Crypto.createHmac('sha256', Crypto.randomBytes(16))
.update('I love cupcakes')
.digest('hex');
Run Code Online (Sandbox Code Playgroud)
这会产生如下所示的值(基于十六进制的字符串 Hmac 签名):
fb2937ca821264812d511d68ae06a643915931375633173ba64af9425f2ffd53
如何使用该签名来验证数据没有被更改?(当然使用 NodeJS)。
我的假设
我假设有一个方法调用,您在其中提供数据和签名,然后您会得到一个布尔值,告诉您数据是否已更改 - 或类似的内容。
另一种解决方案?
哦,等等,当我写这篇文章的时候,我开始想……
我是否需要存储生成的原始随机字节 (Crypto.randomBytes(16)) 并将它们传递给接收器,以便它们可以再次生成 HMac 并验证结果是否相同 ( fb2937ca821264812d511d68ae06a643915931375633173ba64af9425f2ffd53)?
如果这是真的,那就很奇怪了,因为 Crypto.randomBytes(16) 的参数被命名为 Secret(在官方示例中)*。看来这事需要保密??
请告诉我是否有办法验证接收方的签名以及我如何做到这一点。
官方文档:有点令人困惑
这是官方文档中定义的函数:
crypto.createHmac(algorithm, key[, options])
在函数定义中,您可以看到第二个参数名为 name key。
然而,在示例中,他们将其称为secret
const secret = 'abcdefg';
const hash = crypto.createHmac('sha256', secret)
.update('I love cupcakes')
.digest('hex');
console.log(hash);
Run Code Online (Sandbox Code Playgroud) 我目前正在安装(升级到)XCode 14.2,它已经运行了很长时间。这比我上次 macOS 更新花费的时间更长。
我目前看到以下内容,仅显示旋转器,没有更新进度。
漂浮在旋转器上不会给你任何东西。
我还查看了启动器,我看到的只是:
有什么办法可以看到完成百分比吗?
只是好奇是否有办法通过bootstrap获得更紧密的布局.
为什么文本元素之间有这么大的空间?

这只是为了容纳垫,电话等吗?
有没有办法为整个页面选择更严格的样式来默认?
我也认为编辑框本身太大了.文本和框边缘之间浪费的空间太多.
为什么他们不紧张?
尝试在NetworkNerd的回答中使用代码后添加了这些编辑
我在样式表中添加了以下内容.
input[type=text]{
padding-top:0px; padding-bottom:0px;
margin-bottom:0px; /* Reduced from whatever it currently is */
margin-top:0px; /* Reduced from whatever it currently is */
height:24px;
}
Run Code Online (Sandbox Code Playgroud)
这些添加使我的表单如下所示:

你可以看到事情变得更紧,但这只是因为height:24px风格.
其他变化似乎对外观没有任何影响.
顺便说一句,包含此更改的样式表是最后一个包含的.
标签不对齐
此外,请注意,现在我已经更改了标签未与其关联的文本输入对齐.
文本框之间的余量仍然太多
文本框之间似乎仍有太多的边距空间.
标题的HTML代码段
这是HTML的一个片段,它显示了应用Bootstrap样式的HTML.这些都只是从bootstrap网站上的样本中复制而来.
<form class="form-horizontal" role="form">
<div class="form-group">
<label for="titleText" class="col-sm-2 control-label">Title</label>
<div class="col-sm-6">
<input id="titleText" class="form-control" type="text" ng-model="book.title" />
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 背景
编写一个程序来监视目录和子目录,并在创建、更新、编辑路径中的文件时提醒用户。代码在github上共享。
我是 Rust 新手(大约 1 周的经验)。
使输出路径易于使用
我希望用户能够轻松复制输出路径(见下图)并复制/粘贴它以供使用。
当我在 Linux 上运行该程序时,它与目录分隔符(/ - 正斜杠)配合得很好,并且用户可以轻松复制路径并使用它。
问题:Windows 平台使用反斜杠
问题在于,在 Windows 平台上,路径是用反斜杠(也是转义字符)分隔的。
双反斜杠
当程序在 Windows 上输出路径时,它始终显示双反斜杠,并且该路径不易复制。
这是输出的快照:
作为示例,我使用以下输出:
println!("{:?}", Path::new("c:\\windows\\"));
Run Code Online (Sandbox Code Playgroud)
输出来自 Path::new() 方法本身,但它始终输出带有双反斜杠的路径字符串。
您能帮我找到一种更好的方法来格式化输出,使其具有像正常路径一样的单个反斜杠(不包括转义反斜杠)吗?
编辑
有人提到尝试原始字符串输入,所以我尝试了以下操作:
println!("{:?}", Path::new(r"c:\windows\"));
Run Code Online (Sandbox Code Playgroud)
但是,Path::new 方法仍然输出双反斜杠。
我无法弄清楚如何从Visual Studio 2015运行Win8.1模拟器.
我正在运行Win10周年纪念版.我还使用所有服务包运行Visual Studio Community 2015.
是的,我看到[下载新的模拟器...]选项,但它不是很有帮助,因为它会带您进入具有大量选项的网页,并且它们不是非常具有描述性.当您单击它时,它将转到:https: //developer.microsoft.com/en-us/windows/downloads/sdk-archive
有谁知道我应该选择哪个选项来获得Win 8.1模拟器?
我猜它是这个,但它是一个旧版本的解释(它是881MB下载):

此外,这是应该安装的项目.我根本没有看到提到的模拟器......

任何其他方式
有没有其他方法可以确定我的UWP是否能在Win8.1上正常运行?
编辑
部署Win 10有很多问题?赢得8.1应用程序.众多.这就是为什么巨魔在没有评论的情况下对这个问题进行了投票?非常无益,巨魔.
我在2013年一直在编写我的应用程序(无论微软称之为什么)UWA?这完全针对Win8.x.然后,我阅读了UWP文档,并确定我应该写为UWP(UNIVERSAL,微软,我认为你不明白这个词是什么意思).

Visual Studio 2013 Win8.x版本不喜欢在Visual Studio 2015中正确构建和运行.
想要确保Win8.x用户也可以运行我的应用程序
是的,微软,仍有人在运行Win8.x. 我还在Visual Studio 2015中将应用程序构建为UWP,但我希望我的应用程序也可以为Win8.x用户运行.你看,我实际上是在试图让我的应用程序通用.
Visual Studio 2015构建Win8.1应用程序
我接受了回答这个问题的人的建议并开始构建Win8.1版本.我可以使用Studio 2013和2015.我可以在win10上构建并运行win8.1版本,所以我试图在Win8.1设备上运行它 - 任何东西!我尝试这样做,Visual Studio 2015告诉我需要下载SDK.好的,Visual Studio,我会这样做的.
然后,当安装完成并重新启动时,我尝试在8.1模拟器上运行它.没有.在微软有限的智慧中,他们最终在Win10模拟器上运行它.
赢得8.1模拟器?斗志!
当我选择以下内容 - 它清楚地显示Win8.1 - 然后它在Win10模拟器上运行.

哦,好吧,也许我做出了错误的选择......即使它说Win8.1.我们选择一个特定的8.1手机模拟器吧?
当您尝试使用该选项在Visual Studio 2015中生成时,您会收到以下错误:

是的,这是正确的,微软.我没有Win 8 x64 Professional.这是因为当我尝试将此应用程序编写为UWP时,您强迫我升级到Windows Anniversary Edition以进行Win10开发.
支持两个不同版本的应用程序
微软是如此分散,没有任何作用.我会想出来并创建我的解决方法,这可能意味着支持两个不同版本的应用程序.那样就好.但是,微软,(以及其他无名巨魔(可能是MSMVP?)并没有表现得像这个问题有明显的答案.
祝所有落入这个陷阱的人好运.
编辑2 在提到的事情上还有一件事:
有意义的是,新的API与旧操作系统不兼容,它在任何地方都是这样做的.
这确实有道理.我也是Android开发人员和iOS开发人员,所以我使用Android Studio和XCode开发应用程序并定位各种硬件,所以我想对此发表评论.实际上,这是真的.例如,您可以使用可能不再受支持的旧API或以前版本的Android上不可用的新API.
要点
但是,重点是Android允许您:
很容易知道这种情况何时发生
您可以轻松地在各种硬件仿真器上进行测试
有更好,更全面的文档. …
emulation visual-studio win-universal-app visual-studio-2015 uwp
我正在研究Android布局,我知道有一个叫做Blueprint的新东西。我想知道“蓝图”视图提供了什么。
我尝试过的
1.添加了按钮并通过约束对其进行了移动
我没有看到两个设计视图(普通视图和蓝图)之间的任何区别。
哦,我确实在两种视图中看到了一种区别。
如果您浮在普通设计视图上方(下图1),则只能看到控件的轮廓。如果光标不在窗口中,则看不到它们(下图2)。
有区别吗?
2.搜索了Google的Android开发站点
我只能在以下位置找到一小部分信息:https : //developer.android.com/studio/write/layout-editor
它说:
蓝图视图(仅每个视图的轮廓)
蓝图占用了大量屏幕空间,我想知道它是否提供了全部(只是控件的轮廓)?
除了在普通设计视图中通过浮动视图查看“轮廓”之外,我看不出有什么好处。
蓝图是否提供了我不理解的其他内容?还有其他好处吗?
背景
我通过 Windows 窗体 (C#)、Android(Java 和 Kotlin)、HTML5 Web 应用程序、ElectronJS(在 Linux、Mac 和 Win10 上运行)甚至作为 UWP(通用 Windows 平台)应用程序编写了一款特定的应用程序。
全部使用 JSON 文件作为数据
所有这些应用程序都使用完全相同的 JSON 格式数据进行用户设置。这意味着我可以通过相同的文件和文件格式在所有平台上共享数据。在 Android 上,将文件保存在 UserPrefs 中还有一个额外的好处(为用户提供安全性和备份)。
问题
我还将该应用程序编写为 iPhone/iPad 应用程序 (Swift),但是我找不到处理 JSON 文件存储的正确方法。
该问题与将 JSON 反序列化到我的业务对象无关。一切都很好。但是,我不确定:
我到处寻找这个答案。您能给我指出官方文档、书籍、StackOverflow 项目或其他可以清楚解释这一点的内容吗?(希望有 Swift 示例。)
swift ×2
aes ×1
android ×1
angular ×1
blockchain ×1
cryptography ×1
css ×1
emulation ×1
hmac ×1
http-headers ×1
ios ×1
iphone ×1
macos ×1
node.js ×1
parameters ×1
private-key ×1
rust ×1
rust-cargo ×1
solana ×1
syntax ×1
upgrade ×1
uwp ×1
web-worker ×1
xcode ×1
xcode14 ×1