问题标签 [assemblyscript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
webassembly - 是否可以从 AssemblyScript 导入 .wasm 文件?
我可以从我的 AssemblyScript 代码中导入 .wasm 文件吗?我知道我可以使用 AssemblyScript 加载器从 TypeScript 加载 .wasm 文件,但是如果我按照https://www.assemblyscript.org/loader.html上的说明尝试构建我的 AssemblyScript 示例,则会出现错误
长话短说,我有一个已编译为 WASM 的 Rust 库。我想在我的 AssemblyScript 示例中使用该代码。这可能吗?
node.js - 汇编脚本和 WebXR
所以到目前为止,我一直在使用 three.js 和 webXR 一段时间,并希望将其集成到汇编脚本中。我知道如何让 webXR 在 typescript 中工作,但是当我尝试在汇编脚本中使用它时,它会在导入时出错。这是 index.ts 代码和错误:
索引.ts:
错误:
asconfig.json
依赖项:
webassembly - 为什么 AssemblyScript 中的 store() 不在指定指针处存储数据?
我有一些汇编脚本代码:
它将一个字符串存储0
在内存中的指针处。
但是,生成的 .wat 文件将字符串存储在 location1056
而不是0
:
typescript - 如何在 AssemblyScript 和 TypeScript 之间“共享”缓冲区
我一直在尝试让一个简单的 AssemblyScript 函数工作,它应该可用于修改 NodeJS 缓冲区而无需复制它。然而,我没有弄清楚如何使用 As-Bind 来获得 Node 和 WASM 之间的缓冲区“共享”。任何提示都会非常受欢迎;-)
/**
通过向缓冲区写入 0 个字节来清除缓冲区的函数。*/ 导出函数 clearBuffer(dataView: DataView): DataView {
// 写入 0 个字节,使用每字节写入。for (let i:i32 = 0; i < dataView.byteLength; i++) { dataView.setUint8(i,0); } 返回数据视图;}
webassembly - 分配 65536 个元素的数组后,AssemblyScript / WebAssembly 分配失败
我在内存分配方面遇到问题,并且在网上找不到任何关于此案例的参考资料。特别是,如果我分配一个包含 65536 个元素(不是字节)或更多元素的数组,任何后续分配(即使是很小的一个)都会“失败”——当它成功执行时,它会返回一个与最近分配的数组重叠的指针。
我正在使用数组。我不确定在这里使用 StaticArray、Array 或 Float32Array 是否会改变行为,但我已经尝试了所有这些,但似乎没有得到任何改进。
汇编脚本:
主机JS:
我的脚本中的一些相关日志记录:
- memory.buffer.byteLength(登录 JS):655,360
- 请求分配一个包含多少个元素的数组(在 WASM 中登录):96,000
- 初始化每个缓冲区后的 Array.length(登录 WASM):96,000
- 返回给 JS 的指针值:21216
- 随后分配的 16 元素数组的指针值:21,216
如果我不分配第二个数组,则原始数组可通过 __getArrayView() 在 JS 中用作 96,000 个元素的数组。就好像分配大数组有效,但会破坏内存分配器以进行任何后续操作。
理论上,我应该在堆中达到 byte (21,216 + 4 * 96,000) = 405,216,并且还剩下大约 250k 的内存。
提前感谢您提供的任何帮助!
javascript - 如何将数组数组从 javascript 传递到汇编脚本
我在 javasctipt 端有一个数组,其结构如下:
我需要将它传递给汇编脚本,下面的示例代码(javascript 端):
相反,这是代码 AssemblyScriptSide
我在汇编脚本端收到了正确的指针,但是我无法将指针正确转换回 Uint8ClampedArray 并读取值。
我做错了什么,我该如何修复这段代码?
nearprotocol - 如何在 AssemblyScript 中为 NEAR 合约创建 UID?
试图在 AS 中创建一个 uniqueId。我添加了这个包
npm install as-nanoid --save
安装中的 nanoid 函数如下:
在我的汇编index.ts
文件中,我有以下内容:
使用NEAR-SDK-AS
当我在部署合约后初始化合约时。
near call $CONTRACT init --accountId $CONTRACT
我收到以下错误:
此处的任何帮助将不胜感激,或者如果有更简单的创建 uniqueId 的方法,请分享。
nearprotocol - “NCD.L1.sample--lottery”合约的玩法如何?
这是合同回购。https://github.com/Learn-NEAR/NCD.L1.sample--lottery
我不明白获胜的过程,但我确信它隐藏在这个方法中。那么有人可以详细解释这种play
方法是如何工作的吗?
blockchain - Near-example/workshop--exploring-assemblyscript-contracts/assembly/A.sample-projects/04.token-contract/
我正在阅读 04.token-contract( https://github.com/near-examples/workshop--exploring-assemblyscript-contracts/blob/master/assembly/A.sample-projects/04.token-contract/assembly /index.ts)。
导出函数之间的概念区别是什么:
export function transfer(to: string, tokens: u64): boolean
和
export function transferFrom(from: string, to: string, tokens: u64): boolean
?
请问,可以为这个智能合约包含一些文档吗?
谢谢!