diff --git a/abi-data/abis/ReceiveImplemented.json b/abi-data/abis/ReceiveImplemented.json new file mode 100644 index 0000000..74053ac --- /dev/null +++ b/abi-data/abis/ReceiveImplemented.json @@ -0,0 +1,25 @@ +[ + { + "constant": false, + "inputs": [ + { + "name": "x", + "type": "uint256" + } + ], + "name": "simpleFunction", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } +] diff --git a/src/Web3Generator/AbiParser.purs b/src/Web3Generator/AbiParser.purs index 98ac416..8ec1d2e 100644 --- a/src/Web3Generator/AbiParser.purs +++ b/src/Web3Generator/AbiParser.purs @@ -318,6 +318,17 @@ instance decodeJsonSolidityFallback :: DecodeJson SolidityFallback where decodeJson _ = do pure $ SolidityFallback +data SolidityReceive = SolidityReceive + +derive instance genericSolidityReceive :: Generic SolidityReceive _ + +instance showSolidityReceive :: Show SolidityReceive where + show = genericShow + +instance decodeJsonSolidityReceive :: DecodeJson SolidityReceive where + decodeJson _ = do + pure $ SolidityReceive + -------------------------------------------------------------------------------- -- | ABI -------------------------------------------------------------------------------- @@ -327,6 +338,7 @@ data AbiType | AbiConstructor SolidityConstructor | AbiEvent SolidityEvent | AbiFallback SolidityFallback + | AbiReceive SolidityReceive derive instance genericAbiType :: Generic AbiType _ @@ -343,6 +355,7 @@ instance decodeJsonAbiType :: DecodeJson AbiType where "constructor" -> AbiConstructor <$> decodeJson json' "event" -> AbiEvent <$> decodeJson json' "fallback" -> AbiFallback <$> decodeJson json' + "receive" -> AbiReceive <$> decodeJson json' _ -> Left $ Named "Unkown abi type" $ UnexpectedValue json newtype Abi f = Abi (Array (f AbiType)) diff --git a/src/Web3Generator/Generator.purs b/src/Web3Generator/Generator.purs index 6e74747..c750f09 100644 --- a/src/Web3Generator/Generator.purs +++ b/src/Web3Generator/Generator.purs @@ -643,6 +643,7 @@ instance Monad m => Code (Abi Identity) m where in codegenFunction f AbiFallback _ -> pure [] + AbiReceive _ -> pure [] pure $ concat codes where codegenFunction f = do @@ -690,4 +691,4 @@ eventId (SolidityEvent e) = let eventArgs = map (\a -> format a) e.inputs in - fromByteString $ keccak256 $ e.name <> "(" <> joinWith "," eventArgs <> ")" \ No newline at end of file + fromByteString $ keccak256 $ e.name <> "(" <> joinWith "," eventArgs <> ")"