问题标签 [solana-web3js]
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.
solana - 如何找到从 v2 糖果机铸造的所有 NFT
我正在铸造 Solana NFT。Candy machine v2 最近发布,v1 已弃用。
如果我创建了一个 v2 糖果机并铸造了一些 NFT,我以后如何从所有铸造的代币中找到哈希值?
blockchain - 运行 solana 的测试验证器时出错
在 windows 系统上运行命令solana-test-validator
时,出现错误
javascript - SolanaWeb 3.js 包 TypeError: s.TransactionInstruction 不是构造函数
我正在开发一个借贷协议的前端,用户列出 NFT 以在 Solana 上借贷。我收到一个错误createListing
:
这是错误:Error while creating the listing TypeError: s.TransactionInstruction is not a constructor at Object.r [as createListing] (main-packed.js:1175) at Object.createListing (solana.js:915)
这是引发它的行(在包装上):
我不确定是什么引发了错误。另外,必须注意我使用的是纯 JS,因为我正在使用 Dart-JS 互操作在 Flutter 中进行开发。所以我不得不使用 Browserify/Esmify 包来捆绑所有需要的包并将它们暴露给互操作。也许这与问题有关。
solana - 获取 NFT 供应 - Solana
我想检索为项目铸造的 NFT 数量以及已经为合同铸造的数量。
我似乎找不到使用 python 在 Solana 中执行此操作的方法。
有人可以帮忙吗?
谢谢,杰克
typescript - 为 Solana 锚测试加载工作区 IDL 时出错
由于某种原因,我的 mocha 测试无法找到我的 IDL。我收到以下错误:
它已正确生成并保存在我的目标 IDL 文件夹 (../solana-anchor-reactjs-payment/target/idl/payment.json) 中,以下是 IDL 文件的内容:
调用此 IDL 的测试是以下测试 (../solana-anchor-reactjs-payment/tests/payment-test.ts):
测试可能无法访问 IDL 所在的文件夹。所以我什至将它物理复制到与测试相同的文件夹中,但这仍然没有成功。对此的任何帮助将不胜感激,在此先感谢您。
更新 这并不理想,但您可以通过解析 idl json 文件然后将其作为程序中的对象传递来解决此问题。您将添加以下行来设置程序:
web3 - 如何在 Solana 上获取“ownerof”令牌
我正在尝试了解如何在以太坊上获得“ownerof”令牌,而不是在 Solana 区块链上。
例如,我希望用户只有在他们的虚拟钱包(或其他 Solana 钱包)上有 x 代币时才能访问网站的某个部分。
solana - solana getParsedAccountInfo 返回 null 值
我有这个测试钱包:
我有这个 javascript 片段:
当我运行时,我得到这个输出:
我想指出,我正试图让它与多个帐户一起使用。它们都具有相同的槽值。
我想知道为什么价值会回来null.
我没有什么可继续说明为什么会发生这种情况。我只是想显示一些价值。由于我不知道当它起作用时应该显示什么,所以我不知道应该是什么值,没有显示某种 SOL。我所知道的是,我收到以下错误:
solana - 承诺水平
我已经编写了一个基本的 rpc 客户端,它轮询 Solana 帐户的状态以查找特定条件(即写入的唯一 int64 Id)。当条件出现时,我调用一个智能合约,它采用与可变参数相同的帐户。
在做任何事情之前,程序会检查相同的条件。但是,此检查失败。我知道我们正在处理一个分布式系统,并且该状态可能在一段时间内不一致,但我可以反复调用超过 30 秒,并且每次都失败,然后最终成功。
我已经阅读了承诺级别的概念,但总是假设传递给智能合约的帐户状态将是世界的最新状态(即已处理)?我似乎观察到的是它更像是最终状态。
任何人都可以阐明这里可能发生的事情吗?
我将尝试提出一个最小的代码示例来演示这个问题,但只是想先问这个问题,看看是否有人能指出我正确的方向。
谢谢
blockchain - solana 中的 CreateAccountWithSeedParams 和 createProgramAddress 有什么区别?
我试图在 Solana 中创建一个像这样的简单轮询程序。在示例中,客户使用createAccount
. 我想尝试使用某种种子来创建它。我找到了 2 种方法来解决这个问题:使用CreateAccountWithSeedParams
和PublicKey.createProgramAddress
.
根据我阅读(并尝试过)的内容,两者都使用种子并且没有生成私钥。不同之处在于PublicKey.createProgramAddress
可以有自定义所有者(basePubkey
参数),同时CreateAccountWithSeedParams
只能从程序帐户派生。
只有区别吗?哪一个最适合我的情况?就我而言,还有一个问题,是否可以根据种子从客户端列出程序中的所有派生帐户,以便我可以按“种子”列出所有“民意调查”,例如查询搜索词?
谢谢!
solana - 在 Solana 和 Ethereum 上铸造 NFT 有什么区别?
我对 Solana 区块链上 NFT 的工作流程有点困惑。我来自以太坊,那里的一切都非常清楚。有一个在区块链上执行的智能合约,需要一定数量的以太币才能接受,然后你将交易发送到内存池,由矿工提取。
在 Solana 上,我收集到的是,NFT 创建者使用 SPL 创建了一个令牌,该令牌为他们提供了一个 ID。然后其他人可以在他们的一个钱包下创建一个帐户来接受创建的特定类型的令牌。然后该人可以使用该帐户使用我们之前获得的 ID 铸造 NFT。这一切都正确吗?
如果有人可以请清除下面的一些事情,将不胜感激。
糖果机在哪里发挥作用?铸币局和更新局有什么区别?集合是否需要为每个令牌运行 spl create-token 命令?