Publish a contract
After you have written the contract, you can publish it to the blockchain. The contract will be deployed to Sui.
pnpm dubhe publish --network localnet
you can see the following output:
β pnpm dubhe publish --network localnet
Active environment switched to [localnet]
π Starting Contract Publication...
ββ Project: /Volumes/project/dubhe-template-project/contracts/dubhe-framework
ββ Network: localnet
ββ Account: 0xad8d233db61c90ee25236ddc0c9c44a83213e919c9bca25052bcd3b67efafcaa
π¦ Building Contract...
ββ Build successful
π Publishing Contract...
ββ Upgrade Cap: 0x06a765a3ef87b8734679dcaa45a3218f508146798ab35ed3317ca2b96d0e41cb
ββ Package ID: 0x567cc42b62d02fbc61c5e1713ff8ef1d5993023201b08db49d9c9ac7ad1ed6a6
ββ Transaction: 827SNaxHachWNTEYZyrkUtnkW6FGbAHw3uYFWRGftrsj
Update deploy log: /Volumes/project/dubhe-template-project/contracts/dubhe-framework/.history/sui_localnet/latest.json
β
Dubhe Framework deployed successfully
Updated Dubhe dependency in /Volumes/project/dubhe-template-project/contracts/dms/Move.toml for localnet.
π Starting Contract Publication...
ββ Project: /Volumes/project/dubhe-template-project/contracts/dms
ββ Network: localnet
ββ ChainId: 6aa708f5
ββ Validating Environment...
ββ Account: 0xad8d233db61c90ee25236ddc0c9c44a83213e919c9bca25052bcd3b67efafcaa
π¦ Building Contract...
ββ Build successful
π Publishing Contract...
ββ Processing publication results...
ββ Upgrade Cap: 0xd40a58b10a725f8dd8f8ff4e1c831f110b171e7e9dcde6f7d4763ae43d060a23
ββ Package ID: 0xfedd30fc6bfc29d41cf03eb95a35bb7646d8cbeaf9ecfbb85a438b2f0774d654
ββ Transaction: 8xLhYg5gu9CFtUvcPWM2wTVBh9K2VBAMorWouoGW8D5H
β‘ Executing Deploy Hook...
ββ Hook execution successful
ββ Transaction: 2wyZxf6gYG3F1XmzfBxZZAnYHDsdduxZsGzfozYytnzi
π Created Schemas:
ββ 0xfedd30fc6bfc29d41cf03eb95a35bb7646d8cbeaf9ecfbb85a438b2f0774d654::message_schema::Message
ββ ID: 0x9665693bc66ba63b7fc92a83631d4f9157bd79a767084e7799663086c0c179f7
ββ 0xfedd30fc6bfc29d41cf03eb95a35bb7646d8cbeaf9ecfbb85a438b2f0774d654::dapp_schema::Dapp
ββ ID: 0xb2e20a28e7c879be45613ae63e1cd1e5b29434ea1cd63894c20dd253a6e376ea
Update deploy log: /Volumes/project/dubhe-template-project/contracts/dms/.history/sui_localnet/latest.json
β
Contract Publication Complete
The contract has been deployed, letβs query the data using Dubhe.
pnpm dubhe query --network localnet --schema message --field content
[ 'Hello, World!' ]
The query result is Hello, World!
, which is the initial value of the message field.
You can also use the Dubhe CLI to interact with the contract. For example, you can send a transaction to update the message field.
β pnpm dubhe call --network localnet --module message_system --function send --params "object:0x9665693bc66ba63b7fc92a83631d4f9157bd79a767084e7799663086c0c179f7" "string:Sui Move"
{
"digest": "8DRP2nYab68G11iLWndaV7561orwvmtNUZZfoEoPN5oz",
"effects": {
"messageVersion": "v1",
"status": {
"status": "success"
},
"executedEpoch": "92",
"gasUsed": {
"computationCost": "1000000",
"storageCost": "4643600",
"storageRebate": "4597164",
"nonRefundableStorageFee": "46436"
},
"modifiedAtVersions": [
{
"objectId": "0x1cbc5c8ef9ce065282cff9142962923ca66861226a4b216c33bec13522902c04",
"sequenceNumber": "48492"
},
{
"objectId": "0x3589d918d3cd18a1276805507834c59d500c8f612930a7ccabc7c4e669046d24",
"sequenceNumber": "48492"
},
{
"objectId": "0x9665693bc66ba63b7fc92a83631d4f9157bd79a767084e7799663086c0c179f7",
"sequenceNumber": "48492"
}
],
"sharedObjects": [
{
"objectId": "0x9665693bc66ba63b7fc92a83631d4f9157bd79a767084e7799663086c0c179f7",
"version": 48492,
"digest": "8gt8zYCDucqvnoCGvkYndiKnViP2eJh34FXwCY2iv3iK"
}
],
"transactionDigest": "8DRP2nYab68G11iLWndaV7561orwvmtNUZZfoEoPN5oz",
"mutated": [
{
"owner": {
"AddressOwner": "0xad8d233db61c90ee25236ddc0c9c44a83213e919c9bca25052bcd3b67efafcaa"
},
"reference": {
"objectId": "0x1cbc5c8ef9ce065282cff9142962923ca66861226a4b216c33bec13522902c04",
"version": 48493,
"digest": "zFEWqp5P9VG218QfoMPuPxCDijQUUZFbKnnenrtCXDg"
}
},
{
"owner": {
"ObjectOwner": "0x9665693bc66ba63b7fc92a83631d4f9157bd79a767084e7799663086c0c179f7"
},
"reference": {
"objectId": "0x3589d918d3cd18a1276805507834c59d500c8f612930a7ccabc7c4e669046d24",
"version": 48493,
"digest": "ASCzKEXex16vQ6Yaab9hYtNyJjXnQcBR4kqE2onXNCxw"
}
},
{
"owner": {
"Shared": {
"initial_shared_version": 48491
}
},
"reference": {
"objectId": "0x9665693bc66ba63b7fc92a83631d4f9157bd79a767084e7799663086c0c179f7",
"version": 48493,
"digest": "CASXCh32QqUbjwjtWAhBZpXrFvG8a5X8FW4X7HLN8GDR"
}
}
],
"gasObject": {
"owner": {
"AddressOwner": "0xad8d233db61c90ee25236ddc0c9c44a83213e919c9bca25052bcd3b67efafcaa"
},
"reference": {
"objectId": "0x1cbc5c8ef9ce065282cff9142962923ca66861226a4b216c33bec13522902c04",
"version": 48493,
"digest": "zFEWqp5P9VG218QfoMPuPxCDijQUUZFbKnnenrtCXDg"
}
},
"eventsDigest": "CdW1SyuT6fAxto4tqR9swebhRzFC9FWfiGNi16HBzHvY",
"dependencies": [
"8xLhYg5gu9CFtUvcPWM2wTVBh9K2VBAMorWouoGW8D5H",
"GbzzG5FZdeKVkpRGeC6DNXpPKFSvBrdxjUYQ9Xrd11ri"
]
},
"events": [
{
"id": {
"txDigest": "8DRP2nYab68G11iLWndaV7561orwvmtNUZZfoEoPN5oz",
"eventSeq": "0"
},
"packageId": "0xfedd30fc6bfc29d41cf03eb95a35bb7646d8cbeaf9ecfbb85a438b2f0774d654",
"transactionModule": "message_system",
"sender": "0xad8d233db61c90ee25236ddc0c9c44a83213e919c9bca25052bcd3b67efafcaa",
"type": "0xfedd30fc6bfc29d41cf03eb95a35bb7646d8cbeaf9ecfbb85a438b2f0774d654::message_sent_event::MessageSentEvent",
"parsedJson": {
"content": "Sui Move",
"sender": "0xad8d233db61c90ee25236ddc0c9c44a83213e919c9bca25052bcd3b67efafcaa"
},
"bcs": "rY0jPbYckO4lI23cDJxEqDIT6RnJvKJQUrzTtn76/KoIU3VpIE1vdmU="
}
],
"objectChanges": [
{
"type": "mutated",
"sender": "0xad8d233db61c90ee25236ddc0c9c44a83213e919c9bca25052bcd3b67efafcaa",
"owner": {
"AddressOwner": "0xad8d233db61c90ee25236ddc0c9c44a83213e919c9bca25052bcd3b67efafcaa"
},
"objectType": "0x2::coin::Coin<0x2::sui::SUI>",
"objectId": "0x1cbc5c8ef9ce065282cff9142962923ca66861226a4b216c33bec13522902c04",
"version": "48493",
"previousVersion": "48492",
"digest": "zFEWqp5P9VG218QfoMPuPxCDijQUUZFbKnnenrtCXDg"
},
{
"type": "mutated",
"sender": "0xad8d233db61c90ee25236ddc0c9c44a83213e919c9bca25052bcd3b67efafcaa",
"owner": {
"ObjectOwner": "0x9665693bc66ba63b7fc92a83631d4f9157bd79a767084e7799663086c0c179f7"
},
"objectType": "0x2::dynamic_field::Field<vector<u8>, 0x567cc42b62d02fbc61c5e1713ff8ef1d5993023201b08db49d9c9ac7ad1ed6a6::storage_value::StorageValue<0x1::ascii::String>>",
"objectId": "0x3589d918d3cd18a1276805507834c59d500c8f612930a7ccabc7c4e669046d24",
"version": "48493",
"previousVersion": "48492",
"digest": "ASCzKEXex16vQ6Yaab9hYtNyJjXnQcBR4kqE2onXNCxw"
},
{
"type": "mutated",
"sender": "0xad8d233db61c90ee25236ddc0c9c44a83213e919c9bca25052bcd3b67efafcaa",
"owner": {
"Shared": {
"initial_shared_version": 48491
}
},
"objectType": "0xfedd30fc6bfc29d41cf03eb95a35bb7646d8cbeaf9ecfbb85a438b2f0774d654::message_schema::Message",
"objectId": "0x9665693bc66ba63b7fc92a83631d4f9157bd79a767084e7799663086c0c179f7",
"version": "48493",
"previousVersion": "48492",
"digest": "CASXCh32QqUbjwjtWAhBZpXrFvG8a5X8FW4X7HLN8GDR"
}
],
"balanceChanges": [
{
"owner": {
"AddressOwner": "0xad8d233db61c90ee25236ddc0c9c44a83213e919c9bca25052bcd3b67efafcaa"
},
"coinType": "0x2::sui::SUI",
"amount": "-1046436"
}
],
"confirmedLocalExecution": false
}
You can see the transaction was successful. Letβs query the message field again to see the updated value.
pnpm dubhe query --network localnet --schema message --field content
[ 'Sui Move' ]