{
    "version": 9,
    "compilerVersion": "1.19.0+commit.72eaeba",
    "contract": "Token",
    "md5": "fa5d3953b0b913a8e05d2aed3b4477e7",
    "structs": [
        {
            "name": "LockingScriptParts",
            "params": [
                {
                    "name": "code",
                    "type": "bytes"
                },
                {
                    "name": "data",
                    "type": "bytes"
                }
            ],
            "genericTypes": []
        },
        {
            "name": "OpPushData",
            "params": [
                {
                    "name": "len",
                    "type": "int"
                },
                {
                    "name": "value",
                    "type": "int"
                }
            ],
            "genericTypes": []
        },
        {
            "name": "VarIntData",
            "params": [
                {
                    "name": "len",
                    "type": "int"
                },
                {
                    "name": "value",
                    "type": "int"
                }
            ],
            "genericTypes": []
        },
        {
            "name": "TxInputProof",
            "params": [
                {
                    "name": "hashProof",
                    "type": "bytes"
                },
                {
                    "name": "txHash",
                    "type": "bytes"
                },
                {
                    "name": "outputIndexBytes",
                    "type": "bytes"
                },
                {
                    "name": "sequenceBytes",
                    "type": "bytes"
                }
            ],
            "genericTypes": []
        },
        {
            "name": "TxOutputProof",
            "params": [
                {
                    "name": "txHeader",
                    "type": "bytes"
                },
                {
                    "name": "hashProof",
                    "type": "bytes"
                },
                {
                    "name": "satoshiBytes",
                    "type": "bytes"
                },
                {
                    "name": "scriptHash",
                    "type": "bytes"
                }
            ],
            "genericTypes": []
        }
    ],
    "library": [
        {
            "name": "ProtoHeader",
            "params": [],
            "properties": [],
            "genericTypes": []
        },
        {
            "name": "AmountCheckProto",
            "params": [],
            "properties": [],
            "genericTypes": []
        },
        {
            "name": "TokenProto",
            "params": [],
            "properties": [],
            "genericTypes": []
        },
        {
            "name": "Backtrace",
            "params": [],
            "properties": [],
            "genericTypes": []
        },
        {
            "name": "TxUtil",
            "params": [],
            "properties": [],
            "genericTypes": []
        }
    ],
    "alias": [],
    "abi": [
        {
            "type": "function",
            "name": "unlock",
            "index": 0,
            "params": [
                {
                    "name": "txPreimage",
                    "type": "SigHashPreimage"
                },
                {
                    "name": "prevouts",
                    "type": "bytes"
                },
                {
                    "name": "tokenInputIndex",
                    "type": "int"
                },
                {
                    "name": "amountCheckHashIndex",
                    "type": "int"
                },
                {
                    "name": "amountCheckInputIndex",
                    "type": "int"
                },
                {
                    "name": "amountCheckTxProof",
                    "type": "TxOutputProof"
                },
                {
                    "name": "amountCheckScript",
                    "type": "bytes"
                },
                {
                    "name": "prevTokenInputIndex",
                    "type": "int"
                },
                {
                    "name": "prevTokenAddress",
                    "type": "bytes"
                },
                {
                    "name": "prevTokenAmount",
                    "type": "int"
                },
                {
                    "name": "tokenTxHeader",
                    "type": "bytes"
                },
                {
                    "name": "tokenTxInputProof",
                    "type": "TxInputProof"
                },
                {
                    "name": "prevTokenTxProof",
                    "type": "TxOutputProof"
                },
                {
                    "name": "senderPubKey",
                    "type": "PubKey"
                },
                {
                    "name": "senderSig",
                    "type": "Sig"
                },
                {
                    "name": "contractInputIndex",
                    "type": "int"
                },
                {
                    "name": "contractTxProof",
                    "type": "TxOutputProof"
                },
                {
                    "name": "operation",
                    "type": "int"
                }
            ]
        },
        {
            "type": "constructor",
            "params": [
                {
                    "name": "transferAmountCheckCodeHashArray",
                    "type": "bytes[5]"
                },
                {
                    "name": "unlockAmountCheckCodeHashArray",
                    "type": "bytes[5]"
                }
            ]
        }
    ],
    "stateProps": [],
    "buildType": "debug",
    "file": "file:///Users/ivan/Codes/blockchain/meta-contract/src/mcp02/contract/token/token-v2.scrypt",
    "hex": "515301402097dfd76851bf465e8f715593b217714858bbe9570ff3bd5e33840a34e20ff0262102ba79df5f8ae7604a9830f03c7933028186aede0675a16f025dc4f8be8eec0382201008ce7480da41702918d1ec8e6849ba32b4d65b1e40dc669c31a1e6306b266c557954798501145593140000000000000000000000000000000000000000780124937601149376589376011493768b76011493760128937652935501149376011493765493<transferAmountCheckCodeHashArray[0]><transferAmountCheckCodeHashArray[1]><transferAmountCheckCodeHashArray[2]><transferAmountCheckCodeHashArray[3]><transferAmountCheckCodeHashArray[4]><unlockAmountCheckCodeHashArray[0]><unlockAmountCheckCodeHashArray[1]><unlockAmountCheckCodeHashArray[2]><unlockAmountCheckCodeHashArray[3]><unlockAmountCheckCodeHashArray[4]>013b7976547f75777601007e81775a9d013a79aa013c797601247f75547f777788013b797601687f7700005279517f75007f7d7701fd87635379537f75517f777601007e8177537a757b7b5379535479937f75537f777b757c677601fe87635379557f75517f777601007e8177537a757b7b5379555479937f75557f777b757c677601ff87635379597f75517f777601007e8177537a757b7b5379595479937f75597f777b757c675379517f75007f777601007e8177537a757b7b5379515479937f75517f777b757c68686875777777768277012079519c636e6e011879947f7578011779947f77777776011979879169012879a97888012779012979ad7567012079529c636e6e011879947f7578011779947f77777776011979876476012379a688013d790127798b0124957f750127790124957f7701267901267901267901267954795479aa7801207f75887601207f777601007e81775579607f755c7f777601007e8177567901707f7501507f775679827752790128959d5679a878885479827701209d557955797e76587955798b0128957f7555790128957f77886d6d6d6d6d687567006968686e6e011a79940124937f7578011a79947f77777776012d79aa0130797e87646f756e011b79947f7578011a79947f77777776012b79a6875479547901377901377970011c79947f7552797e78586e8b80767682778c7f75007f777777777e54795479011f79947f777e7777777776a8012d798752796476675168696d6d68013e797601687f7501447f77777601337901377901307901307901307901307958790139790139790139790139795b7901207f755b79aa885a795a79557955795579557955795c7f75587f777601007e8177567901307f75607f77567952799f695579827752790128959d5579a878885479827701209d53798277549d547954797e53797e76577959798b0128957f7559790128957f77886d6d6d6d756f757e7656798764597959795979597954795479aa7801207f75887601207f777601007e81775579607f755c7f777601007e8177567901707f7501507f775679827752790128959d5679a878885479827701209d557955797e76587955798b0128957f7555790128957f77886d6d6d6d75686d6d6d6d6d6d75706e011c79940124937f7578011b79947f77a97777547954796e6e011879947f757777a97777014079013f79013f79013f79013f79013f79013f79013f79597959795c79014a790130795c795b798b0124957f755b790124957f775679a85879885a795a795a795a7954795479aa7801207f75887601207f777601007e81775579607f755c7f777601007e8177567901707f7501507f775679827752790128959d5679a878885479827701209d557955797e76587955798b0128957f7555790128957f77886d6d6d6d7556798277567958795279012479940114937f755279012479947f7788557958795279012479947f755279012379947f7788577978012279947f7578012179947f777601007e81770120797801145893959354935979537952799454937f7553795279947f777601007e81775579529c63527900a2695a7954795379947f75547953799452795495947f776f75549593537a757b7b5279787758798b54957f75587954957f777601007e8177587a75577a577a577a577a577a577a577a7567527900a0695679789f6968780078014ba1637551677802ff00a1635277677803ffff00a1635377675577686868775279935b7955795279947f75a976012479012479012479012479012479550119797600a26976559f699451958c6b6c766b796c756b6d6d756c876476011f79011f79011f79011f79011f79550119797600a26976559f699451958c6b6c766b796c756b6d6d756c876751686959790114795a798b0124957f755a790124957f77886d6d6d6d6d6d6d6d6d6d014179011e7978012379012379210ac407f0e4bd44bfc207355a778b046225a7068fc59ee7eda43ad905aadbffc800206c266b30e6a1319c66dc401e5bd6b432ba49688eecd118297041da8074ce081001257956795679aa7676517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e01007e817757795679567956795679537956795479577995939521414136d08c5ed2bf3ba048afe6dcaebafeffffffffffffffffffffffffffffff006e6e9776009f636e936776687777777b757c6e5296a0636e7c947b757c6853798277527982775379012080517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f517f7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e7c7e01205279947f77545379935279930130787e527e54797e58797e527e53797e52797e57797e777777777777777777777777765779ac7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777",
    "sourceMapFile": ""
}