Skip to content

Instantly share code, notes, and snippets.

@azamsharp
Created December 29, 2017 19:49
Show Gist options
  • Save azamsharp/b5f0831823502aca17be65521027430d to your computer and use it in GitHub Desktop.
Save azamsharp/b5f0831823502aca17be65521027430d to your computer and use it in GitHub Desktop.
Block class
class Block : Codable {
var index :Int = 0
var dateCreated :String
var previousHash :String!
var hash :String!
var nonce :Int
var message :String = ""
private (set) var transactions :[Transaction] = [Transaction]()
var key :String {
get {
let transactionsData = try! JSONEncoder().encode(self.transactions)
let transactionsJSONString = String(data: transactionsData, encoding: .utf8)
return String(self.index) + self.dateCreated + self.previousHash + transactionsJSONString! + String(self.nonce)
}
}
func addTransaction(transaction :Transaction) {
self.transactions.append(transaction)
}
init() {
self.dateCreated = Date().toString()
self.nonce = 0
self.message = "Mined a New Block"
}
init(transaction :Transaction) {
self.dateCreated = Date().toString()
self.nonce = 0
self.addTransaction(transaction: transaction)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment