madfish-solutions / sol2ligo

⌨️ 🔮 Transpiler from Solidity to PascalLIGO language
https://madfish-solutions.github.io/sol2ligo/
MIT License
70 stars 4 forks source link

Can't Translate a PaymentSplitter: InlineAssembly is not supported #332

Closed johnnyshankman closed 2 years ago

johnnyshankman commented 2 years ago

Cannot translate a flattened PaymentSplitter instance from OpenZeppelin.

https://etherscan.io/address/0xfc9961d08ef8e04db145b9fb3d48cf8dba96116d#readContract

$ sol2ligo flatten.sol

± |master U:1 ?:1 ✗| → sol2ligo flatten.sol
loading solc soljson-v0.8.0+commit.c7dfd78e.js
WARNING (AST gen). InlineAssembly is not supported. Read more: https://github.com/madfish-solutions/sol2ligo/wiki/Known-issues#inline-assembler
WARNING (AST gen). Can't resolve type Error: unpack_id_type unknown typeString 'function (bool,string memory) pure'
WARNING (AST gen). Can't resolve type Error: unpack_id_type unknown typeString 'library Address'
{
  argumentTypes: [
    {
      typeIdentifier: 't_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470',
      typeString: 'literal_string ""'
    }
  ],
  expression: {
    argumentTypes: [ [Object] ],
    expression: {
      id: 40,
      name: 'recipient',
      nodeType: 'Identifier',
      overloadedDeclarations: [],
      referencedDeclaration: 22,
      src: '2316:9:0',
      typeDescriptions: [Object]
    },
    id: 41,
    isConstant: false,
    isLValue: false,
    isPure: false,
    lValueRequested: false,
    memberName: 'call',
    nodeType: 'MemberAccess',
    src: '2316:14:0',
    typeDescriptions: {
      typeIdentifier: 't_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$',
      typeString: 'function (bytes memory) payable returns (bool,bytes memory)'
    }
  },
  id: 43,
  isConstant: false,
  isLValue: false,
  isPure: false,
  lValueRequested: false,
  names: [ 'value' ],
  nodeType: 'FunctionCallOptions',
  options: [
    {
      id: 42,
      name: 'amount',
      nodeType: 'Identifier',
      overloadedDeclarations: [],
      referencedDeclaration: 24,
      src: '2338:6:0',
      typeDescriptions: [Object]
    }
  ],
  src: '2316:29:0',
  typeDescriptions: {
    typeIdentifier: 't_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value',
    typeString: 'function (bytes memory) payable returns (bool,bytes memory)'
  }
}
/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:850
          throw new Error("walk unknown nodeType '" + root.nodeType + "'");
          ^

[Error: walk unknown nodeType 'FunctionCallOptions'
  at /Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:835:17
  at walk (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:852:7)
  at /Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:525:12
  at walk (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:852:7)
  at /Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:636:30
  at walk (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:852:7)
  at /Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:673:23
  at walk (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:852:7)
  at /Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:793:21
  at walk (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:852:7)
  at /Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:268:31
  at walk (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:852:7)
  at /Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:216:23
  at walk (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:852:7)
  at gen (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/src/solidity_to_ast4gen.coffee:843:3)
  at process_file (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/cmd.coffee:61:13)
  at Object.<anonymous> (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/cmd.coffee:150:3)
  at Object.<anonymous> (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/cmd.coffee:2:1)
  at Module._compile (internal/modules/cjs/loader.js:1068:30)
  at Object.loadFile (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/node_modules/iced-coffee-script/lib/coffee-script/register.js:18:19)
  at Module.load (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/node_modules/iced-coffee-script/lib/coffee-script/register.js:47:36)
  at Function.Module._load (internal/modules/cjs/loader.js:774:14)
  at Module.require (internal/modules/cjs/loader.js:957:19)
  at require (internal/modules/cjs/helpers.js:88:18)
  at Object.<anonymous> (/Users/johnlshankman/.nvm/versions/node/v14.17.0/lib/node_modules/sol2ligo/bin/sol2ligo:3:1)
  at Module._compile (internal/modules/cjs/loader.js:1068:30)
  at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
  at Module.load (internal/modules/cjs/loader.js:933:32)
  at Function.Module._load (internal/modules/cjs/loader.js:774:14)
  at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
  at internal/main/run_main_module.js:17:47
]