drop mention of the terra NFT bridge from docs and scripts
This commit is contained in:
parent
6fa6a2d0c1
commit
0cc1f677e5
|
@ -22,10 +22,8 @@
|
|||
| Migration Contract | SOL | Ex9bCdVMSfx7EzB3pgSi2R4UHwJAXvTw18rBQm5YQ8gK | |
|
||||
| Test Wallet | Terra | terra1x46rqay4d3cssq8gxxvqz8xt6nwlz4td20k38v | Mnemonic: `notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius` |
|
||||
| Test CW20 | Terra | terra13nkgqrfymug724h8pprpexqj9h629sa3ncw7sh | Tokens minted to Test Wallet |
|
||||
| Test CW721 | Terra | terra18dt935pdcn2ka6l0syy5gt20wa48n3mktvdvjj | NFTs minted to Test Wallet |
|
||||
| Bridge Core | Terra | terra18vd8fpwxzck93qlwghaj6arh4p7c5n896xzem5 | |
|
||||
| Token Bridge | Terra | terra10pyejy66429refv3g35g2t7am0was7ya7kz2a4 | |
|
||||
| NFT Bridge | Terra | terra1plju286nnfj3z54wgcggd4enwaa9fgf5kgrgzl | |
|
||||
| Test Wallet | Terra2 | terra1x46rqay4d3cssq8gxxvqz8xt6nwlz4td20k38v | Mnemonic: `notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius` |
|
||||
| Test CW20 | Terra2 | terra1zwv6feuzhy6a9wekh96cd57lsarmqlwxdypdsplw6zhfncqw6ftqynf7kp | Tokens minted to Test Wallet |
|
||||
| Bridge Core | Terra2 | terra14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9ssrc8au | |
|
||||
|
|
|
@ -20,6 +20,5 @@ REGISTER_ETH_TOKEN_BRIDGE_VAA=01000000000100e2e1975d14734206e7a23d90db48a6b5b669
|
|||
REGISTER_ETH_NFT_BRIDGE_VAA=01000000000100d073f81a4ecf2469b0674b1902dcbcad2da7f70ecdd7e1aec65414380ca2c05426380c33bb083ab41167c522231c1485b9c8ffce04eaf2e8a6f50edaa72074c50000000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000004e4654427269646765010000000200000000000000000000000026b4afb60d6c903165150c6f0aa14f8016be4aec
|
||||
|
||||
REGISTER_TERRA_TOKEN_BRIDGE_VAA=010000000001009a895e8b42444fdf60a71666121d7e84b3a49579ba3b84fff1dbdf9ec93360390c05a88f66c90df2034cb38427ba9b01632e780ce7b84df559a1bf44c316447d01000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000546f6b656e4272696467650100000003000000000000000000000000784999135aaa8a3ca5914468852fdddbddd8789d
|
||||
REGISTER_TERRA_NFT_BRIDGE_VAA=01000000000100880ab34efd145fa1c9c4f2f7b233f3bc99cb730ab2d2138babf989a2555e2e8f737b759f91970d300c4364249b0740b134dbefb943fb55fd76483261ce68c17b0100000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000023c2cdd0000000000000000000000000000000000000000000000004e465442726964676501000000030000000000000000000000000fe5c51f539a651152ae461086d733777a54a134
|
||||
|
||||
REGISTER_BSC_TOKEN_BRIDGE_VAA=01000000000100719b4ada436f614489dbf87593c38ba9aea35aa7b997387f8ae09f819806f5654c8d45b6b751faa0e809ccbc294794885efa205bd8a046669464c7cbfb03d183010000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000002c8bb0600000000000000000000000000000000000000000000546f6b656e42726964676501000000040000000000000000000000000290fb167208af455bb137780163b7b7a9a10c16
|
||||
|
|
|
@ -106,9 +106,7 @@
|
|||
"coreEmitterAddress": "terra18vd8fpwxzck93qlwghaj6arh4p7c5n896xzem5",
|
||||
"coreNativeAddress": "terra18vd8fpwxzck93qlwghaj6arh4p7c5n896xzem5",
|
||||
"tokenBridgeEmitterAddress": "terra10pyejy66429refv3g35g2t7am0was7ya7kz2a4",
|
||||
"tokenBridgeNativeAddress": "terra10pyejy66429refv3g35g2t7am0was7ya7kz2a4",
|
||||
"nftBridgeEmitterAddress": "terra1plju286nnfj3z54wgcggd4enwaa9fgf5kgrgzl",
|
||||
"nftBridgeNativeAddress": "terra10nmmwe8r3g99a9newtqa7a75xfgs2e8z87r2sf"
|
||||
"tokenBridgeNativeAddress": "terra10pyejy66429refv3g35g2t7am0was7ya7kz2a4"
|
||||
},
|
||||
"accounts": {
|
||||
"testWallet": {
|
||||
|
|
|
@ -91,7 +91,6 @@ wormchainTokenBridge=$(jq --raw-output '.chains."3104".contracts.tokenBridgeEmit
|
|||
|
||||
solNFTBridge=$(jq --raw-output '.chains."1".contracts.nftBridgeEmitterAddress' $addressesJson)
|
||||
ethNFTBridge=$(jq --raw-output '.chains."2".contracts.nftBridgeEmitterAddress' $addressesJson)
|
||||
terraNFTBridge=$(jq --raw-output '.chains."3".contracts.nftBridgeEmitterAddress' $addressesJson)
|
||||
nearNFTBridge=$(jq --raw-output '.chains."15".contracts.nftBridgeEmitterAddress' $addressesJson)
|
||||
aptosNFTBridge=$(jq --raw-output '.chains."22".contracts.nftBridgeEmitterAddress' $addressesJson)
|
||||
|
||||
|
@ -113,7 +112,6 @@ wormchainTokenBridgeVAA=$(worm generate registration -m TokenBridge -c wormchain
|
|||
echo "generating contract registration VAAs for nft bridges"
|
||||
solNFTBridgeVAA=$(worm generate registration -m NFTBridge -c solana -a ${solNFTBridge} -g ${guardiansPrivateCSV})
|
||||
ethNFTBridgeVAA=$(worm generate registration -m NFTBridge -c ethereum -a ${ethNFTBridge} -g ${guardiansPrivateCSV})
|
||||
terraNFTBridgeVAA=$(worm generate registration -m NFTBridge -c terra -a ${terraNFTBridge} -g ${guardiansPrivateCSV})
|
||||
nearNFTBridgeVAA=$(worm generate registration -m NFTBridge -c near -a ${nearNFTBridge} -g ${guardiansPrivateCSV})
|
||||
aptosNFTBridgeVAA=$(worm generate registration -m NFTBridge -c aptos -a ${aptosNFTBridge} -g ${guardiansPrivateCSV})
|
||||
|
||||
|
@ -134,7 +132,6 @@ wormchainTokenBridge="REGISTER_WORMCHAIN_TOKEN_BRIDGE_VAA"
|
|||
|
||||
solNFTBridge="REGISTER_SOL_NFT_BRIDGE_VAA"
|
||||
ethNFTBridge="REGISTER_ETH_NFT_BRIDGE_VAA"
|
||||
terraNFTBridge="REGISTER_TERRA_NFT_BRIDGE_VAA"
|
||||
nearNFTBridge="REGISTER_NEAR_NFT_BRIDGE_VAA"
|
||||
aptosNFTBridge="REGISTER_APTOS_NFT_BRIDGE_VAA"
|
||||
|
||||
|
@ -155,9 +152,6 @@ upsert_env_file $envFile $ethNFTBridge $ethNFTBridgeVAA
|
|||
# terra token bridge
|
||||
upsert_env_file $ethFile $terraTokenBridge $terraTokenBridgeVAA
|
||||
upsert_env_file $envFile $terraTokenBridge $terraTokenBridgeVAA
|
||||
# terra nft bridge
|
||||
upsert_env_file $ethFile $terraNFTBridge $terraNFTBridgeVAA
|
||||
upsert_env_file $envFile $terraNFTBridge $terraNFTBridgeVAA
|
||||
|
||||
# bsc token bridge
|
||||
upsert_env_file $ethFile $bscTokenBridge $bscTokenBridgeVAA
|
||||
|
|
|
@ -34,9 +34,6 @@ const artifacts = [
|
|||
"token_bridge_terra.wasm",
|
||||
"cw20_wrapped.wasm",
|
||||
"cw20_base.wasm",
|
||||
"nft_bridge_terra.wasm",
|
||||
"cw721_wrapped.wasm",
|
||||
"cw721_base.wasm",
|
||||
"mock_bridge_integration.wasm",
|
||||
];
|
||||
|
||||
|
@ -208,56 +205,6 @@ addresses["mock.wasm"] = await instantiate("cw20_base.wasm", {
|
|||
mint: null,
|
||||
});
|
||||
|
||||
addresses["nft_bridge_terra.wasm"] = await instantiate("nft_bridge_terra.wasm", {
|
||||
gov_chain: govChain,
|
||||
gov_address: Buffer.from(govAddress, "hex").toString("base64"),
|
||||
wormhole_contract: addresses["wormhole.wasm"],
|
||||
wrapped_asset_code_id: codeIds["cw721_wrapped.wasm"],
|
||||
});
|
||||
|
||||
addresses["cw721_base.wasm"] = await instantiate("cw721_base.wasm", {
|
||||
name: "MOCK",
|
||||
symbol: "MCK",
|
||||
minter: wallet.key.accAddress,
|
||||
});
|
||||
|
||||
async function mint_cw721(token_id, token_uri) {
|
||||
await wallet
|
||||
.createAndSignTx({
|
||||
msgs: [
|
||||
new MsgExecuteContract(
|
||||
wallet.key.accAddress,
|
||||
addresses["cw721_base.wasm"],
|
||||
{
|
||||
mint: {
|
||||
token_id: token_id.toString(),
|
||||
owner: wallet.key.accAddress,
|
||||
token_uri: token_uri,
|
||||
},
|
||||
},
|
||||
{ uluna: 1000 }
|
||||
),
|
||||
],
|
||||
memo: "",
|
||||
fee: new StdFee(2000000, {
|
||||
uluna: "100000",
|
||||
}),
|
||||
})
|
||||
.then((tx) => broadcastAndWait(terra, tx));
|
||||
console.log(
|
||||
`Minted NFT with token_id ${token_id} at ${addresses["cw721_base.wasm"]}`
|
||||
);
|
||||
}
|
||||
|
||||
await mint_cw721(
|
||||
0,
|
||||
"https://ixmfkhnh2o4keek2457f2v2iw47cugsx23eynlcfpstxihsay7nq.arweave.net/RdhVHafTuKIRWud-XVdItz4qGlfWyYasRXyndB5Ax9s/"
|
||||
);
|
||||
await mint_cw721(
|
||||
1,
|
||||
"https://portal.neondistrict.io/api/getNft/158456327500392944014123206890"
|
||||
);
|
||||
|
||||
/* Registrations: tell the bridge contracts to know about each other */
|
||||
|
||||
const contract_registrations = {
|
||||
|
@ -279,12 +226,6 @@ const contract_registrations = {
|
|||
// APTOS
|
||||
process.env.REGISTER_APTOS_TOKEN_BRIDGE_VAA,
|
||||
],
|
||||
"nft_bridge_terra.wasm": [
|
||||
// Solana
|
||||
process.env.REGISTER_SOL_NFT_BRIDGE_VAA,
|
||||
// Ethereum
|
||||
process.env.REGISTER_ETH_NFT_BRIDGE_VAA,
|
||||
],
|
||||
};
|
||||
|
||||
for (const [contract, registrations] of Object.entries(
|
||||
|
|
|
@ -38,7 +38,6 @@ We aim to support:
|
|||
|
||||
- EIP721 with token_uri extension: Ethereum, BSC
|
||||
- Metaplex SPL Meta: Solana
|
||||
- CW721 with token_uri extension: Terra
|
||||
|
||||
## Detailed Design
|
||||
|
||||
|
@ -153,11 +152,3 @@ Currently Solana only supports u64 token ids which is incompatible with Ethereum
|
|||
UUIDs as token ids (utilizing all bytes of the uint256). There will either need to be a mechanism to translate ids i.e.
|
||||
a map of `[32]u8 -> incrementing_u64` (in the expectation there will never be more than MaxU64 editions) or Solana needs
|
||||
to change their NFT contract.
|
||||
|
||||
Terra CW721 contracts support arbitrary strings as token IDs. In order to fit
|
||||
them into 32 bytes, we store their keccak256 hash instead. This means that when
|
||||
transferring a terra-native NFT through the wormhole, the ID of the output token
|
||||
will be the original token's hash. However, wrapped assets on terra will retain
|
||||
their original token ids, simply stringified into a decimal number. Then,
|
||||
when transferring them back through the wormhole, we can guarantee that these
|
||||
ids will parse as a uint256.
|
||||
|
|
Loading…
Reference in New Issue