我在安全帽控制台中创建了一个合约实例,如下所示:
\nconst contract_fac = await ethers.getContractFactory("ContractName");\nconst contract = await contract_fac.attach("CONTRACTADDR...");\nRun Code Online (Sandbox Code Playgroud)\n合约对象具有除 之外的所有公共/外部函数safeTransferFrom。为什么?
当我用它调用它时,它contract.safeTransferFrom(\xe2\x80\xa6)会抛出 JavaScript 错误 \xe2\x80\x9csafeTransferFrom 不是函数\xe2\x80\x9d。这是一个错误还是我不明白什么?safeTransferFrom函数在 ABI 中列出。
我使用未做任何更改的 OpenZeppelin (v. 4.2) 721 令牌模板、Ethers.js (v. 5.4.1) 和 Hardhat (v. 2.4.1)。
\n更新: \n问题已解决。safeTransferFrom 是一个重载函数。在 ethers 中,调用重载合约函数的语法与非重载函数不同。\n Ethers.js doc
\n错误的:
\ncontract.safeTransferFrom(addr1, addr2, 1);\nRun Code Online (Sandbox Code Playgroud)\n正确的:
\ncontract["safeTransferFrom(address,address,uint256)"](addr1, addr2, 1);\nRun Code Online (Sandbox Code Playgroud)\n 我尝试使用 Ethers.js 从 KyberSwap 获取 ETH 的价格,但收到以下错误:
Error: unknown account #0 (operation="getAddress", code=UNSUPPORTED_OPERATION, version=providers/5.5.3)
Run Code Online (Sandbox Code Playgroud)
我已连接到 Infura Web 套接字来获取数据。这是我的脚本:
Error: unknown account #0 (operation="getAddress", code=UNSUPPORTED_OPERATION, version=providers/5.5.3)
Run Code Online (Sandbox Code Playgroud)
我该如何修复这个错误?
我需要测试一个使用另一个接口作为与 lambda 使用者的依赖注入的类。
@Builder
public class Interactor {
private final Gateway gateway;
void process(String message, Consumer<String> response){
gateway.process(message, uuid -> {
response.accept(uuid.toString());
});
}
}
Run Code Online (Sandbox Code Playgroud)
依赖项定义如下:
public interface Gateway {
void process(String message, Consumer<UUID> uuid);
}
Run Code Online (Sandbox Code Playgroud)
我将如何模拟网关,以便为我的测试提供 UUID 值响应?
这是我迄今为止尝试过的:
@Test
void whillReturnTheInjectedUUIDValueTest() {
UUID uuid = UUID.randomUUID();
Gateway gateway = Mockito.mock(Gateway.class);
Mockito.when(gateway.process("ignored", uuid1 -> {return uuid;}));
Interactor.builder().gateway(gateway).build().process("ignored", s -> {
Assertions.assertEquals(uuid.toString(), s);
});
}
Run Code Online (Sandbox Code Playgroud)
我应该如何向消费者提供返回值?
我是反应新手。如果有人能解释这个问题那就太好了。这个问题已经有了答案,但我仍然很困惑。
import React from 'react' ;
import Card from './Card.js';
const CardList = ({Friends}) =>{
const Cardcomponent = Friends.map((user , i) => {
return(
<div>
<Card id={Friends[i].id} name={Friends[i].name} username={Friends[i].username} instagram={Friends[i].instagram} />
</div>
)
})
return(
<div>
{Cardcomponent}
</div>
)
}
export default CardList ;
Run Code Online (Sandbox Code Playgroud)
我收到错误:“对象作为 React 子项无效(找到:带有键 {} 的对象)。如果您打算渲染子项集合,请改用数组。”
我正在使用 Hardhat 的主网分支编写单元测试,对于测试,我想检查ownerERC20 代币(特别是 DAI)账户的初始余额。这是我到目前为止的测试:
const { ethers } = require("hardhat");
describe("Simple Test", function () {
it("Check balance of DAI", async function () {
const provider = ethers.provider;
const [owner] = await ethers.getSigners();
// Want to get initial DAI balance here so it can be compared later
});
});
Run Code Online (Sandbox Code Playgroud)
有什么简单的方法可以做到这一点?
当我输入网址时,Brave 会建议非常愚蠢的网站。示例:当我只输入“mu”时,它会建议“elmundo.es”。如果我输入“po”,它会建议“huffingtonpost.com”
我从未访问过这些网站,它不在我的书签中,我的历史记录已 100% 清除,并且有关“预测服务”的两个设置均已关闭。我已经重新启动了浏览器。
这个功能非常非常烦人。我可以安装一个扩展来删除此自动建议,还是我是唯一一个对此感到生气的人???:-)。除此之外,Brave 浏览器似乎是一个不错的选择。
提前致谢
乔纳斯M
我正在编写一段 Java 代码,但遇到转储问题。我正在进行一些调试,由于某种原因,当我尝试评估(观察或检查)方法内声明的某些变量时,它显示以下错误:
errors during the evaluation.
Run Code Online (Sandbox Code Playgroud)
我不明白。我正在使用 Eclipse 3.7。
例如,它甚至对方法参数也执行相同的操作(在方法执行结束之前应该可用)。
我的eclipse.ini文件是:
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
1024M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx1024M
Run Code Online (Sandbox Code Playgroud) 我正在使用 Eclipse IDE (4.2)。当我在 Eclipse 中进行更改并尝试调试它时,会编译以前的版本,但不会编译新版本。为了解决这个问题,我执行 maven clean/build,然后刷新项目。但这非常繁琐,每次进行更改时都需要这样做。有没有其他方法可以解决这个问题,或者我可以使用一个插件来自动获取这些更改?
我正在创建一个显示消息聊天日志的 Java Swing 应用程序。该帧仅包含 a ,JScrollPane其中有一个VerticalLayout,并且其中有无限数量的JTextAreas,每条消息一个。sJTextArea是不可编辑的,我使用它们而不是 a 的唯一原因JLabel是我需要换行文本。
作为测试,我创建了框架并添加了两条消息。
\n
这按预期工作,组件形成连续的文本页面并环绕框架。
\n然后我增加框架的大小。
\n
这仍然按预期工作,JScrollPane和JTextAreas 已经扩展并且文本已经重新包装。
然后我将窗口缩小到较小的尺寸。
\n
这没有按预期工作。保持JScrollPane其最大尺寸并且单词不会换行。我怎样才能做到当框架宽度方向缩小时,JScrollPane和JTextAreas 也会缩小?
我已经尝试过的事情:
\nJScrollPanewithJScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVERJTextArea一个BoxLayout或BorderLayoutJTextArea在 a 中JPanel并给面板一个BoxLayoutorBorderLayoutJScrollPane调整大小事件setSize(Dimension d) …我正在使用 Hardhat 的主网分支在 Hardhat 中编写单元测试,但是一项测试的结果似乎会影响未来的测试并导致我的断言失败。我正在使用 Alchemy 和区块 #14189520 进行分叉。
例如:
it("Test 1", async function () {
const provider = ethers.provider;
const [owner, addr1] = await ethers.getSigners();
// Assert owner has 1000 ETH to start
ownerBalance = await provider.getBalance(owner.address);
expectedBalance = ethers.BigNumber.from("10000000000000000000000");
assert(ownerBalance.eq(expectedBalance));
// Send 1 Ether to addr1
sendEth(1, owner, addr1);
});
it("Test 2", async function () {
const provider = ethers.provider;
const [owner, addr1] = await ethers.getSigners();
// ownerBalance is now only 999 Eth because of previous test
ownerBalance …Run Code Online (Sandbox Code Playgroud) ethereum ×4
ethers.js ×4
hardhat ×4
java ×4
eclipse ×2
autocomplete ×1
autosuggest ×1
brave ×1
browser ×1
debugging ×1
eclipse-juno ×1
erc20 ×1
jscrollpane ×1
jtextarea ×1
junit ×1
lambda ×1
mocha.js ×1
mockito ×1
openzeppelin ×1
react-native ×1
react-redux ×1
reactjs ×1
solidity ×1
swing ×1