Skip to content

Commit

Permalink
Merge pull request #1543 from mradkov/master
Browse files Browse the repository at this point in the history
Add Sophia ML example
  • Loading branch information
alexdima committed Sep 19, 2019
2 parents 356e291 + c2dba46 commit e647012
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions test/samples/sample.aes.txt
@@ -0,0 +1,38 @@
// Contract simulating developers organization
contract HackBG =

record state = { developers: map(address, developer) }

record developer = { name: string
, age: int
, skillset: map(skill, experience) }

type skill = string
type experience = int

datatype event =
LogDeveloperAdded(indexed address, indexed int, string)

entrypoint init() : state = { developers = {} }

stateful entrypoint dev_add(account: address, dev_name: string, dev_age: int) =
require(!is_member(account), "ERROR_DEVELOPER_ALREADY_EXISTS")
let dev : developer = { name = dev_name
, age = dev_age
, skillset = {} }
put(state{ developers[account] = dev })
Chain.event(LogDeveloperAdded(account, Chain.timestamp, dev_name))

stateful entrypoint dev_update(account: address, dev_name: string, dev_age: int) =
require(is_member(account), "ERROR_DEVELOPER_DOES_NOT_EXIST")
put(state{ developers[account].name = dev_name })
put(state{ developers[account].age = dev_age })

function is_member(account: address) : bool =
Map.member(account, state.developers)

stateful entrypoint dev_skill_modify(account: address, skill: string, experience: int) =
put(state{ developers[account].skillset[skill] = experience })

entrypoint dev_get(account: address) : developer =
state.developers[account]

0 comments on commit e647012

Please sign in to comment.