Giter VIP home page Giter VIP logo

arbitrum-tutorials's People

Contributors

asharma13524 avatar bfreshhb avatar dzgoldman avatar eigmax avatar fionnachan avatar fredlacs avatar godzillaba avatar greatsoshiant avatar gzeoneth avatar jason-w123 avatar jason-wanxt avatar mahsamoosavi avatar nicholaspai avatar tucksondev avatar yahgwai avatar zmeghji 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  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

arbitrum-tutorials's Issues

outbox-execute was unsuccessful under the goerli testnets

According to official documents, arbitrum started to support goerli test network, and I think arbitrum-sdk has a new branch recently, so I used this example when I pulled the version of the new branch and found an error. When will you be able to improve? If possible, we thank you very much.

Errors running examples

I am seeing errors running the examples. Help? Thanks

https://github.com/OffchainLabs/arbitrum-tutorials/tree/master/packages/token-deposit

Command: npm run token-deposit

Error log

Deploying the test DappToken to L1
DappToken is deployed to L1 at 0x827F479Efde0aA5779a077Dd3f2D82a094ed517a
You successfully allowed the Arbitrum Bridge to spend DappToken 0xdf2ddff32f488f50aeb6ee34b87bbba58ed6b6a2030165e9a337bc64f416570e
Error: missing revert data in call exception (error={"reason":"processing response error","code":"SERVER_ERROR","body":"{\"jsonrpc\":\"2.0\",\"id\":53,\"error\":{\"code\":-32000,\"message\":\"gas price too low\"}}\n","error":{"code":-32000},"requestBody":"{\"method\":\"eth_call\",\"params\":[{\"to\":\"0x00000000000000000000000000000000000000c8\",\"data\":\"0x0b77bdb200000000000000000000000091169dbb45e6804743f94609de50d511c437572e00000000000000000000000000000000000000000000000000b1a2bc2ec50000000000000000000000000000195c107f3f75c4c93eba7d9a1312f19305d6375f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f92df1800000000000000000000000006e3468ce9bcc4f4e5106abf4821a62db4d6a9e030000000000000000000000006e3468ce9bcc4f4e5106abf4821a62db4d6a9e0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000002e42e567b36000000000000000000000000827f479efde0aa5779a077dd3f2d82a094ed517a0000000000000000000000006e3468ce9bcc4f4e5106abf4821a62db4d6a9e030000000000000000000000006e3468ce9bcc4f4e5106abf4821a62db4d6a9e03000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a4461707020546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000004444150500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"},\"latest\"],\"id\":53,\"jsonrpc\":\"2.0\"}","requestMethod":"POST","url":"https://rinkeby.arbitrum.io/rpc"}, data="0x", code=CALL_EXCEPTION, version=providers/5.4.5)
    at Logger.makeError (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/logger/src.ts/index.ts:225:28)
    at Logger.throwError (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/logger/src.ts/index.ts:237:20)
    at checkError (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:34:16)
    at JsonRpcProvider.<anonymous> (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:555:20)
    at step (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:48:23)
    at Object.throw (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:29:53)
    at rejected (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:21:65)
    at processTicksAndRejections (node:internal/process/task_queues:93:5) {
  reason: 'missing revert data in call exception',
  code: 'CALL_EXCEPTION',
  error: Error: processing response error (body="{\"jsonrpc\":\"2.0\",\"id\":53,\"error\":{\"code\":-32000,\"message\":\"gas price too low\"}}\n", error={"code":-32000}, requestBody="{\"method\":\"eth_call\",\"params\":[{\"to\":\"0x00000000000000000000000000000000000000c8\",\"data\":\"0x0b77bdb200000000000000000000000091169dbb45e6804743f94609de50d511c437572e00000000000000000000000000000000000000000000000000b1a2bc2ec50000000000000000000000000000195c107f3f75c4c93eba7d9a1312f19305d6375f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f92df1800000000000000000000000006e3468ce9bcc4f4e5106abf4821a62db4d6a9e030000000000000000000000006e3468ce9bcc4f4e5106abf4821a62db4d6a9e0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000002e42e567b36000000000000000000000000827f479efde0aa5779a077dd3f2d82a094ed517a0000000000000000000000006e3468ce9bcc4f4e5106abf4821a62db4d6a9e030000000000000000000000006e3468ce9bcc4f4e5106abf4821a62db4d6a9e03000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a4461707020546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000004444150500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"},\"latest\"],\"id\":53,\"jsonrpc\":\"2.0\"}", requestMethod="POST", url="https://rinkeby.arbitrum.io/rpc", code=SERVER_ERROR, version=web/5.4.0)
      at Logger.makeError (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/logger/src.ts/index.ts:225:28)
      at Logger.throwError (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/logger/src.ts/index.ts:237:20)
      at /home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/web/src.ts/index.ts:284:28
      at step (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/web/lib/index.js:33:23)
      at Object.next (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/web/lib/index.js:14:53)
      at fulfilled (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/web/lib/index.js:5:58)
      at processTicksAndRejections (node:internal/process/task_queues:93:5) {
    reason: 'processing response error',
    code: 'SERVER_ERROR',
    body: '{"jsonrpc":"2.0","id":53,"error":{"code":-32000,"message":"gas price too low"}}\n',
    error: Error: gas price too low
        at getResult (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:97:28)
        at processJsonFunc (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/web/src.ts/index.ts:326:22)
        at /home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/web/src.ts/index.ts:263:42
        at step (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/web/lib/index.js:33:23)
        at Object.next (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/web/lib/index.js:14:53)
        at fulfilled (/home/t4sk/bkp/dev/tmp/arbitrum-tutorials/packages/token-deposit/node_modules/@ethersproject/web/lib/index.js:5:58)
        at processTicksAndRejections (node:internal/process/task_queues:93:5) {
      code: -32000,
      data: undefined
    },
    requestBody: '{"method":"eth_call","params":[{"to":"0x00000000000000000000000000000000000000c8","data":"0x0b77bdb200000000000000000000000091169dbb45e6804743f94609de50d511c437572e00000000000000000000000000000000000000000000000000b1a2bc2ec50000000000000000000000000000195c107f3f75c4c93eba7d9a1312f19305d6375f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007f92df1800000000000000000000000006e3468ce9bcc4f4e5106abf4821a62db4d6a9e030000000000000000000000006e3468ce9bcc4f4e5106abf4821a62db4d6a9e0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000002e42e567b36000000000000000000000000827f479efde0aa5779a077dd3f2d82a094ed517a0000000000000000000000006e3468ce9bcc4f4e5106abf4821a62db4d6a9e030000000000000000000000006e3468ce9bcc4f4e5106abf4821a62db4d6a9e03000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a4461707020546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000004444150500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},"latest"],"id":53,"jsonrpc":"2.0"}',
    requestMethod: 'POST',
    url: 'https://rinkeby.arbitrum.io/rpc'
  },
  data: '0x'
}

