Generating Random NFTs. I need help with the contract

Hello, guys. Ivan gave us the contract but its a JSON (ABI). Can someone please write it on SOL or please Ivan put the contract on SOL on Github.


[

    {

       "inputs":[

          {

             "internalType":"address",

             "name":"_vrfCoordinator",

             "type":"address"

          },

          {

             "internalType":"address",

             "name":"_link",

             "type":"address"

          },

          {

             "internalType":"bytes32",

             "name":"_keyHash",

             "type":"bytes32"

          },

          {

             "internalType":"uint256",

             "name":"_fee",

             "type":"uint256"

          }

       ],

       "stateMutability":"nonpayable",

       "type":"constructor",

       "name":"constructor"

    },

    {

       "anonymous":false,

       "inputs":[

          {

             "indexed":true,

             "internalType":"bytes32",

             "name":"requestId",

             "type":"bytes32"

          },

          {

             "indexed":true,

             "internalType":"uint256",

             "name":"result",

             "type":"uint256"

          }

       ],

       "name":"DiceLanded",

       "type":"event"

    },

    {

       "anonymous":false,

       "inputs":[

          {

             "indexed":true,

             "internalType":"bytes32",

             "name":"requestId",

             "type":"bytes32"

          },

          {

             "indexed":true,

             "internalType":"address",

             "name":"roller",

             "type":"address"

          }

       ],

       "name":"DiceRolled",

       "type":"event"

    },

    {

       "inputs":[

         

       ],

       "name":"getFee",

       "outputs":[

          {

             "internalType":"uint256",

             "name":"",

             "type":"uint256"

          }

       ],

       "stateMutability":"view",

       "type":"function"

    },

    {

       "inputs":[

          {

             "internalType":"address",

             "name":"roller",

             "type":"address"

          }

       ],

       "name":"getResults",

       "outputs":[

          {

             "internalType":"uint256",

             "name":"",

             "type":"uint256"

          }

       ],

       "stateMutability":"view",

       "type":"function"

    },

    {

       "inputs":[

          {

             "internalType":"bytes32",

             "name":"requestId",

             "type":"bytes32"

          },

          {

             "internalType":"uint256",

             "name":"randomness",

             "type":"uint256"

          }

       ],

       "name":"rawFulfillRandomness",

       "outputs":[

         

       ],

       "stateMutability":"nonpayable",

       "type":"function"

    },

    {

       "inputs":[

         

       ],

       "name":"rollDice",

       "outputs":[

          {

             "internalType":"bytes32",

             "name":"requestId",

             "type":"bytes32"

          }

       ],

       "stateMutability":"nonpayable",

       "type":"function"

    },

    {

       "inputs":[

          {

             "internalType":"uint256",

             "name":"_fee",

             "type":"uint256"

          }

       ],

       "name":"setFee",

       "outputs":[

          {

             "internalType":"bool",

             "name":"",

             "type":"bool"

          }

       ],

       "stateMutability":"nonpayable",

       "type":"function"

    }

 ]

Where from do you have this ABI?

It’s from Github: