-
Notifications
You must be signed in to change notification settings - Fork 170
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
Aptos CLI #1121
base: main
Are you sure you want to change the base?
Aptos CLI #1121
Changes from 199 commits
204469c
c4184b5
7227bbd
511521f
f4bca05
bccba2e
7fe4aa9
25f267a
c6277e5
66879e9
a1c66ff
73bbb35
116d4c6
7178ae1
d486067
e5b0d65
70ae1c6
bf4704c
50a7f6e
2f5f35b
878e343
6db4315
2d5fc34
5381a27
6d18910
bb8d5f8
dc2c6ed
14fa43b
3333ee7
7b7d605
73c3bd1
f165491
e7504e0
848fc0e
a38a34b
440a2b3
b3a1ea9
90188f1
6016bbe
99ceb98
d285ab4
f4763df
8fe908d
2f0b584
3fa03b7
425130a
8a588b1
bbe1774
5245552
4b34f2a
b691d83
053e9c5
dce510e
d188f17
ae265a6
b74a17e
3b6d49b
88d5228
ba6e50e
d2de2ff
9256da5
b2e2615
4128f9e
4b8cbba
cf25a21
12f4fec
2173898
c8a481c
82febf5
32ce108
0481adb
1457259
557c64e
c9add4d
7698333
553f221
fc06b67
4158db8
c6945b9
bb3634d
d7e97ee
f696c5e
0120905
d090763
5852c69
2e245bc
dff75d0
fd4ce05
82d9c87
5b5dae2
8c84cb0
3bb570f
af2c308
a934aa6
2a3fb59
5a32ee1
2ef90e4
aea3154
e3e57d1
ae0914f
346750c
55b54c8
2d8c440
e8c9ec5
f8e421a
3e3448f
bb31f92
b58bbd8
f1dadbc
f536a3c
24a1607
58296f0
d9f5158
9d51693
ccdc3e4
58d547e
72cb1a8
f6fa588
fce0b83
9702ea0
55faa73
3b20e8d
cc71994
ef95562
a8d627d
de85d44
b2dd6c8
1ac80a5
be96b9d
dea963c
0266acf
0d610ce
87fd883
39b222d
95a64a3
9166e95
58d6d18
153b4b8
758bce3
8df9ba1
9cd8cc6
74ca12a
bbc0fe7
d285d34
0baac9b
1bc4c01
48336ed
69d685f
b896161
4658cc3
681cf28
91425f6
dbc9df4
a925c15
f14b4d4
00de5e9
00570f3
e089ecf
750a0e5
55dd2dc
fca7fab
7bfd0ff
0e0d76e
ab47dad
e3e853b
7b05cfa
64c689e
c129cdd
dc74153
951bd07
216855a
ac27d19
b7a18ae
6f3fd83
6e5888f
a1a355d
cdd64fa
a11cb5c
e64d15c
39a84ac
38432b3
1896c0d
ef43ce1
f12e2c0
ff8b91c
770c8b6
f4c6865
fed4065
84b84ae
867bdfd
40e4968
a7afdcb
54b0db2
5a0aaa9
dd0b0df
e71e3fb
608aeae
ef4ba36
36be65e
49903a0
06c5c26
b68ed0d
aba13a2
b319170
09f1314
95c7ad4
1d7d621
e8d793f
562684f
b2dcb0e
2b31a98
8d29d93
ef4fd1d
7365a19
8133bde
dabcd7d
eff41fe
c3ab04b
1c25ff8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
PUBLIC_KEY= | ||
PRIVATE_KEY= |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
.env | ||
*/build | ||
*/node_modules | ||
.aptos | ||
cache/hardhat | ||
deployments/* | ||
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
# Aptos OFT Deployment | ||
### connecting to aptos via cli | ||
To install aptos cli, run the following command: | ||
``` | ||
brew install aptos | ||
``` | ||
If you need to generate a new key, run the following command: | ||
``` | ||
aptos key generate --output-file my_key.pub | ||
``` | ||
Then initialize the aptos cli and connect to the aptos network: | ||
``` | ||
aptos init --network=testnet --private-key=<your-private-key> | ||
``` | ||
You can then verify that your initialization was successful by running the following command: | ||
``` | ||
cat .aptos/config.yaml | ||
``` | ||
If successful the config will be populated with the RPC links and your account private key, account address, and network. | ||
## Build the OFT: | ||
We reccomend using the account address in printed by `cat .aptos/config.yaml` as the deployer and admin during the build and deploy steps to ensure wiring is successful. Afterwards you can use the transfer ownership script to set your desired admin. | ||
``` | ||
ts-node tasks/move/build.ts --package-dir=oft --named-addresses oft=<account-address-of-deployer>,oft_admin=<account-address-of-admin> | ||
``` | ||
## Deploy the OFT: | ||
``` | ||
ts-node tasks/move/deploy.ts --package-dir oft --address-name oft --named-addresses oft_admin=<account-address-of-your-admin> | ||
``` | ||
|
||
Make sure to set the account that will be used for administrative functions such as settting the peers should be set in the move.toml as OFT_ADMIN | ||
|
||
Account Descriptions: | ||
- oft is the owner of the deployer object which gives the account that owns the object the abilitiy to upgrade the object and also burn and mint the fungible asset. | ||
- oft_admin is the account that is responsible for administrative functions such as setting the peers, set uln config... etc. | ||
|
||
The address of the deployed oft is printed out in the terminal: | ||
``` | ||
Code was successfully deployed to object address 0xaebb730cc67b4b0987ec99cd20b9eaf7c5c0d517f4424ab4f4b1450c6c8d9bb4. | ||
{ | ||
"Result": "Success" | ||
} | ||
``` | ||
## Set the delegate: | ||
Run the following command to set the delegate to the oft. Ensure first that you have specified the delegate address in the layerzero.config.ts file. | ||
``` | ||
npx hardhat run tasks/move/setDelegate.ts | ||
``` | ||
## Initialize the OFT: | ||
Inside the file tasks/move/initAptosOFT.ts, set the following parameters: | ||
```typescript | ||
const tokenName = '<your-token-name>' | ||
const tokenSymbol = '<your-token-symbol>' | ||
const iconUri = '<your-icon-uri>' | ||
const projectUri = '<your-project-uri>' | ||
const sharedDecimals = <your-shared-decimals> | ||
const localDecimals = <your-local-decimals> | ||
``` | ||
Then run the following command to initialize the oft: | ||
``` | ||
ts-node tasks/move/initAptosOFT.ts | ||
``` | ||
## Wiring your aptos OFT: | ||
|
||
#### layerzero.config.ts: | ||
ensure that all of the contracts you wish to wire your aptos oft to are included under the contracts array and connections array. For example, if you want to wire your aptos oft to fuji, you would include both contracts under the contracts array, and specify them like this: | ||
```typescript | ||
const aptosContract: OmniPointHardhat = { | ||
eid: EndpointId.APTOS_TESTNET, | ||
contractName: 'oft', | ||
} | ||
|
||
const fujiContract: OmniPointHardhat = { | ||
eid: EndpointId.AVALANCHE_V2_TESTNET, | ||
contractName: 'MyOFT', | ||
} | ||
|
||
const config: OAppOmniGraphHardhat = { | ||
contracts: [ | ||
{ | ||
contract: fujiContract, | ||
}, | ||
{ | ||
contract: aptosContract, | ||
config: { | ||
delegate: '<your-aptos-account-address>', | ||
owner: '<your-aptos-owner-address>', | ||
}, | ||
}, | ||
], | ||
connections: [ | ||
{ | ||
from: aptosContract, | ||
to: fujiContract, | ||
}, | ||
{ | ||
from: aptosContract, | ||
to: sepoliaContract, | ||
}, | ||
], | ||
} | ||
``` | ||
|
||
IMPORTANT: Before running the wire script ensure that you have run aptos init and configuered your desired network such as custom, testnet, mainnet, etc. and have also deployed the oft to that network. | ||
``` | ||
npx hardhat run tasks/move/wireAptosOFT.ts | ||
``` | ||
|
||
## Scripts For internal testing: | ||
These scripts will not be shipped in the final version of the aptos cli. They are only for internal testing purposes. | ||
shankars99 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
### Mint Aptos OFT: | ||
First add this function to oft/sources/internal_oft/oft_impl.move in order to expose minting functionality to our aptos sdk script: | ||
``` | ||
public entry fun mint( | ||
admin: &signer, | ||
recipient: address, | ||
amount: u64, | ||
) acquires OftImpl { | ||
assert_admin(address_of(admin)); | ||
primary_fungible_store::mint(&store().mint_ref, recipient, amount); | ||
} | ||
``` | ||
Then run the following command to mint the aptos oft: | ||
``` | ||
npx hardhat run tasks/move/mintAptosOFT.ts | ||
``` | ||
### Send Aptos OFT: | ||
Currently running into bugs with this script. Particularly around quoting send. | ||
``` | ||
npx hardhat run tasks/move/sendFromAptosOFT.ts | ||
``` | ||
|
||
# Movement OFT Deployment: | ||
``` | ||
aptos init --network custom --rest-url https://aptos.testnet.porto.movementlabs.xyz/v1 --faucet-url https://faucet.testnet.bardock.movementnetwork.xyz/ | ||
``` |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,161 @@ | ||
import { EndpointId } from '@layerzerolabs/lz-definitions-v3' | ||
import { ExecutorOptionType } from '@layerzerolabs/lz-v2-utilities-v3' | ||
shankars99 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
import { bscConfig } from './evmOAppConfig' | ||
import { ethConfig } from './evmOAppConfig' | ||
|
||
import type { OAppOmniGraphHardhat, OmniPointHardhat } from '@layerzerolabs/toolbox-hardhat' | ||
|
||
const ethereumContract: OmniPointHardhat = { | ||
eid: EndpointId.ETHEREUM_V2_TESTNET, | ||
contractName: 'MyOFT', | ||
} | ||
|
||
const bscContract: OmniPointHardhat = { | ||
eid: EndpointId.BSC_V2_TESTNET, | ||
contractName: 'MyOFT', | ||
} | ||
|
||
const aptosContract: OmniPointHardhat = { | ||
eid: EndpointId.APTOS_V2_TESTNET, | ||
contractName: 'oft', | ||
} | ||
|
||
const ethereumSandboxContract: OmniPointHardhat = { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think we should remove or hide all sandbox related information from devtools. Devtools is publicly facing and in other examples we only use testnets AFAIK. |
||
eid: EndpointId.ETHEREUM_V2_SANDBOX, | ||
contractName: 'MyOFT', | ||
} | ||
|
||
const bscSandboxContract: OmniPointHardhat = { | ||
eid: EndpointId.BSC_V2_SANDBOX, | ||
contractName: 'MyOFT', | ||
} | ||
|
||
const aptosSandboxContract: OmniPointHardhat = { | ||
eid: EndpointId.APTOS_V2_SANDBOX, | ||
contractName: 'oft', | ||
} | ||
|
||
const config: OAppOmniGraphHardhat = { | ||
contracts: [ | ||
{ | ||
shankars99 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
contract: ethereumContract, | ||
config: ethConfig.accountConfig, | ||
}, | ||
{ | ||
contract: bscContract, | ||
config: bscConfig.accountConfig, | ||
}, | ||
{ | ||
contract: ethereumSandboxContract, | ||
config: ethConfig.accountConfig, | ||
}, | ||
{ | ||
contract: bscSandboxContract, | ||
config: bscConfig.accountConfig, | ||
}, | ||
{ | ||
contract: aptosContract, | ||
config: { | ||
delegate: '58b730d07e98a22f2b357bee721115c986e4dc873c1884763708ee3d4006f74e', | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. remove prepopulated address for delegate and owner If we leave it here we risk someone by mistake deploys and transfers their rights to this address from example config |
||
owner: '58b730d07e98a22f2b357bee721115c986e4dc873c1884763708ee3d4006f74e', | ||
}, | ||
}, | ||
], | ||
connections: [ | ||
{ | ||
from: aptosContract, | ||
to: bscContract, | ||
config: { | ||
enforcedOptions: [ | ||
{ | ||
msgType: 1, | ||
optionType: ExecutorOptionType.LZ_RECEIVE, | ||
gas: 1000, // gas limit in wei for EndpointV2.lzReceive | ||
AlexanderLiteplo marked this conversation as resolved.
Show resolved
Hide resolved
|
||
value: 0, // msg.value in wei for EndpointV2.lzReceive | ||
}, | ||
{ | ||
msgType: 2, | ||
optionType: ExecutorOptionType.LZ_RECEIVE, | ||
gas: 1000, // gas limit in wei for EndpointV2.lzCompose | ||
value: 0, // msg.value in wei for EndpointV2.lzCompose | ||
}, | ||
// { | ||
// msgType: 1, | ||
// optionType: ExecutorOptionType.NATIVE_DROP, | ||
// amount: 0, // amount of native gas token in wei to drop to receiver address | ||
// receiver: '0x0000000000000000000000000000000000000000', | ||
// }, | ||
], | ||
sendLibrary: '0xbe533727aebe97132ec0a606d99e0ce137dbdf06286eb07d9e0f7154df1f3f10', | ||
receiveLibraryConfig: { | ||
// Required Receive Library Address on Aptos | ||
receiveLibrary: '0xbe533727aebe97132ec0a606d99e0ce137dbdf06286eb07d9e0f7154df1f3f10', | ||
// Optional Grace Period for Switching Receive Library Address on Aptos | ||
gracePeriod: BigInt(0), | ||
}, | ||
// Optional Receive Library Timeout for when the Old Receive Library Address will no longer be valid on Aptos | ||
receiveLibraryTimeoutConfig: { | ||
lib: '0xbe533727aebe97132ec0a606d99e0ce137dbdf06286eb07d9e0f7154df1f3f10', | ||
expiry: BigInt(696969669), | ||
AlexanderLiteplo marked this conversation as resolved.
Show resolved
Hide resolved
|
||
}, | ||
sendConfig: { | ||
executorConfig: { | ||
maxMessageSize: 10000, | ||
// The configured Executor address on Aptos | ||
executor: '0xeb514e8d337485dd9ce7492f70128ef5aaa8c34023866e261a24ffa3d61a686d', | ||
}, | ||
ulnConfig: { | ||
// The number of block confirmations to wait on Aptos before emitting the message from the source chain. | ||
confirmations: BigInt(300), | ||
// The address of the DVNs you will pay to verify a sent message on the source chain. | ||
// The destination tx will wait until ALL `requiredDVNs` verify the message. | ||
requiredDVNs: ['0xd6f420483a90c7db5ce2ec12e8acfc2bfb7b93829c9e6a3b0760bca330be64dd'], | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How does it work if here in aptos config there are requiredDVNs to BSC but in BSC config (evmOAppConfig) it says requiredDVNs [0x0]? Btw for EVM config we should stick to EVM config format so empty DVNs should be requiredDVNs: [] There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. yeah lets remove 0x0 and just leave it as an empty array There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
// The address of the DVNs you will pay to verify a sent message on the source chain. | ||
// The destination tx will wait until the configured threshold of `optionalDVNs` verify a message. | ||
optionalDVNs: ['0xd6f420483a90c7db5ce2ec12e8acfc2bfb7b93829c9e6a3b0760bca330be64dd'], | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. we don't usually provide optional dvns by default in other examples, we probably shouldnt add optional dvn here There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Agreed. Will remove There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @DanL0 do you mean we should just fully remove it or have an empty array? |
||
// The number of `optionalDVNs` that need to successfully verify the message for it to be considered Verified. | ||
optionalDVNThreshold: 1, | ||
}, | ||
}, | ||
// Optional Receive Configuration | ||
// @dev Controls how the `from` chain receives messages from the `to` chain. | ||
receiveConfig: { | ||
ulnConfig: { | ||
// The number of block confirmations to expect from the `to` chain. | ||
confirmations: BigInt(300), | ||
// The address of the DVNs your `receiveConfig` expects to receive verifications from on the `from` chain. | ||
// The `from` chain's OApp will wait until the configured threshold of `requiredDVNs` verify the message. | ||
requiredDVNs: ['0x0'], | ||
// The address of the `optionalDVNs` you expect to receive verifications from on the `from` chain. | ||
// The destination tx will wait until the configured threshold of `optionalDVNs` verify the message. | ||
optionalDVNs: ['0xd6f420483a90c7db5ce2ec12e8acfc2bfb7b93829c9e6a3b0760bca330be64dd'], | ||
// The number of `optionalDVNs` that need to successfully verify the message for it to be considered Verified. | ||
optionalDVNThreshold: 1, | ||
}, | ||
}, | ||
}, | ||
}, | ||
{ | ||
from: bscContract, | ||
to: aptosContract, | ||
config: bscConfig.oappConfig, | ||
}, | ||
{ | ||
from: ethereumContract, | ||
to: aptosContract, | ||
config: ethConfig.oappConfig, | ||
}, | ||
{ | ||
from: bscSandboxContract, | ||
to: aptosSandboxContract, | ||
config: bscConfig.oappConfig, | ||
}, | ||
{ | ||
from: ethereumSandboxContract, | ||
to: aptosSandboxContract, | ||
config: ethConfig.oappConfig, | ||
}, | ||
], | ||
} | ||
|
||
export default config |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
{ | ||
"sandbox-addresses": { | ||
"oft_common": "0x49eec680042ba13d54b2343f1551aadfb3dbf549da4f5a3ab55dd49316c1732f", | ||
"router_node_0": "0xde8f887ac62c3ddad6de4df32e30977f0327c8cfeca56e5981dec1f111e189c1", | ||
"simple_msglib": "0xbb29964fac328dc2cd1dbf03982e51fad9de67e2a525c35d6e52cde4b66e7997", | ||
"blocked_msglib": "0xfe58a1557dd30f5f69df9ebd0466f514840fba81a4c6fbcd536f088fe9e58100", | ||
"uln_302": "0x3f2714ef2d63f1128f45e4a3d31b354c1c940ccdb38aca697c9797ef95e7a09f", | ||
"router_node_1": "0x3dc5c01fde9a92724de233adc32878638ddc98b2178282d137ba2bafb1f4b935", | ||
"endpoint_v2_common": "0xf8ce9f0030cb1fa5fb48f481d9b2da3909cd922992e7085e76a196653a707bbf", | ||
"endpoint_v2": "0x824f76b2794de0a0bf25384f2fde4db5936712e6c5c45cf2c3f9ef92e75709c", | ||
"layerzero_admin": "0x75de231a1ea32a14ed5be6a52475b16d7d8eeac35d378afd4c361979c0ae1531", | ||
"layerzero_treasury_admin": "0x75de231a1ea32a14ed5be6a52475b16d7d8eeac35d378afd4c361979c0ae1531", | ||
"msglib_types": "0x147b2ca35d8d6101a49690b3c108e67b174665d13b0fbba515e3b99d48b9fe42", | ||
"treasury": "0xd83cb5c494daec692964a3599c3b36d4bd618dc54e7bcb2bbe444a7f9732f740", | ||
"worker_peripherals": "0x75de231a1ea32a14ed5be6a52475b16d7d8eeac35d378afd4c361979c0ae1531", | ||
"price_feed_router_0": "0x86c53b1187769b354e59b44111d90ab74f3162240d3f35ea1ca451281137cf2c", | ||
"price_feed_router_1": "0xd78078a798d87940a9783ea4b8b09eb47117f36f23f57fe31a96faeb775046c4", | ||
"price_feed_module_0": "0x894473c4f48d05a65d5bfb106ab91bc0881c7a1c7e9c66fbea2859c2ba9bff83", | ||
"worker_common": "0x9d8a2cc4cd5563028107b792fd3c7f4068064405ef1bc4fce1cbc3af916032e8", | ||
"executor_fee_lib_router_0": "0x551bd1f03eaba95f5aae59c0f382acf74e051b3d0890d63574069e45fce0118e", | ||
"executor_fee_lib_router_1": "0xf1265e9c0ae38b49f099355587290d830ab46484df87d95cbad66c4ee3af8967", | ||
"dvn_fee_lib_router_0": "0xc09c085aafdb39e4aa66f3311f3d293fe67ee88dab2aec772df9c2f0a1d60abd", | ||
"dvn_fee_lib_router_1": "0xd9df2854349456b32d482d25db0b3917964f6fbae9737b3b4b62bf6d0a27ed51", | ||
"executor_fee_lib_0": "0xff72f529a579e922e0edba30f384b4c9c86d05020cbd2401a23fe708f29c6664", | ||
"dvn_fee_lib_0": "0xf63f6b01ea6688189e09e2be035bef512049288ff1d307c2470a913f3831330f", | ||
"dvn": "0x1f79b324153abe0ca18a279822f3b561acbaabb4d68d47ed3639b5a53e4d3470" | ||
}, | ||
"testnet-addresses": { | ||
"oft_common": "0x1fa2c7365c88f7db4995f10ce5ffa93043e04f7ec797fb97c022d52d5ed870b9", | ||
"router_node_0": "0x864554801ac1fd3611c1f9470c5d62fae447233933564667ff947c5b446237af", | ||
"simple_msglib": "0xfa0ca06bf52334a3e9e040e807bbd532d90fc7651e594a42cdae919605a94d31", | ||
"blocked_msglib": "0x197b99f723c6ea412bc7adebb840d38113252296bc80612f6a92e3d56678b87e", | ||
"uln_302": "0xbe533727aebe97132ec0a606d99e0ce137dbdf06286eb07d9e0f7154df1f3f10", | ||
"router_node_1": "0x169216d2983bfbee456d20e6a902d17cc2b09c2a936c1d2d43d057047dababab", | ||
"endpoint_v2_common": "0x7832affd0909f4ae3363efc372d7b86dd3be80ed5efe9cbb9b250ffb89a6e4b", | ||
"endpoint_v2": "0xa53352d6eb261173560111b83eb898611a8e87f7dabada415159f749fbd185e4", | ||
"layerzero_admin": "0xde46aadc73f380cf51005afaf0a32c58d8e8d63c6dc36155935a3d0422e93c37", | ||
"layerzero_treasury_admin": "0xde46aadc73f380cf51005afaf0a32c58d8e8d63c6dc36155935a3d0422e93c37", | ||
"msglib_types": "0x302b77de23fd4189623e587fe48b87ec807db57c410e0f0a1f140b99be80f6b1", | ||
"treasury": "0x6b3c61050170fd85a9ebe324688d092502bad3255856d61ecabec15c54b6ff90", | ||
"worker_peripherals": "0xde46aadc73f380cf51005afaf0a32c58d8e8d63c6dc36155935a3d0422e93c37", | ||
"price_feed_router_0": "0xc952a002c95ee5880a54e054764fbda13a2eda3b9698528629863921f6c2c74c", | ||
"price_feed_router_1": "0x2dd6cca9b6220ed18ed5c1e611c8989efc0a0d2a441dd24074180509db6d9926", | ||
"price_feed_module_0": "0x36536dc5f158e3701521614e4e2b2fff07fff15877f36123196bb37356afe404", | ||
"worker_common": "0xc3cd6ba2758a9acf604c9e5382a6f76ee71598b863b93efc7c4fe542a397a9db", | ||
"executor_fee_lib_router_0": "0xfa6f8d82188bfe34cb37e0aeba3bcf5a21610116d01c187d7779817a9441f3ad", | ||
"executor_fee_lib_router_1": "0x221a5f2158d7aa67c5939a57cce0ce0e3d5915ae4a575fa7ce50c76d115023", | ||
"dvn_fee_lib_router_0": "0x709b216b828fe42596d860d0126907b43f89564ae4bc81ec153b02fe492174a4", | ||
"dvn_fee_lib_router_1": "0x27c840aa072206a4e190042158c1ce4cf23b3f04fa22dcd5c092859ab1e54c48", | ||
"executor_fee_lib_0": "0xcd94220a2632ea96e2b05bd5056a8234a418cf647abfe92949a8f7623732dbce", | ||
"dvn_fee_lib_0": "0xf3e18cf48c09fdd1fe529e23861fb4d63fad70068c64dd4b8237daf3e136ed26", | ||
"dvn": "0xd6f420483a90c7db5ce2ec12e8acfc2bfb7b93829c9e6a3b0760bca330be64dd" | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
deployments folder shouldn't be in gitignore, it also isn't in other code examples we have in devtools please cross check