# Smart Contract: Transparency Storage Banking **Published by:** [Avenlabs](https://paragraph.com/@avenlabs/) **Published on:** 2024-03-26 **URL:** https://paragraph.com/@avenlabs/smart-contract-transparency-storage-banking ## Content Latar Belakang KasusSistem penyimpanan bank tradisional memiliki masalah seperti sentralisasi dan ketidakjelasanMelalui kontrak pintar yang ditulis dalam Solidity. kami dapat menerapkan sistem perbankan yang terdesentralisasi dan transparan memungkinkan pengguna lebih percaya dan mengandalkan sistem ini.Desain Kontrak Kontrak Pintar kami memiliki bagian-bagian penting berikutManagement Akun Pengguna: mencacat saldo pengguna dan riwayat transaksiFungsi Deposit: memungkinkan pengguna untuk menyetor ke akun mereka.Fungsi Penarikan: memungkinkan pengguna untuk menarik saldo dari akun mereka.Kueri Catatan Transaksi: memungkinkan pengguna menanyakan riwayat transaksi mereka. Berikut adalah contoh kode kontrak pintar solidity untuk sistem terdesentralisasi perbankan.// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract TransparentBankStorage { mapping(address => uint256) private balances; mapping(address => mapping(address => uint256)) private transactions; event LogDeposit(address indexed from, uint256 amount); event LogWithdraw(address indexed to, uint256 amount); function deposit() public payable { require(msg.value > 0, "Deposit amount must be greater than 0"); balances[msg.sender] += msg.value; emit LogDeposit(msg.sender, msg.value); } function withdraw(uint256 amount) public { require(balances[msg.sender] >= amount, "Insufficient balance"); balances[msg.sender] -= amount; payable(msg.sender).transfer(amount); emit LogWithdraw(msg.sender, amount); } function getBalance() public view returns (uint256) { return balances[msg.sender]; } // Function to retrieve the transaction amount from _user to msg.sender function getTransaction(address _user) public view returns (uint256) { return transactions[_user][msg.sender]; } // Function to perform a transaction from msg.sender to _user function performTransaction(address _user, uint256 amount) public { require(balances[msg.sender] >= amount, "Insufficient balance"); balances[msg.sender] -= amount; balances[_user] += amount; transactions[msg.sender][_user] += amount; emit LogWithdraw(msg.sender, amount); emit LogDeposit(_user, amount); } } ## Publication Information - [Avenlabs](https://paragraph.com/@avenlabs/): Publication homepage - [All Posts](https://paragraph.com/@avenlabs/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@avenlabs): Subscribe to updates