Neler yeni
Kripto Para, Bitcoin, Ethereum, Cardano, Dogecoin, Shiba, Forumları, Yorumları, Teknik Analiz

Satoshiturk ailesine hoş geldin!

Burada, yatırım tavsiyesi vermeyip, hiçbir projeye para karşılığı destek çıkmadan, kripto dünyasının içinden gelen yöneticilerimizle doğru bilgiye ulaşabilirsin.

5 yıldır aksamadan yaptığımız ödemelerle güvenin adresiyiz.

Bizimle keşfet, öğren ve kripto sohbetlerine katıl. Seni aramızda görmekten mutluluk duyarız!

Bir stringe göre kriter belirlemek istiyorum.

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.

//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];
}
}
 
Moderatör tarafında düzenlendi:

Cüzdanınız

BNB
0.00000000

Forum istatistikleri

Konular
13,153
Mesajlar
58,970
Kullanıcılar
6,686
Son üye
sjsjsjka
Geri
Üst