Disperse multi NFT issues - type/values length mismatch

Hi there,

Having some trouble with this contract to take an ERC1155 NFT with many copies, and send it to multiple addresses:

//SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.0;

interface IERC1155 {
    function balanceOf(address _owner, uint256 _id) external view returns (uint256);
    function isApprovedForAll(address _owner, address _operator) external view returns (bool);
    function safeBatchTransferFrom(address _from, address _to, string calldata _ids, uint256[] calldata _values, bytes calldata _data) external;

contract DisperseNft {
    function disperse(IERC1155 token, address[] calldata recipients, string calldata ids, uint256[] calldata values, bytes calldata data) external {
        require(token.isApprovedForAll(msg.sender, address(this)), "Sender has not approved disperse contract");

        for (uint256 i = 0; i < recipients.length; i++) {
            token.safeBatchTransferFrom(msg.sender, recipients[i], ids, values, data);

Here are some example values put in:
token: 0x35368c20f70766d528afa8c91b1b47e2735cc7fc

recipients: [0x618ec80907aec603970cfd4fcdca206839b453db, 0x039FD6616251a5417118bC146FD3A6c63aA6b079, 0xa736E241A4fDc47d9D32168e1afE5173423Edb1a]

ids: [“15652705726004049212572897112425444465251989712766045724244891235464316353425”]

values: [1]

data: 0x

And here is the error:

transact to DisperseNft.disperse errored: Error encoding arguments: Error: types/values length mismatch (count={"types":5,"values":6}, value={"types":["address","address[]","string","uint256[]","bytes"],"values":["0x35368c20f70766d528afa8c91b1b47e2735cc7fc","[0x618ec80907aec603970cfd4fcdca206839b453db,",", 0xa736E241A4fDc47d9D32168e1afE5173423Edb1a]","[“15652705726004049212572897112425444465251989712766045724244891235464316353425”]",[1],"0x"]}, code=INVALID_ARGUMENT, version=abi/5.4.0)

Any ideas?

When wrapping the array addresses in quotes I also get this error

transact to DisperseNft.disperse errored: Error encoding arguments: Error: expected array value (argument=null, value="[“ 0x618ec80907aec603970cfd4fcdca206839b453db”, “ 0x039FD6616251a5417118bC146FD3A6c63aA6b079”, “ 0xa736E241A4fDc47d9D32168e1afE5173423Edb1a”]", code=INVALID_ARGUMENT, version=abi/5.4.0)

Those square brackets should not be inside the strings.

You should show the function call that you're running on JavaScript. That's where the error is.