How to run on local dev network?

after using test-node.bash in nitro repo, create a local test env

ArbSdkError: Unrecognized network 412346. at getNetwork (/Users/user/source/git/arbitrum-tutorials/node_modules/@arbitrum/sdk/dist/lib/dataEntities/networks.js:236:15) at processTicksAndRejections (node:internal/process/task_queues:96:5) at main (/Users/user/source/git/arbitrum-tutorials/packages/eth-deposit/scripts/exec.js:36:21) { inner: undefined }

it seems the arbitrum-sdk only support hardcode network?

.

.

Custom Token Bridge Example Hangs on registerCustomToken transaction

Hi!

I'm trying to run the custom token bridging example but it is hanging on the transaction to register the custom token. In particular it freezes on this line:

const registerTokenRec = await registerTokenTx.wait()

Here is the output of the script:

Environmental variables properly set ๐Ÿ‘
                            ๐Ÿ”ต๐Ÿ”ต
                           ๐Ÿ”ต  ๐Ÿ”ต
                          ๐Ÿ”ต    ๐Ÿ”ต
                         ๐Ÿ”ต      ๐Ÿ”ต
                        ๐Ÿ”ต        ๐Ÿ”ต
                       ๐Ÿ”ต          ๐Ÿ”ต
                      ๐Ÿ”ต            ๐Ÿ”ต
                     ๐Ÿ”ต              ๐Ÿ”ต
                    ๐Ÿ”ต                ๐Ÿ”ต
                   ๐Ÿ”ต                  ๐Ÿ”ต
                  ๐Ÿ”ต                    ๐Ÿ”ต
                 ๐Ÿ”ต                      ๐Ÿ”ต
                ๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต
               ๐Ÿ”ต                          ๐Ÿ”ต
              ๐Ÿ”ต                            ๐Ÿ”ต
             ๐Ÿ”ต                              ๐Ÿ”ต
            ๐Ÿ”ต                                ๐Ÿ”ต
           ๐Ÿ”ต                                  ๐Ÿ”ต
          ๐Ÿ”ต                                    ๐Ÿ”ต
         ๐Ÿ”ต                                      ๐Ÿ”ต
Deploying the cutsom token to L1
custom token is deployed to L1 at 0xd67C1679e90f84f463d6dd2eb279120E41F91725
Deploying the cutsom token to L2
custom token is deployed to L2 at 0x12B1194D5382B7cb36B2f7d1E8EE5Eec95080BA7
Current retryable base submission prices for custom bridge and raouter are: 6791741008
L2 gas price: 15906060
Registering the custom token on L2 with 318134783482016 callValue for L2 fees:

token_deposit not working

yarn run token_deposit failed with the following error:

Error: could not detect network (event="noNetwork", code=NETWORK_ERROR, version=providers/5.4.2)
    at Logger.makeError (/home/ubuntu/research/arbitrum/arbitrum-tutorials/node_modules/@ethersproject/logger/src.ts/index.ts:213:28)
    at Logger.throwError (/home/ubuntu/research/arbitrum/arbitrum-tutorials/node_modules/@ethersproject/logger/src.ts/index.ts:225:20)
    at JsonRpcProvider.<anonymous> (/home/ubuntu/research/arbitrum/arbitrum-tutorials/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:396:23)
    at step (/home/ubuntu/research/arbitrum/arbitrum-tutorials/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:48:23)
    at Object.throw (/home/ubuntu/research/arbitrum/arbitrum-tutorials/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:29:53)
    at rejected (/home/ubuntu/research/arbitrum/arbitrum-tutorials/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:21:65)
    at runNextTicks (internal/process/task_queues.js:62:5)
    at listOnTimeout (internal/timers.js:523:9)
    at processTimers (internal/timers.js:497:7) {
  reason: 'could not detect network',
  code: 'NETWORK_ERROR',
  event: 'noNetwork'
}

