aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/examples/eth15/multiforward.se
diff options
context:
space:
mode:
Diffstat (limited to 'Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/examples/eth15/multiforward.se')
-rw-r--r--Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/examples/eth15/multiforward.se14
1 files changed, 14 insertions, 0 deletions
diff --git a/Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/examples/eth15/multiforward.se b/Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/examples/eth15/multiforward.se
new file mode 100644
index 000000000..577794d97
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/examples/eth15/multiforward.se
@@ -0,0 +1,14 @@
+init:
+ contract.storage[0] = msg.sender
+code:
+ if msg.sender != contract.storage[0]:
+ stop
+ i = 0
+ while i < ~calldatasize():
+ to = ~calldataload(i)
+ value = ~calldataload(i+20) / 256^12
+ datasize = ~calldataload(i+32) / 256^30
+ data = alloc(datasize)
+ ~calldatacopy(data, i+34, datasize)
+ ~call(tx.gas - 25, to, value, data, datasize, 0, 0)
+ i += 34 + datasize