https://github.com/perlin-network/smart-contract-as
Write WebAssembly smart contracts for Wavelet in AssemblyScript.
https://github.com/perlin-network/smart-contract-as
assemblyscript blockchain dapp p2p smart-contracts wavelet
Last synced: 2 months ago
JSON representation
Write WebAssembly smart contracts for Wavelet in AssemblyScript.
- Host: GitHub
- URL: https://github.com/perlin-network/smart-contract-as
- Owner: perlin-network
- Created: 2019-07-26T06:16:04.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2019-08-06T06:03:15.000Z (almost 6 years ago)
- Last Synced: 2025-03-18T13:57:07.000Z (3 months ago)
- Topics: assemblyscript, blockchain, dapp, p2p, smart-contracts, wavelet
- Language: TypeScript
- Homepage:
- Size: 20.5 KB
- Stars: 7
- Watchers: 12
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# smart-contract-as
[](https://www.npmjs.com/package/smart-contract-as)
[](https://discord.gg/dMYfDPM)Write decentralized applications for Wavelet in AssemblyScript.
## Setup
Assuming `yarn` is installed, create a new smart contract project by executing the following:
```shell
yarn add -D AssemblyScript/assemblyscript
yarn asinit .
yarn add smart-contract-as
```## Example
Inside `assembly/index.ts`:
```ts
import {Parameters, Tag, Transfer, send_transaction, log} from "../node_modules/smart-contract-as/assembly";// Simple hello world example.
export function _contract_init(): void {
const params = Parameters.load();
log("hello world");
}// Echoes back a message the sender provides.
export function _contract_test(): void {
const params = Parameters.load();
log("echoing back: " + params.string());
}// Sends back half the PERLs it receives back to the sender.
export function _contract_on_money_received(): void {
const params = Parameters.load();const tx = new Transfer(params.sender_id, params.amount / 2);
send_transaction(Tag.TRANSFER, tx.marshal());
}
```For more examples, check out the `examples/` directory.