🏞️GroupTokens

The ERC-20 token that controls a Group / Space and owned by a single user.

This documentation provides the information needed to interact with the GroupTokens Smart Contract deployed on the Polygon Network. This smart contract is an upgradeable ERC721 token contract, designed to allow the minting and managing of unique group tokens, or Spaces.

Table of Contents


Public Functions

getGroupID

Gets a group ID from a group name.

Input

Name
Type
Description

groupName

string

The name of the group

Returns

Name
Type
Description

uint256

integer

The unique ID of the group

Example with ethers.js

const ethers = require('ethers');

const groupName = 'MyAwesomeGroup';

const groupID = await contract.getGroupID(groupName);
console.log(`The ID of the group ${groupName} is ${groupID}`);

isGroupAvailable

Checks if a group is available to mint.

Input

Name
Type
Description

groupName

string

The name of the group

Returns

Name
Type
Description

bool

boolean

True if the group is available to mint, false if it's already minted

Example with ethers.js

const ethers = require('ethers');

const groupName = 'MyAwesomeGroup';

const available = await contract.isGroupAvailable(groupName);
console.log(`Is the group ${groupName} available? ${available}`);

mintGroup

Mints a group / Space.

Input

Name
Type
Description

groupName

string

The name of the group

Example with ethers.js

const ethers = require('ethers');

const groupName = 'MyAwesomeGroup';

await contract.mintGroup(groupName, {
  value: ethers.utils.parseEther("1.0"), // 1 ETH
});

tokenURI

Gets the token metadata.

Input

Name
Type
Description

_tokenID

uint256

The unique Group ID

Returns

Name
Type
Description

string

string

The unique metadata of the group

Example with ethers.js

const ethers = require('ethers');

const tokenId = 1234;

const metadata = await contract.tokenURI(tokenId);
console.log(`The metadata of the token ${tokenId} is ${metadata}`);

Multi-Sig Functions

addMultiSigLock

Adds MultiSig Address Locking for Transfers. After adding, the address used for multi-sig must call activateMultiSigLock() to activate it.

Input

Name
Type
Description

tokenID

uint256

The token ID to lock with the multi-sig address

multiSigAddress

address

The wallet address to be used to lock the token with

Example with ethers.js

const ethers = require('ethers');

const tokenId = 1234;
const multiSigAddress = '0xYourMultiSigWalletAddress';

await contract.addMultiSigLock(tokenId, multiSigAddress);

activateMultiSigLock

Activates Multi Sig lock from address added to token. This is done to ensure Multi Sig Address is correct before locking.

Input

Name
Type
Description

tokenID

uint256

The token ID to lock with the multi-sig address

Example with ethers.js

const ethers = require('ethers');

const tokenId = 1234;

await contract.activateMultiSigLock(tokenId);

removeMultiSigLock

Removes MultiSig Lock From Token Transfer. Must be called by the address that was setup to lock the token.

Input

Name
Type
Description

tokenID

uint256

The token ID to unlock with the multi-sig address

Example with ethers.js

const ethers = require('ethers');

const tokenId = 1234;

await contract.removeMultiSigLock(tokenId);

getMultiSigAddress

Checks if token is locked. Returns 0x0 if not locked.

Input

Name
Type
Description

tokenID

uint256

The token ID to return the multi-sig address for

Returns

Name
Type
Description

address

address

The wallet address used to lock the token from transfer

Example with ethers.js

const ethers = require('ethers');

const tokenId = 1234;

const multiSigAddress = await contract.getMultiSigAddress(tokenId);
console.log(`The multi-sig address of the token ${tokenId} is ${multiSigAddress}`);

isMultiSigLocked

Checks if token is locked.

Input

Name
Type
Description

tokenID

uint256

The token ID to return the multi-sig address for

Returns

Name
Type
Description

bool[2]

boolean[2]

0 = True / False if locked, 1 = True / False if Locking Address Added

Example with ethers.js

const ethers = require('ethers');

const tokenId = 1234;

const [isLocked, isAddrAdded] = await contract.isMultiSigLocked(tokenId);
console.log(`Is the token ${tokenId} locked? ${isLocked}, Is Address Added? ${isAddrAdded}`);

Last updated