Skip to content

Commit

Permalink
feat(kadena-sdk): refactor transfers for more flexibility (#2767)
Browse files Browse the repository at this point in the history
* feat(kadena-sdk): refactor transfers for more flexibility

* fix(wallet-sdk): add mock and re-enable gettransfer test

* fix(wallet-sdk): fix build errors and improve example wallet debugging

* fix(wallet-sdk): fix build errors

* fix(wallet-sdk): improve test coverage

* fix(wallet-sdk-example): update sdk

* feat(kadena-sdk): add fungible param to create transfer methods

* changeset(wallet-sdk): minor bump

---------

Co-authored-by: Bart Huijgen <barthuijgen@users.noreply.github.com>
  • Loading branch information
barthuijgen and barthuijgen authored Jan 28, 2025
1 parent 0deacb4 commit 4e1530d
Show file tree
Hide file tree
Showing 32 changed files with 11,518 additions and 585 deletions.
5 changes: 5 additions & 0 deletions .changeset/selfish-jokes-yell.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@kadena/wallet-sdk': minor
---

Provide new create transfer methods (breaking change)
1 change: 1 addition & 0 deletions packages/apps/wallet-sdk-example/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ function App() {

useEffect(() => {
const transport = (log: ILogObject) => {
console.log(log);
const id = notificationIdCounter.current++;
const notification: ILogNotification = { ...log, id };

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ const HighlightBlock: React.FC<{ data: string; language: string }> = ({
}) => {
const elRef = useRef<HTMLElement>(null);
useEffect(() => {
if (elRef.current) hljs.highlightElement(elRef.current);
if (elRef.current && elRef.current.dataset.highlighted !== 'yes') {
hljs.highlightElement(elRef.current);
}
}, []);
return (
<pre className={sdkDisplayCode}>
Expand Down
31 changes: 20 additions & 11 deletions packages/apps/wallet-sdk-example/src/pages/Transfer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ import { AlertDialog } from '../components/AlertDialog';
import { useFunctionTracker } from '../hooks/functionTracker';
import { useWalletState } from '../state/wallet';

type SimpleCreateTransfer = Parameters<
typeof walletSdk.createSimpleTransfer
type createTransferCreateCommand = Parameters<
typeof walletSdk.createTransferCreateCommand
>[0];

type CrossChainCreateTransfer = Parameters<
Expand All @@ -48,8 +48,8 @@ export const Transfer = () => {
amount: string;
} | null>(null);

const trackCreateSimpleTransfer = useFunctionTracker(
'walletSdk.createSimpleTransfer',
const trackCreateTransferCreateCommand = useFunctionTracker(
'walletSdk.createTransferCreateCommand',
);
const trackCreateCrossChainTransfer = useFunctionTracker(
'walletSdk.createCrossChainTransfer',
Expand Down Expand Up @@ -90,7 +90,7 @@ export const Transfer = () => {
targetChainId: wallet.selectedToChain,
});
} else {
trackCreateSimpleTransfer.setArgs({
trackCreateTransferCreateCommand.setArgs({
amount,
sender: wallet.account.name,
receiver: receiverAccount,
Expand Down Expand Up @@ -123,6 +123,9 @@ export const Transfer = () => {
'Cannot perform a cross-chain transfer to the same chain',
);
}
if (!receiverAccount.startsWith('k:')) {
throw new Error('Receiver account must be a k: account');
}

let transaction: IUnsignedCommand;

Expand All @@ -149,15 +152,21 @@ export const Transfer = () => {
transaction = walletSdk.createCrossChainTransfer(crossChainTransferArgs);
return await wallet.signTransaction(transaction);
} else {
const functionArgs: SimpleCreateTransfer & { networkId: string } = {
const functionArgs: createTransferCreateCommand = {
amount,
sender: wallet.account.name,
receiver: receiverAccount,
receiver: {
account: receiverAccount,
keyset: {
keys: [receiverAccount.split(':')[1]],
pred: 'keys-all',
},
},
chainId: fromChain,
networkId: wallet.selectedNetwork,
};

transaction = walletSdk.createSimpleTransfer(functionArgs);
transaction = walletSdk.createTransferCreateCommand(functionArgs);
return await wallet.signTransaction(transaction);
}
};
Expand Down Expand Up @@ -196,7 +205,7 @@ export const Transfer = () => {

/* -- Start demo ---------------*/
trackGasEstimate.setArgs(null);
trackCreateSimpleTransfer.setArgs(null);
trackCreateTransferCreateCommand.setArgs(null);
trackCreateCrossChainTransfer.setArgs(null);
/* -- End demo ---------------*/
}
Expand Down Expand Up @@ -228,7 +237,7 @@ export const Transfer = () => {

/* -- Start demo ---------------*/
trackGasEstimate.setArgs(null);
trackCreateSimpleTransfer.setArgs(null);
trackCreateTransferCreateCommand.setArgs(null);
trackCreateCrossChainTransfer.setArgs(null);
/* -- End demo ---------------*/
navigate('/list');
Expand Down Expand Up @@ -350,7 +359,7 @@ export const Transfer = () => {
data={
isCrossChain
? trackCreateCrossChainTransfer.data
: trackCreateSimpleTransfer.data
: trackCreateTransferCreateCommand.data
}
/>
</div>
Expand Down
4 changes: 2 additions & 2 deletions packages/apps/wallet-sdk-example/src/pages/Transfers.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -144,9 +144,9 @@ export const Transfers = () => {
? `-${transfer.amount}`
: `+${transfer.amount}`}
</Text>
{transfer.transactionFeeTransfer && (
{transfer.transactionFee && (
<Text className="text-negative">
{`-${transfer.transactionFeeTransfer.amount}`}
{`-${transfer.transactionFee.amount}`}
</Text>
)}
</Stack>
Expand Down
6 changes: 6 additions & 0 deletions packages/libs/wallet-sdk/codegen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ const config: CodegenConfig = {
config: { useTypeImports: true },
},
},
config: {
scalars: {
BigInt: 'number',
DateTime: 'string',
},
},
hooks: {
afterAllFileWrite(...files) {
for (let i = 0; i < files.length; i++) {
Expand Down
Loading

0 comments on commit 4e1530d

Please sign in to comment.