This smart contract implements the functionality for tokenizing a bond on the Ethereum blockchain.
BondToken
contract represents a tokenized bond.- The bond has a principal amount, coupon rate, maturity date, coupon frequency, and an issuer address.
- The contract supports functionalities such as adding investors to the whitelist, approving KYC, adding high-risk customers, paying coupon, repaying principal, and settling the bond.
- Only the issuer can perform certain actions, and investors must be whitelisted and KYC-approved to participate.
principal:
The principal amount of the bond.
couponRate:
The coupon rate of the bond.
maturity:
The maturity date of the bond.
couponFrequency:
The frequency at which coupon payments are made.
issuer:
The address of the bond issuer.
whitelist:
A mapping of addresses to check if they are whitelisted investors.
kycApproved:
A mapping of addresses to check if they have passed KYC.
highRiskCustomers:
A mapping of addresses to check if they are high-risk customers.
couponPayments:
A mapping of addresses to track the coupon payments made to investors.
- Allows the issuer to add an investor to the whitelist.
- Only the issuer can call this function.
- Allows the issuer to remove an investor from the whitelist.
- Only the issuer can call this function.
- Allows the issuer to approve KYC for an investor.
- Only the issuer can call this function.
- Allows the issuer to reject KYC for an investor.
- Only the issuer can call this function.
- Allows the issuer to add a high-risk customer.
- Only the issuer can call this function.
- Allows the issuer to remove a high-risk customer.
- Only the issuer can call this function.
- Allows whitelisted investors to receive coupon payments.
- Investors can only receive coupon payments before the bond's maturity date and on coupon payment dates.
- Allows whitelisted investors to receive the principal amount at the bond's maturity.
- Investors can only receive the principal amount after the bond's maturity date.
- Allows whitelisted investors to settle the bond by receiving the coupon payments and principal amount.
- Investors can only settle the bond after the bond's maturity date.
- Deploy the
BondToken
contract on the Ethereum blockchain using a suitable development environment or framework.
This project is licensed under the MIT License. See the LICENSE file for more details.