tokenboost-solidity
Version:
Solidity contracts for TokenBoost
1,268 lines (1,267 loc) • 82.5 kB
JSON
{
"contractName": "ByteUtils",
"abi": [],
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f30073000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820d7bded153e59304a5d9f377c509e75cb7a1ed78013557e8fe8ec21bbb31b51ce0029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fd00a165627a7a72305820d7bded153e59304a5d9f377c509e75cb7a1ed78013557e8fe8ec21bbb31b51ce0029",
"sourceMap": "26:893:20:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24",
"deployedSourceMap": "26:893:20:-;;;;;;;;",
"source": "pragma solidity ^0.4.24;\n\nlibrary ByteUtils {\n function pointer(bytes memory self) internal pure returns (uint ptr) {\n assembly {\n ptr := add(self, 0x20)\n }\n }\n\n function copy(bytes memory self, uint toOffset, bytes memory from, uint fromOffset, uint length) internal pure {\n // Copy word-length chunks while possible\n uint toPtr = pointer(self) + toOffset;\n uint fromPtr = pointer(from) + fromOffset;\n for (; length >= 32; length -= 32) {\n assembly {\n mstore(toPtr, mload(fromPtr))\n }\n toPtr += 32;\n fromPtr += 32;\n }\n\n // Copy remaining bytes\n uint mask = 256 ** (32 - length) - 1;\n assembly {\n let fromPart := and(mload(fromPtr), not(mask))\n let toPart := and(mload(toPtr), mask)\n mstore(toPtr, or(toPart, fromPart))\n }\n }\n}",
"sourcePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity/contracts/utils/ByteUtils.sol",
"ast": {
"absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity/contracts/utils/ByteUtils.sol",
"exportedSymbols": {
"ByteUtils": [
2385
]
},
"id": 2386,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2315,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:20"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 2385,
"linearizedBaseContracts": [
2385
],
"name": "ByteUtils",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 2323,
"nodeType": "Block",
"src": "119:71:20",
"statements": [
{
"externalReferences": [
{
"ptr": {
"declaration": 2320,
"isOffset": false,
"isSlot": false,
"src": "152:3:20",
"valueSize": 1
}
},
{
"self": {
"declaration": 2317,
"isOffset": false,
"isSlot": false,
"src": "163:4:20",
"valueSize": 1
}
}
],
"id": 2322,
"nodeType": "InlineAssembly",
"operations": "{\n ptr := add(self, 0x20)\n}",
"src": "129:61:20"
}
]
},
"documentation": null,
"id": 2324,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "pointer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2318,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2317,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 2324,
"src": "67:17:20",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2316,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "67:5:20",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "66:19:20"
},
"payable": false,
"returnParameters": {
"id": 2321,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2320,
"name": "ptr",
"nodeType": "VariableDeclaration",
"scope": 2324,
"src": "109:8:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2319,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "109:4:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "108:10:20"
},
"scope": 2385,
"src": "50:140:20",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 2383,
"nodeType": "Block",
"src": "307:610:20",
"statements": [
{
"assignments": [
2338
],
"declarations": [
{
"constant": false,
"id": 2338,
"name": "toPtr",
"nodeType": "VariableDeclaration",
"scope": 2384,
"src": "367:10:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2337,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "367:4:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2344,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2343,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2340,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2326,
"src": "388:4:20",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 2339,
"name": "pointer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2324,
"src": "380:7:20",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$",
"typeString": "function (bytes memory) pure returns (uint256)"
}
},
"id": 2341,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "380:13:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"id": 2342,
"name": "toOffset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2328,
"src": "396:8:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "380:24:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "367:37:20"
},
{
"assignments": [
2346
],
"declarations": [
{
"constant": false,
"id": 2346,
"name": "fromPtr",
"nodeType": "VariableDeclaration",
"scope": 2384,
"src": "414:12:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2345,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "414:4:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2352,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2351,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2348,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2330,
"src": "437:4:20",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 2347,
"name": "pointer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2324,
"src": "429:7:20",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$",
"typeString": "function (bytes memory) pure returns (uint256)"
}
},
"id": 2349,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "429:13:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"id": 2350,
"name": "fromOffset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2332,
"src": "445:10:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "429:26:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "414:41:20"
},
{
"body": {
"id": 2369,
"nodeType": "Block",
"src": "500:146:20",
"statements": [
{
"externalReferences": [
{
"toPtr": {
"declaration": 2338,
"isOffset": false,
"isSlot": false,
"src": "548:5:20",
"valueSize": 1
}
},
{
"fromPtr": {
"declaration": 2346,
"isOffset": false,
"isSlot": false,
"src": "561:7:20",
"valueSize": 1
}
}
],
"id": 2360,
"nodeType": "InlineAssembly",
"operations": "{\n mstore(toPtr, mload(fromPtr))\n}",
"src": "514:88:20"
},
{
"expression": {
"argumentTypes": null,
"id": 2363,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 2361,
"name": "toPtr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2338,
"src": "597:5:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "3332",
"id": 2362,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "606:2:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "597:11:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2364,
"nodeType": "ExpressionStatement",
"src": "597:11:20"
},
{
"expression": {
"argumentTypes": null,
"id": 2367,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 2365,
"name": "fromPtr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2346,
"src": "622:7:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "3332",
"id": 2366,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "633:2:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "622:13:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2368,
"nodeType": "ExpressionStatement",
"src": "622:13:20"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2355,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2353,
"name": "length",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2334,
"src": "472:6:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3332",
"id": 2354,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "482:2:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "472:12:20",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 2370,
"initializationExpression": null,
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 2358,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 2356,
"name": "length",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2334,
"src": "486:6:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "3332",
"id": 2357,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "496:2:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"src": "486:12:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2359,
"nodeType": "ExpressionStatement",
"src": "486:12:20"
},
"nodeType": "ForStatement",
"src": "465:181:20"
},
{
"assignments": [
2372
],
"declarations": [
{
"constant": false,
"id": 2372,
"name": "mask",
"nodeType": "VariableDeclaration",
"scope": 2384,
"src": "688:9:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2371,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "688:4:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2381,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2380,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2378,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "323536",
"id": 2373,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "700:3:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_256_by_1",
"typeString": "int_const 256"
},
"value": "256"
},
"nodeType": "BinaryOperation",
"operator": "**",
"rightExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2376,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3332",
"id": 2374,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "708:2:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_32_by_1",
"typeString": "int_const 32"
},
"value": "32"
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"id": 2375,
"name": "length",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2334,
"src": "713:6:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "708:11:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 2377,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "707:13:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "700:20:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 2379,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "723:1:20",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "700:24:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "688:36:20"
},
{
"externalReferences": [
{
"fromPtr": {
"declaration": 2346,
"isOffset": false,
"isSlot": false,
"src": "783:7:20",
"valueSize": 1
}
},
{
"mask": {
"declaration": 2372,
"isOffset": false,
"isSlot": false,
"src": "797:4:20",
"valueSize": 1
}
},
{
"toPtr": {
"declaration": 2338,
"isOffset": false,
"isSlot": false,
"src": "840:5:20",
"valueSize": 1
}
},
{
"mask": {
"declaration": 2372,
"isOffset": false,
"isSlot": false,
"src": "848:4:20",
"valueSize": 1
}
},
{
"toPtr": {
"declaration": 2338,
"isOffset": false,
"isSlot": false,
"src": "873:5:20",
"valueSize": 1
}
}
],
"id": 2382,
"nodeType": "InlineAssembly",
"operations": "{\n let fromPart := and(mload(fromPtr), not(mask))\n let toPart := and(mload(toPtr), mask)\n mstore(toPtr, or(toPart, fromPart))\n}",
"src": "734:183:20"
}
]
},
"documentation": null,
"id": 2384,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "copy",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2335,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2326,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 2384,
"src": "210:17:20",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2325,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "210:5:20",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2328,
"name": "toOffset",
"nodeType": "VariableDeclaration",
"scope": 2384,
"src": "229:13:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2327,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "229:4:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2330,
"name": "from",
"nodeType": "VariableDeclaration",
"scope": 2384,
"src": "244:17:20",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2329,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "244:5:20",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2332,
"name": "fromOffset",
"nodeType": "VariableDeclaration",
"scope": 2384,
"src": "263:15:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2331,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "263:4:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2334,
"name": "length",
"nodeType": "VariableDeclaration",
"scope": 2384,
"src": "280:11:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2333,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "280:4:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "209:83:20"
},
"payable": false,
"returnParameters": {
"id": 2336,
"nodeType": "ParameterList",
"parameters": [],
"src": "307:0:20"
},
"scope": 2385,
"src": "196:721:20",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 2386,
"src": "26:893:20"
}
],
"src": "0:919:20"
},
"legacyAST": {
"absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity/contracts/utils/ByteUtils.sol",
"exportedSymbols": {
"ByteUtils": [
2385
]
},
"id": 2386,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2315,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:20"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 2385,
"linearizedBaseContracts": [
2385
],
"name": "ByteUtils",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 2323,
"nodeType": "Block",
"src": "119:71:20",
"statements": [
{
"externalReferences": [
{
"ptr": {
"declaration": 2320,
"isOffset": false,
"isSlot": false,
"src": "152:3:20",
"valueSize": 1
}
},
{
"self": {
"declaration": 2317,
"isOffset": false,
"isSlot": false,
"src": "163:4:20",
"valueSize": 1
}
}
],
"id": 2322,
"nodeType": "InlineAssembly",
"operations": "{\n ptr := add(self, 0x20)\n}",
"src": "129:61:20"
}
]
},
"documentation": null,
"id": 2324,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "pointer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2318,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2317,
"name": "self",
"nodeType": "VariableDeclaration",
"scope": 2324,
"src": "67:17:20",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2316,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "67:5:20",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "66:19:20"
},
"payable": false,
"returnParameters": {
"id": 2321,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2320,
"name": "ptr",
"nodeType": "VariableDeclaration",
"scope": 2324,
"src": "109:8:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2319,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "109:4:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "108:10:20"
},
"scope": 2385,
"src": "50:140:20",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 2383,
"nodeType": "Block",
"src": "307:610:20",
"statements": [
{
"assignments": [
2338
],
"declarations": [
{
"constant": false,
"id": 2338,
"name": "toPtr",
"nodeType": "VariableDeclaration",
"scope": 2384,
"src": "367:10:20",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2337,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "367:4:20",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2344,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2343,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2340,
"name": "self",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2326,
"src": "388:4:20",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 2339,
"name": "pointer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2324,
"src": "380:7:20",
"typeDescriptions": {