{
    "comment": "not the main test, just warmup",
    "steps": [
        {
            "step": "setState",
            "accounts": {
                "address:a_user": {
                    "nonce": "0",
                    "balance": "0"
                },
                "sc:vault": {
                    "nonce": "0",
                    "balance": "0",
                    "code": "mxsc:../vault/output/vault.mxsc.json"
                },
                "sc:recursive-caller": {
                    "nonce": "0",
                    "balance": "0",
                    "esdt": {
                        "str:REC-TOKEN": "1000"
                    },
                    "code": "mxsc:../recursive-caller/output/recursive-caller.mxsc.json"
                }
            }
        },
        {
            "step": "scCall",
            "id": "1",
            "tx": {
                "from": "address:a_user",
                "to": "sc:recursive-caller",
                "function": "recursive_send_funds",
                "arguments": [
                    "sc:vault",
                    "str:REC-TOKEN",
                    "1",
                    "2"
                ],
                "gasLimit": "1,000,000,000,000,000",
                "gasPrice": "0"
            },
            "expect": {
                "out": [],
                "status": "0",
                "logs": [
                    {
                        "address": "sc:recursive-caller",
                        "endpoint": "str:recursive_send_funds",
                        "topics": [
                            "sc:vault",
                            "str:REC-TOKEN",
                            "1"
                        ],
                        "data": [
                            "2"
                        ]
                    },
                    {
                        "address": "sc:vault",
                        "endpoint": "str:accept_funds",
                        "topics": [
                            "str:REC-TOKEN",
                            "str:FungibleESDT",
                            "1",
                            "0"
                        ],
                        "data": "*"
                    },
                    {
                        "address": "sc:recursive-caller",
                        "endpoint": "str:recursive_send_funds_callback",
                        "topics": [
                            "sc:vault",
                            "str:REC-TOKEN",
                            "1"
                        ],
                        "data": [
                            "2"
                        ]
                    },
                    {
                        "address": "sc:recursive-caller",
                        "endpoint": "str:recursive_send_funds",
                        "topics": [
                            "sc:vault",
                            "str:REC-TOKEN",
                            "1"
                        ],
                        "data": [
                            "1"
                        ]
                    },
                    {
                        "address": "sc:vault",
                        "endpoint": "str:accept_funds",
                        "topics": [
                            "str:REC-TOKEN",
                            "str:FungibleESDT",
                            "1",
                            "0"
                        ],
                        "data": "*"
                    },
                    {
                        "address": "sc:recursive-caller",
                        "endpoint": "str:recursive_send_funds_callback",
                        "topics": [
                            "sc:vault",
                            "str:REC-TOKEN",
                            "1"
                        ],
                        "data": [
                            "1"
                        ]
                    }
                ],
                "gas": "*",
                "refund": "*"
            }
        },
        {
            "step": "checkState",
            "accounts": {
                "address:a_user": {
                    "nonce": "*",
                    "balance": "0",
                    "storage": {},
                    "code": ""
                },
                "sc:vault": {
                    "nonce": "0",
                    "balance": "0",
                    "esdt": {
                        "str:REC-TOKEN": "1"
                    },
                    "storage": {
                        "str:call_counts|nested:str:accept_funds": "*"
                    },
                    "code": "mxsc:../vault/output/vault.mxsc.json"
                },
                "sc:recursive-caller": {
                    "nonce": "0",
                    "balance": "0",
                    "esdt": {
                        "str:REC-TOKEN": "999"
                    },
                    "storage": {},
                    "code": "mxsc:../recursive-caller/output/recursive-caller.mxsc.json"
                }
            }
        }
    ]
}
