Created
March 21, 2023 16:26
-
-
Save prajwolrg/d41320bd69bc14fa10e9f8f54a670e41 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// The 'credits' program. | |
program my_credits.aleo { | |
record credits { | |
owner: address, | |
gates: u64 | |
} | |
transition mint(receiver: address, amount: u64) -> credits { | |
return credits { | |
owner: receiver, | |
gates: amount | |
}; | |
} | |
transition transfer(sender: credits, receiver: address, amount: u64) -> (credits, credits) { | |
let difference: u64 = sender.gates - amount; | |
let transferred: credits = credits { | |
owner: receiver, | |
gates: amount | |
}; | |
let remaining: credits = credits { | |
owner: sender.owner, | |
gates: difference | |
}; | |
return (transferred, remaining); | |
} | |
transition join(first: credits, second: credits) -> credits { | |
return credits { | |
owner: first.owner, | |
gates: first.gates + second.gates | |
}; | |
} | |
transition split(sender: credits, amount: u64) -> (credits, credits) { | |
let difference: u64 = sender.gates - amount; | |
let transferred: credits = credits { | |
owner: sender.owner, | |
gates: amount | |
}; | |
let remaining: credits = credits { | |
owner: sender.owner, | |
gates: difference | |
}; | |
return (transferred, remaining); | |
} | |
transition fee(sender: credits, amount: u64) -> credits { | |
let difference: u64 = sender.gates - amount; | |
let remaining: credits = credits { | |
owner: sender.owner, | |
gates: difference | |
}; | |
return remaining; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment