wormhole-foundation / example-liquidity-layer

Apache License 2.0
11 stars 11 forks source link

solana: add explicit bn.js dependency #164

Closed livthomas closed 4 months ago

livthomas commented 4 months ago

Right now, it is not possible to use @wormhole-foundation/example-liquidity-layer-solana package outside this project:

unhandledRejection Error: Assertion failed
    at assert (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/bn.js/lib/bn.js:6:21)
    at BN._initArray (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/bn.js/lib/bn.js:145:5)
    at BN.init [as _init] (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/bn.js/lib/bn.js:86:19)
    at new BN (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/bn.js/lib/bn.js:39:12)
    at constructor (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/@solana/web3.js/src/publickey.ts:69:20)
    at translateAddress (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/@coral-xyz/anchor/src/program/common.ts:58:51)
    at Program (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/@coral-xyz/anchor/src/program/index.ts:273:33)
    at MatchingEngineProgram (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/solana/ts/src/matchingEngine/index.ts:222:24)
    at ContractRegistry.createMatchingEngineProgram (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/src/registry/ContractRegistry.ts:56:12)
    at ContractRegistry.getMatchingEngineProgram (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/src/registry/ContractRegistry.ts:65:41) Promise {
  <rejected> Error: Assertion failed
      at assert (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/bn.js/lib/bn.js:6:21)
      at BN._initArray (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/bn.js/lib/bn.js:145:5)
      at BN.init [as _init] (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/bn.js/lib/bn.js:86:19)
      at new BN (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/bn.js/lib/bn.js:39:12)
      at constructor (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/@solana/web3.js/src/publickey.ts:69:20)
      at translateAddress (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/@coral-xyz/anchor/src/program/common.ts:58:51)
      at Program (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/node_modules/@coral-xyz/anchor/src/program/index.ts:273:33)
      at MatchingEngineProgram (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/lib/example-liquidity-layer/solana/ts/src/matchingEngine/index.ts:222:24)
      at ContractRegistry.createMatchingEngineProgram (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/src/registry/ContractRegistry.ts:56:12)
      at ContractRegistry.getMatchingEngineProgram (/Users/livthomas/Projects/rockawayx-labs/wormhole-solver/src/registry/ContractRegistry.ts:65:41)
}

It looks like this is caused by some assertion in bn.js library which probably fails because this dependecy is included twice (in two different versions):

node_modules/bn.js
  bn.js@"^5.1.2" from anchor-0.29.0@0.29.0
  node_modules/anchor-0.29.0
    anchor-0.29.0@"npm:@coral-xyz/anchor@^0.29.0" from @wormhole-foundation/example-liquidity-layer-solana@0.0.1
    solana
      @wormhole-foundation/example-liquidity-layer-solana@0.0.1
      node_modules/@wormhole-foundation/example-liquidity-layer-solana
        @wormhole-foundation/example-liquidity-layer-solana@"0.0.1" from @wormhole-foundation/example-liquidity-layer-solver@0.0.1
        solver
          @wormhole-foundation/example-liquidity-layer-solver@0.0.1
          node_modules/@wormhole-foundation/example-liquidity-layer-solver
            workspace solver from the root project
        workspace solana from the root project
  bn.js@"^5.2.0" from borsh@0.7.0
  node_modules/borsh
    borsh@"^0.7.0" from @solana/web3.js@1.91.7
    node_modules/@solana/web3.js
      @solana/web3.js@"^1.68.0" from anchor-0.29.0@0.29.0
      node_modules/anchor-0.29.0
        anchor-0.29.0@"npm:@coral-xyz/anchor@^0.29.0" from @wormhole-foundation/example-liquidity-layer-solana@0.0.1
        solana
          @wormhole-foundation/example-liquidity-layer-solana@0.0.1
          node_modules/@wormhole-foundation/example-liquidity-layer-solana
            @wormhole-foundation/example-liquidity-layer-solana@"0.0.1" from @wormhole-foundation/example-liquidity-layer-solver@0.0.1
            solver
              @wormhole-foundation/example-liquidity-layer-solver@0.0.1
              node_modules/@wormhole-foundation/example-liquidity-layer-solver
                workspace solver from the root project
            workspace solana from the root project

When I add it to package.json, it works without any problems.