Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ultron mainnet and testnet deployments #274

Merged
merged 2 commits into from
Aug 22, 2023

Conversation

softwareultron
Copy link
Contributor

Includes:
#265 and #273

@mmv08
Copy link
Member

mmv08 commented Aug 17, 2023

Please make sure that the contracts are deployed deterministically. This repository only allows deterministic deployments. Your addresses should equal 1 of the other two addresses in each file.

@softwareultron
Copy link
Contributor Author

softwareultron commented Aug 21, 2023

Please make sure that the contracts are deployed deterministically. This repository only allows deterministic deployments. Your addresses should equal 1 of the other two addresses in each file.

@mmv08 Hello!
For the moment it is not clear what exactly should we need to be done to make "equal 1 of the other two addresses in each file"

We have deployed as described in Readme file using clean wallets.
New contracts are not going to be deployed even within new deployer wallets. There is only "reusing" word.
We did not change config file at all and used a PK for signing.

image

P.S. The networks do not support verifications for the moment. And updated the @safe-global/safe-singleton-factory": to the "1.0.15" version (only in this version our addresses do exist)

I'll add more screenshots of deployments/ dir bellow for both chains (custom = 1230, custom2 = 1231)
image
image

Thank you!

@mmv08
Copy link
Member

mmv08 commented Aug 21, 2023

Please make sure that the contracts are deployed deterministically. This repository only allows deterministic deployments. Your addresses should equal 1 of the other two addresses in each file.

@mmv08 Hello! For the moment it is not clear what exactly should we need to be done to make "equal 1 of the other two addresses in each file"

We have deployed as described in Readme file using clean wallets. New contracts are not going to be deployed even within new deployer wallets. There is only "reusing" word. We did not change config file at all and used a PK for signing.

image P.S. The networks do not support verifications for the moment. And updated the @safe-global/safe-singleton-factory": to the "1.0.15" version (only in this version our addresses do exist)

I'll add more screenshots of deployments/ dir bellow for both chains (custom = 1230, custom2 = 1231) image image

Thank you!

Did you make sure that you're using version 1.3.0?

@softwareultron
Copy link
Contributor Author

@mmv08 using this release
https://github.com/safe-global/safe-contracts/releases/tag/v1.3.0-libs.0
We are getting the error
image

@mmv08
Copy link
Member

mmv08 commented Aug 21, 2023

@mmv08 using this release https://github.com/safe-global/safe-contracts/releases/tag/v1.3.0-libs.0 We are getting the error image

The documentation has a section on how to fix the error. Please read it.

@softwareultron
Copy link
Contributor Author

softwareultron commented Aug 21, 2023

@mmv08
Could you please confirm that we understand clearly the steps that should be done!

  1. clone the repo https://github.com/Arachnid/deterministic-deployment-proxy
  2. execute npm install and npm run build
  3. change the JSON_RPC to the "https://ultron-dev.io" (as testnet)
  4. do not make any changes to output/deployment.json
image
  1. send some ULX to -> MY_ADDRESS="0x913dA4198E6bE1D5f5E4a40D0667f70C0B5430Eb" tx https://explorer.ultron-dev.io/transactions/0xba81b3c1dd626c9974a74c9bad692122d77b322f5e510c4b8f14adb70906a4f4
  2. execute ./scripts/test.sh

Cause after these steps we have got some weird results. Any thoughts or additional steps we missed?

-@--MBP deterministic-deployment-proxy % ./scripts/test.sh

