Neler yeni

Bir stringe göre kriter belirlemek istiyorum.

probit borsası
  • DDoS: Kripto para borsalarının sıklıkla karşılaştığı saldırılardır. Saldırı yapılan sunucunun kaynaklarını tüketerek hizmetin engellenmesi sebep olabilir.
Katılım
10 Haz 2022
Mesajlar
1
Tepkime puanı
0
Puanları
1
Yaş
37
Konum
İzmir
Cinsiyet
Erkek


0.00000000
  • 0.00000000  
  • #1
Herkese merhabalar. @SatoshiTURK hocama bir soru sormuştum. Sorunun cevabını müsait olduğunda verdiğinde başka kişiler de faydalanabilsin diye sorumu bir de buraya yazmak istedim. Sorum aşağıdaki kodda yorum satırı olarak bulunmaktadır.

JavaScript:
block" data-lang="javascript">//SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <=0.9.0;

contract MFC {
    address payable owner;
    uint public minPrice = 1 ether;
    uint public cur_Price;
    string public categoryName;
    
    constructor () {
        owner = payable(msg.sender);
    }   

    event AddMessage        (address recipient, uint messageId);
    event DeleteMessage     (uint tweetId, bool isDeleted);

    struct Message {
        uint id;
        address username;
        string categoryName;
        string messageText;
        bool isDeleted;
        uint curPrice;
    }

    Message[] private messages;

    mapping(uint256 => Message) messageToOwner;
    mapping(string => uint) cPr;

    function getCpr (string memory category) public view returns (uint) {
        return cPr[category];
    }


    // Aşağıdaki fonksiyonda kategori adı ve mesaj metni ekleyebiliyorum. Mesaj eklerken ücret tahsil ediyor. Yeni mesaj atmak isteyen kişi
    // önceki mesaj için ödenenden fazla miktarda ödeme yapmak zorunda. Genel kural olarak bunu yapabildim.
    // Ancak bunu her kategori için ayrı ayrı yapmak istiyorum. Örneğin A kategorisinde birisi 1 Ethereum ödeyerek mesaj atmış olsun
    // B kategorisinde ise hiç mesaj atılmamış olsun. Yeni gelen kişi A kategorisi için 2 Ethereum ödemek zorundayken B kategorisi için
    // daha önce mesaj olmadığı için 1 Ethereum ödesin.
    function addMessage(string memory _categoryName, string memory _messageText, bool _isDeleted) external payable {

        require(msg.value > (minPrice + cur_Price) - 1); // Yukarıdaki açıklamaya göre buraya bir kural eklemek istiyorum.
        cur_Price = msg.value;
        categoryName = _categoryName;
        uint messageId = messages.length;

        
        messages.push(
            Message({
                id : messageId,
                username : msg.sender,
                categoryName : _categoryName,
                messageText : _messageText,
                isDeleted : _isDeleted,
                curPrice : cur_Price
                })
        );

        cPr[_categoryName] = msg.value;

        emit AddMessage(msg.sender, messageId);

    }

    function getInfo(uint _messageId) public view returns (Message memory) {
        require(_messageId < messages.length);
        return messages[_messageId];
    }
}
 

Üst