@pepe-team/bridge-widget-embedder
v0.1.12
Published
### Widget config parameters
Readme
Bridge Widget Embedder
Widget config parameters
| Key | Type | Note |
| -------------------- | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| host | HTMLElement | DOM element where widget should be placed |
| iframeUrl | string | URL for origin iframe URL (https://bridge.pepe.team/iframe) |
| token | string | Which token should be transferred. It should be token symbol, e.g. ETH |
| token_bridge_id | string | Which token should be transferred. It should be token bridge id, e.g. ETH-Ethereum-PPT |
| source_chain_id | number | Transfer source chain (where transfer from). It should be bridge chain id, e.g. 1, 2 for mainnet or 10001, 10002 for testnet |
| target_chain_id | number | Transfer target chain (where transfer to). It should be bridge chain id, e.g. 1, 2 for mainnet or 10001, 10002 for testnet |
| recipient | string | Address of transfer recipient |
| amount | number | Amount to be prefilled in the form |
| referrer | string | Address of referrer – this address will receive cashback extracted from protocol fee as reward for the transfer. If empty, referrer will be an empty string |
| ext_signing_chains | string[] | For which chains (sending asset chain) widget should dispatch signTx events and use its results as proofs |
| color_schema | JSON-encoded object (ColorSchema) | Color schema to be used in the widget. If not provided, default will be used |
Widget tabs:
| Name |
| ---------- |
| transfer |
| history |
Color Schema
All color values are presented as #HEX
| key | default |
| ------------------------- | --------- |
| bg-primary | #00A575 |
| bg-secondary | #FFFFFF |
| bg-tertiary | #F7F7F7 |
| border-primary | #00A575 |
| border-secondary | #FFFFFF |
| border-error | #E80000 |
| border-disabled | #BFBFBF |
| button-bg-primary | #00A575 |
| button-bg-secondary | #FFFFFF |
| button-bg-error | #FFFFFF |
| button-bg-disabled | #FFFFFF |
| button-text-primary | #FFFFFF |
| button-text-secondary | #00A575 |
| button-text-error | #E80000 |
| button-text-disabled | #BFBFBF |
| button-border-primary | #FFFFFF |
| button-border-secondary | #00A575 |
| button-border-error | #E80000 |
| button-border-disabled | #BFBFBF |
| text-primary | #333333 |
| text-secondary | #717171 |
| text-tertiary | #BFBFBF |
| skeleton-primary | #F4F4F4 |
| skeleton-secondary | #E9E9E9 |
| skeleton-tertiary | #E4E4E4 |
| skeleton-shimer | #FFFFFF |
| skeleton-border | #EEEEEE |
| tab-btn-primary | #00A575 |
| tab-btn-secondary | #FFFFFF |
| fee-low | #F5AC37 |
| fee-normal | #00A575 |
| fee-high | #E80000 |
| fee-custom | #717171 |
Color schema example:
{
"bg-primary": "#FFFFFF",
"bg-secondary": "#AAAAAA"
}Methods
run
Start the widget
| Arg | Type | Note |
| -------- | ------------ | ------------------------------------------------------ |
| config | WidgetArgs | Widget config paramenters |
widget.run({
iframeUrl: 'https://bridge.pepe.team/iframe',
host: document.body,
token_bridge_id: 'ETH-Ethereum-PPT'
});on
Listen for widget incomming messages (widget interaction)
| Arg | Type | Note |
| ----------- | ------------------------------------------- | ------------------------ |
| eventKind | IncomingMessageKind | Kind of incoming message |
| callback | (msg: Message<IncomingMessageKind>): void | Message handler |
widget.on(IncomingMessageKind.TxBroadcasted, (tx_id) => {
console.log('Tx broadcasted', tx_id);
});sendMessage
Send message to the widget (widget interaction)
| Arg | Type | Note |
| --------- | ------------------------------ | ---------------------------- |
| message | Message<OutgoingMessageKind> | Message to be send to widget |
const msg = {
mid: 1,
kind: OutgoingMessageKind.TxRejection,
payload: {
reason: 'User rejection'
}
};
widget.sendMessage(msg);setAmount
Set form field amount to provided value
| Arg | Type | Note |
| -------- | ----------------------------------- | ----------------------------- |
| amount | BigNumber | number | string | New form field amount value |
widget.setAmount(1);setColorSchema
| Arg | Type | Note |
| -------- | ----------------- | ----------------------------- |
| colors | Partial<Colors> | New form colors to be applied |
const colors = {
'bg-primary': '#000000',
'text-primary': '#FFFFFF'
};
widget.setColorSchema(colors);Widget usage example
const widget = new BridgeWidget();
widget.on(IncomingMessageKind.GetAccount, (m) => {
widget.sendMessage({
mid: m.mid,
kind: OutgoingMessageKind.Account,
payload: {
account: {
chainId: 'T',
address: 'ADDRESS',
publicKey: 'PUBLIC-KEY'
}
}
});
});
widget.run({
iframeUrl: 'https://bridge.pepe.team/iframe',
host: document.body,
token_bridge_id: 'ETH-Ethereum-PPT',
source_chain_id: 1,
target_chain_id: 2,
ext_signing_chains: [1],
recipient: 'RECIPIENT',
amount: 100,
referrer: 'REFERRER',
color_schema: {
'bg-primary': '#000000',
'text-primary': '#FFFFFF'
}
});
// destroy widget when transfer is done
widget.destroy();Widget incoming events
| Name |
| -------------------- |
| widgetLoaded |
| getAccount |
| getAccountTimeout |
| signTx |
| txBroadcasted |
| txConfirmed |
| txError |
| signTxTimeout |
| unexpectedMid |
| unexpectedKind |
| invalidPayload |
| unexpectedMessage |
| invalidPrefillData |
