{
    "name": "transferFrom_Exploratory-MultipleTransfersThrow",
    "gasSchedule": "dummy",
    "steps": [
        {
            "step": "setState",
            "accounts": {
                "address:account_1": {
                    "nonce": "0",
                    "balance": "0xe8d4a51000"
                },
                "sc:erc20": {
                    "nonce": "0",
                    "balance": "0",
                    "storage": {
                        "str:allowance|address:coin_holder_1|address:account_1": "0x28",
                        "str:balance|address:coin_holder_1": "0x2710",
                        "str:totalSupply": "0x2710"
                    },
                    "code": "mxsc:../output/erc20.mxsc.json"
                }
            }
        },
        {
            "step": "scCall",
            "id": "1",
            "tx": {
                "from": "address:account_1",
                "to": "sc:erc20",
                "function": "transferFrom",
                "arguments": [
                    "address:coin_holder_1",
                    "address:coin_holder_2",
                    "0x0a"
                ],
                "gasLimit": "0x100000",
                "gasPrice": "0x01"
            },
            "expect": {
                "out": [],
                "status": "",
                "logs": [
                    {
                        "address": "sc:erc20",
                        "endpoint": "str:transferFrom",
                        "topics": [
                            "str:transfer",
                            "address:coin_holder_1",
                            "address:coin_holder_2"
                        ],
                        "data": [
                            "0x0a"
                        ]
                    }
                ],
                "gas": "*",
                "refund": "*"
            }
        },
        {
            "step": "scCall",
            "id": "2",
            "tx": {
                "from": "address:account_1",
                "to": "sc:erc20",
                "function": "transferFrom",
                "arguments": [
                    "address:coin_holder_1",
                    "address:account_6",
                    "0x0a"
                ],
                "gasLimit": "0x100000",
                "gasPrice": "0x01"
            },
            "expect": {
                "out": [],
                "status": "",
                "logs": [
                    {
                        "address": "sc:erc20",
                        "endpoint": "str:transferFrom",
                        "topics": [
                            "str:transfer",
                            "address:coin_holder_1",
                            "address:account_6"
                        ],
                        "data": [
                            "0x0a"
                        ]
                    }
                ],
                "gas": "*",
                "refund": "*"
            }
        },
        {
            "step": "scCall",
            "id": "3",
            "tx": {
                "from": "address:account_1",
                "to": "sc:erc20",
                "function": "transferFrom",
                "arguments": [
                    "address:coin_holder_1",
                    "address:coin_holder_1",
                    "0x0a"
                ],
                "gasLimit": "0x100000",
                "gasPrice": "0x01"
            },
            "expect": {
                "out": [],
                "status": "",
                "logs": [
                    {
                        "address": "sc:erc20",
                        "endpoint": "str:transferFrom",
                        "topics": [
                            "str:transfer",
                            "address:coin_holder_1",
                            "address:coin_holder_1"
                        ],
                        "data": [
                            "0x0a"
                        ]
                    }
                ],
                "gas": "*",
                "refund": "*"
            }
        },
        {
            "step": "scCall",
            "id": "4",
            "tx": {
                "from": "address:account_1",
                "to": "sc:erc20",
                "function": "transferFrom",
                "arguments": [
                    "address:coin_holder_1",
                    "address:account_1",
                    "0x0b"
                ],
                "gasLimit": "0x100000",
                "gasPrice": "0x01"
            },
            "expect": {
                "out": [],
                "status": "0x04",
                "message": "str:allowance exceeded",
                "logs": "*",
                "gas": "*",
                "refund": "*"
            }
        },
        {
            "step": "checkState",
            "accounts": {
                "address:account_1": {
                    "nonce": "4",
                    "balance": "0xe8d4651000",
                    "storage": {},
                    "code": ""
                },
                "sc:erc20": {
                    "nonce": "0",
                    "balance": "0",
                    "storage": {
                        "str:allowance|address:coin_holder_1|address:account_1": "0x0a",
                        "str:balance|address:coin_holder_1": "0x26fc",
                        "str:balance|address:coin_holder_2": "0x0a",
                        "str:balance|address:account_6": "0x0a",
                        "str:totalSupply": "0x2710"
                    },
                    "code": "mxsc:../output/erc20.mxsc.json"
                }
            }
        }
    ]
}