+ JSON_RPC=https://ultron-dev.io
+ docker container run --rm -d --name deployment-proxy-geth -p 1234:8545 -e GETH_VERBOSITY=3 keydonix/geth-clique
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
d690377261764c8242138267d6cb6984d1c1df1a70952bbe07b1b3893c615dbf
+ curl --silent --fail https://ultron-dev.io -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0", "id":1, "method": "net_version", "params": []}'
{"jsonrpc":"2.0","id":1,"result":"1230"}
+ MY_ADDRESS=0x913dA4198E6bE1D5f5E4a40D0667f70C0B5430Eb
++ cat output/deployment.json
++ jq --raw-output .signerAddress
+ ONE_TIME_SIGNER_ADDRESS=0x3fab184622dc19b6109349b94811493bf2a45362
+++ cat output/deployment.json
+++ jq --raw-output .gasPrice
+++ cat output/deployment.json
+++ jq --raw-output .gasLimit
++ printf %x 10000000000000000
+ GAS_COST=0x2386f26fc10000
++ cat output/deployment.json
++ jq --raw-output .transaction
+ TRANSACTION=0xf8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222
++ cat output/deployment.json
++ jq --raw-output .address
+ DEPLOYER_ADDRESS=0x4e59b44847b379578588920ca78fbf26c0b4956c
+ curl https://ultron-dev.io -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0", "id":1, "method": "eth_sendTransaction", "params": [{"from":"0x913dA4198E6bE1D5f5E4a40D0667f70C0B5430Eb","to":"0x3fab184622dc19b6109349b94811493bf2a45362","value":"0x2386f26fc10000"}]}'
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"unknown account"}}
+ curl https://ultron-dev.io -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0", "id":1, "method": "eth_sendRawTransaction", "params": ["0xf8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222"]}'
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"only replay-protected (EIP-155) transactions allowed over RPC"}}
+ BYTECODE=6080604052348015600f57600080fd5b5060848061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c3cafc6f14602d575b600080fd5b6033604f565b604051808260ff1660ff16815260200191505060405180910390f35b6000602a90509056fea165627a7a72305820ab7651cb86b8c1487590004c2444f26ae30077a6b96c6bc62dda37f1328539250029
++ curl https://ultron-dev.io -X POST -H 'Content-Type: application/json' --silent --data '{"jsonrpc":"2.0", "id":1, "method": "eth_call", "params": [{"from":"0x913dA4198E6bE1D5f5E4a40D0667f70C0B5430Eb","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c", "data":"0x00000000000000000000000000000000000000000000000000000000000000006080604052348015600f57600080fd5b5060848061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c3cafc6f14602d575b600080fd5b6033604f565b604051808260ff1660ff16815260200191505060405180910390f35b6000602a90509056fea165627a7a72305820ab7651cb86b8c1487590004c2444f26ae30077a6b96c6bc62dda37f1328539250029"}, "latest"]}'
++ jq --raw-output .result
+ MY_CONTRACT_ADDRESS=0x
+ curl https://ultron-dev.io -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0", "id":1, "method": "eth_sendTransaction", "params": [{"from":"0x913dA4198E6bE1D5f5E4a40D0667f70C0B5430Eb","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c", "gas":"0xf4240", "data":"0x00000000000000000000000000000000000000000000000000000000000000006080604052348015600f57600080fd5b5060848061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c3cafc6f14602d575b600080fd5b6033604f565b604051808260ff1660ff16815260200191505060405180910390f35b6000602a90509056fea165627a7a72305820ab7651cb86b8c1487590004c2444f26ae30077a6b96c6bc62dda37f1328539250029"}]}'
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"unknown account"}}
+ MY_CONTRACT_METHOD_SIGNATURE=c3cafc6f
+ curl https://ultron-dev.io -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0", "id":1, "method": "eth_call", "params": [{"to":"0x", "data":"0xc3cafc6f"}, "latest"]}'
{"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid argument 0: hex string has length 0, want 40 for common.Address"}}
+ docker container stop deployment-proxy-geth
deployment-proxy-geth

@mmv08
Copy link
Member

mmv08 commented Aug 21, 2023

@mmv08 Could you please confirm that we understand clearly the steps that should be done!

  1. clone the repo https://github.com/Arachnid/deterministic-deployment-proxy
  2. execute npm install and npm run build
  3. change the JSON_RPC to the "https://ultron-dev.io" (as testnet)
  4. do not make any changes to output/deployment.json
image 5. send some ULX to -> MY_ADDRESS="0x913dA4198E6bE1D5f5E4a40D0667f70C0B5430Eb" tx https://explorer.ultron-dev.io/transactions/0xba81b3c1dd626c9974a74c9bad692122d77b322f5e510c4b8f14adb70906a4f4 6. execute `./scripts/test.sh`

Cause after these steps we have got some weird results. Any thoughts or additional steps we missed?

-@--MBP deterministic-deployment-proxy % ./scripts/test.sh

