问题标签 [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.

0 投票
1 回答
256 浏览

webassembly - 是否可以从 AssemblyScript 导入 .wasm 文件?

我可以从我的 AssemblyScript 代码中导入 .wasm 文件吗?我知道我可以使用 AssemblyScript 加载器从 TypeScript 加载 .wasm 文件,但是如果我按照https://www.assemblyscript.org/loader.html上的说明尝试构建我的 AssemblyScript 示例,则会出现错误

长话短说,我有一个已编译为 WASM 的 Rust 库。我想在我的 AssemblyScript 示例中使用该代码。这可能吗?

0 投票
1 回答
58 浏览

node.js - 汇编脚本和 WebXR

所以到目前为止,我一直在使用 three.js 和 webXR 一段时间,并希望将其集成到汇编脚本中。我知道如何让 webXR 在 typescript 中工作,但是当我尝试在汇编脚本中使用它时,它会在导入时出错。这是 index.ts 代码和错误:

索引.ts:

错误:

asconfig.json

依赖项:

0 投票
1 回答
40 浏览

webassembly - 为什么 AssemblyScript 中的 store() 不在指定指针处存储数据?

我有一些汇编脚本代码:

它将一个字符串存储0在内存中的指针处。

但是,生成的 .wat 文件将字符串存储在 location1056而不是0

0 投票
0 回答
39 浏览

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); } 返回数据视图;}

0 投票
1 回答
41 浏览

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 的内存。

提前感谢您提供的任何帮助!

0 投票
1 回答
39 浏览

assemblyscript - NEAR,如何实现撤销(汇编脚本)

首先将资金转入智能合约。 在此处输入图像描述

如何从智能合约中取款给发送者? 在此处输入图像描述

“近 SDK-as”:“^3.2.1”

0 投票
0 回答
51 浏览

javascript - 如何将数组数组从 javascript 传递到汇编脚本

我在 javasctipt 端有一个数组,其结构如下:

我需要将它传递给汇编脚本,下面的示例代码(javascript 端):

相反,这是代码 AssemblyScriptSide

我在汇编脚本端收到了正确的指针,但是我无法将指针正确转换回 Uint8ClampedArray 并读取值。

我做错了什么,我该如何修复这段代码?

0 投票
1 回答
63 浏览

nearprotocol - 如何在 AssemblyScript 中为 NEAR 合约创建 UID?

试图在 AS 中创建一个 uniqueId。我添加了这个包 npm install as-nanoid --save

安装中的 nanoid 函数如下:

在我的汇编index.ts文件中,我有以下内容:

使用NEAR-SDK-AS 当我在部署合约后初始化合约时。 near call $CONTRACT init --accountId $CONTRACT

我收到以下错误:

此处的任何帮助将不胜感激,或者如果有更简单的创建 uniqueId 的方法,请分享。

0 投票
1 回答
45 浏览

nearprotocol - “NCD.L1.sample--lottery”合约的玩法如何?

这是合同回购。https://github.com/Learn-NEAR/NCD.L1.sample--lottery

看不懂这里的玩法 https://github.com/Learn-NEAR/NCD.L1.sample--lottery/blob/2bd11bc1092004409e32b75736f78adee821f35b/src/lottery/assembly/lottery.ts#L11-L16

我不明白获胜的过程,但我确信它隐藏在这个方法中。那么有人可以详细解释这种play方法是如何工作的吗?

0 投票
1 回答
28 浏览

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?

请问,可以为这个智能合约包含一些文档吗?

谢谢!