gpt4 book ai didi

truffle - 正确使用artifacts.require?

转载 作者:行者123 更新时间:2023-12-02 16:04:17 25 4
gpt4 key购买 nike

我试图了解应该如何使用artifacts.require。我已经看到标准段落将其描述为用于迁移和测试。由此我推断,在进行迁移或运行测试时,truffle 可执行工具会自动定义具有方法 require 的全局范围 artifacts 。但是,我正在处理一些在任何迁移或测试的上下文之外使用 artifacts.require 的代码,相反,此代码只需要执行通常的 at >新。但是,在此上下文中,对象 artifacts 未定义。

我这里有正确的图片吗?这是 artifacts.require 的正确使用吗?如果是这样,必须做什么才能使其在迁移和测试之外进行定义?

感谢您的建议!

最佳答案

artifacts.require 实际上并不意味着在测试之外使用。这是它的定义位置:https://github.com/trufflesuite/truffle-core/blob/3e96337c32aaae6885105661fd1a6792ab4494bf/lib/test.js#L240

在生产代码中,您应该使用 truffle-contract https://github.com/trufflesuite/truffle-contract 将编译后的合约加载到您的应用程序中

这是一个简短的示例(来自 http://truffleframework.com/docs/getting_started/packages-npm#within-javascript-code 并参见 http://truffleframework.com/docs/getting_started/contracts#making-a-transaction )

var contract = require("truffle-contract");
var contractJson = require("example-truffle-library/build/contracts/SimpleNameRegistry.json");
var SimpleNameRegistry = contract(contractJson);
SimpleNameRegistry
.deployed()
.then(function(instance) {
return instance.setRegistry(address);
})
.then(function(result) {
// If this callback is called, the transaction was successfully processed.
alert("Transaction successful!")
})
.catch(function(e) {
// There was an error! Handle it.
});

关于truffle - 正确使用artifacts.require?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46101430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com