And the environmental variables were properly set.

L3 tutorial

Is there a chance of a tutorial in building L3 on Arbitrum being published in the near future?

greeter sample not working due to incorrect versions

I had to checkout an earlier version of this repo (before upgrade to sdk 2.0) to make it work (with Arbitrum Rinkeby, without Nitro I think). The master version was using a function that doesn't actually exist in the 2.0 sdk.

Error: invalid address or ENS name (argument="name", value=undefined, code=INVALID_ARGUMENT, version=contracts/5.5.0)

When I run this commant 'yarn run token-deposit', the result is as follows.

yarn run v1.22.17
$ hardhat run scripts/exec.js
Environmental variables properly set ๐Ÿ‘
๐Ÿ”ต๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
๐Ÿ”ต ๐Ÿ”ต
Arbitrum Demo: Deposit token using arb-ts
Lets
Go โžก๏ธ
...๐Ÿš€

Deploying the test DappToken to L1
DappToken is deployed to L1 at 0xa4C7B1FEC327EA8cfC48Ad0D748feA6d662EF83f
0xa4C7B1FEC327EA8cfC48Ad0D748feA6d662EF83f
You successfully allowed the Arbitrum Bridge to spend DappToken 0x04f724d93d94d231877770553445f15625d79f48a1d7926b9ebf38e2d816d579
Error: invalid address or ENS name (argument="name", value=undefined, code=INVALID_ARGUMENT, version=contracts/5.5.0)
at Logger.makeError (E:\Git\arbitrum-tutorials\packages\token-deposit\node_modules@ethersproject\logger\src.ts\index.ts:225:28)
at Logger.throwError (E:\Git\arbitrum-tutorials\packages\token-deposit\node_modules@ethersproject\logger\src.ts\index.ts:237:20)
at Logger.throwArgumentError (E:\Git\arbitrum-tutorials\packages\token-deposit\node_modules@ethersproject\logger\src.ts\index.ts:241:21)
at E:\Git\arbitrum-tutorials\packages\token-deposit\node_modules@ethersproject\contracts\src.ts\index.ts:120:16
at step (E:\Git\arbitrum-tutorials\packages\token-deposit\node_modules@ethersproject\contracts\lib\index.js:48:23)
at Object.next (E:\Git\arbitrum-tutorials\packages\token-deposit\node_modules@ethersproject\contracts\lib\index.js:29:53)
at fulfilled (E:\Git\arbitrum-tutorials\packages\token-deposit\node_modules@ethersproject\contracts\lib\index.js:20:58)
at processTicksAndRejections (node:internal/process/task_queues:96:5) {
reason: 'invalid address or ENS name',
code: 'INVALID_ARGUMENT',
argument: 'name',
value: undefined
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Why does this problem occur?

Custom token bridging example fails on could not detect network

When running npm run custom-token-bridging from the custom-token-bridging folder I get the following error:

My .env variables are set, this appears to be an issue with the L2 provider:
Set as:

# Hosted Aggregator Node (JSON-RPC Endpoint)
L2RPC="https://rinkeby.arbitrum.io/rpc" 

Added this code and it appears to fail at the l2Wallet.getChainId() call:

  await arbLog('Setting Up Your Token With The Generic Custom Gateway')
  /**
  * Use wallets to create an arb-ts bridge instance
  * We'll use bridge for its convenience methods around registering tokens to the custom gateway
  */
 console.log("chainId L1", await l1Wallet.getChainId())
 console.log("chainId L2", await l2Wallet.getChainId())
 console.log("completed")

Output:

chainId L1 4
Error: could not detect network (event="noNetwork", code=NETWORK_ERROR, version=providers/5.4.5)
    at Logger.makeError (/home/jwu/code/notional-finance/arbitrum-tutorials/node_modules/@ethersproject/logger/src.ts/index.ts:225:28)
    at Logger.throwError (/home/jwu/code/notional-finance/arbitrum-tutorials/node_modules/@ethersproject/logger/src.ts/index.ts:237:20)
    at JsonRpcProvider.<anonymous> (/home/jwu/code/notional-finance/arbitrum-tutorials/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:396:23)
    at step (/home/jwu/code/notional-finance/arbitrum-tutorials/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:48:23)
    at Object.throw (/home/jwu/code/notional-finance/arbitrum-tutorials/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:29:53)
    at rejected (/home/jwu/code/notional-finance/arbitrum-tutorials/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:21:65)
    at runNextTicks (internal/process/task_queues.js:60:5)
    at listOnTimeout (internal/timers.js:524:9)
    at processTimers (internal/timers.js:498:7) {
  reason: 'could not detect network',
  code: 'NETWORK_ERROR',
  event: 'noNetwork'
}

gas-estimation for smart contract not working

Hello
Im trying to estimate gas for transaction using

https://github.com/OffchainLabs/arbitrum-tutorials/tree/master/packages/gas-estimation

It works fine when I estimate simple transaction like sending ETH between 2 addresses without any additional data.
But when I pass the smart contract data like this:
0x1114cd2a000000000000000000000000000000000000000000000000000000000000006f000000000000000000000000409d44c6998bbdaa982f14b1cf2f12958b70abd800000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000003b9ac9ff000000000000000000000000000000000000000000000000000000003b02337f0000000000000000000000000000000000000000000000000000000000000014409d44c6998bbdaa982f14b1cf2f12958b70abd8000000000000000000000000

Script always return an error.

Error: call revert exception; VM Exception while processing transaction: reverted with reason string "Stargate: msg.value must be > _amountLD" [ See: https://links.ethers.org/v5-errors-CALL_EXCEPTION ] (method="gasEstimateComponents(address,bool,bytes)", data="0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002753746172676174653a206d73672e76616c7565206d757374206265203e205f616d6f756e744c4400000000000000000000000000000000000000000000000000", errorArgs=["Stargate: msg.value must be > _amountLD"], errorName="Error", errorSignature="Error(string)", reason="Stargate: msg.value must be > _amountLD", code=CALL_EXCEPTION, version=abi/5.7.0)
at Logger.makeError (C:\Users\97158\Documents\GitHub\layerZero\node_modules@ethersproject\logger\src.ts\index.ts:269:28)
at Logger.throwError (C:\Users\97158\Documents\GitHub\layerZero\node_modules@ethersproject\logger\src.ts\index.ts:281:20)
errorSignature: 'Error(string)',
address: '0x00000000000000000000000000000000000000C8',
args: [
'0xbf22f0f184bccbea268df387a49ff5238dd23e40',
false,
'0x1114cd2a000000000000000000000000000000000000000000000000000000000000006f000000000000000000000000409d44c6998bbdaa982f14b1cf2f12958b70abd800000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000003b9ac9ff000000000000000000000000000000000000000000000000000000003b02337f0000000000000000000000000000000000000000000000000000000000000014409d44c6998bbdaa982f14b1cf2f12958b70abd8000000000000000000000000'
],
transaction: {
data: '0xc94e6eeb000000000000000000000000bf22f0f184bccbea268df387a49ff5238dd23e400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e41114cd2a000000000000000000000000000000000000000000000000000000000000006f000000000000000000000000409d44c6998bbdaa982f14b1cf2f12958b70abd800000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000003b9ac9ff000000000000000000000000000000000000000000000000000000003b02337f0000000000000000000000000000000000000000000000000000000000000014409d44c6998bbdaa982f14b1cf2f12958b70abd800000000000000000000000000000000000000000000000000000000000000000000000000000000',
to: '0x00000000000000000000000000000000000000C8'

And this error looks like nodeInterface.callStatic.gasEstimateComponents trying to execute transaction instead of estimate it.

transaction details.
0xbf22f0f184bccbea268df387a49ff5238dd23e40 - smart contract
swapETH - method

contract.methods
      .swapETH(
        destinationChainId, //111
        request.senderAccount.address, //my address
        request.senderAccount.address, //my address
        request.amount, //0.04 eth (in wei)
        minAmount  //0.04 eth * 0.99 (in wei)
      )
      .encodeABI();

const baseL2Provider = new providers.StaticJsonRpcProvider(
      "https://arb1.arbitrum.io/rpc"
    );

    addDefaultLocalNetwork();

    const destinationAddress =contractAddress;
    const nodeInterface = NodeInterface__factory.connect(
      NODE_INTERFACE_ADDRESS,
      baseL2Provider
    );

//THROWING HERE
    const gasEstimateComponents =
      await nodeInterface.callStatic.gasEstimateComponents(
        destinationAddress,
        false,
        data,
        {
          blockTag: "latest",
        }
      );

    const l1GasEstimated = gasEstimateComponents.gasEstimateForL1;
    const l2GasUsed = gasEstimateComponents.gasEstimate.sub(
      gasEstimateComponents.gasEstimateForL1
    );
    const l2EstimatedPrice = gasEstimateComponents.baseFee;
    const l1EstimatedPrice = gasEstimateComponents.l1BaseFeeEstimate.mul(16);

    const l1Cost = l1GasEstimated.mul(l2EstimatedPrice);
    const l1Size = l1Cost.div(l1EstimatedPrice);

    const P = l2EstimatedPrice;
    const L2G = l2GasUsed;
    const L1P = l1EstimatedPrice;
    const L1S = l1Size;

    // L1C (L1 Cost) = L1P * L1S
    const L1C = L1P.mul(L1S);

    // B (Extra Buffer) = L1C / P
    const B = L1C.div(P);

    // G (Gas Limit) = L2G + B
    const G = L2G.add(B);

    // TXFEES (Transaction fees) = P * G
    const TXFEES = P.mul(G);

    return {
      fullGas: G.toNumber(),
      transactionFee: TXFEES.toNumber(),
    };

How to estimateGas on a function call which has onlyOwner() modifier

When I use this script https://github.com/OffchainLabs/arbitrum-tutorials/blob/master/packages/gas-estimation/scripts/exec.ts to estimate gas, it revert with NOT_OWNER error. I guess maybe that's because the NodeInterface contract(0x00000000000000000000000000000000000000C8) is not the owner of the contract. Is there anyway I can estimate the gas of an owner only function call?
I also tried to connect nodeInterface to the owner account, still fails.

const gasEstimateComponents = await nodeInterface.connect(ownerAccount).callStatic.gasEstimateComponents(
        destinationAddress,
        false,
        txData,
        {
            blockTag: "latest"
        }
    );

outbox-execute fails to withdraw, prompts: No NodeCreated events found

First, make a normal withdrawal:

yarn run withdrawETH
yarn run v1.22.19
$ hardhat run scripts/exec.js
Environmental variables properly set ๐Ÿ‘
                            ๐Ÿ”ต๐Ÿ”ต
                           ๐Ÿ”ต  ๐Ÿ”ต
                          ๐Ÿ”ต    ๐Ÿ”ต
                         ๐Ÿ”ต      ๐Ÿ”ต
                        ๐Ÿ”ต        ๐Ÿ”ต
                       ๐Ÿ”ต          ๐Ÿ”ต
                      ๐Ÿ”ต            ๐Ÿ”ต
                     ๐Ÿ”ต              ๐Ÿ”ต
                    ๐Ÿ”ต                ๐Ÿ”ต
                   ๐Ÿ”ต                  ๐Ÿ”ต
                  ๐Ÿ”ต                    ๐Ÿ”ต
                 ๐Ÿ”ต                      ๐Ÿ”ต
                ๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต
               ๐Ÿ”ต                          ๐Ÿ”ต
              ๐Ÿ”ต                            ๐Ÿ”ต
             ๐Ÿ”ต                              ๐Ÿ”ต
            ๐Ÿ”ต                                ๐Ÿ”ต
           ๐Ÿ”ต                                  ๐Ÿ”ต
          ๐Ÿ”ต                                    ๐Ÿ”ต
         ๐Ÿ”ต                                      ๐Ÿ”ต
        ๐Ÿ”ต                                        ๐Ÿ”ต
       ๐Ÿ”ต                                          ๐Ÿ”ต
      ๐Ÿ”ต                                            ๐Ÿ”ต
     ๐Ÿ”ต                                              ๐Ÿ”ต
    ๐Ÿ”ต                                                ๐Ÿ”ต
Arbitrum Demo: Withdraw Eth via Arbitrum SDK
Lets
Go โžก๏ธ
...๐Ÿš€

Wallet properly funded: initiating withdrawal now
Ether withdrawal initiated! ๐Ÿฅณ 0xf8a6f02c5473e786844143502da7bb8a01bae40dd5dbfbbe086de05ef3cd3267
Withdrawal data: [
  [
    '0x683642c22feDE752415D4793832Ab75EFdF6223c',
    '0x683642c22feDE752415D4793832Ab75EFdF6223c',
    BigNumber {
      _hex: '0xa2817bea8b6cac5396ae6d63456d574cbc6665c1dc87794530c8224d6aa846a7',
      _isBigNumber: true
    },
    BigNumber { _hex: '0x01', _isBigNumber: true },
    BigNumber { _hex: '0x1b', _isBigNumber: true },
    BigNumber { _hex: '0x0594', _isBigNumber: true },
    BigNumber { _hex: '0x6360d98c', _isBigNumber: true },
    BigNumber { _hex: '0xe8d4a51000', _isBigNumber: true },
    '0x',
    caller: '0x683642c22feDE752415D4793832Ab75EFdF6223c',
    destination: '0x683642c22feDE752415D4793832Ab75EFdF6223c',
    hash: BigNumber {
      _hex: '0xa2817bea8b6cac5396ae6d63456d574cbc6665c1dc87794530c8224d6aa846a7',
      _isBigNumber: true
    },
    position: BigNumber { _hex: '0x01', _isBigNumber: true },
    arbBlockNum: BigNumber { _hex: '0x1b', _isBigNumber: true },
    ethBlockNum: BigNumber { _hex: '0x0594', _isBigNumber: true },
    timestamp: BigNumber { _hex: '0x6360d98c', _isBigNumber: true },
    callvalue: BigNumber { _hex: '0xe8d4a51000', _isBigNumber: true },
    data: '0x'
  ]
]
To to claim funds (after dispute period), see outbox-execute repo ๐Ÿซก
Done in 7.23s.

An error was encountered when calling outbox-exec

yarn outbox-exec --txhash 0xf8a6f02c5473e78684414350
2da7bb8a01bae40dd5dbfbbe086de05ef3cd3267
yarn run v1.22.19
$ hardhat outbox-exec --txhash 0xf8a6f02c5473e786844143502da7bb8a01bae40dd5dbfbbe086de05ef3cd3267
Environmental variables properly set ๐Ÿ‘
                            ๐Ÿ”ต๐Ÿ”ต
                           ๐Ÿ”ต  ๐Ÿ”ต
                          ๐Ÿ”ต    ๐Ÿ”ต
                         ๐Ÿ”ต      ๐Ÿ”ต
                        ๐Ÿ”ต        ๐Ÿ”ต
                       ๐Ÿ”ต          ๐Ÿ”ต
                      ๐Ÿ”ต            ๐Ÿ”ต
                     ๐Ÿ”ต              ๐Ÿ”ต
                    ๐Ÿ”ต                ๐Ÿ”ต
                   ๐Ÿ”ต                  ๐Ÿ”ต
                  ๐Ÿ”ต                    ๐Ÿ”ต
                 ๐Ÿ”ต                      ๐Ÿ”ต
                ๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต
               ๐Ÿ”ต                          ๐Ÿ”ต
              ๐Ÿ”ต                            ๐Ÿ”ต
             ๐Ÿ”ต                              ๐Ÿ”ต
            ๐Ÿ”ต                                ๐Ÿ”ต
           ๐Ÿ”ต                                  ๐Ÿ”ต
          ๐Ÿ”ต                                    ๐Ÿ”ต
         ๐Ÿ”ต                                      ๐Ÿ”ต
        ๐Ÿ”ต                                        ๐Ÿ”ต
       ๐Ÿ”ต                                          ๐Ÿ”ต
      ๐Ÿ”ต                                            ๐Ÿ”ต
     ๐Ÿ”ต                                              ๐Ÿ”ต
    ๐Ÿ”ต                                                ๐Ÿ”ต
Arbitrum Demo: Outbox Execution
Lets
Go โžก๏ธ


...๐Ÿš€

An unexpected error occurred:

ArbSdkError: No NodeCreated events found
    at L2ToL1MessageReaderNitro.getBlockFromNodeNum (/home/test/arbitrum-tutorials2/node_modules/@arbitrum/sdk/dist/lib/message/L2ToL1MessageNitro.js:122:19)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at L2ToL1MessageReaderNitro.getSendProps (/home/test/arbitrum-tutorials2/node_modules/@arbitrum/sdk/dist/lib/message/L2ToL1MessageNitro.js:144:38)
    at L2ToL1MessageReaderNitro.status (/home/test/arbitrum-tutorials2/node_modules/@arbitrum/sdk/dist/lib/message/L2ToL1MessageNitro.js:85:39)
    at L2ToL1MessageWriter.status (/home/test/arbitrum-tutorials2/node_modules/@arbitrum/sdk/dist/lib/message/L2ToL1Message.js:160:20)
    at module.exports (/home/test/arbitrum-tutorials2/packages/outbox-execute/scripts/exec.js:95:8)
    at SimpleTaskDefinition.action (/home/test/arbitrum-tutorials2/packages/outbox-execute/hardhat.config.js:19:5)
    at Environment._runTaskDefinition (/home/test/arbitrum-tutorials2/node_modules/hardhat/src/internal/core/runtime-environment.ts:219:14)
    at Environment.run (/home/test/arbitrum-tutorials2/node_modules/hardhat/src/internal/core/runtime-environment.ts:131:14)
    at main (/home/test/arbitrum-tutorials2/node_modules/hardhat/src/internal/cli/cli.ts:256:5) {
  inner: undefined
}
error Command failed with exit code 1.

Error: call revert exception (method="adopters(uint256)", errorArgs=null, errorName=null, errorSignature=null, reason=null, code=CALL_EXCEPTION, version=abi/5.5.0)

This is the pet adoption/pet shop example contract.

Even though the contract is posted to rinkarby test network successfully https://rinkeby-explorer.arbitrum.io/tx/0x5481aa88b563b9ba7a89563ddddf9ec0958424cfc98e5bf2eb1e02e17420e3c8
and the code uses await it errors like it cannot find the smart contract.

Here's the code output:

Deploying Adoption contract to L2
Adoption contract is deployed to 0x11BeAEC17Dd16785A58D9D5B568F16c5B4f7D036
Expected Adopter 0x00CEd389144183D12794aD5985D48e3D7DF02077
Adopting pet:
AdoptionEventData: {
  hash: '0x5481aa88b563b9ba7a89563ddddf9ec0958424cfc98e5bf2eb1e02e17420e3c8',
  type: 0,
  accessList: null,
  blockHash: '0x6f824c783917e18d73135ab5d9b2268a64c034e21d9608593bbbe1d3348c7abe',      
  blockNumber: 7724314,
  transactionIndex: 0,
  confirmations: 1,
  from: '0x00CEd389144183D12794aD5985D48e3D7DF02077',
  gasPrice: BigNumber { value: "14619612" },
  gasLimit: BigNumber { value: "750498" },
  to: '0x11BeAEC17Dd16785A58D9D5B568F16c5B4f7D036',
  value: BigNumber { value: "0" },
  nonce: 13,
  data: '0x8588b2c50000000000000000000000000000000000000000000000000000000000000008',   
  r: '0x7eefa75b150759643a3b11f78ef599e3433e630d8156106b5a1ebce6c859fba5',
  s: '0x3c764794e85e26dc8f3e78acd5185948cb1ee49727e93c02cbcdb350439667bb',
  v: 843258,
  creates: null,
  chainId: 421611,
  wait: [Function (anonymous)]
}
Error: call revert exception (method="adopters(uint256)", errorArgs=null, errorName=null, errorSignature=null, reason=null, code=CALL_EXCEPTION, version=abi/5.5.0)
    at Logger.makeError (C:\Users\a\Documents\Code\Arbitrum Test\arbitrum-tutorials\packages\demo-dapp-pet-shop\node_modules\@ethersproject\logger\src.ts\index.ts:225:28)  
    at Logger.throwError (C:\Users\a\Documents\Code\Arbitrum Test\arbitrum-tutorials\packages\demo-dapp-pet-shop\node_modules\@ethersproject\logger\src.ts\index.ts:237:20) 
    at Interface.decodeFunctionResult (C:\Users\a\Documents\Code\Arbitrum Test\arbitrum-tutorials\packages\demo-dapp-pet-shop\node_modules\@ethersproject\abi\src.ts\interface.ts:425:23)
    at Contract.<anonymous> (C:\Users\a\Documents\Code\Arbitrum Test\arbitrum-tutorials\packages\demo-dapp-pet-shop\node_modules\@ethersproject\contracts\src.ts\index.ts:392:44)
o-dapp-pet-shop\node_modules\@ethersproject\contracts\lib\index.js:48:23)
    at Object.next (C:\Users\a\Documents\Code\Arbitrum Test\arbitrum-tutorials\packages\demo-dapp-pet-shop\node_modules\@ethersproject\contracts\lib\index.js:29:53)        
    at fulfilled (C:\Users\a\Documents\Code\Arbitrum Test\arbitrum-tutorials\packages\demo-dapp-pet-shop\node_modules\@ethersproject\contracts\lib\index.js:20:58)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  reason: null,
  code: 'CALL_EXCEPTION',
  method: 'adopters(uint256)',
  errorArgs: null,
  errorName: null,
  errorSignature: null,
  address: '0x11BeAEC17Dd16785A58D9D5B568F16c5B4f7D036',
  args: [ 8 ],
  transaction: {
    data: '0x43ae80d30000000000000000000000000000000000000000000000000000000000000008', 
    to: '0x11BeAEC17Dd16785A58D9D5B568F16c5B4f7D036',
    from: '0x00CEd389144183D12794aD5985D48e3D7DF02077'
  }
}

Error: could not detect network

When I run the tutorials such as token_deposit Tutorial, I got this error infomation:

Error: could not detect network (event="noNetwork", code=NETWORK_ERROR, version=providers/5.4.2)
    at Logger.makeError (/home/xxx/projects/arbitrum-tutorials/node_modules/@ethersproject/logger/src.ts/index.ts:213:28)
    at Logger.throwError (/home/xxx/projects/arbitrum-tutorials/node_modules/@ethersproject/logger/src.ts/index.ts:225:20)
    at JsonRpcProvider.<anonymous> (/home/xxx/projects/arbitrum-tutorials/node_modules/@ethersproject/providers/src.ts/json-rpc-provider.ts:396:23)
    at step (/home/xxx/projects/arbitrum-tutorials/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:48:23)
    at Object.throw (/home/xxx/projects/arbitrum-tutorials/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:29:53)
    at rejected (/home/xxx/projects/arbitrum-tutorials/node_modules/@ethersproject/providers/lib/json-rpc-provider.js:21:65)
    at runNextTicks (internal/process/task_queues.js:62:5)
    at listOnTimeout (internal/timers.js:523:9)
    at processTimers (internal/timers.js:497:7) {
  reason: 'could not detect network',
  code: 'NETWORK_ERROR',
  event: 'noNetwork'
}

Any idea?
Thanks.

DEVNET_PRIVKEY = "WHERE DO I GET THIS KEY?"

Good morning to all these doing some tests for testnet and continue to mainnet full node.

I have this doubt.

How do I get the key: DEVNET_PRIVKEY = "0x KEY?"
Please help me greetings

What is Arbitrum?

1.The main thing

Arbitrum is a second-level (L2) solution for the Ethereum network developed by the American company Offchain Labs. The project is designed to increase the speed and scalability of the underlying blockchain.

Arbitrum uses the Optimistic Rollups concept, allowing developers to easily run smart contracts and decentralized Ethereum applications with lower translation fees and increased bandwidth without any changes.

In the first half of 2022, Arbitrum became the leading L2 solution for Ethereum in terms of the number of transactions, the number of applications and the volume of blocked liquidity (TVL).

Who created Arbitrum?

The Arbitrum L2 solution was developed by the American company Offchain Labs, created in 2018 in New York by Ed Felten, Stephen Goldfeder and Harry Kalodner. All three are specialists in cryptography and blockchain technology, Felten worked as a professor of computer science at Princeton University.

In 2019, Offchain Labs attracted a sowing investment of $3.7 million. In the spring of 2021, before the launch of the alpha version of the Arbitrum network, the startup held an investment round of Series A, as a result of which it received $20 million.

The official launch of the main Arbitrum One network took place on August 31, 2021. At the same time, Offchain Labs announced the attraction of $120 million in the B series round, which was headed by Lightspeed Venture Partners. Other significant investors include Polychain Capital, Ribbit Capital, Redpoint Ventures, Pantera Capital, Alameda Research and Mark Cuban. After this round, the company received an estimate of $1.2 billion.

3

What are the features of Arbitrum and what are Optimistic Rollups?

Low transaction speed and high commissions in Ethereum led to several projects at once, which started developing solutions on top of the main network in order to increase its performance.

The Arbitrum network uses Optimistic Rollups technology for this purpose. Transactions are processed on the second-tier network, while the main Ethereum network is responsible for the security layer. During processing in the L2 network, many transactions are combined into a compact block, which is included by validators into the main Ethereum network.

The term "optimistic" is a reference to the principle that implies that any transaction "optimistic" is considered authentic until proven otherwise. This concept was developed for a competing L2 network called Optimism. However, the developers of Arbitrum have improved the technology by introducing multi-stage fraud protection, which consumes significantly less gas than one-step protection in Optimism.

ETH is used to pay transaction fees in the Arbitrum network, as well as in Ethereum. Transfer to the Arbitrum network is on average 90-95% cheaper than Ethereum, and there remains great potential for further reduction of commissions.

Unlike other L2 networks, Arbitrum does not have a native token. Representatives of Offchain Labs did not announce any specific plans for its release. In August 2021, Ed Felten said in an interview that in the future network management could be transferred to DAO, which involves the issuance of a management token. This statement supports the hope of the crypto community for the distribution of tokens among early users, just as it happened in the Optimism network in early June 2022.

4

How does Arbitrum work?

Arbitrum is deployed at the first (L1) and second (L2) levels. The EthBridge component, which is a set of smart contracts, works on the Ethereum network and contains folders of incoming and outgoing transactions.

The transfer of transactions from L1 to L2 and back is the responsibility of its own virtual machine (Arbitrum Virtual Machine, AVM), which is fully compatible with the Ethereum Virtual Machine (EVM). AVM supports all EVM programming languages, such as Vyper, Solidity, Flint, YUL+, LLLL, which greatly simplifies application development.

In the L2 network, the ArbOS operating system executes smart contracts and processes transactions. It transfers transactions via AVM to the Rollup protocol outgoing transaction folder for further addition to the block, its confirmation and inclusion in the main Ethereum chain.

Validators who receive transaction fees for this are engaged in the approval of new blocks. The Arbitrum architecture is designed so that one honest validator can approve the block, no matter how many malicious validators exist.

Among the validator nodes, roles are distributed as follows:

Active validator - places a bet (places its ETH in a deposit smart contract) and offers new blocks to be added to the main Ethereum chain. If the proposed block is incorrect, the validator will lose the bet;

Protective validator - monitors the operation of the convolution protocol and intervenes in case of detection of incorrect blocks, offering its own block or betting on a block of another validator;

Watchmaker - only monitors the operation of the Rollup protocol without placing bets.

Due to the fact that security and watchdog validators have 8 days to challenge the block, the same period is the withdrawal of assets on the native bridge from Arbitrum to Ethereum.

5

What is included in the Arbitrum ecosystem?

As of the beginning of July 2022, more than 200 blockchain projects are already operating on the basis of Arbitrum. Among them:

The largest DeFi protocols are Uniswap, SushiSwap, Curve and 1inch;

Backup and algorithmic stablecoins USDT, USDC, DAI, FRAX, TUSD, etc. ;

Original services, such as the GMX perpetual contract trading platform and the dForce landing service;

Yield aggregators yEarn Finance, Pickle Finance, Badger, Beefy Finance;

NFT marketplaces Lootex, Stratos, ToFunFT, etc.

The Arbitrum network supports many Web3 wallets - MetaMask, Trust Wallet, MathWallet and others. In the first half of 2022, the largest centralized crypto exchanges, including Binance, OKX, Gate.io, KuCoin, FTX, etc. announced support for the Arbitrum network and the possibility of outputting ETH and a number of stablecoins. In addition, more than 20 crosschain bridges work with Arbitrum, including Multichain, Hop Exchange, Stargate, Across and others.

6

How is Arbitrum developing?

Arbitrum One is not only the most popular L2 solution for scaling Ethereum, but is also among the top 10 decentralized networks by TVL and the number of DeFi applications.

In June 2022, the 8-week Arbitrum Odyssey program was launched to popularize the Arbitrum One L2 network and attract users. It includes eight stages, each of which is devoted to a specific aspect of the Arbitrum ecosystem.

More than 140 thousand users took part in the first and second stages, causing network congestion and an increase in transaction fees. Users who have completed the tasks of each stage are awarded special NFTs from the Project Galaxy service. According to the terms of the competition, upon receipt of 12 tokens, the participant also receives another NFT, the purpose of which is not yet known. Only those who have fulfilled all the conditions of the first stage can participate in Arbitrum Odyssey.

In the near future, it is planned to release an update of Arbitrum Nitro, which will further reduce transaction fees and increase network bandwidth. The essence of the update is that for large projects on the network, for example, for blockchain games, AnyTrust chains will be deployed, which will operate under the management of a "committee" of 20 validators and should become a faster and cheaper analogue of sidechains.

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.