From 27a72ecf5f7792b9cf004f1e1cfa2d31a1b4f7f3 Mon Sep 17 00:00:00 2001 From: BowTiedRadone Date: Tue, 21 Jan 2025 14:12:11 +0200 Subject: [PATCH] Move the trait test ASTs and interfaces to the test file This commit moves the trait test inputs from the fixtures floder directly to `traits.tests.ts` in a `testInputs` object. This is done to make it easier to navigate the test inputs and to make it easier to add new test inputs in the future. --- fixtures/direct-trait-2nd-parameter-ast.json | 928 --- ...it-2nd-parameter-functions-interfaces.json | 50 - fixtures/direct-trait-5th-parameter-ast.json | 1066 ---- ...it-5th-parameter-functions-interfaces.json | 92 - fixtures/direct-trait-ast.json | 886 --- .../direct-trait-functions-interfaces.json | 72 - fixtures/list-trait-parameter-ast.json | 930 --- ...-trait-parameter-functions-interfaces.json | 77 - fixtures/tuple-trait-1st-parameter-ast.json | 881 --- ...it-1st-parameter-functions-interfaces.json | 79 - traits.tests.ts | 4995 ++++++++++++++++- 11 files changed, 4929 insertions(+), 5127 deletions(-) delete mode 100644 fixtures/direct-trait-2nd-parameter-ast.json delete mode 100644 fixtures/direct-trait-2nd-parameter-functions-interfaces.json delete mode 100644 fixtures/direct-trait-5th-parameter-ast.json delete mode 100644 fixtures/direct-trait-5th-parameter-functions-interfaces.json delete mode 100644 fixtures/direct-trait-ast.json delete mode 100644 fixtures/direct-trait-functions-interfaces.json delete mode 100644 fixtures/list-trait-parameter-ast.json delete mode 100644 fixtures/list-trait-parameter-functions-interfaces.json delete mode 100644 fixtures/tuple-trait-1st-parameter-ast.json delete mode 100644 fixtures/tuple-trait-1st-parameter-functions-interfaces.json diff --git a/fixtures/direct-trait-2nd-parameter-ast.json b/fixtures/direct-trait-2nd-parameter-ast.json deleted file mode 100644 index aad23e67..00000000 --- a/fixtures/direct-trait-2nd-parameter-ast.json +++ /dev/null @@ -1,928 +0,0 @@ -{ - "contract_identifier": { - "issuer": [ - 26, - [ - 109, - 120, - 222, - 123, - 6, - 37, - 223, - 191, - 193, - 108, - 58, - 138, - 87, - 53, - 246, - 220, - 61, - 195, - 242, - 206 - ] - ], - "name": "trait" - }, - "pre_expressions": [], - "expressions": [ - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 2, - "span": { - "start_line": 1, - "start_column": 2, - "end_line": 1, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "function" - }, - "id": 4, - "span": { - "start_line": 1, - "start_column": 17, - "end_line": 1, - "end_column": 24 - } - } - ] - }, - "id": 3, - "span": { - "start_line": 1, - "start_column": 16, - "end_line": 1, - "end_column": 25 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 6, - "span": { - "start_line": 2, - "start_column": 4, - "end_line": 2, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 7, - "span": { - "start_line": 2, - "start_column": 7, - "end_line": 2, - "end_column": 10 - } - } - ] - }, - "id": 5, - "span": { - "start_line": 2, - "start_column": 3, - "end_line": 2, - "end_column": 11 - } - } - ] - }, - "id": 1, - "span": { - "start_line": 1, - "start_column": 1, - "end_line": 3, - "end_column": 1 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-map" - }, - "id": 9, - "span": { - "start_line": 6, - "start_column": 2, - "end_line": 6, - "end_column": 11 - } - }, - { - "expr": { - "Atom": "context" - }, - "id": 10, - "span": { - "start_line": 6, - "start_column": 13, - "end_line": 6, - "end_column": 19 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "string-ascii" - }, - "id": 12, - "span": { - "start_line": 6, - "start_column": 22, - "end_line": 6, - "end_column": 33 - } - }, - { - "expr": { - "LiteralValue": { - "Int": "100" - } - }, - "id": 13, - "span": { - "start_line": 6, - "start_column": 35, - "end_line": 6, - "end_column": 37 - } - } - ] - }, - "id": 11, - "span": { - "start_line": 6, - "start_column": 21, - "end_line": 6, - "end_column": 38 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "tuple" - }, - "id": 15, - "span": { - "start_line": 0, - "start_column": 0, - "end_line": 0, - "end_column": 0 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 17, - "span": { - "start_line": 7, - "start_column": 5, - "end_line": 7, - "end_column": 10 - } - }, - { - "expr": { - "Atom": "uint" - }, - "id": 18, - "span": { - "start_line": 7, - "start_column": 13, - "end_line": 7, - "end_column": 16 - }, - "post_comments": [ - [ - "other data", - { - "start_line": 8, - "start_column": 5, - "end_line": 8, - "end_column": 17 - } - ] - ] - } - ] - }, - "id": 16, - "span": { - "start_line": 7, - "start_column": 5, - "end_line": 7, - "end_column": 16 - } - } - ] - }, - "id": 14, - "span": { - "start_line": 6, - "start_column": 40, - "end_line": 9, - "end_column": 3 - } - } - ] - }, - "id": 8, - "span": { - "start_line": 6, - "start_column": 1, - "end_line": 9, - "end_column": 4 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 20, - "span": { - "start_line": 11, - "start_column": 4, - "end_line": 11, - "end_column": 16 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "update-context" - }, - "id": 22, - "span": { - "start_line": 11, - "start_column": 19, - "end_line": 11, - "end_column": 32 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "function-name" - }, - "id": 24, - "span": { - "start_line": 11, - "start_column": 35, - "end_line": 11, - "end_column": 47 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "string-ascii" - }, - "id": 26, - "span": { - "start_line": 11, - "start_column": 50, - "end_line": 11, - "end_column": 61 - } - }, - { - "expr": { - "LiteralValue": { - "Int": "100" - } - }, - "id": 27, - "span": { - "start_line": 11, - "start_column": 63, - "end_line": 11, - "end_column": 65 - } - } - ] - }, - "id": 25, - "span": { - "start_line": 11, - "start_column": 49, - "end_line": 11, - "end_column": 66 - } - } - ] - }, - "id": 23, - "span": { - "start_line": 11, - "start_column": 34, - "end_line": 11, - "end_column": 67 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 29, - "span": { - "start_line": 11, - "start_column": 70, - "end_line": 11, - "end_column": 75 - } - }, - { - "expr": { - "Atom": "uint" - }, - "id": 30, - "span": { - "start_line": 11, - "start_column": 77, - "end_line": 11, - "end_column": 80 - } - } - ] - }, - "id": 28, - "span": { - "start_line": 11, - "start_column": 69, - "end_line": 11, - "end_column": 81 - } - } - ] - }, - "id": 21, - "span": { - "start_line": 11, - "start_column": 18, - "end_line": 11, - "end_column": 82 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 32, - "span": { - "start_line": 12, - "start_column": 6, - "end_line": 12, - "end_column": 7 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "map-set" - }, - "id": 34, - "span": { - "start_line": 12, - "start_column": 10, - "end_line": 12, - "end_column": 16 - } - }, - { - "expr": { - "Atom": "context" - }, - "id": 35, - "span": { - "start_line": 12, - "start_column": 18, - "end_line": 12, - "end_column": 24 - } - }, - { - "expr": { - "Atom": "function-name" - }, - "id": 36, - "span": { - "start_line": 12, - "start_column": 26, - "end_line": 12, - "end_column": 38 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "tuple" - }, - "id": 38, - "span": { - "start_line": 0, - "start_column": 0, - "end_line": 0, - "end_column": 0 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 40, - "span": { - "start_line": 12, - "start_column": 41, - "end_line": 12, - "end_column": 46 - } - }, - { - "expr": { - "Atom": "called" - }, - "id": 41, - "span": { - "start_line": 12, - "start_column": 49, - "end_line": 12, - "end_column": 54 - } - } - ] - }, - "id": 39, - "span": { - "start_line": 12, - "start_column": 41, - "end_line": 12, - "end_column": 54 - } - } - ] - }, - "id": 37, - "span": { - "start_line": 12, - "start_column": 40, - "end_line": 12, - "end_column": 55 - } - } - ] - }, - "id": 33, - "span": { - "start_line": 12, - "start_column": 9, - "end_line": 12, - "end_column": 56 - } - } - ] - }, - "id": 31, - "span": { - "start_line": 12, - "start_column": 5, - "end_line": 12, - "end_column": 57 - } - } - ] - }, - "id": 19, - "span": { - "start_line": 11, - "start_column": 3, - "end_line": 12, - "end_column": 58 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "use-trait" - }, - "id": 43, - "span": { - "start_line": 14, - "start_column": 2, - "end_line": 14, - "end_column": 10 - } - }, - { - "expr": { - "Atom": "ft-trait" - }, - "id": 44, - "span": { - "start_line": 14, - "start_column": 12, - "end_line": 14, - "end_column": 19 - } - }, - { - "expr": { - "Field": { - "name": "sip-010-trait", - "contract_identifier": { - "issuer": [ - 22, - [ - 9, - 159, - 184, - 137, - 38, - 216, - 47, - 48, - 178, - 244, - 14, - 175, - 62, - 228, - 35, - 203, - 114, - 91, - 219, - 59 - ] - ], - "name": "sip-010-trait-ft-standard" - } - } - }, - "id": 45, - "span": { - "start_line": 14, - "start_column": 21, - "end_line": 14, - "end_column": 101 - } - } - ] - }, - "id": 42, - "span": { - "start_line": 14, - "start_column": 1, - "end_line": 14, - "end_column": 102 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 47, - "span": { - "start_line": 16, - "start_column": 2, - "end_line": 16, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "test-no-trait" - }, - "id": 49, - "span": { - "start_line": 16, - "start_column": 17, - "end_line": 16, - "end_column": 29 - } - } - ] - }, - "id": 48, - "span": { - "start_line": 16, - "start_column": 16, - "end_line": 16, - "end_column": 30 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 51, - "span": { - "start_line": 17, - "start_column": 4, - "end_line": 17, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 52, - "span": { - "start_line": 17, - "start_column": 7, - "end_line": 17, - "end_column": 10 - } - } - ] - }, - "id": 50, - "span": { - "start_line": 17, - "start_column": 3, - "end_line": 17, - "end_column": 11 - } - } - ] - }, - "id": 46, - "span": { - "start_line": 16, - "start_column": 1, - "end_line": 18, - "end_column": 1 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 54, - "span": { - "start_line": 20, - "start_column": 2, - "end_line": 20, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "test-trait" - }, - "id": 56, - "span": { - "start_line": 20, - "start_column": 17, - "end_line": 20, - "end_column": 26 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "a" - }, - "id": 58, - "span": { - "start_line": 20, - "start_column": 29, - "end_line": 20, - "end_column": 29 - } - }, - { - "expr": { - "Atom": "uint" - }, - "id": 59, - "span": { - "start_line": 20, - "start_column": 31, - "end_line": 20, - "end_column": 34 - } - } - ] - }, - "id": 57, - "span": { - "start_line": 20, - "start_column": 28, - "end_line": 20, - "end_column": 35 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "token" - }, - "id": 61, - "span": { - "start_line": 20, - "start_column": 38, - "end_line": 20, - "end_column": 42 - } - }, - { - "expr": { - "TraitReference": [ - "ft-trait", - { - "Imported": { - "name": "sip-010-trait", - "contract_identifier": { - "issuer": [ - 22, - [ - 9, - 159, - 184, - 137, - 38, - 216, - 47, - 48, - 178, - 244, - 14, - 175, - 62, - 228, - 35, - 203, - 114, - 91, - 219, - 59 - ] - ], - "name": "sip-010-trait-ft-standard" - } - } - } - ] - }, - "id": 62, - "span": { - "start_line": 20, - "start_column": 44, - "end_line": 20, - "end_column": 53 - } - } - ] - }, - "id": 60, - "span": { - "start_line": 20, - "start_column": 37, - "end_line": 20, - "end_column": 54 - } - } - ] - }, - "id": 55, - "span": { - "start_line": 20, - "start_column": 16, - "end_line": 20, - "end_column": 55 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 64, - "span": { - "start_line": 21, - "start_column": 4, - "end_line": 21, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 65, - "span": { - "start_line": 21, - "start_column": 7, - "end_line": 21, - "end_column": 10 - } - } - ] - }, - "id": 63, - "span": { - "start_line": 21, - "start_column": 3, - "end_line": 21, - "end_column": 11 - } - } - ] - }, - "id": 53, - "span": { - "start_line": 20, - "start_column": 1, - "end_line": 22, - "end_column": 1 - } - } - ], - "top_level_expression_sorting": [ - 0, - 1, - 2, - 3, - 4, - 5 - ], - "referenced_traits": {}, - "implemented_traits": [] -} \ No newline at end of file diff --git a/fixtures/direct-trait-2nd-parameter-functions-interfaces.json b/fixtures/direct-trait-2nd-parameter-functions-interfaces.json deleted file mode 100644 index 377a45cf..00000000 --- a/fixtures/direct-trait-2nd-parameter-functions-interfaces.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "name": "function", - "access": "public", - "args": [], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "test-no-trait", - "access": "public", - "args": [], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "test-trait", - "access": "public", - "args": [ - { - "name": "a", - "type": "uint128" - }, - { - "name": "token", - "type": "trait_reference" - } - ], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - } -] diff --git a/fixtures/direct-trait-5th-parameter-ast.json b/fixtures/direct-trait-5th-parameter-ast.json deleted file mode 100644 index 32120c64..00000000 --- a/fixtures/direct-trait-5th-parameter-ast.json +++ /dev/null @@ -1,1066 +0,0 @@ -{ - "contract_identifier": { - "issuer": [ - 26, - [ - 109, - 120, - 222, - 123, - 6, - 37, - 223, - 191, - 193, - 108, - 58, - 138, - 87, - 53, - 246, - 220, - 61, - 195, - 242, - 206 - ] - ], - "name": "trait" - }, - "pre_expressions": [], - "expressions": [ - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 2, - "span": { - "start_line": 1, - "start_column": 2, - "end_line": 1, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "function" - }, - "id": 4, - "span": { - "start_line": 1, - "start_column": 17, - "end_line": 1, - "end_column": 24 - } - } - ] - }, - "id": 3, - "span": { - "start_line": 1, - "start_column": 16, - "end_line": 1, - "end_column": 25 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 6, - "span": { - "start_line": 2, - "start_column": 4, - "end_line": 2, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 7, - "span": { - "start_line": 2, - "start_column": 7, - "end_line": 2, - "end_column": 10 - } - } - ] - }, - "id": 5, - "span": { - "start_line": 2, - "start_column": 3, - "end_line": 2, - "end_column": 11 - } - } - ] - }, - "id": 1, - "span": { - "start_line": 1, - "start_column": 1, - "end_line": 3, - "end_column": 1 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-map" - }, - "id": 9, - "span": { - "start_line": 6, - "start_column": 2, - "end_line": 6, - "end_column": 11 - } - }, - { - "expr": { - "Atom": "context" - }, - "id": 10, - "span": { - "start_line": 6, - "start_column": 13, - "end_line": 6, - "end_column": 19 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "string-ascii" - }, - "id": 12, - "span": { - "start_line": 6, - "start_column": 22, - "end_line": 6, - "end_column": 33 - } - }, - { - "expr": { - "LiteralValue": { - "Int": "100" - } - }, - "id": 13, - "span": { - "start_line": 6, - "start_column": 35, - "end_line": 6, - "end_column": 37 - } - } - ] - }, - "id": 11, - "span": { - "start_line": 6, - "start_column": 21, - "end_line": 6, - "end_column": 38 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "tuple" - }, - "id": 15, - "span": { - "start_line": 0, - "start_column": 0, - "end_line": 0, - "end_column": 0 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 17, - "span": { - "start_line": 7, - "start_column": 5, - "end_line": 7, - "end_column": 10 - } - }, - { - "expr": { - "Atom": "uint" - }, - "id": 18, - "span": { - "start_line": 7, - "start_column": 13, - "end_line": 7, - "end_column": 16 - }, - "post_comments": [ - [ - "other data", - { - "start_line": 8, - "start_column": 5, - "end_line": 8, - "end_column": 17 - } - ] - ] - } - ] - }, - "id": 16, - "span": { - "start_line": 7, - "start_column": 5, - "end_line": 7, - "end_column": 16 - } - } - ] - }, - "id": 14, - "span": { - "start_line": 6, - "start_column": 40, - "end_line": 9, - "end_column": 3 - } - } - ] - }, - "id": 8, - "span": { - "start_line": 6, - "start_column": 1, - "end_line": 9, - "end_column": 4 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 20, - "span": { - "start_line": 11, - "start_column": 4, - "end_line": 11, - "end_column": 16 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "update-context" - }, - "id": 22, - "span": { - "start_line": 11, - "start_column": 19, - "end_line": 11, - "end_column": 32 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "function-name" - }, - "id": 24, - "span": { - "start_line": 11, - "start_column": 35, - "end_line": 11, - "end_column": 47 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "string-ascii" - }, - "id": 26, - "span": { - "start_line": 11, - "start_column": 50, - "end_line": 11, - "end_column": 61 - } - }, - { - "expr": { - "LiteralValue": { - "Int": "100" - } - }, - "id": 27, - "span": { - "start_line": 11, - "start_column": 63, - "end_line": 11, - "end_column": 65 - } - } - ] - }, - "id": 25, - "span": { - "start_line": 11, - "start_column": 49, - "end_line": 11, - "end_column": 66 - } - } - ] - }, - "id": 23, - "span": { - "start_line": 11, - "start_column": 34, - "end_line": 11, - "end_column": 67 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 29, - "span": { - "start_line": 11, - "start_column": 70, - "end_line": 11, - "end_column": 75 - } - }, - { - "expr": { - "Atom": "uint" - }, - "id": 30, - "span": { - "start_line": 11, - "start_column": 77, - "end_line": 11, - "end_column": 80 - } - } - ] - }, - "id": 28, - "span": { - "start_line": 11, - "start_column": 69, - "end_line": 11, - "end_column": 81 - } - } - ] - }, - "id": 21, - "span": { - "start_line": 11, - "start_column": 18, - "end_line": 11, - "end_column": 82 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 32, - "span": { - "start_line": 12, - "start_column": 6, - "end_line": 12, - "end_column": 7 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "map-set" - }, - "id": 34, - "span": { - "start_line": 12, - "start_column": 10, - "end_line": 12, - "end_column": 16 - } - }, - { - "expr": { - "Atom": "context" - }, - "id": 35, - "span": { - "start_line": 12, - "start_column": 18, - "end_line": 12, - "end_column": 24 - } - }, - { - "expr": { - "Atom": "function-name" - }, - "id": 36, - "span": { - "start_line": 12, - "start_column": 26, - "end_line": 12, - "end_column": 38 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "tuple" - }, - "id": 38, - "span": { - "start_line": 0, - "start_column": 0, - "end_line": 0, - "end_column": 0 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 40, - "span": { - "start_line": 12, - "start_column": 41, - "end_line": 12, - "end_column": 46 - } - }, - { - "expr": { - "Atom": "called" - }, - "id": 41, - "span": { - "start_line": 12, - "start_column": 49, - "end_line": 12, - "end_column": 54 - } - } - ] - }, - "id": 39, - "span": { - "start_line": 12, - "start_column": 41, - "end_line": 12, - "end_column": 54 - } - } - ] - }, - "id": 37, - "span": { - "start_line": 12, - "start_column": 40, - "end_line": 12, - "end_column": 55 - } - } - ] - }, - "id": 33, - "span": { - "start_line": 12, - "start_column": 9, - "end_line": 12, - "end_column": 56 - } - } - ] - }, - "id": 31, - "span": { - "start_line": 12, - "start_column": 5, - "end_line": 12, - "end_column": 57 - } - } - ] - }, - "id": 19, - "span": { - "start_line": 11, - "start_column": 3, - "end_line": 12, - "end_column": 58 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "use-trait" - }, - "id": 43, - "span": { - "start_line": 14, - "start_column": 2, - "end_line": 14, - "end_column": 10 - } - }, - { - "expr": { - "Atom": "ft-trait" - }, - "id": 44, - "span": { - "start_line": 14, - "start_column": 12, - "end_line": 14, - "end_column": 19 - } - }, - { - "expr": { - "Field": { - "name": "sip-010-trait", - "contract_identifier": { - "issuer": [ - 22, - [ - 9, - 159, - 184, - 137, - 38, - 216, - 47, - 48, - 178, - 244, - 14, - 175, - 62, - 228, - 35, - 203, - 114, - 91, - 219, - 59 - ] - ], - "name": "sip-010-trait-ft-standard" - } - } - }, - "id": 45, - "span": { - "start_line": 14, - "start_column": 21, - "end_line": 14, - "end_column": 101 - } - } - ] - }, - "id": 42, - "span": { - "start_line": 14, - "start_column": 1, - "end_line": 14, - "end_column": 102 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 47, - "span": { - "start_line": 16, - "start_column": 2, - "end_line": 16, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "test-no-trait" - }, - "id": 49, - "span": { - "start_line": 16, - "start_column": 17, - "end_line": 16, - "end_column": 29 - } - } - ] - }, - "id": 48, - "span": { - "start_line": 16, - "start_column": 16, - "end_line": 16, - "end_column": 30 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 51, - "span": { - "start_line": 17, - "start_column": 4, - "end_line": 17, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 52, - "span": { - "start_line": 17, - "start_column": 7, - "end_line": 17, - "end_column": 10 - } - } - ] - }, - "id": 50, - "span": { - "start_line": 17, - "start_column": 3, - "end_line": 17, - "end_column": 11 - } - } - ] - }, - "id": 46, - "span": { - "start_line": 16, - "start_column": 1, - "end_line": 18, - "end_column": 1 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 54, - "span": { - "start_line": 20, - "start_column": 2, - "end_line": 20, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "test-trait" - }, - "id": 56, - "span": { - "start_line": 20, - "start_column": 17, - "end_line": 20, - "end_column": 26 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "a" - }, - "id": 58, - "span": { - "start_line": 20, - "start_column": 29, - "end_line": 20, - "end_column": 29 - } - }, - { - "expr": { - "Atom": "uint" - }, - "id": 59, - "span": { - "start_line": 20, - "start_column": 31, - "end_line": 20, - "end_column": 34 - } - } - ] - }, - "id": 57, - "span": { - "start_line": 20, - "start_column": 28, - "end_line": 20, - "end_column": 35 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "b" - }, - "id": 61, - "span": { - "start_line": 20, - "start_column": 38, - "end_line": 20, - "end_column": 38 - } - }, - { - "expr": { - "Atom": "int" - }, - "id": 62, - "span": { - "start_line": 20, - "start_column": 40, - "end_line": 20, - "end_column": 42 - } - } - ] - }, - "id": 60, - "span": { - "start_line": 20, - "start_column": 37, - "end_line": 20, - "end_column": 43 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "c" - }, - "id": 64, - "span": { - "start_line": 20, - "start_column": 46, - "end_line": 20, - "end_column": 46 - } - }, - { - "expr": { - "Atom": "bool" - }, - "id": 65, - "span": { - "start_line": 20, - "start_column": 48, - "end_line": 20, - "end_column": 51 - } - } - ] - }, - "id": 63, - "span": { - "start_line": 20, - "start_column": 45, - "end_line": 20, - "end_column": 52 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "d" - }, - "id": 67, - "span": { - "start_line": 20, - "start_column": 55, - "end_line": 20, - "end_column": 55 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "string-ascii" - }, - "id": 69, - "span": { - "start_line": 20, - "start_column": 58, - "end_line": 20, - "end_column": 69 - } - }, - { - "expr": { - "LiteralValue": { - "Int": "10" - } - }, - "id": 70, - "span": { - "start_line": 20, - "start_column": 71, - "end_line": 20, - "end_column": 72 - } - } - ] - }, - "id": 68, - "span": { - "start_line": 20, - "start_column": 57, - "end_line": 20, - "end_column": 73 - } - } - ] - }, - "id": 66, - "span": { - "start_line": 20, - "start_column": 54, - "end_line": 20, - "end_column": 74 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "e" - }, - "id": 72, - "span": { - "start_line": 20, - "start_column": 77, - "end_line": 20, - "end_column": 77 - } - }, - { - "expr": { - "TraitReference": [ - "ft-trait", - { - "Imported": { - "name": "sip-010-trait", - "contract_identifier": { - "issuer": [ - 22, - [ - 9, - 159, - 184, - 137, - 38, - 216, - 47, - 48, - 178, - 244, - 14, - 175, - 62, - 228, - 35, - 203, - 114, - 91, - 219, - 59 - ] - ], - "name": "sip-010-trait-ft-standard" - } - } - } - ] - }, - "id": 73, - "span": { - "start_line": 20, - "start_column": 79, - "end_line": 20, - "end_column": 88 - } - } - ] - }, - "id": 71, - "span": { - "start_line": 20, - "start_column": 76, - "end_line": 20, - "end_column": 89 - } - } - ] - }, - "id": 55, - "span": { - "start_line": 20, - "start_column": 16, - "end_line": 20, - "end_column": 90 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 75, - "span": { - "start_line": 21, - "start_column": 4, - "end_line": 21, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 76, - "span": { - "start_line": 21, - "start_column": 7, - "end_line": 21, - "end_column": 10 - } - } - ] - }, - "id": 74, - "span": { - "start_line": 21, - "start_column": 3, - "end_line": 21, - "end_column": 11 - } - } - ] - }, - "id": 53, - "span": { - "start_line": 20, - "start_column": 1, - "end_line": 22, - "end_column": 1 - } - } - ], - "top_level_expression_sorting": [ - 0, - 1, - 2, - 3, - 4, - 5 - ], - "referenced_traits": {}, - "implemented_traits": [] -} \ No newline at end of file diff --git a/fixtures/direct-trait-5th-parameter-functions-interfaces.json b/fixtures/direct-trait-5th-parameter-functions-interfaces.json deleted file mode 100644 index fabac35c..00000000 --- a/fixtures/direct-trait-5th-parameter-functions-interfaces.json +++ /dev/null @@ -1,92 +0,0 @@ -[ - { - "name": "function", - "access": "public", - "args": [], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "test-no-trait", - "access": "public", - "args": [], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "test-trait", - "access": "public", - "args": [ - { - "name": "a", - "type": "uint128" - }, - { - "name": "b", - "type": "int128" - }, - { - "name": "c", - "type": "bool" - }, - { - "name": "d", - "type": { - "string-ascii": { - "length": 10 - } - } - }, - { - "name": "e", - "type": "trait_reference" - } - ], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "update-context", - "access": "public", - "args": [ - { - "name": "function-name", - "type": { - "string-ascii": { - "length": 100 - } - } - }, - { - "name": "called", - "type": "uint128" - } - ], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - } -] \ No newline at end of file diff --git a/fixtures/direct-trait-ast.json b/fixtures/direct-trait-ast.json deleted file mode 100644 index f5ba736b..00000000 --- a/fixtures/direct-trait-ast.json +++ /dev/null @@ -1,886 +0,0 @@ -{ - "contract_identifier": { - "issuer": [ - 26, - [ - 109, 120, 222, 123, 6, 37, 223, 191, 193, 108, 58, 138, 87, 53, 246, - 220, 61, 195, 242, 206 - ] - ], - "name": "trait" - }, - "pre_expressions": [], - "expressions": [ - { - "expr": { - "List": [ - { - "expr": { - "Atom": "use-trait" - }, - "id": 2, - "span": { - "start_line": 1, - "start_column": 2, - "end_line": 1, - "end_column": 10 - } - }, - { - "expr": { - "Atom": "ft-trait" - }, - "id": 3, - "span": { - "start_line": 1, - "start_column": 12, - "end_line": 1, - "end_column": 19 - } - }, - { - "expr": { - "Field": { - "name": "sip-010-trait", - "contract_identifier": { - "issuer": [ - 22, - [ - 9, 159, 184, 137, 38, 216, 47, 48, 178, 244, 14, 175, 62, - 228, 35, 203, 114, 91, 219, 59 - ] - ], - "name": "sip-010-trait-ft-standard" - } - } - }, - "id": 4, - "span": { - "start_line": 1, - "start_column": 21, - "end_line": 1, - "end_column": 101 - } - } - ] - }, - "id": 1, - "span": { - "start_line": 1, - "start_column": 1, - "end_line": 1, - "end_column": 102 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 6, - "span": { - "start_line": 3, - "start_column": 2, - "end_line": 3, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "trait-transfer-function" - }, - "id": 8, - "span": { - "start_line": 3, - "start_column": 17, - "end_line": 3, - "end_column": 39 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "token" - }, - "id": 10, - "span": { - "start_line": 3, - "start_column": 42, - "end_line": 3, - "end_column": 46 - } - }, - { - "expr": { - "TraitReference": [ - "ft-trait", - { - "Imported": { - "name": "sip-010-trait", - "contract_identifier": { - "issuer": [ - 22, - [ - 9, 159, 184, 137, 38, 216, 47, 48, 178, - 244, 14, 175, 62, 228, 35, 203, 114, 91, - 219, 59 - ] - ], - "name": "sip-010-trait-ft-standard" - } - } - } - ] - }, - "id": 11, - "span": { - "start_line": 3, - "start_column": 48, - "end_line": 3, - "end_column": 57 - } - } - ] - }, - "id": 9, - "span": { - "start_line": 3, - "start_column": 41, - "end_line": 3, - "end_column": 58 - } - } - ] - }, - "id": 7, - "span": { - "start_line": 3, - "start_column": 16, - "end_line": 3, - "end_column": 59 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 13, - "span": { - "start_line": 4, - "start_column": 4, - "end_line": 4, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 14, - "span": { - "start_line": 4, - "start_column": 7, - "end_line": 4, - "end_column": 10 - } - } - ] - }, - "id": 12, - "span": { - "start_line": 4, - "start_column": 3, - "end_line": 4, - "end_column": 11 - } - } - ] - }, - "id": 5, - "span": { - "start_line": 3, - "start_column": 1, - "end_line": 5, - "end_column": 1 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-map" - }, - "id": 16, - "span": { - "start_line": 8, - "start_column": 2, - "end_line": 8, - "end_column": 11 - } - }, - { - "expr": { - "Atom": "context" - }, - "id": 17, - "span": { - "start_line": 8, - "start_column": 13, - "end_line": 8, - "end_column": 19 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "string-ascii" - }, - "id": 19, - "span": { - "start_line": 8, - "start_column": 22, - "end_line": 8, - "end_column": 33 - } - }, - { - "expr": { - "LiteralValue": { - "Int": "100" - } - }, - "id": 20, - "span": { - "start_line": 8, - "start_column": 35, - "end_line": 8, - "end_column": 37 - } - } - ] - }, - "id": 18, - "span": { - "start_line": 8, - "start_column": 21, - "end_line": 8, - "end_column": 38 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "tuple" - }, - "id": 22, - "span": { - "start_line": 0, - "start_column": 0, - "end_line": 0, - "end_column": 0 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 24, - "span": { - "start_line": 9, - "start_column": 5, - "end_line": 9, - "end_column": 10 - } - }, - { - "expr": { - "Atom": "uint" - }, - "id": 25, - "span": { - "start_line": 9, - "start_column": 13, - "end_line": 9, - "end_column": 16 - }, - "post_comments": [ - [ - "other data", - { - "start_line": 10, - "start_column": 5, - "end_line": 10, - "end_column": 17 - } - ] - ] - } - ] - }, - "id": 23, - "span": { - "start_line": 9, - "start_column": 5, - "end_line": 9, - "end_column": 16 - } - } - ] - }, - "id": 21, - "span": { - "start_line": 8, - "start_column": 40, - "end_line": 11, - "end_column": 3 - } - } - ] - }, - "id": 15, - "span": { - "start_line": 8, - "start_column": 1, - "end_line": 11, - "end_column": 4 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 27, - "span": { - "start_line": 13, - "start_column": 4, - "end_line": 13, - "end_column": 16 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "update-context" - }, - "id": 29, - "span": { - "start_line": 13, - "start_column": 19, - "end_line": 13, - "end_column": 32 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "function-name" - }, - "id": 31, - "span": { - "start_line": 13, - "start_column": 35, - "end_line": 13, - "end_column": 47 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "string-ascii" - }, - "id": 33, - "span": { - "start_line": 13, - "start_column": 50, - "end_line": 13, - "end_column": 61 - } - }, - { - "expr": { - "LiteralValue": { - "Int": "100" - } - }, - "id": 34, - "span": { - "start_line": 13, - "start_column": 63, - "end_line": 13, - "end_column": 65 - } - } - ] - }, - "id": 32, - "span": { - "start_line": 13, - "start_column": 49, - "end_line": 13, - "end_column": 66 - } - } - ] - }, - "id": 30, - "span": { - "start_line": 13, - "start_column": 34, - "end_line": 13, - "end_column": 67 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 36, - "span": { - "start_line": 13, - "start_column": 70, - "end_line": 13, - "end_column": 75 - } - }, - { - "expr": { - "Atom": "uint" - }, - "id": 37, - "span": { - "start_line": 13, - "start_column": 77, - "end_line": 13, - "end_column": 80 - } - } - ] - }, - "id": 35, - "span": { - "start_line": 13, - "start_column": 69, - "end_line": 13, - "end_column": 81 - } - } - ] - }, - "id": 28, - "span": { - "start_line": 13, - "start_column": 18, - "end_line": 13, - "end_column": 82 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 39, - "span": { - "start_line": 14, - "start_column": 6, - "end_line": 14, - "end_column": 7 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "map-set" - }, - "id": 41, - "span": { - "start_line": 14, - "start_column": 10, - "end_line": 14, - "end_column": 16 - } - }, - { - "expr": { - "Atom": "context" - }, - "id": 42, - "span": { - "start_line": 14, - "start_column": 18, - "end_line": 14, - "end_column": 24 - } - }, - { - "expr": { - "Atom": "function-name" - }, - "id": 43, - "span": { - "start_line": 14, - "start_column": 26, - "end_line": 14, - "end_column": 38 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "tuple" - }, - "id": 45, - "span": { - "start_line": 0, - "start_column": 0, - "end_line": 0, - "end_column": 0 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 47, - "span": { - "start_line": 14, - "start_column": 41, - "end_line": 14, - "end_column": 46 - } - }, - { - "expr": { - "Atom": "called" - }, - "id": 48, - "span": { - "start_line": 14, - "start_column": 49, - "end_line": 14, - "end_column": 54 - } - } - ] - }, - "id": 46, - "span": { - "start_line": 14, - "start_column": 41, - "end_line": 14, - "end_column": 54 - } - } - ] - }, - "id": 44, - "span": { - "start_line": 14, - "start_column": 40, - "end_line": 14, - "end_column": 55 - } - } - ] - }, - "id": 40, - "span": { - "start_line": 14, - "start_column": 9, - "end_line": 14, - "end_column": 56 - } - } - ] - }, - "id": 38, - "span": { - "start_line": 14, - "start_column": 5, - "end_line": 14, - "end_column": 57 - } - } - ] - }, - "id": 26, - "span": { - "start_line": 13, - "start_column": 3, - "end_line": 14, - "end_column": 58 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 50, - "span": { - "start_line": 16, - "start_column": 2, - "end_line": 16, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "test-no-trait" - }, - "id": 52, - "span": { - "start_line": 16, - "start_column": 17, - "end_line": 16, - "end_column": 29 - } - } - ] - }, - "id": 51, - "span": { - "start_line": 16, - "start_column": 16, - "end_line": 16, - "end_column": 30 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 54, - "span": { - "start_line": 17, - "start_column": 4, - "end_line": 17, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 55, - "span": { - "start_line": 17, - "start_column": 7, - "end_line": 17, - "end_column": 10 - } - } - ] - }, - "id": 53, - "span": { - "start_line": 17, - "start_column": 3, - "end_line": 17, - "end_column": 11 - } - } - ] - }, - "id": 49, - "span": { - "start_line": 16, - "start_column": 1, - "end_line": 18, - "end_column": 1 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 57, - "span": { - "start_line": 20, - "start_column": 2, - "end_line": 20, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "test-trait" - }, - "id": 59, - "span": { - "start_line": 20, - "start_column": 17, - "end_line": 20, - "end_column": 26 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "token" - }, - "id": 61, - "span": { - "start_line": 20, - "start_column": 29, - "end_line": 20, - "end_column": 33 - } - }, - { - "expr": { - "TraitReference": [ - "ft-trait", - { - "Imported": { - "name": "sip-010-trait", - "contract_identifier": { - "issuer": [ - 22, - [ - 9, 159, 184, 137, 38, 216, 47, 48, 178, - 244, 14, 175, 62, 228, 35, 203, 114, 91, - 219, 59 - ] - ], - "name": "sip-010-trait-ft-standard" - } - } - } - ] - }, - "id": 62, - "span": { - "start_line": 20, - "start_column": 35, - "end_line": 20, - "end_column": 44 - } - } - ] - }, - "id": 60, - "span": { - "start_line": 20, - "start_column": 28, - "end_line": 20, - "end_column": 45 - } - } - ] - }, - "id": 58, - "span": { - "start_line": 20, - "start_column": 16, - "end_line": 20, - "end_column": 46 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 64, - "span": { - "start_line": 21, - "start_column": 4, - "end_line": 21, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 65, - "span": { - "start_line": 21, - "start_column": 7, - "end_line": 21, - "end_column": 10 - } - } - ] - }, - "id": 63, - "span": { - "start_line": 21, - "start_column": 3, - "end_line": 21, - "end_column": 11 - } - } - ] - }, - "id": 56, - "span": { - "start_line": 20, - "start_column": 1, - "end_line": 22, - "end_column": 1 - } - } - ], - "top_level_expression_sorting": [0, 1, 2, 3, 4, 5], - "referenced_traits": {}, - "implemented_traits": [] -} diff --git a/fixtures/direct-trait-functions-interfaces.json b/fixtures/direct-trait-functions-interfaces.json deleted file mode 100644 index ab251f3a..00000000 --- a/fixtures/direct-trait-functions-interfaces.json +++ /dev/null @@ -1,72 +0,0 @@ -[ - { - "name": "function", - "access": "public", - "args": [], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "test-no-trait", - "access": "public", - "args": [], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "test-trait", - "access": "public", - "args": [ - { - "name": "token", - "type": "trait_reference" - } - ], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "update-context", - "access": "public", - "args": [ - { - "name": "function-name", - "type": { - "string-ascii": { - "length": 100 - } - } - }, - { - "name": "called", - "type": "uint128" - } - ], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - } -] diff --git a/fixtures/list-trait-parameter-ast.json b/fixtures/list-trait-parameter-ast.json deleted file mode 100644 index d443615d..00000000 --- a/fixtures/list-trait-parameter-ast.json +++ /dev/null @@ -1,930 +0,0 @@ -{ - "contract_identifier": { - "issuer": [ - 26, - [ - 109, - 120, - 222, - 123, - 6, - 37, - 223, - 191, - 193, - 108, - 58, - 138, - 87, - 53, - 246, - 220, - 61, - 195, - 242, - 206 - ] - ], - "name": "trait" - }, - "pre_expressions": [], - "expressions": [ - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 2, - "span": { - "start_line": 1, - "start_column": 2, - "end_line": 1, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "function" - }, - "id": 4, - "span": { - "start_line": 1, - "start_column": 17, - "end_line": 1, - "end_column": 24 - } - } - ] - }, - "id": 3, - "span": { - "start_line": 1, - "start_column": 16, - "end_line": 1, - "end_column": 25 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 6, - "span": { - "start_line": 2, - "start_column": 4, - "end_line": 2, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 7, - "span": { - "start_line": 2, - "start_column": 7, - "end_line": 2, - "end_column": 10 - } - } - ] - }, - "id": 5, - "span": { - "start_line": 2, - "start_column": 3, - "end_line": 2, - "end_column": 11 - } - } - ] - }, - "id": 1, - "span": { - "start_line": 1, - "start_column": 1, - "end_line": 3, - "end_column": 1 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-map" - }, - "id": 9, - "span": { - "start_line": 6, - "start_column": 2, - "end_line": 6, - "end_column": 11 - } - }, - { - "expr": { - "Atom": "context" - }, - "id": 10, - "span": { - "start_line": 6, - "start_column": 13, - "end_line": 6, - "end_column": 19 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "string-ascii" - }, - "id": 12, - "span": { - "start_line": 6, - "start_column": 22, - "end_line": 6, - "end_column": 33 - } - }, - { - "expr": { - "LiteralValue": { - "Int": "100" - } - }, - "id": 13, - "span": { - "start_line": 6, - "start_column": 35, - "end_line": 6, - "end_column": 37 - } - } - ] - }, - "id": 11, - "span": { - "start_line": 6, - "start_column": 21, - "end_line": 6, - "end_column": 38 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "tuple" - }, - "id": 15, - "span": { - "start_line": 0, - "start_column": 0, - "end_line": 0, - "end_column": 0 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 17, - "span": { - "start_line": 7, - "start_column": 5, - "end_line": 7, - "end_column": 10 - } - }, - { - "expr": { - "Atom": "uint" - }, - "id": 18, - "span": { - "start_line": 7, - "start_column": 13, - "end_line": 7, - "end_column": 16 - }, - "post_comments": [ - [ - "other data", - { - "start_line": 8, - "start_column": 5, - "end_line": 8, - "end_column": 17 - } - ] - ] - } - ] - }, - "id": 16, - "span": { - "start_line": 7, - "start_column": 5, - "end_line": 7, - "end_column": 16 - } - } - ] - }, - "id": 14, - "span": { - "start_line": 6, - "start_column": 40, - "end_line": 9, - "end_column": 3 - } - } - ] - }, - "id": 8, - "span": { - "start_line": 6, - "start_column": 1, - "end_line": 9, - "end_column": 4 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 20, - "span": { - "start_line": 11, - "start_column": 4, - "end_line": 11, - "end_column": 16 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "update-context" - }, - "id": 22, - "span": { - "start_line": 11, - "start_column": 19, - "end_line": 11, - "end_column": 32 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "function-name" - }, - "id": 24, - "span": { - "start_line": 11, - "start_column": 35, - "end_line": 11, - "end_column": 47 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "string-ascii" - }, - "id": 26, - "span": { - "start_line": 11, - "start_column": 50, - "end_line": 11, - "end_column": 61 - } - }, - { - "expr": { - "LiteralValue": { - "Int": "100" - } - }, - "id": 27, - "span": { - "start_line": 11, - "start_column": 63, - "end_line": 11, - "end_column": 65 - } - } - ] - }, - "id": 25, - "span": { - "start_line": 11, - "start_column": 49, - "end_line": 11, - "end_column": 66 - } - } - ] - }, - "id": 23, - "span": { - "start_line": 11, - "start_column": 34, - "end_line": 11, - "end_column": 67 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 29, - "span": { - "start_line": 11, - "start_column": 70, - "end_line": 11, - "end_column": 75 - } - }, - { - "expr": { - "Atom": "uint" - }, - "id": 30, - "span": { - "start_line": 11, - "start_column": 77, - "end_line": 11, - "end_column": 80 - } - } - ] - }, - "id": 28, - "span": { - "start_line": 11, - "start_column": 69, - "end_line": 11, - "end_column": 81 - } - } - ] - }, - "id": 21, - "span": { - "start_line": 11, - "start_column": 18, - "end_line": 11, - "end_column": 82 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 32, - "span": { - "start_line": 12, - "start_column": 6, - "end_line": 12, - "end_column": 7 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "map-set" - }, - "id": 34, - "span": { - "start_line": 12, - "start_column": 10, - "end_line": 12, - "end_column": 16 - } - }, - { - "expr": { - "Atom": "context" - }, - "id": 35, - "span": { - "start_line": 12, - "start_column": 18, - "end_line": 12, - "end_column": 24 - } - }, - { - "expr": { - "Atom": "function-name" - }, - "id": 36, - "span": { - "start_line": 12, - "start_column": 26, - "end_line": 12, - "end_column": 38 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "tuple" - }, - "id": 38, - "span": { - "start_line": 0, - "start_column": 0, - "end_line": 0, - "end_column": 0 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 40, - "span": { - "start_line": 12, - "start_column": 41, - "end_line": 12, - "end_column": 46 - } - }, - { - "expr": { - "Atom": "called" - }, - "id": 41, - "span": { - "start_line": 12, - "start_column": 49, - "end_line": 12, - "end_column": 54 - } - } - ] - }, - "id": 39, - "span": { - "start_line": 12, - "start_column": 41, - "end_line": 12, - "end_column": 54 - } - } - ] - }, - "id": 37, - "span": { - "start_line": 12, - "start_column": 40, - "end_line": 12, - "end_column": 55 - } - } - ] - }, - "id": 33, - "span": { - "start_line": 12, - "start_column": 9, - "end_line": 12, - "end_column": 56 - } - } - ] - }, - "id": 31, - "span": { - "start_line": 12, - "start_column": 5, - "end_line": 12, - "end_column": 57 - } - } - ] - }, - "id": 19, - "span": { - "start_line": 11, - "start_column": 3, - "end_line": 12, - "end_column": 58 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "use-trait" - }, - "id": 43, - "span": { - "start_line": 14, - "start_column": 2, - "end_line": 14, - "end_column": 10 - } - }, - { - "expr": { - "Atom": "ft-trait" - }, - "id": 44, - "span": { - "start_line": 14, - "start_column": 12, - "end_line": 14, - "end_column": 19 - } - }, - { - "expr": { - "Field": { - "name": "sip-010-trait", - "contract_identifier": { - "issuer": [ - 22, - [ - 9, - 159, - 184, - 137, - 38, - 216, - 47, - 48, - 178, - 244, - 14, - 175, - 62, - 228, - 35, - 203, - 114, - 91, - 219, - 59 - ] - ], - "name": "sip-010-trait-ft-standard" - } - } - }, - "id": 45, - "span": { - "start_line": 14, - "start_column": 21, - "end_line": 14, - "end_column": 101 - } - } - ] - }, - "id": 42, - "span": { - "start_line": 14, - "start_column": 1, - "end_line": 14, - "end_column": 102 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 47, - "span": { - "start_line": 16, - "start_column": 2, - "end_line": 16, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "test-no-trait" - }, - "id": 49, - "span": { - "start_line": 16, - "start_column": 17, - "end_line": 16, - "end_column": 29 - } - } - ] - }, - "id": 48, - "span": { - "start_line": 16, - "start_column": 16, - "end_line": 16, - "end_column": 30 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 51, - "span": { - "start_line": 17, - "start_column": 4, - "end_line": 17, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 52, - "span": { - "start_line": 17, - "start_column": 7, - "end_line": 17, - "end_column": 10 - } - } - ] - }, - "id": 50, - "span": { - "start_line": 17, - "start_column": 3, - "end_line": 17, - "end_column": 11 - } - } - ] - }, - "id": 46, - "span": { - "start_line": 16, - "start_column": 1, - "end_line": 18, - "end_column": 1 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 54, - "span": { - "start_line": 20, - "start_column": 2, - "end_line": 20, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "test-trait" - }, - "id": 56, - "span": { - "start_line": 20, - "start_column": 17, - "end_line": 20, - "end_column": 26 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "token-list" - }, - "id": 58, - "span": { - "start_line": 20, - "start_column": 29, - "end_line": 20, - "end_column": 38 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "list" - }, - "id": 60, - "span": { - "start_line": 20, - "start_column": 41, - "end_line": 20, - "end_column": 44 - } - }, - { - "expr": { - "LiteralValue": { - "Int": "5" - } - }, - "id": 61, - "span": { - "start_line": 20, - "start_column": 46, - "end_line": 20, - "end_column": 46 - } - }, - { - "expr": { - "TraitReference": [ - "ft-trait", - { - "Imported": { - "name": "sip-010-trait", - "contract_identifier": { - "issuer": [ - 22, - [ - 9, - 159, - 184, - 137, - 38, - 216, - 47, - 48, - 178, - 244, - 14, - 175, - 62, - 228, - 35, - 203, - 114, - 91, - 219, - 59 - ] - ], - "name": "sip-010-trait-ft-standard" - } - } - } - ] - }, - "id": 62, - "span": { - "start_line": 20, - "start_column": 48, - "end_line": 20, - "end_column": 57 - } - } - ] - }, - "id": 59, - "span": { - "start_line": 20, - "start_column": 40, - "end_line": 20, - "end_column": 58 - } - } - ] - }, - "id": 57, - "span": { - "start_line": 20, - "start_column": 28, - "end_line": 20, - "end_column": 59 - } - } - ] - }, - "id": 55, - "span": { - "start_line": 20, - "start_column": 16, - "end_line": 20, - "end_column": 60 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 64, - "span": { - "start_line": 21, - "start_column": 4, - "end_line": 21, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 65, - "span": { - "start_line": 21, - "start_column": 7, - "end_line": 21, - "end_column": 10 - } - } - ] - }, - "id": 63, - "span": { - "start_line": 21, - "start_column": 3, - "end_line": 21, - "end_column": 11 - } - } - ] - }, - "id": 53, - "span": { - "start_line": 20, - "start_column": 1, - "end_line": 22, - "end_column": 1 - } - } - ], - "top_level_expression_sorting": [ - 0, - 1, - 2, - 3, - 4, - 5 - ], - "referenced_traits": {}, - "implemented_traits": [] -} \ No newline at end of file diff --git a/fixtures/list-trait-parameter-functions-interfaces.json b/fixtures/list-trait-parameter-functions-interfaces.json deleted file mode 100644 index b89db878..00000000 --- a/fixtures/list-trait-parameter-functions-interfaces.json +++ /dev/null @@ -1,77 +0,0 @@ -[ - { - "name": "function", - "access": "public", - "args": [], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "test-no-trait", - "access": "public", - "args": [], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "test-trait", - "access": "public", - "args": [ - { - "name": "token-list", - "type": { - "list": { - "type": "trait_reference", - "length": 5 - } - } - } - ], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "update-context", - "access": "public", - "args": [ - { - "name": "function-name", - "type": { - "string-ascii": { - "length": 100 - } - } - }, - { - "name": "called", - "type": "uint128" - } - ], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - } -] \ No newline at end of file diff --git a/fixtures/tuple-trait-1st-parameter-ast.json b/fixtures/tuple-trait-1st-parameter-ast.json deleted file mode 100644 index 75e9048c..00000000 --- a/fixtures/tuple-trait-1st-parameter-ast.json +++ /dev/null @@ -1,881 +0,0 @@ -{ - "contract_identifier": { - "issuer": [ - 26, - [ - 109, 120, 222, 123, 6, 37, 223, 191, 193, 108, 58, 138, 87, 53, 246, - 220, 61, 195, 242, 206 - ] - ], - "name": "trait" - }, - "pre_expressions": [], - "expressions": [ - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 2, - "span": { - "start_line": 1, - "start_column": 2, - "end_line": 1, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "function" - }, - "id": 4, - "span": { - "start_line": 1, - "start_column": 17, - "end_line": 1, - "end_column": 24 - } - } - ] - }, - "id": 3, - "span": { - "start_line": 1, - "start_column": 16, - "end_line": 1, - "end_column": 25 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 6, - "span": { - "start_line": 2, - "start_column": 4, - "end_line": 2, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 7, - "span": { - "start_line": 2, - "start_column": 7, - "end_line": 2, - "end_column": 10 - } - } - ] - }, - "id": 5, - "span": { - "start_line": 2, - "start_column": 3, - "end_line": 2, - "end_column": 11 - } - } - ] - }, - "id": 1, - "span": { - "start_line": 1, - "start_column": 1, - "end_line": 3, - "end_column": 1 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-map" - }, - "id": 9, - "span": { - "start_line": 6, - "start_column": 2, - "end_line": 6, - "end_column": 11 - } - }, - { - "expr": { - "Atom": "context" - }, - "id": 10, - "span": { - "start_line": 6, - "start_column": 13, - "end_line": 6, - "end_column": 19 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "string-ascii" - }, - "id": 12, - "span": { - "start_line": 6, - "start_column": 22, - "end_line": 6, - "end_column": 33 - } - }, - { - "expr": { - "LiteralValue": { - "Int": "100" - } - }, - "id": 13, - "span": { - "start_line": 6, - "start_column": 35, - "end_line": 6, - "end_column": 37 - } - } - ] - }, - "id": 11, - "span": { - "start_line": 6, - "start_column": 21, - "end_line": 6, - "end_column": 38 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "tuple" - }, - "id": 15, - "span": { - "start_line": 0, - "start_column": 0, - "end_line": 0, - "end_column": 0 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 17, - "span": { - "start_line": 7, - "start_column": 5, - "end_line": 7, - "end_column": 10 - } - }, - { - "expr": { - "Atom": "uint" - }, - "id": 18, - "span": { - "start_line": 7, - "start_column": 13, - "end_line": 7, - "end_column": 16 - }, - "post_comments": [ - [ - "other data", - { - "start_line": 8, - "start_column": 5, - "end_line": 8, - "end_column": 17 - } - ] - ] - } - ] - }, - "id": 16, - "span": { - "start_line": 7, - "start_column": 5, - "end_line": 7, - "end_column": 16 - } - } - ] - }, - "id": 14, - "span": { - "start_line": 6, - "start_column": 40, - "end_line": 9, - "end_column": 3 - } - } - ] - }, - "id": 8, - "span": { - "start_line": 6, - "start_column": 1, - "end_line": 9, - "end_column": 4 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 20, - "span": { - "start_line": 11, - "start_column": 4, - "end_line": 11, - "end_column": 16 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "update-context" - }, - "id": 22, - "span": { - "start_line": 11, - "start_column": 19, - "end_line": 11, - "end_column": 32 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "function-name" - }, - "id": 24, - "span": { - "start_line": 11, - "start_column": 35, - "end_line": 11, - "end_column": 47 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "string-ascii" - }, - "id": 26, - "span": { - "start_line": 11, - "start_column": 50, - "end_line": 11, - "end_column": 61 - } - }, - { - "expr": { - "LiteralValue": { - "Int": "100" - } - }, - "id": 27, - "span": { - "start_line": 11, - "start_column": 63, - "end_line": 11, - "end_column": 65 - } - } - ] - }, - "id": 25, - "span": { - "start_line": 11, - "start_column": 49, - "end_line": 11, - "end_column": 66 - } - } - ] - }, - "id": 23, - "span": { - "start_line": 11, - "start_column": 34, - "end_line": 11, - "end_column": 67 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 29, - "span": { - "start_line": 11, - "start_column": 70, - "end_line": 11, - "end_column": 75 - } - }, - { - "expr": { - "Atom": "uint" - }, - "id": 30, - "span": { - "start_line": 11, - "start_column": 77, - "end_line": 11, - "end_column": 80 - } - } - ] - }, - "id": 28, - "span": { - "start_line": 11, - "start_column": 69, - "end_line": 11, - "end_column": 81 - } - } - ] - }, - "id": 21, - "span": { - "start_line": 11, - "start_column": 18, - "end_line": 11, - "end_column": 82 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 32, - "span": { - "start_line": 12, - "start_column": 6, - "end_line": 12, - "end_column": 7 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "map-set" - }, - "id": 34, - "span": { - "start_line": 12, - "start_column": 10, - "end_line": 12, - "end_column": 16 - } - }, - { - "expr": { - "Atom": "context" - }, - "id": 35, - "span": { - "start_line": 12, - "start_column": 18, - "end_line": 12, - "end_column": 24 - } - }, - { - "expr": { - "Atom": "function-name" - }, - "id": 36, - "span": { - "start_line": 12, - "start_column": 26, - "end_line": 12, - "end_column": 38 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "tuple" - }, - "id": 38, - "span": { - "start_line": 0, - "start_column": 0, - "end_line": 0, - "end_column": 0 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "called" - }, - "id": 40, - "span": { - "start_line": 12, - "start_column": 41, - "end_line": 12, - "end_column": 46 - } - }, - { - "expr": { - "Atom": "called" - }, - "id": 41, - "span": { - "start_line": 12, - "start_column": 49, - "end_line": 12, - "end_column": 54 - } - } - ] - }, - "id": 39, - "span": { - "start_line": 12, - "start_column": 41, - "end_line": 12, - "end_column": 54 - } - } - ] - }, - "id": 37, - "span": { - "start_line": 12, - "start_column": 40, - "end_line": 12, - "end_column": 55 - } - } - ] - }, - "id": 33, - "span": { - "start_line": 12, - "start_column": 9, - "end_line": 12, - "end_column": 56 - } - } - ] - }, - "id": 31, - "span": { - "start_line": 12, - "start_column": 5, - "end_line": 12, - "end_column": 57 - } - } - ] - }, - "id": 19, - "span": { - "start_line": 11, - "start_column": 3, - "end_line": 12, - "end_column": 58 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "use-trait" - }, - "id": 43, - "span": { - "start_line": 14, - "start_column": 2, - "end_line": 14, - "end_column": 10 - } - }, - { - "expr": { - "Atom": "ft-trait" - }, - "id": 44, - "span": { - "start_line": 14, - "start_column": 12, - "end_line": 14, - "end_column": 19 - } - }, - { - "expr": { - "Field": { - "name": "sip-010-trait", - "contract_identifier": { - "issuer": [ - 22, - [ - 9, 159, 184, 137, 38, 216, 47, 48, 178, 244, 14, 175, 62, - 228, 35, 203, 114, 91, 219, 59 - ] - ], - "name": "sip-010-trait-ft-standard" - } - } - }, - "id": 45, - "span": { - "start_line": 14, - "start_column": 21, - "end_line": 14, - "end_column": 101 - } - } - ] - }, - "id": 42, - "span": { - "start_line": 14, - "start_column": 1, - "end_line": 14, - "end_column": 102 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 47, - "span": { - "start_line": 16, - "start_column": 2, - "end_line": 16, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "test-no-trait" - }, - "id": 49, - "span": { - "start_line": 16, - "start_column": 17, - "end_line": 16, - "end_column": 29 - } - } - ] - }, - "id": 48, - "span": { - "start_line": 16, - "start_column": 16, - "end_line": 16, - "end_column": 30 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 51, - "span": { - "start_line": 17, - "start_column": 4, - "end_line": 17, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 52, - "span": { - "start_line": 17, - "start_column": 7, - "end_line": 17, - "end_column": 10 - } - } - ] - }, - "id": 50, - "span": { - "start_line": 17, - "start_column": 3, - "end_line": 17, - "end_column": 11 - } - } - ] - }, - "id": 46, - "span": { - "start_line": 16, - "start_column": 1, - "end_line": 18, - "end_column": 1 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "define-public" - }, - "id": 54, - "span": { - "start_line": 20, - "start_column": 2, - "end_line": 20, - "end_column": 14 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "test-trait" - }, - "id": 56, - "span": { - "start_line": 20, - "start_column": 17, - "end_line": 20, - "end_column": 26 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "tuple-param" - }, - "id": 58, - "span": { - "start_line": 20, - "start_column": 29, - "end_line": 20, - "end_column": 39 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "tuple" - }, - "id": 60, - "span": { - "start_line": 0, - "start_column": 0, - "end_line": 0, - "end_column": 0 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "token" - }, - "id": 62, - "span": { - "start_line": 20, - "start_column": 42, - "end_line": 20, - "end_column": 46 - } - }, - { - "expr": { - "TraitReference": [ - "ft-trait", - { - "Imported": { - "name": "sip-010-trait", - "contract_identifier": { - "issuer": [ - 22, - [ - 9, 159, 184, 137, 38, 216, 47, - 48, 178, 244, 14, 175, 62, - 228, 35, 203, 114, 91, 219, 59 - ] - ], - "name": "sip-010-trait-ft-standard" - } - } - } - ] - }, - "id": 63, - "span": { - "start_line": 20, - "start_column": 49, - "end_line": 20, - "end_column": 58 - } - } - ] - }, - "id": 61, - "span": { - "start_line": 20, - "start_column": 42, - "end_line": 20, - "end_column": 58 - } - } - ] - }, - "id": 59, - "span": { - "start_line": 20, - "start_column": 41, - "end_line": 20, - "end_column": 59 - } - } - ] - }, - "id": 57, - "span": { - "start_line": 20, - "start_column": 28, - "end_line": 20, - "end_column": 60 - } - } - ] - }, - "id": 55, - "span": { - "start_line": 20, - "start_column": 16, - "end_line": 20, - "end_column": 61 - } - }, - { - "expr": { - "List": [ - { - "expr": { - "Atom": "ok" - }, - "id": 65, - "span": { - "start_line": 21, - "start_column": 4, - "end_line": 21, - "end_column": 5 - } - }, - { - "expr": { - "Atom": "true" - }, - "id": 66, - "span": { - "start_line": 21, - "start_column": 7, - "end_line": 21, - "end_column": 10 - } - } - ] - }, - "id": 64, - "span": { - "start_line": 21, - "start_column": 3, - "end_line": 21, - "end_column": 11 - } - } - ] - }, - "id": 53, - "span": { - "start_line": 20, - "start_column": 1, - "end_line": 22, - "end_column": 1 - } - } - ], - "top_level_expression_sorting": [0, 1, 2, 3, 4, 5], - "referenced_traits": {}, - "implemented_traits": [] -} diff --git a/fixtures/tuple-trait-1st-parameter-functions-interfaces.json b/fixtures/tuple-trait-1st-parameter-functions-interfaces.json deleted file mode 100644 index ba818d7a..00000000 --- a/fixtures/tuple-trait-1st-parameter-functions-interfaces.json +++ /dev/null @@ -1,79 +0,0 @@ -[ - { - "name": "function", - "access": "public", - "args": [], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "test-no-trait", - "access": "public", - "args": [], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "test-trait", - "access": "public", - "args": [ - { - "name": "tuple-param", - "type": { - "tuple": [ - { - "name": "token", - "type": "trait_reference" - } - ] - } - } - ], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - }, - { - "name": "update-context", - "access": "public", - "args": [ - { - "name": "function-name", - "type": { - "string-ascii": { - "length": 100 - } - } - }, - { - "name": "called", - "type": "uint128" - } - ], - "outputs": { - "type": { - "response": { - "ok": "bool", - "error": "none" - } - } - } - } -] diff --git a/traits.tests.ts b/traits.tests.ts index 1e71b551..e402984b 100644 --- a/traits.tests.ts +++ b/traits.tests.ts @@ -1,4 +1,7 @@ -import { ContractInterfaceFunction } from "@hirosystems/clarinet-sdk-wasm"; +import { + ContractInterfaceFunction, + IContractAST, +} from "@hirosystems/clarinet-sdk-wasm"; import { initSimnet } from "@hirosystems/clarinet-sdk"; import { readFileSync } from "fs"; import { resolve } from "path"; @@ -12,9 +15,8 @@ import { describe("Trait reference processing", () => { it("correctly builds the trait reference map for a direct trait that is the first parameter", () => { // Arrange - const allFunctionsInterfaces = JSON.parse( - readFileSync("./fixtures/direct-trait-functions-interfaces.json", "utf-8") - ); + const allFunctionsInterfaces = testInputs.directTrait1stParameter + .functionsInterfaces as ContractInterfaceFunction[]; const expectedTraitReferenceMap = new Map( Object.entries({ @@ -31,12 +33,8 @@ describe("Trait reference processing", () => { it("correctly builds the trait reference map for a direct trait that is the second parameter", () => { // Arrange - const allFunctionsInterfaces = JSON.parse( - readFileSync( - "./fixtures/direct-trait-2nd-parameter-functions-interfaces.json", - "utf-8" - ) - ); + const allFunctionsInterfaces = testInputs.directTrait2ndParameter + .functionsInterfaces as ContractInterfaceFunction[]; const expectedTraitReferenceMap = new Map( Object.entries({ @@ -53,12 +51,8 @@ describe("Trait reference processing", () => { it("correctly builds the trait reference map for a direct trait that is the fifth parameter", () => { // Arrange - const allFunctionsInterfaces = JSON.parse( - readFileSync( - "./fixtures/direct-trait-5th-parameter-functions-interfaces.json", - "utf-8" - ) - ); + const allFunctionsInterfaces = testInputs.directTrait5thParameter + .functionsInterfaces as ContractInterfaceFunction[]; const expectedTraitReferenceMap = new Map( Object.entries({ @@ -75,12 +69,8 @@ describe("Trait reference processing", () => { it("correctly builds the trait reference map for a tuple nested trait that is the first parameter", () => { // Arrange - const allFunctionsInterfaces = JSON.parse( - readFileSync( - "./fixtures/tuple-trait-1st-parameter-functions-interfaces.json", - "utf-8" - ) - ); + const allFunctionsInterfaces = testInputs.tupleTraitParameter + .functionsInterfaces as ContractInterfaceFunction[]; const expectedTraitReferenceMap = new Map( Object.entries({ @@ -99,12 +89,8 @@ describe("Trait reference processing", () => { it("correctly builds the trait reference map for a list nested trait", () => { // Arrange - const allFunctionsInterfaces = JSON.parse( - readFileSync( - "./fixtures/list-trait-parameter-functions-interfaces.json", - "utf-8" - ) - ); + const allFunctionsInterfaces = testInputs.listTraitParameter + .functionsInterfaces as ContractInterfaceFunction[]; const expectedTraitReferenceMap = new Map( Object.entries({ @@ -125,15 +111,14 @@ describe("Trait reference processing", () => { // Arrange const targetContractId = "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.trait"; - const allFunctionsInterfaces = JSON.parse( - readFileSync("./fixtures/direct-trait-functions-interfaces.json", "utf-8") + const allFunctionsInterfaces = ( + testInputs.directTrait1stParameter + .functionsInterfaces as ContractInterfaceFunction[] ).filter((f: any) => f.name !== "update-context"); const traitReferenceMap = buildTraitReferenceMap(allFunctionsInterfaces); - const ast = JSON.parse( - readFileSync("./fixtures/direct-trait-ast.json", "utf-8") - ); + const ast = testInputs.directTrait1stParameter.ast as any as IContractAST; const expected = new Map( Object.entries({ @@ -221,18 +206,14 @@ describe("Trait reference processing", () => { // Arrange const targetContractId = "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.trait"; - const allFunctionsInterfaces = JSON.parse( - readFileSync( - "./fixtures/direct-trait-2nd-parameter-functions-interfaces.json", - "utf-8" - ) + const allFunctionsInterfaces = ( + testInputs.directTrait2ndParameter + .functionsInterfaces as ContractInterfaceFunction[] ).filter((f: any) => f.name !== "update-context"); const traitReferenceMap = buildTraitReferenceMap(allFunctionsInterfaces); - const ast = JSON.parse( - readFileSync("./fixtures/direct-trait-2nd-parameter-ast.json", "utf-8") - ); + const ast = testInputs.directTrait2ndParameter.ast as any as IContractAST; const expected = new Map( Object.entries({ @@ -321,18 +302,14 @@ describe("Trait reference processing", () => { // Arrange const targetContractId = "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.trait"; - const allFunctionsInterfaces = JSON.parse( - readFileSync( - "./fixtures/direct-trait-5th-parameter-functions-interfaces.json", - "utf-8" - ) + const allFunctionsInterfaces = ( + testInputs.directTrait5thParameter + .functionsInterfaces as ContractInterfaceFunction[] ).filter((f: any) => f.name !== "update-context"); const traitReferenceMap = buildTraitReferenceMap(allFunctionsInterfaces); - const ast = JSON.parse( - readFileSync("./fixtures/direct-trait-5th-parameter-ast.json", "utf-8") - ); + const ast = testInputs.directTrait5thParameter.ast as any as IContractAST; const expected = new Map( Object.entries({ @@ -431,19 +408,14 @@ describe("Trait reference processing", () => { // Arrange const targetContractId = "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.trait"; - const allFunctionsInterfaces = JSON.parse( - readFileSync( - "./fixtures/tuple-trait-1st-parameter-functions-interfaces.json", - "utf-8" - ) + const allFunctionsInterfaces = ( + testInputs.tupleTraitParameter + .functionsInterfaces as ContractInterfaceFunction[] ).filter((f: any) => f.name !== "update-context"); const traitReferenceMap = buildTraitReferenceMap(allFunctionsInterfaces); - const ast = JSON.parse( - readFileSync("./fixtures/tuple-trait-1st-parameter-ast.json", "utf-8") - ); - + const ast = testInputs.tupleTraitParameter.ast as any as IContractAST; const expected = new Map( Object.entries({ [targetContractId]: [ @@ -537,18 +509,14 @@ describe("Trait reference processing", () => { // Arrange const targetContractId = "ST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGM.trait"; - const allFunctionsInterfaces = JSON.parse( - readFileSync( - "./fixtures/list-trait-parameter-functions-interfaces.json", - "utf-8" - ) + const allFunctionsInterfaces = ( + testInputs.listTraitParameter + .functionsInterfaces as ContractInterfaceFunction[] ).filter((f: any) => f.name !== "update-context"); const traitReferenceMap = buildTraitReferenceMap(allFunctionsInterfaces); - const ast = JSON.parse( - readFileSync("./fixtures/list-trait-parameter-ast.json", "utf-8") - ); + const ast = testInputs.listTraitParameter.ast as any as IContractAST; const expected = new Map( Object.entries({ @@ -999,3 +967,4898 @@ describe("Trait reference detection", () => { expect(result).toBe(false); }); }); + +const testInputs = { + directTrait1stParameter: { + functionsInterfaces: [ + { + name: "function", + access: "public", + args: [], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "test-no-trait", + access: "public", + args: [], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "test-trait", + access: "public", + args: [ + { + name: "token", + type: "trait_reference", + }, + ], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "update-context", + access: "public", + args: [ + { + name: "function-name", + type: { + "string-ascii": { + length: 100, + }, + }, + }, + { + name: "called", + type: "uint128", + }, + ], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + ], + ast: { + contract_identifier: { + issuer: [ + 26, + [ + 109, 120, 222, 123, 6, 37, 223, 191, 193, 108, 58, 138, 87, 53, 246, + 220, 61, 195, 242, 206, + ], + ], + name: "trait", + }, + pre_expressions: [], + expressions: [ + { + expr: { + List: [ + { + expr: { + Atom: "use-trait", + }, + id: 2, + span: { + start_line: 1, + start_column: 2, + end_line: 1, + end_column: 10, + }, + }, + { + expr: { + Atom: "ft-trait", + }, + id: 3, + span: { + start_line: 1, + start_column: 12, + end_line: 1, + end_column: 19, + }, + }, + { + expr: { + Field: { + name: "sip-010-trait", + contract_identifier: { + issuer: [ + 22, + [ + 9, 159, 184, 137, 38, 216, 47, 48, 178, 244, 14, 175, + 62, 228, 35, 203, 114, 91, 219, 59, + ], + ], + name: "sip-010-trait-ft-standard", + }, + }, + }, + id: 4, + span: { + start_line: 1, + start_column: 21, + end_line: 1, + end_column: 101, + }, + }, + ], + }, + id: 1, + span: { + start_line: 1, + start_column: 1, + end_line: 1, + end_column: 102, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 6, + span: { + start_line: 3, + start_column: 2, + end_line: 3, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "trait-transfer-function", + }, + id: 8, + span: { + start_line: 3, + start_column: 17, + end_line: 3, + end_column: 39, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "token", + }, + id: 10, + span: { + start_line: 3, + start_column: 42, + end_line: 3, + end_column: 46, + }, + }, + { + expr: { + TraitReference: [ + "ft-trait", + { + Imported: { + name: "sip-010-trait", + contract_identifier: { + issuer: [ + 22, + [ + 9, 159, 184, 137, 38, 216, 47, 48, + 178, 244, 14, 175, 62, 228, 35, 203, + 114, 91, 219, 59, + ], + ], + name: "sip-010-trait-ft-standard", + }, + }, + }, + ], + }, + id: 11, + span: { + start_line: 3, + start_column: 48, + end_line: 3, + end_column: 57, + }, + }, + ], + }, + id: 9, + span: { + start_line: 3, + start_column: 41, + end_line: 3, + end_column: 58, + }, + }, + ], + }, + id: 7, + span: { + start_line: 3, + start_column: 16, + end_line: 3, + end_column: 59, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 13, + span: { + start_line: 4, + start_column: 4, + end_line: 4, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 14, + span: { + start_line: 4, + start_column: 7, + end_line: 4, + end_column: 10, + }, + }, + ], + }, + id: 12, + span: { + start_line: 4, + start_column: 3, + end_line: 4, + end_column: 11, + }, + }, + ], + }, + id: 5, + span: { + start_line: 3, + start_column: 1, + end_line: 5, + end_column: 1, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-map", + }, + id: 16, + span: { + start_line: 8, + start_column: 2, + end_line: 8, + end_column: 11, + }, + }, + { + expr: { + Atom: "context", + }, + id: 17, + span: { + start_line: 8, + start_column: 13, + end_line: 8, + end_column: 19, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "string-ascii", + }, + id: 19, + span: { + start_line: 8, + start_column: 22, + end_line: 8, + end_column: 33, + }, + }, + { + expr: { + LiteralValue: { + Int: "100", + }, + }, + id: 20, + span: { + start_line: 8, + start_column: 35, + end_line: 8, + end_column: 37, + }, + }, + ], + }, + id: 18, + span: { + start_line: 8, + start_column: 21, + end_line: 8, + end_column: 38, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "tuple", + }, + id: 22, + span: { + start_line: 0, + start_column: 0, + end_line: 0, + end_column: 0, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 24, + span: { + start_line: 9, + start_column: 5, + end_line: 9, + end_column: 10, + }, + }, + { + expr: { + Atom: "uint", + }, + id: 25, + span: { + start_line: 9, + start_column: 13, + end_line: 9, + end_column: 16, + }, + post_comments: [ + [ + "other data", + { + start_line: 10, + start_column: 5, + end_line: 10, + end_column: 17, + }, + ], + ], + }, + ], + }, + id: 23, + span: { + start_line: 9, + start_column: 5, + end_line: 9, + end_column: 16, + }, + }, + ], + }, + id: 21, + span: { + start_line: 8, + start_column: 40, + end_line: 11, + end_column: 3, + }, + }, + ], + }, + id: 15, + span: { + start_line: 8, + start_column: 1, + end_line: 11, + end_column: 4, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 27, + span: { + start_line: 13, + start_column: 4, + end_line: 13, + end_column: 16, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "update-context", + }, + id: 29, + span: { + start_line: 13, + start_column: 19, + end_line: 13, + end_column: 32, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "function-name", + }, + id: 31, + span: { + start_line: 13, + start_column: 35, + end_line: 13, + end_column: 47, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "string-ascii", + }, + id: 33, + span: { + start_line: 13, + start_column: 50, + end_line: 13, + end_column: 61, + }, + }, + { + expr: { + LiteralValue: { + Int: "100", + }, + }, + id: 34, + span: { + start_line: 13, + start_column: 63, + end_line: 13, + end_column: 65, + }, + }, + ], + }, + id: 32, + span: { + start_line: 13, + start_column: 49, + end_line: 13, + end_column: 66, + }, + }, + ], + }, + id: 30, + span: { + start_line: 13, + start_column: 34, + end_line: 13, + end_column: 67, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 36, + span: { + start_line: 13, + start_column: 70, + end_line: 13, + end_column: 75, + }, + }, + { + expr: { + Atom: "uint", + }, + id: 37, + span: { + start_line: 13, + start_column: 77, + end_line: 13, + end_column: 80, + }, + }, + ], + }, + id: 35, + span: { + start_line: 13, + start_column: 69, + end_line: 13, + end_column: 81, + }, + }, + ], + }, + id: 28, + span: { + start_line: 13, + start_column: 18, + end_line: 13, + end_column: 82, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 39, + span: { + start_line: 14, + start_column: 6, + end_line: 14, + end_column: 7, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "map-set", + }, + id: 41, + span: { + start_line: 14, + start_column: 10, + end_line: 14, + end_column: 16, + }, + }, + { + expr: { + Atom: "context", + }, + id: 42, + span: { + start_line: 14, + start_column: 18, + end_line: 14, + end_column: 24, + }, + }, + { + expr: { + Atom: "function-name", + }, + id: 43, + span: { + start_line: 14, + start_column: 26, + end_line: 14, + end_column: 38, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "tuple", + }, + id: 45, + span: { + start_line: 0, + start_column: 0, + end_line: 0, + end_column: 0, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 47, + span: { + start_line: 14, + start_column: 41, + end_line: 14, + end_column: 46, + }, + }, + { + expr: { + Atom: "called", + }, + id: 48, + span: { + start_line: 14, + start_column: 49, + end_line: 14, + end_column: 54, + }, + }, + ], + }, + id: 46, + span: { + start_line: 14, + start_column: 41, + end_line: 14, + end_column: 54, + }, + }, + ], + }, + id: 44, + span: { + start_line: 14, + start_column: 40, + end_line: 14, + end_column: 55, + }, + }, + ], + }, + id: 40, + span: { + start_line: 14, + start_column: 9, + end_line: 14, + end_column: 56, + }, + }, + ], + }, + id: 38, + span: { + start_line: 14, + start_column: 5, + end_line: 14, + end_column: 57, + }, + }, + ], + }, + id: 26, + span: { + start_line: 13, + start_column: 3, + end_line: 14, + end_column: 58, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 50, + span: { + start_line: 16, + start_column: 2, + end_line: 16, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "test-no-trait", + }, + id: 52, + span: { + start_line: 16, + start_column: 17, + end_line: 16, + end_column: 29, + }, + }, + ], + }, + id: 51, + span: { + start_line: 16, + start_column: 16, + end_line: 16, + end_column: 30, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 54, + span: { + start_line: 17, + start_column: 4, + end_line: 17, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 55, + span: { + start_line: 17, + start_column: 7, + end_line: 17, + end_column: 10, + }, + }, + ], + }, + id: 53, + span: { + start_line: 17, + start_column: 3, + end_line: 17, + end_column: 11, + }, + }, + ], + }, + id: 49, + span: { + start_line: 16, + start_column: 1, + end_line: 18, + end_column: 1, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 57, + span: { + start_line: 20, + start_column: 2, + end_line: 20, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "test-trait", + }, + id: 59, + span: { + start_line: 20, + start_column: 17, + end_line: 20, + end_column: 26, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "token", + }, + id: 61, + span: { + start_line: 20, + start_column: 29, + end_line: 20, + end_column: 33, + }, + }, + { + expr: { + TraitReference: [ + "ft-trait", + { + Imported: { + name: "sip-010-trait", + contract_identifier: { + issuer: [ + 22, + [ + 9, 159, 184, 137, 38, 216, 47, 48, + 178, 244, 14, 175, 62, 228, 35, 203, + 114, 91, 219, 59, + ], + ], + name: "sip-010-trait-ft-standard", + }, + }, + }, + ], + }, + id: 62, + span: { + start_line: 20, + start_column: 35, + end_line: 20, + end_column: 44, + }, + }, + ], + }, + id: 60, + span: { + start_line: 20, + start_column: 28, + end_line: 20, + end_column: 45, + }, + }, + ], + }, + id: 58, + span: { + start_line: 20, + start_column: 16, + end_line: 20, + end_column: 46, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 64, + span: { + start_line: 21, + start_column: 4, + end_line: 21, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 65, + span: { + start_line: 21, + start_column: 7, + end_line: 21, + end_column: 10, + }, + }, + ], + }, + id: 63, + span: { + start_line: 21, + start_column: 3, + end_line: 21, + end_column: 11, + }, + }, + ], + }, + id: 56, + span: { + start_line: 20, + start_column: 1, + end_line: 22, + end_column: 1, + }, + }, + ], + top_level_expression_sorting: [0, 1, 2, 3, 4, 5], + referenced_traits: {}, + implemented_traits: [], + }, + }, + directTrait2ndParameter: { + functionsInterfaces: [ + { + name: "function", + access: "public", + args: [], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "test-no-trait", + access: "public", + args: [], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "test-trait", + access: "public", + args: [ + { + name: "a", + type: "uint128", + }, + { + name: "token", + type: "trait_reference", + }, + ], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + ], + ast: { + contract_identifier: { + issuer: [ + 26, + [ + 109, 120, 222, 123, 6, 37, 223, 191, 193, 108, 58, 138, 87, 53, 246, + 220, 61, 195, 242, 206, + ], + ], + name: "trait", + }, + pre_expressions: [], + expressions: [ + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 2, + span: { + start_line: 1, + start_column: 2, + end_line: 1, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "function", + }, + id: 4, + span: { + start_line: 1, + start_column: 17, + end_line: 1, + end_column: 24, + }, + }, + ], + }, + id: 3, + span: { + start_line: 1, + start_column: 16, + end_line: 1, + end_column: 25, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 6, + span: { + start_line: 2, + start_column: 4, + end_line: 2, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 7, + span: { + start_line: 2, + start_column: 7, + end_line: 2, + end_column: 10, + }, + }, + ], + }, + id: 5, + span: { + start_line: 2, + start_column: 3, + end_line: 2, + end_column: 11, + }, + }, + ], + }, + id: 1, + span: { + start_line: 1, + start_column: 1, + end_line: 3, + end_column: 1, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-map", + }, + id: 9, + span: { + start_line: 6, + start_column: 2, + end_line: 6, + end_column: 11, + }, + }, + { + expr: { + Atom: "context", + }, + id: 10, + span: { + start_line: 6, + start_column: 13, + end_line: 6, + end_column: 19, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "string-ascii", + }, + id: 12, + span: { + start_line: 6, + start_column: 22, + end_line: 6, + end_column: 33, + }, + }, + { + expr: { + LiteralValue: { + Int: "100", + }, + }, + id: 13, + span: { + start_line: 6, + start_column: 35, + end_line: 6, + end_column: 37, + }, + }, + ], + }, + id: 11, + span: { + start_line: 6, + start_column: 21, + end_line: 6, + end_column: 38, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "tuple", + }, + id: 15, + span: { + start_line: 0, + start_column: 0, + end_line: 0, + end_column: 0, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 17, + span: { + start_line: 7, + start_column: 5, + end_line: 7, + end_column: 10, + }, + }, + { + expr: { + Atom: "uint", + }, + id: 18, + span: { + start_line: 7, + start_column: 13, + end_line: 7, + end_column: 16, + }, + post_comments: [ + [ + "other data", + { + start_line: 8, + start_column: 5, + end_line: 8, + end_column: 17, + }, + ], + ], + }, + ], + }, + id: 16, + span: { + start_line: 7, + start_column: 5, + end_line: 7, + end_column: 16, + }, + }, + ], + }, + id: 14, + span: { + start_line: 6, + start_column: 40, + end_line: 9, + end_column: 3, + }, + }, + ], + }, + id: 8, + span: { + start_line: 6, + start_column: 1, + end_line: 9, + end_column: 4, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 20, + span: { + start_line: 11, + start_column: 4, + end_line: 11, + end_column: 16, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "update-context", + }, + id: 22, + span: { + start_line: 11, + start_column: 19, + end_line: 11, + end_column: 32, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "function-name", + }, + id: 24, + span: { + start_line: 11, + start_column: 35, + end_line: 11, + end_column: 47, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "string-ascii", + }, + id: 26, + span: { + start_line: 11, + start_column: 50, + end_line: 11, + end_column: 61, + }, + }, + { + expr: { + LiteralValue: { + Int: "100", + }, + }, + id: 27, + span: { + start_line: 11, + start_column: 63, + end_line: 11, + end_column: 65, + }, + }, + ], + }, + id: 25, + span: { + start_line: 11, + start_column: 49, + end_line: 11, + end_column: 66, + }, + }, + ], + }, + id: 23, + span: { + start_line: 11, + start_column: 34, + end_line: 11, + end_column: 67, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 29, + span: { + start_line: 11, + start_column: 70, + end_line: 11, + end_column: 75, + }, + }, + { + expr: { + Atom: "uint", + }, + id: 30, + span: { + start_line: 11, + start_column: 77, + end_line: 11, + end_column: 80, + }, + }, + ], + }, + id: 28, + span: { + start_line: 11, + start_column: 69, + end_line: 11, + end_column: 81, + }, + }, + ], + }, + id: 21, + span: { + start_line: 11, + start_column: 18, + end_line: 11, + end_column: 82, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 32, + span: { + start_line: 12, + start_column: 6, + end_line: 12, + end_column: 7, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "map-set", + }, + id: 34, + span: { + start_line: 12, + start_column: 10, + end_line: 12, + end_column: 16, + }, + }, + { + expr: { + Atom: "context", + }, + id: 35, + span: { + start_line: 12, + start_column: 18, + end_line: 12, + end_column: 24, + }, + }, + { + expr: { + Atom: "function-name", + }, + id: 36, + span: { + start_line: 12, + start_column: 26, + end_line: 12, + end_column: 38, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "tuple", + }, + id: 38, + span: { + start_line: 0, + start_column: 0, + end_line: 0, + end_column: 0, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 40, + span: { + start_line: 12, + start_column: 41, + end_line: 12, + end_column: 46, + }, + }, + { + expr: { + Atom: "called", + }, + id: 41, + span: { + start_line: 12, + start_column: 49, + end_line: 12, + end_column: 54, + }, + }, + ], + }, + id: 39, + span: { + start_line: 12, + start_column: 41, + end_line: 12, + end_column: 54, + }, + }, + ], + }, + id: 37, + span: { + start_line: 12, + start_column: 40, + end_line: 12, + end_column: 55, + }, + }, + ], + }, + id: 33, + span: { + start_line: 12, + start_column: 9, + end_line: 12, + end_column: 56, + }, + }, + ], + }, + id: 31, + span: { + start_line: 12, + start_column: 5, + end_line: 12, + end_column: 57, + }, + }, + ], + }, + id: 19, + span: { + start_line: 11, + start_column: 3, + end_line: 12, + end_column: 58, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "use-trait", + }, + id: 43, + span: { + start_line: 14, + start_column: 2, + end_line: 14, + end_column: 10, + }, + }, + { + expr: { + Atom: "ft-trait", + }, + id: 44, + span: { + start_line: 14, + start_column: 12, + end_line: 14, + end_column: 19, + }, + }, + { + expr: { + Field: { + name: "sip-010-trait", + contract_identifier: { + issuer: [ + 22, + [ + 9, 159, 184, 137, 38, 216, 47, 48, 178, 244, 14, 175, + 62, 228, 35, 203, 114, 91, 219, 59, + ], + ], + name: "sip-010-trait-ft-standard", + }, + }, + }, + id: 45, + span: { + start_line: 14, + start_column: 21, + end_line: 14, + end_column: 101, + }, + }, + ], + }, + id: 42, + span: { + start_line: 14, + start_column: 1, + end_line: 14, + end_column: 102, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 47, + span: { + start_line: 16, + start_column: 2, + end_line: 16, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "test-no-trait", + }, + id: 49, + span: { + start_line: 16, + start_column: 17, + end_line: 16, + end_column: 29, + }, + }, + ], + }, + id: 48, + span: { + start_line: 16, + start_column: 16, + end_line: 16, + end_column: 30, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 51, + span: { + start_line: 17, + start_column: 4, + end_line: 17, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 52, + span: { + start_line: 17, + start_column: 7, + end_line: 17, + end_column: 10, + }, + }, + ], + }, + id: 50, + span: { + start_line: 17, + start_column: 3, + end_line: 17, + end_column: 11, + }, + }, + ], + }, + id: 46, + span: { + start_line: 16, + start_column: 1, + end_line: 18, + end_column: 1, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 54, + span: { + start_line: 20, + start_column: 2, + end_line: 20, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "test-trait", + }, + id: 56, + span: { + start_line: 20, + start_column: 17, + end_line: 20, + end_column: 26, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "a", + }, + id: 58, + span: { + start_line: 20, + start_column: 29, + end_line: 20, + end_column: 29, + }, + }, + { + expr: { + Atom: "uint", + }, + id: 59, + span: { + start_line: 20, + start_column: 31, + end_line: 20, + end_column: 34, + }, + }, + ], + }, + id: 57, + span: { + start_line: 20, + start_column: 28, + end_line: 20, + end_column: 35, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "token", + }, + id: 61, + span: { + start_line: 20, + start_column: 38, + end_line: 20, + end_column: 42, + }, + }, + { + expr: { + TraitReference: [ + "ft-trait", + { + Imported: { + name: "sip-010-trait", + contract_identifier: { + issuer: [ + 22, + [ + 9, 159, 184, 137, 38, 216, 47, 48, + 178, 244, 14, 175, 62, 228, 35, 203, + 114, 91, 219, 59, + ], + ], + name: "sip-010-trait-ft-standard", + }, + }, + }, + ], + }, + id: 62, + span: { + start_line: 20, + start_column: 44, + end_line: 20, + end_column: 53, + }, + }, + ], + }, + id: 60, + span: { + start_line: 20, + start_column: 37, + end_line: 20, + end_column: 54, + }, + }, + ], + }, + id: 55, + span: { + start_line: 20, + start_column: 16, + end_line: 20, + end_column: 55, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 64, + span: { + start_line: 21, + start_column: 4, + end_line: 21, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 65, + span: { + start_line: 21, + start_column: 7, + end_line: 21, + end_column: 10, + }, + }, + ], + }, + id: 63, + span: { + start_line: 21, + start_column: 3, + end_line: 21, + end_column: 11, + }, + }, + ], + }, + id: 53, + span: { + start_line: 20, + start_column: 1, + end_line: 22, + end_column: 1, + }, + }, + ], + top_level_expression_sorting: [0, 1, 2, 3, 4, 5], + referenced_traits: {}, + implemented_traits: [], + }, + }, + directTrait5thParameter: { + functionsInterfaces: [ + { + name: "function", + access: "public", + args: [], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "test-no-trait", + access: "public", + args: [], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "test-trait", + access: "public", + args: [ + { + name: "a", + type: "uint128", + }, + { + name: "b", + type: "int128", + }, + { + name: "c", + type: "bool", + }, + { + name: "d", + type: { + "string-ascii": { + length: 10, + }, + }, + }, + { + name: "e", + type: "trait_reference", + }, + ], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "update-context", + access: "public", + args: [ + { + name: "function-name", + type: { + "string-ascii": { + length: 100, + }, + }, + }, + { + name: "called", + type: "uint128", + }, + ], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + ], + ast: { + contract_identifier: { + issuer: [ + 26, + [ + 109, 120, 222, 123, 6, 37, 223, 191, 193, 108, 58, 138, 87, 53, 246, + 220, 61, 195, 242, 206, + ], + ], + name: "trait", + }, + pre_expressions: [], + expressions: [ + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 2, + span: { + start_line: 1, + start_column: 2, + end_line: 1, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "function", + }, + id: 4, + span: { + start_line: 1, + start_column: 17, + end_line: 1, + end_column: 24, + }, + }, + ], + }, + id: 3, + span: { + start_line: 1, + start_column: 16, + end_line: 1, + end_column: 25, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 6, + span: { + start_line: 2, + start_column: 4, + end_line: 2, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 7, + span: { + start_line: 2, + start_column: 7, + end_line: 2, + end_column: 10, + }, + }, + ], + }, + id: 5, + span: { + start_line: 2, + start_column: 3, + end_line: 2, + end_column: 11, + }, + }, + ], + }, + id: 1, + span: { + start_line: 1, + start_column: 1, + end_line: 3, + end_column: 1, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-map", + }, + id: 9, + span: { + start_line: 6, + start_column: 2, + end_line: 6, + end_column: 11, + }, + }, + { + expr: { + Atom: "context", + }, + id: 10, + span: { + start_line: 6, + start_column: 13, + end_line: 6, + end_column: 19, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "string-ascii", + }, + id: 12, + span: { + start_line: 6, + start_column: 22, + end_line: 6, + end_column: 33, + }, + }, + { + expr: { + LiteralValue: { + Int: "100", + }, + }, + id: 13, + span: { + start_line: 6, + start_column: 35, + end_line: 6, + end_column: 37, + }, + }, + ], + }, + id: 11, + span: { + start_line: 6, + start_column: 21, + end_line: 6, + end_column: 38, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "tuple", + }, + id: 15, + span: { + start_line: 0, + start_column: 0, + end_line: 0, + end_column: 0, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 17, + span: { + start_line: 7, + start_column: 5, + end_line: 7, + end_column: 10, + }, + }, + { + expr: { + Atom: "uint", + }, + id: 18, + span: { + start_line: 7, + start_column: 13, + end_line: 7, + end_column: 16, + }, + post_comments: [ + [ + "other data", + { + start_line: 8, + start_column: 5, + end_line: 8, + end_column: 17, + }, + ], + ], + }, + ], + }, + id: 16, + span: { + start_line: 7, + start_column: 5, + end_line: 7, + end_column: 16, + }, + }, + ], + }, + id: 14, + span: { + start_line: 6, + start_column: 40, + end_line: 9, + end_column: 3, + }, + }, + ], + }, + id: 8, + span: { + start_line: 6, + start_column: 1, + end_line: 9, + end_column: 4, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 20, + span: { + start_line: 11, + start_column: 4, + end_line: 11, + end_column: 16, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "update-context", + }, + id: 22, + span: { + start_line: 11, + start_column: 19, + end_line: 11, + end_column: 32, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "function-name", + }, + id: 24, + span: { + start_line: 11, + start_column: 35, + end_line: 11, + end_column: 47, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "string-ascii", + }, + id: 26, + span: { + start_line: 11, + start_column: 50, + end_line: 11, + end_column: 61, + }, + }, + { + expr: { + LiteralValue: { + Int: "100", + }, + }, + id: 27, + span: { + start_line: 11, + start_column: 63, + end_line: 11, + end_column: 65, + }, + }, + ], + }, + id: 25, + span: { + start_line: 11, + start_column: 49, + end_line: 11, + end_column: 66, + }, + }, + ], + }, + id: 23, + span: { + start_line: 11, + start_column: 34, + end_line: 11, + end_column: 67, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 29, + span: { + start_line: 11, + start_column: 70, + end_line: 11, + end_column: 75, + }, + }, + { + expr: { + Atom: "uint", + }, + id: 30, + span: { + start_line: 11, + start_column: 77, + end_line: 11, + end_column: 80, + }, + }, + ], + }, + id: 28, + span: { + start_line: 11, + start_column: 69, + end_line: 11, + end_column: 81, + }, + }, + ], + }, + id: 21, + span: { + start_line: 11, + start_column: 18, + end_line: 11, + end_column: 82, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 32, + span: { + start_line: 12, + start_column: 6, + end_line: 12, + end_column: 7, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "map-set", + }, + id: 34, + span: { + start_line: 12, + start_column: 10, + end_line: 12, + end_column: 16, + }, + }, + { + expr: { + Atom: "context", + }, + id: 35, + span: { + start_line: 12, + start_column: 18, + end_line: 12, + end_column: 24, + }, + }, + { + expr: { + Atom: "function-name", + }, + id: 36, + span: { + start_line: 12, + start_column: 26, + end_line: 12, + end_column: 38, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "tuple", + }, + id: 38, + span: { + start_line: 0, + start_column: 0, + end_line: 0, + end_column: 0, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 40, + span: { + start_line: 12, + start_column: 41, + end_line: 12, + end_column: 46, + }, + }, + { + expr: { + Atom: "called", + }, + id: 41, + span: { + start_line: 12, + start_column: 49, + end_line: 12, + end_column: 54, + }, + }, + ], + }, + id: 39, + span: { + start_line: 12, + start_column: 41, + end_line: 12, + end_column: 54, + }, + }, + ], + }, + id: 37, + span: { + start_line: 12, + start_column: 40, + end_line: 12, + end_column: 55, + }, + }, + ], + }, + id: 33, + span: { + start_line: 12, + start_column: 9, + end_line: 12, + end_column: 56, + }, + }, + ], + }, + id: 31, + span: { + start_line: 12, + start_column: 5, + end_line: 12, + end_column: 57, + }, + }, + ], + }, + id: 19, + span: { + start_line: 11, + start_column: 3, + end_line: 12, + end_column: 58, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "use-trait", + }, + id: 43, + span: { + start_line: 14, + start_column: 2, + end_line: 14, + end_column: 10, + }, + }, + { + expr: { + Atom: "ft-trait", + }, + id: 44, + span: { + start_line: 14, + start_column: 12, + end_line: 14, + end_column: 19, + }, + }, + { + expr: { + Field: { + name: "sip-010-trait", + contract_identifier: { + issuer: [ + 22, + [ + 9, 159, 184, 137, 38, 216, 47, 48, 178, 244, 14, 175, + 62, 228, 35, 203, 114, 91, 219, 59, + ], + ], + name: "sip-010-trait-ft-standard", + }, + }, + }, + id: 45, + span: { + start_line: 14, + start_column: 21, + end_line: 14, + end_column: 101, + }, + }, + ], + }, + id: 42, + span: { + start_line: 14, + start_column: 1, + end_line: 14, + end_column: 102, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 47, + span: { + start_line: 16, + start_column: 2, + end_line: 16, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "test-no-trait", + }, + id: 49, + span: { + start_line: 16, + start_column: 17, + end_line: 16, + end_column: 29, + }, + }, + ], + }, + id: 48, + span: { + start_line: 16, + start_column: 16, + end_line: 16, + end_column: 30, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 51, + span: { + start_line: 17, + start_column: 4, + end_line: 17, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 52, + span: { + start_line: 17, + start_column: 7, + end_line: 17, + end_column: 10, + }, + }, + ], + }, + id: 50, + span: { + start_line: 17, + start_column: 3, + end_line: 17, + end_column: 11, + }, + }, + ], + }, + id: 46, + span: { + start_line: 16, + start_column: 1, + end_line: 18, + end_column: 1, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 54, + span: { + start_line: 20, + start_column: 2, + end_line: 20, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "test-trait", + }, + id: 56, + span: { + start_line: 20, + start_column: 17, + end_line: 20, + end_column: 26, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "a", + }, + id: 58, + span: { + start_line: 20, + start_column: 29, + end_line: 20, + end_column: 29, + }, + }, + { + expr: { + Atom: "uint", + }, + id: 59, + span: { + start_line: 20, + start_column: 31, + end_line: 20, + end_column: 34, + }, + }, + ], + }, + id: 57, + span: { + start_line: 20, + start_column: 28, + end_line: 20, + end_column: 35, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "b", + }, + id: 61, + span: { + start_line: 20, + start_column: 38, + end_line: 20, + end_column: 38, + }, + }, + { + expr: { + Atom: "int", + }, + id: 62, + span: { + start_line: 20, + start_column: 40, + end_line: 20, + end_column: 42, + }, + }, + ], + }, + id: 60, + span: { + start_line: 20, + start_column: 37, + end_line: 20, + end_column: 43, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "c", + }, + id: 64, + span: { + start_line: 20, + start_column: 46, + end_line: 20, + end_column: 46, + }, + }, + { + expr: { + Atom: "bool", + }, + id: 65, + span: { + start_line: 20, + start_column: 48, + end_line: 20, + end_column: 51, + }, + }, + ], + }, + id: 63, + span: { + start_line: 20, + start_column: 45, + end_line: 20, + end_column: 52, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "d", + }, + id: 67, + span: { + start_line: 20, + start_column: 55, + end_line: 20, + end_column: 55, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "string-ascii", + }, + id: 69, + span: { + start_line: 20, + start_column: 58, + end_line: 20, + end_column: 69, + }, + }, + { + expr: { + LiteralValue: { + Int: "10", + }, + }, + id: 70, + span: { + start_line: 20, + start_column: 71, + end_line: 20, + end_column: 72, + }, + }, + ], + }, + id: 68, + span: { + start_line: 20, + start_column: 57, + end_line: 20, + end_column: 73, + }, + }, + ], + }, + id: 66, + span: { + start_line: 20, + start_column: 54, + end_line: 20, + end_column: 74, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "e", + }, + id: 72, + span: { + start_line: 20, + start_column: 77, + end_line: 20, + end_column: 77, + }, + }, + { + expr: { + TraitReference: [ + "ft-trait", + { + Imported: { + name: "sip-010-trait", + contract_identifier: { + issuer: [ + 22, + [ + 9, 159, 184, 137, 38, 216, 47, 48, + 178, 244, 14, 175, 62, 228, 35, 203, + 114, 91, 219, 59, + ], + ], + name: "sip-010-trait-ft-standard", + }, + }, + }, + ], + }, + id: 73, + span: { + start_line: 20, + start_column: 79, + end_line: 20, + end_column: 88, + }, + }, + ], + }, + id: 71, + span: { + start_line: 20, + start_column: 76, + end_line: 20, + end_column: 89, + }, + }, + ], + }, + id: 55, + span: { + start_line: 20, + start_column: 16, + end_line: 20, + end_column: 90, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 75, + span: { + start_line: 21, + start_column: 4, + end_line: 21, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 76, + span: { + start_line: 21, + start_column: 7, + end_line: 21, + end_column: 10, + }, + }, + ], + }, + id: 74, + span: { + start_line: 21, + start_column: 3, + end_line: 21, + end_column: 11, + }, + }, + ], + }, + id: 53, + span: { + start_line: 20, + start_column: 1, + end_line: 22, + end_column: 1, + }, + }, + ], + top_level_expression_sorting: [0, 1, 2, 3, 4, 5], + referenced_traits: {}, + implemented_traits: [], + }, + }, + listTraitParameter: { + functionsInterfaces: [ + { + name: "function", + access: "public", + args: [], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "test-no-trait", + access: "public", + args: [], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "test-trait", + access: "public", + args: [ + { + name: "token-list", + type: { + list: { + type: "trait_reference", + length: 5, + }, + }, + }, + ], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "update-context", + access: "public", + args: [ + { + name: "function-name", + type: { + "string-ascii": { + length: 100, + }, + }, + }, + { + name: "called", + type: "uint128", + }, + ], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + ], + ast: { + contract_identifier: { + issuer: [ + 26, + [ + 109, 120, 222, 123, 6, 37, 223, 191, 193, 108, 58, 138, 87, 53, 246, + 220, 61, 195, 242, 206, + ], + ], + name: "trait", + }, + pre_expressions: [], + expressions: [ + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 2, + span: { + start_line: 1, + start_column: 2, + end_line: 1, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "function", + }, + id: 4, + span: { + start_line: 1, + start_column: 17, + end_line: 1, + end_column: 24, + }, + }, + ], + }, + id: 3, + span: { + start_line: 1, + start_column: 16, + end_line: 1, + end_column: 25, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 6, + span: { + start_line: 2, + start_column: 4, + end_line: 2, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 7, + span: { + start_line: 2, + start_column: 7, + end_line: 2, + end_column: 10, + }, + }, + ], + }, + id: 5, + span: { + start_line: 2, + start_column: 3, + end_line: 2, + end_column: 11, + }, + }, + ], + }, + id: 1, + span: { + start_line: 1, + start_column: 1, + end_line: 3, + end_column: 1, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-map", + }, + id: 9, + span: { + start_line: 6, + start_column: 2, + end_line: 6, + end_column: 11, + }, + }, + { + expr: { + Atom: "context", + }, + id: 10, + span: { + start_line: 6, + start_column: 13, + end_line: 6, + end_column: 19, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "string-ascii", + }, + id: 12, + span: { + start_line: 6, + start_column: 22, + end_line: 6, + end_column: 33, + }, + }, + { + expr: { + LiteralValue: { + Int: "100", + }, + }, + id: 13, + span: { + start_line: 6, + start_column: 35, + end_line: 6, + end_column: 37, + }, + }, + ], + }, + id: 11, + span: { + start_line: 6, + start_column: 21, + end_line: 6, + end_column: 38, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "tuple", + }, + id: 15, + span: { + start_line: 0, + start_column: 0, + end_line: 0, + end_column: 0, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 17, + span: { + start_line: 7, + start_column: 5, + end_line: 7, + end_column: 10, + }, + }, + { + expr: { + Atom: "uint", + }, + id: 18, + span: { + start_line: 7, + start_column: 13, + end_line: 7, + end_column: 16, + }, + post_comments: [ + [ + "other data", + { + start_line: 8, + start_column: 5, + end_line: 8, + end_column: 17, + }, + ], + ], + }, + ], + }, + id: 16, + span: { + start_line: 7, + start_column: 5, + end_line: 7, + end_column: 16, + }, + }, + ], + }, + id: 14, + span: { + start_line: 6, + start_column: 40, + end_line: 9, + end_column: 3, + }, + }, + ], + }, + id: 8, + span: { + start_line: 6, + start_column: 1, + end_line: 9, + end_column: 4, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 20, + span: { + start_line: 11, + start_column: 4, + end_line: 11, + end_column: 16, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "update-context", + }, + id: 22, + span: { + start_line: 11, + start_column: 19, + end_line: 11, + end_column: 32, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "function-name", + }, + id: 24, + span: { + start_line: 11, + start_column: 35, + end_line: 11, + end_column: 47, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "string-ascii", + }, + id: 26, + span: { + start_line: 11, + start_column: 50, + end_line: 11, + end_column: 61, + }, + }, + { + expr: { + LiteralValue: { + Int: "100", + }, + }, + id: 27, + span: { + start_line: 11, + start_column: 63, + end_line: 11, + end_column: 65, + }, + }, + ], + }, + id: 25, + span: { + start_line: 11, + start_column: 49, + end_line: 11, + end_column: 66, + }, + }, + ], + }, + id: 23, + span: { + start_line: 11, + start_column: 34, + end_line: 11, + end_column: 67, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 29, + span: { + start_line: 11, + start_column: 70, + end_line: 11, + end_column: 75, + }, + }, + { + expr: { + Atom: "uint", + }, + id: 30, + span: { + start_line: 11, + start_column: 77, + end_line: 11, + end_column: 80, + }, + }, + ], + }, + id: 28, + span: { + start_line: 11, + start_column: 69, + end_line: 11, + end_column: 81, + }, + }, + ], + }, + id: 21, + span: { + start_line: 11, + start_column: 18, + end_line: 11, + end_column: 82, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 32, + span: { + start_line: 12, + start_column: 6, + end_line: 12, + end_column: 7, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "map-set", + }, + id: 34, + span: { + start_line: 12, + start_column: 10, + end_line: 12, + end_column: 16, + }, + }, + { + expr: { + Atom: "context", + }, + id: 35, + span: { + start_line: 12, + start_column: 18, + end_line: 12, + end_column: 24, + }, + }, + { + expr: { + Atom: "function-name", + }, + id: 36, + span: { + start_line: 12, + start_column: 26, + end_line: 12, + end_column: 38, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "tuple", + }, + id: 38, + span: { + start_line: 0, + start_column: 0, + end_line: 0, + end_column: 0, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 40, + span: { + start_line: 12, + start_column: 41, + end_line: 12, + end_column: 46, + }, + }, + { + expr: { + Atom: "called", + }, + id: 41, + span: { + start_line: 12, + start_column: 49, + end_line: 12, + end_column: 54, + }, + }, + ], + }, + id: 39, + span: { + start_line: 12, + start_column: 41, + end_line: 12, + end_column: 54, + }, + }, + ], + }, + id: 37, + span: { + start_line: 12, + start_column: 40, + end_line: 12, + end_column: 55, + }, + }, + ], + }, + id: 33, + span: { + start_line: 12, + start_column: 9, + end_line: 12, + end_column: 56, + }, + }, + ], + }, + id: 31, + span: { + start_line: 12, + start_column: 5, + end_line: 12, + end_column: 57, + }, + }, + ], + }, + id: 19, + span: { + start_line: 11, + start_column: 3, + end_line: 12, + end_column: 58, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "use-trait", + }, + id: 43, + span: { + start_line: 14, + start_column: 2, + end_line: 14, + end_column: 10, + }, + }, + { + expr: { + Atom: "ft-trait", + }, + id: 44, + span: { + start_line: 14, + start_column: 12, + end_line: 14, + end_column: 19, + }, + }, + { + expr: { + Field: { + name: "sip-010-trait", + contract_identifier: { + issuer: [ + 22, + [ + 9, 159, 184, 137, 38, 216, 47, 48, 178, 244, 14, 175, + 62, 228, 35, 203, 114, 91, 219, 59, + ], + ], + name: "sip-010-trait-ft-standard", + }, + }, + }, + id: 45, + span: { + start_line: 14, + start_column: 21, + end_line: 14, + end_column: 101, + }, + }, + ], + }, + id: 42, + span: { + start_line: 14, + start_column: 1, + end_line: 14, + end_column: 102, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 47, + span: { + start_line: 16, + start_column: 2, + end_line: 16, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "test-no-trait", + }, + id: 49, + span: { + start_line: 16, + start_column: 17, + end_line: 16, + end_column: 29, + }, + }, + ], + }, + id: 48, + span: { + start_line: 16, + start_column: 16, + end_line: 16, + end_column: 30, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 51, + span: { + start_line: 17, + start_column: 4, + end_line: 17, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 52, + span: { + start_line: 17, + start_column: 7, + end_line: 17, + end_column: 10, + }, + }, + ], + }, + id: 50, + span: { + start_line: 17, + start_column: 3, + end_line: 17, + end_column: 11, + }, + }, + ], + }, + id: 46, + span: { + start_line: 16, + start_column: 1, + end_line: 18, + end_column: 1, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 54, + span: { + start_line: 20, + start_column: 2, + end_line: 20, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "test-trait", + }, + id: 56, + span: { + start_line: 20, + start_column: 17, + end_line: 20, + end_column: 26, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "token-list", + }, + id: 58, + span: { + start_line: 20, + start_column: 29, + end_line: 20, + end_column: 38, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "list", + }, + id: 60, + span: { + start_line: 20, + start_column: 41, + end_line: 20, + end_column: 44, + }, + }, + { + expr: { + LiteralValue: { + Int: "5", + }, + }, + id: 61, + span: { + start_line: 20, + start_column: 46, + end_line: 20, + end_column: 46, + }, + }, + { + expr: { + TraitReference: [ + "ft-trait", + { + Imported: { + name: "sip-010-trait", + contract_identifier: { + issuer: [ + 22, + [ + 9, 159, 184, 137, 38, 216, 47, + 48, 178, 244, 14, 175, 62, 228, + 35, 203, 114, 91, 219, 59, + ], + ], + name: "sip-010-trait-ft-standard", + }, + }, + }, + ], + }, + id: 62, + span: { + start_line: 20, + start_column: 48, + end_line: 20, + end_column: 57, + }, + }, + ], + }, + id: 59, + span: { + start_line: 20, + start_column: 40, + end_line: 20, + end_column: 58, + }, + }, + ], + }, + id: 57, + span: { + start_line: 20, + start_column: 28, + end_line: 20, + end_column: 59, + }, + }, + ], + }, + id: 55, + span: { + start_line: 20, + start_column: 16, + end_line: 20, + end_column: 60, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 64, + span: { + start_line: 21, + start_column: 4, + end_line: 21, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 65, + span: { + start_line: 21, + start_column: 7, + end_line: 21, + end_column: 10, + }, + }, + ], + }, + id: 63, + span: { + start_line: 21, + start_column: 3, + end_line: 21, + end_column: 11, + }, + }, + ], + }, + id: 53, + span: { + start_line: 20, + start_column: 1, + end_line: 22, + end_column: 1, + }, + }, + ], + top_level_expression_sorting: [0, 1, 2, 3, 4, 5], + referenced_traits: {}, + implemented_traits: [], + }, + }, + tupleTraitParameter: { + functionsInterfaces: [ + { + name: "function", + access: "public", + args: [], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "test-no-trait", + access: "public", + args: [], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "test-trait", + access: "public", + args: [ + { + name: "tuple-param", + type: { + tuple: [ + { + name: "token", + type: "trait_reference", + }, + ], + }, + }, + ], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + { + name: "update-context", + access: "public", + args: [ + { + name: "function-name", + type: { + "string-ascii": { + length: 100, + }, + }, + }, + { + name: "called", + type: "uint128", + }, + ], + outputs: { + type: { + response: { + ok: "bool", + error: "none", + }, + }, + }, + }, + ], + ast: { + contract_identifier: { + issuer: [ + 26, + [ + 109, 120, 222, 123, 6, 37, 223, 191, 193, 108, 58, 138, 87, 53, 246, + 220, 61, 195, 242, 206, + ], + ], + name: "trait", + }, + pre_expressions: [], + expressions: [ + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 2, + span: { + start_line: 1, + start_column: 2, + end_line: 1, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "function", + }, + id: 4, + span: { + start_line: 1, + start_column: 17, + end_line: 1, + end_column: 24, + }, + }, + ], + }, + id: 3, + span: { + start_line: 1, + start_column: 16, + end_line: 1, + end_column: 25, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 6, + span: { + start_line: 2, + start_column: 4, + end_line: 2, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 7, + span: { + start_line: 2, + start_column: 7, + end_line: 2, + end_column: 10, + }, + }, + ], + }, + id: 5, + span: { + start_line: 2, + start_column: 3, + end_line: 2, + end_column: 11, + }, + }, + ], + }, + id: 1, + span: { + start_line: 1, + start_column: 1, + end_line: 3, + end_column: 1, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-map", + }, + id: 9, + span: { + start_line: 6, + start_column: 2, + end_line: 6, + end_column: 11, + }, + }, + { + expr: { + Atom: "context", + }, + id: 10, + span: { + start_line: 6, + start_column: 13, + end_line: 6, + end_column: 19, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "string-ascii", + }, + id: 12, + span: { + start_line: 6, + start_column: 22, + end_line: 6, + end_column: 33, + }, + }, + { + expr: { + LiteralValue: { + Int: "100", + }, + }, + id: 13, + span: { + start_line: 6, + start_column: 35, + end_line: 6, + end_column: 37, + }, + }, + ], + }, + id: 11, + span: { + start_line: 6, + start_column: 21, + end_line: 6, + end_column: 38, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "tuple", + }, + id: 15, + span: { + start_line: 0, + start_column: 0, + end_line: 0, + end_column: 0, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 17, + span: { + start_line: 7, + start_column: 5, + end_line: 7, + end_column: 10, + }, + }, + { + expr: { + Atom: "uint", + }, + id: 18, + span: { + start_line: 7, + start_column: 13, + end_line: 7, + end_column: 16, + }, + post_comments: [ + [ + "other data", + { + start_line: 8, + start_column: 5, + end_line: 8, + end_column: 17, + }, + ], + ], + }, + ], + }, + id: 16, + span: { + start_line: 7, + start_column: 5, + end_line: 7, + end_column: 16, + }, + }, + ], + }, + id: 14, + span: { + start_line: 6, + start_column: 40, + end_line: 9, + end_column: 3, + }, + }, + ], + }, + id: 8, + span: { + start_line: 6, + start_column: 1, + end_line: 9, + end_column: 4, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 20, + span: { + start_line: 11, + start_column: 4, + end_line: 11, + end_column: 16, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "update-context", + }, + id: 22, + span: { + start_line: 11, + start_column: 19, + end_line: 11, + end_column: 32, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "function-name", + }, + id: 24, + span: { + start_line: 11, + start_column: 35, + end_line: 11, + end_column: 47, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "string-ascii", + }, + id: 26, + span: { + start_line: 11, + start_column: 50, + end_line: 11, + end_column: 61, + }, + }, + { + expr: { + LiteralValue: { + Int: "100", + }, + }, + id: 27, + span: { + start_line: 11, + start_column: 63, + end_line: 11, + end_column: 65, + }, + }, + ], + }, + id: 25, + span: { + start_line: 11, + start_column: 49, + end_line: 11, + end_column: 66, + }, + }, + ], + }, + id: 23, + span: { + start_line: 11, + start_column: 34, + end_line: 11, + end_column: 67, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 29, + span: { + start_line: 11, + start_column: 70, + end_line: 11, + end_column: 75, + }, + }, + { + expr: { + Atom: "uint", + }, + id: 30, + span: { + start_line: 11, + start_column: 77, + end_line: 11, + end_column: 80, + }, + }, + ], + }, + id: 28, + span: { + start_line: 11, + start_column: 69, + end_line: 11, + end_column: 81, + }, + }, + ], + }, + id: 21, + span: { + start_line: 11, + start_column: 18, + end_line: 11, + end_column: 82, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 32, + span: { + start_line: 12, + start_column: 6, + end_line: 12, + end_column: 7, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "map-set", + }, + id: 34, + span: { + start_line: 12, + start_column: 10, + end_line: 12, + end_column: 16, + }, + }, + { + expr: { + Atom: "context", + }, + id: 35, + span: { + start_line: 12, + start_column: 18, + end_line: 12, + end_column: 24, + }, + }, + { + expr: { + Atom: "function-name", + }, + id: 36, + span: { + start_line: 12, + start_column: 26, + end_line: 12, + end_column: 38, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "tuple", + }, + id: 38, + span: { + start_line: 0, + start_column: 0, + end_line: 0, + end_column: 0, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "called", + }, + id: 40, + span: { + start_line: 12, + start_column: 41, + end_line: 12, + end_column: 46, + }, + }, + { + expr: { + Atom: "called", + }, + id: 41, + span: { + start_line: 12, + start_column: 49, + end_line: 12, + end_column: 54, + }, + }, + ], + }, + id: 39, + span: { + start_line: 12, + start_column: 41, + end_line: 12, + end_column: 54, + }, + }, + ], + }, + id: 37, + span: { + start_line: 12, + start_column: 40, + end_line: 12, + end_column: 55, + }, + }, + ], + }, + id: 33, + span: { + start_line: 12, + start_column: 9, + end_line: 12, + end_column: 56, + }, + }, + ], + }, + id: 31, + span: { + start_line: 12, + start_column: 5, + end_line: 12, + end_column: 57, + }, + }, + ], + }, + id: 19, + span: { + start_line: 11, + start_column: 3, + end_line: 12, + end_column: 58, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "use-trait", + }, + id: 43, + span: { + start_line: 14, + start_column: 2, + end_line: 14, + end_column: 10, + }, + }, + { + expr: { + Atom: "ft-trait", + }, + id: 44, + span: { + start_line: 14, + start_column: 12, + end_line: 14, + end_column: 19, + }, + }, + { + expr: { + Field: { + name: "sip-010-trait", + contract_identifier: { + issuer: [ + 22, + [ + 9, 159, 184, 137, 38, 216, 47, 48, 178, 244, 14, 175, + 62, 228, 35, 203, 114, 91, 219, 59, + ], + ], + name: "sip-010-trait-ft-standard", + }, + }, + }, + id: 45, + span: { + start_line: 14, + start_column: 21, + end_line: 14, + end_column: 101, + }, + }, + ], + }, + id: 42, + span: { + start_line: 14, + start_column: 1, + end_line: 14, + end_column: 102, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 47, + span: { + start_line: 16, + start_column: 2, + end_line: 16, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "test-no-trait", + }, + id: 49, + span: { + start_line: 16, + start_column: 17, + end_line: 16, + end_column: 29, + }, + }, + ], + }, + id: 48, + span: { + start_line: 16, + start_column: 16, + end_line: 16, + end_column: 30, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 51, + span: { + start_line: 17, + start_column: 4, + end_line: 17, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 52, + span: { + start_line: 17, + start_column: 7, + end_line: 17, + end_column: 10, + }, + }, + ], + }, + id: 50, + span: { + start_line: 17, + start_column: 3, + end_line: 17, + end_column: 11, + }, + }, + ], + }, + id: 46, + span: { + start_line: 16, + start_column: 1, + end_line: 18, + end_column: 1, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "define-public", + }, + id: 54, + span: { + start_line: 20, + start_column: 2, + end_line: 20, + end_column: 14, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "test-trait", + }, + id: 56, + span: { + start_line: 20, + start_column: 17, + end_line: 20, + end_column: 26, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "tuple-param", + }, + id: 58, + span: { + start_line: 20, + start_column: 29, + end_line: 20, + end_column: 39, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "tuple", + }, + id: 60, + span: { + start_line: 0, + start_column: 0, + end_line: 0, + end_column: 0, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "token", + }, + id: 62, + span: { + start_line: 20, + start_column: 42, + end_line: 20, + end_column: 46, + }, + }, + { + expr: { + TraitReference: [ + "ft-trait", + { + Imported: { + name: "sip-010-trait", + contract_identifier: { + issuer: [ + 22, + [ + 9, 159, 184, 137, 38, 216, + 47, 48, 178, 244, 14, 175, + 62, 228, 35, 203, 114, 91, + 219, 59, + ], + ], + name: "sip-010-trait-ft-standard", + }, + }, + }, + ], + }, + id: 63, + span: { + start_line: 20, + start_column: 49, + end_line: 20, + end_column: 58, + }, + }, + ], + }, + id: 61, + span: { + start_line: 20, + start_column: 42, + end_line: 20, + end_column: 58, + }, + }, + ], + }, + id: 59, + span: { + start_line: 20, + start_column: 41, + end_line: 20, + end_column: 59, + }, + }, + ], + }, + id: 57, + span: { + start_line: 20, + start_column: 28, + end_line: 20, + end_column: 60, + }, + }, + ], + }, + id: 55, + span: { + start_line: 20, + start_column: 16, + end_line: 20, + end_column: 61, + }, + }, + { + expr: { + List: [ + { + expr: { + Atom: "ok", + }, + id: 65, + span: { + start_line: 21, + start_column: 4, + end_line: 21, + end_column: 5, + }, + }, + { + expr: { + Atom: "true", + }, + id: 66, + span: { + start_line: 21, + start_column: 7, + end_line: 21, + end_column: 10, + }, + }, + ], + }, + id: 64, + span: { + start_line: 21, + start_column: 3, + end_line: 21, + end_column: 11, + }, + }, + ], + }, + id: 53, + span: { + start_line: 20, + start_column: 1, + end_line: 22, + end_column: 1, + }, + }, + ], + top_level_expression_sorting: [0, 1, 2, 3, 4, 5], + referenced_traits: {}, + implemented_traits: [], + }, + }, +};