hide You are viewing an archived web page, collected at the request of Ethereum Foundation using Archive-It. This page was captured on 11:39:04 Jun 27, 2021 , and is part of the Community collection. The information on this web page may be out of date. See All versions of this archived page. Loading media information

EtherScripter - a visual smart contract builder



  • mode80mode80 Member Posts: 64 ✭✭
    edited May 2014
    That should work. It would look like attached.

    But checking, I noticed a bug that was probably causing your problem. Fixed now.

    Incidentally, there is a [data at input slot ___] and also a [data at input byte ___].

    From your calculation looks like you might be working with bytes, so you should use the second form. "slots" are 32-byte chunks. Those are more friendly to work with in (most) contracts which expect inputs in that form.

    I'd love to eradicate bytes from the UI. POC-5 will make that more practical since that client accepts 32-byte inputs by default (unlike POC-4).

    EDIT: I'm discovering some deep-running mismatches arising from different expectations for bytes or slots. I'll have to invest further time to reconcile this but might have to abandon the idea of hiding bytes from user for memory access.
    Post edited by mode80 on
  • BluefinBluefin Member Posts: 47
    @mode80‌ RE:tooltips. My first reaction is that the font size is too small. Secondly, the response from mousing over takes a wee bit too long to display. Having said that if it responds too quickly, it can be quite irritating.

    I suggest the compromise is to do the right click on the block and click on help. Then display a larger font description. After all, it is during the initial learning curve that someone will want to read it. Once you are adept at it, you won't want to be bothered with the help.

    Mouseover should be reserved for comments made on the block. That is much neater and will be more frequently used by the adept user.
  • ethergrokethergrok USMember Posts: 25
    YAY ! TOOLTIPS ! Excellent.
  • mode80mode80 Member Posts: 64 ✭✭
    @Bluefin, further to up above, I've rolled back that "fix" because it's really not a
    complete solution.

    Etherescripter 0.4.0 tries to abstract away the concept of bytes by presenting things in terms of "slots" (which are 32-byte chunks) and then doing needed calculation "behind the scenes". Unfortunately it was never able to do this completely because other contracts might expect inputs in some form other than 32-byte chunks, so the concept of bytes was still partially exposed.

    Then you discovered that the "behind-the-scenes" calculation breaks down when supplied anything other than a simple number. (Supplying a label or expressions for the slot number doesn't work). My quickfix above would just blur the distinction between slots and bytes without fixing everything it needs to.

    The real solution is for me to overhaul this broken leaky abstraction or abandon it. I will do that but I will save it for 0.5.0. In the meantime supplying an expression to [data at input slot __] won't work, but you can work around this by using [data at input byte ___] instead.

    Agreed there's too much info crammed into the tooltips. A one-liner for each block combined with a link to a more detailed Help page would be better long term.
  • ethergrokethergrok USMember Posts: 25
    Perhaps a one-liner on the tool tip, and then a blue, hyperlink "more ..." and then a more extensive tool tip appears overlayed on the one liner.
  • cybertreibercybertreiber Vienna, AustriaMember Posts: 29 ✭✭
    @mode80 me and my colleague's are using etherscripter on several occasions already. nice for teaching, really productive tool. one thing which is bogging down the user exp is scrolling.
    I.e., you have the (long) tool list on the left and the canvas on the right. Now, scrolling would be much more convenient if the two panes are separate scrolling areas.
  • mode80mode80 Member Posts: 64 ✭✭
    Yes, I've noticed that gets annoying on long contracts. The library I'm using for rendering the canvas has limited options for scrolling, but I'll look for some way to make this possible.

    In the meantime, one thing that helps a little is zooming out on your browser (e.g. View->ZoomOut menuitem in Chrome).
  • cybertreibercybertreiber Vienna, AustriaMember Posts: 29 ✭✭
    @mode80 alright. i reckon that bugs go in here as well? we (me + ralph) spotted a simple but nasty one
    LLL code generation relevant to PoC 4 and 5 as well:
    tx.input_slot_count converts to LLL code item: 'calldatasize' which is translated to PUSH1 0x36 in AlethZero. Correct LLL output would be '(calldatasize)' which then translates to the right CALLDATASIZE byte code.
  • mode80mode80 Member Posts: 64 ✭✭
    Ouch. Fixed that for you. The old code was intended to "round up" if there was leftover input after dividing it into 32-byte chunks. I changed it to "round down" which is consistent with how Serpent does it. In general it shouldn't matter when input is given supplied in even 32-byte chunks, as will be more standard with POC-5.

    If you think your bug report might help others, you can always post it here. Otherwise, can just send a forum private message, and I'll still get it.
  • molokomoloko Member Posts: 1
    Hey, I would love to try this, if it's not too late.
  • mode80mode80 Member Posts: 64 ✭✭
    Sure. It's public beta now... http://etherscripter.com
  • OtonomosOtonomos Member Posts: 8
    @mode80 somewhat late to the game but pls send link thx + follow http://angel.co/otonomos
  • jp78jp78 Member Posts: 4
    Great idea! This could really help ethereum and promote it! Why not put in a publish button so it can be sent right into ethereum?
  • fordlincolnfordlincoln VancouverMember Posts: 2
    interested in beta testing!
  • cmidancmidan Member Posts: 7
    I would like to test. I am not technical but I have been learning python to try and get to where I could write contracts. Maybe this could speed up my progress.
  • 21xhipster21xhipster Milky WayMember Posts: 15 ✭✭
    @mode80‌ - cool work. Thanks for your work... Though it works fully client side why not to do it opensource? I think a big part of community will look for tooling to build better contracts faster...
  • cphicphi Member Posts: 46
    Any plans for EtherScripter to support Solidity and be ready for the 1.0 release of Ethereum?
  • mode80mode80 Member Posts: 64 ✭✭
    edited February 2015
    Hi cphi.

    Honestly, no. I made and maintained EtherScripter in my spare time up through POC-5. Given the pace of change, it was way too early. A lot of wasted effort would have gone into maintaining compatibility. That, and it wasn’t especially welcomed by (some) core devs.

    I do think the world needs a system of private law that Ethereum enables. I wanted that within reach of everyone, not just programmers.

    Maybe EtherScripter will inspire someone to take another crack once the tech settles.
  • cphicphi Member Posts: 46
    @mode80 Thanks for the reply. EtherScripter is/was very impressive. I am curious as to how easily non-programmers will get the hang of creating dapps, once as you said, things settle down tech wise.

    You working on anything else with 1.0 coming up next month?
  • bitcoinwhitbitcoinwhit Member Posts: 3
    I'd like to take over this project, please contact me
  • terzimterzim LondonMember Posts: 41
    Hi, @mode80 any update on this project? where can we get the beta of this program?
  • manuel_velezmanuel_velez Medellín, ColombiaMember Posts: 14
    edited April 2015
  • VraminVramin Member Posts: 10
    Really amazing work on this.
  • steveraffnersteveraffner Member Posts: 3
    Contrats - this is brillant
  • Ether-LordEther-Lord Member Posts: 7

    Contrats - this is brillant

    Agreed, great work.
  • OtheraOthera Member Posts: 1
    Really love what you have done here. I would also like to join the beta test please. :smiley: Can you send me the link ?
  • RoulRoul Member Posts: 3
    Is there an use document that assists at the turnkey level; with instructions on use, contract development, and contract execution? Thanks
  • cryptoboycryptoboy Member Posts: 74
    Would be great if contacts can be registered to a name and owned. So that developers can upgrade them (based on some upgrade authorization, voting, etc.)
Sign In or Register to comment.