- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果黑客可以调用或调用某些程序功能,我如何在 Solana Anchor 中进行测试?
是通过更改 signers 数组中的第一个元素来实现的:
await program.rpc.initializeProgram(
arg1, arg2, ... {
accounts: {...}
signers: [keypair1, keypair2, ... keypairN],
)
但在一些教程案例中,这个签名者数组被省略了......我可以在 Anchor 的哪个位置设置调用方用于签署交易的 key 对?
参见 https://project-serum.github.io/anchor/tutorials/tutorial-1 中的示例 anchor 代码
关键词:智能合约,安全测试
最佳答案
对于您的 anchor 测试,它将使用 provider.wallet 作为付款人,因此自动使用 provider.wallet 作为签名者。
如果您的程序要求他们成为签名者,您还可以通过签名者数组字段将签名者添加到您的 javascript 调用中。
教程 1 在这里不是一个实际的例子,因为任何人都可以进来修改帐户。
默认情况下, anchor 测试使用 provider.wallet 作为交易的付款人和签名人。如果你想使用另一个钱包,你必须创建另一个 anchor 程序实例,按照下面的功能。
import * as anchor from '@project-serum/anchor';
import { provider, program } from '../config';
export function programPaidBy(payer: anchor.web3.Keypair): anchor.Program {
const newProvider = new anchor.Provider(provider.connection, new anchor.Wallet(payer), {});
return new anchor.Program(program.idl as anchor.Idl, program.programId, newProvider)
}
关于Solana Anchor 如何测试不同 Signer 与程序功能的交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68761789/
我很好奇目前是否有任何方法可以在 Solana 程序中创建随机性? 我知道 Solana 使用权益证明机制,这对我来说意味着区块哈希不可靠,因为权益证明机制可以轻松创建新的区块哈希。 我也熟悉 Cha
我是 Solana/web3 的新手,并开始学习如何为 Solana 开发 dApp。在我看来,“账户”本质上只是去中心化“计算机”内存中分配的一 block 空间。 这是否意味着,例如,如果我为竞价
向 Solana NFT 社区寻求帮助! 我有一个托管在 arweave 上的收藏。薄荷是通过糖果机 v2。然而,只类型转换了预期供应量的一半。这在拥有超过最大供应量的 NFT 的持有者中引起了混淆。
在 Anchor 测试中注意到此代码注释: ATA 代表什么?为什么它对于 DAO 控制的机构很重要? 最佳答案 ATA 是关联的 token 地址。 可以使用 findProgramAddress
不推荐使用 confirmTransaction 方法。相反,有一个 sendandconfirmtransaction 方法,但它在连接对象上不可用,所以我不能用于要使用 phantom 签名的交易
在 Anchor 测试中注意到此代码注释: ATA 代表什么?为什么它对于 DAO 控制的机构很重要? 最佳答案 ATA 是关联的 token 地址。 可以使用 findProgramAddress
不推荐使用 confirmTransaction 方法。相反,有一个 sendandconfirmtransaction 方法,但它在连接对象上不可用,所以我不能用于要使用 phantom 签名的交易
Uncaught (in promise) WalletSignTransactionError: Transaction recentBlockhash required at PhantomWal
什么是 Aux 帐户? 我已经创建了自己的 spl-token。我可以用我的主要地址为我自己的帐户类型转换初始供应。我创建了另一个地址并为其创建了 token 帐户: spl-token create
当我尝试部署带有 anchor 的 IDL 时,我收到一条神秘的“自定义错误 0x1004”消息。这是什么意思:? $ anchor idl init --provider.cluster testn
我正在尝试使用 web3.js 和 spl-token.js 创建 NFT。 但是,我需要添加元数据(如 token 名称或其他属性),否则它只会在我的钱包中显示为“未知 token ”。 这是我类型
我在运行: solana airdrop 10 7Fbdg5vecamm8MLxDw7bPN2xENaBE7fP65tKW935BEhq 7Fbdg5vecamm8MLxDw7bPN2xENaBE7f
我来自以太坊环境,Solana 概念有点令人困惑。我找到了各种指导代码步骤的教程,但并没有真正解释逻辑背后的概念。 我知道在 Solana 中我们有程序,它们不包含数据,只是逻辑 - 网络中的可执行实
我正在使用 solana-web3.js但找不到任何关于如何创建和类型转换我自己的代币的示例。最好的方法是什么? 最佳答案 为此,您还需要使用我们的 token 程序 js 绑定(bind)。您可以通
我正在尝试对 Serum DEX V3 发出订单请求: tx.add(market.makeNewOrderV3Instruction( { owner, payer, sid
我正在尝试对 Serum DEX V3 发出订单请求: tx.add(market.makeNewOrderV3Instruction( { owner, payer, sid
我正在尝试通过使用下面这篇文章的公认答案来获得收藏的类型转换版本: How to find all NFTs minted from a v2 candy machine 但是当我尝试查询时,我收到了
运行此命令后出现此错误:./scripts/cargo-install-all.sh。 error: failed to run custom build command for `prost-bui
我正在尝试使用 solana-wallet 适配器传输自定义 SPL token 。但是,我无法获取钱包的 key /签署交易。 我已经查看了这些用于编写传输代码的答案,但我需要获取签名者并且我无法弄
我写了一个Sol程序,但是在初始化的时候,我需要填一些默认地址。 问题 1:我可以使用 Solana 文档中的 Solana 烧录地址:1nc1nerator111111111111111111111
我是一名优秀的程序员,十分优秀!