Skip to content

Commit

Permalink
maps, tickets, hashes, votingpower michelson instrutions work
Browse files Browse the repository at this point in the history
  • Loading branch information
itamarreif committed Feb 15, 2021
1 parent d1b7868 commit 257507b
Show file tree
Hide file tree
Showing 12 changed files with 83 additions and 47 deletions.
26 changes: 20 additions & 6 deletions grammar/tezos/Michelson.ne
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ const lexer = moo.compile({
parameter: [ 'parameter' , 'Parameter'],
storage: ['Storage', 'storage'],
code: ['Code', 'code'],
comparableType: ['int', 'nat', 'string', 'bytes', 'mutez', 'bool', 'key_hash', 'timestamp', 'chain_id'],
constantType: ['key', 'unit', 'signature', 'operation', 'address'],
singleArgType: ['option', 'list', 'set', 'contract'],
comparableType: ['int', 'nat', 'string', 'bytes', 'mutez', 'bool', 'key_hash', 'timestamp', 'chain_id', /* Edo types*/ 'never'],
constantType: ['key', 'unit', 'signature', 'operation', 'address', /* Edo types */ 'bls12_381_fr', 'bls12_381_g1', 'bls12_381_g2'],
singleArgType: ['option', 'list', 'set', 'contract', 'ticket'],
doubleArgType: ['pair', 'or', 'lambda', 'map', 'big_map'],
baseInstruction: ['ABS', 'ADD', 'ADDRESS', 'AMOUNT', 'AND', 'BALANCE', 'BLAKE2B', 'CAR', 'CAST', 'CDR', 'CHECK_SIGNATURE',
'COMPARE', 'CONCAT', 'CONS', 'CONTRACT', /*'CREATE_CONTRACT',*/ 'DIP', /*'DROP',*/ /*'DUP',*/ 'EDIV', /*'EMPTY_MAP',*/
Expand All @@ -48,7 +48,9 @@ const lexer = moo.compile({
'IF_SOME', // TODO: macro
'IFCMPEQ', 'IFCMPNEQ', 'IFCMPLT', 'IFCMPGT', 'IFCMPLE', 'IFCMPGE', 'CMPEQ', 'CMPNEQ', 'CMPLT', 'CMPGT', 'CMPLE',
'CMPGE', 'IFEQ', 'NEQ', 'IFLT', 'IFGT', 'IFLE', 'IFGE', // TODO: should be separate
/*'DIG',*/ /*'DUG',*/ 'EMPTY_BIG_MAP', 'APPLY', 'CHAIN_ID'
/*'DIG',*/ /*'DUG',*/ 'EMPTY_BIG_MAP', 'APPLY', 'CHAIN_ID',
// Edo instructions
'KECCAK', 'SHA3', 'PAIRING_CHECK', 'SAPLING_EMPTY_STATE', 'SAPLING_VERIFY_UPDATE', 'GET_AND_UPDATE', 'NEVER', 'VOTING_POWER', 'TOTAL_VOTING_POWER', 'TICKET', 'READ_TICKET', 'SPLIT_TICKET', 'JOIN_TICKETS'
],
macroCADR: macroCADRconst,
macroDIP: macroDIPconst,
Expand Down Expand Up @@ -94,6 +96,10 @@ type ->
| %lparen _ %constantType (_ %annot):+ _ %rparen {% comparableTypeToJson %}
| %lparen _ %singleArgType (_ %annot):+ _ type %rparen {% singleArgTypeKeywordWithParenToJson %}
| %lparen _ %doubleArgType (_ %annot):+ _ type _ type %rparen {% doubleArgTypeKeywordWithParenToJson %}
| %lparen _ "sapling_state" (_ %annot):+ _ %number %rparen {% saplingToJson %}
| %lparen _ "sapling_transaction" (_ %annot):+ _ %number %rparen {% saplingToJson %}
| %lparen _ "sapling_state" _ %number %rparen {% saplingToJson %}
| %lparen _ "sapling_transaction" _ %number %rparen {% saplingToJson %}

typeData ->
%singleArgType _ typeData {% singleArgKeywordToJson %}
Expand Down Expand Up @@ -440,7 +446,7 @@ semicolons -> [;]:?
* Given a int, convert it to JSON.
* Example: "3" -> { "int": "3" }
*/
const intToJson = d => `{ "int": "${parseInt(d[0])}" }`;
const intToJson = d => `{ "int": "${d[0]}" }`;

/**
* Given a string, convert it to JSON.
Expand Down Expand Up @@ -494,7 +500,7 @@ semicolons -> [;]:?
const singleArgInstrKeywordToJson = d => {
const word = `${d[0].toString()}`
if (check_dip(word)) {
return expandDIP(word, d[2])
return expandDIP(word, d[2]);
} else {
return `{ "prim": "${d[0]}", "args": [ [ ${d[2]} ] ] }`; /*TODO: [] double-wrapping here is Bad*/
}
Expand Down Expand Up @@ -608,6 +614,14 @@ semicolons -> [;]:?
return `{ "prim": "PUSH", "args": [ ${d[3]}, ${d[5]} ], "annots": [${annot}] }`;
}

const saplingToJson = d => {
if (d.length == 7) { // if there exists an annotation
const annot = d[3].map(x => `"${x[1]}"`);
return `{ "prim": "${d[2]}", "args": [ { "int": "${d[5]}" } ], "annots": [${annot}] }`;
} else
return `{ "prim": "${d[2]}", "args": [ { "int": "${d[4]}" } ] }`;
}

const dipnToJson = d => (d.length > 4) ? `{ "prim": "${d[0]}", "args": [ { "int": "${d[2]}" }, [ ${d[4]} ] ] }` : `{ "prim": "${d[0]}", "args": [ ${d[2]} ] }`;

const dupnToJson = d => {
Expand Down
40 changes: 31 additions & 9 deletions src/chain/tezos/lexer/Michelson.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ const lexer = moo.compile({
parameter: [ 'parameter' , 'Parameter'],
storage: ['Storage', 'storage'],
code: ['Code', 'code'],
comparableType: ['int', 'nat', 'string', 'bytes', 'mutez', 'bool', 'key_hash', 'timestamp', 'chain_id'],
constantType: ['key', 'unit', 'signature', 'operation', 'address'],
singleArgType: ['option', 'list', 'set', 'contract'],
comparableType: ['int', 'nat', 'string', 'bytes', 'mutez', 'bool', 'key_hash', 'timestamp', 'chain_id', /* Edo types*/ 'never'],
constantType: ['key', 'unit', 'signature', 'operation', 'address', /* Edo types */ 'bls12_381_fr', 'bls12_381_g1', 'bls12_381_g2'],
singleArgType: ['option', 'list', 'set', 'contract', 'ticket'],
doubleArgType: ['pair', 'or', 'lambda', 'map', 'big_map'],
baseInstruction: ['ABS', 'ADD', 'ADDRESS', 'AMOUNT', 'AND', 'BALANCE', 'BLAKE2B', 'CAR', 'CAST', 'CDR', 'CHECK_SIGNATURE',
'COMPARE', 'CONCAT', 'CONS', 'CONTRACT', /*'CREATE_CONTRACT',*/ 'DIP', /*'DROP',*/ /*'DUP',*/ 'EDIV', /*'EMPTY_MAP',*/
Expand All @@ -77,7 +77,9 @@ const lexer = moo.compile({
'IF_SOME', // TODO: macro
'IFCMPEQ', 'IFCMPNEQ', 'IFCMPLT', 'IFCMPGT', 'IFCMPLE', 'IFCMPGE', 'CMPEQ', 'CMPNEQ', 'CMPLT', 'CMPGT', 'CMPLE',
'CMPGE', 'IFEQ', 'NEQ', 'IFLT', 'IFGT', 'IFLE', 'IFGE', // TODO: should be separate
/*'DIG',*/ /*'DUG',*/ 'EMPTY_BIG_MAP', 'APPLY', 'CHAIN_ID'
/*'DIG',*/ /*'DUG',*/ 'EMPTY_BIG_MAP', 'APPLY', 'CHAIN_ID',
// Edo instructions
'KECCAK', 'SHA3', 'PAIRING_CHECK', 'SAPLING_EMPTY_STATE', 'SAPLING_VERIFY_UPDATE', 'GET_AND_UPDATE', 'NEVER', 'VOTING_POWER', 'TOTAL_VOTING_POWER', 'TICKET', 'READ_TICKET', 'SPLIT_TICKET', 'JOIN_TICKETS'
],
macroCADR: macroCADRconst,
macroDIP: macroDIPconst,
Expand Down Expand Up @@ -339,7 +341,7 @@ const lexer = moo.compile({
* Given a int, convert it to JSON.
* Example: "3" -> { "int": "3" }
*/
const intToJson = d => `{ "int": "${parseInt(d[0])}" }`;
const intToJson = d => `{ "int": "${d[0]}" }`;

/**
* Given a string, convert it to JSON.
Expand Down Expand Up @@ -393,9 +395,9 @@ const lexer = moo.compile({
const singleArgInstrKeywordToJson = d => {
const word = `${d[0].toString()}`
if (check_dip(word)) {
return expandDIP(word, d[2])
return expandDIP(word, d[2]);
} else {
return `{ "prim": "${d[0]}", "args": [ [ ${d[2]} ] ] }`;
return `{ "prim": "${d[0]}", "args": [ [ ${d[2]} ] ] }`; /*TODO: [] double-wrapping here is Bad*/
}
}

Expand Down Expand Up @@ -423,7 +425,7 @@ const lexer = moo.compile({
const doubleArgKeywordToJson = d => {
if (d.length === 7) {
/*
This handles the case where a blank {} for %subInstuction should be blank, but for %data they should be an empty array
This handles the case where a blank {} for %subInstuction should be blank, but for %data they should be an empty array, see TODO about double-wrapping
*/
return `{ "prim": "${d[0]}", "args": [ ${d[2]}, [] ] }`;
} else {
Expand All @@ -437,7 +439,7 @@ const lexer = moo.compile({
if (check_if(word)) {
return expandIF(word, d[2], d[4])
} else {
return `{ "prim": "${d[0]}", "args": [ [${d[2]}], [${d[4]}] ] }`;
return `{ "prim": "${d[0]}", "args": [ [${d[2]}], [${d[4]}] ] }`; /*TODO: [] double-wrapping here is Bad*/
}
}

Expand Down Expand Up @@ -507,6 +509,14 @@ const lexer = moo.compile({
return `{ "prim": "PUSH", "args": [ ${d[3]}, ${d[5]} ], "annots": [${annot}] }`;
}

const saplingToJson = d => {
if (d.length == 7) { // if there exists an annotation
const annot = d[3].map(x => `"${x[1]}"`);
return `{ "prim": "${d[2]}", "args": [ { "int": "${d[5]}" } ], "annots": [${annot}] }`;
} else
return `{ "prim": "${d[2]}", "args": [ { "int": "${d[4]}" } ] }`;
}

const dipnToJson = d => (d.length > 4) ? `{ "prim": "${d[0]}", "args": [ { "int": "${d[2]}" }, [ ${d[4]} ] ] }` : `{ "prim": "${d[0]}", "args": [ ${d[2]} ] }`;

const dupnToJson = d => {
Expand Down Expand Up @@ -616,6 +626,18 @@ const grammar: Grammar = {
{"name": "type$ebnf$6$subexpression$2", "symbols": ["_", (lexer.has("annot") ? {type: "annot"} : annot)]},
{"name": "type$ebnf$6", "symbols": ["type$ebnf$6", "type$ebnf$6$subexpression$2"], "postprocess": (d) => d[0].concat([d[1]])},
{"name": "type", "symbols": [(lexer.has("lparen") ? {type: "lparen"} : lparen), "_", (lexer.has("doubleArgType") ? {type: "doubleArgType"} : doubleArgType), "type$ebnf$6", "_", "type", "_", "type", (lexer.has("rparen") ? {type: "rparen"} : rparen)], "postprocess": doubleArgTypeKeywordWithParenToJson},
{"name": "type$ebnf$7$subexpression$1", "symbols": ["_", (lexer.has("annot") ? {type: "annot"} : annot)]},
{"name": "type$ebnf$7", "symbols": ["type$ebnf$7$subexpression$1"]},
{"name": "type$ebnf$7$subexpression$2", "symbols": ["_", (lexer.has("annot") ? {type: "annot"} : annot)]},
{"name": "type$ebnf$7", "symbols": ["type$ebnf$7", "type$ebnf$7$subexpression$2"], "postprocess": (d) => d[0].concat([d[1]])},
{"name": "type", "symbols": [(lexer.has("lparen") ? {type: "lparen"} : lparen), "_", {"literal":"sapling_state"}, "type$ebnf$7", "_", (lexer.has("number") ? {type: "number"} : number), (lexer.has("rparen") ? {type: "rparen"} : rparen)], "postprocess": saplingToJson},
{"name": "type$ebnf$8$subexpression$1", "symbols": ["_", (lexer.has("annot") ? {type: "annot"} : annot)]},
{"name": "type$ebnf$8", "symbols": ["type$ebnf$8$subexpression$1"]},
{"name": "type$ebnf$8$subexpression$2", "symbols": ["_", (lexer.has("annot") ? {type: "annot"} : annot)]},
{"name": "type$ebnf$8", "symbols": ["type$ebnf$8", "type$ebnf$8$subexpression$2"], "postprocess": (d) => d[0].concat([d[1]])},
{"name": "type", "symbols": [(lexer.has("lparen") ? {type: "lparen"} : lparen), "_", {"literal":"sapling_transaction"}, "type$ebnf$8", "_", (lexer.has("number") ? {type: "number"} : number), (lexer.has("rparen") ? {type: "rparen"} : rparen)], "postprocess": saplingToJson},
{"name": "type", "symbols": [(lexer.has("lparen") ? {type: "lparen"} : lparen), "_", {"literal":"sapling_state"}, "_", (lexer.has("number") ? {type: "number"} : number), (lexer.has("rparen") ? {type: "rparen"} : rparen)], "postprocess": saplingToJson},
{"name": "type", "symbols": [(lexer.has("lparen") ? {type: "lparen"} : lparen), "_", {"literal":"sapling_transaction"}, "_", (lexer.has("number") ? {type: "number"} : number), (lexer.has("rparen") ? {type: "rparen"} : rparen)], "postprocess": saplingToJson},
{"name": "typeData", "symbols": [(lexer.has("singleArgType") ? {type: "singleArgType"} : singleArgType), "_", "typeData"], "postprocess": singleArgKeywordToJson},
{"name": "typeData", "symbols": [(lexer.has("lparen") ? {type: "lparen"} : lparen), "_", (lexer.has("singleArgType") ? {type: "singleArgType"} : singleArgType), "_", "typeData", "_", (lexer.has("rparen") ? {type: "rparen"} : rparen)], "postprocess": singleArgKeywordWithParenToJson},
{"name": "typeData", "symbols": [(lexer.has("doubleArgType") ? {type: "doubleArgType"} : doubleArgType), "_", "typeData", "_", "typeData"], "postprocess": doubleArgKeywordToJson},
Expand Down
2 changes: 1 addition & 1 deletion test/chain/tezos/lexer/samples/p008-opcodes/hashes.hex
Original file line number Diff line number Diff line change
@@ -1 +1 @@
00000052020000004d05010765046900000007256b656363616b0469000000052573686133050003690502020000002603210316034c03170317034c032105710002037d0342034c037e034c03160342053d036d0342
00000052020000004d0500036905010765046900000007256b656363616b04690000000525736861330502020000002603210316034c03170317034c032105710002037d0342034c037e034c03160342053d036d0342
4 changes: 2 additions & 2 deletions test/chain/tezos/lexer/samples/p008-opcodes/hashes.micheline
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{ "prim": "storage", "args": [ { "prim": "pair", "args": [ { "prim": "bytes", "annots": [ "%keccak" ] }, { "prim": "bytes", "annots": [ "%sha3" ] } ] } ] },
{ "prim": "parameter", "args": [ { "prim": "bytes" } ] },
{ "prim": "storage", "args": [ { "prim": "pair", "args": [ { "prim": "bytes", "annots": [ "%keccak" ] }, { "prim": "bytes", "annots": [ "%sha3" ] } ] } ] },
{
"prim": "code",
"args": [
Expand All @@ -25,4 +25,4 @@
]
]
}
]
]
2 changes: 1 addition & 1 deletion test/chain/tezos/lexer/samples/p008-opcodes/maps.hex
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0000033502000003300501076507650860035b036800000002256d04680000000225780765066303680000000225790663036800000002257a0500076407640764046c0000001425746573745f6765745f616e645f7570646174650860035b03680000000d25746573745f6d61705f67657407640860035b03680000000e25746573745f6d61705f676574320860035b03680000001c25746573745f6d61705f6765745f64656661756c745f76616c756573076407640860035b03680000001b25746573745f6d61705f6765745f6d697373696e675f76616c75650860035b03680000001c25746573745f6d61705f6765745f6d697373696e675f76616c75653207640860035b03680000001125746573745f6d61705f6765745f6f7074046c0000001025746573745f7570646174655f6d6170050202000001fe03210317034c0316072e0200000102072e0200000082072e0200000044034c03210571000203160316074305630368050901000000036f6e650743035b0001038c034c0320034c0320034c03210316034c0317031605700002034c0342034c03420200000032034c03210317034c03160316057000020743035b000c0329072f02000000080743035b000c03270200000000034c034203420200000074072e0200000032034c03210317034c03160316057000020743035b000c0329072f02000000080743035b001103270200000000034c034203420200000036034c03210317034c03160316057000020743035b000c0329072f020000000c0743036801000000036162630200000000034c0342034202000000e2072e020000007e072e020000003f034c03210317034c03160316057000020743035b000c0329072f020000001507430368010000000a6d697373696e6720313203270200000000034c034203420200000033034c03210317034c03160316057000020743035b000c0329072f02000000090743035b00921303270200000000034c034203420200000058072e020000001e034c03210316034c03170317057000020743035b000c03290342034c0342020000002e032003210317034c031603210317034c0316074305630368050901000000036f6e650743035b0001035003420342053d036d0342
0000033502000003300500076407640764046c0000001425746573745f6765745f616e645f7570646174650860035b03680000000d25746573745f6d61705f67657407640860035b03680000000e25746573745f6d61705f676574320860035b03680000001c25746573745f6d61705f6765745f64656661756c745f76616c756573076407640860035b03680000001b25746573745f6d61705f6765745f6d697373696e675f76616c75650860035b03680000001c25746573745f6d61705f6765745f6d697373696e675f76616c75653207640860035b03680000001125746573745f6d61705f6765745f6f7074046c0000001025746573745f7570646174655f6d61700501076507650860035b036800000002256d04680000000225780765066303680000000225790663036800000002257a050202000001fe03210317034c0316072e0200000102072e0200000082072e0200000044034c03210571000203160316074305630368050901000000036f6e650743035b0001038c034c0320034c0320034c03210316034c0317031605700002034c0342034c03420200000032034c03210317034c03160316057000020743035b000c0329072f02000000080743035b000c03270200000000034c034203420200000074072e0200000032034c03210317034c03160316057000020743035b000c0329072f02000000080743035b001103270200000000034c034203420200000036034c03210317034c03160316057000020743035b000c0329072f020000000c0743036801000000036162630200000000034c0342034202000000e2072e020000007e072e020000003f034c03210317034c03160316057000020743035b000c0329072f020000001507430368010000000a6d697373696e6720313203270200000000034c034203420200000033034c03210317034c03160316057000020743035b000c0329072f02000000090743035b00921303270200000000034c034203420200000058072e020000001e034c03210316034c03170317057000020743035b000c03290342034c0342020000002e032003210317034c031603210317034c0316074305630368050901000000036f6e650743035b0001035003420342053d036d0342
32 changes: 16 additions & 16 deletions test/chain/tezos/lexer/samples/p008-opcodes/maps.micheline
Original file line number Diff line number Diff line change
@@ -1,19 +1,4 @@
[
{
"prim": "storage",
"args": [
{
"prim": "pair",
"args": [
{ "prim": "pair", "args": [ { "prim": "map", "args": [ { "prim": "int" }, { "prim": "string" } ], "annots": [ "%m" ] }, { "prim": "string", "annots": [ "%x" ] } ] },
{
"prim": "pair",
"args": [ { "prim": "option", "args": [ { "prim": "string" } ], "annots": [ "%y" ] }, { "prim": "option", "args": [ { "prim": "string" } ], "annots": [ "%z" ] } ]
}
]
}
]
},
{
"prim": "parameter",
"args": [
Expand Down Expand Up @@ -62,6 +47,21 @@
}
]
},
{
"prim": "storage",
"args": [
{
"prim": "pair",
"args": [
{ "prim": "pair", "args": [ { "prim": "map", "args": [ { "prim": "int" }, { "prim": "string" } ], "annots": [ "%m" ] }, { "prim": "string", "annots": [ "%x" ] } ] },
{
"prim": "pair",
"args": [ { "prim": "option", "args": [ { "prim": "string" } ], "annots": [ "%y" ] }, { "prim": "option", "args": [ { "prim": "string" } ], "annots": [ "%z" ] } ]
}
]
}
]
},
{
"prim": "code",
"args": [
Expand Down Expand Up @@ -252,4 +252,4 @@
]
]
}
]
]
2 changes: 1 addition & 1 deletion test/chain/tezos/lexer/samples/p008-opcodes/never.hex
Original file line number Diff line number Diff line change
@@ -1 +1 @@
00000042020000003d0501035b05000764045b00000002254104780000000225420502020000001e0316072e02000000080743035b000c031202000000020379053d036d0342
00000042020000003d05000764045b00000002254104780000000225420501035b0502020000001e0316072e02000000080743035b000c031202000000020379053d036d0342
4 changes: 2 additions & 2 deletions test/chain/tezos/lexer/samples/p008-opcodes/never.micheline
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{ "prim": "storage", "args": [ { "prim": "int" } ] },
{ "prim": "parameter", "args": [ { "prim": "or", "args": [ { "prim": "int", "annots": [ "%A" ] }, { "prim": "never", "annots": [ "%B" ] } ] } ] },
{ "prim": "storage", "args": [ { "prim": "int" } ] },
{
"prim": "code",
"args": [
Expand All @@ -12,4 +12,4 @@
]
]
}
]
]
2 changes: 1 addition & 1 deletion test/chain/tezos/lexer/samples/p008-opcodes/tickets.hex
Original file line number Diff line number Diff line change
@@ -1 +1 @@
00000142020000013d0501076506630587035b00000002257806630587036800000002257905000764046c0000000a256175746f5f63616c6c0687035b000000042572756e050202000000fa037a072e020000002c032007430362002b0743035b00010388053d036d0449000000042572756e0743036a000005700003034d031b02000000be038907430362002a074303680100000003616263038805700003034c0346034c0316034205710002052900040321074303620003034c0322072f02000000080743035b0014032702000000020316034c032105710002034b0356072f02000000080743035b001403270200000000074303620003057000020322072f02000000080743035b00140327020000000203160342034c038a072f02000000080743035b001403270200000000037a034c0342038b034c0317034c0342053d036d0342
00000142020000013d05000764046c0000000a256175746f5f63616c6c0687035b000000042572756e0501076506630587035b000000022578066305870368000000022579050202000000fa037a072e020000002c032007430362002b0743035b00010388053d036d0449000000042572756e0743036a000005700003034d031b02000000be038907430362002a074303680100000003616263038805700003034c0346034c0316034205710002052900040321074303620003034c0322072f02000000080743035b0014032702000000020316034c032105710002034b0356072f02000000080743035b001403270200000000074303620003057000020322072f02000000080743035b00140327020000000203160342034c038a072f02000000080743035b001403270200000000037a034c0342038b034c0317034c0342053d036d0342
10 changes: 5 additions & 5 deletions test/chain/tezos/lexer/samples/p008-opcodes/tickets.micheline
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
[
{
"prim": "parameter",
"args": [ { "prim": "or", "args": [ { "prim": "unit", "annots": [ "%auto_call" ] }, { "prim": "ticket", "args": [ { "prim": "int" } ], "annots": [ "%run" ] } ] } ]
},
{
"prim": "storage",
"args": [
Expand All @@ -11,10 +15,6 @@
}
]
},
{
"prim": "parameter",
"args": [ { "prim": "or", "args": [ { "prim": "unit", "annots": [ "%auto_call" ] }, { "prim": "ticket", "args": [ { "prim": "int" } ], "annots": [ "%run" ] } ] } ]
},
{
"prim": "code",
"args": [
Expand Down Expand Up @@ -83,4 +83,4 @@
]
]
}
]
]
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0000005c020000005705010765046200000002256104620000000225620500035c0502020000003803210316034c03170317034c032105710002032b037b03420321057100020316037c057000020320057000020320034c0342053d036d0342
0000005c02000000570500035c05010765046200000002256104620000000225620502020000003803210316034c03170317034c032105710002032b037b03420321057100020316037c057000020320057000020320034c0342053d036d0342
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{ "prim": "storage", "args": [ { "prim": "pair", "args": [ { "prim": "nat", "annots": [ "%a" ] }, { "prim": "nat", "annots": [ "%b" ] } ] } ] },
{ "prim": "parameter", "args": [ { "prim": "key" } ] },
{ "prim": "storage", "args": [ { "prim": "pair", "args": [ { "prim": "nat", "annots": [ "%a" ] }, { "prim": "nat", "annots": [ "%b" ] } ] } ] },
{
"prim": "code",
"args": [
Expand Down Expand Up @@ -31,4 +31,4 @@
]
]
}
]
]

0 comments on commit 257507b

Please sign in to comment.