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

feat: End-to-end request via custom EVM Gateway.sol on Ethereum Local Network to custom Relayer to custom Secret contract on Localsecret with response back and then to NunyaBusiness.sol #33

Merged
merged 177 commits into from
Jan 3, 2025
Merged
Changes from 1 commit
Commits
Show all changes
177 commits
Select commit Hold shift + click to select a range
7925a8a
wip submit pubkey
ltfschoen Oct 16, 2024
e718457
Merge branch 'main' into submit-pubkey
ltfschoen Oct 16, 2024
b3dbf1b
Merge branch 'main' into submit-pubkey
ltfschoen Oct 16, 2024
953c751
WIP
ltfschoen Oct 17, 2024
7dc92ca
change callbackSelector to upgradeHandler same as secret_ballz
ltfschoen Nov 2, 2024
0cf285d
WIP: Secret rust compiles
ltfschoen Nov 2, 2024
be6ae52
WIP: Secret rust compiles. Trying to deploy to testnet
ltfschoen Nov 3, 2024
3ec3302
merge latest main where fundGateway reduced to 100000
ltfschoen Nov 3, 2024
6d8999e
clean up txOptions
ltfschoen Nov 3, 2024
812394c
use optimized build
ltfschoen Nov 3, 2024
b7fc6e8
updates after trying with my-counter-contract
ltfschoen Nov 3, 2024
5327898
use secretjs beta whilst testnet being updated. fixes uploading Nunya…
ltfschoen Nov 3, 2024
2fd4616
WIP: separate instantiate from upload
ltfschoen Nov 6, 2024
cdcab0d
WIP
ltfschoen Nov 6, 2024
66bac52
move to cofig file
ltfschoen Nov 6, 2024
b0106bc
docs: Notes based on meeting with Mork
ltfschoen Nov 16, 2024
2cceac2
fix: Use correct address for Secret signer pubkey
ltfschoen Nov 17, 2024
aeda1b8
wip
ltfschoen Nov 17, 2024
bb547fe
wip: Add setGatewayAddressInfo
ltfschoen Nov 19, 2024
0cefaad
fix: Fixes and deploy
ltfschoen Nov 19, 2024
c96ce98
refactor: Add setEVMGatewayAddress and updated deployed Nunya.busines…
ltfschoen Nov 19, 2024
3b52e09
docs: Update readme
ltfschoen Nov 19, 2024
9289214
docs: Update readme rearranging order of deployment
ltfschoen Nov 19, 2024
124cebf
wip: trying to instantiate with secretjs 1.15.0-beta.1 but does not r…
ltfschoen Nov 19, 2024
45e8841
fix: Rename logs folder so logs all visible
ltfschoen Nov 19, 2024
4d6831c
fix: Change nunya_business_contract_address to Vec<u8>
ltfschoen Nov 19, 2024
f15b655
wip: tried changing typs but still instantiate error
ltfschoen Nov 19, 2024
263c370
wip
ltfschoen Nov 19, 2024
ca5f9a0
fix: Fix and deploy custom secret contract
ltfschoen Nov 22, 2024
23fde20
fix: Fix queryPubkey working
ltfschoen Nov 22, 2024
f14da2f
wip
ltfschoen Nov 25, 2024
30cd895
feat: runs some of generateKeys
ltfschoen Nov 25, 2024
775ed89
feat: debugging generateKeys
ltfschoen Nov 25, 2024
a8b5c33
submit runs but with issues
ltfschoen Nov 28, 2024
2c711a5
submit runs but no response from wait and cannot find tx on sepolia
ltfschoen Nov 29, 2024
1400efa
requestValue
ltfschoen Dec 1, 2024
7d6efe3
requestValue logs
ltfschoen Dec 1, 2024
24647dc
docs: Add steps to interact with deployed Gateway EVM contract on Sep…
ltfschoen Dec 2, 2024
38aae5c
fix: Various fixes
ltfschoen Dec 2, 2024
01a00f5
refactor: Move requestValue
ltfschoen Dec 2, 2024
cdb1356
fix: Fix scripts and redeploy but not response from requestValue
ltfschoen Dec 3, 2024
9c9c7a7
fix: Fixes unsafeSetSecretContractInfo
ltfschoen Dec 3, 2024
e60073b
feat: Paid Callback Fee Too Low error from requestValue in Gateway EV…
ltfschoen Dec 4, 2024
8aaf9a2
fix: Fix deploy NunyaBusiness and Gateway to EVM on localhost
ltfschoen Dec 4, 2024
b32578c
chore: remove disused abi file
ltfschoen Dec 5, 2024
e898d0e
feat: setEVMGatewayAddress on localhost works
ltfschoen Dec 5, 2024
531dea0
wip: Relayer
ltfschoen Dec 8, 2024
1b19e09
chore: copy of https://github.com/SecretSaturn/SecretPath/tree/main/T…
ltfschoen Dec 14, 2024
d83147f
fix: Separate files for Secret Gateway and Nunya contract with clean …
ltfschoen Dec 14, 2024
7f4aba3
feat: restore debug-print
ltfschoen Dec 14, 2024
302a714
fix: Capitalize Cargo.toml
ltfschoen Dec 14, 2024
8b48ff9
wip: Try get working debug-print
ltfschoen Dec 14, 2024
d9a2887
wip: Update docs with correct error
ltfschoen Dec 14, 2024
26c7273
debug: Add debugging to secret contracts
ltfschoen Dec 15, 2024
f544711
fix: Remove use of debug-print
ltfschoen Dec 15, 2024
431df57
fix so compiles
ltfschoen Dec 15, 2024
4120a3c
fix: Remove set_debug_handler. Add eprintln debugs instead
ltfschoen Dec 15, 2024
d13af64
fix: Fix wasm-opt to prevent error
ltfschoen Dec 15, 2024
87bc944
fix: Makefile consistent between nunya and gateway secret contracts
ltfschoen Dec 15, 2024
539d327
fix: Consistently name Docker container secretdev. sudo required for …
ltfschoen Dec 15, 2024
d463d96
fix: Fix permissions with using Docker and docker exec. Increase gas …
ltfschoen Dec 15, 2024
9a1be39
chore: Update to use newer version of localsecret Docker container
ltfschoen Dec 15, 2024
d9650d9
chore: Replace setting env vars for Makefile in bash script
ltfschoen Dec 15, 2024
b73b54d
chore: Change to use bash in script instead of dot
ltfschoen Dec 15, 2024
9f83587
fea: uploadGateway
ltfschoen Dec 15, 2024
ab769ba
wip: TypeScript alternative to upload Secret Gateway on localsecret
ltfschoen Dec 15, 2024
c27d97b
wip: Update TODO
ltfschoen Dec 15, 2024
ce63120
wip
ltfschoen Dec 16, 2024
d30901a
refactor: Updates after successful deployment of Secret Gateway on lo…
ltfschoen Dec 17, 2024
d70505f
docs: Show users to use Option A
ltfschoen Dec 17, 2024
0c91347
chore: Add mock values for public key of Secret Gateway deployed on L…
ltfschoen Dec 17, 2024
19d8dfe
chore: Updates after successful deployment of both Secret Gateway con…
ltfschoen Dec 17, 2024
5534452
wip: Try to resolve gas issue calling requestValue
ltfschoen Dec 17, 2024
bf8e268
wip: requestValue works but unable to set userKey since error if call…
ltfschoen Dec 17, 2024
078d1f8
feat: requestValue but temporarily not use userKey due to issue
ltfschoen Dec 17, 2024
3cef4f8
feat: run requestValue when relayer running and record logs
ltfschoen Dec 17, 2024
d96a784
wip: change from owner to msg.sender in requestValue. change callback…
ltfschoen Dec 17, 2024
239cd5e
fix: Change to owner instead of msg.sender so only NunyaBusiness can …
ltfschoen Dec 17, 2024
96282cb
fix: Change to msg.sender again since not an issue when using onlyOwner
ltfschoen Dec 17, 2024
1b0b47e
fix: Reuse encodeAddressToBase64 to avoid calling it too many times t…
ltfschoen Dec 17, 2024
e750cee
fix: Update local gateway address and other tweaks
ltfschoen Dec 18, 2024
227cfdd
docs: Update readme
ltfschoen Dec 19, 2024
2ca0fd6
update docs and improve debugging in Secret Gateway
ltfschoen Dec 19, 2024
6354b52
wip: improvements but relayer error Error parsing into type secret_ga…
ltfschoen Dec 20, 2024
3d72480
docs: Remove old issue now resolved
ltfschoen Dec 20, 2024
666cdce
wip
ltfschoen Dec 20, 2024
e7a1f98
fix: Error parsing into type secret_gateway::types::Payload: invalid …
ltfschoen Dec 20, 2024
89bce8b
fix: Fix syntax
ltfschoen Dec 20, 2024
2b81045
logs: Update logs Generic error: Only NunyaBusiness contract can call…
ltfschoen Dec 20, 2024
2650863
docs: Mention what msg.user_address is at Secret contract
ltfschoen Dec 20, 2024
e4f287b
fix: Add correct Secret logs to match Relayer logs
ltfschoen Dec 20, 2024
1446e7a
fix: Fix debugging
ltfschoen Dec 21, 2024
afb39d1
wip: Try to fix publickey error in Gateway
ltfschoen Dec 21, 2024
17851ce
fix: Fix so correct nunya evm address is stored in secret contract on…
ltfschoen Dec 21, 2024
eb4e1f8
wip: try to fix invalid contract error
ltfschoen Dec 21, 2024
6877731
docs: Add Message contains mismatched contract hash error
ltfschoen Dec 21, 2024
00a1e95
wip: verify the internal verification key matches the user address
ltfschoen Dec 21, 2024
105b4ec
wip: Calls try_handle but then public key error
ltfschoen Dec 21, 2024
d4eebff
wip: Still getting malformed public key error
ltfschoen Dec 21, 2024
e9e702a
wip: try to improve submitRequestValue
ltfschoen Dec 21, 2024
3602e83
fix: Update submitRequestValue to use the correct Localsecret public …
ltfschoen Dec 22, 2024
b8e822f
wip: Solves verify the internal verification key matches the user add…
ltfschoen Dec 22, 2024
4c6affd
wip: Use differerent values for user_pubkey and user_key in Execution…
ltfschoen Dec 22, 2024
b85e410
chore: Improve debugging for Secret Gateway to check why decryption n…
ltfschoen Dec 22, 2024
f3a818a
wip
ltfschoen Dec 22, 2024
1ffe977
fix Secret gateway decrypt debugging
ltfschoen Dec 22, 2024
e2907bb
wip
ltfschoen Dec 22, 2024
c99289b
docs: Error Message contains mismatched contract hash due to recent c…
ltfschoen Dec 22, 2024
ed6feb8
Revert "docs: Error Message contains mismatched contract hash due to …
ltfschoen Dec 22, 2024
b85d86e
Revert "wip"
ltfschoen Dec 22, 2024
0c80aca
Revert "fix Secret gateway decrypt debugging"
ltfschoen Dec 22, 2024
6488809
Revert "wip"
ltfschoen Dec 22, 2024
3bb25a9
Revert "chore: Improve debugging for Secret Gateway to check why decr…
ltfschoen Dec 22, 2024
5d218a8
wip
ltfschoen Dec 22, 2024
a1de0b9
wip: malformed public key
ltfschoen Dec 22, 2024
9774235
wip: Set admin of Secret Gateway to secret1glfedwlusunwly7q05umghzwl6…
ltfschoen Dec 22, 2024
4c0b913
wip
ltfschoen Dec 22, 2024
32f1a4b
wip
ltfschoen Dec 23, 2024
8fd4340
wip: Try to improve submitRequestValue
ltfschoen Dec 23, 2024
a5efc05
revert change to msg.rs in Secret Gateway until know why changes caus…
ltfschoen Dec 24, 2024
fa96c7e
improve debugging in Secret Gateway. update docs that need to update …
ltfschoen Dec 24, 2024
1a8e5d1
logs: Update logs after updating Secret Gateway with improved debugging
ltfschoen Dec 24, 2024
80c31a6
fix: Fix use of Secret Gateway ephemeral keys to generate user_pubkey…
ltfschoen Dec 24, 2024
30f451e
docs: Add fixme to use random nonce
ltfschoen Dec 24, 2024
482ed9a
update logs
ltfschoen Dec 24, 2024
730a13c
tweak Secret Nunya contract debugging
ltfschoen Dec 24, 2024
8857251
fix tweak Secret Nunya contract debugging
ltfschoen Dec 24, 2024
3ce2562
fix
ltfschoen Dec 24, 2024
c862dc2
fix: Fix gateway_key to Binary and use .as_slice like in ev-kv-store-…
ltfschoen Dec 24, 2024
cf17719
fix: Fix type of gateway_key to be Binary
ltfschoen Dec 25, 2024
db89019
fix: Fixes error Generic error: Invalid public key format
ltfschoen Dec 25, 2024
74b4674
debugging Nunya contract request_value
ltfschoen Dec 25, 2024
641f208
fix: Fix invalid type error in request_value
ltfschoen Dec 25, 2024
67e3211
attempt e2e submitRequestValue
ltfschoen Dec 25, 2024
9a9b476
fix: attempt e2e submitRequestValue
ltfschoen Dec 25, 2024
78fb554
fix: attempt e2e submitRequestValue
ltfschoen Dec 25, 2024
956c78b
fix: attempt e2e submitRequestValue
ltfschoen Dec 25, 2024
47fa5ec
fix: Finished getting submitRequestValue working e2e
ltfschoen Dec 25, 2024
7c040db
wip: Impossible to get requestValue to work so documented reasons why…
ltfschoen Dec 26, 2024
761d2d9
wip: Simplify
ltfschoen Dec 26, 2024
6a98984
wip: unsafeRequestValue request via NunyaBusiness to send in Gateway …
ltfschoen Dec 26, 2024
48fa26b
fix: Use correct contract for iface value
ltfschoen Dec 26, 2024
2a2e97a
refactor: Refactor to use common script to call requestValue and retr…
ltfschoen Dec 26, 2024
3cdcb6a
fixes
ltfschoen Dec 26, 2024
defa7e3
fix naming
ltfschoen Dec 26, 2024
f384a89
fix missing bracket
ltfschoen Dec 26, 2024
2780adb
fix: remove unsupported Solidity console.logs
ltfschoen Dec 26, 2024
cf51bfe
fix: Fix console.log function reference and rename file for consistency
ltfschoen Dec 26, 2024
d15eec4
refactor: Renamce deploy.ts to config.ts
ltfschoen Dec 26, 2024
ee238fd
feat: Combine uploadAndInstantiateGateway. Add bash scripts for end t…
ltfschoen Dec 26, 2024
bf8c8b4
wip: Add script for end to end
ltfschoen Dec 26, 2024
65537b5
wip: Permission denied error in script
ltfschoen Dec 27, 2024
92da978
feat: Quick start. Run it all using docker and systemctl with ./scrip…
ltfschoen Dec 27, 2024
60e692e
docs: Remote editing
ltfschoen Dec 27, 2024
11ee9d8
refactor: Combine upload and instantiate Nunya. Initial pseudo to dec…
ltfschoen Dec 28, 2024
f46e23e
wip: Modify config.ts to be updatable and change code to update it. T…
ltfschoen Dec 29, 2024
ef364e8
feat: Automated deployment config output to deployed.json with Relaye…
ltfschoen Dec 29, 2024
deaf080
wip
ltfschoen Dec 29, 2024
5a4ce61
fix: Fix path to script
ltfschoen Dec 29, 2024
1337597
fix: Tweaks to update relayer config
ltfschoen Dec 29, 2024
4d32f1a
fix: Fix set-relayer
ltfschoen Dec 29, 2024
0bf330b
fix: Fix to correct folder
ltfschoen Dec 29, 2024
fdce0f4
feat: Finish e2e automation to generate deployed YML file of deployed…
ltfschoen Dec 30, 2024
2291807
fix: Fix incorrectly assigned variable
ltfschoen Dec 30, 2024
4210968
fix
ltfschoen Dec 30, 2024
cb98c07
refactor: Improve configuration of environmental variables and use of…
ltfschoen Jan 1, 2025
137a8e7
Integrated Relayer as a Gitsubmodule. Updated quickstart guide
ltfschoen Jan 2, 2025
6211074
wip: Refactor broken. nunya wasm Error during static Wasm validation:…
ltfschoen Jan 2, 2025
5a399b9
fixed
ltfschoen Jan 2, 2025
2bf95f8
omit ip address
ltfschoen Jan 2, 2025
cad78e3
update Relayer Git Submodule commit being used
ltfschoen Jan 2, 2025
59e6248
update Relayer Git Submodule commit being used
ltfschoen Jan 2, 2025
e0cf0d5
lint: fix linting errors in CI
ltfschoen Jan 3, 2025
92ef298
lint: Fix lint error
ltfschoen Jan 3, 2025
04d84ec
chore: Add FIXME for nextjs ts errors
ltfschoen Jan 3, 2025
9cdc5a5
frontend placeholder to test existing submitRetrievePubkey functionality
ltfschoen Jan 3, 2025
ec1f5bb
chore: Reduce logs
ltfschoen Jan 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
wip: Try to fix publickey error in Gateway
ltfschoen committed Dec 21, 2024
commit afb39d165638ddf26578a9c6216c89f80cd5b731
18 changes: 12 additions & 6 deletions packages/hardhat/contracts/Gateway.sol
Original file line number Diff line number Diff line change
@@ -543,10 +543,14 @@ contract Gateway is Ownable, Utils {
// to allow us to set an `owner`-like value that could be used to restrict calls to functions like this.
// FIXME: Error parsing into type secret_gateway::types::Payload: Invalid unicode code point.: execute contract failed
// TODO: Try changing to `"user_address":"0x0000","user_key":"AAA="`
// FIXME: Generic error: Invalid public key format
bytes memory payload_info = abi.encodePacked(
'}","routing_info":"',routing_info,
'","routing_code_hash":"',routing_code_hash,
'","user_address":"0x0000","user_key":"AAA=","callback_address":"'
'","user_address":"',address(owner),
'","user_key":"',owner_public_key,
'","callback_address":"'
// '","user_address":"0x0000","user_key":"AAA=","callback_address":"'
);

//
@@ -602,14 +606,16 @@ contract Gateway is Ownable, Utils {

// TODO - make `user_key` a unique key different from `user_pubkey`
// bytes memory userKey = bytes.concat(senderAddressBase64); // equals AAA= in base64
bytes memory userKey = bytes.concat(owner_public_key); // equals AAA= in base64

// ExecutionInfo struct
ExecutionInfo memory executionInfo = ExecutionInfo({
// user_key: userKey, // FIXME - use this instead when resolve issue
user_key: emptyBytes, // equals AAA= in base64
user_key: userKey, // FIXME - use this instead when resolve issue
// user_key: emptyBytes, // equals AAA= in base64
// FIXME: use of `secret_gateway_signer_pubkey` does not compile, what alternative to use?
// user_pubkey: uint256toBytesString(secret_gateway_signer_pubkey),
user_pubkey: emptyBytes, // Fill with 0 bytes
user_pubkey: owner_public_key,
// user_pubkey: emptyBytes, // Fill with 0 bytes
routing_code_hash: routing_code_hash, // custom contract codehash on Secret
task_destination_network: task_destination_network,
handle: "request_value",
@@ -618,8 +624,8 @@ contract Gateway is Ownable, Utils {
payload: payload,
// TODO: add a payload signature
// Signature of hash of encrypted input values
payload_signature: emptyBytes // empty signature, fill with 0 bytes
// payload_signature: bytes32ToBytes(payloadHash)
// payload_signature: emptyBytes // empty signature, fill with 0 bytes
payload_signature: bytes32ToBytes(payloadHash)
});

// persisting the task