Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The FISSION Suite: One Byte of Context (Devcon IV)

The FISSION Suite: One Byte of Context (Devcon IV)

FISSION Codes
https://fission.codes
Powering Mircoservices for Web3

FISSION is a set of useful status codes and translated messages to connect smart contracts of all kinds 🔌

FISSION helps developers understand and build interoperable smart contracts. It establishes a common vocabulary for smart contracts to interact with a rich set of messages to tag data and common situations. It has applications in state transfer, development tooling, instrumentation, and user messaging.

1. Improved feedback for humans (end users and developers alike)
2. Helping developers understand their code at runtime
3. Enhanced smart contract interoperability and autonomy

Brooklyn Zelenka

January 01, 2019
Tweet

Transcript

  1. 101010001010001001010100010000000000011110100111110101000101000101010001011 010111010101110101011101010111011010111010101110111111010101110101011101010 101010001010001001010100010000000000011110100111110101000101000101010001011 011110000011111010000011111010000101000101011101010000111101010100100101111 101010001010001001010100010000000000011110100111110101000101000101010001011 101000000000101010000000101010111111101010000101010000101010101000101010001 101100100110101010111011101010000000011110100111110101000101000101010001011 010111010101110101011101010111011010111010101110111111010101110101011101010 101010001010001001010100010000000000011110100111110101000101000101010001011 011110000011111010000011111010000101000101011101010000111101010100100101111

    101010001010001001010100010000000000011110100111110101000101000101010001011 101000000000101010000000101010111111101010000101010000101010101000101010001 101010001010001001010100010000000000011110100111110101000101000101010001011 010111010101110101011101010111011010111010101110111111010101110101011101010 101010001010001001010100010000000000011110100111110101000101000101010001011 011110000011111010000011111010000101000101011101010000111101010100100101111 101010001010001001010100010000000000011110100111110101000101000101010001011 101000000000101010000000101010111111101010000101010000101010101000101010001 110101000101000100101010001000000000001111010011111010100010100010101000101 101011101010111010101110101011101101011101010111011111101010111010101110101 110101000101000100101010001000000000001111010011111010100010100010101000101 001111000001111101000001111101000010100010101110101000011110101010010010111 110101000101000100101010001000000000001111010011111010100010100010101000101 010100000000010101000000010101011111110101000010101000010101010100010101000 1101110101000101000100101010001000000000001111010011111010100010100010101000 1110101011101010111010101110101011101101011101010111011111101010111010101110 1101110101000101000100101010001000000000001111010011111010100010100010101000 0000001111000001111101000001111101000010100010101110101000011110101010010010 1101110101000101000100101010001000000000001111010011111010100010100010101000 0100010100000000010101000000010101011111110101000010101000010101010100010101 0110111010100010100010010101000100000000000111101001111101010001010001010100 O N E BY T E O F C O N T E X T T H E F I S S I O N S U I T E SPADE Co. Making Open Source Work
  2. @ E X P E D E B R O

    O K L Y N Z E L E N K A
  3. @ E X P E D E B R O

    O K L Y N Z E L E N K A ♠ CEO & Chief Scientist at SPADE Co ⚛ #tachyon18 Open sourceress Programming language and correctness nerd Prev. security tokens & Clarity lang at Finhaven
  4. @ E X P E D E B R O

    O K L Y N Z E L E N K A ♠ CEO & Chief Scientist at SPADE Co ⚛ #tachyon18 Open sourceress Programming language and correctness nerd Prev. security tokens & Clarity lang at Finhaven Primary author ERC 902: Validated Token ERC 1066: Status Codes ERC 1444: On-Chain Localization
  5. @ E X P E D E B R O

    O K L Y N Z E L E N K A ♠ CEO & Chief Scientist at SPADE Co ⚛ #tachyon18 Open sourceress Programming language and correctness nerd Prev. security tokens & Clarity lang at Finhaven Primary author ERC 902: Validated Token ERC 1066: Status Codes ERC 1444: On-Chain Localization * Community λ Founder of VanFP (Vancouver) Technical White Paper Club
  6. S U P E R E A R LY DAYS

    E T H E R E U M I S I N
  7. LOTS O F PA I N P O I N

    TS S U P E R E A R L Y D A Y S
  8. LOTS O F PA I N P O I N

    TS S U P E R E A R L Y D A Y S 1. End user feedback almost nonexistent
  9. LOTS O F PA I N P O I N

    TS S U P E R E A R L Y D A Y S 1. End user feedback almost nonexistent 2. Developer experience… “could be better” • Debuggers are very low level, core dumps, &c • Nearly zero feedback • Writing for the machine, not for humans • Solidity not mature / still changing quite a bit • 2018 added constructor syntax, revert-with-message, and more
  10. LOTS O F PA I N P O I N

    TS S U P E R E A R L Y D A Y S 1. End user feedback almost nonexistent 2. Developer experience… “could be better” • Debuggers are very low level, core dumps, &c • Nearly zero feedback • Writing for the machine, not for humans • Solidity not mature / still changing quite a bit • 2018 added constructor syntax, revert-with-message, and more 3. Smart contracts don’t even remotely tap into their autonomous potential
  11. LOTS O F PA I N P O I N

    TS S U P E R E A R L Y D A Y S 1. End user feedback almost nonexistent 2. Developer experience… “could be better” • Debuggers are very low level, core dumps, &c • Nearly zero feedback • Writing for the machine, not for humans • Solidity not mature / still changing quite a bit • 2018 added constructor syntax, revert-with-message, and more 3. Smart contracts don’t even remotely tap into their autonomous potential
  12. TO K E N VA L I DAT I O

    N A M O T I V A T I N G E X A M P L E
  13. I N T E R FAC E T O K

    E N V A L I D A T I O N
  14. R E F E R E N C E I

    M P L E M E N TAT I O N T O K E N V A L I D A T I O N
  15. R E F E R E N C E I

    M P L E M E N TAT I O N T O K E N V A L I D A T I O N
  16. R E F E R E N C E I

    M P L E M E N TAT I O N T O K E N V A L I D A T I O N
  17. R E F E R E N C E I

    M P L E M E N TAT I O N T O K E N V A L I D A T I O N
  18. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N
  19. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N
  20. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N
  21. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N /
  22. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ /
  23. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / /
  24. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / / ✉
  25. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / / ✉ ✉
  26. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / / ✉ ✉ (false, but don’t explode)
  27. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / / ✉ ✉ (false, but don’t explode)
  28. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / ✉ / ✉ ✉ (false, but don’t explode)
  29. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / ✉ / ✉ ✉ ✉ ✅ (false, but don’t explode)
  30. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / ✉ / / ✉ ✉ ✉ ✅ (false, but don’t explode)
  31. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / ✉ / / ✉ ✉ ✉ ✉ ✅ (false, but don’t explode)
  32. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / ✉ / / ✉ ✉ ✉ ✉ ✅ (false, but don’t explode)
  33. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / ✉ / / ✉ ✉ ✉ ✉ ✅ ✉ (false, but don’t explode)
  34. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / ✉ / / ✉ ✉ ✉ ✉ ✅ ✉ ✉ ✅ (false, but don’t explode)
  35. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / ✉ / / ✉ ✉ ✉ ✉ ✅ ✉ ✅ ✉ ✉ ✅ (false, but don’t explode)
  36. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / ✉ / / ✉ ✉ ✉ ✉ ✅ ✉ ✅ ✉ ✉ ✅ ✉ ✅ (false, but don’t explode)
  37. N A I V E V E R S I

    O N T O K E N V A L I D A T I O N ✉ / ✉ / / ✉ ✉ ✉ ✉ ✅ ✉ ✅ ✉ ✉ ✅ ✉ ✅ ✅ (false, but don’t explode)
  38. - C O N O R M C B R

    I D E ( V I A R O B E R T H A R P E R ) “To make use of a Boolean you have to know its provenance
 so that you can know what it means.”
  39. E R C 1 0 6 6 F I S

    S I O N C O D E S
  40. E R C 1 0 6 6 F I S

    S I O N C O D E S
  41. “ L I K E H T T P STAT

    U S C O D E S ” F I S S I O N C O D E S
  42. “ L I K E H T T P STAT

    U S C O D E S ” F I S S I O N C O D E S • More than true | false | ⊥
  43. “ L I K E H T T P STAT

    U S C O D E S ” F I S S I O N C O D E S • More than true | false | ⊥ • Defining “the message edges between contract nodes”
  44. “ L I K E H T T P STAT

    U S C O D E S ” F I S S I O N C O D E S • More than true | false | ⊥ • Defining “the message edges between contract nodes” • A common smart contract vocabulary • Richer context back from function calls • Tag arguments with metadata • Expose information about a state machine
  45. “ L I K E H T T P STAT

    U S C O D E S ” F I S S I O N C O D E S • More than true | false | ⊥ • Defining “the message edges between contract nodes” • A common smart contract vocabulary • Richer context back from function calls • Tag arguments with metadata • Expose information about a state machine • Just like how web servers use shared return codes • Different problem space, so different messages
  46. A B O U T F I S S I

    O N C O D E S
  47. A B O U T F I S S I

    O N C O D E S • https://fission.codes
  48. A B O U T F I S S I

    O N C O D E S • https://fission.codes • Previously “Ethereum Status Codes”, but rebranded as FISSION Codes • Fluid Interface for Scalable Smart contract InterOperable Networks
  49. A B O U T F I S S I

    O N C O D E S • https://fission.codes • Previously “Ethereum Status Codes”, but rebranded as FISSION Codes • Fluid Interface for Scalable Smart contract InterOperable Networks • Organic traction • Required by security token ERCs 902, 1400, and 1462 • ERC 1404 exploring integration • Inbound email from teams looking adopting FISSION (announcements soon) • Consensys Tachyon R&D grant
  50. A B O U T F I S S I

    O N C O D E S • https://fission.codes • Previously “Ethereum Status Codes”, but rebranded as FISSION Codes • Fluid Interface for Scalable Smart contract InterOperable Networks • Organic traction • Required by security token ERCs 902, 1400, and 1462 • ERC 1404 exploring integration • Inbound email from teams looking adopting FISSION (announcements soon) • Consensys Tachyon R&D grant • Working on integration with common tools
  51. A B O U T F I S S I

    O N C O D E S • https://fission.codes • Previously “Ethereum Status Codes”, but rebranded as FISSION Codes • Fluid Interface for Scalable Smart contract InterOperable Networks • Organic traction • Required by security token ERCs 902, 1400, and 1462 • ERC 1404 exploring integration • Inbound email from teams looking adopting FISSION (announcements soon) • Consensys Tachyon R&D grant • Working on integration with common tools • Bounties started & more coming
  52. LO W C O N T E X T B

    O O L E A N S F I S S I O N C O D E S ✉ / ✉ / / ✉ ✉ ✉ ✉ ✅ ✉ ✅ ✉ ✉ ✅ ✉ ✅ ✅ (false, but don’t explode)
  53. N O W W I T H F I S

    S I O N F I S S I O N C O D E S / / / ✉ ✉ ✉ ✉ ✉ ✉ ✅ ✉ ✉ ✅
  54. DX D E S I G N F I S

    S I O N C O D E S
  55. • Lower cognitive load DX D E S I G

    N F I S S I O N C O D E S
  56. • Lower cognitive load • More structure = less memorization

    & fewer reference lookups DX D E S I G N F I S S I O N C O D E S
  57. • Lower cognitive load • More structure = less memorization

    & fewer reference lookups • Human-readable code helpers (code is for people!) DX D E S I G N F I S S I O N C O D E S
  58. • Lower cognitive load • More structure = less memorization

    & fewer reference lookups • Human-readable code helpers (code is for people!) • Compatible with existing patterns (ex. revert) DX D E S I G N F I S S I O N C O D E S
  59. ST R U C T U R A L N

    I B B L E S F I S S I O N C O D E S
  60. ST R U C T U R A L N

    I B B L E S F I S S I O N C O D E S 0x41
  61. ST R U C T U R A L N

    I B B L E S F I S S I O N C O D E S 01000001 0x41
  62. ST R U C T U R A L N

    I B B L E S F I S S I O N C O D E S 01000001 0x41 Category
  63. ST R U C T U R A L N

    I B B L E S F I S S I O N C O D E S 01000001 0x41 Category Reason
  64. ST R U C T U R A L N

    I B B L E S F I S S I O N C O D E S 01000001 0x41 Category Reason
  65. ST R U C T U R A L N

    I B B L E S F I S S I O N C O D E S 01000001 0x41 Category Reason
  66. ST R U C T U R A L N

    I B B L E S F I S S I O N C O D E S 01000001 0x41 Category Reason 0x0B
  67. ST R U C T U R A L N

    I B B L E S F I S S I O N C O D E S 01000001 0x41 Category Reason 0x0B 00001011
  68. ST R U C T U R A L N

    I B B L E S F I S S I O N C O D E S 01000001 0x41 Category Reason 0x0B 00001011 0x0* General is same as just the reason alone
  69. C O D E TA B L E F I

    S S I O N C O D E S
  70. C O D E TA B L E F I

    S S I O N C O D E S 0 * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * A * B * C * D * E * F * 0 1 2 3 4 5 6 7 8 9 A B C D E F
  71. C O D E TA B L E F I

    S S I O N C O D E S 0 * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * A * B * C * D * E * F * 0 1 2 3 4 5 6 7 8 9 A B C D E F Category Time Range Auth Agreements Off Chain …
  72. C O D E TA B L E F I

    S S I O N C O D E S 0 * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * A * B * C * D * E * F * 0 1 2 3 4 5 6 7 8 9 A B C D E F Reason Fail Ok Accepted/Started Action Required … Category Time Range Auth Agreements Off Chain …
  73. C O D E TA B L E F I

    S S I O N C O D E S 0 * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * A * B * C * D * E * F * 0 1 2 3 4 5 6 7 8 9 A B C D E F Reason Fail Ok Accepted/Started Action Required … Category Time Range Auth Agreements Off Chain … SEARCH / MATCH
  74. C O D E TA B L E F I

    S S I O N C O D E S 0 * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * A * B * C * D * E * F * 0 1 2 3 4 5 6 7 8 9 A B C D E F Reason Fail Ok Accepted/Started Action Required … Category Time Range Auth Agreements Off Chain … AWA I T I N G SEARCH / MATCH
  75. C O D E TA B L E F I

    S S I O N C O D E S 0 * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * A * B * C * D * E * F * 0 1 2 3 4 5 6 7 8 9 A B C D E F Reason Fail Ok Accepted/Started Action Required … Category Time Range Auth Agreements Off Chain … AWA I T I N G SEARCH / MATCH
  76. C O D E TA B L E F I

    S S I O N C O D E S 0 * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * A * B * C * D * E * F * 0 1 2 3 4 5 6 7 8 9 A B C D E F Reason Fail Ok Accepted/Started Action Required … Category Time Range Auth Agreements Off Chain … AWA I T I N G SEARCH / MATCH 0x23 Awaiting Match
  77. S O M E H E L P E R

    S F I S S I O N C O D E S
  78. S O M E H E L P E R

    S F I S S I O N C O D E S
  79. S O M E H E L P E R

    S F I S S I O N C O D E S Combine (inclusions)
  80. S O M E H E L P E R

    S F I S S I O N C O D E S Combine (inclusions) Pull Apart (projections)
  81. S O M E H E L P E R

    S F I S S I O N C O D E S Combine (inclusions) Pull Apart (projections) Automatic require 
 with (hardcoded) message*
  82. E X A M P L E F LO W

    F I S S I O N C O D E S
  83. D E X + I C O : STA RT

    E X A M P L E F L O W
  84. D E X + I C O : STA RT

    E X A M P L E F L O W
  85. D E X + I C O : STA RT

    E X A M P L E F L O W
  86. D E X + I C O : STA RT

    E X A M P L E F L O W ✉ buy(, 10)
  87. D E X + I C O : STA RT

    E X A M P L E F L O W ✉ buy(, 10) ✉ buyFor(, 10)
  88. D E X + I C O : STA RT

    E X A M P L E F L O W ✉ buy(, 10) ✉ buyFor(, 10)
  89. D E X + I C O : STA RT

    E X A M P L E F L O W ✉ buy(, 10) ✉ buyFor(, 10) ✉ 0x43
 I’ll call you back when ready
  90. D E X + I C O : STA RT

    E X A M P L E F L O W ✉ buy(, 10) ✉ buyFor(, 10) ✉ 0x43
 I’ll call you back when ready
  91. D E X + I C O : STA RT

    E X A M P L E F L O W ✉ buy(, 10) ✉ buyFor(, 10) ✉ 0x43
 I’ll call you back when ready ✉ 0x43
 I’ll call you back when ready
  92. D E X + I C O : C H

    EC K E X A M P L E F L O W
  93. D E X + I C O : C H

    EC K ✉ isDoneYet() E X A M P L E F L O W
  94. D E X + I C O : C H

    EC K ✉ isDoneYet() ✉ 0x43
 I’ll call you back when ready E X A M P L E F L O W
  95. D E X + I C O : F I

    N I S H E X A M P L E F L O W
  96. D E X + I C O : F I

    N I S H ✉ openForBiz() E X A M P L E F L O W
  97. D E X + I C O : F I

    N I S H ✉ 0x41
 Ready! ✉ openForBiz() E X A M P L E F L O W
  98. D E X + I C O : F I

    N I S H ✉ 0x41
 Ready! ✉ openForBiz() ✉ ✉ ✉ ✉ buyFor([,], 10) E X A M P L E F L O W
  99. D E X + I C O : F I

    N I S H ✉ 0x41
 Ready! ✉ openForBiz() ✉ ✉ ✉ ✉ buyFor([,], 10) ✉ (0x31, [,], 10)
 Agreed & complete E X A M P L E F L O W
  100. D E X + I C O : F I

    N I S H ✉ 0x41
 Ready! ✉ openForBiz() ✉ ✉ ✉ ✉ buyFor([,], 10) ✉ (0x31, [,], 10)
 Agreed & complete ✉ (0x31, , 10)
 Agreed & complete E X A M P L E F L O W
  101. D E X + I C O : F I

    N I S H ✉ 0x41
 Ready! ✉ openForBiz() ✉ ✉ ✉ ✉ buyFor([,], 10) ✉ (0x31, [,], 10)
 Agreed & complete ✉ (0x31, , 10)
 Agreed & complete ✉ E X A M P L E F L O W
  102. E R C 1 4 4 4 F I S

    S I O N T R A N S L A T E
  103. C O TO J E ? → W H AT

    I S T H I S ? F I S S I O N T R A N S L A T E
  104. • Ethereum-wide general purpose code-to-human translations in any language C

    O TO J E ? → W H AT I S T H I S ? F I S S I O N T R A N S L A T E
  105. • Ethereum-wide general purpose code-to-human translations in any language •

    Anyone can create translation C O TO J E ? → W H AT I S T H I S ? F I S S I O N T R A N S L A T E
  106. • Ethereum-wide general purpose code-to-human translations in any language •

    Anyone can create translation • Use whichever translation you like (BYOT) C O TO J E ? → W H AT I S T H I S ? F I S S I O N T R A N S L A T E
  107. • Ethereum-wide general purpose code-to-human translations in any language •

    Anyone can create translation • Use whichever translation you like (BYOT) • UTF-8 C O TO J E ? → W H AT I S T H I S ? F I S S I O N T R A N S L A T E
  108. • Ethereum-wide general purpose code-to-human translations in any language •

    Anyone can create translation • Use whichever translation you like (BYOT) • UTF-8 • printf-style template strings • Actual interpolation done on client • Examples • "Satoshi's true identity is %s" • [“Knock knock. Who's there? %1$s. %1$s who? %2$s!”, “Tank”, “You’re welcome”] C O TO J E ? → W H AT I S T H I S ? F I S S I O N T R A N S L A T E
  109. E VO LU T I O N O F r

    e v e r t ( ) F I S S I O N T R A N S L A T E
  110. E VO LU T I O N O F r

    e v e r t ( ) F I S S I O N T R A N S L A T E
  111. E VO LU T I O N O F r

    e v e r t ( ) F I S S I O N T R A N S L A T E
  112. E VO LU T I O N O F r

    e v e r t ( ) F I S S I O N T R A N S L A T E Nicht autorisiert, überprüfen Sie mit idcheck.net Spieler "Bob" existiert nicht
  113. A R C H I T EC T U R

    E F I S S I O N T R A N S L A T E < Requestor ⬅⬆⬇➡ LocalizationPreference C Localization E Localization A Localization D Localization B Localization Localization F Localization
  114. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E
  115. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E E
  116. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E E
  117. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E E
  118. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E tx E
  119. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E readOrMutate(…) tx E
  120. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E readOrMutate(…) 0x11 tx E
  121. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E ⬅⬆⬇➡ readOrMutate(…) 0x11 tx E
  122. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E ⬅⬆⬇➡ readOrMutate(…) 0x11 tx textFor(0x11) E
  123. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E ⬅⬆⬇➡ tx.origin readOrMutate(…) 0x11 tx textFor(0x11) E
  124. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E ⬅⬆⬇➡ E 0x11 -> “ڐ͢” F 0x11 -> “Allowed” A 0x11 -> “Povoleno” tx.origin readOrMutate(…) 0x11 tx textFor(0x11) E
  125. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E ⬅⬆⬇➡ E 0x11 -> “ڐ͢” F 0x11 -> “Allowed” A 0x11 -> “Povoleno” tx.origin textFor(0x11) readOrMutate(…) 0x11 tx textFor(0x11) E
  126. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E ⬅⬆⬇➡ E 0x11 -> “ڐ͢” F 0x11 -> “Allowed” A 0x11 -> “Povoleno” tx.origin textFor(0x11) “ڐ͢” readOrMutate(…) 0x11 tx textFor(0x11) E
  127. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E ⬅⬆⬇➡ E 0x11 -> “ڐ͢” F 0x11 -> “Allowed” A 0x11 -> “Povoleno” tx.origin textFor(0x11) “ڐ͢” readOrMutate(…) 0x11 “ڐ͢” tx textFor(0x11) E
  128. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E ⬅⬆⬇➡ E 0x11 -> “ڐ͢” F 0x11 -> “Allowed” A 0x11 -> “Povoleno” tx.origin textFor(0x11) “ڐ͢” readOrMutate(…) 0x11 “ڐ͢” tx “ڐ͢” textFor(0x11) E
  129. T R A N S L AT I O N

    F LO W F I S S I O N T R A N S L A T E ⬅⬆⬇➡ E 0x11 -> “ڐ͢” F 0x11 -> “Allowed” A 0x11 -> “Povoleno” tx.origin textFor(0x11) “ڐ͢” readOrMutate(…) 0x11 “ڐ͢” tx “ڐ͢” textFor(0x11) E ڐ͢ AuthorizingContract
  130. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E
  131. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E G
  132. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E G
  133. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E G
  134. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E doTheThing() G
  135. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E doTheThing() tx G
  136. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E doTheThing() tx revertWith(0x40) G
  137. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E ⬅⬆⬇➡ doTheThing() tx revertWith(0x40) G
  138. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E ⬅⬆⬇➡ textFor(0x40) doTheThing() tx revertWith(0x40) G
  139. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E ⬅⬆⬇➡ G 0x40 -> “ຫມ#ດອາຍu” F 0x40 -> “Expired” A 0x40 -> “Prošlý” textFor(0x40) doTheThing() tx revertWith(0x40) G
  140. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E ⬅⬆⬇➡ G 0x40 -> “ຫມ#ດອາຍu” F 0x40 -> “Expired” A 0x40 -> “Prošlý” textFor(0x40) tx.origin doTheThing() tx revertWith(0x40) G
  141. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E ⬅⬆⬇➡ G 0x40 -> “ຫມ#ດອາຍu” F 0x40 -> “Expired” A 0x40 -> “Prošlý” textFor(0x40) tx.origin 0x40 doTheThing() tx revertWith(0x40) G
  142. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E ⬅⬆⬇➡ G 0x40 -> “ຫມ#ດອາຍu” F 0x40 -> “Expired” A 0x40 -> “Prošlý” textFor(0x40) tx.origin 0x40 “ຫມ#ດອາຍu” doTheThing() tx revertWith(0x40) G
  143. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E ⬅⬆⬇➡ G 0x40 -> “ຫມ#ດອາຍu” F 0x40 -> “Expired” A 0x40 -> “Prošlý” textFor(0x40) tx.origin 0x40 “ຫມ#ດອາຍu” “ຫມ#ດອາຍu” doTheThing() tx revertWith(0x40) G
  144. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E ⬅⬆⬇➡ G 0x40 -> “ຫມ#ດອາຍu” F 0x40 -> “Expired” A 0x40 -> “Prošlý” textFor(0x40) tx.origin 0x40 “ຫມ#ດອາຍu” “ຫມ#ດອາຍu” doTheThing() revert(“ຫມ#ດອາຍu”) tx revertWith(0x40) G
  145. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E ⬅⬆⬇➡ G 0x40 -> “ຫມ#ດອາຍu” F 0x40 -> “Expired” A 0x40 -> “Prošlý” textFor(0x40) tx.origin 0x40 “ຫມ#ດອາຍu” “ຫມ#ດອາຍu” doTheThing() “ຫມ#ດອາຍu” revert(“ຫມ#ດອາຍu”) tx revertWith(0x40) G
  146. T R A N S L AT E D R

    E V E R T ( ) F I S S I O N T R A N S L A T E ⬅⬆⬇➡ G 0x40 -> “ຫມ#ດອາຍu” F 0x40 -> “Expired” A 0x40 -> “Prošlý” textFor(0x40) tx.origin 0x40 “ຫມ#ດອາຍu” “ຫມ#ດອາຍu” doTheThing() “ຫມ#ດອາຍu” revert(“ຫມ#ດອາຍu”) tx revertWith(0x40) G
  147. C O N T R AC TS F I S

    S I O N T R A N S L A T E
  148. C O N T R AC TS F I S

    S I O N T R A N S L A T E
  149. C O N T R AC TS F I S

    S I O N T R A N S L A T E
  150. A L L T H E C O D E

    S T H E F U T U R E I S F I S S I L E
  151. B R I D G I N G T H

    E D I V I D E T H E F U T U R E I S F I S S I L E
  152. B R I D G I N G T H

    E D I V I D E T H E F U T U R E I S F I S S I L E E T H E R E U M
  153. B R I D G I N G T H

    E D I V I D E T H E F U T U R E I S F I S S I L E F I S S I O N C O D E S • E R C 1 0 6 6 E T H E R E U M
  154. B R I D G I N G T H

    E D I V I D E T H E F U T U R E I S F I S S I L E F I S S I O N C O D E S • E R C 1 0 6 6 E T H E R E U M T R A N S L AT E • E R C 1 4 4 4
  155. B R I D G I N G T H

    E D I V I D E T H E F U T U R E I S F I S S I L E • FISSION Translate Integrations F I S S I O N C O D E S • E R C 1 0 6 6 E T H E R E U M T R A N S L AT E • E R C 1 4 4 4
  156. B R I D G I N G T H

    E D I V I D E T H E F U T U R E I S F I S S I L E • FISSION Translate Integrations F I S S I O N C O D E S • E R C 1 0 6 6 E T H E R E U M OT H E R C H A I N S T R A N S L AT E • E R C 1 4 4 4
  157. B R I D G I N G T H

    E D I V I D E T H E F U T U R E I S F I S S I L E • FISSION Translate Integrations F I S S I O N C O D E S • E R C 1 0 6 6 E T H E R E U M OT H E R C H A I N S T R A N S L AT E • E R C 1 4 4 4 I N T E R C H A I N
  158. B R I D G I N G T H

    E D I V I D E T H E F U T U R E I S F I S S I L E • FISSION Translate Integrations • FISSION Interchain / “Fusion” F I S S I O N C O D E S • E R C 1 0 6 6 E T H E R E U M OT H E R C H A I N S T R A N S L AT E • E R C 1 4 4 4 I N T E R C H A I N
  159. B R I D G I N G T H

    E D I V I D E T H E F U T U R E I S F I S S I L E • FISSION Translate Integrations • FISSION Interchain / “Fusion” F I S S I O N C O D E S • E R C 1 0 6 6 W E B E T H E R E U M OT H E R C H A I N S T R A N S L AT E • E R C 1 4 4 4 I N T E R C H A I N
  160. B R I D G I N G T H

    E D I V I D E T H E F U T U R E I S F I S S I L E • FISSION Translate Integrations • FISSION Interchain / “Fusion” F I S S I O N C O D E S • E R C 1 0 6 6 W E B E T H E R E U M OT H E R C H A I N S T R A N S L AT E • E R C 1 4 4 4 I N T E R C H A I N H T T P C O D E S
  161. B R I D G I N G T H

    E D I V I D E T H E F U T U R E I S F I S S I L E • FISSION Translate Integrations • FISSION Interchain / “Fusion” F I S S I O N C O D E S • E R C 1 0 6 6 W E B E T H E R E U M OT H E R C H A I N S T R A N S L AT E • E R C 1 4 4 4 W E B B R I D G E I N T E R C H A I N H T T P C O D E S
  162. B R I D G I N G T H

    E D I V I D E T H E F U T U R E I S F I S S I L E • FISSION Translate Integrations • FISSION Interchain / “Fusion” • FISSION Web Bridge F I S S I O N C O D E S • E R C 1 0 6 6 W E B E T H E R E U M OT H E R C H A I N S T R A N S L AT E • E R C 1 4 4 4 W E B B R I D G E I N T E R C H A I N H T T P C O D E S
  163. B R I D G I N G T H

    E D I V I D E T H E F U T U R E I S F I S S I L E • FISSION Translate Integrations • FISSION Interchain / “Fusion” • FISSION Web Bridge • FISSION Sessions F I S S I O N C O D E S • E R C 1 0 6 6 W E B E T H E R E U M OT H E R C H A I N S T R A N S L AT E • E R C 1 4 4 4 W E B B R I D G E I N T E R C H A I N H T T P C O D E S
  164. Documentation fission.codes eips.ethereum.org/EIPS/eip-1066 eips.ethereum.org/EIPS/eip-1444 Discussion ethereum-magicians.org/tags/erc-1066 ethereum-magicians.org/tags/erc-1444 SPADE Co. ♠

    spade.builders ♠ twitter.com/SPADEbuilders Brooklyn Zelenka (@expede) twitter.com/expede github.com/expede T H A N K YO U ! F I S S I O N S U I T E