Kotlin Samples
Kotlin sample codes.
HTML Builder
html {
lang = "en"
head {
title { +"Kotlin HTML" }
}
body {
p {
+"This is the first line of paragraph."
+"This is the second line of paragraph."
}
a {
href = "https://kotlinlang.org/"
+"Link"
}
}
}
State Management
val store = Store(0) { state, action ->
when (action.type) {
"increment" -> state + action.payload as Int
"decrement" -> state + action.payload as Int
else -> state
}
}
store.apply(logger())
store.subscribe { println(store.state) }
store.dispatch(Action("increment", 1))
store.dispatch(Action("increment", 2))
store.dispatch(Action("increment", 3))
store.dispatch(Action("decrement", 4))
Blockchain
{
"chain": [
{
"previous": "",
"transactions": [
{
"sender": "305c300d06092a864886f70d0101010500034b0030480241008710f84d9c7bcb90d9e7d19d509a926ec3a2cce62bd9bc14975aad038108bcf8206442309ea1c652324b488d359273353fa4ee0c44a0aa4d875e496e9b342df50203010001",
"receiver": "305c300d06092a864886f70d0101010500034b003048024100839ce7644b9ea1f81bef8ab5859741e42bb5cae615b6b385a364528496bc29f313a3927c71c8e7950d9945c10997b042b3777b68203161e681d3b7adf0d880670203010001",
"amount": 40.0,
"timestamp": 1639205667181,
"signature": "7df95ec095c337e058970d026bcc83d7c66a1414ab8c2c12f11cda29e5dff7f57b7bb69035caa5f0920d9086be57443c63746684640f416cac2a607d35de9b95"
},
{
"sender": "305c300d06092a864886f70d0101010500034b0030480241008710f84d9c7bcb90d9e7d19d509a926ec3a2cce62bd9bc14975aad038108bcf8206442309ea1c652324b488d359273353fa4ee0c44a0aa4d875e496e9b342df50203010001",
"receiver": "305c300d06092a864886f70d0101010500034b003048024100a6da3be3024e668344ab62d45eb8ba9bab900583f3cd29935ef292e0344e3732cf7e0817e0b817433fe4d55baebcce615859d04f46683b87d8740a24b23c8c710203010001",
"amount": 40.0,
"timestamp": 1639205667391,
"signature": "35006d082740f28a887040dd113a9bea3917638c3d0ea82704939877f4af4503ecb7cb907677d0e00ce274267f43e7a98c74ee255197ebd10c9ba37daaeb861a"
},
{
"sender": "",
"receiver": "305c300d06092a864886f70d0101010500034b0030480241008710f84d9c7bcb90d9e7d19d509a926ec3a2cce62bd9bc14975aad038108bcf8206442309ea1c652324b488d359273353fa4ee0c44a0aa4d875e496e9b342df50203010001",
"amount": 100.0,
"timestamp": 1639205667392,
"signature": ""
}
],
"timestamp": 1639205667394,
"nonce": 169414,
"hash": "00000720c87ebc045110662483c8decad3103bddad69695aea9877a8b11fa4f5"
},
{
"previous": "00000720c87ebc045110662483c8decad3103bddad69695aea9877a8b11fa4f5",
"transactions": [
{
"sender": "305c300d06092a864886f70d0101010500034b003048024100839ce7644b9ea1f81bef8ab5859741e42bb5cae615b6b385a364528496bc29f313a3927c71c8e7950d9945c10997b042b3777b68203161e681d3b7adf0d880670203010001",
"receiver": "305c300d06092a864886f70d0101010500034b003048024100ab135baedce161a76224938dcc488a9eb7468ca06a23d347c72228843b960f2ada8322202bda576fbd6d3e8b108f6ee43e622887be57fd70cfd66e3a34ddc4130203010001",
"amount": 10.0,
"timestamp": 1639205673779,
"signature": "004f0b8e2921f7e1ab1a5af41e5dccfc7fbcd9d24afb2817b175904c5fd6ad4a4a480b91a2861257cebba8b10136d4c730465c5706385fbc94b3fb2e249c44fe"
},
{
"sender": "305c300d06092a864886f70d0101010500034b003048024100839ce7644b9ea1f81bef8ab5859741e42bb5cae615b6b385a364528496bc29f313a3927c71c8e7950d9945c10997b042b3777b68203161e681d3b7adf0d880670203010001",
"receiver": "305c300d06092a864886f70d0101010500034b003048024100bf083258bad75d5c80d28116c06d09a88679630e059700cefe30456556824c5eb25dadda9e40aada840f2b7b10eea9599e44a4223211ead093da364bb70852dd0203010001",
"amount": 10.0,
"timestamp": 1639205673779,
"signature": "4414b3678ff5edb59a8c9d3a1ed34f3f0cd8fd1012ad3ffde12f9d94d65155ecf0683d28347164fad01830342fa6926bcd3b55607cf3d2c14abd68e546843e90"
},
{
"sender": "305c300d06092a864886f70d0101010500034b003048024100a6da3be3024e668344ab62d45eb8ba9bab900583f3cd29935ef292e0344e3732cf7e0817e0b817433fe4d55baebcce615859d04f46683b87d8740a24b23c8c710203010001",
"receiver": "305c300d06092a864886f70d0101010500034b003048024100ab135baedce161a76224938dcc488a9eb7468ca06a23d347c72228843b960f2ada8322202bda576fbd6d3e8b108f6ee43e622887be57fd70cfd66e3a34ddc4130203010001",
"amount": 10.0,
"timestamp": 1639205673780,
"signature": "919ea84c9d4b41bf5dc42c30c14c0f3325616a0fbf3e5e6bab239fd1d148a5d237fa35f4d6ffa1640aa90a2d3ee7eda8aefc847ed596db1dc3cddf5cb1934076"
},
{
"sender": "305c300d06092a864886f70d0101010500034b003048024100a6da3be3024e668344ab62d45eb8ba9bab900583f3cd29935ef292e0344e3732cf7e0817e0b817433fe4d55baebcce615859d04f46683b87d8740a24b23c8c710203010001",
"receiver": "305c300d06092a864886f70d0101010500034b003048024100bf083258bad75d5c80d28116c06d09a88679630e059700cefe30456556824c5eb25dadda9e40aada840f2b7b10eea9599e44a4223211ead093da364bb70852dd0203010001",
"amount": 10.0,
"timestamp": 1639205673780,
"signature": "37c0b899e36117537afe42ca9ef95a1ce8b758eb572f8fd65b799cb5cf04e89518b6191a1bb23d9b0dbe4b5d45731fd35fb7f3ec5402484a28e7dcd4a7e1dd2b"
},
{
"sender": "",
"receiver": "305c300d06092a864886f70d0101010500034b0030480241008710f84d9c7bcb90d9e7d19d509a926ec3a2cce62bd9bc14975aad038108bcf8206442309ea1c652324b488d359273353fa4ee0c44a0aa4d875e496e9b342df50203010001",
"amount": 100.0,
"timestamp": 1639205673780,
"signature": ""
}
],
"timestamp": 1639205673780,
"nonce": 267722,
"hash": "0000df70fce83deee3abecc198da954c0f6fb22879700f84af9ccbed0dc39724"
}
],
"transactions": []
}