Skip to content

Instantly share code, notes, and snippets.

@sbillig
Created November 15, 2021 02:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sbillig/82f0f4db6c58d1b6075cd1de5c0a3ce5 to your computer and use it in GitHub Desktop.
Save sbillig/82f0f4db6c58d1b6075cd1de5c0a3ce5 to your computer and use it in GitHub Desktop.
{
"body": [
{
"Contract": {
"kind": {
"name": {
"kind": "ERC20",
"span": {
"start": 9,
"end": 14
}
},
"fields": [
{
"kind": {
"is_pub": false,
"is_const": false,
"name": {
"kind": "_balances",
"span": {
"start": 20,
"end": 29
}
},
"typ": {
"kind": {
"Generic": {
"base": {
"kind": "Map",
"span": {
"start": 31,
"end": 34
}
},
"args": {
"kind": [
{
"TypeDesc": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 35,
"end": 42
}
}
},
{
"TypeDesc": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 44,
"end": 48
}
}
}
],
"span": {
"start": 34,
"end": 49
}
}
}
},
"span": {
"start": 31,
"end": 49
}
},
"value": null
},
"span": {
"start": 20,
"end": 49
}
},
{
"kind": {
"is_pub": false,
"is_const": false,
"name": {
"kind": "_allowances",
"span": {
"start": 54,
"end": 65
}
},
"typ": {
"kind": {
"Generic": {
"base": {
"kind": "Map",
"span": {
"start": 67,
"end": 70
}
},
"args": {
"kind": [
{
"TypeDesc": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 71,
"end": 78
}
}
},
{
"TypeDesc": {
"kind": {
"Generic": {
"base": {
"kind": "Map",
"span": {
"start": 80,
"end": 83
}
},
"args": {
"kind": [
{
"TypeDesc": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 84,
"end": 91
}
}
},
{
"TypeDesc": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 93,
"end": 97
}
}
}
],
"span": {
"start": 83,
"end": 98
}
}
}
},
"span": {
"start": 80,
"end": 98
}
}
}
],
"span": {
"start": 70,
"end": 99
}
}
}
},
"span": {
"start": 67,
"end": 99
}
},
"value": null
},
"span": {
"start": 54,
"end": 99
}
},
{
"kind": {
"is_pub": false,
"is_const": false,
"name": {
"kind": "_total_supply",
"span": {
"start": 104,
"end": 117
}
},
"typ": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 119,
"end": 123
}
},
"value": null
},
"span": {
"start": 104,
"end": 123
}
},
{
"kind": {
"is_pub": false,
"is_const": false,
"name": {
"kind": "_name",
"span": {
"start": 128,
"end": 133
}
},
"typ": {
"kind": {
"Generic": {
"base": {
"kind": "String",
"span": {
"start": 135,
"end": 141
}
},
"args": {
"kind": [
{
"Int": {
"kind": 100,
"span": {
"start": 142,
"end": 145
}
}
}
],
"span": {
"start": 141,
"end": 146
}
}
}
},
"span": {
"start": 135,
"end": 146
}
},
"value": null
},
"span": {
"start": 128,
"end": 146
}
},
{
"kind": {
"is_pub": false,
"is_const": false,
"name": {
"kind": "_symbol",
"span": {
"start": 151,
"end": 158
}
},
"typ": {
"kind": {
"Generic": {
"base": {
"kind": "String",
"span": {
"start": 160,
"end": 166
}
},
"args": {
"kind": [
{
"Int": {
"kind": 100,
"span": {
"start": 167,
"end": 170
}
}
}
],
"span": {
"start": 166,
"end": 171
}
}
}
},
"span": {
"start": 160,
"end": 171
}
},
"value": null
},
"span": {
"start": 151,
"end": 171
}
},
{
"kind": {
"is_pub": false,
"is_const": false,
"name": {
"kind": "_decimals",
"span": {
"start": 176,
"end": 185
}
},
"typ": {
"kind": {
"Base": {
"base": "u8"
}
},
"span": {
"start": 187,
"end": 189
}
},
"value": null
},
"span": {
"start": 176,
"end": 189
}
}
],
"body": [
{
"Event": {
"kind": {
"name": {
"kind": "Approval",
"span": {
"start": 201,
"end": 209
}
},
"fields": [
{
"kind": {
"is_idx": true,
"name": {
"kind": "owner",
"span": {
"start": 223,
"end": 228
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 230,
"end": 237
}
}
},
"span": {
"start": 219,
"end": 237
}
},
{
"kind": {
"is_idx": true,
"name": {
"kind": "spender",
"span": {
"start": 250,
"end": 257
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 259,
"end": 266
}
}
},
"span": {
"start": 246,
"end": 266
}
},
{
"kind": {
"is_idx": false,
"name": {
"kind": "value",
"span": {
"start": 275,
"end": 280
}
},
"typ": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 282,
"end": 286
}
}
},
"span": {
"start": 275,
"end": 286
}
}
]
},
"span": {
"start": 195,
"end": 286
}
}
},
{
"Event": {
"kind": {
"name": {
"kind": "Transfer",
"span": {
"start": 298,
"end": 306
}
},
"fields": [
{
"kind": {
"is_idx": true,
"name": {
"kind": "from",
"span": {
"start": 320,
"end": 324
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 326,
"end": 333
}
}
},
"span": {
"start": 316,
"end": 333
}
},
{
"kind": {
"is_idx": true,
"name": {
"kind": "to",
"span": {
"start": 346,
"end": 348
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 350,
"end": 357
}
}
},
"span": {
"start": 342,
"end": 357
}
},
{
"kind": {
"is_idx": false,
"name": {
"kind": "value",
"span": {
"start": 366,
"end": 371
}
},
"typ": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 373,
"end": 377
}
}
},
"span": {
"start": 366,
"end": 377
}
}
]
},
"span": {
"start": 292,
"end": 377
}
}
},
{
"Function": {
"kind": {
"pub_": {
"start": 383,
"end": 386
},
"unsafe_": null,
"name": {
"kind": "__init__",
"span": {
"start": 390,
"end": 398
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 399,
"end": 403
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "name",
"span": {
"start": 405,
"end": 409
}
},
"typ": {
"kind": {
"Generic": {
"base": {
"kind": "String",
"span": {
"start": 411,
"end": 417
}
},
"args": {
"kind": [
{
"Int": {
"kind": 100,
"span": {
"start": 418,
"end": 421
}
}
}
],
"span": {
"start": 417,
"end": 422
}
}
}
},
"span": {
"start": 411,
"end": 422
}
}
}
},
"span": {
"start": 405,
"end": 422
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "symbol",
"span": {
"start": 424,
"end": 430
}
},
"typ": {
"kind": {
"Generic": {
"base": {
"kind": "String",
"span": {
"start": 432,
"end": 438
}
},
"args": {
"kind": [
{
"Int": {
"kind": 100,
"span": {
"start": 439,
"end": 442
}
}
}
],
"span": {
"start": 438,
"end": 443
}
}
}
},
"span": {
"start": 432,
"end": 443
}
}
}
},
"span": {
"start": 424,
"end": 443
}
}
],
"return_type": null,
"body": [
{
"kind": {
"Assign": {
"target": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 454,
"end": 458
}
},
"attr": {
"kind": "_name",
"span": {
"start": 459,
"end": 464
}
}
}
},
"span": {
"start": 454,
"end": 464
}
},
"value": {
"kind": {
"Name": "name"
},
"span": {
"start": 467,
"end": 471
}
}
}
},
"span": {
"start": 454,
"end": 471
}
},
{
"kind": {
"Assign": {
"target": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 480,
"end": 484
}
},
"attr": {
"kind": "_symbol",
"span": {
"start": 485,
"end": 492
}
}
}
},
"span": {
"start": 480,
"end": 492
}
},
"value": {
"kind": {
"Name": "symbol"
},
"span": {
"start": 495,
"end": 501
}
}
}
},
"span": {
"start": 480,
"end": 501
}
},
{
"kind": {
"Assign": {
"target": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 510,
"end": 514
}
},
"attr": {
"kind": "_decimals",
"span": {
"start": 515,
"end": 524
}
}
}
},
"span": {
"start": 510,
"end": 524
}
},
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "u8"
},
"span": {
"start": 527,
"end": 529
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Num": "18"
},
"span": {
"start": 530,
"end": 532
}
}
},
"span": {
"start": 530,
"end": 532
}
}
],
"span": {
"start": 529,
"end": 533
}
}
}
},
"span": {
"start": 527,
"end": 533
}
}
}
},
"span": {
"start": 510,
"end": 533
}
},
{
"kind": {
"Expr": {
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 542,
"end": 546
}
},
"attr": {
"kind": "_mint",
"span": {
"start": 547,
"end": 552
}
}
}
},
"span": {
"start": 542,
"end": 552
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "msg"
},
"span": {
"start": 553,
"end": 556
}
},
"attr": {
"kind": "sender",
"span": {
"start": 557,
"end": 563
}
}
}
},
"span": {
"start": 553,
"end": 563
}
}
},
"span": {
"start": 553,
"end": 563
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Num": "1000000000000000000000000"
},
"span": {
"start": 565,
"end": 590
}
}
},
"span": {
"start": 565,
"end": 590
}
}
],
"span": {
"start": 552,
"end": 591
}
}
}
},
"span": {
"start": 542,
"end": 591
}
}
}
},
"span": {
"start": 542,
"end": 591
}
}
]
},
"span": {
"start": 383,
"end": 591
}
}
},
{
"Function": {
"kind": {
"pub_": {
"start": 597,
"end": 600
},
"unsafe_": null,
"name": {
"kind": "name",
"span": {
"start": 604,
"end": 608
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 609,
"end": 613
}
}
],
"return_type": {
"kind": {
"Generic": {
"base": {
"kind": "String",
"span": {
"start": 618,
"end": 624
}
},
"args": {
"kind": [
{
"Int": {
"kind": 100,
"span": {
"start": 625,
"end": 628
}
}
}
],
"span": {
"start": 624,
"end": 629
}
}
}
},
"span": {
"start": 618,
"end": 629
}
},
"body": [
{
"kind": {
"Return": {
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 646,
"end": 650
}
},
"attr": {
"kind": "_name",
"span": {
"start": 651,
"end": 656
}
}
}
},
"span": {
"start": 646,
"end": 656
}
},
"attr": {
"kind": "to_mem",
"span": {
"start": 657,
"end": 663
}
}
}
},
"span": {
"start": 646,
"end": 663
}
},
"generic_args": null,
"args": {
"kind": [],
"span": {
"start": 663,
"end": 665
}
}
}
},
"span": {
"start": 646,
"end": 665
}
}
}
},
"span": {
"start": 639,
"end": 665
}
}
]
},
"span": {
"start": 597,
"end": 665
}
}
},
{
"Function": {
"kind": {
"pub_": {
"start": 671,
"end": 674
},
"unsafe_": null,
"name": {
"kind": "symbol",
"span": {
"start": 678,
"end": 684
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 685,
"end": 689
}
}
],
"return_type": {
"kind": {
"Generic": {
"base": {
"kind": "String",
"span": {
"start": 694,
"end": 700
}
},
"args": {
"kind": [
{
"Int": {
"kind": 100,
"span": {
"start": 701,
"end": 704
}
}
}
],
"span": {
"start": 700,
"end": 705
}
}
}
},
"span": {
"start": 694,
"end": 705
}
},
"body": [
{
"kind": {
"Return": {
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 722,
"end": 726
}
},
"attr": {
"kind": "_symbol",
"span": {
"start": 727,
"end": 734
}
}
}
},
"span": {
"start": 722,
"end": 734
}
},
"attr": {
"kind": "to_mem",
"span": {
"start": 735,
"end": 741
}
}
}
},
"span": {
"start": 722,
"end": 741
}
},
"generic_args": null,
"args": {
"kind": [],
"span": {
"start": 741,
"end": 743
}
}
}
},
"span": {
"start": 722,
"end": 743
}
}
}
},
"span": {
"start": 715,
"end": 743
}
}
]
},
"span": {
"start": 671,
"end": 743
}
}
},
{
"Function": {
"kind": {
"pub_": {
"start": 749,
"end": 752
},
"unsafe_": null,
"name": {
"kind": "decimals",
"span": {
"start": 756,
"end": 764
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 765,
"end": 769
}
}
],
"return_type": {
"kind": {
"Base": {
"base": "u8"
}
},
"span": {
"start": 774,
"end": 776
}
},
"body": [
{
"kind": {
"Return": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 793,
"end": 797
}
},
"attr": {
"kind": "_decimals",
"span": {
"start": 798,
"end": 807
}
}
}
},
"span": {
"start": 793,
"end": 807
}
}
}
},
"span": {
"start": 786,
"end": 807
}
}
]
},
"span": {
"start": 749,
"end": 807
}
}
},
{
"Function": {
"kind": {
"pub_": {
"start": 813,
"end": 816
},
"unsafe_": null,
"name": {
"kind": "totalSupply",
"span": {
"start": 820,
"end": 831
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 832,
"end": 836
}
}
],
"return_type": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 841,
"end": 845
}
},
"body": [
{
"kind": {
"Return": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 862,
"end": 866
}
},
"attr": {
"kind": "_total_supply",
"span": {
"start": 867,
"end": 880
}
}
}
},
"span": {
"start": 862,
"end": 880
}
}
}
},
"span": {
"start": 855,
"end": 880
}
}
]
},
"span": {
"start": 813,
"end": 880
}
}
},
{
"Function": {
"kind": {
"pub_": {
"start": 886,
"end": 889
},
"unsafe_": null,
"name": {
"kind": "balanceOf",
"span": {
"start": 893,
"end": 902
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 903,
"end": 907
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "account",
"span": {
"start": 909,
"end": 916
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 918,
"end": 925
}
}
}
},
"span": {
"start": 909,
"end": 925
}
}
],
"return_type": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 930,
"end": 934
}
},
"body": [
{
"kind": {
"Return": {
"value": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 951,
"end": 955
}
},
"attr": {
"kind": "_balances",
"span": {
"start": 956,
"end": 965
}
}
}
},
"span": {
"start": 951,
"end": 965
}
},
"index": {
"kind": {
"Name": "account"
},
"span": {
"start": 966,
"end": 973
}
}
}
},
"span": {
"start": 951,
"end": 974
}
}
}
},
"span": {
"start": 944,
"end": 974
}
}
]
},
"span": {
"start": 886,
"end": 974
}
}
},
{
"Function": {
"kind": {
"pub_": {
"start": 980,
"end": 983
},
"unsafe_": null,
"name": {
"kind": "transfer",
"span": {
"start": 987,
"end": 995
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 996,
"end": 1000
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "recipient",
"span": {
"start": 1002,
"end": 1011
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 1013,
"end": 1020
}
}
}
},
"span": {
"start": 1002,
"end": 1020
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "value",
"span": {
"start": 1022,
"end": 1027
}
},
"typ": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 1029,
"end": 1033
}
}
}
},
"span": {
"start": 1022,
"end": 1033
}
}
],
"return_type": {
"kind": {
"Base": {
"base": "bool"
}
},
"span": {
"start": 1038,
"end": 1042
}
},
"body": [
{
"kind": {
"Expr": {
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 1052,
"end": 1056
}
},
"attr": {
"kind": "_transfer",
"span": {
"start": 1057,
"end": 1066
}
}
}
},
"span": {
"start": 1052,
"end": 1066
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "msg"
},
"span": {
"start": 1067,
"end": 1070
}
},
"attr": {
"kind": "sender",
"span": {
"start": 1071,
"end": 1077
}
}
}
},
"span": {
"start": 1067,
"end": 1077
}
}
},
"span": {
"start": 1067,
"end": 1077
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "recipient"
},
"span": {
"start": 1079,
"end": 1088
}
}
},
"span": {
"start": 1079,
"end": 1088
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "value"
},
"span": {
"start": 1090,
"end": 1095
}
}
},
"span": {
"start": 1090,
"end": 1095
}
}
],
"span": {
"start": 1066,
"end": 1096
}
}
}
},
"span": {
"start": 1052,
"end": 1096
}
}
}
},
"span": {
"start": 1052,
"end": 1096
}
},
{
"kind": {
"Return": {
"value": {
"kind": {
"Bool": true
},
"span": {
"start": 1112,
"end": 1116
}
}
}
},
"span": {
"start": 1105,
"end": 1116
}
}
]
},
"span": {
"start": 980,
"end": 1116
}
}
},
{
"Function": {
"kind": {
"pub_": {
"start": 1122,
"end": 1125
},
"unsafe_": null,
"name": {
"kind": "allowance",
"span": {
"start": 1129,
"end": 1138
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 1139,
"end": 1143
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "owner",
"span": {
"start": 1145,
"end": 1150
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 1152,
"end": 1159
}
}
}
},
"span": {
"start": 1145,
"end": 1159
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "spender",
"span": {
"start": 1161,
"end": 1168
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 1170,
"end": 1177
}
}
}
},
"span": {
"start": 1161,
"end": 1177
}
}
],
"return_type": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 1182,
"end": 1186
}
},
"body": [
{
"kind": {
"Return": {
"value": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 1203,
"end": 1207
}
},
"attr": {
"kind": "_allowances",
"span": {
"start": 1208,
"end": 1219
}
}
}
},
"span": {
"start": 1203,
"end": 1219
}
},
"index": {
"kind": {
"Name": "owner"
},
"span": {
"start": 1220,
"end": 1225
}
}
}
},
"span": {
"start": 1203,
"end": 1226
}
},
"index": {
"kind": {
"Name": "spender"
},
"span": {
"start": 1227,
"end": 1234
}
}
}
},
"span": {
"start": 1203,
"end": 1235
}
}
}
},
"span": {
"start": 1196,
"end": 1235
}
}
]
},
"span": {
"start": 1122,
"end": 1235
}
}
},
{
"Function": {
"kind": {
"pub_": {
"start": 1241,
"end": 1244
},
"unsafe_": null,
"name": {
"kind": "approve",
"span": {
"start": 1248,
"end": 1255
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 1256,
"end": 1260
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "spender",
"span": {
"start": 1262,
"end": 1269
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 1271,
"end": 1278
}
}
}
},
"span": {
"start": 1262,
"end": 1278
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "value",
"span": {
"start": 1280,
"end": 1285
}
},
"typ": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 1287,
"end": 1291
}
}
}
},
"span": {
"start": 1280,
"end": 1291
}
}
],
"return_type": {
"kind": {
"Base": {
"base": "bool"
}
},
"span": {
"start": 1296,
"end": 1300
}
},
"body": [
{
"kind": {
"Expr": {
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 1310,
"end": 1314
}
},
"attr": {
"kind": "_approve",
"span": {
"start": 1315,
"end": 1323
}
}
}
},
"span": {
"start": 1310,
"end": 1323
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "msg"
},
"span": {
"start": 1324,
"end": 1327
}
},
"attr": {
"kind": "sender",
"span": {
"start": 1328,
"end": 1334
}
}
}
},
"span": {
"start": 1324,
"end": 1334
}
}
},
"span": {
"start": 1324,
"end": 1334
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "spender"
},
"span": {
"start": 1336,
"end": 1343
}
}
},
"span": {
"start": 1336,
"end": 1343
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "value"
},
"span": {
"start": 1345,
"end": 1350
}
}
},
"span": {
"start": 1345,
"end": 1350
}
}
],
"span": {
"start": 1323,
"end": 1351
}
}
}
},
"span": {
"start": 1310,
"end": 1351
}
}
}
},
"span": {
"start": 1310,
"end": 1351
}
},
{
"kind": {
"Return": {
"value": {
"kind": {
"Bool": true
},
"span": {
"start": 1367,
"end": 1371
}
}
}
},
"span": {
"start": 1360,
"end": 1371
}
}
]
},
"span": {
"start": 1241,
"end": 1371
}
}
},
{
"Function": {
"kind": {
"pub_": {
"start": 1377,
"end": 1380
},
"unsafe_": null,
"name": {
"kind": "transferFrom",
"span": {
"start": 1384,
"end": 1396
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 1397,
"end": 1401
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "sender",
"span": {
"start": 1403,
"end": 1409
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 1411,
"end": 1418
}
}
}
},
"span": {
"start": 1403,
"end": 1418
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "recipient",
"span": {
"start": 1420,
"end": 1429
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 1431,
"end": 1438
}
}
}
},
"span": {
"start": 1420,
"end": 1438
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "value",
"span": {
"start": 1440,
"end": 1445
}
},
"typ": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 1447,
"end": 1451
}
}
}
},
"span": {
"start": 1440,
"end": 1451
}
}
],
"return_type": {
"kind": {
"Base": {
"base": "bool"
}
},
"span": {
"start": 1456,
"end": 1460
}
},
"body": [
{
"kind": {
"Assert": {
"test": {
"kind": {
"CompOperation": {
"left": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 1477,
"end": 1481
}
},
"attr": {
"kind": "_allowances",
"span": {
"start": 1482,
"end": 1493
}
}
}
},
"span": {
"start": 1477,
"end": 1493
}
},
"index": {
"kind": {
"Name": "sender"
},
"span": {
"start": 1494,
"end": 1500
}
}
}
},
"span": {
"start": 1477,
"end": 1501
}
},
"index": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "msg"
},
"span": {
"start": 1502,
"end": 1505
}
},
"attr": {
"kind": "sender",
"span": {
"start": 1506,
"end": 1512
}
}
}
},
"span": {
"start": 1502,
"end": 1512
}
}
}
},
"span": {
"start": 1477,
"end": 1513
}
},
"op": {
"kind": "GtE",
"span": {
"start": 1514,
"end": 1516
}
},
"right": {
"kind": {
"Name": "value"
},
"span": {
"start": 1517,
"end": 1522
}
}
}
},
"span": {
"start": 1477,
"end": 1522
}
},
"msg": null
}
},
"span": {
"start": 1470,
"end": 1522
}
},
{
"kind": {
"Expr": {
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 1531,
"end": 1535
}
},
"attr": {
"kind": "_transfer",
"span": {
"start": 1536,
"end": 1545
}
}
}
},
"span": {
"start": 1531,
"end": 1545
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "sender"
},
"span": {
"start": 1546,
"end": 1552
}
}
},
"span": {
"start": 1546,
"end": 1552
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "recipient"
},
"span": {
"start": 1554,
"end": 1563
}
}
},
"span": {
"start": 1554,
"end": 1563
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "value"
},
"span": {
"start": 1565,
"end": 1570
}
}
},
"span": {
"start": 1565,
"end": 1570
}
}
],
"span": {
"start": 1545,
"end": 1571
}
}
}
},
"span": {
"start": 1531,
"end": 1571
}
}
}
},
"span": {
"start": 1531,
"end": 1571
}
},
{
"kind": {
"Expr": {
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 1580,
"end": 1584
}
},
"attr": {
"kind": "_approve",
"span": {
"start": 1585,
"end": 1593
}
}
}
},
"span": {
"start": 1580,
"end": 1593
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "sender"
},
"span": {
"start": 1594,
"end": 1600
}
}
},
"span": {
"start": 1594,
"end": 1600
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "msg"
},
"span": {
"start": 1602,
"end": 1605
}
},
"attr": {
"kind": "sender",
"span": {
"start": 1606,
"end": 1612
}
}
}
},
"span": {
"start": 1602,
"end": 1612
}
}
},
"span": {
"start": 1602,
"end": 1612
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"BinOperation": {
"left": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 1614,
"end": 1618
}
},
"attr": {
"kind": "_allowances",
"span": {
"start": 1619,
"end": 1630
}
}
}
},
"span": {
"start": 1614,
"end": 1630
}
},
"index": {
"kind": {
"Name": "sender"
},
"span": {
"start": 1631,
"end": 1637
}
}
}
},
"span": {
"start": 1614,
"end": 1638
}
},
"index": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "msg"
},
"span": {
"start": 1639,
"end": 1642
}
},
"attr": {
"kind": "sender",
"span": {
"start": 1643,
"end": 1649
}
}
}
},
"span": {
"start": 1639,
"end": 1649
}
}
}
},
"span": {
"start": 1614,
"end": 1650
}
},
"op": {
"kind": "Sub",
"span": {
"start": 1651,
"end": 1652
}
},
"right": {
"kind": {
"Name": "value"
},
"span": {
"start": 1653,
"end": 1658
}
}
}
},
"span": {
"start": 1614,
"end": 1658
}
}
},
"span": {
"start": 1614,
"end": 1658
}
}
],
"span": {
"start": 1593,
"end": 1659
}
}
}
},
"span": {
"start": 1580,
"end": 1659
}
}
}
},
"span": {
"start": 1580,
"end": 1659
}
},
{
"kind": {
"Return": {
"value": {
"kind": {
"Bool": true
},
"span": {
"start": 1675,
"end": 1679
}
}
}
},
"span": {
"start": 1668,
"end": 1679
}
}
]
},
"span": {
"start": 1377,
"end": 1679
}
}
},
{
"Function": {
"kind": {
"pub_": {
"start": 1685,
"end": 1688
},
"unsafe_": null,
"name": {
"kind": "increaseAllowance",
"span": {
"start": 1692,
"end": 1709
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 1710,
"end": 1714
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "spender",
"span": {
"start": 1716,
"end": 1723
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 1725,
"end": 1732
}
}
}
},
"span": {
"start": 1716,
"end": 1732
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "addedValue",
"span": {
"start": 1734,
"end": 1744
}
},
"typ": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 1746,
"end": 1750
}
}
}
},
"span": {
"start": 1734,
"end": 1750
}
}
],
"return_type": {
"kind": {
"Base": {
"base": "bool"
}
},
"span": {
"start": 1755,
"end": 1759
}
},
"body": [
{
"kind": {
"Expr": {
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 1769,
"end": 1773
}
},
"attr": {
"kind": "_approve",
"span": {
"start": 1774,
"end": 1782
}
}
}
},
"span": {
"start": 1769,
"end": 1782
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "msg"
},
"span": {
"start": 1783,
"end": 1786
}
},
"attr": {
"kind": "sender",
"span": {
"start": 1787,
"end": 1793
}
}
}
},
"span": {
"start": 1783,
"end": 1793
}
}
},
"span": {
"start": 1783,
"end": 1793
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "spender"
},
"span": {
"start": 1795,
"end": 1802
}
}
},
"span": {
"start": 1795,
"end": 1802
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"BinOperation": {
"left": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 1804,
"end": 1808
}
},
"attr": {
"kind": "_allowances",
"span": {
"start": 1809,
"end": 1820
}
}
}
},
"span": {
"start": 1804,
"end": 1820
}
},
"index": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "msg"
},
"span": {
"start": 1821,
"end": 1824
}
},
"attr": {
"kind": "sender",
"span": {
"start": 1825,
"end": 1831
}
}
}
},
"span": {
"start": 1821,
"end": 1831
}
}
}
},
"span": {
"start": 1804,
"end": 1832
}
},
"index": {
"kind": {
"Name": "spender"
},
"span": {
"start": 1833,
"end": 1840
}
}
}
},
"span": {
"start": 1804,
"end": 1841
}
},
"op": {
"kind": "Add",
"span": {
"start": 1842,
"end": 1843
}
},
"right": {
"kind": {
"Name": "addedValue"
},
"span": {
"start": 1844,
"end": 1854
}
}
}
},
"span": {
"start": 1804,
"end": 1854
}
}
},
"span": {
"start": 1804,
"end": 1854
}
}
],
"span": {
"start": 1782,
"end": 1855
}
}
}
},
"span": {
"start": 1769,
"end": 1855
}
}
}
},
"span": {
"start": 1769,
"end": 1855
}
},
{
"kind": {
"Return": {
"value": {
"kind": {
"Bool": true
},
"span": {
"start": 1871,
"end": 1875
}
}
}
},
"span": {
"start": 1864,
"end": 1875
}
}
]
},
"span": {
"start": 1685,
"end": 1875
}
}
},
{
"Function": {
"kind": {
"pub_": {
"start": 1881,
"end": 1884
},
"unsafe_": null,
"name": {
"kind": "decreaseAllowance",
"span": {
"start": 1888,
"end": 1905
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 1906,
"end": 1910
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "spender",
"span": {
"start": 1912,
"end": 1919
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 1921,
"end": 1928
}
}
}
},
"span": {
"start": 1912,
"end": 1928
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "subtractedValue",
"span": {
"start": 1930,
"end": 1945
}
},
"typ": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 1947,
"end": 1951
}
}
}
},
"span": {
"start": 1930,
"end": 1951
}
}
],
"return_type": {
"kind": {
"Base": {
"base": "bool"
}
},
"span": {
"start": 1956,
"end": 1960
}
},
"body": [
{
"kind": {
"Expr": {
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 1970,
"end": 1974
}
},
"attr": {
"kind": "_approve",
"span": {
"start": 1975,
"end": 1983
}
}
}
},
"span": {
"start": 1970,
"end": 1983
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "msg"
},
"span": {
"start": 1984,
"end": 1987
}
},
"attr": {
"kind": "sender",
"span": {
"start": 1988,
"end": 1994
}
}
}
},
"span": {
"start": 1984,
"end": 1994
}
}
},
"span": {
"start": 1984,
"end": 1994
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "spender"
},
"span": {
"start": 1996,
"end": 2003
}
}
},
"span": {
"start": 1996,
"end": 2003
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"BinOperation": {
"left": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 2005,
"end": 2009
}
},
"attr": {
"kind": "_allowances",
"span": {
"start": 2010,
"end": 2021
}
}
}
},
"span": {
"start": 2005,
"end": 2021
}
},
"index": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "msg"
},
"span": {
"start": 2022,
"end": 2025
}
},
"attr": {
"kind": "sender",
"span": {
"start": 2026,
"end": 2032
}
}
}
},
"span": {
"start": 2022,
"end": 2032
}
}
}
},
"span": {
"start": 2005,
"end": 2033
}
},
"index": {
"kind": {
"Name": "spender"
},
"span": {
"start": 2034,
"end": 2041
}
}
}
},
"span": {
"start": 2005,
"end": 2042
}
},
"op": {
"kind": "Sub",
"span": {
"start": 2043,
"end": 2044
}
},
"right": {
"kind": {
"Name": "subtractedValue"
},
"span": {
"start": 2045,
"end": 2060
}
}
}
},
"span": {
"start": 2005,
"end": 2060
}
}
},
"span": {
"start": 2005,
"end": 2060
}
}
],
"span": {
"start": 1983,
"end": 2061
}
}
}
},
"span": {
"start": 1970,
"end": 2061
}
}
}
},
"span": {
"start": 1970,
"end": 2061
}
},
{
"kind": {
"Return": {
"value": {
"kind": {
"Bool": true
},
"span": {
"start": 2077,
"end": 2081
}
}
}
},
"span": {
"start": 2070,
"end": 2081
}
}
]
},
"span": {
"start": 1881,
"end": 2081
}
}
},
{
"Function": {
"kind": {
"pub_": null,
"unsafe_": null,
"name": {
"kind": "_transfer",
"span": {
"start": 2090,
"end": 2099
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 2100,
"end": 2104
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "sender",
"span": {
"start": 2106,
"end": 2112
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 2114,
"end": 2121
}
}
}
},
"span": {
"start": 2106,
"end": 2121
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "recipient",
"span": {
"start": 2123,
"end": 2132
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 2134,
"end": 2141
}
}
}
},
"span": {
"start": 2123,
"end": 2141
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "value",
"span": {
"start": 2143,
"end": 2148
}
},
"typ": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 2150,
"end": 2154
}
}
}
},
"span": {
"start": 2143,
"end": 2154
}
}
],
"return_type": null,
"body": [
{
"kind": {
"Assert": {
"test": {
"kind": {
"CompOperation": {
"left": {
"kind": {
"Name": "sender"
},
"span": {
"start": 2172,
"end": 2178
}
},
"op": {
"kind": "NotEq",
"span": {
"start": 2179,
"end": 2181
}
},
"right": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "address"
},
"span": {
"start": 2182,
"end": 2189
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Num": "0"
},
"span": {
"start": 2190,
"end": 2191
}
}
},
"span": {
"start": 2190,
"end": 2191
}
}
],
"span": {
"start": 2189,
"end": 2192
}
}
}
},
"span": {
"start": 2182,
"end": 2192
}
}
}
},
"span": {
"start": 2172,
"end": 2192
}
},
"msg": null
}
},
"span": {
"start": 2165,
"end": 2192
}
},
{
"kind": {
"Assert": {
"test": {
"kind": {
"CompOperation": {
"left": {
"kind": {
"Name": "recipient"
},
"span": {
"start": 2208,
"end": 2217
}
},
"op": {
"kind": "NotEq",
"span": {
"start": 2218,
"end": 2220
}
},
"right": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "address"
},
"span": {
"start": 2221,
"end": 2228
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Num": "0"
},
"span": {
"start": 2229,
"end": 2230
}
}
},
"span": {
"start": 2229,
"end": 2230
}
}
],
"span": {
"start": 2228,
"end": 2231
}
}
}
},
"span": {
"start": 2221,
"end": 2231
}
}
}
},
"span": {
"start": 2208,
"end": 2231
}
},
"msg": null
}
},
"span": {
"start": 2201,
"end": 2231
}
},
{
"kind": {
"Expr": {
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "_before_token_transfer"
},
"span": {
"start": 2240,
"end": 2262
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "sender"
},
"span": {
"start": 2263,
"end": 2269
}
}
},
"span": {
"start": 2263,
"end": 2269
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "recipient"
},
"span": {
"start": 2271,
"end": 2280
}
}
},
"span": {
"start": 2271,
"end": 2280
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "value"
},
"span": {
"start": 2282,
"end": 2287
}
}
},
"span": {
"start": 2282,
"end": 2287
}
}
],
"span": {
"start": 2262,
"end": 2288
}
}
}
},
"span": {
"start": 2240,
"end": 2288
}
}
}
},
"span": {
"start": 2240,
"end": 2288
}
},
{
"kind": {
"Assign": {
"target": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 2297,
"end": 2301
}
},
"attr": {
"kind": "_balances",
"span": {
"start": 2302,
"end": 2311
}
}
}
},
"span": {
"start": 2297,
"end": 2311
}
},
"index": {
"kind": {
"Name": "sender"
},
"span": {
"start": 2312,
"end": 2318
}
}
}
},
"span": {
"start": 2297,
"end": 2319
}
},
"value": {
"kind": {
"BinOperation": {
"left": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 2322,
"end": 2326
}
},
"attr": {
"kind": "_balances",
"span": {
"start": 2327,
"end": 2336
}
}
}
},
"span": {
"start": 2322,
"end": 2336
}
},
"index": {
"kind": {
"Name": "sender"
},
"span": {
"start": 2337,
"end": 2343
}
}
}
},
"span": {
"start": 2322,
"end": 2344
}
},
"op": {
"kind": "Sub",
"span": {
"start": 2345,
"end": 2346
}
},
"right": {
"kind": {
"Name": "value"
},
"span": {
"start": 2347,
"end": 2352
}
}
}
},
"span": {
"start": 2322,
"end": 2352
}
}
}
},
"span": {
"start": 2297,
"end": 2352
}
},
{
"kind": {
"Assign": {
"target": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 2361,
"end": 2365
}
},
"attr": {
"kind": "_balances",
"span": {
"start": 2366,
"end": 2375
}
}
}
},
"span": {
"start": 2361,
"end": 2375
}
},
"index": {
"kind": {
"Name": "recipient"
},
"span": {
"start": 2376,
"end": 2385
}
}
}
},
"span": {
"start": 2361,
"end": 2386
}
},
"value": {
"kind": {
"BinOperation": {
"left": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 2389,
"end": 2393
}
},
"attr": {
"kind": "_balances",
"span": {
"start": 2394,
"end": 2403
}
}
}
},
"span": {
"start": 2389,
"end": 2403
}
},
"index": {
"kind": {
"Name": "recipient"
},
"span": {
"start": 2404,
"end": 2413
}
}
}
},
"span": {
"start": 2389,
"end": 2414
}
},
"op": {
"kind": "Add",
"span": {
"start": 2415,
"end": 2416
}
},
"right": {
"kind": {
"Name": "value"
},
"span": {
"start": 2417,
"end": 2422
}
}
}
},
"span": {
"start": 2389,
"end": 2422
}
}
}
},
"span": {
"start": 2361,
"end": 2422
}
},
{
"kind": {
"Emit": {
"name": {
"kind": "Transfer",
"span": {
"start": 2436,
"end": 2444
}
},
"args": {
"kind": [
{
"kind": {
"label": {
"kind": "from",
"span": {
"start": 2445,
"end": 2449
}
},
"value": {
"kind": {
"Name": "sender"
},
"span": {
"start": 2450,
"end": 2456
}
}
},
"span": {
"start": 2445,
"end": 2456
}
},
{
"kind": {
"label": {
"kind": "to",
"span": {
"start": 2458,
"end": 2460
}
},
"value": {
"kind": {
"Name": "recipient"
},
"span": {
"start": 2461,
"end": 2470
}
}
},
"span": {
"start": 2458,
"end": 2470
}
},
{
"kind": {
"label": {
"kind": "value",
"span": {
"start": 2472,
"end": 2477
}
},
"value": {
"kind": {
"Name": "value"
},
"span": {
"start": 2478,
"end": 2483
}
}
},
"span": {
"start": 2472,
"end": 2483
}
}
],
"span": {
"start": 2444,
"end": 2484
}
}
}
},
"span": {
"start": 2431,
"end": 2484
}
}
]
},
"span": {
"start": 2087,
"end": 2484
}
}
},
{
"Function": {
"kind": {
"pub_": null,
"unsafe_": null,
"name": {
"kind": "_mint",
"span": {
"start": 2493,
"end": 2498
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 2499,
"end": 2503
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "account",
"span": {
"start": 2505,
"end": 2512
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 2514,
"end": 2521
}
}
}
},
"span": {
"start": 2505,
"end": 2521
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "value",
"span": {
"start": 2523,
"end": 2528
}
},
"typ": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 2530,
"end": 2534
}
}
}
},
"span": {
"start": 2523,
"end": 2534
}
}
],
"return_type": null,
"body": [
{
"kind": {
"Assert": {
"test": {
"kind": {
"CompOperation": {
"left": {
"kind": {
"Name": "account"
},
"span": {
"start": 2552,
"end": 2559
}
},
"op": {
"kind": "NotEq",
"span": {
"start": 2560,
"end": 2562
}
},
"right": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "address"
},
"span": {
"start": 2563,
"end": 2570
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Num": "0"
},
"span": {
"start": 2571,
"end": 2572
}
}
},
"span": {
"start": 2571,
"end": 2572
}
}
],
"span": {
"start": 2570,
"end": 2573
}
}
}
},
"span": {
"start": 2563,
"end": 2573
}
}
}
},
"span": {
"start": 2552,
"end": 2573
}
},
"msg": null
}
},
"span": {
"start": 2545,
"end": 2573
}
},
{
"kind": {
"Expr": {
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "_before_token_transfer"
},
"span": {
"start": 2582,
"end": 2604
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "address"
},
"span": {
"start": 2605,
"end": 2612
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Num": "0"
},
"span": {
"start": 2613,
"end": 2614
}
}
},
"span": {
"start": 2613,
"end": 2614
}
}
],
"span": {
"start": 2612,
"end": 2615
}
}
}
},
"span": {
"start": 2605,
"end": 2615
}
}
},
"span": {
"start": 2605,
"end": 2615
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "account"
},
"span": {
"start": 2617,
"end": 2624
}
}
},
"span": {
"start": 2617,
"end": 2624
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "value"
},
"span": {
"start": 2626,
"end": 2631
}
}
},
"span": {
"start": 2626,
"end": 2631
}
}
],
"span": {
"start": 2604,
"end": 2632
}
}
}
},
"span": {
"start": 2582,
"end": 2632
}
}
}
},
"span": {
"start": 2582,
"end": 2632
}
},
{
"kind": {
"Assign": {
"target": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 2641,
"end": 2645
}
},
"attr": {
"kind": "_total_supply",
"span": {
"start": 2646,
"end": 2659
}
}
}
},
"span": {
"start": 2641,
"end": 2659
}
},
"value": {
"kind": {
"BinOperation": {
"left": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 2662,
"end": 2666
}
},
"attr": {
"kind": "_total_supply",
"span": {
"start": 2667,
"end": 2680
}
}
}
},
"span": {
"start": 2662,
"end": 2680
}
},
"op": {
"kind": "Add",
"span": {
"start": 2681,
"end": 2682
}
},
"right": {
"kind": {
"Name": "value"
},
"span": {
"start": 2683,
"end": 2688
}
}
}
},
"span": {
"start": 2662,
"end": 2688
}
}
}
},
"span": {
"start": 2641,
"end": 2688
}
},
{
"kind": {
"Assign": {
"target": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 2697,
"end": 2701
}
},
"attr": {
"kind": "_balances",
"span": {
"start": 2702,
"end": 2711
}
}
}
},
"span": {
"start": 2697,
"end": 2711
}
},
"index": {
"kind": {
"Name": "account"
},
"span": {
"start": 2712,
"end": 2719
}
}
}
},
"span": {
"start": 2697,
"end": 2720
}
},
"value": {
"kind": {
"BinOperation": {
"left": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 2723,
"end": 2727
}
},
"attr": {
"kind": "_balances",
"span": {
"start": 2728,
"end": 2737
}
}
}
},
"span": {
"start": 2723,
"end": 2737
}
},
"index": {
"kind": {
"Name": "account"
},
"span": {
"start": 2738,
"end": 2745
}
}
}
},
"span": {
"start": 2723,
"end": 2746
}
},
"op": {
"kind": "Add",
"span": {
"start": 2747,
"end": 2748
}
},
"right": {
"kind": {
"Name": "value"
},
"span": {
"start": 2749,
"end": 2754
}
}
}
},
"span": {
"start": 2723,
"end": 2754
}
}
}
},
"span": {
"start": 2697,
"end": 2754
}
},
{
"kind": {
"Emit": {
"name": {
"kind": "Transfer",
"span": {
"start": 2768,
"end": 2776
}
},
"args": {
"kind": [
{
"kind": {
"label": {
"kind": "from",
"span": {
"start": 2777,
"end": 2781
}
},
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "address"
},
"span": {
"start": 2782,
"end": 2789
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Num": "0"
},
"span": {
"start": 2790,
"end": 2791
}
}
},
"span": {
"start": 2790,
"end": 2791
}
}
],
"span": {
"start": 2789,
"end": 2792
}
}
}
},
"span": {
"start": 2782,
"end": 2792
}
}
},
"span": {
"start": 2777,
"end": 2792
}
},
{
"kind": {
"label": {
"kind": "to",
"span": {
"start": 2794,
"end": 2796
}
},
"value": {
"kind": {
"Name": "account"
},
"span": {
"start": 2797,
"end": 2804
}
}
},
"span": {
"start": 2794,
"end": 2804
}
},
{
"kind": {
"label": {
"kind": "value",
"span": {
"start": 2806,
"end": 2811
}
},
"value": {
"kind": {
"Name": "value"
},
"span": {
"start": 2812,
"end": 2817
}
}
},
"span": {
"start": 2806,
"end": 2817
}
}
],
"span": {
"start": 2776,
"end": 2818
}
}
}
},
"span": {
"start": 2763,
"end": 2818
}
}
]
},
"span": {
"start": 2490,
"end": 2818
}
}
},
{
"Function": {
"kind": {
"pub_": null,
"unsafe_": null,
"name": {
"kind": "_burn",
"span": {
"start": 2827,
"end": 2832
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 2833,
"end": 2837
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "account",
"span": {
"start": 2839,
"end": 2846
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 2848,
"end": 2855
}
}
}
},
"span": {
"start": 2839,
"end": 2855
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "value",
"span": {
"start": 2857,
"end": 2862
}
},
"typ": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 2864,
"end": 2868
}
}
}
},
"span": {
"start": 2857,
"end": 2868
}
}
],
"return_type": null,
"body": [
{
"kind": {
"Assert": {
"test": {
"kind": {
"CompOperation": {
"left": {
"kind": {
"Name": "account"
},
"span": {
"start": 2886,
"end": 2893
}
},
"op": {
"kind": "NotEq",
"span": {
"start": 2894,
"end": 2896
}
},
"right": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "address"
},
"span": {
"start": 2897,
"end": 2904
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Num": "0"
},
"span": {
"start": 2905,
"end": 2906
}
}
},
"span": {
"start": 2905,
"end": 2906
}
}
],
"span": {
"start": 2904,
"end": 2907
}
}
}
},
"span": {
"start": 2897,
"end": 2907
}
}
}
},
"span": {
"start": 2886,
"end": 2907
}
},
"msg": null
}
},
"span": {
"start": 2879,
"end": 2907
}
},
{
"kind": {
"Expr": {
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "_before_token_transfer"
},
"span": {
"start": 2916,
"end": 2938
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "account"
},
"span": {
"start": 2939,
"end": 2946
}
}
},
"span": {
"start": 2939,
"end": 2946
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "address"
},
"span": {
"start": 2948,
"end": 2955
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Num": "0"
},
"span": {
"start": 2956,
"end": 2957
}
}
},
"span": {
"start": 2956,
"end": 2957
}
}
],
"span": {
"start": 2955,
"end": 2958
}
}
}
},
"span": {
"start": 2948,
"end": 2958
}
}
},
"span": {
"start": 2948,
"end": 2958
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "value"
},
"span": {
"start": 2960,
"end": 2965
}
}
},
"span": {
"start": 2960,
"end": 2965
}
}
],
"span": {
"start": 2938,
"end": 2966
}
}
}
},
"span": {
"start": 2916,
"end": 2966
}
}
}
},
"span": {
"start": 2916,
"end": 2966
}
},
{
"kind": {
"Assign": {
"target": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 2975,
"end": 2979
}
},
"attr": {
"kind": "_balances",
"span": {
"start": 2980,
"end": 2989
}
}
}
},
"span": {
"start": 2975,
"end": 2989
}
},
"index": {
"kind": {
"Name": "account"
},
"span": {
"start": 2990,
"end": 2997
}
}
}
},
"span": {
"start": 2975,
"end": 2998
}
},
"value": {
"kind": {
"BinOperation": {
"left": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 3001,
"end": 3005
}
},
"attr": {
"kind": "_balances",
"span": {
"start": 3006,
"end": 3015
}
}
}
},
"span": {
"start": 3001,
"end": 3015
}
},
"index": {
"kind": {
"Name": "account"
},
"span": {
"start": 3016,
"end": 3023
}
}
}
},
"span": {
"start": 3001,
"end": 3024
}
},
"op": {
"kind": "Sub",
"span": {
"start": 3025,
"end": 3026
}
},
"right": {
"kind": {
"Name": "value"
},
"span": {
"start": 3027,
"end": 3032
}
}
}
},
"span": {
"start": 3001,
"end": 3032
}
}
}
},
"span": {
"start": 2975,
"end": 3032
}
},
{
"kind": {
"Assign": {
"target": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 3041,
"end": 3045
}
},
"attr": {
"kind": "_total_supply",
"span": {
"start": 3046,
"end": 3059
}
}
}
},
"span": {
"start": 3041,
"end": 3059
}
},
"value": {
"kind": {
"BinOperation": {
"left": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 3062,
"end": 3066
}
},
"attr": {
"kind": "_total_supply",
"span": {
"start": 3067,
"end": 3080
}
}
}
},
"span": {
"start": 3062,
"end": 3080
}
},
"op": {
"kind": "Sub",
"span": {
"start": 3081,
"end": 3082
}
},
"right": {
"kind": {
"Name": "value"
},
"span": {
"start": 3083,
"end": 3088
}
}
}
},
"span": {
"start": 3062,
"end": 3088
}
}
}
},
"span": {
"start": 3041,
"end": 3088
}
},
{
"kind": {
"Emit": {
"name": {
"kind": "Transfer",
"span": {
"start": 3102,
"end": 3110
}
},
"args": {
"kind": [
{
"kind": {
"label": {
"kind": "from",
"span": {
"start": 3111,
"end": 3115
}
},
"value": {
"kind": {
"Name": "account"
},
"span": {
"start": 3116,
"end": 3123
}
}
},
"span": {
"start": 3111,
"end": 3123
}
},
{
"kind": {
"label": {
"kind": "to",
"span": {
"start": 3125,
"end": 3127
}
},
"value": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "address"
},
"span": {
"start": 3128,
"end": 3135
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Num": "0"
},
"span": {
"start": 3136,
"end": 3137
}
}
},
"span": {
"start": 3136,
"end": 3137
}
}
],
"span": {
"start": 3135,
"end": 3138
}
}
}
},
"span": {
"start": 3128,
"end": 3138
}
}
},
"span": {
"start": 3125,
"end": 3138
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "value"
},
"span": {
"start": 3140,
"end": 3145
}
}
},
"span": {
"start": 3140,
"end": 3145
}
}
],
"span": {
"start": 3110,
"end": 3146
}
}
}
},
"span": {
"start": 3097,
"end": 3146
}
}
]
},
"span": {
"start": 2824,
"end": 3146
}
}
},
{
"Function": {
"kind": {
"pub_": null,
"unsafe_": null,
"name": {
"kind": "_approve",
"span": {
"start": 3155,
"end": 3163
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 3164,
"end": 3168
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "owner",
"span": {
"start": 3170,
"end": 3175
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 3177,
"end": 3184
}
}
}
},
"span": {
"start": 3170,
"end": 3184
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "spender",
"span": {
"start": 3186,
"end": 3193
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 3195,
"end": 3202
}
}
}
},
"span": {
"start": 3186,
"end": 3202
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "value",
"span": {
"start": 3204,
"end": 3209
}
},
"typ": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 3211,
"end": 3215
}
}
}
},
"span": {
"start": 3204,
"end": 3215
}
}
],
"return_type": null,
"body": [
{
"kind": {
"Assert": {
"test": {
"kind": {
"CompOperation": {
"left": {
"kind": {
"Name": "owner"
},
"span": {
"start": 3233,
"end": 3238
}
},
"op": {
"kind": "NotEq",
"span": {
"start": 3239,
"end": 3241
}
},
"right": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "address"
},
"span": {
"start": 3242,
"end": 3249
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Num": "0"
},
"span": {
"start": 3250,
"end": 3251
}
}
},
"span": {
"start": 3250,
"end": 3251
}
}
],
"span": {
"start": 3249,
"end": 3252
}
}
}
},
"span": {
"start": 3242,
"end": 3252
}
}
}
},
"span": {
"start": 3233,
"end": 3252
}
},
"msg": null
}
},
"span": {
"start": 3226,
"end": 3252
}
},
{
"kind": {
"Assert": {
"test": {
"kind": {
"CompOperation": {
"left": {
"kind": {
"Name": "spender"
},
"span": {
"start": 3268,
"end": 3275
}
},
"op": {
"kind": "NotEq",
"span": {
"start": 3276,
"end": 3278
}
},
"right": {
"kind": {
"Call": {
"func": {
"kind": {
"Name": "address"
},
"span": {
"start": 3279,
"end": 3286
}
},
"generic_args": null,
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Num": "0"
},
"span": {
"start": 3287,
"end": 3288
}
}
},
"span": {
"start": 3287,
"end": 3288
}
}
],
"span": {
"start": 3286,
"end": 3289
}
}
}
},
"span": {
"start": 3279,
"end": 3289
}
}
}
},
"span": {
"start": 3268,
"end": 3289
}
},
"msg": null
}
},
"span": {
"start": 3261,
"end": 3289
}
},
{
"kind": {
"Assign": {
"target": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Subscript": {
"value": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 3298,
"end": 3302
}
},
"attr": {
"kind": "_allowances",
"span": {
"start": 3303,
"end": 3314
}
}
}
},
"span": {
"start": 3298,
"end": 3314
}
},
"index": {
"kind": {
"Name": "owner"
},
"span": {
"start": 3315,
"end": 3320
}
}
}
},
"span": {
"start": 3298,
"end": 3321
}
},
"index": {
"kind": {
"Name": "spender"
},
"span": {
"start": 3322,
"end": 3329
}
}
}
},
"span": {
"start": 3298,
"end": 3330
}
},
"value": {
"kind": {
"Name": "value"
},
"span": {
"start": 3333,
"end": 3338
}
}
}
},
"span": {
"start": 3298,
"end": 3338
}
},
{
"kind": {
"Emit": {
"name": {
"kind": "Approval",
"span": {
"start": 3352,
"end": 3360
}
},
"args": {
"kind": [
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "owner"
},
"span": {
"start": 3361,
"end": 3366
}
}
},
"span": {
"start": 3361,
"end": 3366
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "spender"
},
"span": {
"start": 3368,
"end": 3375
}
}
},
"span": {
"start": 3368,
"end": 3375
}
},
{
"kind": {
"label": null,
"value": {
"kind": {
"Name": "value"
},
"span": {
"start": 3377,
"end": 3382
}
}
},
"span": {
"start": 3377,
"end": 3382
}
}
],
"span": {
"start": 3360,
"end": 3383
}
}
}
},
"span": {
"start": 3347,
"end": 3383
}
}
]
},
"span": {
"start": 3152,
"end": 3383
}
}
},
{
"Function": {
"kind": {
"pub_": null,
"unsafe_": null,
"name": {
"kind": "_setup_decimals",
"span": {
"start": 3392,
"end": 3407
}
},
"args": [
{
"kind": "Zelf",
"span": {
"start": 3408,
"end": 3412
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "decimals_",
"span": {
"start": 3414,
"end": 3423
}
},
"typ": {
"kind": {
"Base": {
"base": "u8"
}
},
"span": {
"start": 3425,
"end": 3427
}
}
}
},
"span": {
"start": 3414,
"end": 3427
}
}
],
"return_type": null,
"body": [
{
"kind": {
"Assign": {
"target": {
"kind": {
"Attribute": {
"value": {
"kind": {
"Name": "self"
},
"span": {
"start": 3438,
"end": 3442
}
},
"attr": {
"kind": "_decimals",
"span": {
"start": 3443,
"end": 3452
}
}
}
},
"span": {
"start": 3438,
"end": 3452
}
},
"value": {
"kind": {
"Name": "decimals_"
},
"span": {
"start": 3455,
"end": 3464
}
}
}
},
"span": {
"start": 3438,
"end": 3464
}
}
]
},
"span": {
"start": 3389,
"end": 3464
}
}
},
{
"Function": {
"kind": {
"pub_": null,
"unsafe_": null,
"name": {
"kind": "_before_token_transfer",
"span": {
"start": 3473,
"end": 3495
}
},
"args": [
{
"kind": {
"Regular": {
"name": {
"kind": "from",
"span": {
"start": 3496,
"end": 3500
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 3502,
"end": 3509
}
}
}
},
"span": {
"start": 3496,
"end": 3509
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "to",
"span": {
"start": 3511,
"end": 3513
}
},
"typ": {
"kind": {
"Base": {
"base": "address"
}
},
"span": {
"start": 3515,
"end": 3522
}
}
}
},
"span": {
"start": 3511,
"end": 3522
}
},
{
"kind": {
"Regular": {
"name": {
"kind": "value",
"span": {
"start": 3524,
"end": 3529
}
},
"typ": {
"kind": {
"Base": {
"base": "u256"
}
},
"span": {
"start": 3531,
"end": 3535
}
}
}
},
"span": {
"start": 3524,
"end": 3535
}
}
],
"return_type": null,
"body": [
{
"kind": "Pass",
"span": {
"start": 3546,
"end": 3550
}
}
]
},
"span": {
"start": 3470,
"end": 3550
}
}
}
]
},
"span": {
"start": 0,
"end": 3550
}
}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment