UNPKG

zodor-protocol-web3

Version:

SDK to interact with zodor protocol

90 lines (89 loc) 4.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClaimRegistry = void 0; var _ethers = require("ethers"); var _ClaimRegistry2 = _interopRequireDefault(require("../abi/ClaimRegistry.json")); var _ContractFactory = require("../factories/ContractFactory"); var _utils = require("../utils"); var _WalletFactory = require("../factories/WalletFactory"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } class ClaimRegistry { constructor(options) { _defineProperty(this, "contract", void 0); _defineProperty(this, "network", void 0); var { network, contractRunner, privateKey, customRpcUrl } = options; var contractAddress = (0, _utils.getContractAddresses)(network).ClaimRegistryContractAddress; if (!network) throw new Error('network is required'); if (contractRunner) { var contractFactory = new _ContractFactory.ContractFactory(); this.contract = contractFactory.createContract(contractAddress, _ClaimRegistry2.default.abi, contractRunner); } else { var rpcProvider = (0, _utils.getRpcProvider)(network, customRpcUrl); var wallet; if (privateKey) { var walletFactory = new _WalletFactory.WalletFactory(rpcProvider); wallet = walletFactory.createWallet(privateKey); } var _contractFactory = new _ContractFactory.ContractFactory(); this.contract = _contractFactory.createContract(contractAddress, _ClaimRegistry2.default.abi, wallet || rpcProvider); } this.network = network; } addClaim(options) { var _this = this; return _asyncToGenerator(function* () { var { walletAddress, type, data, expirationTime, proofHash = '0x', issuer } = options; var claimType = _ethers.ethers.keccak256(_ethers.ethers.toUtf8Bytes(type)); var identifier = _ethers.ethers.keccak256(_ethers.ethers.toUtf8Bytes(issuer)); return yield _this.contract.addClaim(walletAddress, claimType, identifier, data, expirationTime, proofHash); })(); } revokeClaim(walletAddress, type, reason) { var _this2 = this; return _asyncToGenerator(function* () { var claimType = _ethers.ethers.keccak256(_ethers.ethers.toUtf8Bytes(type)); return yield _this2.contract.revokeClaim(walletAddress, claimType, reason); })(); } renewClaim(walletAddress, type, newExpiration) { var _this3 = this; return _asyncToGenerator(function* () { var claimType = _ethers.ethers.keccak256(_ethers.ethers.toUtf8Bytes(type)); return yield _this3.contract.renewClaim(walletAddress, claimType, newExpiration); })(); } verifyClaim(walletAddress, type) { var _this4 = this; return _asyncToGenerator(function* () { var claimType = _ethers.ethers.keccak256(_ethers.ethers.toUtf8Bytes(type)); return yield _this4.contract.verifyClaim(walletAddress, claimType); })(); } addClaimType(type) { var _this5 = this; return _asyncToGenerator(function* () { var claimType = _ethers.ethers.keccak256(_ethers.ethers.toUtf8Bytes(type)); return yield _this5.contract.addClaimType(claimType); })(); } } exports.ClaimRegistry = ClaimRegistry;