@credenza-web3/contracts
Version:
Credenza Contracts
1,728 lines • 114 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "UpsellPublicLock",
"sourceName": "contracts/upsell-lock/UpsellPublicLock.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sendTo",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "refund",
"type": "uint256"
}
],
"name": "CancelKey",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "contractAddress",
"type": "address"
}
],
"name": "ContractDeployed",
"type": "event"
},
{
"anonymous": false,
"inputs": [],
"name": "Disable",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "receiver",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "refundedAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "tokenAddress",
"type": "address"
}
],
"name": "GasRefunded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "KeyGranterAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "KeyGranterRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "_newManager",
"type": "address"
}
],
"name": "KeyManagerChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "LockManagerAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "LockManagerRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "symbol",
"type": "string"
}
],
"name": "NewLockSymbol",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "oldKeyPrice",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "keyPrice",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "oldTokenAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "tokenAddress",
"type": "address"
}
],
"name": "PricingChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "freeTrialLength",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "refundPenaltyBasisPoints",
"type": "uint256"
}
],
"name": "RefundPenaltyChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "newExpiration",
"type": "uint256"
}
],
"name": "RenewKeyPurchase",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "transferFeeBasisPoints",
"type": "uint256"
}
],
"name": "TransferFeeChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "lockAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "unlockAddress",
"type": "address"
}
],
"name": "UnlockCallFailed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "upsellID",
"type": "uint256"
},
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "keyId",
"type": "uint256"
}
],
"name": "UpsellGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "beneficiary",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "Withdrawal",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "KEY_GRANTER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "LOCK_MANAGER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "addKeyGranter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "addLockManager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_approved",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "approveBeneficiary",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_keyOwner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "beneficiary",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "cancelAndRefund",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "price",
"type": "uint256"
}
],
"name": "createUpsell",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "disableLock",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "expirationDuration",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_keyOwner",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "expireAndRefundFor",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "freeTrialLength",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "gasRefundValue",
"outputs": [
{
"internalType": "uint256",
"name": "_refundValue",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_keyOwner",
"type": "address"
}
],
"name": "getCancelAndRefundValueFor",
"outputs": [
{
"internalType": "uint256",
"name": "refund",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_keyOwner",
"type": "address"
}
],
"name": "getHasValidKey",
"outputs": [
{
"internalType": "bool",
"name": "isValid",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getLatestUpsell",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_account",
"type": "address"
}
],
"name": "getTokenIdFor",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "upsellID",
"type": "uint256"
}
],
"name": "getUpsellPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "_recipients",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "_expirationTimestamps",
"type": "uint256[]"
},
{
"internalType": "address[]",
"name": "_keyManagers",
"type": "address[]"
}
],
"name": "grantKeys",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "upsellID",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "grantUpsell",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_lockCreator",
"type": "address"
},
{
"internalType": "uint256",
"name": "_expirationDuration",
"type": "uint256"
},
{
"internalType": "address",
"name": "_tokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "_keyPrice",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_maxNumberOfKeys",
"type": "uint256"
},
{
"internalType": "string",
"name": "_lockName",
"type": "string"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "isAlive",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
},
{
"internalType": "address",
"name": "_operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "isKeyGranter",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "isLockManager",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "keyManagerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "keyPrice",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "maxNumberOfKeys",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "publicLockVersion",
"outputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
},
{
"internalType": "address",
"name": "_recipient",
"type": "address"
},
{
"internalType": "address",
"name": "_referrer",
"type": "address"
},
{
"internalType": "address",
"name": "_keyManager",
"type": "address"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "purchase",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_recipient",
"type": "address"
},
{
"internalType": "address",
"name": "_referrer",
"type": "address"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "purchasePriceFor",
"outputs": [
{
"internalType": "uint256",
"name": "minKeyPrice",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "upsellID",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "purchaseUpsell",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "refundPenaltyBasisPoints",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceLockManager",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_granter",
"type": "address"
}
],
"name": "revokeKeyGranter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "bool",
"name": "_approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_baseTokenURI",
"type": "string"
}
],
"name": "setBaseTokenURI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_refundValue",
"type": "uint256"
}
],
"name": "setGasRefundValue",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "_keyManager",
"type": "address"
}
],
"name": "setKeyManagerOf",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_maxNumberOfKeys",
"type": "uint256"
}
],
"name": "setMaxNumberOfKeys",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_tetherContractAddress",
"type": "address"
}
],
"name": "setTetherContractAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "tetherContractAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "tokenAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
}
],
"name": "tokenByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_keyOwner",
"type": "address"
},
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
}
],
"name": "tokenOfOwnerByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "success",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_from",
"type": "address"
},
{
"internalType": "address",
"name": "_recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_beneficiary",
"type": "address"
}
],
"name": "updateBeneficiary",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_keyPrice",
"type": "uint256"
},
{
"internalType": "address",
"name": "_tokenAddress",
"type": "address"
}
],
"name": "updateKeyPricing",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_lockName",
"type": "string"
}
],
"name": "updateLockName",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_lockSymbol",
"type": "string"
}
],
"name": "updateLockSymbol",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_freeTrialLength",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_refundPenaltyBasisPoints",
"type": "uint256"
}
],
"name": "updateRefundPenalty",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "upsellID",
"type": "uint256"
},
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "verifyUpsellOwnership",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_tokenAddress",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x60806040526000611c315534801561001657600080fd5b5060405130907f8ffcdc15a283d706d38281f500270d8b5a656918f555de0913d7455e3e6bc1bf90600090a2614bcc806100516000396000f3fe6080604052600436106104145760003560e01c806371a30b3d1161021e578063b585a6d511610123578063d2503485116100ab578063ec3a2b511161007a578063ec3a2b5114610c6c578063f0ba604014610c9a578063f3fef3a314610caf578063f5766b3914610ccf578063f5b792f914610cef57600080fd5b8063d250348514610bec578063d32bfb6c14610c0c578063d547741f14610c2c578063e985e9c514610c4c57600080fd5b8063bf4a9270116100f2578063bf4a927014610b68578063c1c98d0314610b88578063c87b56dd14610b9d578063cfb7ebd514610bbd578063d1bbd49c14610bd057600080fd5b8063b585a6d514610ae8578063b88d4fde14610b08578063ba5a370b14610b28578063bef3b3ed14610b4857600080fd5b806397aa390a116101a6578063a2e4cd2e11610175578063a2e4cd2e14610a51578063a375cb0514610a71578063a9059cbb14610a88578063aae4b8f714610aa8578063b11d7ec114610ac857600080fd5b806397aa390a146109db5780639d76ea58146109fb578063a217fddf14610a1c578063a22cb46514610a3157600080fd5b80638be4b870116101ed5780638be4b8701461093a5780638ca2fbad1461094d57806391d148541461096f57806395d89b411461098f578063970aaeb7146109a457600080fd5b806371a30b3d146108cd57806374b6c106146108e3578063782a4ade146108fa57806381a3c9431461091a57600080fd5b806336568abe11610324578063550ef3a8116102ac5780636352211e1161027b5780636352211e146108165780636d8ea5b41461084d5780636eadde431461086d5780636ef532581461088d57806370a08231146108ad57600080fd5b8063550ef3a8146107a9578063564aa99d146107c957806356e0d51f146107e95780636207a8da1461080057600080fd5b806342842e0e116102f357806342842e0e146106f25780634d025fed146107125780634f6ccce71461074957806352b0f6381461076957806352d6a8e41461078957600080fd5b806336568abe1461067657806338af3eed1461069657806339f46986146106b75780634136aa35146106d757600080fd5b806318160ddd116103a7578063248a9ca311610376578063248a9ca3146105c65780632af9162a146105f65780632f2ff15d146106165780632f745c591461063657806330176e131461065657600080fd5b806318160ddd1461054d5780631a64851014610563578063231005091461058457806323b872dd146105a657600080fd5b8063097ba333116103e3578063097ba333146104d15780630aaffd2a146104ff57806310e569731461051f57806311a4c03a1461053657600080fd5b806301ffc9a71461042057806306fdde0314610455578063081812fc14610477578063095ea7b3146104af57600080fd5b3661041b57005b600080fd5b34801561042c57600080fd5b5061044061043b3660046145e6565b610d0f565b60405190151581526020015b60405180910390f35b34801561046157600080fd5b5061046a610d20565b60405161044c919061487e565b34801561048357600080fd5b506104976104923660046145aa565b610daf565b6040516001600160a01b03909116815260200161044c565b3480156104bb57600080fd5b506104cf6104ca3660046144e6565b610e2b565b005b3480156104dd57600080fd5b506104f16104ec36600461433d565b610f72565b60405190815260200161044c565b34801561050b57600080fd5b506104cf61051a36600461423a565b610fbe565b34801561052b57600080fd5b506104f1610c845481565b34801561054257600080fd5b506104f1610c835481565b34801561055957600080fd5b50610c86546104f1565b34801561056f57600080fd5b5061107054610497906001600160a01b031681565b34801561059057600080fd5b506104f1600080516020614b5783398151915281565b3480156105b257600080fd5b506104cf6105c13660046143a0565b611042565b3480156105d257600080fd5b506104f16105e13660046145aa565b60009081526097602052604090206001015490565b34801561060257600080fd5b506104cf61061136600461423a565b6112ac565b34801561062257600080fd5b506104cf6106313660046145c2565b61132f565b34801561064257600080fd5b506104f16106513660046144e6565b611359565b34801561066257600080fd5b506104cf61067136600461461e565b6113e1565b34801561068257600080fd5b506104cf6106913660046145c2565b611422565b3480156106a257600080fd5b50610c8754610497906001600160a01b031681565b3480156106c357600080fd5b506104cf6106d23660046146e7565b6114a0565b3480156106e357600080fd5b5061089a546104409060ff1681565b3480156106fe57600080fd5b506104cf61070d3660046143a0565b61151a565b34801561071e57600080fd5b5061049761072d3660046145aa565b611073602052600090815260409020546001600160a01b031681565b34801561075557600080fd5b506104f16107643660046145aa565b611535565b34801561077557600080fd5b5061044061078436600461423a565b61157c565b34801561079557600080fd5b506104f16107a436600461423a565b611596565b3480156107b557600080fd5b506104cf6107c436600461461e565b6115a1565b3480156107d557600080fd5b506104cf6107e436600461423a565b6115e2565b3480156107f557600080fd5b506104f16124025481565b34801561080c57600080fd5b50611c31546104f1565b34801561082257600080fd5b506104976108313660046145aa565b600090815261107260205260409020546001600160a01b031690565b34801561085957600080fd5b5061044061086836600461423a565b611665565b34801561087957600080fd5b506104cf610888366004614281565b611731565b34801561089957600080fd5b506104406108a83660046145c2565b6118a0565b3480156108b957600080fd5b506104f16108c836600461423a565b6118ec565b3480156108d957600080fd5b506127ec546104f1565b3480156108ef57600080fd5b506104f1610c855481565b34801561090657600080fd5b506104cf61091536600461461e565b611934565b34801561092657600080fd5b506104cf6109353660046144f8565b6119b3565b6104cf610948366004614676565b611c2d565b34801561095957600080fd5b506104f1600080516020614b7783398151915281565b34801561097b57600080fd5b5061044061098a3660046145c2565b61204b565b34801561099b57600080fd5b5061046a612076565b3480156109b057600080fd5b506104f16109bf36600461423a565b6001600160a01b03166000908152611071602052604090205490565b3480156109e757600080fd5b506104cf6109f6366004614256565b612109565b348015610a0757600080fd5b506104b154610497906001600160a01b031681565b348015610a2857600080fd5b506104f1600081565b348015610a3d57600080fd5b506104cf610a4c3660046144b9565b61216d565b348015610a5d57600080fd5b506104cf610a6c3660046145c2565b612245565b348015610a7d57600080fd5b506104f16124035481565b348015610a9457600080fd5b50610440610aa33660046144e6565b6123dd565b348015610ab457600080fd5b50610440610ac336600461423a565b612405565b348015610ad457600080fd5b506104cf610ae33660046145c2565b61241f565b348015610af457600080fd5b50610440610b033660046144e6565b6124e3565b348015610b1457600080fd5b506104cf610b233660046143e0565b6125a7565b348015610b3457600080fd5b506104cf610b4336600461423a565b612610565b348015610b5457600080fd5b506104cf610b633660046145c2565b612667565b348015610b7457600080fd5b506104cf610b833660046145aa565b612763565b348015610b9457600080fd5b506104cf612807565b348015610ba957600080fd5b5061046a610bb83660046145aa565b612894565b6104cf610bcb3660046145c2565b6129a3565b348015610bdc57600080fd5b506040516009815260200161044c565b348015610bf857600080fd5b506104cf610c0736600461423a565b612ab5565b348015610c1857600080fd5b506104cf610c273660046145aa565b612b38565b348015610c3857600080fd5b506104cf610c473660046145c2565b612bd9565b348015610c5857600080fd5b50610440610c67366004614305565b612bfe565b348015610c7857600080fd5b506104f1610c873660046145aa565b60009081526127ed602052604090205490565b348015610ca657600080fd5b506104cf612c97565b348015610cbb57600080fd5b506104cf610cca3660046144e6565b612cdc565b348015610cdb57600080fd5b506104cf610cea3660046145aa565b612e69565b348015610cfb57600080fd5b506104f1610d0a3660046145aa565b612ea3565b6000610d1a82612f09565b92915050565b6110768054610d2e90614aa1565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5a90614aa1565b8015610da75780601f10610d7c57610100808354040283529160200191610da7565b820191906000526020600020905b815481529060010190602001808311610d8a57829003601f168201915b505050505081565b6000818152611072602052604081205482906001600160a01b0316610e095760405162461bcd60e51b815260206004820152600b60248201526a4e4f5f535543485f4b455960a81b60448201526064015b60405180910390fd5b600083815261107460205260409020546001600160a01b031691505b50919050565b61089a5460ff16610e4e5760405162461bcd60e51b8152600401610e00906149a2565b80610e598133612f14565b80610e7b5750600081815261107460205260409020546001600160a01b031633145b80610ea4575060008181526110726020526040902054610ea4906001600160a01b031633612bfe565b610ec05760405162461bcd60e51b8152600401610e00906148e1565b336001600160a01b0384161415610f085760405162461bcd60e51b815260206004820152600c60248201526b20a8282927ab22afa9a2a62360a11b6044820152606401610e00565b60008281526110746020908152604080832080546001600160a01b0319166001600160a01b03888116918217909255611072909352818420549151869492909116917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000610fb5858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f8d92505050565b95945050505050565b610fc733612405565b80610fdd5750610c87546001600160a01b031633145b610ff95760405162461bcd60e51b8152600401610e0090614918565b6001600160a01b03811661101f5760405162461bcd60e51b8152600401610e0090614891565b610c8780546001600160a01b0319166001600160a01b0392909216919091179055565b61089a5460ff166110655760405162461bcd60e51b8152600401610e00906149a2565b8261106f81611665565b61108b5760405162461bcd60e51b8152600401610e00906148ba565b816110968133612f14565b806110b85750600081815261107460205260409020546001600160a01b031633145b806110e15750600081815261107260205260409020546110e1906001600160a01b031633612bfe565b6110fd5760405162461bcd60e51b8152600401610e00906148e1565b600083815261107260205260409020546001600160a01b038681169116146111675760405162461bcd60e51b815260206004820152601c60248201527f5452414e534645525f46524f4d3a204e4f545f4b45595f4f574e4552000000006044820152606401610e00565b6001600160a01b03841660009081526110716020526040902054156111ce5760405162461bcd60e51b815260206004820152601960248201527f524543495049454e545f414c52454144595f4841535f4b4559000000000000006044820152606401610e00565b6001600160a01b0384166111f45760405162461bcd60e51b8152600401610e0090614891565b836001600160a01b0316856001600160a01b031614156112495760405162461bcd60e51b815260206004820152601060248201526f2a2920a729a322a92faa27afa9a2a62360811b6044820152606401610e00565b61125283612f98565b6001600160a01b03808616600081815261107160205260408082208290559287168082528382208790559251869392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a45050505050565b6112c4600080516020614b778339815191523361204b565b6112e05760405162461bcd60e51b8152600401610e009061494d565b6112f8600080516020614b5783398151915282612bd9565b6040516001600160a01b038216907f766f6199fea59554b9ff688e413302b9200f85d74811c053c12d945ac6d8dd7a90600090a250565b60008281526097602052604090206001015461134a81612fd7565b6113548383612fe1565b505050565b6000611364836118ec565b8210801561137a57506001600160a01b03831615155b6113bf5760405162461bcd60e51b815260206004820152601660248201527527a7262cafa7a722afa5a2acafa822a92fa7aba722a960511b6044820152606401610e00565b6001600160a01b038316600090815261107160205260409020545b9392505050565b6113f9600080516020614b778339815191523361204b565b6114155760405162461bcd60e51b8152600401610e009061494d565b6113546110788383614120565b6001600160a01b03811633146114925760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610e00565b61149c8282613067565b5050565b6114b8600080516020614b778339815191523361204b565b6114d45760405162461bcd60e51b8152600401610e009061494d565b60408051838152602081018390527fd6867bc538320e67d7bdc35860c27c08486eb490b4fd9b820fff18fb28381d3c910160405180910390a16124039190915561240255565b611354838383604051806020016040528060008152506125a7565b6000610c865482106115785760405162461bcd60e51b815260206004820152600c60248201526b4f55545f4f465f52414e474560a01b6044820152606401610e00565b5090565b6000610d1a600080516020614b578339815191528361204b565b6000610d1a826130ce565b6115b9600080516020614b778339815191523361204b565b6115d55760405162461bcd60e51b8152600401610e009061494d565b6113546110768383614120565b6115fa600080516020614b778339815191523361204b565b6116165760405162461bcd60e51b8152600401610e009061494d565b61162e600080516020614b578339815191528261132f565b6040516001600160a01b038216907f684f8a71407db0c334454ebe9c9b288549317893a20b10dc779ec5c118dcd12190600090a250565b6001600160a01b038116600090815261107160205260409020541580159061168c57919050565b611070546001600160a01b03161561172957611070546040516370a0823160e01b81526001600160a01b0384811660048301529091169060009082906370a082319060240160206040518083038186803b1580156116e957600080fd5b505afa1580156116fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611721919061465e565b119392505050565b506000919050565b600054610100900460ff16158080156117515750600054600160ff909116105b8061176b5750303b15801561176b575060005460ff166001145b6117ce5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e00565b6000805460ff1916600117905580156117f1576000805461ff0019166101001790555b6117fa86613101565b61180d61089a805460ff19166001179055565b611819888887876131d8565b611823838361326b565b61182b613291565b6118376103e861240255565b611840886132a3565b6118506380ac58cd60e01b61332b565b8015611896576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050565b60006118ab82611665565b6118b757506000610d1a565b506001600160a01b03166000908152611071602090815260408083205483526127ee8252808320938352929052205460ff1690565b60006001600160a01b0382166119145760405162461bcd60e51b8152600401610e0090614891565b61191d82611665565b61192857600061192b565b60015b60ff1692915050565b61194c600080516020614b778339815191523361204b565b6119685760405162461bcd60e51b8152600401610e009061494d565b6119756110778383614120565b507f8868e22e84ebf32da89b2ebcb0ac642816304ea3863b257f240df9098719cb9782826040516119a792919061484f565b60405180910390a15050565b6119bc3361157c565b806119cb57506119cb33612405565b611a495760405162461bcd60e51b815260206004820152604360248201527f4d6978696e526f6c65733a2063616c6c657220646f6573206e6f74206861766560448201527f20746865204b65794772616e746572206f72204c6f636b4d616e6167657220726064820152626f6c6560e81b608482015260a401610e00565b60005b85811015611c24576000878783818110611a7657634e487b7160e01b600052603260045