+ JSON_RPC=https://ultron-dev.io
+ docker container run --rm -d --name deployment-proxy-geth -p 1234:8545 -e GETH_VERBOSITY=3 keydonix/geth-clique
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
d690377261764c8242138267d6cb6984d1c1df1a70952bbe07b1b3893c615dbf
+ curl --silent --fail https://ultron-dev.io -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0", "id":1, "method": "net_version", "params": []}'
{"jsonrpc":"2.0","id":1,"result":"1230"}
+ MY_ADDRESS=0x913dA4198E6bE1D5f5E4a40D0667f70C0B5430Eb
++ cat output/deployment.json
++ jq --raw-output .signerAddress
+ ONE_TIME_SIGNER_ADDRESS=0x3fab184622dc19b6109349b94811493bf2a45362
+++ cat output/deployment.json
+++ jq --raw-output .gasPrice
+++ cat output/deployment.json
+++ jq --raw-output .gasLimit
++ printf %x 10000000000000000
+ GAS_COST=0x2386f26fc10000
++ cat output/deployment.json
++ jq --raw-output .transaction
+ TRANSACTION=0xf8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222
++ cat output/deployment.json
++ jq --raw-output .address
+ DEPLOYER_ADDRESS=0x4e59b44847b379578588920ca78fbf26c0b4956c
+ curl https://ultron-dev.io -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0", "id":1, "method": "eth_sendTransaction", "params": [{"from":"0x913dA4198E6bE1D5f5E4a40D0667f70C0B5430Eb","to":"0x3fab184622dc19b6109349b94811493bf2a45362","value":"0x2386f26fc10000"}]}'
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"unknown account"}}
+ curl https://ultron-dev.io -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0", "id":1, "method": "eth_sendRawTransaction", "params": ["0xf8a58085174876e800830186a08080b853604580600e600039806000f350fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf31ba02222222222222222222222222222222222222222222222222222222222222222a02222222222222222222222222222222222222222222222222222222222222222"]}'
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"only replay-protected (EIP-155) transactions allowed over RPC"}}
+ BYTECODE=6080604052348015600f57600080fd5b5060848061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c3cafc6f14602d575b600080fd5b6033604f565b604051808260ff1660ff16815260200191505060405180910390f35b6000602a90509056fea165627a7a72305820ab7651cb86b8c1487590004c2444f26ae30077a6b96c6bc62dda37f1328539250029
++ curl https://ultron-dev.io -X POST -H 'Content-Type: application/json' --silent --data '{"jsonrpc":"2.0", "id":1, "method": "eth_call", "params": [{"from":"0x913dA4198E6bE1D5f5E4a40D0667f70C0B5430Eb","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c", "data":"0x00000000000000000000000000000000000000000000000000000000000000006080604052348015600f57600080fd5b5060848061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c3cafc6f14602d575b600080fd5b6033604f565b604051808260ff1660ff16815260200191505060405180910390f35b6000602a90509056fea165627a7a72305820ab7651cb86b8c1487590004c2444f26ae30077a6b96c6bc62dda37f1328539250029"}, "latest"]}'
++ jq --raw-output .result
+ MY_CONTRACT_ADDRESS=0x
+ curl https://ultron-dev.io -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0", "id":1, "method": "eth_sendTransaction", "params": [{"from":"0x913dA4198E6bE1D5f5E4a40D0667f70C0B5430Eb","to":"0x4e59b44847b379578588920ca78fbf26c0b4956c", "gas":"0xf4240", "data":"0x00000000000000000000000000000000000000000000000000000000000000006080604052348015600f57600080fd5b5060848061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c3cafc6f14602d575b600080fd5b6033604f565b604051808260ff1660ff16815260200191505060405180910390f35b6000602a90509056fea165627a7a72305820ab7651cb86b8c1487590004c2444f26ae30077a6b96c6bc62dda37f1328539250029"}]}'
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"unknown account"}}
+ MY_CONTRACT_METHOD_SIGNATURE=c3cafc6f
+ curl https://ultron-dev.io -X POST -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0", "id":1, "method": "eth_call", "params": [{"to":"0x", "data":"0xc3cafc6f"}, "latest"]}'
{"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid argument 0: hex string has length 0, want 40 for common.Address"}}
+ docker container stop deployment-proxy-geth
deployment-proxy-geth

no, you need to set an environment variable CUSTOM_DETERMINISTIC_DEPLOYMENT to true, as per README

@softwareultron
Copy link
Contributor Author

@mmv08 Thank you so much, we definitely missed that parameter in older Readme file.
I've updated the PR already by new deployed addresses.
Could you please double check the PR?

image

Copy link
Member

@mmv08 mmv08 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mmv08 mmv08 merged commit 147e2e1 into safe-global:main Aug 22, 2023
@softwareultron
Copy link
Contributor Author

@mmv08 Hello! Could you please also update the package?
https://www.npmjs.com/package/@safe-global/safe-deployments?activeTab=readme

@dasanra
Copy link
Collaborator

dasanra commented Sep 12, 2023

@softwareultron we were validating the shortnames on the packages where we are EIP-3770 compatible and we found that there may be a typo on the shortname here:

https://github.com/ethereum-lists/chains/blob/master/_data/chains/eip155-1231.json

It says UtronMainnet where I understand it should be UltronMainnet right?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants