icon-project / xcall.dev Goto Github PK
View Code? Open in Web Editor NEWHome Page: https://www.xcall.dev/
License: MIT License
Home Page: https://www.xcall.dev/
License: MIT License
As xcall-scaffolding is the canonical sample repo for xcall, the "Sending a message" tutorial must reference this repository. Currently, the tutorial references the xcall-sample-dapp repo, which has been recently modified and now serves a different purpose
In order to send a message with the canonical sample dApp, the sections for "Sending a message" and "Sending a message with rollback" should be updated to reference the public functions that perform cross-chain messages (e.g. voteYes
)
Alternatively, a new docs page may be put in to detail working with the canonical app, in which case the existing page should be edited to more clearly use the updated DAppProxySampleUtilityFunctions repository in conjunction with the e2edemo dapp sample
Also, the prerequisite link on this page does not work
This is a test issue
The library to be used now for xcall development is:
xyz.venture23:xcall-lib:0.1.1' for java
cw-xcall-lib={package="cw-xcall-lib", git="https://github.com/icon-project/xcall-multi.git", branch="main", features = ["library"]} for cosmwam
Solidity lib: to be published?
Multi protocol xCall is based on the initial spec defined
in IIP52.
Two new optional parameters are added in sendCallMessage: _sources
and destinations
.
These parameters can be specified to choose the protocols to deliver the xCall message.
If, for example, a dapp wanted to use BTP, they specify the address of BMC as the source and the address of BMC on a
destination chain as destinations.
Rollback guarantees.
In IIP52, xCall rollback executions can only be tried once before removed, which can cause loss of data in case of
failure.
In xCall multi protocol, it can be retried until successful.
Two-way message success verification.
For all two-way messages, a response has to be relayed back since the fee has already been paid.
This means that in most cases, a response with the result success is being relayed back.
In xCall multi protocol, we store this success receipt so that it can be verified by dapps.
BTP address has been replaced completely by Network Address.
A BTP address is a Network Address as defined here with a btp://
prefix.
A Network Address in IIP52 refers to the Network ID in this document which might cause some confusion.
The source of truth for a Network ID is now in xCall and not BMC.
_nsn
is removed from CallMessageSent
event.
Error messages are no longer relayed across chains in a response.
_msg
has been removed from ResponseMessage event. This is due to the removal of relaying the error messages.
A message can now only be success or failure (1 or 0).
In IIP52 a message can have many different error codes but was not used by dapps and the same behavior is not
necessarily supported by all chains.
MaxDataSize is defined on the whole payload rather than only user data
This change was necessary to limit the size of the _sources
and destinations
parameters.
What this means for dapps using v1:
The use of BTP address needs to be changed to NetworkAddress.
Example remove btp prefix from btp://${NETWORK_LABEL_DESTINATION}/${CONTRACT_DESTINATION}
;
Network Address implmentation will work the same as BTP address and no extra changes should be needed.
If event listeners are used some parameters have changed.
Less priority:
Example dapps:
Solidity:
https://github.com/icon-project/xcall-multi/blob/main/contracts/evm/contracts/mocks/dapp/DAppProxySample.sol
https://github.com/icon-project/xcall-multi/blob/main/contracts/evm/contracts/mocks/multi-protocol-dapp/MultiProtocolSampleDapp.sol
Java:
https://github.com/icon-project/xcall-multi/blob/main/contracts/javascore/example-dapps/dapp-multi-protocol/src/main/java/xcall/sample/dapp/MultiProtocolSampleDapp.java
https://github.com/icon-project/xcall-multi/blob/main/contracts/javascore/example-dapps/dapp-simple/src/main/java/xcall/sample/dapp/SimpleDapp.java
Cosmwasm:
https://github.com/icon-project/xcall-multi/tree/main/contracts/cosmwasm-vm/cw-mock-dapp-multi
https://github.com/icon-project/xcall-multi/tree/main/contracts/cosmwasm-vm/cw-mock-dapp
@FidelVe Lets keep discussion and questions in this issue during the development
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.