text: "use strict";
  /* Autogenerated file. Do not edit manually. */
  /* tslint:disable */
  /* eslint-disable */
  var __extends = (this && this.__extends) || (function () {
      var extendStatics = function (d, b) {
          extendStatics = Object.setPrototypeOf ||
              ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
              function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
          return extendStatics(d, b);
      };
      return function (d, b) {
          if (typeof b !== "function" && b !== null)
              throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
          extendStatics(d, b);
          function __() { this.constructor = d; }
          d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
      };
  })();
  Object.defineProperty(exports, "__esModule", { value: true });
  exports.MerkleRewards__factory = void 0;
  var ethers_1 = require("ethers");
  var _abi = [
      {
          inputs: [
              {
                  internalType: "bytes32",
                  name: "_rewardsRoot",
                  type: "bytes32",
              },
              {
                  internalType: "contract IERC20",
                  name: "_token",
                  type: "address",
              },
              {
                  internalType: "contract ILockingVault",
                  name: "_lockingVault",
                  type: "address",
              },
          ],
          stateMutability: "nonpayable",
          type: "constructor",
      },
      {
          inputs: [
              {
                  internalType: "uint256",
                  name: "amount",
                  type: "uint256",
              },
              {
                  internalType: "uint256",
                  name: "totalGrant",
                  type: "uint256",
              },
              {
                  internalType: "bytes32[]",
                  name: "merkleProof",
                  type: "bytes32[]",
              },
              {
                  internalType: "address",
                  name: "destination",
                  type: "address",
              },
          ],
          name: "claim",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          inputs: [
              {
                  internalType: "uint256",
                  name: "amount",
                  type: "uint256",
              },
              {
                  internalType: "address",
                  name: "delegate",
                  type: "address",
              },
              {
                  internalType: "uint256",
                  name: "totalGrant",
                  type: "uint256",
              },
              {
                  internalType: "bytes32[]",
                  name: "merkleProof",
                  type: "bytes32[]",
              },
              {
                  internalType: "address",
                  name: "destination",
                  type: "address",
              },
          ],
          name: "claimAndDelegate",
          outputs: [],
          stateMutability: "nonpayable",
          type: "function",
      },
      {
          inputs: [
              {
                  internalType: "address",
                  name: "",
                  type: "address",
              },
          ],
          name: "claimed",
          outputs: [
              {
                  internalType: "uint256",
                  name: "",
                  type: "uint256",
              },
          ],
          stateMutability: "view",
          type: "function",
      },
      {
          inputs: [],
          name: "lockingVault",
          outputs: [
              {
                  internalType: "contract ILockingVault",
                  name: "",
                  type: "address",
              },
          ],
          stateMutability: "view",
          type: "function",
      },
      {
          inputs: [],
          name: "rewardsRoot",
          outputs: [
              {
                  internalType: "bytes32",
                  name: "",
                  type: "bytes32",
              },
          ],
          stateMutability: "view",
          type: "function",
      },
      {
          inputs: [],
          name: "token",
          outputs: [
              {
                  internalType: "contract IERC20",
                  name: "",
                  type: "address",
              },
          ],
          stateMutability: "view",
          type: "function",
      },
  ];
  var _bytecode = "0x60a060405234801561001057600080fd5b506040516109d13803806109d183398101604081905261002f91610111565b6000839055606082901b6001600160601b031916608052600280546001600160a01b0319166001600160a01b0383811691821790925560405163095ea7b360e01b8152600481019190915260001960248201529083169063095ea7b390604401602060405180830381600087803b1580156100a957600080fd5b505af11580156100bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e191906100ea565b5050505061016b565b6000602082840312156100fb578081fd5b8151801515811461010a578182fd5b9392505050565b600080600060608486031215610125578182fd5b83519250602084015161013781610153565b604085015190925061014881610153565b809150509250925092565b6001600160a01b038116811461016857600080fd5b50565b60805160601c6108416101906000396000818161012501526101d101526108416000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063c884ef8311610050578063c884ef83146100bb578063d2a04345146100db578063fc0c546a1461012057610072565b806309ed28f1146100775780630a33e8c21461008c578063217863b71461009f575b600080fd5b61008a610085366004610725565b610147565b005b61008a61009a3660046106b0565b610255565b6100a860005481565b6040519081526020015b60405180910390f35b6100a86100c936600461066f565b60016020526000908152604090205481565b6002546100fb9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100b2565b6100fb7f000000000000000000000000000000000000000000000000000000000000000081565b61018585858585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506103b192505050565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8281166004830152602482018790527f0000000000000000000000000000000000000000000000000000000000000000169063a9059cbb90604401602060405180830381600087803b15801561021557600080fd5b505af1158015610229573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024d9190610690565b505050505050565b73ffffffffffffffffffffffffffffffffffffffff85166102d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5a65726f20616464722064656c65676174696f6e00000000000000000000000060448201526064015b60405180910390fd5b61031586858585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506103b192505050565b6002546040517ff45346dc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820189905287811660448301529091169063f45346dc90606401600060405180830381600087803b15801561039157600080fd5b505af11580156103a5573d6000803e3d6000fd5b50505050505050505050565b6040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152603481018390526000906054016040516020818303038152906040528051906020012090506104118260005483610526565b610477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f496e76616c69642050726f6f660000000000000000000000000000000000000060448201526064016102ce565b33600090815260016020526040902054839061049490869061078b565b11156104fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f436c61696d656420746f6f206d7563680000000000000000000000000000000060448201526064016102ce565b336000908152600160205260408120805486929061051b90849061078b565b909155505050505050565b600081815b85518110156105f157600086828151811061056f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015190508083116105b15760408051602081018590529081018290526060016040516020818303038152906040528051906020012092506105de565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806105e9816107a3565b91505061052b565b509092149392505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461062057600080fd5b919050565b60008083601f840112610636578182fd5b50813567ffffffffffffffff81111561064d578182fd5b6020830191508360208260051b850101111561066857600080fd5b9250929050565b600060208284031215610680578081fd5b610689826105fc565b9392505050565b6000602082840312156106a1578081fd5b81518015158114610689578182fd5b60008060008060008060a087890312156106c8578182fd5b863595506106d8602088016105fc565b945060408701359350606087013567ffffffffffffffff8111156106fa578283fd5b61070689828a01610625565b90945092506107199050608088016105fc565b90509295509295509295565b60008060008060006080868803121561073c578081fd5b8535945060208601359350604086013567ffffffffffffffff811115610760578182fd5b61076c88828901610625565b909450925061077f9050606087016105fc565b90509295509295909350565b6000821982111561079e5761079e6107dc565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156107d5576107d56107dc565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122059e09456b7b4518e52d380261da8d207071dad976ea3775727a72eb4c0bfe6b964736f6c63430008030033";
  var MerkleRewards__factory = /** @class */ (function (_super) {
      __extends(MerkleRewards__factory, _super);
      function MerkleRewards__factory(signer) {
          return _super.call(this, _abi, _bytecode, signer) || this;
      }
      MerkleRewards__factory.prototype.deploy = function (_rewardsRoot, _token, _lockingVault, overrides) {
          return _super.prototype.deploy.call(this, _rewardsRoot, _token, _lockingVault, overrides || {});
      };
      MerkleRewards__factory.prototype.getDeployTransaction = function (_rewardsRoot, _token, _lockingVault, overrides) {
          return _super.prototype.getDeployTransaction.call(this, _rewardsRoot, _token, _lockingVault, overrides || {});
      };
      MerkleRewards__factory.prototype.attach = function (address) {
          return _super.prototype.attach.call(this, address);
      };
      MerkleRewards__factory.prototype.connect = function (signer) {
          return _super.prototype.connect.call(this, signer);
      };
      MerkleRewards__factory.createInterface = function () {
          return new ethers_1.utils.Interface(_abi);
      };
      MerkleRewards__factory.connect = function (address, signerOrProvider) {
          return new ethers_1.Contract(address, _abi, signerOrProvider);
      };
      MerkleRewards__factory.bytecode = _bytecode;
      MerkleRewards__factory.abi = _abi;
      return MerkleRewards__factory;
  }(ethers_1.ContractFactory));
  exports.MerkleRewards__factory = MerkleRewards__factory;
  