@renft/sdk
Version:
**ReNFT** is a multi-chain highly gas-optimised NFT rental protocol and platform that can be whitelabel integrated into any project to enable collateral-free in-house renting, lending, and reward share (scholarship automation).
2,126 lines (2,109 loc) • 138 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var bignumber = require('@ethersproject/bignumber');
var address = require('@ethersproject/address');
var contracts = require('@ethersproject/contracts');
var isEqual = _interopDefault(require('react-fast-compare'));
var utils = require('viem/utils');
(function (EVMNetworkType) {
EVMNetworkType["ETHEREUM_MAINNET"] = "ETHEREUM_MAINNET";
EVMNetworkType["ETHEREUM_GOERLI_TESTNET"] = "ETHEREUM_GOERLI_TESTNET";
EVMNetworkType["POLYGON_MAINNET"] = "POLYGON_MAINNET";
EVMNetworkType["AVALANCHE_MAINNET"] = "AVALANCHE_MAINNET";
EVMNetworkType["AVALANCHE_FUJI_TESTNET"] = "AVALANCHE_FUJI_TESTNET";
})(exports.EVMNetworkType || (exports.EVMNetworkType = {}));
(function (Chain) {
Chain[Chain["ETHEREUM_MAINNET"] = 1] = "ETHEREUM_MAINNET";
Chain[Chain["ETHEREUM_GOERLI_TESTNET"] = 5] = "ETHEREUM_GOERLI_TESTNET";
Chain[Chain["POLYGON_MAINNET"] = 137] = "POLYGON_MAINNET";
Chain[Chain["AVALANCHE_MAINNET"] = 43114] = "AVALANCHE_MAINNET";
Chain[Chain["AVALANCHE_FUJI_TESTNET"] = 43113] = "AVALANCHE_FUJI_TESTNET";
})(exports.Chain || (exports.Chain = {}));
(function (PaymentToken) {
PaymentToken[PaymentToken["SENTINEL"] = 0] = "SENTINEL";
PaymentToken[PaymentToken["WETH"] = 1] = "WETH";
PaymentToken[PaymentToken["DAI"] = 2] = "DAI";
PaymentToken[PaymentToken["USDC"] = 3] = "USDC";
PaymentToken[PaymentToken["USDT"] = 4] = "USDT";
PaymentToken[PaymentToken["TUSD"] = 5] = "TUSD";
PaymentToken[PaymentToken["RENT"] = 6] = "RENT"; /* reserved for when RENT token is deployed */
PaymentToken[PaymentToken["ACS"] = 7] = "ACS";
PaymentToken[PaymentToken["WELT"] = 8] = "WELT";
PaymentToken[PaymentToken["KNIGHT"] = 9] = "KNIGHT";
PaymentToken[PaymentToken["TOSHI"] = 10] = "TOSHI";
})(exports.PaymentToken || (exports.PaymentToken = {}));
(function (NFTStandard) {
NFTStandard[NFTStandard["E721"] = 0] = "E721";
NFTStandard[NFTStandard["E1155"] = 1] = "E1155";
})(exports.NFTStandard || (exports.NFTStandard = {}));
(function (RenftContractType) {
RenftContractType["AZRAEL"] = "AZRAEL";
RenftContractType["SYLVESTER"] = "SYLVESTER";
RenftContractType["WHOOPI"] = "WHOOPI";
RenftContractType["RESOLVER"] = "RESOLVER";
})(exports.RenftContractType || (exports.RenftContractType = {}));
(function (AzraelVersion) {
AzraelVersion["V0"] = "V0";
})(exports.AzraelVersion || (exports.AzraelVersion = {}));
(function (WhoopiVersion) {
WhoopiVersion["V0"] = "V0";
})(exports.WhoopiVersion || (exports.WhoopiVersion = {}));
(function (SylvesterVersion) {
SylvesterVersion["V0"] = "V0";
SylvesterVersion["V1"] = "V1";
})(exports.SylvesterVersion || (exports.SylvesterVersion = {}));
(function (ResolverVersion) {
ResolverVersion["V0"] = "V0";
ResolverVersion["V1"] = "V1";
})(exports.ResolverVersion || (exports.ResolverVersion = {}));
var _ETHEREUM_MAINNET_PAY, _ETHEREUM_GOERLI_TEST, _POLYGON_MAINNET_PAYM, _AVALANCHE_FUJI_TESTN, _AVALANCHE_MAINNET_PA, _NETWORK_RESOLVERS, _ALL_CHAINS, _ALL_NETWORKS;
var NETWORK_ETHEREUM_MAINNET = {
chainId: exports.Chain.ETHEREUM_MAINNET,
type: exports.EVMNetworkType.ETHEREUM_MAINNET
};
var NETWORK_ETHEREUM_GOERLI_TESTNET = {
chainId: exports.Chain.ETHEREUM_GOERLI_TESTNET,
type: exports.EVMNetworkType.ETHEREUM_GOERLI_TESTNET
};
var NETWORK_POLYGON_MAINNET = {
chainId: exports.Chain.POLYGON_MAINNET,
type: exports.EVMNetworkType.POLYGON_MAINNET
};
var NETWORK_AVALANCHE_FUJI_TESTNET = {
chainId: exports.Chain.AVALANCHE_FUJI_TESTNET,
type: exports.EVMNetworkType.AVALANCHE_FUJI_TESTNET
};
var NETWORK_AVALANCHE_MAINNET = {
chainId: exports.Chain.AVALANCHE_MAINNET,
type: exports.EVMNetworkType.AVALANCHE_MAINNET
};
// TODO: enforce this relationship with ContractTypes
// * Note, this price does not apply to Whoopi
var MAX_PRICE = 9999.9999;
var NUM_BITS_IN_BYTE = 8;
var MAX_DECIMAL_LENGTH = 4;
// Resolver related
var SENTINEL = {
address: '',
scale: 0
};
var ETHEREUM_WETH = {
address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
scale: 18
};
var ETHEREUM_DAI = {
address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
scale: 18
};
var ETHEREUM_USDC = {
address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
scale: 6
};
var ETHEREUM_USDT = {
address: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
scale: 6
};
var ETHEREUM_TUSD = {
address: '0x0000000000085d4780B73119b644AE5ecd22b376',
scale: 18
};
var ETHEREUM_TOSHI = {
address: '0xF136D7b0B7AE5b86D21E7B78DFA95375a7360f19',
scale: 18
};
var GOERLI_WETH = {
address: '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6',
scale: 18
};
var GOERLI_DAI = {
address: '0x9D233A907E065855D2A9c7d4B552ea27fB2E5a36',
scale: 18
};
var POLYGON_WETH = {
address: '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619',
scale: 18
};
var POLYGON_DAI = {
address: '0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063',
scale: 18
};
var POLYGON_USDC = {
address: '0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174',
scale: 6
};
var POLYGON_USDT = {
address: '0xc2132D05D31c914a87C6611C10748AEb04B58e8F',
scale: 6
};
var POLYGON_TUSD = {
address: '0x2e1AD108fF1D8C782fcBbB89AAd783aC49586756',
scale: 18
};
var POLYGON_WELT = {
address: '0x23E8B6A3f6891254988B84Da3738D2bfe5E703b9',
scale: 18
};
var POLYGON_KNIGHT = {
address: '0x4455eF8B4B4A007a93DaA12DE63a47EEAC700D9D',
scale: 18
};
var FUJI_WETH = {
address: '0x40E71a970Ff1fbd21A53b4d2dbc102Be0E1d574f',
scale: 18
};
var FUJI_DAI = {
address: '0x40E71a970Ff1fbd21A53b4d2dbc102Be0E1d574f',
scale: 18
};
var FUJI_USDC = {
address: '0x43CDA502069B1dFa4f7C1a1625Bc6be47cD0bD88',
scale: 6
};
var FUJI_USDT = {
address: '0x051DE28a8B5836f678A13d19EE7F8c167b4Ca54D',
scale: 6
};
var FUJI_TUSD = {
address: '0x051DE28a8B5836f678A13d19EE7F8c167b4Ca54D',
scale: 6
};
var FUJI_ACS = {
address: '0x4a590276DA8E8d660f8ef638464c2D1DF40cEAbA',
scale: 18
};
var AVALANCHE_WETH = {
address: '0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB',
scale: 18
};
var AVALANCHE_DAI = {
address: '0xd586E7F844cEa2F87f50152665BCbc2C279D8d70',
scale: 18
};
var AVALANCHE_USDC = {
address: '0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664',
scale: 6
};
var AVALANCHE_USDT = {
address: '0xc7198437980c041c805A1EDcbA50c1Ce5db95118',
scale: 6
};
var AVALANCHE_TUSD = {
address: '0x1C20E891Bab6b1727d14Da358FAe2984Ed9B59EB',
scale: 18
};
var AVALANCHE_ACS = {
address: '0x18fC6360E83FE91404d47Ea4400A221dfbBACF06',
scale: 18
};
var ETHEREUM_MAINNET_PAYMENT_TOKEN_RESOLVERS = (_ETHEREUM_MAINNET_PAY = {}, _ETHEREUM_MAINNET_PAY[exports.PaymentToken.SENTINEL] = SENTINEL, _ETHEREUM_MAINNET_PAY[exports.PaymentToken.WETH] = ETHEREUM_WETH, _ETHEREUM_MAINNET_PAY[exports.PaymentToken.DAI] = ETHEREUM_DAI, _ETHEREUM_MAINNET_PAY[exports.PaymentToken.USDC] = ETHEREUM_USDC, _ETHEREUM_MAINNET_PAY[exports.PaymentToken.USDT] = ETHEREUM_USDT, _ETHEREUM_MAINNET_PAY[exports.PaymentToken.TUSD] = ETHEREUM_TUSD, _ETHEREUM_MAINNET_PAY[exports.PaymentToken.RENT] = SENTINEL, _ETHEREUM_MAINNET_PAY[exports.PaymentToken.ACS] = SENTINEL, _ETHEREUM_MAINNET_PAY[exports.PaymentToken.WELT] = SENTINEL, _ETHEREUM_MAINNET_PAY[exports.PaymentToken.KNIGHT] = SENTINEL, _ETHEREUM_MAINNET_PAY[exports.PaymentToken.TOSHI] = ETHEREUM_TOSHI, _ETHEREUM_MAINNET_PAY);
var ETHEREUM_GOERLI_TESTNET_PAYMENT_TOKEN_RESOLVERS = (_ETHEREUM_GOERLI_TEST = {}, _ETHEREUM_GOERLI_TEST[exports.PaymentToken.SENTINEL] = SENTINEL, _ETHEREUM_GOERLI_TEST[exports.PaymentToken.WETH] = GOERLI_WETH, _ETHEREUM_GOERLI_TEST[exports.PaymentToken.DAI] = GOERLI_DAI, _ETHEREUM_GOERLI_TEST[exports.PaymentToken.USDC] = SENTINEL, _ETHEREUM_GOERLI_TEST[exports.PaymentToken.USDT] = SENTINEL, _ETHEREUM_GOERLI_TEST[exports.PaymentToken.TUSD] = SENTINEL, _ETHEREUM_GOERLI_TEST[exports.PaymentToken.RENT] = SENTINEL, _ETHEREUM_GOERLI_TEST[exports.PaymentToken.ACS] = SENTINEL, _ETHEREUM_GOERLI_TEST[exports.PaymentToken.WELT] = SENTINEL, _ETHEREUM_GOERLI_TEST[exports.PaymentToken.KNIGHT] = SENTINEL, _ETHEREUM_GOERLI_TEST[exports.PaymentToken.TOSHI] = SENTINEL, _ETHEREUM_GOERLI_TEST);
var POLYGON_MAINNET_PAYMENT_TOKEN_RESOLVERS = (_POLYGON_MAINNET_PAYM = {}, _POLYGON_MAINNET_PAYM[exports.PaymentToken.SENTINEL] = SENTINEL, _POLYGON_MAINNET_PAYM[exports.PaymentToken.WETH] = POLYGON_WETH, _POLYGON_MAINNET_PAYM[exports.PaymentToken.DAI] = POLYGON_DAI, _POLYGON_MAINNET_PAYM[exports.PaymentToken.USDC] = POLYGON_USDC, _POLYGON_MAINNET_PAYM[exports.PaymentToken.USDT] = POLYGON_USDT, _POLYGON_MAINNET_PAYM[exports.PaymentToken.TUSD] = POLYGON_TUSD, _POLYGON_MAINNET_PAYM[exports.PaymentToken.RENT] = SENTINEL, _POLYGON_MAINNET_PAYM[exports.PaymentToken.ACS] = SENTINEL, _POLYGON_MAINNET_PAYM[exports.PaymentToken.WELT] = POLYGON_WELT, _POLYGON_MAINNET_PAYM[exports.PaymentToken.KNIGHT] = POLYGON_KNIGHT, _POLYGON_MAINNET_PAYM[exports.PaymentToken.TOSHI] = SENTINEL, _POLYGON_MAINNET_PAYM);
var AVALANCHE_FUJI_TESTNET_PAYMENT_TOKEN_RESOLVERS = (_AVALANCHE_FUJI_TESTN = {}, _AVALANCHE_FUJI_TESTN[exports.PaymentToken.SENTINEL] = SENTINEL, _AVALANCHE_FUJI_TESTN[exports.PaymentToken.WETH] = FUJI_WETH, _AVALANCHE_FUJI_TESTN[exports.PaymentToken.DAI] = FUJI_DAI, _AVALANCHE_FUJI_TESTN[exports.PaymentToken.USDC] = FUJI_USDC, _AVALANCHE_FUJI_TESTN[exports.PaymentToken.USDT] = FUJI_USDT, _AVALANCHE_FUJI_TESTN[exports.PaymentToken.TUSD] = FUJI_TUSD, _AVALANCHE_FUJI_TESTN[exports.PaymentToken.RENT] = SENTINEL, _AVALANCHE_FUJI_TESTN[exports.PaymentToken.ACS] = FUJI_ACS, _AVALANCHE_FUJI_TESTN[exports.PaymentToken.WELT] = SENTINEL, _AVALANCHE_FUJI_TESTN[exports.PaymentToken.KNIGHT] = SENTINEL, _AVALANCHE_FUJI_TESTN[exports.PaymentToken.TOSHI] = SENTINEL, _AVALANCHE_FUJI_TESTN);
var AVALANCHE_MAINNET_PAYMENT_TOKEN_RESOLVERS = (_AVALANCHE_MAINNET_PA = {}, _AVALANCHE_MAINNET_PA[exports.PaymentToken.SENTINEL] = SENTINEL, _AVALANCHE_MAINNET_PA[exports.PaymentToken.WETH] = AVALANCHE_WETH, _AVALANCHE_MAINNET_PA[exports.PaymentToken.DAI] = AVALANCHE_DAI, _AVALANCHE_MAINNET_PA[exports.PaymentToken.USDC] = AVALANCHE_USDC, _AVALANCHE_MAINNET_PA[exports.PaymentToken.USDT] = AVALANCHE_USDT, _AVALANCHE_MAINNET_PA[exports.PaymentToken.TUSD] = AVALANCHE_TUSD, _AVALANCHE_MAINNET_PA[exports.PaymentToken.RENT] = SENTINEL, _AVALANCHE_MAINNET_PA[exports.PaymentToken.ACS] = AVALANCHE_ACS, _AVALANCHE_MAINNET_PA[exports.PaymentToken.WELT] = SENTINEL, _AVALANCHE_MAINNET_PA[exports.PaymentToken.KNIGHT] = SENTINEL, _AVALANCHE_MAINNET_PA[exports.PaymentToken.TOSHI] = SENTINEL, _AVALANCHE_MAINNET_PA);
// TODO: need to associate these with the resolver contract instance somehow
var NETWORK_RESOLVERS = (_NETWORK_RESOLVERS = {}, _NETWORK_RESOLVERS[exports.EVMNetworkType.ETHEREUM_MAINNET] = ETHEREUM_MAINNET_PAYMENT_TOKEN_RESOLVERS, _NETWORK_RESOLVERS[exports.EVMNetworkType.ETHEREUM_GOERLI_TESTNET] = ETHEREUM_GOERLI_TESTNET_PAYMENT_TOKEN_RESOLVERS, _NETWORK_RESOLVERS[exports.EVMNetworkType.POLYGON_MAINNET] = POLYGON_MAINNET_PAYMENT_TOKEN_RESOLVERS, _NETWORK_RESOLVERS[exports.EVMNetworkType.AVALANCHE_FUJI_TESTNET] = AVALANCHE_FUJI_TESTNET_PAYMENT_TOKEN_RESOLVERS, _NETWORK_RESOLVERS[exports.EVMNetworkType.AVALANCHE_MAINNET] = AVALANCHE_MAINNET_PAYMENT_TOKEN_RESOLVERS, _NETWORK_RESOLVERS);
var ALL_CHAINS = (_ALL_CHAINS = {}, _ALL_CHAINS[exports.Chain.ETHEREUM_MAINNET] = NETWORK_ETHEREUM_MAINNET, _ALL_CHAINS[exports.Chain.ETHEREUM_GOERLI_TESTNET] = NETWORK_ETHEREUM_GOERLI_TESTNET, _ALL_CHAINS[exports.Chain.POLYGON_MAINNET] = NETWORK_POLYGON_MAINNET, _ALL_CHAINS[exports.Chain.AVALANCHE_FUJI_TESTNET] = NETWORK_AVALANCHE_FUJI_TESTNET, _ALL_CHAINS[exports.Chain.AVALANCHE_MAINNET] = NETWORK_AVALANCHE_MAINNET, _ALL_CHAINS);
var ALL_NETWORKS = (_ALL_NETWORKS = {}, _ALL_NETWORKS[exports.EVMNetworkType.ETHEREUM_MAINNET] = NETWORK_ETHEREUM_MAINNET, _ALL_NETWORKS[exports.EVMNetworkType.ETHEREUM_GOERLI_TESTNET] = NETWORK_ETHEREUM_GOERLI_TESTNET, _ALL_NETWORKS[exports.EVMNetworkType.POLYGON_MAINNET] = NETWORK_POLYGON_MAINNET, _ALL_NETWORKS[exports.EVMNetworkType.AVALANCHE_FUJI_TESTNET] = NETWORK_AVALANCHE_FUJI_TESTNET, _ALL_NETWORKS[exports.EVMNetworkType.AVALANCHE_MAINNET] = NETWORK_AVALANCHE_MAINNET, _ALL_NETWORKS);
var AzraelV0Abi = [{
inputs: [{
internalType: 'address',
name: '_resolver',
type: 'address'
}, {
internalType: 'address payable',
name: '_beneficiary',
type: 'address'
}, {
internalType: 'address',
name: '_admin',
type: 'address'
}],
stateMutability: 'nonpayable',
type: 'constructor'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'uint256',
name: 'lendingId',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint32',
name: 'claimedAt',
type: 'uint32'
}],
name: 'CollateralClaimed',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'uint256',
name: 'lendingId',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint32',
name: 'stoppedAt',
type: 'uint32'
}],
name: 'LendingStopped',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'address',
name: 'nftAddress',
type: 'address'
}, {
indexed: true,
internalType: 'uint256',
name: 'tokenId',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint8',
name: 'lentAmount',
type: 'uint8'
}, {
indexed: false,
internalType: 'uint256',
name: 'lendingId',
type: 'uint256'
}, {
indexed: true,
internalType: 'address',
name: 'lenderAddress',
type: 'address'
}, {
indexed: false,
internalType: 'uint8',
name: 'maxRentDuration',
type: 'uint8'
}, {
indexed: false,
internalType: 'bytes4',
name: 'dailyRentPrice',
type: 'bytes4'
}, {
indexed: false,
internalType: 'bytes4',
name: 'nftPrice',
type: 'bytes4'
}, {
indexed: false,
internalType: 'bool',
name: 'isERC721',
type: 'bool'
}, {
indexed: false,
internalType: 'enum IResolver.PaymentToken',
name: 'paymentToken',
type: 'uint8'
}],
name: 'Lent',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: 'uint256',
name: 'lendingId',
type: 'uint256'
}, {
indexed: true,
internalType: 'address',
name: 'renterAddress',
type: 'address'
}, {
indexed: false,
internalType: 'uint8',
name: 'rentDuration',
type: 'uint8'
}, {
indexed: false,
internalType: 'uint32',
name: 'rentedAt',
type: 'uint32'
}],
name: 'Rented',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'uint256',
name: 'lendingId',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint32',
name: 'returnedAt',
type: 'uint32'
}],
name: 'Returned',
type: 'event'
}, {
inputs: [{
internalType: 'address[]',
name: '_nfts',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: '_tokenIds',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_lendingIds',
type: 'uint256[]'
}],
name: 'claimCollateral',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address[]',
name: '_nfts',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: '_tokenIds',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_lendAmounts',
type: 'uint256[]'
}, {
internalType: 'uint8[]',
name: '_maxRentDurations',
type: 'uint8[]'
}, {
internalType: 'bytes4[]',
name: '_dailyRentPrices',
type: 'bytes4[]'
}, {
internalType: 'bytes4[]',
name: '_nftPrices',
type: 'bytes4[]'
}, {
internalType: 'enum IResolver.PaymentToken[]',
name: '_paymentTokens',
type: 'uint8[]'
}],
name: 'lend',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'uint256[]',
name: '',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '',
type: 'uint256[]'
}, {
internalType: 'bytes',
name: '',
type: 'bytes'
}],
name: 'onERC1155BatchReceived',
outputs: [{
internalType: 'bytes4',
name: '',
type: 'bytes4'
}],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'uint256',
name: '',
type: 'uint256'
}, {
internalType: 'uint256',
name: '',
type: 'uint256'
}, {
internalType: 'bytes',
name: '',
type: 'bytes'
}],
name: 'onERC1155Received',
outputs: [{
internalType: 'bytes4',
name: '',
type: 'bytes4'
}],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'uint256',
name: '',
type: 'uint256'
}, {
internalType: 'bytes',
name: '',
type: 'bytes'
}],
name: 'onERC721Received',
outputs: [{
internalType: 'bytes4',
name: '',
type: 'bytes4'
}],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address[]',
name: '_nfts',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: '_tokenIds',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_lendingIds',
type: 'uint256[]'
}, {
internalType: 'uint8[]',
name: '_rentDurations',
type: 'uint8[]'
}],
name: 'rent',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [],
name: 'rentFee',
outputs: [{
internalType: 'uint256',
name: '',
type: 'uint256'
}],
stateMutability: 'view',
type: 'function'
}, {
inputs: [{
internalType: 'address[]',
name: '_nfts',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: '_tokenIds',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_lendingIds',
type: 'uint256[]'
}],
name: 'returnIt',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address payable',
name: '_newBeneficiary',
type: 'address'
}],
name: 'setBeneficiary',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'bool',
name: '_paused',
type: 'bool'
}],
name: 'setPaused',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'uint256',
name: '_rentFee',
type: 'uint256'
}],
name: 'setRentFee',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address[]',
name: '_nfts',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: '_tokenIds',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_lendingIds',
type: 'uint256[]'
}],
name: 'stopLending',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'bytes4',
name: 'interfaceId',
type: 'bytes4'
}],
name: 'supportsInterface',
outputs: [{
internalType: 'bool',
name: '',
type: 'bool'
}],
stateMutability: 'view',
type: 'function'
}];
var DEPLOYMENT_AZRAEL_ETHEREUM_MAINNET_V0 = {
abi: AzraelV0Abi,
contractAddress: '0x94D8f036a0fbC216Bb532D33bDF6564157Af0cD7',
contractType: exports.RenftContractType.AZRAEL,
network: NETWORK_ETHEREUM_MAINNET,
startBlock: 12875508,
version: exports.AzraelVersion.V0
};
var ResolverV0Abi = [{
inputs: [{
internalType: 'address',
name: '_admin',
type: 'address'
}],
stateMutability: 'nonpayable',
type: 'constructor'
}, {
inputs: [{
internalType: 'uint8',
name: '_pt',
type: 'uint8'
}],
name: 'getPaymentToken',
outputs: [{
internalType: 'address',
name: '',
type: 'address'
}],
stateMutability: 'view',
type: 'function'
}, {
inputs: [{
internalType: 'uint8',
name: '_pt',
type: 'uint8'
}, {
internalType: 'address',
name: '_v',
type: 'address'
}],
name: 'setPaymentToken',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}];
var DEPLOYMENT_RESOLVER_ETHEREUM_MAINNET_V0 = {
abi: ResolverV0Abi,
contractAddress: '0x945E589A4715d1915e6FE14f08e4887Bc4019341',
contractType: exports.RenftContractType.RESOLVER,
network: NETWORK_ETHEREUM_MAINNET,
startBlock: 12875506,
version: exports.ResolverVersion.V0
};
// note that this resolver actually allows us to change already set
// payment tokens. that is its only difference from the prod v0 resolver
// this is useful if an integrating project wishes to change their erc20
var DEPLOYMENT_RESOLVER_ETHEREUM_GOERLI_TESTNET_V0 = {
abi: ResolverV0Abi,
contractAddress: '0xF8834327e7f3f5103954E477A32dC742A6518A9C',
contractType: exports.RenftContractType.RESOLVER,
network: NETWORK_ETHEREUM_GOERLI_TESTNET,
startBlock: 8907116,
version: exports.ResolverVersion.V0
};
var DEPLOYMENT_RESOLVER_POLYGON_MAINNET_V0 = {
abi: ResolverV0Abi,
contractAddress: '0x6884d88Ce56C5C93F46eE23684eBA8628c90B518',
contractType: exports.RenftContractType.RESOLVER,
network: NETWORK_POLYGON_MAINNET,
startBlock: 28399112,
version: exports.ResolverVersion.V0
};
var DEPLOYMENT_RESOLVER_AVALANCHE_FUJI_TESTNET_V0 = {
abi: ResolverV0Abi,
contractAddress: '0x23F7F8B03BAF01D5124255fE240E81BbBd3AEc0D',
contractType: exports.RenftContractType.RESOLVER,
network: NETWORK_AVALANCHE_FUJI_TESTNET,
startBlock: 11500156,
version: exports.ResolverVersion.V0
};
var DEPLOYMENT_RESOLVER_AVALANCHE_MAINNET_V0 = {
abi: ResolverV0Abi,
contractAddress: '0xEBFd584AAC21dfEFF02c3d4f308B0962610a028A',
contractType: exports.RenftContractType.RESOLVER,
network: NETWORK_AVALANCHE_MAINNET,
startBlock: 19408332,
version: exports.ResolverVersion.V0
};
var ResolverV1Abi = [{
inputs: [{
internalType: 'address',
name: '_admin',
type: 'address'
}],
stateMutability: 'nonpayable',
type: 'constructor'
}, {
inputs: [{
internalType: 'uint8',
name: '_pt',
type: 'uint8'
}],
name: 'getPaymentToken',
outputs: [{
internalType: 'address',
name: '',
type: 'address'
}],
stateMutability: 'view',
type: 'function'
}, {
inputs: [{
internalType: 'uint8',
name: '_pt',
type: 'uint8'
}, {
internalType: 'address',
name: '_v',
type: 'address'
}],
name: 'setPaymentToken',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}];
var DEPLOYMENT_RESOLVER_POLYGON_MAINNET_V1 = {
abi: ResolverV1Abi,
contractAddress: '0x3ddC85bB768A11B0125f4ee71CfeA54e54653366',
contractType: exports.RenftContractType.RESOLVER,
network: NETWORK_POLYGON_MAINNET,
startBlock: 36825213,
version: exports.ResolverVersion.V1
};
var SylvesterV0Abi = [{
inputs: [{
internalType: 'address',
name: 'newResolver',
type: 'address'
}, {
internalType: 'address payable',
name: 'newBeneficiary',
type: 'address'
}, {
internalType: 'address',
name: 'newAdmin',
type: 'address'
}],
stateMutability: 'nonpayable',
type: 'constructor'
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: 'bool',
name: 'is721',
type: 'bool'
}, {
indexed: true,
internalType: 'address',
name: 'lenderAddress',
type: 'address'
}, {
indexed: true,
internalType: 'address',
name: 'nftAddress',
type: 'address'
}, {
indexed: true,
internalType: 'uint256',
name: 'tokenID',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint256',
name: 'lendingID',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint8',
name: 'maxRentDuration',
type: 'uint8'
}, {
indexed: false,
internalType: 'bytes4',
name: 'dailyRentPrice',
type: 'bytes4'
}, {
indexed: false,
internalType: 'uint16',
name: 'lendAmount',
type: 'uint16'
}, {
indexed: false,
internalType: 'enum IResolver.PaymentToken',
name: 'paymentToken',
type: 'uint8'
}],
name: 'Lend',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'address',
name: 'renterAddress',
type: 'address'
}, {
indexed: true,
internalType: 'uint256',
name: 'lendingID',
type: 'uint256'
}, {
indexed: true,
internalType: 'uint256',
name: 'rentingID',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint16',
name: 'rentAmount',
type: 'uint16'
}, {
indexed: false,
internalType: 'uint8',
name: 'rentDuration',
type: 'uint8'
}, {
indexed: false,
internalType: 'uint32',
name: 'rentedAt',
type: 'uint32'
}],
name: 'Rent',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'uint256',
name: 'rentingID',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint32',
name: 'collectedAt',
type: 'uint32'
}],
name: 'RentClaimed',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'uint256',
name: 'lendingID',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint32',
name: 'stoppedAt',
type: 'uint32'
}],
name: 'StopLend',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'uint256',
name: 'rentingID',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint32',
name: 'stoppedAt',
type: 'uint32'
}],
name: 'StopRent',
type: 'event'
}, {
inputs: [{
internalType: 'enum IRegistry.NFTStandard[]',
name: 'nftStandard',
type: 'uint8[]'
}, {
internalType: 'address[]',
name: 'nftAddress',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: 'tokenID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_lendingID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_rentingID',
type: 'uint256[]'
}],
name: 'claimRent',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address',
name: 'nftAddress',
type: 'address'
}, {
internalType: 'uint256',
name: 'tokenID',
type: 'uint256'
}, {
internalType: 'uint256',
name: '_lendingID',
type: 'uint256'
}],
name: 'getLending',
outputs: [{
internalType: 'uint8',
name: '',
type: 'uint8'
}, {
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'uint8',
name: '',
type: 'uint8'
}, {
internalType: 'bytes4',
name: '',
type: 'bytes4'
}, {
internalType: 'uint16',
name: '',
type: 'uint16'
}, {
internalType: 'uint16',
name: '',
type: 'uint16'
}, {
internalType: 'uint8',
name: '',
type: 'uint8'
}],
stateMutability: 'view',
type: 'function'
}, {
inputs: [{
internalType: 'address',
name: 'nftAddress',
type: 'address'
}, {
internalType: 'uint256',
name: 'tokenID',
type: 'uint256'
}, {
internalType: 'uint256',
name: '_rentingID',
type: 'uint256'
}],
name: 'getRenting',
outputs: [{
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'uint16',
name: '',
type: 'uint16'
}, {
internalType: 'uint8',
name: '',
type: 'uint8'
}, {
internalType: 'uint32',
name: '',
type: 'uint32'
}],
stateMutability: 'view',
type: 'function'
}, {
inputs: [{
internalType: 'enum IRegistry.NFTStandard[]',
name: 'nftStandard',
type: 'uint8[]'
}, {
internalType: 'address[]',
name: 'nftAddress',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: 'tokenID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: 'lendAmount',
type: 'uint256[]'
}, {
internalType: 'uint8[]',
name: 'maxRentDuration',
type: 'uint8[]'
}, {
internalType: 'bytes4[]',
name: 'dailyRentPrice',
type: 'bytes4[]'
}, {
internalType: 'enum IResolver.PaymentToken[]',
name: 'paymentToken',
type: 'uint8[]'
}],
name: 'lend',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'uint256[]',
name: '',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '',
type: 'uint256[]'
}, {
internalType: 'bytes',
name: '',
type: 'bytes'
}],
name: 'onERC1155BatchReceived',
outputs: [{
internalType: 'bytes4',
name: '',
type: 'bytes4'
}],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'uint256',
name: '',
type: 'uint256'
}, {
internalType: 'uint256',
name: '',
type: 'uint256'
}, {
internalType: 'bytes',
name: '',
type: 'bytes'
}],
name: 'onERC1155Received',
outputs: [{
internalType: 'bytes4',
name: '',
type: 'bytes4'
}],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'uint256',
name: '',
type: 'uint256'
}, {
internalType: 'bytes',
name: '',
type: 'bytes'
}],
name: 'onERC721Received',
outputs: [{
internalType: 'bytes4',
name: '',
type: 'bytes4'
}],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [],
name: 'paused',
outputs: [{
internalType: 'bool',
name: '',
type: 'bool'
}],
stateMutability: 'view',
type: 'function'
}, {
inputs: [{
internalType: 'enum IRegistry.NFTStandard[]',
name: 'nftStandard',
type: 'uint8[]'
}, {
internalType: 'address[]',
name: 'nftAddress',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: 'tokenID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_lendingID',
type: 'uint256[]'
}, {
internalType: 'uint8[]',
name: 'rentDuration',
type: 'uint8[]'
}, {
internalType: 'uint256[]',
name: 'rentAmount',
type: 'uint256[]'
}],
name: 'rent',
outputs: [],
stateMutability: 'payable',
type: 'function'
}, {
inputs: [],
name: 'rentFee',
outputs: [{
internalType: 'uint256',
name: '',
type: 'uint256'
}],
stateMutability: 'view',
type: 'function'
}, {
inputs: [{
internalType: 'address payable',
name: 'newBeneficiary',
type: 'address'
}],
name: 'setBeneficiary',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'bool',
name: 'newPaused',
type: 'bool'
}],
name: 'setPaused',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'uint256',
name: 'newRentFee',
type: 'uint256'
}],
name: 'setRentFee',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'enum IRegistry.NFTStandard[]',
name: 'nftStandard',
type: 'uint8[]'
}, {
internalType: 'address[]',
name: 'nftAddress',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: 'tokenID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_lendingID',
type: 'uint256[]'
}],
name: 'stopLend',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'enum IRegistry.NFTStandard[]',
name: 'nftStandard',
type: 'uint8[]'
}, {
internalType: 'address[]',
name: 'nftAddress',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: 'tokenID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_lendingID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_rentingID',
type: 'uint256[]'
}],
name: 'stopRent',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'bytes4',
name: 'interfaceId',
type: 'bytes4'
}],
name: 'supportsInterface',
outputs: [{
internalType: 'bool',
name: '',
type: 'bool'
}],
stateMutability: 'view',
type: 'function'
}];
var DEPLOYMENT_SYLVESTER_ETHEREUM_MAINNET_V0 = {
abi: SylvesterV0Abi,
contractAddress: '0xa8D3F65b6E2922fED1430b77aC2b557e1fa8DA4a',
contractType: exports.RenftContractType.SYLVESTER,
network: NETWORK_ETHEREUM_MAINNET,
startBlock: 13197348,
version: exports.SylvesterVersion.V0
};
var DEPLOYMENT_SYLVESTER_ETHEREUM_GOERLI_TESTNET_V0 = {
abi: SylvesterV0Abi,
contractAddress: '0xEDe9A15388CCd972DffBD7C3F5504345703b63b2',
contractType: exports.RenftContractType.SYLVESTER,
network: NETWORK_ETHEREUM_GOERLI_TESTNET,
startBlock: 8907139,
version: exports.SylvesterVersion.V0
};
// TODO
// @deprecated - Please use the v1 contract below.
var DEPLOYMENT_SYLVESTER_POLYGON_MAINNET_V0 = {
abi: SylvesterV0Abi,
contractAddress: '0xfA06cFE34C85Ec6b6D29A6a99806cC68BA0018Fe',
contractType: exports.RenftContractType.SYLVESTER,
network: NETWORK_POLYGON_MAINNET,
startBlock: 28399140,
version: exports.SylvesterVersion.V0
};
var SylvesterV1Abi = [{
inputs: [{
internalType: 'address',
name: 'newResolver',
type: 'address'
}, {
internalType: 'address payable',
name: 'newBeneficiary',
type: 'address'
}, {
internalType: 'address',
name: 'newAdmin',
type: 'address'
}],
stateMutability: 'nonpayable',
type: 'constructor'
}, {
anonymous: false,
inputs: [{
indexed: false,
internalType: 'bool',
name: 'is721',
type: 'bool'
}, {
indexed: true,
internalType: 'address',
name: 'lenderAddress',
type: 'address'
}, {
indexed: true,
internalType: 'address',
name: 'nftAddress',
type: 'address'
}, {
indexed: true,
internalType: 'uint256',
name: 'tokenID',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint256',
name: 'lendingID',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint8',
name: 'maxRentDuration',
type: 'uint8'
}, {
indexed: false,
internalType: 'bytes4',
name: 'dailyRentPrice',
type: 'bytes4'
}, {
indexed: false,
internalType: 'uint16',
name: 'lendAmount',
type: 'uint16'
}, {
indexed: false,
internalType: 'enum IResolver.PaymentToken',
name: 'paymentToken',
type: 'uint8'
}, {
indexed: false,
internalType: 'bool',
name: 'willAutoRenew',
type: 'bool'
}],
name: 'Lend',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'address',
name: 'renterAddress',
type: 'address'
}, {
indexed: true,
internalType: 'uint256',
name: 'lendingID',
type: 'uint256'
}, {
indexed: true,
internalType: 'uint256',
name: 'rentingID',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint16',
name: 'rentAmount',
type: 'uint16'
}, {
indexed: false,
internalType: 'uint8',
name: 'rentDuration',
type: 'uint8'
}, {
indexed: false,
internalType: 'uint32',
name: 'rentedAt',
type: 'uint32'
}],
name: 'Rent',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'uint256',
name: 'rentingID',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint32',
name: 'collectedAt',
type: 'uint32'
}],
name: 'RentClaimed',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'uint256',
name: 'lendingID',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint32',
name: 'stoppedAt',
type: 'uint32'
}, {
indexed: false,
internalType: 'uint16',
name: 'amount',
type: 'uint16'
}],
name: 'StopLend',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'uint256',
name: 'rentingID',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint32',
name: 'stoppedAt',
type: 'uint32'
}],
name: 'StopRent',
type: 'event'
}, {
inputs: [{
internalType: 'enum IRegistry.NFTStandard[]',
name: 'nftStandard',
type: 'uint8[]'
}, {
internalType: 'address[]',
name: 'nftAddress',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: 'tokenID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_lendingID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_rentingID',
type: 'uint256[]'
}],
name: 'claimRent',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address',
name: 'nftAddress',
type: 'address'
}, {
internalType: 'uint256',
name: 'tokenID',
type: 'uint256'
}, {
internalType: 'uint256',
name: '_lendingID',
type: 'uint256'
}],
name: 'getLending',
outputs: [{
internalType: 'uint8',
name: '',
type: 'uint8'
}, {
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'uint8',
name: '',
type: 'uint8'
}, {
internalType: 'bytes4',
name: '',
type: 'bytes4'
}, {
internalType: 'uint16',
name: '',
type: 'uint16'
}, {
internalType: 'uint16',
name: '',
type: 'uint16'
}, {
internalType: 'uint8',
name: '',
type: 'uint8'
}],
stateMutability: 'view',
type: 'function'
}, {
inputs: [{
internalType: 'address',
name: 'nftAddress',
type: 'address'
}, {
internalType: 'uint256',
name: 'tokenID',
type: 'uint256'
}, {
internalType: 'uint256',
name: '_rentingID',
type: 'uint256'
}],
name: 'getRenting',
outputs: [{
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'uint16',
name: '',
type: 'uint16'
}, {
internalType: 'uint8',
name: '',
type: 'uint8'
}, {
internalType: 'uint32',
name: '',
type: 'uint32'
}],
stateMutability: 'view',
type: 'function'
}, {
inputs: [{
internalType: 'enum IRegistry.NFTStandard[]',
name: 'nftStandard',
type: 'uint8[]'
}, {
internalType: 'address[]',
name: 'nftAddress',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: 'tokenID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: 'lendAmount',
type: 'uint256[]'
}, {
internalType: 'uint8[]',
name: 'maxRentDuration',
type: 'uint8[]'
}, {
internalType: 'bytes4[]',
name: 'dailyRentPrice',
type: 'bytes4[]'
}, {
internalType: 'enum IResolver.PaymentToken[]',
name: 'paymentToken',
type: 'uint8[]'
}, {
internalType: 'bool[]',
name: 'willAutoRenew',
type: 'bool[]'
}],
name: 'lend',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'uint256[]',
name: '',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '',
type: 'uint256[]'
}, {
internalType: 'bytes',
name: '',
type: 'bytes'
}],
name: 'onERC1155BatchReceived',
outputs: [{
internalType: 'bytes4',
name: '',
type: 'bytes4'
}],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'uint256',
name: '',
type: 'uint256'
}, {
internalType: 'uint256',
name: '',
type: 'uint256'
}, {
internalType: 'bytes',
name: '',
type: 'bytes'
}],
name: 'onERC1155Received',
outputs: [{
internalType: 'bytes4',
name: '',
type: 'bytes4'
}],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'address',
name: '',
type: 'address'
}, {
internalType: 'uint256',
name: '',
type: 'uint256'
}, {
internalType: 'bytes',
name: '',
type: 'bytes'
}],
name: 'onERC721Received',
outputs: [{
internalType: 'bytes4',
name: '',
type: 'bytes4'
}],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [],
name: 'paused',
outputs: [{
internalType: 'bool',
name: '',
type: 'bool'
}],
stateMutability: 'view',
type: 'function'
}, {
inputs: [{
internalType: 'enum IRegistry.NFTStandard[]',
name: 'nftStandard',
type: 'uint8[]'
}, {
internalType: 'address[]',
name: 'nftAddress',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: 'tokenID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_lendingID',
type: 'uint256[]'
}, {
internalType: 'uint8[]',
name: 'rentDuration',
type: 'uint8[]'
}, {
internalType: 'uint256[]',
name: 'rentAmount',
type: 'uint256[]'
}],
name: 'rent',
outputs: [],
stateMutability: 'payable',
type: 'function'
}, {
inputs: [],
name: 'rentFee',
outputs: [{
internalType: 'uint256',
name: '',
type: 'uint256'
}],
stateMutability: 'view',
type: 'function'
}, {
inputs: [{
internalType: 'address payable',
name: 'newBeneficiary',
type: 'address'
}],
name: 'setBeneficiary',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'bool',
name: 'newPaused',
type: 'bool'
}],
name: 'setPaused',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'uint256',
name: 'newRentFee',
type: 'uint256'
}],
name: 'setRentFee',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'enum IRegistry.NFTStandard[]',
name: 'nftStandard',
type: 'uint8[]'
}, {
internalType: 'address[]',
name: 'nftAddress',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: 'tokenID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_lendingID',
type: 'uint256[]'
}],
name: 'stopLend',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'enum IRegistry.NFTStandard[]',
name: 'nftStandard',
type: 'uint8[]'
}, {
internalType: 'address[]',
name: 'nftAddress',
type: 'address[]'
}, {
internalType: 'uint256[]',
name: 'tokenID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_lendingID',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: '_rentingID',
type: 'uint256[]'
}],
name: 'stopRent',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'bytes4',
name: 'interfaceId',
type: 'bytes4'
}],
name: 'supportsInterface',
outputs: [{
internalType: 'bool',
name: '',
type: 'bool'
}],
stateMutability: 'view',
type: 'function'
}];
var DEPLOYMENT_SYLVESTER_POLYGON_MAINNET_V1 = {
abi: SylvesterV1Abi,
contractAddress: '0x4e52B73Aa28b7FF84d88eA3A90C0668f46043450',
contractType: exports.RenftContractType.SYLVESTER,
network: NETWORK_POLYGON_MAINNET,
startBlock: 36825974,
version: exports.SylvesterVersion.V1
};
var WhoopiV0Abi = [{
inputs: [{
internalType: 'address',
name: 'newResolver',
type: 'address'
}, {
internalType: 'address',
name: 'newAdmin',
type: 'address'
}],
stateMutability: 'nonpayable',
type: 'constructor'
}, {
inputs: [],
name: 'InvalidPortionsSum',
type: 'error'
}, {
inputs: [],
name: 'InvalidProtocolFeeReceivers',
type: 'error'
}, {
inputs: [],
name: 'LendingEmpty',
type: 'error'
}, {
inputs: [],
name: 'LendingNotActive',
type: 'error'
}, {
inputs: [],
name: 'LendingNotEmpty',
type: 'error'
}, {
inputs: [],
name: 'NftTransferFailed',
type: 'error'
}, {
inputs: [{
internalType: 'address',
name: 'caller',
type: 'address'
}],
name: 'NotAdmin',
type: 'error'
}, {
inputs: [{
internalType: 'uint8',
name: 'errorCode',
type: 'uint8'
}],
name: 'NotLendable',
type: 'error'
}, {
inputs: [{
internalType: 'uint8',
name: 'errorCode',
type: 'uint8'
}],
name: 'NotPayable',
type: 'error'
}, {
inputs: [{
internalType: 'uint8',
name: 'errorCode',
type: 'uint8'
}],
name: 'NotRentable',
type: 'error'
}, {
inputs: [],
name: 'NotWhitelistedToRent',
type: 'error'
}, {
inputs: [],
name: 'Paused',
type: 'error'
}, {
inputs: [{
internalType: 'uint8',
name: 'rentDuration',
type: 'uint8'
}, {
internalType: 'uint8',
name: 'maxRentDuration',
type: 'uint8'
}],
name: 'RentDurationExceedsMaxRentDuration',
type: 'error'
}, {
inputs: [],
name: 'RentingNotEmpty',
type: 'error'
}, {
inputs: [],
name: 'ReturningNotAllowed',
type: 'error'
}, {
inputs: [{
internalType: 'address',
name: 'lender',
type: 'address'
}, {
internalType: 'address',
name: 'msgSender',
type: 'address'
}],
name: 'StopperNotLender',
type: 'error'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'address',
name: 'nftAddress',
type: 'address'
}, {
indexed: false,
internalType: 'uint256',
name: 'upfrontRentFee',
type: 'uint256'
}, {
indexed: false,
internalType: 'address payable[]',
name: 'allowedRenters',
type: 'address[]'
}, {
components: [{
internalType: 'address payable[]',
name: 'beneficiaries',
type: 'address[]'
}, {
internalType: 'uint8[]',
name: 'portions',
type: 'uint8[]'
}],
indexed: false,
internalType: 'struct IReNFT.RevShare',
name: 'revShares',
type: 'tuple'
}, {
indexed: false,
internalType: 'uint8',
name: 'maxRentDuration',
type: 'uint8'
}, {
indexed: false,
internalType: 'enum IResolver.PaymentToken',
name: 'paymentToken',
type: 'uint8'
}, {
indexed: true,
internalType: 'address',
name: 'lenderAddress',
type: 'address'
}, {
indexed: true,
internalType: 'uint256',
name: 'tokenId',
type: 'uint256'
}, {
indexed: false,
internalType: 'uint256',
name: 'lendingId',
type: 'uint256'
}],
name: 'Lend',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'uint256',
name: 'lendingId',
type: 'uint256'
}, {
indexed: true,
internalType: 'address',
name: 'renterAddress',
type: 'address'
}, {
indexed: false,
internalType: 'uint8',
name: 'rentDuration',
type: 'uint8'
}],
name: 'Rent',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'uint256',
name: 'lendingId',
type: 'uint256'
}],
name: 'StopLend',
type: 'event'
}, {
anonymous: false,
inputs: [{
indexed: true,
internalType: 'uint256',
name: 'lendingId',
type: 'uint256'
}],
name: 'StopRent',
type: 'event'
}, {
inputs: [],
name: 'flipPaused',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
components: [{
internalType: 'contract INFTContract',
name: 'nft',
type: 'address'
}, {
internalType: 'uint256[]',
name: 'tokenIds',
type: 'uint256[]'
}, {
internalType: 'uint256[]',
name: 'lendingIds',
type: 'uint256[]'
}],
internalType: 'struct IReNFT.Nfts',
name: 'nfts',
type: 'tuple'
}, {
internalType: 'uint256[]',
name: 'upfrontRentFee',
type: 'uint256[]'
}, {
components: [{
internalType: 'address payable[]',
name: 'allowedRenters',
type: 'address[]'
}],
internalType: 'struct IReNFT.AllowedRenters[]',
name: 'allowedRenters',
type: 'tuple[]'
}, {
components: [{
internalType: 'address payable[]',
name: 'beneficiaries',
type: 'address[]'
}, {
internalType: 'uint8[]',
name: 'portions',
type: 'uint8[]'
}],
internalType: 'struct IReNFT.RevShare[]',
name: 'revShares',
type: 'tuple[]'
}, {
internalType: 'uint8[]',
name: 'maxRentDurations',
type: 'uint8[]'
}, {
internalType: 'enum IResolver.PaymentToken[]',
name: 'paymentTokens',
type: 'uint8[]'
}],
name: 'lend',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
}, {
inputs: [{
internalType: 'bytes32',
name: '',
type: 'bytes32'
}],
name: 'lendingRentings',
outputs: [{
components: [{
internalType: 'address payable[]',
name: 'allowedRenters',
type: 'address[]'
}, {
components: [{
internalType: 'address payable[]',
name: 'beneficiaries',
type: 'address[]'
}, {
internalType: 'uint8[]',
name: 'portions',
type: 'uint8[]'
}],
internalType: 'struct IReNFT.RevShare',
name: 'revShares',
type: 'tuple'
}, {
internalType: 'uint256',
name: 'upfrontRentFee',
type: 'uint256'