{
  "abi": [],
  "allSourcePaths": {
    "54": "/home/vscode/.brownie/packages/smartcontractkit/chainlink@1.6.0/contracts/src/v0.8/Chainlink.sol",
    "62": "/home/vscode/.brownie/packages/smartcontractkit/chainlink@1.6.0/contracts/src/v0.8/vendor/BufferChainlink.sol",
    "63": "/home/vscode/.brownie/packages/smartcontractkit/chainlink@1.6.0/contracts/src/v0.8/vendor/CBORChainlink.sol"
  },
  "ast": {
    "absolutePath": "/home/vscode/.brownie/packages/smartcontractkit/chainlink@1.6.0/contracts/src/v0.8/Chainlink.sol",
    "exportedSymbols": {
      "BufferChainlink": [
        28140
      ],
      "CBORChainlink": [
        28587
      ],
      "Chainlink": [
        25676
      ]
    },
    "id": 25677,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 25409,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "32:23:54"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/smartcontractkit/chainlink@1.6.0/contracts/src/v0.8/vendor/CBORChainlink.sol",
        "file": "./vendor/CBORChainlink.sol",
        "id": 25411,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 25677,
        "sourceUnit": 28588,
        "src": "57:57:54",
        "symbolAliases": [
          {
            "foreign": {
              "id": 25410,
              "name": "CBORChainlink",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "65:13:54",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/smartcontractkit/chainlink@1.6.0/contracts/src/v0.8/vendor/BufferChainlink.sol",
        "file": "./vendor/BufferChainlink.sol",
        "id": 25413,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 25677,
        "sourceUnit": 28141,
        "src": "115:61:54",
        "symbolAliases": [
          {
            "foreign": {
              "id": 25412,
              "name": "BufferChainlink",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "123:15:54",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": {
          "id": 25414,
          "nodeType": "StructuredDocumentation",
          "src": "178:114:54",
          "text": " @title Library for common Chainlink functions\n @dev Uses imported CBOR library for encoding to buffer"
        },
        "fullyImplemented": true,
        "id": 25676,
        "linearizedBaseContracts": [
          25676
        ],
        "name": "Chainlink",
        "nameLocation": "301:9:54",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 25417,
            "mutability": "constant",
            "name": "defaultBufferSize",
            "nameLocation": "341:17:54",
            "nodeType": "VariableDeclaration",
            "scope": 25676,
            "src": "315:49:54",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 25415,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "315:7:54",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "323536",
              "id": 25416,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "361:3:54",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_256_by_1",
                "typeString": "int_const 256"
              },
              "value": "256"
            },
            "visibility": "internal"
          },
          {
            "id": 25421,
            "libraryName": {
              "id": 25418,
              "name": "CBORChainlink",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 28587,
              "src": "420:13:54"
            },
            "nodeType": "UsingForDirective",
            "src": "414:47:54",
            "typeName": {
              "id": 25420,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 25419,
                "name": "BufferChainlink.buffer",
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 27626,
                "src": "438:22:54"
              },
              "referencedDeclaration": 27626,
              "src": "438:22:54",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                "typeString": "struct BufferChainlink.buffer"
              }
            }
          },
          {
            "canonicalName": "Chainlink.Request",
            "id": 25433,
            "members": [
              {
                "constant": false,
                "id": 25423,
                "mutability": "mutable",
                "name": "id",
                "nameLocation": "494:2:54",
                "nodeType": "VariableDeclaration",
                "scope": 25433,
                "src": "486:10:54",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 25422,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "486:7:54",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 25425,
                "mutability": "mutable",
                "name": "callbackAddress",
                "nameLocation": "510:15:54",
                "nodeType": "VariableDeclaration",
                "scope": 25433,
                "src": "502:23:54",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 25424,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "502:7:54",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 25427,
                "mutability": "mutable",
                "name": "callbackFunctionId",
                "nameLocation": "538:18:54",
                "nodeType": "VariableDeclaration",
                "scope": 25433,
                "src": "531:25:54",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes4",
                  "typeString": "bytes4"
                },
                "typeName": {
                  "id": 25426,
                  "name": "bytes4",
                  "nodeType": "ElementaryTypeName",
                  "src": "531:6:54",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 25429,
                "mutability": "mutable",
                "name": "nonce",
                "nameLocation": "570:5:54",
                "nodeType": "VariableDeclaration",
                "scope": 25433,
                "src": "562:13:54",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 25428,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "562:7:54",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 25432,
                "mutability": "mutable",
                "name": "buf",
                "nameLocation": "604:3:54",
                "nodeType": "VariableDeclaration",
                "scope": 25433,
                "src": "581:26:54",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                  "typeString": "struct BufferChainlink.buffer"
                },
                "typeName": {
                  "id": 25431,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 25430,
                    "name": "BufferChainlink.buffer",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 27626,
                    "src": "581:22:54"
                  },
                  "referencedDeclaration": 27626,
                  "src": "581:22:54",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_buffer_$27626_storage_ptr",
                    "typeString": "struct BufferChainlink.buffer"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Request",
            "nameLocation": "472:7:54",
            "nodeType": "StructDefinition",
            "scope": 25676,
            "src": "465:147:54",
            "visibility": "public"
          },
          {
            "body": {
              "id": 25477,
              "nodeType": "Block",
              "src": "1155:183:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25452,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25437,
                          "src": "1182:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25453,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "1182:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "id": 25454,
                        "name": "defaultBufferSize",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25417,
                        "src": "1192:17:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 25449,
                        "name": "BufferChainlink",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28140,
                        "src": "1161:15:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BufferChainlink_$28140_$",
                          "typeString": "type(library BufferChainlink)"
                        }
                      },
                      "id": 25451,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "init",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27664,
                      "src": "1161:20:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"
                      }
                    },
                    "id": 25455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1161:49:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                      "typeString": "struct BufferChainlink.buffer memory"
                    }
                  },
                  "id": 25456,
                  "nodeType": "ExpressionStatement",
                  "src": "1161:49:54"
                },
                {
                  "expression": {
                    "id": 25461,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 25457,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25437,
                        "src": "1216:4:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                          "typeString": "struct Chainlink.Request memory"
                        }
                      },
                      "id": 25459,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "id",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25423,
                      "src": "1216:7:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 25460,
                      "name": "jobId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25439,
                      "src": "1226:5:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1216:15:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 25462,
                  "nodeType": "ExpressionStatement",
                  "src": "1216:15:54"
                },
                {
                  "expression": {
                    "id": 25467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 25463,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25437,
                        "src": "1237:4:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                          "typeString": "struct Chainlink.Request memory"
                        }
                      },
                      "id": 25465,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "callbackAddress",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25425,
                      "src": "1237:20:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 25466,
                      "name": "callbackAddr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25441,
                      "src": "1260:12:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1237:35:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 25468,
                  "nodeType": "ExpressionStatement",
                  "src": "1237:35:54"
                },
                {
                  "expression": {
                    "id": 25473,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 25469,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25437,
                        "src": "1278:4:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                          "typeString": "struct Chainlink.Request memory"
                        }
                      },
                      "id": 25471,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "callbackFunctionId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 25427,
                      "src": "1278:23:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 25472,
                      "name": "callbackFunc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25443,
                      "src": "1304:12:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      }
                    },
                    "src": "1278:38:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "id": 25474,
                  "nodeType": "ExpressionStatement",
                  "src": "1278:38:54"
                },
                {
                  "expression": {
                    "id": 25475,
                    "name": "self",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 25437,
                    "src": "1329:4:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                      "typeString": "struct Chainlink.Request memory"
                    }
                  },
                  "functionReturnParameters": 25448,
                  "id": 25476,
                  "nodeType": "Return",
                  "src": "1322:11:54"
                }
              ]
            },
            "documentation": {
              "id": 25434,
              "nodeType": "StructuredDocumentation",
              "src": "616:368:54",
              "text": " @notice Initializes a Chainlink request\n @dev Sets the ID, callback address, and callback function signature on the request\n @param self The uninitialized request\n @param jobId The Job Specification ID\n @param callbackAddr The callback address\n @param callbackFunc The callback function signature\n @return The initialized request"
            },
            "id": 25478,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "initialize",
            "nameLocation": "996:10:54",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25444,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25437,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "1027:4:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25478,
                  "src": "1012:19:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                    "typeString": "struct Chainlink.Request"
                  },
                  "typeName": {
                    "id": 25436,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25435,
                      "name": "Request",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 25433,
                      "src": "1012:7:54"
                    },
                    "referencedDeclaration": 25433,
                    "src": "1012:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$25433_storage_ptr",
                      "typeString": "struct Chainlink.Request"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25439,
                  "mutability": "mutable",
                  "name": "jobId",
                  "nameLocation": "1045:5:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25478,
                  "src": "1037:13:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 25438,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1037:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25441,
                  "mutability": "mutable",
                  "name": "callbackAddr",
                  "nameLocation": "1064:12:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25478,
                  "src": "1056:20:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 25440,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1056:7:54",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25443,
                  "mutability": "mutable",
                  "name": "callbackFunc",
                  "nameLocation": "1089:12:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25478,
                  "src": "1082:19:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 25442,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1082:6:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1006:99:54"
            },
            "returnParameters": {
              "id": 25448,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25447,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 25478,
                  "src": "1129:24:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                    "typeString": "struct Chainlink.Request"
                  },
                  "typeName": {
                    "id": 25446,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25445,
                      "name": "Chainlink.Request",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 25433,
                      "src": "1129:17:54"
                    },
                    "referencedDeclaration": 25433,
                    "src": "1129:17:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$25433_storage_ptr",
                      "typeString": "struct Chainlink.Request"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1128:26:54"
            },
            "scope": 25676,
            "src": "987:351:54",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25504,
              "nodeType": "Block",
              "src": "1648:98:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25490,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25482,
                          "src": "1675:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25491,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "1675:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "expression": {
                          "id": 25492,
                          "name": "data",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25484,
                          "src": "1685:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "id": 25493,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "1685:11:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 25487,
                        "name": "BufferChainlink",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28140,
                        "src": "1654:15:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BufferChainlink_$28140_$",
                          "typeString": "type(library BufferChainlink)"
                        }
                      },
                      "id": 25489,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "init",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27664,
                      "src": "1654:20:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint256) pure returns (struct BufferChainlink.buffer memory)"
                      }
                    },
                    "id": 25494,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1654:43:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                      "typeString": "struct BufferChainlink.buffer memory"
                    }
                  },
                  "id": 25495,
                  "nodeType": "ExpressionStatement",
                  "src": "1654:43:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 25499,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25482,
                          "src": "1726:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25500,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "1726:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      {
                        "id": 25501,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25484,
                        "src": "1736:4:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 25496,
                        "name": "BufferChainlink",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 28140,
                        "src": "1703:15:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BufferChainlink_$28140_$",
                          "typeString": "type(library BufferChainlink)"
                        }
                      },
                      "id": 25498,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27883,
                      "src": "1703:22:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,bytes memory) pure returns (struct BufferChainlink.buffer memory)"
                      }
                    },
                    "id": 25502,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1703:38:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                      "typeString": "struct BufferChainlink.buffer memory"
                    }
                  },
                  "id": 25503,
                  "nodeType": "ExpressionStatement",
                  "src": "1703:38:54"
                }
              ]
            },
            "documentation": {
              "id": 25479,
              "nodeType": "StructuredDocumentation",
              "src": "1342:230:54",
              "text": " @notice Sets the data for the buffer without encoding CBOR on-chain\n @dev CBOR can be closed with curly-brackets {} or they can be left off\n @param self The initialized request\n @param data The CBOR data"
            },
            "id": 25505,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setBuffer",
            "nameLocation": "1584:9:54",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25485,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25482,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "1609:4:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25505,
                  "src": "1594:19:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                    "typeString": "struct Chainlink.Request"
                  },
                  "typeName": {
                    "id": 25481,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25480,
                      "name": "Request",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 25433,
                      "src": "1594:7:54"
                    },
                    "referencedDeclaration": 25433,
                    "src": "1594:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$25433_storage_ptr",
                      "typeString": "struct Chainlink.Request"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25484,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "1628:4:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25505,
                  "src": "1615:17:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 25483,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1615:5:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1593:40:54"
            },
            "returnParameters": {
              "id": 25486,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1648:0:54"
            },
            "scope": 25676,
            "src": "1575:171:54",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25532,
              "nodeType": "Block",
              "src": "2055:71:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25521,
                        "name": "key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25511,
                        "src": "2083:3:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 25516,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25509,
                          "src": "2061:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25519,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "2061:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25520,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "encodeString",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28550,
                      "src": "2061:21:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,string memory) pure"
                      }
                    },
                    "id": 25522,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2061:26:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25523,
                  "nodeType": "ExpressionStatement",
                  "src": "2061:26:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25529,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25513,
                        "src": "2115:5:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 25524,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25509,
                          "src": "2093:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25527,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "2093:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25528,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "encodeString",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28550,
                      "src": "2093:21:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,string memory) pure"
                      }
                    },
                    "id": 25530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2093:28:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25531,
                  "nodeType": "ExpressionStatement",
                  "src": "2093:28:54"
                }
              ]
            },
            "documentation": {
              "id": 25506,
              "nodeType": "StructuredDocumentation",
              "src": "1750:198:54",
              "text": " @notice Adds a string value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The string value to add"
            },
            "id": 25533,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "add",
            "nameLocation": "1960:3:54",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25514,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25509,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "1984:4:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25533,
                  "src": "1969:19:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                    "typeString": "struct Chainlink.Request"
                  },
                  "typeName": {
                    "id": 25508,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25507,
                      "name": "Request",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 25433,
                      "src": "1969:7:54"
                    },
                    "referencedDeclaration": 25433,
                    "src": "1969:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$25433_storage_ptr",
                      "typeString": "struct Chainlink.Request"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25511,
                  "mutability": "mutable",
                  "name": "key",
                  "nameLocation": "2008:3:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25533,
                  "src": "1994:17:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 25510,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1994:6:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25513,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "2031:5:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25533,
                  "src": "2017:19:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 25512,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2017:6:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1963:77:54"
            },
            "returnParameters": {
              "id": 25515,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2055:0:54"
            },
            "scope": 25676,
            "src": "1951:175:54",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25560,
              "nodeType": "Block",
              "src": "2437:70:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25549,
                        "name": "key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25539,
                        "src": "2465:3:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 25544,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25537,
                          "src": "2443:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25547,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "2443:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25548,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "encodeString",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28550,
                      "src": "2443:21:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,string memory) pure"
                      }
                    },
                    "id": 25550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2443:26:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25551,
                  "nodeType": "ExpressionStatement",
                  "src": "2443:26:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25557,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25541,
                        "src": "2496:5:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 25552,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25537,
                          "src": "2475:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25555,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "2475:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25556,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "encodeBytes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28451,
                      "src": "2475:20:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_bytes_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,bytes memory) pure"
                      }
                    },
                    "id": 25558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2475:27:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25559,
                  "nodeType": "ExpressionStatement",
                  "src": "2475:27:54"
                }
              ]
            },
            "documentation": {
              "id": 25534,
              "nodeType": "StructuredDocumentation",
              "src": "2130:196:54",
              "text": " @notice Adds a bytes value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The bytes value to add"
            },
            "id": 25561,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addBytes",
            "nameLocation": "2338:8:54",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25542,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25537,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "2367:4:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25561,
                  "src": "2352:19:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                    "typeString": "struct Chainlink.Request"
                  },
                  "typeName": {
                    "id": 25536,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25535,
                      "name": "Request",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 25433,
                      "src": "2352:7:54"
                    },
                    "referencedDeclaration": 25433,
                    "src": "2352:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$25433_storage_ptr",
                      "typeString": "struct Chainlink.Request"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25539,
                  "mutability": "mutable",
                  "name": "key",
                  "nameLocation": "2391:3:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25561,
                  "src": "2377:17:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 25538,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2377:6:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25541,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "2413:5:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25561,
                  "src": "2400:18:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 25540,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2400:5:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2346:76:54"
            },
            "returnParameters": {
              "id": 25543,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2437:0:54"
            },
            "scope": 25676,
            "src": "2329:178:54",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25588,
              "nodeType": "Block",
              "src": "2812:68:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25577,
                        "name": "key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25567,
                        "src": "2840:3:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 25572,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25565,
                          "src": "2818:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25575,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "2818:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25576,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "encodeString",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28550,
                      "src": "2818:21:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,string memory) pure"
                      }
                    },
                    "id": 25578,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2818:26:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25579,
                  "nodeType": "ExpressionStatement",
                  "src": "2818:26:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25585,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25569,
                        "src": "2869:5:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 25580,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25565,
                          "src": "2850:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25583,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "2850:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25584,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "encodeInt",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28426,
                      "src": "2850:18:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_int256_$returns$__$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,int256) pure"
                      }
                    },
                    "id": 25586,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2850:25:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25587,
                  "nodeType": "ExpressionStatement",
                  "src": "2850:25:54"
                }
              ]
            },
            "documentation": {
              "id": 25562,
              "nodeType": "StructuredDocumentation",
              "src": "2511:198:54",
              "text": " @notice Adds a int256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The int256 value to add"
            },
            "id": 25589,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addInt",
            "nameLocation": "2721:6:54",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25570,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25565,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "2748:4:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25589,
                  "src": "2733:19:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                    "typeString": "struct Chainlink.Request"
                  },
                  "typeName": {
                    "id": 25564,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25563,
                      "name": "Request",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 25433,
                      "src": "2733:7:54"
                    },
                    "referencedDeclaration": 25433,
                    "src": "2733:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$25433_storage_ptr",
                      "typeString": "struct Chainlink.Request"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25567,
                  "mutability": "mutable",
                  "name": "key",
                  "nameLocation": "2772:3:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25589,
                  "src": "2758:17:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 25566,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2758:6:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25569,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "2788:5:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25589,
                  "src": "2781:12:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 25568,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2781:6:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2727:70:54"
            },
            "returnParameters": {
              "id": 25571,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2812:0:54"
            },
            "scope": 25676,
            "src": "2712:168:54",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25616,
              "nodeType": "Block",
              "src": "3189:69:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25605,
                        "name": "key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25595,
                        "src": "3217:3:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 25600,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25593,
                          "src": "3195:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25603,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "3195:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25604,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "encodeString",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28550,
                      "src": "3195:21:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,string memory) pure"
                      }
                    },
                    "id": 25606,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3195:26:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25607,
                  "nodeType": "ExpressionStatement",
                  "src": "3195:26:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25613,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25597,
                        "src": "3247:5:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 25608,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25593,
                          "src": "3227:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25611,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "3227:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25612,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "encodeUInt",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28360,
                      "src": "3227:19:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,uint256) pure"
                      }
                    },
                    "id": 25614,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3227:26:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25615,
                  "nodeType": "ExpressionStatement",
                  "src": "3227:26:54"
                }
              ]
            },
            "documentation": {
              "id": 25590,
              "nodeType": "StructuredDocumentation",
              "src": "2884:200:54",
              "text": " @notice Adds a uint256 value to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param value The uint256 value to add"
            },
            "id": 25617,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addUint",
            "nameLocation": "3096:7:54",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25598,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25593,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "3124:4:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25617,
                  "src": "3109:19:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                    "typeString": "struct Chainlink.Request"
                  },
                  "typeName": {
                    "id": 25592,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25591,
                      "name": "Request",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 25433,
                      "src": "3109:7:54"
                    },
                    "referencedDeclaration": 25433,
                    "src": "3109:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$25433_storage_ptr",
                      "typeString": "struct Chainlink.Request"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25595,
                  "mutability": "mutable",
                  "name": "key",
                  "nameLocation": "3148:3:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25617,
                  "src": "3134:17:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 25594,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3134:6:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25597,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "3165:5:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25617,
                  "src": "3157:13:54",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 25596,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3157:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3103:71:54"
            },
            "returnParameters": {
              "id": 25599,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3189:0:54"
            },
            "scope": 25676,
            "src": "3087:171:54",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 25674,
              "nodeType": "Block",
              "src": "3597:188:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 25634,
                        "name": "key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25623,
                        "src": "3625:3:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "expression": {
                          "id": 25629,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25621,
                          "src": "3603:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25632,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "3603:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25633,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "encodeString",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28550,
                      "src": "3603:21:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory,string memory) pure"
                      }
                    },
                    "id": 25635,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3603:26:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25636,
                  "nodeType": "ExpressionStatement",
                  "src": "3603:26:54"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 25637,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25621,
                          "src": "3635:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25640,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "3635:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25641,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "startArray",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28562,
                      "src": "3635:19:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory) pure"
                      }
                    },
                    "id": 25642,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3635:21:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25643,
                  "nodeType": "ExpressionStatement",
                  "src": "3635:21:54"
                },
                {
                  "body": {
                    "id": 25665,
                    "nodeType": "Block",
                    "src": "3706:47:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 25660,
                                "name": "values",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25626,
                                "src": "3736:6:54",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "string memory[] memory"
                                }
                              },
                              "id": 25662,
                              "indexExpression": {
                                "id": 25661,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25645,
                                "src": "3743:1:54",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3736:9:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 25655,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 25621,
                                "src": "3714:4:54",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                                  "typeString": "struct Chainlink.Request memory"
                                }
                              },
                              "id": 25658,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "buf",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 25432,
                              "src": "3714:8:54",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                                "typeString": "struct BufferChainlink.buffer memory"
                              }
                            },
                            "id": 25659,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "encodeString",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 28550,
                            "src": "3714:21:54",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$_t_string_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                              "typeString": "function (struct BufferChainlink.buffer memory,string memory) pure"
                            }
                          },
                          "id": 25663,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3714:32:54",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 25664,
                        "nodeType": "ExpressionStatement",
                        "src": "3714:32:54"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 25651,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 25648,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 25645,
                      "src": "3682:1:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 25649,
                        "name": "values",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25626,
                        "src": "3686:6:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                          "typeString": "string memory[] memory"
                        }
                      },
                      "id": 25650,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "3686:13:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3682:17:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 25666,
                  "initializationExpression": {
                    "assignments": [
                      25645
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 25645,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "3675:1:54",
                        "nodeType": "VariableDeclaration",
                        "scope": 25666,
                        "src": "3667:9:54",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 25644,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3667:7:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 25647,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 25646,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3679:1:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3667:13:54"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 25653,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "3701:3:54",
                      "subExpression": {
                        "id": 25652,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 25645,
                        "src": "3701:1:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 25654,
                    "nodeType": "ExpressionStatement",
                    "src": "3701:3:54"
                  },
                  "nodeType": "ForStatement",
                  "src": "3662:91:54"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "expression": {
                          "id": 25667,
                          "name": "self",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 25621,
                          "src": "3758:4:54",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                            "typeString": "struct Chainlink.Request memory"
                          }
                        },
                        "id": 25670,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "buf",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25432,
                        "src": "3758:8:54",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$27626_memory_ptr",
                          "typeString": "struct BufferChainlink.buffer memory"
                        }
                      },
                      "id": 25671,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "endSequence",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 28586,
                      "src": "3758:20:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$27626_memory_ptr_$returns$__$bound_to$_t_struct$_buffer_$27626_memory_ptr_$",
                        "typeString": "function (struct BufferChainlink.buffer memory) pure"
                      }
                    },
                    "id": 25672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3758:22:54",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 25673,
                  "nodeType": "ExpressionStatement",
                  "src": "3758:22:54"
                }
              ]
            },
            "documentation": {
              "id": 25618,
              "nodeType": "StructuredDocumentation",
              "src": "3262:214:54",
              "text": " @notice Adds an array of strings to the request with a given key name\n @param self The initialized request\n @param key The name of the key\n @param values The array of string values to add"
            },
            "id": 25675,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addStringArray",
            "nameLocation": "3488:14:54",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 25627,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 25621,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "3523:4:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25675,
                  "src": "3508:19:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Request_$25433_memory_ptr",
                    "typeString": "struct Chainlink.Request"
                  },
                  "typeName": {
                    "id": 25620,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 25619,
                      "name": "Request",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 25433,
                      "src": "3508:7:54"
                    },
                    "referencedDeclaration": 25433,
                    "src": "3508:7:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Request_$25433_storage_ptr",
                      "typeString": "struct Chainlink.Request"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25623,
                  "mutability": "mutable",
                  "name": "key",
                  "nameLocation": "3547:3:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25675,
                  "src": "3533:17:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 25622,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3533:6:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 25626,
                  "mutability": "mutable",
                  "name": "values",
                  "nameLocation": "3572:6:54",
                  "nodeType": "VariableDeclaration",
                  "scope": 25675,
                  "src": "3556:22:54",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 25624,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "3556:6:54",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 25625,
                    "nodeType": "ArrayTypeName",
                    "src": "3556:8:54",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3502:80:54"
            },
            "returnParameters": {
              "id": 25628,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3597:0:54"
            },
            "scope": 25676,
            "src": "3479:306:54",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 25677,
        "src": "293:3494:54"
      }
    ],
    "src": "32:3756:54"
  },
  "bytecode": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b395c6c90624dfc1ad4c5bde6e984a80ba0c1137f105825fecf7805a9a02026f64736f6c63430008020033",
  "bytecodeSha1": "1ce946f6a4eaa185320328620ccf999b9e86db7c",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "Chainlink",
  "coverageMap": {
    "branches": {
      "54": {},
      "62": {},
      "63": {}
    },
    "statements": {
      "54": {},
      "62": {},
      "63": {}
    }
  },
  "dependencies": [
    "smartcontractkit/chainlink@1.6.0/BufferChainlink",
    "smartcontractkit/chainlink@1.6.0/CBORChainlink"
  ],
  "deployedBytecode": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b395c6c90624dfc1ad4c5bde6e984a80ba0c1137f105825fecf7805a9a02026f64736f6c63430008020033",
  "deployedSourceMap": "293:3494:54:-:0;;;;;;;;",
  "language": "Solidity",
  "natspec": {
    "details": "Uses imported CBOR library for encoding to buffer",
    "kind": "dev",
    "methods": {},
    "title": "Library for common Chainlink functions",
    "version": 1
  },
  "offset": [
    293,
    3787
  ],
  "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB3 SWAP6 0xC6 0xC9 MOD 0x24 0xDF 0xC1 0xAD 0x4C JUMPDEST 0xDE PUSH15 0x984A80BA0C1137F105825FECF7805A SWAP11 MUL MUL PUSH16 0x64736F6C634300080200330000000000 ",
  "pcMap": {
    "0": {
      "offset": [
        293,
        3787
      ],
      "op": "PUSH20",
      "path": "54",
      "value": "0x0"
    },
    "21": {
      "fn": null,
      "offset": [
        293,
        3787
      ],
      "op": "ADDRESS",
      "path": "54"
    },
    "22": {
      "fn": null,
      "offset": [
        293,
        3787
      ],
      "op": "EQ",
      "path": "54"
    },
    "23": {
      "fn": null,
      "offset": [
        293,
        3787
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x80"
    },
    "25": {
      "fn": null,
      "offset": [
        293,
        3787
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x40"
    },
    "27": {
      "fn": null,
      "offset": [
        293,
        3787
      ],
      "op": "MSTORE",
      "path": "54"
    },
    "28": {
      "fn": null,
      "offset": [
        293,
        3787
      ],
      "op": "PUSH1",
      "path": "54",
      "value": "0x0"
    },
    "30": {
      "fn": null,
      "offset": [
        293,
        3787
      ],
      "op": "DUP1",
      "path": "54"
    },
    "31": {
      "fn": null,
      "offset": [
        293,
        3787
      ],
      "op": "REVERT",
      "path": "54"
    }
  },
  "sha1": "c7f2e0530af9c2a8e079b677076f6b96dbeaf94f",
  "source": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\nimport {CBORChainlink} from \"./vendor/CBORChainlink.sol\";\nimport {BufferChainlink} from \"./vendor/BufferChainlink.sol\";\n\n/**\n * @title Library for common Chainlink functions\n * @dev Uses imported CBOR library for encoding to buffer\n */\nlibrary Chainlink {\n  uint256 internal constant defaultBufferSize = 256; // solhint-disable-line const-name-snakecase\n\n  using CBORChainlink for BufferChainlink.buffer;\n\n  struct Request {\n    bytes32 id;\n    address callbackAddress;\n    bytes4 callbackFunctionId;\n    uint256 nonce;\n    BufferChainlink.buffer buf;\n  }\n\n  /**\n   * @notice Initializes a Chainlink request\n   * @dev Sets the ID, callback address, and callback function signature on the request\n   * @param self The uninitialized request\n   * @param jobId The Job Specification ID\n   * @param callbackAddr The callback address\n   * @param callbackFunc The callback function signature\n   * @return The initialized request\n   */\n  function initialize(\n    Request memory self,\n    bytes32 jobId,\n    address callbackAddr,\n    bytes4 callbackFunc\n  ) internal pure returns (Chainlink.Request memory) {\n    BufferChainlink.init(self.buf, defaultBufferSize);\n    self.id = jobId;\n    self.callbackAddress = callbackAddr;\n    self.callbackFunctionId = callbackFunc;\n    return self;\n  }\n\n  /**\n   * @notice Sets the data for the buffer without encoding CBOR on-chain\n   * @dev CBOR can be closed with curly-brackets {} or they can be left off\n   * @param self The initialized request\n   * @param data The CBOR data\n   */\n  function setBuffer(Request memory self, bytes memory data) internal pure {\n    BufferChainlink.init(self.buf, data.length);\n    BufferChainlink.append(self.buf, data);\n  }\n\n  /**\n   * @notice Adds a string value to the request with a given key name\n   * @param self The initialized request\n   * @param key The name of the key\n   * @param value The string value to add\n   */\n  function add(\n    Request memory self,\n    string memory key,\n    string memory value\n  ) internal pure {\n    self.buf.encodeString(key);\n    self.buf.encodeString(value);\n  }\n\n  /**\n   * @notice Adds a bytes value to the request with a given key name\n   * @param self The initialized request\n   * @param key The name of the key\n   * @param value The bytes value to add\n   */\n  function addBytes(\n    Request memory self,\n    string memory key,\n    bytes memory value\n  ) internal pure {\n    self.buf.encodeString(key);\n    self.buf.encodeBytes(value);\n  }\n\n  /**\n   * @notice Adds a int256 value to the request with a given key name\n   * @param self The initialized request\n   * @param key The name of the key\n   * @param value The int256 value to add\n   */\n  function addInt(\n    Request memory self,\n    string memory key,\n    int256 value\n  ) internal pure {\n    self.buf.encodeString(key);\n    self.buf.encodeInt(value);\n  }\n\n  /**\n   * @notice Adds a uint256 value to the request with a given key name\n   * @param self The initialized request\n   * @param key The name of the key\n   * @param value The uint256 value to add\n   */\n  function addUint(\n    Request memory self,\n    string memory key,\n    uint256 value\n  ) internal pure {\n    self.buf.encodeString(key);\n    self.buf.encodeUInt(value);\n  }\n\n  /**\n   * @notice Adds an array of strings to the request with a given key name\n   * @param self The initialized request\n   * @param key The name of the key\n   * @param values The array of string values to add\n   */\n  function addStringArray(\n    Request memory self,\n    string memory key,\n    string[] memory values\n  ) internal pure {\n    self.buf.encodeString(key);\n    self.buf.startArray();\n    for (uint256 i = 0; i < values.length; i++) {\n      self.buf.encodeString(values[i]);\n    }\n    self.buf.endSequence();\n  }\n}\n",
  "sourceMap": "293:3494:54:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;293:3494:54;;;;;;;;;;;;;;;;;",
  "sourcePath": "/home/vscode/.brownie/packages/smartcontractkit/chainlink@1.6.0/contracts/src/v0.8/Chainlink.sol",
  "type": "library"
}