LogoLogo
impactmarket.comimpactMarket dAppCarteira Cripto LiberaSuporte
Português-Brasil
Português-Brasil
  • Bem-vindo!
    • 📜Whitepaper impactMarket
    • 1. Visão Geral
      • Contexto
      • Conceito
    • 2. Produtos impactMarket
      • Microcrédito
        • Ecossistema de Microcrédito
        • Piloto em Uganda
        • Teoria da Mudança
      • Renda Básica Incondicional (UBI)
        • Ecossistema UBI
        • Efeito Multiplicador do UBI
        • Impacto para Comunidades e Beneficiários
        • Teoria da Mudança
      • Libera - Carteira Crypto
      • Aprenda e Ganhe
    • 3. Protocolo impactMarket
      • Token PACT
        • impact Farming e Staking
      • Votação e Governança
    • 4. Mensuração de Impacto
      • Relatórios e Estudos de Caso
  • 💼SOBRE A EMPRESA
    • Nosso Time
    • Kits de Marca e Mídia
    • Parcerias
    • Legal
      • Política de Privacidade de Dados (GDPR)
      • Termos e Condições de Uso do App e Site impactMarket
      • Política de Privacidade
  • 🕹️Desenvolvedores
    • Contratos Inteligentes
    • API
    • Ambiente
    • Tecnologia
      • Blockchain
      • Ferramentas que usamos
Powered by GitBook
On this page
  • ImpactMarket
  • CommunityFactory
  • Community
  • Functions

Was this helpful?

Export as PDF
  1. Desenvolvedores

Contratos Inteligentes

Atualmente, os contratos inteligentes são divididos em três: ImpactMarket, CommunityFactory e Community.

ImpactMarket

Sua única função é aceitar novas comunidades. Isso será substituído por um mecanismo (já em desenvolvimento) com votação para novas comunidades.

CommunityFactory

Sua única função é implantar novos contratos comunitários. Um contrato por comunidade. Este contrato é controlado pela ImpactMarket.

Community

Este é o contrato usado pelas comunidades. Existe um contrato por comunidade, o que permite doações individuais para cada uma delas. Abaixo estão listados os métodos públicos que podem ser chamados para obter informações do contrato.

// When the beneficiary can claim again (timestamp)
mapping(address => uint256) public cooldown;
// What was the last interval when the user claim.
// This is used to calculate the next interval
mapping(address => uint256) public lastInterval;
// How much has the beneficiary claimed so far.
mapping(address => uint256) public claimed;
// In what state is the beneficiary (enum BeneficiaryState {NONE, Valid, Locked, Removed})
mapping(address => BeneficiaryState) public beneficiaries;

// community amount per claim (in cUSD)
uint256 public claimAmount;
// community base interval (we have been using 1 day or 1 week) (in seconds)
uint256 public baseInterval;
// community increment interval (in seconds)
uint256 public incrementInterval;
// community maximun claim per beneficiary (in cUSD)
uint256 public maxClaim;

// if the community was migrated, will have here the address
address public previousCommunityContract;
// impactMarket contract address
address public impactMarketAddress;
// cUSD contract address
address public cUSDAddress;

Functions

/**
 * @dev Allow community managers to add other managers.
 */
function addManager(address _account) external onlyManagers;

/**
 * @dev Allow community managers to remove other managers.
 */
function removeManager(address _account) external onlyManagers;

/**
 * @dev Allow community managers to add beneficiaries.
 */
function addBeneficiary(address _account) external onlyManagers;

/**
 * @dev Allow community managers to lock beneficiaries.
 */
function lockBeneficiary(address _account) external onlyManagers;

/**
 * @dev Allow community managers to unlock locked beneficiaries.
 */
function unlockBeneficiary(address _account) external onlyManagers;

/**
 * @dev Allow community managers to remove beneficiaries.
 */
function removeBeneficiary(address _account) external onlyManagers;

/**
 * @dev Allow beneficiaries to claim.
 */
function claim() external onlyValidBeneficiary;

/**
 * @dev Allow community managers to edit community variables.
 */
function edit(
    uint256 _claimAmount,
    uint256 _maxClaim,
    uint256 _baseInterval,
    uint256 _incrementInterval
) external onlyManagers;
PreviousPolítica de PrivacidadeNextAPI

Last updated 1 year ago

Was this helpful?

Nota importante: para integrações externas, quando um gestor tenta agregar um endereço como gestor ou beneficiário, esse endereço precisa primeiro ser cadastrado no sistema, caso contrário, aparecerá um erro mencionado na . Para evitar isso, use o endpoint / api / user / auth. Para obter mais informações, consulte a .

🕹️
seção adicionar beneficiário
seção API