Skip to content

Instantly share code, notes, and snippets.

@digitalronin
Created September 7, 2018 08:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save digitalronin/22137b3f0dca492652588480c1f0c978 to your computer and use it in GitHub Desktop.
Save digitalronin/22137b3f0dca492652588480c1f0c978 to your computer and use it in GitHub Desktop.
global account david = u'GmRx7DgzV77iBtZRasJzrVJ145RzzuJNNsMxhXP5hTz3';
global account charlie = u'AtTXkZGm96mk2aEU3jY6bfEdEKgBi12yNHg5H2jxXwcN';
global assetDisc usd = a'9H8SP3mHbbcXryCfCfxSxm8UsSRj7wdW1E14FXDsbWV9';
global assetDisc violin = a'EWWr6D2JtM2c5f9DYCrYR4un4DXBw98WUXz5Rektq999';
global int usdAmount;
global int violinAmount;
transition initial -> proposed;
transition initial -> terminal;
transition proposed -> initial;
@initial {charlie}
propose(int usdProposal, int violinProposal) {
usdAmount = usdProposal;
violinAmount = violinProposal;
transferTo(usd, usdAmount);
transitionTo(:proposed);
}
@initial {charlie}
noDeal() {
transitionTo(:terminal);
}
@proposed {charlie}
retract() {
transferFrom(usd, usdAmount, charlie);
transitionTo(:initial);
}
@proposed {david}
accept() {
transferHoldings(david, violin, violinAmount, charlie);
transferFrom(usd, usdAmount, david);
transitionTo(:initial);
}
@proposed {david}
reject() {
transferFrom(usd, usdAmount, charlie);
transitionTo(:initial);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment