Neler yeni
Misafir görüntüleme limiti aşıldı
  • İzin verilen maksimum misafir görüntüleme sayısına ulaştınız
  • Bu kısıtlamayı kaldırmak için lütfen aşağıdan kayıt olun
Türkiye’nin Lider Kripto Para Forumu

Blockchain dünyasının Türkçe Wikipedia'sına hoş geldiniz!

Hemen ücretsiz üye olun ve kayıt olduğunuz anda coin kazanmaya başlayın. Kendi konularınızı paylaşın, diğer üyelerle etkileşim kurun ve dilediğiniz zaman coinlerinizi çekin.

Katılmak için şimdi harekete geçin!

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:

Forum istatistikleri

Konular
14.187
Mesajlar
71.178
Kullanıcılar
7.192
Son üye
cinekent
Geri
Üst