Code Monkey home page Code Monkey logo

pigeon's Introduction

uhhh ohhhhh aaaaahhhhh

pigeon's People

Contributors

0xtimepunk avatar exp-table avatar sidduhere avatar sujithsomraaj avatar zksoju avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pigeon's Issues

Add ability to nitpick logs using topic

Something similar to the following and ability to choose which occurrence to handle. This gives user more control over the ordering of which messages to process regardless of order of emitted logs.

function _findLog(Vm.Log[] memory logs, bytes32 topic) internal returns (Vm.Log memory) {}

function _findOneLog(Vm.Log[] memory logs, bytes32 topic, uint256 index) internal returns (Vm.Log memory) {}

If an absurd high ETH value is not sent in a cross chain function, it reverts with "LayerZero: not enough native for fees"

Hi,

First of all, lovely library, thanks for creating it!

I have been using it in the tests of a cross chain protocol. In this protocol there is a cross chain function and I can't send just 1 eth as per your example in _someCrossChainFunctionInYourContract(), otherwise I get the error trace below:

image

What is more funny is if I increase this value to 5 or even 25 eth it doesn't work (check the value field in UltraLightNodeV2::send)

image

But if I increase it to 50 eth the msg.value, the test case passes and everything operates normally (helper function of pigeon is called after).

After a few test runs, eventually this needs to increase again to 100 ETH even to pass. I find this behaviour absurd and wonder if you have any insight at what might be at play here?

The adapterParam for layer zero is being sent as an empty bytes for this test, just like your test example.

Thank you

remove unused variables

We have a couple of unused variables detected while building, as well as function which can be restricted to view

Warning (2072): Unused local variable.
   --> lib/pigeon/src/hyperlane/HyperlaneHelper.sol:159:17:
    |
159 |                 bytes32 sender = log.topics[1];
    |                 ^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> lib/pigeon/src/hyperlane/HyperlaneHelper.sol:161:17:
    |
161 |                 bytes32 recipient = log.topics[3];
    |                 ^^^^^^^^^^^^^^^^^

Warning (2072): Unused local variable.
   --> lib/pigeon/src/layerzero/lib/LZPacket.sol:101:9:
    |
101 |         uint256 payloadSize = realSize - nonPayloadSize;

Warning (2018): Function state mutability can be restricted to view
   --> lib/pigeon/src/celer/CelerHelper.sol:269:5:
    |
269 |     function _estimateGas(
    |     ^ (Relevant source part starts here and spans across multiple lines).

[axelar]: add support for `approveContractCall()`

Axelar message bridge provides a unique validation mechanism to receivers through the validateContractCall() method. This method requires the validator set of axelar to approve each commandId. Hence users of Pigeon might face issues if they implement the validation on their receiving side. Pigeon should implement approveContractCall() functionality to fix this issue.

https://github.com/axelarnetwork/axelar-cgp-solidity/blob/fef94197e803cdf91b13cd1d93e4b126fc54bb3c/src/AxelarGatewayMultisig.sol#L365-L409

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.