![](/img/trans.png)
[英]Cannot read properties of undefined (reading 'toHexString') in ether.js
[英]how can i connect an address to lunch a function in the smart contract ? | TypeError: Cannot read properties of undefined (reading 'connect') ether.js
我想使用 submitTransaction 发送 0.001 eth(multisig.sol 中的函数)
function submitTransaction(
address _to,
uint256 _value,
bytes memory _data
) public onlyOwner {
uint256 txIndex = transactions.length; //u forgot to add this
transactions.push(
Transaction({
to: _to,
value: _value,
data: _data,
executed: false,
numConfirmations: 0
})
);
emit SubmitTransaction(msg.sender, txIndex, _to, _value, _data);
}
使用安全帽以这种方式工作:
await multiSig.connect(accounts[0]).submitTransaction(
testContract.address, //to
ethers.utils.parseEther("1"),
"0x"
)
但是当我在午餐“submitTransction”的反应组件中时收到此错误: MultiSig.tsx:36 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'connect') ,似乎我不能使用“连接”
反应组件:
multisig = await new ethers.Contract("0x0f0b261E85e545B559B1Fa3621A931Cf59287396", MultisigAbi.abi, provider)
const [multisigData, setmultisigData] = useState<any>({})
const submitTransction = async () => {
await multisig.connect(multisigData.owner[0]).submitTransaction(
"0x0bec31C8b5101eF53b8A0E5e5423165a35E0E7A3", //to
ethers.utils.parseEther("0.001"),
"0x"
)
console.log(transactions);
}
return (
<button className="btn btn-primary w-full" onClick={submitTransction}> submit transaction 0.001eth</button>
)
这样:
const submitTransction = async () => {
const provider = new ethers.providers.Web3Provider(ethereum);
const signer = provider.getSigner()
let multisig = await new ethers.Contract(address, MultisigAbi.abi, provider);
let transactions = await multisig.getTransactionCount()
const ContractWithSigner = await multisig.connect(signer)
await ContractWithSigner.submitTransaction(
"0x0bec31C8b5101eF53b8A0E5e5423165a35E0E7A3", //to
ethers.utils.parseEther("0.001"),
"0x"
)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.