我有一个node.js文件,在这里我想初始化一个现有的Gnosis安全,其中我的地址是一个签名者,并使用它创建事务。
我使用的是SDK1.3.0版本,这是我的代码->
const { ethers } = require("ethers");
const { SafeFactory, EthersAdapter } = require("@gnosis.pm/safe-core-sdk");
const provider = new ethers.providers.getDefaultProvider("rinkeby");
const owner1 = new ethers.Wallet(
process.env.PRIV_KEY, provider
);
async function test() {
const safeSdk = await SafeFactory.create({
ethAdapter: new EthersAdapter({
ethers,
signer: owner1,
}),
safeAddress: process.env.SAFE_ADDRESS,
});
const transaction = {
to: process.env.RECEIVER_ADDRESS,
value: ethers.utils.parseEther("0.0001"),
data: "0x537461636b45786368616e6765",
};
const safeTransaction = await safeSdk.createTransaction(transaction);
const executeTxResponse = await safeSdk.executeTransaction(safeTransaction);
await executeTxResponse.transactionResponse?.wait();
}
test();这就是我得到的输出->
/home/runner/JuniorSlateblueHexadecimal/index.js:23
const safeTransaction = await safeSdk.createTransaction(transaction);
^
TypeError: safeSdk.createTransaction is not a function
at test (/home/runner/JuniorSlateblueHexadecimal/index.js:23:41)解决办法是什么?也尝试使用安全对象而不是SafeFactory,但仍然无法工作。请帮帮我!
发布于 2022-02-14 15:39:03
在您的代码中,safeSdk是SafeProxyFactory的实例,而不是SafeProxy的实例。您需要从工厂实例调用方法deploySafe。返回的对象将是safeSdk。
下面是如何从ProxyFactory:https://github.com/gnosis/safe-core-sdk/tree/main/packages/safe-core-sdk#2-deploy-a-new-safe中部署一个新的保险箱的步骤
要用已经部署的安全工具实例化安全核心SDK,可以从Safe类调用方法https://github.com/gnosis/safe-core-sdk/tree/main/packages/safe-core-sdk#create-1:C9
https://ethereum.stackexchange.com/questions/121506
复制相似问题